diff --git a/.gitignore b/.gitignore index 217622c84d..bf491ec3c2 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ good-config.php lac08.log php.log .DS_Store +nbproject +*.mo diff --git a/EVENTS.txt b/EVENTS.txt index 68752ef3fe..57f2bf6bcc 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -118,16 +118,16 @@ EndShowHTML: Showing after the html element - $action: the current action StartPublicGroupNav: Showing the public group nav menu -- $action: the current action +- $menu: the menu widget; use $menu->action for output EndPublicGroupNav: At the end of the public group nav menu -- $action: the current action +- $menu: the menu widget; use $menu->action for output StartSubGroupNav: Showing the subscriptions group nav menu -- $action: the current action +- $menu: the menu widget; use $menu->action for output EndSubGroupNav: At the end of the subscriptions group nav menu -- $action: the current action +- $menu: the menu widget; use $menu->action for output StartInitializeRouter: Before the router instance has been initialized; good place to add routes - $m: the Net_URL_Mapper that has just been set up @@ -258,10 +258,28 @@ EndShowExportData: just after showing the
with export data (feeds) - $action: action object being shown StartShowNoticeItem: just before showing the notice item -- $action: action object being shown +- $item: The NoticeListItem object being shown EndShowNoticeItem: just after showing the notice item -- $action: action object being shown +- $item: the NoticeListItem object being shown + +StartShowNoticeInfo: just before showing notice info +- $item: The NoticeListItem object being shown + +EndShowNoticeInfo: just after showing notice info +- $item: The NoticeListItem object being shown + +StartShowNoticeOptions: just before showing notice options like fave, repeat, etc. +- $item: the NoticeListItem object being shown + +EndShowNoticeOptions: just after showing notice options like fave, repeat, etc. +- $item: the NoticeListItem object being shown + +StartShowFaveForm: just before showing the fave form +- $item: the NoticeListItem object being shown + +EndShowFaveForm: just after showing the fave form +- $item: the NoticeListItem object being shown StartShowPageNotice: just before showing the page notice (instructions or error) - $action: action object being shown @@ -284,6 +302,20 @@ StartProfileSaveForm: before starting to save a profile settings form EndProfileSaveForm: after saving a profile settings form (after commit, no profile or user object!) - $action: action object being shown +StartEmailFormData: just before showing text entry fields on email settings page +- $action: action object being shown + +EndEmailFormData: just after showing text entry fields on email settings page +- $action: action object being shown + +StartEmailSaveForm: before starting to save a email settings form +- $action: action object being shown +- &$user: user being saved + +EndEmailSaveForm: after saving a email settings form (after commit) +- $action: action object being shown +- &$user: user being saved + StartRegistrationFormData: just before showing text entry fields on registration page - $action: action object being shown @@ -347,6 +379,14 @@ GetValidDaemons: Just before determining which daemons to run HandleQueuedNotice: Handle a queued notice at queue time (or immediately if no queue) - &$notice: notice to handle +StartHtmlElement: Reight before outputting the HTML element - allows plugins to add namespaces +- $action: the current action +- &$attrs: attributes for the HTML element + +EndHtmlElement: Right after outputting the HTML element +- $action: the current action +- &$attrs: attributes for the HTML element + StartShowHeadElements: Right after the tag - $action: the current action @@ -551,6 +591,12 @@ EndPublicXRDS: End XRDS output (right before the closing XRDS tag) - $action: the current action - &$xrdsoutputter - XRDSOutputter object to write to +StartHostMetaLinks: Start /.well-known/host-meta links +- &links: array containing the links elements to be written + +EndHostMetaLinks: End /.well-known/host-meta links +- &links: array containing the links elements to be written + StartCheckPassword: Check a username/password - $nickname: The nickname to check - $password: The password to check @@ -774,6 +820,22 @@ EndDisfavorNotice: After saving a notice as a favorite - $profile: profile of the person faving (can be remote!) - $notice: notice being faved +StartFavorNoticeForm: starting the data in the form for favoring a notice +- $FavorForm: the favor form being shown +- $notice: notice being favored + +EndFavorNoticeForm: Ending the data in the form for favoring a notice +- $FavorForm: the favor form being shown +- $notice: notice being favored + +StartDisFavorNoticeForm: starting the data in the form for disfavoring a notice +- $DisfavorForm: the disfavor form being shown +- $notice: notice being difavored + +EndDisFavorNoticeForm: Ending the data in the form for disfavoring a notice +- $DisfavorForm: the disfavor form being shown +- $notice: notice being disfavored + StartFindMentions: start finding mentions in a block of text - $sender: sender profile - $text: plain text version of the notice @@ -836,230 +898,122 @@ EndDeleteUser: handling the post for deleting a user - $action: action being shown - $user: user being deleted -StartActivityStart: starting the output for a notice activity -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$attrs: attributes (mostly namespace declarations, if any) +StartNoticeAsActivity: before converting a notice to an activity +- $notice: notice being converted +- &$activity: initially empty activity -EndActivityStart: end the opening tag for an activity -- &$notice: notice being output -- &$xs: XMLStringer for output -- $attrs: attributes (mostly namespace declarations, if any) +EndNoticeAsActivity: after converting a notice to an activity (good time to customize!) +- $notice: notice being converted +- &$activity: activity, now more-or-less full -StartActivitySource: before outputting the element for a notice activity -- &$notice: notice being output -- &$xs: XMLStringer for output +StartNoticeSaveWeb: before saving a notice through the Web interface +- $action: action being executed (instance of NewNoticeAction) +- &$authorId: integer ID of the author +- &$text: text of the notice +- &$options: additional options (location, replies, etc.) -EndActivitySource: after outputting the element for a notice activity -- &$notice: notice being output -- &$xs: XMLStringer for output +EndNoticeSaveWeb: after saving a notice through the Web interface +- $action: action being executed (instance of NewNoticeAction) +- $notice: notice that was saved -StartActivityTitle: before outputting notice activity title -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$title: title of the notice, mutable +StartRssEntryArray: at the start of copying a notice to an array +- $notice: the notice being copied +- &$entry: the entry (empty at beginning) -EndActivityTitle: after outputting notice activity title -- $notice: notice being output -- &$xs: XMLStringer for output -- $title: title of the notice +EndRssEntryArray: at the end of copying a notice to an array +- $notice: the notice being copied +- &$entry: the entry, with all the fields filled up -StartActivityAuthor: before outputting atom author -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$atomAuthor: string for XML representing atom author +NoticeDeleteRelated: at the beginning of deleting related fields to a notice +- $notice: notice being deleted -EndActivityAuthor: after outputting atom author -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$atomAuthor: string for XML representing atom author +StartShowHeadTitle: when beginning to show the element +- $action: action being shown -StartActivityActor: before outputting activity actor element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$actor: string for XML representing activity actor +EndShowHeadTitle: when done showing the <title> +- $action: action being shown -EndActivityActor: after outputting activity actor element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$actor: string for XML representing activity actor +StartShowPageTitle: when beginning to show the page title <h1> +- $action: action being shown -StartActivityLink: before outputting activity HTML link element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$url: URL for activity HTML link element for a notice activity entry +EndShowPageTitle: when done showing the page title <h1> +- $action: action being shown -EndActivityLink: before outputting activity HTML link element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $url: URL for activity HTML link element for a notice activity entry +StartDeleteOwnNotice: when a user starts to delete their own notice +- $user: the user doing the delete +- $notice: the notice being deleted -StartActivityId: before outputting atom:id element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$id: atom:id (notice URI by default) +EndDeleteOwnNotice: when a user has deleted their own notice +- $user: the user doing the delete +- $notice: the notice being deleted -EndActivityId: after outputting atom:id element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $id: atom:id (notice URI by default) +StartShowFeedLinkList: before showing the feed list in the sidebar +- $action: action being executed +- $feeds: list of feeds to show -StartActivityPublished: before outputting atom:published element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$published: atom:published value (notice created by default) +EndShowFeedLinkList: after showing the feed list in the sidebar +- $action: action being executed +- $feeds: list of feeds shown -EndActivityPublished: before outputting atom:published element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $published: atom:published value (notice created by default) +StartShowFeedLink: before showing an individual feed item +- $action: action being executed +- $feed: feed to show -StartActivityUpdated: before outputting atom:updated element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$updated: atom:updated value (same as atom:published by default) +EndShowFeedLink: after showing an individual feed +- $action: action being executed +- $feed: feed to show -EndActivityUpdated: after outputting atom:updated element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $updated: atom:updated value (same as atom:published by default) +StartShowNoticeForm: before showing the notice form (before <form>) +- $action: action being executed -StartActivityContent: before outputting atom:content element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$content: atom:content value (notice rendered HTML by default) +EndShowNoticeForm: after showing the notice form (after <form>) +- $action: action being executed -EndActivityContent: after outputting atom:content element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $content: atom:content value (notice rendered HTML by default) +StartGrantRole: when a role is being assigned +- $profile: profile that will have the role +- $role: string name of the role -StartActivityVerb: before outputting activity:verb element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default) +EndGrantRole: when a role has been successfully assigned +- $profile: profile that will have the role +- $role: string name of the role -EndActivityVerb: after outputting activity:verb element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $verb: activity:verb URI ('http://activitystrea.ms/schema/1.0/post' by default) +StartRevokeRole: when a role is being revoked +- $profile: profile that will lose the role +- $role: string name of the role -StartActivityDefaultObjectType: before outputting activity:object-type element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default) +EndRevokeRole: when a role has been revoked +- $profile: profile that lost the role +- $role: string name of the role -EndActivityDefaultObjectType: after outputting activity:verb element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $type: activity:object-type URI for default object ('http://activitystrea.ms/schema/1.0/note' by default) +StartAtomPubNewActivity: When a new activity comes in through Atom Pub API +- &$activity: received activity -StartActivityObjects: before outputting activity:object elements for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$objects: array of ActivityObject objects to output (empty by default) +EndAtomPubNewActivity: When a new activity comes in through Atom Pub API +- $activity: received activity +- $notice: notice that was created -EndActivityObjects: after outputting activity:object elements for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $objects: array of ActivityObject objects to output (empty by default) +StartXrdActionAliases: About to set aliases for the XRD object for a user +- &$xrd: XRD object being shown +- $user: User being shown -StartActivityNoticeInfo: before outputting statusnet:notice-info element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$noticeInfoAttr: array of attributes for notice info element +EndXrdActionAliases: Done with aliases for the XRD object for a user +- &$xrd: XRD object being shown +- $user: User being shown -EndActivityNoticeInfo: after outputting statusnet:notice-info element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $noticeInfoAttr: array of attributes for notice info element +StartXrdActionLinks: About to set links for the XRD object for a user +- &$xrd: XRD object being shown +- $user: User being shown -StartActivityInReplyTo: before outputting thr:in-reply-to element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$replyNotice: Notice object the main notice is in-reply-to +EndXrdActionLinks: Done with links for the XRD object for a user +- &$xrd: XRD object being shown +- $user: User being shown -EndActivityInReplyTo: after outputting thr:in-reply-to element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $replyNotice: Notice object the main notice is in-reply-to +AdminPanelCheck: When checking whether the current user can access a given admin panel +- $name: Name of the admin panel +- &$isOK: Boolean whether the user is allowed to use the panel -StartActivityConversation: before outputting ostatus:conversation link element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$conv: Conversation object +StartAdminPanelNav: Before displaying the first item in the list of admin panels +- $nav The AdminPanelNav widget -EndActivityConversation: after outputting ostatus:conversation link element for a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $conv: Conversation object - -StartActivityAttentionProfiles: before outputting ostatus:attention link element for people in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$replyProfiles: array of profiles of people being replied to - -EndActivityAttentionProfiles: after outputting ostatus:attention link element for people in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $replyProfiles: array of Profile object of people being replied to - -StartActivityAttentionGroups: before outputting ostatus:attention link element for groups in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$groups: array of Group objects of groups being addressed - -EndActivityAttentionGroups: after outputting ostatus:attention link element for groups in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $groups: array of Group objects of groups being addressed - -StartActivityForward: before outputting ostatus:forward link element in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$repeat: Notice that was repeated - -EndActivityForward: after outputting ostatus:forward link element in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $repeat: Notice that was repeated - -StartActivityCategories: before outputting atom:category elements in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$tags: array of strings for tags on the notice (used for categories) - -EndActivityCategories: after outputting atom:category elements in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $tags: array of strings for tags on the notice (used for categories) - -StartActivityEnclosures: before outputting enclosure link elements in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$enclosures: array of enclosure objects (see File::getEnclosure() for details) - -EndActivityEnclosures: after outputting enclosure link elements in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $enclosures: array of enclosure objects (see File::getEnclosure() for details) - -StartActivityGeo: before outputting geo:rss element in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- &$lat: latitude -- &$lon: longitude - -EndActivityGeo: after outputting geo:rss element in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output -- $lat: latitude -- $lon: longitude - -StartActivityEnd: before the closing </entry> in a notice activity entry (last chance for data!) -- &$notice: notice being output -- &$xs: XMLStringer for output - -EndActivityEnd: after the closing </entry> in a notice activity entry -- &$notice: notice being output -- &$xs: XMLStringer for output +EndAdminPanelNav: After displaying the last item in the list of admin panels +- $nav The AdminPanelNav widget diff --git a/README b/README index 393008f5d1..3d23e2393b 100644 --- a/README +++ b/README @@ -2,8 +2,8 @@ README ------ -StatusNet 0.9.4beta2 -11 August 2010 +StatusNet 0.9.6 "Man on the Moon" +29 October 2010 This is the README file for StatusNet, the Open Source microblogging platform. It includes installation instructions, descriptions of @@ -38,7 +38,8 @@ more, please see the Open Software Service Definition 1.1: http://www.opendefinition.org/ossd StatusNet, Inc. <http://status.net/> also offers this software as a -Web service, requiring no installation on your part. The software run +Web service, requiring no installation on your part. See +<http://status.net/signup> for details. The software run on status.net is identical to the software available for download, so you can move back and forth between a hosted version or a version installed on your own servers. @@ -72,6 +73,20 @@ License along with this program, in the file "COPYING". If not, see of using the software, and if you do not wish to share your modifications, *YOU MAY NOT INSTALL STATUSNET*. +Documentation in the /doc-src/ directory is available under the +Creative Commons Attribution 3.0 Unported license, with attribution to +"StatusNet". See http://creativecommons.org/licenses/by/3.0/ for details. + +CSS and images in the /theme/ directory are available under the +Creative Commons Attribution 3.0 Unported license, with attribution to +"StatusNet". See http://creativecommons.org/licenses/by/3.0/ for details. + +Our understanding and intention is that if you add your own theme that +uses only CSS and images, those files are not subject to the copyleft +requirements of the Affero General Public License 3.0. See +http://wordpress.org/news/2009/07/themes-are-gpl-too/ . This is not +legal advice; consult your lawyer. + Additional library software has been made available in the 'extlib' directory. All of it is Free Software and can be distributed under liberal terms, but those terms may differ in detail from the AGPL's @@ -81,31 +96,43 @@ for additional terms. New this version ================ -This is a security, bug and feature release since version 0.9.3 released on -29 June 2010. +This is a security, bug and feature release since version 0.9.5 released on +10 September 2010. For best compatibility with client software and site federation, and a lot of bug fixes, it is highly recommended that all public sites upgrade to the new version. -Changes from 0.9.4beta1: -- fix for daemon config switching on multi-site setup - Notable changes this version: -- OpenID and OAuth libraries patched for potential timing attack -- OStatus feed i/o updated for Activity Streams -- Correctness fixes on XRD, other discovery bits -- Support for contacting SNI-based SSL virtual hosts when SSL - certificate verification is enabled (requires PHP 5.3.2+ or - enabling CURL backend with $config['http']['curl'] = true) -- Experimental SubMirror plugin -- Multi-site status_network table mode has been tweaked to support - multiple tags better -- Many updates to user interface translation from TranslateWiki -- Many other bugfixes +- Site moderators can now delete groups. +- New themes: clean, shiny, mnml, victorian +- New YammerImport plugin allows site admins to import non-private profiles and + message from an authenticated Yammer site. +- New experimental plugins: AnonFavorites, SlicedFavorites, GroupFavorited, + ForceGroup, ShareNotice +- OAuth upgraded to 1.0a +- Localization updates now include plugins, thanks to translatewiki.net! +- SSL link generation should be more consistent; alternate SSL URLs can be + set in the admin UI for more parts of the system. +- Experimental backupuser.php, restoreuser.php command-line scripts to + dump/restore a user's complete activity stream. Can be used to transfer + accounts manually between sites, or to save a backup before deleting. +- Unicode fixes for OStatus notices +- Header metadata on notice pages to aid in manual reposting on Facebook +- Lots of little fixes... -A full changelog is available at http://status.net/wiki/StatusNet_0.9.4. +Changes from 0.9.6 release candidate 1: +- fix for broken group pages when logged out +- fix for stuck ping queue entries when bad profile +- fix for bogus single-user nickname config entry error +- i18n updates +- nofollow updates +- SSL-only mode secure cookie fix +- experimental ApiLogger plugin for usage data gathering +- experimental follow-everyone plugin + +A full changelog is available at http://status.net/wiki/StatusNet_0.9.6. Prerequisites ============= @@ -193,14 +220,12 @@ and the URLs are listed here for your convenience. version may render your StatusNet site unable to send or receive XMPP messages. - Facebook library. Used for the Facebook application. -- PEAR Services_oEmbed. Used for some multimedia integration. -- PEAR HTTP_Request is an oEmbed dependency. -- PEAR Validate is an oEmbed dependency. -- PEAR Net_URL2 is an oEmbed dependency. +- PEAR Validate is used for URL and email validation. - Console_GetOpt for parsing command-line options. - libomb. a library for implementing OpenMicroBlogging 0.1, the predecessor to OStatus. - HTTP_Request2, a library for making HTTP requests. +- PEAR Net_URL2 is an HTTP_Request2 dependency. A design goal of StatusNet is that the basic Web functionality should work on even the most restrictive commercial hosting services. @@ -218,9 +243,9 @@ especially if you've previously installed PHP/MySQL packages. 1. Unpack the tarball you downloaded on your Web server. Usually a command like this will work: - tar zxf statusnet-0.9.4.tar.gz + tar zxf statusnet-0.9.6.tar.gz - ...which will make a statusnet-0.9.2 subdirectory in your current + ...which will make a statusnet-0.9.6 subdirectory in your current directory. (If you don't have shell access on your Web server, you may have to unpack the tarball on your local computer and FTP the files to the server.) @@ -228,7 +253,7 @@ especially if you've previously installed PHP/MySQL packages. 2. Move the tarball to a directory of your choosing in your Web root directory. Usually something like this will work: - mv statusnet-0.9.4 /var/www/statusnet + mv statusnet-0.9.6 /var/www/statusnet This will make your StatusNet instance available in the statusnet path of your server, like "http://example.net/statusnet". "microblog" or @@ -587,7 +612,7 @@ subdirectory to add a new language to your system. You'll need to compile the ".po" files into ".mo" files, however. Contributions of translation information to StatusNet are very easy: -you can use the Web interface at TranslateWiki.net to add one +you can use the Web interface at translatewiki.net to add one or a few or lots of new translations -- or even new languages. You can also download more up-to-date .po files there, if you so desire. @@ -643,7 +668,7 @@ with this situation. If you've been using StatusNet 0.7, 0.6, 0.5 or lower, or if you've been tracking the "git" version of the software, you will probably want to upgrade and keep your existing data. There is no automated -upgrade procedure in StatusNet 0.9.2. Try these step-by-step +upgrade procedure in StatusNet 0.9.6. Try these step-by-step instructions; read to the end first before trying them. 0. Download StatusNet and set up all the prerequisites as if you were @@ -664,10 +689,11 @@ instructions; read to the end first before trying them. 5. Once all writing processes to your site are turned off, make a final backup of the Web directory and database. 6. Move your StatusNet directory to a backup spot, like "statusnet.bak". -7. Unpack your StatusNet 0.9.2 tarball and move it to "statusnet" or +7. Unpack your StatusNet 0.9.6 tarball and move it to "statusnet" or wherever your code used to be. -8. Copy the config.php file and avatar directory from your old - directory to your new directory. +8. Copy the config.php file and the contents of the avatar/, background/, + file/, and local/ subdirectories from your old directory to your new + directory. 9. Copy htaccess.sample to .htaccess in the new directory. Change the RewriteBase to use the correct path. 10. Rebuild the database. (You can safely skip this step and go to #12 @@ -835,6 +861,8 @@ notice: A plain string that will appear on every page. A good place be escaped. logo: URL of an image file to use as the logo for the site. Overrides the logo in the theme, if any. +ssllogo: URL of an image file to use as the logo on SSL pages. If unset, + theme logo is used instead. ssl: Whether to use SSL and https:// URLs for some or all pages. Possible values are 'always' (use it for all pages), 'never' (don't use it for any pages), or 'sometimes' (use it for @@ -1092,6 +1120,9 @@ path: Path part of theme URLs, before the theme name. Relative to the which means to use the site path + '/theme'. ssl: Whether to use SSL for theme elements. Default is null, which means guess based on site SSL settings. +sslserver: SSL server to use when page is HTTPS-encrypted. If + unspecified, site ssl server and so on will be used. +sslpath: If sslserver if defined, path to use when page is HTTPS-encrypted. javascript ---------- @@ -1103,6 +1134,9 @@ path: Path part of Javascript URLs. Defaults to null, which means to use the site path + '/js/'. ssl: Whether to use SSL for JavaScript files. Default is null, which means guess based on site SSL settings. +sslserver: SSL server to use when page is HTTPS-encrypted. If + unspecified, site ssl server and so on will be used. +sslpath: If sslserver if defined, path to use when page is HTTPS-encrypted. xmpp ---- @@ -1330,6 +1364,11 @@ ssl: whether to use HTTPS for file URLs. Defaults to null, meaning to filecommand: command to use for determining the type of a file. May be skipped if fileinfo extension is installed. Defaults to '/usr/bin/file'. +sslserver: if specified, this server will be used when creating HTTPS + URLs. Otherwise, the site SSL server will be used, with /file/ path. +sslpath: if this and the sslserver are specified, this path will be used + when creating HTTPS URLs. Otherwise, the attachments|path value + will be used. group ----- @@ -1386,8 +1425,9 @@ dir: directory to write backgrounds too. Default is '/background/' subdir of install dir. path: path to backgrounds. Default is sub-path of install path; note that you may need to change this if you change site-path too. -ssl: Whether or not to use HTTPS for background files. Defaults to - null, meaning to guess from site-wide SSL settings. +sslserver: SSL server to use when page is HTTPS-encrypted. If + unspecified, site ssl server and so on will be used. +sslpath: If sslserver if defined, path to use when page is HTTPS-encrypted. ping ---- @@ -1452,7 +1492,8 @@ If an installation has only one user, this can simplify a lot of the interface. It also makes the user's profile the root URL. enabled: Whether to run in "single user mode". Default false. -nickname: nickname of the single user. +nickname: nickname of the single user. If no nickname is specified, + the site owner account will be used (if present). robotstxt --------- @@ -1468,6 +1509,33 @@ disallow: Array of (virtual) directories to disallow. Default is 'main', 'search', 'message', 'settings', 'admin'. Ignored when site is private, in which case the entire site ('/') is disallowed. +api +--- + +Options for the Twitter-like API. + +realm: HTTP Basic Auth realm (see http://tools.ietf.org/html/rfc2617 + for details). Some third-party tools like ping.fm want this to be + 'Identi.ca API', so set it to that if you want to. default = null, + meaning 'something based on the site name'. + +nofollow +-------- + +We optionally put 'rel="nofollow"' on some links in some pages. The +following configuration settings let you fine-tune how or when things +are nofollowed. See http://en.wikipedia.org/wiki/Nofollow for more +information on what 'nofollow' means. + +subscribers: whether to nofollow links to subscribers on the profile + and personal pages. Default is true. +members: links to members on the group page. Default true. +peopletag: links to people listed in the peopletag page. Default true. +external: external links in notices. One of three values: 'sometimes', + 'always', 'never'. If 'sometimes', then external links are not + nofollowed on profile, notice, and favorites page. Default is + 'sometimes'. + url --- @@ -1484,6 +1552,19 @@ maxnoticelength: If a notice is strictly longer than this limit, all URLs in the notice will be shortened. Users can override. -1 means the text limit for notices. +router +------ + +We use a router class for mapping URLs to code. This section controls +how that router works. + +cache: whether to cache the router in memcache (or another caching + mechanism). Defaults to true, but may be set to false for + developers (who might be actively adding pages, so won't want the + router cached) or others who see strange behavior. You're unlikely + to need this unless you're a developer. + + Plugins ======= @@ -1541,7 +1622,7 @@ repository (see below), and you get a compilation error ("unexpected T_STRING") in the browser, check to see that you don't have any conflicts in your code. -If you upgraded to StatusNet 0.9.2 without reading the "Notice +If you upgraded to StatusNet 0.9.x without reading the "Notice inboxes" section above, and all your users' 'Personal' tabs are empty, read the "Notice inboxes" section above. @@ -1652,6 +1733,10 @@ if anyone's been overlooked in error. * mEDI * Brett Taylor * Brigitte Schuster +* Siebrand Mazeland and the amazing volunteer translators at translatewiki.net +* Brion Vibber, StatusNet, Inc. +* James Walker, StatusNet, Inc. +* Samantha Doherty, designer, StatusNet, Inc. 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/accessadminpanel.php b/actions/accessadminpanel.php index 73354e97a7..027c69c5e5 100644 --- a/actions/accessadminpanel.php +++ b/actions/accessadminpanel.php @@ -40,7 +40,6 @@ 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 AccessadminpanelAction extends AdminPanelAction { /** @@ -48,10 +47,9 @@ class AccessadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { - // TRANS: Page title + // TRANS: Page title for Access admin panel that allows configuring site access. return _('Access'); } @@ -60,10 +58,9 @@ class AccessadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - // TRANS: Page notice + // TRANS: Page notice. return _('Site access settings'); } @@ -72,7 +69,6 @@ class AccessadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new AccessAdminPanelForm($this); @@ -85,7 +81,6 @@ class AccessadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $booleans = array('site' => array('private', 'inviteonly', 'closed')); @@ -110,7 +105,6 @@ class AccessadminpanelAction extends AdminPanelAction return; } - } class AccessAdminPanelForm extends AdminForm @@ -120,7 +114,6 @@ class AccessAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'form_site_admin_panel'; @@ -131,7 +124,6 @@ class AccessAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -142,7 +134,6 @@ class AccessAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('accessadminpanel'); @@ -153,7 +144,6 @@ class AccessAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart('fieldset', array('id' => 'settings_admin_access')); @@ -161,7 +151,7 @@ class AccessAdminPanelForm extends AdminForm $this->out->element('legend', null, _('Registration')); $this->out->elementStart('ul', 'form_data'); $this->li(); - // TRANS: Checkbox instructions for admin setting "Private" + // TRANS: Checkbox instructions for admin setting "Private". $instructions = _('Prohibit anonymous users (not logged in) from viewing site?'); // TRANS: Checkbox label for prohibiting anonymous users from viewing site. $this->out->checkbox('private', _m('LABEL', 'Private'), @@ -170,7 +160,7 @@ class AccessAdminPanelForm extends AdminForm $this->unli(); $this->li(); - // TRANS: Checkbox instructions for admin setting "Invite only" + // TRANS: Checkbox instructions for admin setting "Invite only". $instructions = _('Make registration invitation only.'); // TRANS: Checkbox label for configuring site as invite only. $this->out->checkbox('inviteonly', _('Invite only'), @@ -179,7 +169,7 @@ class AccessAdminPanelForm extends AdminForm $this->unli(); $this->li(); - // TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) + // TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). $instructions = _('Disable new registrations.'); // TRANS: Checkbox label for disabling new user registrations. $this->out->checkbox('closed', _('Closed'), @@ -195,12 +185,11 @@ class AccessAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - // TRANS: Title / tooltip for button to save access settings in site admin panel + // TRANS: Title for button to save access settings in site admin panel. $title = _('Save access settings'); + // TRANS: Tooltip for button to save access settings in site admin panel. $this->out->submit('submit', _m('BUTTON', 'Save'), 'submit', null, $title); } - } diff --git a/actions/accesstoken.php b/actions/accesstoken.php index 76bd40473a..bfb771b0b3 100644 --- a/actions/accesstoken.php +++ b/actions/accesstoken.php @@ -67,4 +67,3 @@ class AccesstokenAction extends Action } } } -?> diff --git a/actions/all.php b/actions/all.php index 6c14d2f139..dc08592faf 100644 --- a/actions/all.php +++ b/actions/all.php @@ -64,7 +64,7 @@ class AllAction extends ProfileAction } if ($this->page > 1 && $this->notice->N == 0) { - // TRANS: Server error when page not found (404) + // TRANS: Server error when page not found (404). $this->serverError(_('No such page.'), $code = 404); } @@ -76,6 +76,7 @@ class AllAction extends ProfileAction parent::handle($args); if (!$this->user) { + // TRANS: Client error when user not found for an action. $this->clientError(_('No such user.')); return; } @@ -89,7 +90,7 @@ class AllAction extends ProfileAction // TRANS: Page title. %1$s is user nickname, %2$d is page number return sprintf(_('%1$s and friends, page %2$d'), $this->user->nickname, $this->page); } else { - // TRANS: Page title. %1$s is user nickname + // TRANS: Page title. %s is user nickname return sprintf(_("%s and friends"), $this->user->nickname); } } @@ -103,7 +104,7 @@ class AllAction extends ProfileAction 'nickname' => $this->user->nickname) ), - // TRANS: %1$s is user nickname + // TRANS: %s is user nickname. sprintf(_('Feed for friends of %s (RSS 1.0)'), $this->user->nickname)), new Feed(Feed::RSS2, common_local_url( @@ -112,7 +113,7 @@ class AllAction extends ProfileAction 'id' => $this->user->nickname ) ), - // TRANS: %1$s is user nickname + // TRANS: %s is user nickname. sprintf(_('Feed for friends of %s (RSS 2.0)'), $this->user->nickname)), new Feed(Feed::ATOM, common_local_url( @@ -121,7 +122,7 @@ class AllAction extends ProfileAction 'id' => $this->user->nickname ) ), - // TRANS: %1$s is user nickname + // TRANS: %s is user nickname. sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname)) ); } @@ -134,18 +135,23 @@ class AllAction extends ProfileAction function showEmptyListMessage() { - // TRANS: %1$s is user nickname + // TRANS: Empty list message. %s is a user nickname. $message = sprintf(_('This is the timeline for %s and friends but no one has posted anything yet.'), $this->user->nickname) . ' '; if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { + // TRANS: Encouragement displayed on logged in user's empty timeline. + // TRANS: This message contains Markdown links. Keep "](" together. $message .= _('Try subscribing to more people, [join a group](%%action.groups%%) or post something yourself.'); } else { - // TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" + // TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". + // TRANS: This message contains Markdown links. Keep "](" together. $message .= sprintf(_('You can try to [nudge %1$s](../%2$s) from their profile or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); } } else { + // TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. + // TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } @@ -178,10 +184,10 @@ class AllAction extends ProfileAction { $user = common_current_user(); if ($user && ($user->id == $this->user->id)) { - // TRANS: H1 text + // TRANS: H1 text for page when viewing a list for self. $this->element('h1', null, _("You and friends")); } else { - // TRANS: H1 text. %1$s is user nickname + // TRANS: H1 text for page. %s is a user nickname. $this->element('h1', null, sprintf(_('%s and friends'), $this->user->nickname)); } } diff --git a/actions/allrss.php b/actions/allrss.php index 7df0b1ef7c..573bb4eb2f 100644 --- a/actions/allrss.php +++ b/actions/allrss.php @@ -1,5 +1,4 @@ <?php - /** * RSS feed for user and friends timeline action class. * @@ -57,6 +56,7 @@ class AllrssAction extends Rss10Action * @param array $args Web and URL arguments * * @return boolean false if user doesn't exist + * */ function prepare($args) { @@ -65,6 +65,7 @@ class AllrssAction extends Rss10Action $this->user = User::staticGet('nickname', $nickname); if (!$this->user) { + // TRANS: Client error when user not found for an rss related action. $this->clientError(_('No such user.')); return false; } else { @@ -127,7 +128,7 @@ class AllrssAction extends Rss10Action * Get image. * * @return string user avatar URL or null - */ + */ function getImage() { $user = $this->user; @@ -139,4 +140,3 @@ class AllrssAction extends Rss10Action return $avatar ? $avatar->url : null; } } - diff --git a/actions/apiaccountratelimitstatus.php b/actions/apiaccountratelimitstatus.php index e2dff2db94..8d7f89eadc 100644 --- a/actions/apiaccountratelimitstatus.php +++ b/actions/apiaccountratelimitstatus.php @@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountRateLimitStatusAction extends ApiBareAuthAction { - /** * Handle the request * @@ -62,7 +60,6 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -119,11 +116,8 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } - diff --git a/actions/apiaccountupdatedeliverydevice.php b/actions/apiaccountupdatedeliverydevice.php index e25b9a954d..e7d44dc44d 100644 --- a/actions/apiaccountupdatedeliverydevice.php +++ b/actions/apiaccountupdatedeliverydevice.php @@ -45,7 +45,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction { /** @@ -54,9 +53,7 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -76,13 +73,13 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error message. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -91,6 +88,7 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed handling a non-existing API method. _('API method not found.'), 404, $this->format @@ -101,16 +99,14 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction // Note: Twitter no longer supports IM if (!in_array(strtolower($this->device), array('sms', 'im', 'none'))) { - $this->clientError( - _( - 'You must specify a parameter named ' . - '\'device\' with a value of one of: sms, im, none.' - ) - ); + // TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. + $this->clientError(_( 'You must specify a parameter named ' . + '\'device\' with a value of one of: sms, im, none.' )); return; } if (empty($this->user)) { + // TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -136,6 +132,7 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction if ($result === false) { common_log_db_error($this->user, 'UPDATE', __FILE__); + // TRANS: Server error displayed when a user's delivery device cannot be updated. $this->serverError(_('Could not update user.')); return; } @@ -160,5 +157,4 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction $this->endDocument('json'); } } - } diff --git a/actions/apiaccountupdateprofile.php b/actions/apiaccountupdateprofile.php index 9b371ea957..163dac42d8 100644 --- a/actions/apiaccountupdateprofile.php +++ b/actions/apiaccountupdateprofile.php @@ -43,19 +43,15 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountUpdateProfileAction extends ApiAuthAction { - /** * Take arguments for running * * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -79,13 +75,13 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -94,6 +90,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -102,6 +99,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction } if (empty($this->user)) { + // TRANS: Client error displayed if a user could not be found. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -109,6 +107,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction $profile = $this->user->getProfile(); if (empty($profile)) { + // TRANS: Client error displayed if a user profile could not be found. $this->clientError(_('User has no profile.')); return; } @@ -144,6 +143,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction if (!$result) { common_log_db_error($profile, 'UPDATE', __FILE__); + // TRANS: Server error displayed if a user profile could not be saved. $this->serverError(_('Could not save profile.')); return; } @@ -162,5 +162,4 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction $this->endDocument('json'); } } - } diff --git a/actions/apiaccountupdateprofilebackgroundimage.php b/actions/apiaccountupdateprofilebackgroundimage.php index 3537b9f979..badd8db002 100644 --- a/actions/apiaccountupdateprofilebackgroundimage.php +++ b/actions/apiaccountupdateprofilebackgroundimage.php @@ -42,10 +42,8 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction { - var $tile = false; /** @@ -56,7 +54,6 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -76,13 +73,13 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -91,6 +88,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -105,14 +103,18 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientError(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } if (empty($this->user)) { + // TRANS: Client error when user not found updating a profile background image. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -124,7 +126,6 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction // is part of the img filename. if (empty($design)) { - $this->user->query('BEGIN'); // save new design @@ -133,6 +134,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); + // TRANS: Client error displayed when saving design settings fails because of an empty id. $this->clientError(_('Unable to save your design settings.')); return; } @@ -143,6 +145,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); + // TRANS: Client error displayed when saving design settings fails because of an empty result. $this->clientError(_('Unable to save your design settings.')); $this->user->query('ROLLBACK'); return; @@ -184,6 +187,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); + // TRANS: Error displayed when updating design settings fails. $this->showForm(_('Could not update your design.')); return; } @@ -191,6 +195,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction $profile = $this->user->getProfile(); if (empty($profile)) { + // TRANS: Client error displayed when a user has no profile. $this->clientError(_('User has no profile.')); return; } @@ -207,5 +212,4 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction $this->endDocument('json'); } } - } diff --git a/actions/apiaccountupdateprofilecolors.php b/actions/apiaccountupdateprofilecolors.php index c666f9d759..109fbf959e 100644 --- a/actions/apiaccountupdateprofilecolors.php +++ b/actions/apiaccountupdateprofilecolors.php @@ -43,10 +43,8 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountUpdateProfileColorsAction extends ApiAuthAction { - var $profile_background_color = null; var $profile_text_color = null; var $profile_link_color = null; @@ -59,9 +57,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -100,13 +96,13 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -115,6 +111,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method updating profile colours. _('API method not found.'), 404, $this->format @@ -125,7 +122,6 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction $design = $this->user->getDesign(); if (!empty($design)) { - $original = clone($design); try { @@ -139,12 +135,11 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); + // TRANS: Client error displayed when a database error occurs updating profile colours. $this->clientError(_('Could not update your design.')); return; } - } else { - $this->user->query('BEGIN'); // save new design @@ -161,6 +156,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); + // TRANS: Client error displayed when a database error occurs inserting profile colours. $this->clientError(_('Unable to save your design settings.')); return; } @@ -171,6 +167,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); + // TRANS: Client error displayed when a database error occurs updating profile colours. $this->clientError(_('Unable to save your design settings.')); $this->user->query('ROLLBACK'); return; @@ -182,6 +179,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction $profile = $this->user->getProfile(); if (empty($profile)) { + // TRANS: Client error displayed a user has no profile updating profile colours. $this->clientError(_('User has no profile.')); return; } @@ -206,7 +204,6 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction * * @return void */ - function setColors($design) { $bgcolor = empty($this->profile_background_color) ? @@ -242,5 +239,4 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction return true; } - } diff --git a/actions/apiaccountupdateprofileimage.php b/actions/apiaccountupdateprofileimage.php index 153ef7818e..f2886509d7 100644 --- a/actions/apiaccountupdateprofileimage.php +++ b/actions/apiaccountupdateprofileimage.php @@ -43,19 +43,15 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountUpdateProfileImageAction extends ApiAuthAction { - /** * Take arguments for running * * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -74,13 +70,13 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -94,14 +90,17 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); - + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientError(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } if (empty($this->user)) { + // TRANS: Client error displayed updating profile image without having a user object. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -127,6 +126,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction $profile = $this->user->getProfile(); if (empty($profile)) { + // TRANS: Client error displayed if a user profile could not be found updating a profile image. $this->clientError(_('User has no profile.')); return; } @@ -147,5 +147,4 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction $this->endDocument('json'); } } - } diff --git a/actions/apiaccountverifycredentials.php b/actions/apiaccountverifycredentials.php index 79416e9b26..26d4e2fc5c 100644 --- a/actions/apiaccountverifycredentials.php +++ b/actions/apiaccountverifycredentials.php @@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAccountVerifyCredentialsAction extends ApiAuthAction { - /** * Handle the request * @@ -61,12 +59,12 @@ class ApiAccountVerifyCredentialsAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (!in_array($this->format, array('xml', 'json'))) { + // TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. $this->clientError(_('API method not found.'), $code = 404); return; } @@ -91,12 +89,9 @@ class ApiAccountVerifyCredentialsAction extends ApiAuthAction * @param array $args other arguments * * @return boolean true - * - **/ - + */ function isReadOnly($args) { return true; } - } diff --git a/actions/apiatomservice.php b/actions/apiatomservice.php new file mode 100644 index 0000000000..b60b312fc4 --- /dev/null +++ b/actions/apiatomservice.php @@ -0,0 +1,132 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * An AtomPub service document for a user + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category API + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +require_once INSTALLDIR.'/lib/apibareauth.php'; + +/** + * Shows an AtomPub service document for a user + * + * @category API + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class ApiAtomServiceAction extends ApiBareAuthAction +{ + /** + * Take arguments for running + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + * + */ + + function prepare($args) + { + parent::prepare($args); + $this->user = $this->getTargetUser($this->arg('id')); + + if (empty($this->user)) { + $this->clientError(_('No such user.'), 404, $this->format); + return; + } + + return true; + } + + /** + * Handle the arguments. In our case, show a service document. + * + * @param Array $args unused. + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + + header('Content-Type: application/atomsvc+xml'); + + $this->startXML(); + $this->elementStart('service', array('xmlns' => 'http://www.w3.org/2007/app', + 'xmlns:atom' => 'http://www.w3.org/2005/Atom', + 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/')); + $this->elementStart('workspace'); + $this->element('atom:title', null, _('Main')); + $this->elementStart('collection', + array('href' => common_local_url('ApiTimelineUser', + array('id' => $this->user->id, + 'format' => 'atom')))); + $this->element('atom:title', + null, + sprintf(_("%s timeline"), + $this->user->nickname)); + $this->element('accept', null, 'application/atom+xml;type=entry'); + $this->element('activity:verb', null, ActivityVerb::POST); + $this->elementEnd('collection'); + $this->elementStart('collection', + array('href' => common_local_url('AtomPubSubscriptionFeed', + array('subscriber' => $this->user->id)))); + $this->element('atom:title', + null, + sprintf(_("%s subscriptions"), + $this->user->nickname)); + $this->element('accept', null, 'application/atom+xml;type=entry'); + $this->element('activity:verb', null, ActivityVerb::FOLLOW); + $this->elementEnd('collection'); + $this->elementStart('collection', + array('href' => common_local_url('AtomPubFavoriteFeed', + array('profile' => $this->user->id)))); + $this->element('atom:title', + null, + sprintf(_("%s favorites"), + $this->user->nickname)); + $this->element('accept', null, 'application/atom+xml;type=entry'); + $this->element('activity:verb', null, ActivityVerb::FAVORITE); + $this->elementEnd('collection'); + $this->elementStart('collection', + array('href' => common_local_url('AtomPubMembershipFeed', + array('profile' => $this->user->id)))); + $this->element('atom:title', + null, + sprintf(_("%s memberships"), + $this->user->nickname)); + $this->element('accept', null, 'application/atom+xml;type=entry'); + $this->element('activity:verb', null, ActivityVerb::JOIN); + $this->elementEnd('collection'); + $this->elementEnd('workspace'); + $this->elementEnd('service'); + $this->endXML(); + } +} diff --git a/actions/apiblockcreate.php b/actions/apiblockcreate.php index b355cd1c7e..a9f31e791b 100644 --- a/actions/apiblockcreate.php +++ b/actions/apiblockcreate.php @@ -46,7 +46,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiBlockCreateAction extends ApiAuthAction { var $other = null; @@ -59,7 +58,6 @@ class ApiBlockCreateAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -79,13 +77,13 @@ class ApiBlockCreateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -102,6 +100,7 @@ class ApiBlockCreateAction extends ApiAuthAction if ($this->user->id == $this->other->id) { $this->clientError( + // TRANS: Client error displayed when users try to block themselves. _("You cannot block yourself!"), 403, $this->format @@ -123,10 +122,8 @@ class ApiBlockCreateAction extends ApiAuthAction $this->showProfile($this->other, $this->format); $this->endDocument($this->format); } else { + // TRANS: Server error displayed when blocking a user has failed. $this->serverError(_('Block user failed.'), 500, $this->format); } - } - } - diff --git a/actions/apiblockdestroy.php b/actions/apiblockdestroy.php index 7ea201677e..7dd0859e9c 100644 --- a/actions/apiblockdestroy.php +++ b/actions/apiblockdestroy.php @@ -45,7 +45,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiBlockDestroyAction extends ApiAuthAction { var $other = null; @@ -56,9 +55,7 @@ class ApiBlockDestroyAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -78,13 +75,13 @@ class ApiBlockDestroyAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -93,6 +90,7 @@ class ApiBlockDestroyAction extends ApiAuthAction } if (empty($this->user) || empty($this->other)) { + // TRANS: Client error when user not found for an API action to remove a block for a user. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -111,10 +109,8 @@ class ApiBlockDestroyAction extends ApiAuthAction $this->showProfile($this->other, $this->format); $this->endDocument($this->format); } else { + // TRANS: Server error displayed when unblocking a user has failed. $this->serverError(_('Unblock user failed.')); } - } - } - diff --git a/actions/apidirectmessage.php b/actions/apidirectmessage.php index 7a0f46274c..e072e27b83 100644 --- a/actions/apidirectmessage.php +++ b/actions/apidirectmessage.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiDirectMessageAction extends ApiAuthAction { var $messages = null; @@ -64,9 +63,7 @@ class ApiDirectMessageAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -74,6 +71,7 @@ class ApiDirectMessageAction extends ApiAuthAction $this->user = $this->auth_user; if (empty($this->user)) { + // TRANS: Client error given when a user was not found (404). $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -86,10 +84,12 @@ class ApiDirectMessageAction extends ApiAuthAction // Action was called by /api/direct_messages/sent.format $this->title = sprintf( + // TRANS: Title. %s is a user nickname. _("Direct messages from %s"), $this->user->nickname ); $this->subtitle = sprintf( + // TRANS: Subtitle. %s is a user nickname. _("All the direct messages sent from %s"), $this->user->nickname ); @@ -98,10 +98,12 @@ class ApiDirectMessageAction extends ApiAuthAction $this->id = "tag:$taguribase:SentDirectMessages:" . $this->user->id; } else { $this->title = sprintf( + // TRANS: Title. %s is a user nickname. _("Direct messages to %s"), $this->user->nickname ); $this->subtitle = sprintf( + // TRANS: Subtitle. %s is a user nickname. _("All the direct messages sent to %s"), $this->user->nickname ); @@ -124,7 +126,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -136,7 +137,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function showMessages() { switch($this->format) { @@ -153,6 +153,7 @@ class ApiDirectMessageAction extends ApiAuthAction $this->showJsonDirectMessages(); break; default: + // TRANS: Client error given when an API method was not found (404). $this->clientError(_('API method not found.'), $code = 404); break; } @@ -163,7 +164,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return array notices */ - function getMessages() { $message = new Message(); @@ -202,7 +202,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -213,7 +212,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->messages)) { @@ -228,7 +226,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function showXmlDirectMessages() { $this->initDocument('xml'); @@ -249,7 +246,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function showJsonDirectMessages() { $this->initDocument('json'); @@ -270,7 +266,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function showRssDirectMessages() { $this->initDocument('rss'); @@ -305,7 +300,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return void */ - function showAtomDirectMessages() { $this->initDocument('atom'); @@ -347,7 +341,6 @@ class ApiDirectMessageAction extends ApiAuthAction * * @return string etag */ - function etag() { if (!empty($this->messages)) { @@ -357,6 +350,7 @@ class ApiDirectMessageAction extends ApiAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), strtotime($this->messages[0]->created), strtotime($this->messages[$last]->created) @@ -367,5 +361,4 @@ class ApiDirectMessageAction extends ApiAuthAction return null; } - } diff --git a/actions/apidirectmessagenew.php b/actions/apidirectmessagenew.php index 65d065648f..978c753532 100644 --- a/actions/apidirectmessagenew.php +++ b/actions/apidirectmessagenew.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiDirectMessageNewAction extends ApiAuthAction { var $other = null; @@ -61,9 +60,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -71,6 +68,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction $this->user = $this->auth_user; if (empty($this->user)) { + // TRANS: Client error when user not found for an API direct message action. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -99,13 +97,13 @@ class ApiDirectMessageNewAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -115,16 +113,18 @@ class ApiDirectMessageNewAction extends ApiAuthAction if (empty($this->content)) { $this->clientError( + // TRANS: Client error displayed when no message text was submitted (406). _('No message text!'), 406, $this->format ); } else { - $content_shortened = common_shorten_links($this->content); + $content_shortened = $this->auth_user->shortenLinks($this->content); if (Message::contentTooLong($content_shortened)) { $this->clientError( - sprintf( - _('That\'s too long. Max message size is %d chars.'), + // TRANS: Client error displayed when message content is too long. + // TRANS: %d is the maximum number of characters for a message. + sprintf(_m('That\'s too long. Maximum message size is %d character.', 'That\'s too long. Maximum message size is %d characters.', Message::maxContent()), Message::maxContent() ), 406, @@ -135,10 +135,12 @@ class ApiDirectMessageNewAction extends ApiAuthAction } if (empty($this->other)) { + // TRANS: Client error displayed if a recipient user could not be found (403). $this->clientError(_('Recipient user not found.'), 403, $this->format); return; } else if (!$this->user->mutuallySubscribed($this->other)) { $this->clientError( + // TRANS: Client error displayed trying to direct message another user who's not a friend (403). _('Can\'t send direct messages to users who aren\'t your friend.'), 403, $this->format @@ -148,10 +150,9 @@ class ApiDirectMessageNewAction extends ApiAuthAction // Note: sending msgs to yourself is allowed by Twitter - $errmsg = 'Don\'t send a message to yourself; ' . - 'just say it to yourself quietly instead.'; - - $this->clientError(_($errmsg), 403, $this->format); + // TRANS: Client error displayed trying to direct message self (403). + $this->clientError(_('Do not send a message to yourself; ' . + 'just say it to yourself quietly instead.'), 403, $this->format); return; } @@ -175,6 +176,4 @@ class ApiDirectMessageNewAction extends ApiAuthAction $this->showSingleJsondirectMessage($message); } } - } - diff --git a/actions/apifavoritecreate.php b/actions/apifavoritecreate.php index 0447a92ba2..b2f6266ebf 100644 --- a/actions/apifavoritecreate.php +++ b/actions/apifavoritecreate.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFavoriteCreateAction extends ApiAuthAction { var $notice = null; @@ -59,9 +58,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -81,13 +78,13 @@ class ApiFavoriteCreateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -97,6 +94,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -106,6 +104,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction if (empty($this->notice)) { $this->clientError( + // TRANS: Client error displayed when requesting a status with a non-existing ID. _('No status found with that ID.'), 404, $this->format @@ -117,6 +116,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction if ($this->user->hasFave($this->notice)) { $this->clientError( + // TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. _('This status is already a favorite.'), 403, $this->format @@ -128,6 +128,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction if (empty($fave)) { $this->clientError( + // TRANS: Client error displayed when marking a notice as favourite fails. _('Could not create favorite.'), 403, $this->format @@ -165,5 +166,4 @@ class ApiFavoriteCreateAction extends ApiAuthAction // XXX: notify by SMS } } - } diff --git a/actions/apifavoritedestroy.php b/actions/apifavoritedestroy.php index 9f2efdd003..f86c985dc0 100644 --- a/actions/apifavoritedestroy.php +++ b/actions/apifavoritedestroy.php @@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFavoriteDestroyAction extends ApiAuthAction { - var $notice = null; /** @@ -60,9 +58,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -82,13 +78,13 @@ class ApiFavoriteDestroyAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -98,6 +94,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -107,6 +104,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction if (empty($this->notice)) { $this->clientError( + // TRANS: Client error displayed when trying to remove a favourite with an invalid ID. _('No status found with that ID.'), 404, $this->format @@ -120,6 +118,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction if (!$fave->find(true)) { $this->clientError( + // TRANS: Client error displayed when trying to remove a favourite that was not a favourite. _('That status is not a favorite.'), 403, $this->favorite @@ -132,6 +131,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction if (!$result) { common_log_db_error($fave, 'DELETE', __FILE__); $this->clientError( + // TRANS: Client error displayed when removing a favourite has failed. _('Could not delete favorite.'), 404, $this->format @@ -147,5 +147,4 @@ class ApiFavoriteDestroyAction extends ApiAuthAction $this->show_single_json_status($this->notice); } } - } diff --git a/actions/apifriendshipscreate.php b/actions/apifriendshipscreate.php index a7ec5b28a4..89557f8392 100644 --- a/actions/apifriendshipscreate.php +++ b/actions/apifriendshipscreate.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFriendshipsCreateAction extends ApiAuthAction { var $other = null; @@ -61,7 +60,6 @@ class ApiFriendshipsCreateAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -81,13 +79,13 @@ class ApiFriendshipsCreateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -97,6 +95,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -106,6 +105,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction if (empty($this->other)) { $this->clientError( + // TRANS: Client error displayed when trying follow who's profile could not be found. _('Could not follow user: profile not found.'), 403, $this->format @@ -115,6 +115,8 @@ class ApiFriendshipsCreateAction extends ApiAuthAction if ($this->user->isSubscribed($this->other)) { $errmsg = sprintf( + // TRANS: Client error displayed when trying to follow a user that's already being followed. + // TRANS: %s is the nickname of the user that is already being followed. _('Could not follow user: %s is already on your list.'), $this->other->nickname ); @@ -133,5 +135,4 @@ class ApiFriendshipsCreateAction extends ApiAuthAction $this->showProfile($this->other, $this->format); $this->endDocument($this->format); } - } diff --git a/actions/apifriendshipsdestroy.php b/actions/apifriendshipsdestroy.php index 551d016823..a5dff08bab 100644 --- a/actions/apifriendshipsdestroy.php +++ b/actions/apifriendshipsdestroy.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFriendshipsDestroyAction extends ApiAuthAction { var $other = null; @@ -61,7 +60,6 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -81,13 +79,13 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -97,6 +95,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -106,6 +105,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction if (empty($this->other)) { $this->clientError( + // TRANS: Client error displayed when trying to unfollow a user that cannot be found. _('Could not unfollow user: User not found.'), 403, $this->format @@ -117,6 +117,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction if ($this->user->id == $this->other->id) { $this->clientError( + // TRANS: Client error displayed when trying to unfollow self. _("You cannot unfollow yourself."), 403, $this->format @@ -131,5 +132,4 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction $this->showProfile($this->other, $this->format); $this->endDocument($this->format); } - } diff --git a/actions/apifriendshipsexists.php b/actions/apifriendshipsexists.php index 725178fd42..43b1daf4fc 100644 --- a/actions/apifriendshipsexists.php +++ b/actions/apifriendshipsexists.php @@ -47,7 +47,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFriendshipsExistsAction extends ApiPrivateAuthAction { var $profile_a = null; @@ -59,9 +58,7 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -81,14 +78,14 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->profile_a) || empty($this->profile_b)) { $this->clientError( - _('Two valid IDs or screen_names must be supplied.'), + // TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. + _('Two valid IDs or nick names must be supplied.'), 400, $this->format ); @@ -122,10 +119,8 @@ class ApiFriendshipsExistsAction extends ApiPrivateAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } diff --git a/actions/apifriendshipsshow.php b/actions/apifriendshipsshow.php index f29e637137..6b069c4fcf 100644 --- a/actions/apifriendshipsshow.php +++ b/actions/apifriendshipsshow.php @@ -46,7 +46,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiFriendshipsShowAction extends ApiBareAuthAction { var $source = null; @@ -58,9 +57,7 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -93,7 +90,6 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction * * @return boolean true or false */ - function requiresAuth() { if (common_config('site', 'private')) { @@ -119,18 +115,19 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (!in_array($this->format, array('xml', 'json'))) { + // TRANS: Client error displayed trying to execute an unknown API method showing friendship. $this->clientError(_('API method not found.'), 404); return; } if (empty($this->source)) { $this->clientError( + // TRANS: Client error displayed when a source user could not be determined showing friendship. _('Could not determine source user.'), 404 ); @@ -139,6 +136,7 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction if (empty($this->target)) { $this->clientError( + // TRANS: Client error displayed when a target user could not be determined showing friendship. _('Could not find target user.'), 404 ); @@ -161,7 +159,6 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction default: break; } - } /** @@ -178,5 +175,4 @@ class ApiFriendshipsShowAction extends ApiBareAuthAction { return true; } - } diff --git a/actions/apigroupcreate.php b/actions/apigroupcreate.php index d216c15cd4..d01504bc80 100644 --- a/actions/apigroupcreate.php +++ b/actions/apigroupcreate.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupCreateAction extends ApiAuthAction { var $group = null; @@ -67,16 +66,14 @@ class ApiGroupCreateAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); $this->user = $this->auth_user; - $this->nickname = $this->arg('nickname'); + $this->nickname = Nickname::normalize($this->arg('nickname')); $this->fullname = $this->arg('full_name'); $this->homepage = $this->arg('homepage'); $this->description = $this->arg('description'); @@ -95,13 +92,13 @@ class ApiGroupCreateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -110,6 +107,7 @@ class ApiGroupCreateAction extends ApiAuthAction } if (empty($this->user)) { + // TRANS: Client error given when a user was not found (404). $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -136,13 +134,13 @@ class ApiGroupCreateAction extends ApiAuthAction break; default: $this->clientError( + // TRANS: Client error given when an API method was not found (404). _('API method not found.'), 404, $this->format ); break; } - } /** @@ -150,29 +148,11 @@ class ApiGroupCreateAction extends ApiAuthAction * * @return void */ - function validateParams() { - $valid = Validate::string( - $this->nickname, array( - 'min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT - ) - ); - - if (!$valid) { - $this->clientError( - _( - 'Nickname must have only lowercase letters ' . - 'and numbers and no spaces.' - ), - 403, - $this->format - ); - return false; - } elseif ($this->groupNicknameExists($this->nickname)) { + if ($this->groupNicknameExists($this->nickname)) { $this->clientError( + // TRANS: Client error trying to create a group with a nickname this is already in use. _('Nickname already in use. Try another one.'), 403, $this->format @@ -180,6 +160,7 @@ class ApiGroupCreateAction extends ApiAuthAction return false; } else if (!User_group::allowedNickname($this->nickname)) { $this->clientError( + // TRANS: Client error in form for group creation. _('Not a valid nickname.'), 403, $this->format @@ -196,6 +177,7 @@ class ApiGroupCreateAction extends ApiAuthAction ) )) { $this->clientError( + // TRANS: Client error in form for group creation. _('Homepage is not a valid URL.'), 403, $this->format @@ -205,7 +187,8 @@ class ApiGroupCreateAction extends ApiAuthAction !is_null($this->fullname) && mb_strlen($this->fullname) > 255) { $this->clientError( - _('Full name is too long (max 255 chars).'), + // TRANS: Client error in form for group creation. + _('Full name is too long (maximum 255 characters).'), 403, $this->format ); @@ -213,7 +196,11 @@ class ApiGroupCreateAction extends ApiAuthAction } elseif (User_group::descriptionTooLong($this->description)) { $this->clientError( sprintf( - _('Description is too long (max %d chars).'), + // TRANS: Client error shown when providing too long a description during group creation. + // TRANS: %d is the maximum number of allowed characters. + _m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + User_group::maxDescription()), User_group::maxDescription() ), 403, @@ -224,7 +211,8 @@ class ApiGroupCreateAction extends ApiAuthAction !is_null($this->location) && mb_strlen($this->location) > 255) { $this->clientError( - _('Location is too long (max 255 chars).'), + // TRANS: Client error shown when providing too long a location during group creation. + _('Location is too long (maximum 255 characters).'), 403, $this->format ); @@ -243,7 +231,11 @@ class ApiGroupCreateAction extends ApiAuthAction if (count($this->aliases) > common_config('group', 'maxaliases')) { $this->clientError( sprintf( - _('Too many aliases! Maximum %d.'), + // TRANS: Client error shown when providing too many aliases during group creation. + // TRANS: %d is the maximum number of allowed aliases. + _m('Too many aliases! Maximum %d allowed.', + 'Too many aliases! Maximum %d allowed.', + common_config('group', 'maxaliases')), common_config('group', 'maxaliases') ), 403, @@ -254,16 +246,10 @@ class ApiGroupCreateAction extends ApiAuthAction foreach ($this->aliases as $alias) { - $valid = Validate::string( - $alias, array( - 'min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT - ) - ); - - if (!$valid) { + if (!Nickname::isValid($alias)) { $this->clientError( + // TRANS: Client error shown when providing an invalid alias during group creation. + // TRANS: %s is the invalid alias. sprintf(_('Invalid alias: "%s".'), $alias), 403, $this->format @@ -273,6 +259,8 @@ class ApiGroupCreateAction extends ApiAuthAction if ($this->groupNicknameExists($alias)) { $this->clientError( sprintf( + // TRANS: Client error displayed when trying to use an alias during group creation that is already in use. + // TRANS: %s is the alias that is already in use. _('Alias "%s" already in use. Try another one.'), $alias ), @@ -286,6 +274,7 @@ class ApiGroupCreateAction extends ApiAuthAction if (strcmp($alias, $this->nickname) == 0) { $this->clientError( + // TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. _('Alias can\'t be the same as nickname.'), 403, $this->format @@ -294,7 +283,7 @@ class ApiGroupCreateAction extends ApiAuthAction } } - // Evarything looks OK + // Everything looks OK return true; } @@ -306,7 +295,6 @@ class ApiGroupCreateAction extends ApiAuthAction * * @return boolean true or false */ - function groupNicknameExists($nickname) { $local = Local_group::staticGet('nickname', $nickname); @@ -323,5 +311,4 @@ class ApiGroupCreateAction extends ApiAuthAction return false; } - } diff --git a/actions/apigroupismember.php b/actions/apigroupismember.php index eaa4769f3e..8d31c65ddb 100644 --- a/actions/apigroupismember.php +++ b/actions/apigroupismember.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupIsMemberAction extends ApiBareAuthAction { var $group = null; @@ -60,7 +59,6 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ function prepare($args) @@ -82,17 +80,18 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->user)) { + // TRANS: Client error displayed when checking group membership for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } if (empty($this->group)) { + // TRANS: Client error displayed when checking group membership for a non-existing group. $this->clientError(_('Group not found.'), 404, $this->format); return false; } @@ -112,6 +111,7 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method showing group membership. _('API method not found.'), 400, $this->format @@ -129,10 +129,8 @@ class ApiGroupIsMemberAction extends ApiBareAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } diff --git a/actions/apigroupjoin.php b/actions/apigroupjoin.php index 5265ec629e..345fed2215 100644 --- a/actions/apigroupjoin.php +++ b/actions/apigroupjoin.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupJoinAction extends ApiAuthAction { var $group = null; @@ -60,9 +59,7 @@ class ApiGroupJoinAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -82,13 +79,13 @@ class ApiGroupJoinAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -97,17 +94,20 @@ class ApiGroupJoinAction extends ApiAuthAction } if (empty($this->user)) { + // TRANS: Client error displayed when trying to have a non-existing user join a group. $this->clientError(_('No such user.'), 404, $this->format); return; } if (empty($this->group)) { + // TRANS: Client error displayed when trying to join a group that does not exist. $this->clientError(_('Group not found.'), 404, $this->format); return false; } if ($this->user->isMember($this->group)) { $this->clientError( + // TRANS: Server error displayed when trying to join a group the user is already a member of. _('You are already a member of that group.'), 403, $this->format @@ -117,6 +117,7 @@ class ApiGroupJoinAction extends ApiAuthAction if (Group_block::isBlocked($this->group, $this->user->getProfile())) { $this->clientError( + // TRANS: Server error displayed when trying to join a group the user is blocked from joining. _('You have been blocked from that group by the admin.'), 403, $this->format @@ -136,6 +137,8 @@ class ApiGroupJoinAction extends ApiAuthAction common_log_db_error($member, 'INSERT', __FILE__); $this->serverError( sprintf( + // TRANS: Server error displayed when joining a group fails. + // TRANS: %1$s is a user nickname, $2$s is a group nickname. _('Could not join user %1$s to group %2$s.'), $this->user->nickname, $this->group->nickname @@ -153,6 +156,7 @@ class ApiGroupJoinAction extends ApiAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method joining a group. _('API method not found.'), 404, $this->format @@ -160,5 +164,4 @@ class ApiGroupJoinAction extends ApiAuthAction break; } } - } diff --git a/actions/apigroupleave.php b/actions/apigroupleave.php index 8c100d58a8..0ceb3523c8 100644 --- a/actions/apigroupleave.php +++ b/actions/apigroupleave.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupLeaveAction extends ApiAuthAction { var $group = null; @@ -60,9 +59,7 @@ class ApiGroupLeaveAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -82,13 +79,13 @@ class ApiGroupLeaveAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -97,11 +94,13 @@ class ApiGroupLeaveAction extends ApiAuthAction } if (empty($this->user)) { + // TRANS: Client error displayed when trying to have a non-existing user leave a group. $this->clientError(_('No such user.'), 404, $this->format); return; } if (empty($this->group)) { + // TRANS: Client error displayed when trying to leave a group that does not exist. $this->clientError(_('Group not found.'), 404, $this->format); return false; } @@ -112,6 +111,7 @@ class ApiGroupLeaveAction extends ApiAuthAction $member->profile_id = $this->auth_user->id; if (!$member->find(true)) { + // TRANS: Server error displayed when trying to leave a group the user is not a member of. $this->serverError(_('You are not a member of this group.')); return; } @@ -122,6 +122,8 @@ class ApiGroupLeaveAction extends ApiAuthAction common_log_db_error($member, 'DELETE', __FILE__); $this->serverError( sprintf( + // TRANS: Server error displayed when leaving a group fails. + // TRANS: %1$s is a user nickname, $2$s is a group nickname. _('Could not remove user %1$s from group %2$s.'), $this->user->nickname, $this->group->nickname @@ -139,6 +141,7 @@ class ApiGroupLeaveAction extends ApiAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method leaving a group. _('API method not found.'), 404, $this->format @@ -146,5 +149,4 @@ class ApiGroupLeaveAction extends ApiAuthAction break; } } - } diff --git a/actions/apigrouplist.php b/actions/apigrouplist.php index 148c802f43..1f6d44363f 100644 --- a/actions/apigrouplist.php +++ b/actions/apigrouplist.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupListAction extends ApiBareAuthAction { var $groups = null; @@ -60,9 +59,7 @@ class ApiGroupListAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -88,13 +85,12 @@ class ApiGroupListAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); $sitename = common_config('site', 'name'); - // TRANS: %s is a user name + // TRANS: Used as title in check for group membership. %s is a user name. $title = sprintf(_("%s's groups"), $this->user->nickname); $taguribase = TagURI::base(); $id = "tag:$taguribase:Groups"; @@ -104,8 +100,8 @@ class ApiGroupListAction extends ApiBareAuthAction ); $subtitle = sprintf( - // TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s - _("%1\$s groups %2\$s is a member of."), + // TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. + _('%1$s groups %2$s is a member of.'), $sitename, $this->user->nickname ); @@ -134,13 +130,13 @@ class ApiGroupListAction extends ApiBareAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method checking group membership. _('API method not found.'), 404, $this->format ); break; } - } /** @@ -148,7 +144,6 @@ class ApiGroupListAction extends ApiBareAuthAction * * @return array groups */ - function getGroups() { $groups = array(); @@ -174,7 +169,6 @@ class ApiGroupListAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -203,7 +197,6 @@ class ApiGroupListAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->groups) && (count($this->groups) > 0)) { @@ -213,6 +206,7 @@ class ApiGroupListAction extends ApiBareAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, strtotime($this->groups[0]->created), @@ -223,5 +217,4 @@ class ApiGroupListAction extends ApiBareAuthAction return null; } - } diff --git a/actions/apigrouplistall.php b/actions/apigrouplistall.php index a8317608d7..d05baa0992 100644 --- a/actions/apigrouplistall.php +++ b/actions/apigrouplistall.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupListAllAction extends ApiPrivateAuthAction { var $groups = null; @@ -60,9 +59,7 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -82,17 +79,17 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); $sitename = common_config('site', 'name'); - // TRANS: Message is used as a title. %s is a site name. + // TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. $title = sprintf(_("%s groups"), $sitename); $taguribase = TagURI::base(); $id = "tag:$taguribase:Groups"; $link = common_local_url('groups'); + // TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. $subtitle = sprintf(_("groups on %s"), $sitename); switch($this->format) { @@ -119,13 +116,13 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. _('API method not found.'), 404, $this->format ); break; } - } /** @@ -133,7 +130,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * * @return array groups */ - function getGroups() { $qry = 'SELECT user_group.* '. @@ -165,7 +161,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -176,7 +171,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * * @return string datestamp of the site's latest group */ - function lastModified() { if (!empty($this->groups) && (count($this->groups) > 0)) { @@ -194,7 +188,6 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->groups) && (count($this->groups) > 0)) { @@ -204,6 +197,7 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), strtotime($this->groups[0]->created), strtotime($this->groups[$last]->created)) @@ -213,5 +207,4 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction return null; } - } diff --git a/actions/apigroupmembership.php b/actions/apigroupmembership.php index ffd5c7c7d5..99ac965fa1 100644 --- a/actions/apigroupmembership.php +++ b/actions/apigroupmembership.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupMembershipAction extends ApiPrivateAuthAction { var $group = null; @@ -61,9 +60,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -83,12 +80,12 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->group)) { + // TRANS: Client error displayed trying to show group membership on a non-existing group. $this->clientError(_('Group not found.'), 404, $this->format); return false; } @@ -104,6 +101,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction break; default: $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method showing group membership. _('API method not found.'), 404, $this->format @@ -117,7 +115,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * * @return array $profiles list of profiles */ - function getProfiles() { $profiles = array(); @@ -143,7 +140,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -154,7 +150,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * * @return string datestamp of the lastest profile in the group */ - function lastModified() { if (!empty($this->profiles) && (count($this->profiles) > 0)) { @@ -173,7 +168,6 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->profiles) && (count($this->profiles) > 0)) { @@ -183,6 +177,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->group->id, strtotime($this->profiles[0]->created), @@ -193,5 +188,4 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction return null; } - } diff --git a/actions/apigroupshow.php b/actions/apigroupshow.php index 2998e505e2..471aa141f9 100644 --- a/actions/apigroupshow.php +++ b/actions/apigroupshow.php @@ -50,7 +50,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupShowAction extends ApiPrivateAuthAction { var $group = null; @@ -61,9 +60,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -80,6 +77,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction common_redirect(common_local_url('ApiGroupShow', $args), 301); } else { $this->clientError( + // TRANS: Client error displayed when trying to show a group that could not be found. _('Group not found.'), 404, $this->format @@ -100,7 +98,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -113,6 +110,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction $this->showSingleJsonGroup($this->group); break; default: + // TRANS: Client error displayed trying to execute an unknown API method showing a group. $this->clientError(_('API method not found.'), 404, $this->format); break; } @@ -123,7 +121,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->group)) { @@ -141,7 +138,6 @@ class ApiGroupShowAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->group)) { @@ -149,6 +145,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->group->id, strtotime($this->group->modified)) @@ -168,10 +165,8 @@ class ApiGroupShowAction extends ApiPrivateAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } diff --git a/actions/apihelptest.php b/actions/apihelptest.php index d0e9e4926f..fbe5f12784 100644 --- a/actions/apihelptest.php +++ b/actions/apihelptest.php @@ -44,19 +44,15 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiHelpTestAction extends ApiPrivateAuthAction { - /** * Take arguments for running * * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -70,7 +66,6 @@ class ApiHelpTestAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -85,6 +80,7 @@ class ApiHelpTestAction extends ApiPrivateAuthAction $this->endDocument('json'); } else { $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. _('API method not found.'), 404, $this->format @@ -101,11 +97,8 @@ class ApiHelpTestAction extends ApiPrivateAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } - diff --git a/actions/apimediaupload.php b/actions/apimediaupload.php index 7aa88c186b..0b08dbedf1 100644 --- a/actions/apimediaupload.php +++ b/actions/apimediaupload.php @@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiMediaUploadAction extends ApiAuthAction { /** @@ -57,13 +56,13 @@ class ApiMediaUploadAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format ); @@ -77,9 +76,11 @@ class ApiMediaUploadAction extends ApiAuthAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); - + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientError(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } @@ -96,6 +97,7 @@ class ApiMediaUploadAction extends ApiAuthAction if (isset($upload)) { $this->showResponse($upload); } else { + // TRANS: Client error displayed when uploading a media file has failed. $this->clientError(_('Upload failed.')); return; } @@ -123,7 +125,6 @@ class ApiMediaUploadAction extends ApiAuthAction * Overrided clientError to show a more Twitpic-like error * * @param String $msg an error message - * */ function clientError($msg) { @@ -137,5 +138,4 @@ class ApiMediaUploadAction extends ApiAuthAction $this->elementEnd('rsp'); $this->endDocument(); } - } diff --git a/actions/apioauthaccesstoken.php b/actions/apioauthaccesstoken.php index 887df4c20d..064d05120f 100644 --- a/actions/apioauthaccesstoken.php +++ b/actions/apioauthaccesstoken.php @@ -2,7 +2,8 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Exchange an authorized OAuth request token for an access token + * Action for getting OAuth token credentials (exchange an authorized + * request token for an access token) * * PHP version 5 * @@ -34,7 +35,8 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR . '/lib/apioauth.php'; /** - * Exchange an authorized OAuth request token for an access token + * Action for getting OAuth token credentials (exchange an authorized + * request token for an access token) * * @category API * @package StatusNet @@ -42,9 +44,10 @@ require_once INSTALLDIR . '/lib/apioauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiOauthAccessTokenAction extends ApiOauthAction { + protected $reqToken = null; + protected $verifier = null; /** * Class handler. @@ -63,32 +66,61 @@ class ApiOauthAccessTokenAction extends ApiOauthAction $server->add_signature_method($hmac_method); - $atok = null; + $atok = $app = null; + + // XXX: Insist that oauth_token and oauth_verifier be populated? + // Spec doesn't say they MUST be. try { $req = OAuthRequest::from_request(); - $atok = $server->fetch_access_token($req); - } catch (OAuthException $e) { + $this->reqToken = $req->get_parameter('oauth_token'); + $this->verifier = $req->get_parameter('oauth_verifier'); + + $app = $datastore->getAppByRequestToken($this->reqToken); + $atok = $server->fetch_access_token($req); + } catch (Exception $e) { common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); common_debug(var_export($req, true)); - $this->outputError($e->getMessage()); - return; + $code = $e->getCode(); + $this->clientError($e->getMessage(), empty($code) ? 401 : $code, 'text'); } if (empty($atok)) { - common_debug('couldn\'t get access token.'); - print "Token exchange failed. Has the request token been authorized?\n"; + // Token exchange failed -- log it + + $msg = sprintf( + 'API OAuth - Failure exchanging OAuth request token for access token, ' + . 'request token = %s, verifier = %s', + $this->reqToken, + $this->verifier + ); + + common_log(LOG_WARNING, $msg); + // TRANS: Client error given from the OAuth API when the request token or verifier is invalid. + $this->clientError(_("Invalid request token or verifier.", 400, 'text')); } else { - print $atok; + common_log( + LOG_INFO, + sprintf( + "Issued access token '%s' for application %d (%s).", + $atok->key, + $app->id, + $app->name + ) + ); + $this->showAccessToken($atok); } } - function outputError($msg) + /* + * Display OAuth token credentials + * + * @param OAuthToken token the access token + */ + function showAccessToken($token) { - header('HTTP/1.1 401 Unauthorized'); - header('Content-Type: text/html; charset=utf-8'); - print $msg . "\n"; + header('Content-Type: application/x-www-form-urlencoded'); + print $token; } } - diff --git a/actions/apioauthauthorize.php b/actions/apioauthauthorize.php index e7c6f37611..d76ae060f2 100644 --- a/actions/apioauthauthorize.php +++ b/actions/apioauthauthorize.php @@ -32,9 +32,10 @@ if (!defined('STATUSNET')) { } require_once INSTALLDIR . '/lib/apioauth.php'; +require_once INSTALLDIR . '/lib/info.php'; /** - * Authorize an OAuth request token + * Authorize an Oputh request token * * @category API * @package StatusNet @@ -42,10 +43,10 @@ require_once INSTALLDIR . '/lib/apioauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - -class ApiOauthAuthorizeAction extends ApiOauthAction +class ApiOauthAuthorizeAction extends Action { - var $oauth_token; + var $oauthTokenParam; + var $reqToken; var $callback; var $app; var $nickname; @@ -57,7 +58,6 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return boolean false */ - function isReadOnly($args) { return false; @@ -67,12 +67,17 @@ class ApiOauthAuthorizeAction extends ApiOauthAction { parent::prepare($args); - $this->nickname = $this->trimmed('nickname'); - $this->password = $this->arg('password'); - $this->oauth_token = $this->arg('oauth_token'); - $this->callback = $this->arg('oauth_callback'); - $this->store = new ApiStatusNetOAuthDataStore(); - $this->app = $this->store->getAppByRequestToken($this->oauth_token); + $this->nickname = $this->trimmed('nickname'); + $this->password = $this->arg('password'); + $this->oauthTokenParam = $this->arg('oauth_token'); + $this->mode = $this->arg('mode'); + $this->store = new ApiStatusNetOAuthDataStore(); + + try { + $this->app = $this->store->getAppByRequestToken($this->oauthTokenParam); + } catch (Exception $e) { + $this->clientError($e->getMessage()); + } return true; } @@ -86,7 +91,6 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -97,14 +101,32 @@ class ApiOauthAuthorizeAction extends ApiOauthAction } else { - if (empty($this->oauth_token)) { + // Make sure a oauth_token parameter was provided + if (empty($this->oauthTokenParam)) { + // TRANS: Client error given when no oauth_token was passed to the OAuth API. $this->clientError(_('No oauth_token parameter provided.')); - return; + } else { + + // Check to make sure the token exists + $this->reqToken = $this->store->getTokenByKey($this->oauthTokenParam); + + if (empty($this->reqToken)) { + // TRANS: Client error given when an invalid request token was passed to the OAuth API. + $this->clientError(_('Invalid request token.')); + } else { + + // Check to make sure we haven't already authorized the token + if ($this->reqToken->state != 0) { + // TRANS: Client error given when an invalid request token was passed to the OAuth API. + $this->clientError(_('Request token already authorized.')); + } + } } + // make sure there's an app associated with this token if (empty($this->app)) { - $this->clientError(_('Invalid token.')); - return; + // TRANS: Client error given when an invalid request token was passed to the OAuth API. + $this->clientError(_('Invalid request token.')); } $name = $this->app->name; @@ -120,8 +142,9 @@ class ApiOauthAuthorizeAction extends ApiOauthAction $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $this->showForm(_('There was a problem with your session token. '. - 'Try again, please.')); + $this->showForm( + // TRANS: Form validation error in API OAuth authorisation because of an invalid session token. + _('There was a problem with your session token. Try again, please.')); return; } @@ -130,8 +153,18 @@ class ApiOauthAuthorizeAction extends ApiOauthAction $user = null; if (!common_logged_in()) { - $user = common_check_user($this->nickname, $this->password); + + // XXX Force credentials check? + + // @fixme this should probably use a unified login form handler + $user = null; + if (Event::handle('StartOAuthLoginCheck', array($this, &$user))) { + $user = common_check_user($this->nickname, $this->password); + } + Event::handle('EndOAuthLoginCheck', array($this, &$user)); + if (empty($user)) { + // TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. $this->showForm(_("Invalid nickname / password!")); return; } @@ -139,101 +172,196 @@ class ApiOauthAuthorizeAction extends ApiOauthAction $user = common_current_user(); } + // fetch the token + $this->reqToken = $this->store->getTokenByKey($this->oauthTokenParam); + assert(!empty($this->reqToken)); + if ($this->arg('allow')) { - // mark the req token as authorized - - $this->store->authorize_token($this->oauth_token); - - // Check to see if there was a previous token associated - // with this user/app and kill it. If the user is doing this she - // probably doesn't want any old tokens anyway. - - $appUser = Oauth_application_user::getByKeys($user, $this->app); - - if (!empty($appUser)) { - $result = $appUser->delete(); - - if (!$result) { - common_log_db_error($appUser, 'DELETE', __FILE__); - throw new ServerException(_('Database error deleting OAuth application user.')); - return; - } + try { + $this->store->authorize_token($this->oauthTokenParam); + } catch (Exception $e) { + $this->serverError($e->getMessage()); } - // associated the authorized req token with the user and the app + common_log( + LOG_INFO, + sprintf( + "API OAuth - User %d (%s) has authorized request token %s for OAuth application %d (%s).", + $user->id, + $user->nickname, + $this->reqToken->tok, + $this->app->id, + $this->app->name + ) + ); - $appUser = new Oauth_application_user(); + // XXX: Make sure we have a oauth_token_association table. The table + // is now in the main schema, but because it is being added with + // a point release, it's unlikely to be there. This code can be + // removed as of 1.0. + $this->ensureOauthTokenAssociationTable(); - $appUser->profile_id = $user->id; - $appUser->application_id = $this->app->id; + $tokenAssoc = new Oauth_token_association(); - // Note: do not copy the access type from the application. - // The access type should always be 0 when the OAuth app - // user record has a request token associated with it. - // Access type gets assigned once an access token has been - // granted. The OAuth app user record then gets updated - // with the new access token and access type. + $tokenAssoc->profile_id = $user->id; + $tokenAssoc->application_id = $this->app->id; + $tokenAssoc->token = $this->oauthTokenParam; + $tokenAssoc->created = common_sql_now(); - $appUser->token = $this->oauth_token; - $appUser->created = common_sql_now(); - - $result = $appUser->insert(); + $result = $tokenAssoc->insert(); if (!$result) { - common_log_db_error($appUser, 'INSERT', __FILE__); - throw new ServerException(_('Database error inserting OAuth application user.')); - return; + common_log_db_error($tokenAssoc, 'INSERT', __FILE__); + // TRANS: Server error displayed when a database action fails. + $this->serverError(_('Database error inserting oauth_token_association.')); } - // if we have a callback redirect and provide the token + $callback = $this->getCallback(); - // A callback specified in the app setup overrides whatever - // is passed in with the request. + if (!empty($callback) && $this->reqToken->verified_callback != 'oob') { + $targetUrl = $this->buildCallbackUrl( + $callback, + array( + 'oauth_token' => $this->oauthTokenParam, + 'oauth_verifier' => $this->reqToken->verifier // 1.0a + ) + ); - if (!empty($this->app->callback_url)) { - $this->callback = $this->app->callback_url; + common_log(LOG_INFO, "Redirecting to callback: $targetUrl"); + + // Redirect the user to the provided OAuth callback + common_redirect($targetUrl, 303); + + } elseif ($this->app->type == 2) { + // Strangely, a web application seems to want to do the OOB + // workflow. Because no callback was specified anywhere. + common_log( + LOG_WARNING, + sprintf( + "API OAuth - No callback provided for OAuth web client ID %s (%s) " + . "during authorization step. Falling back to OOB workflow.", + $this->app->id, + $this->app->name + ) + ); } - if (!empty($this->callback)) { + // Otherwise, inform the user that the rt was authorized + $this->showAuthorized(); + } else if ($this->arg('cancel')) { + common_log( + LOG_INFO, + sprintf( + "API OAuth - User %d (%s) refused to authorize request token %s for OAuth application %d (%s).", + $user->id, + $user->nickname, + $this->reqToken->tok, + $this->app->id, + $this->app->name + ) + ); - $target_url = $this->getCallback($this->callback, - array('oauth_token' => $this->oauth_token)); - - common_redirect($target_url, 303); - } else { - common_debug("callback was empty!"); + try { + $this->store->revoke_token($this->oauthTokenParam, 0); + } catch (Exception $e) { + $this->ServerError($e->getMessage()); } - // otherwise inform the user that the rt was authorized + $callback = $this->getCallback(); - $this->elementStart('p'); + // If there's a callback available, inform the consumer the user + // has refused authorization + if (!empty($callback) && $this->reqToken->verified_callback != 'oob') { + $targetUrl = $this->buildCallbackUrl( + $callback, + array( + 'oauth_problem' => 'user_refused', + ) + ); - // XXX: Do OAuth 1.0a verifier code + common_log(LOG_INFO, "Redirecting to callback: $targetUrl"); - $this->raw(sprintf(_("The request token %s has been authorized. " . - 'Please exchange it for an access token.'), - $this->oauth_token)); + // Redirect the user to the provided OAuth callback + common_redirect($targetUrl, 303); + } - $this->elementEnd('p'); + // otherwise inform the user that authorization for the rt was declined + $this->showCanceled(); - } else if ($this->arg('deny')) { - - $datastore = new ApiStatusNetOAuthDataStore(); - $datastore->revoke_token($this->oauth_token, 0); - - $this->elementStart('p'); - - $this->raw(sprintf(_("The request token %s has been denied and revoked."), - $this->oauth_token)); - - $this->elementEnd('p'); } else { + // TRANS: Client error given on when invalid data was passed through a form in the OAuth API. $this->clientError(_('Unexpected form submission.')); - return; } } + // XXX Remove this function when we hit 1.0 + function ensureOauthTokenAssociationTable() + { + $schema = Schema::get(); + + $reqTokenCols = array( + new ColumnDef('profile_id', 'integer', null, true, 'PRI'), + new ColumnDef('application_id', 'integer', null, true, 'PRI'), + new ColumnDef('token', 'varchar', 255, true, 'PRI'), + new ColumnDef('created', 'datetime', null, false), + new ColumnDef( + 'modified', + 'timestamp', + null, + false, + null, + 'CURRENT_TIMESTAMP', + 'on update CURRENT_TIMESTAMP' + ) + ); + + $schema->ensureTable('oauth_token_association', $reqTokenCols); + } + + /** + * Show body - override to add a special CSS class for the authorize + * page's "desktop mode" (minimal display) + * + * Calls template methods + * + * @return nothing + */ + function showBody() + { + $bodyClasses = array(); + + if ($this->desktopMode()) { + $bodyClasses[] = 'oauth-desktop-mode'; + } + + if (common_current_user()) { + $bodyClasses[] = 'user_in'; + } + + $attrs = array('id' => strtolower($this->trimmed('action'))); + + if (!empty($bodyClasses)) { + $attrs['class'] = implode(' ', $bodyClasses); + } + + $this->elementStart('body', $attrs); + + $this->elementStart('div', array('id' => 'wrap')); + if (Event::handle('StartShowHeader', array($this))) { + $this->showHeader(); + Event::handle('EndShowHeader', array($this)); + } + $this->showCore(); + if (Event::handle('StartShowFooter', array($this))) { + $this->showFooter(); + Event::handle('EndShowFooter', array($this)); + } + $this->elementEnd('div'); + $this->showScripts(); + $this->elementEnd('body'); + } + function showForm($error=null) { $this->error = $error; @@ -253,9 +381,9 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return string title of the page */ - function title() { + // TRANS: Title for a page where a user can confirm/deny account access by an external application. return _('An application would like to connect to your account'); } @@ -264,36 +392,50 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return void */ - function showContent() { $this->elementStart('form', array('method' => 'post', 'id' => 'form_apioauthauthorize', 'class' => 'form_settings', - 'action' => common_local_url('apioauthauthorize'))); + 'action' => common_local_url('ApiOauthAuthorize'))); $this->elementStart('fieldset'); $this->element('legend', array('id' => 'apioauthauthorize_allowdeny'), + // TRANS: Fieldset legend. _('Allow or deny access')); $this->hidden('token', common_session_token()); - $this->hidden('oauth_token', $this->oauth_token); + $this->hidden('mode', $this->mode); + $this->hidden('oauth_token', $this->oauthTokenParam); $this->hidden('oauth_callback', $this->callback); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->elementStart('p'); - if (!empty($this->app->icon)) { + if (!empty($this->app->icon) && $this->app->name != 'anonymous') { $this->element('img', array('src' => $this->app->icon)); } $access = ($this->app->access_type & Oauth_application::$writeAccess) ? 'access and update' : 'access'; - $msg = _('The application <strong>%1$s</strong> by ' . - '<strong>%2$s</strong> would like the ability ' . + if ($this->app->name == 'anonymous') { + // Special message for the anonymous app and consumer. + // TRANS: User notification of external application requesting account access. + // TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. + $msg = _('An application would like the ability ' . 'to <strong>%3$s</strong> your %4$s account data. ' . 'You should only give access to your %4$s account ' . 'to third parties you trust.'); + } else { + // TRANS: User notification of external application requesting account access. + // TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, + // TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. + $msg = _('The application <strong>%1$s</strong> by ' . + '<strong>%2$s</strong> would like the ability ' . + 'to <strong>%3$s</strong> your %4$s account data. ' . + 'You should only give access to your %4$s account ' . + 'to third parties you trust.'); + } $this->raw(sprintf($msg, $this->app->name, @@ -304,34 +446,43 @@ class ApiOauthAuthorizeAction extends ApiOauthAction $this->elementEnd('li'); $this->elementEnd('ul'); + // quickie hack + $button = false; if (!common_logged_in()) { + if (Event::handle('StartOAuthLoginForm', array($this, &$button))) { + $this->elementStart('fieldset'); + // TRANS: Fieldset legend. + $this->element('legend', null, _m('LEGEND','Account')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + // TRANS: Field label on OAuth API authorisation form. + $this->input('nickname', _('Nickname')); + $this->elementEnd('li'); + $this->elementStart('li'); + // TRANS: Field label on OAuth API authorisation form. + $this->password('password', _('Password')); + $this->elementEnd('li'); + $this->elementEnd('ul'); - $this->elementStart('fieldset'); - $this->element('legend', null, _('Account')); - $this->elementStart('ul', 'form_data'); - $this->elementStart('li'); - $this->input('nickname', _('Nickname')); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->password('password', _('Password')); - $this->elementEnd('li'); - $this->elementEnd('ul'); - - $this->elementEnd('fieldset'); - + $this->elementEnd('fieldset'); + } + Event::handle('EndOAuthLoginForm', array($this, &$button)); } - $this->element('input', array('id' => 'deny_submit', + $this->element('input', array('id' => 'cancel_submit', 'class' => 'submit submit form_action-primary', - 'name' => 'deny', + 'name' => 'cancel', 'type' => 'submit', - 'value' => _('Deny'))); + // TRANS: Button text that when clicked will cancel the process of allowing access to an account + // TRANS: by an external application. + 'value' => _m('BUTTON','Cancel'))); $this->element('input', array('id' => 'allow_submit', 'class' => 'submit submit form_action-secondary', 'name' => 'allow', 'type' => 'submit', - 'value' => _('Allow'))); + // TRANS: Button text that when clicked will allow access to an account by an external application. + 'value' => $button ? $button : _m('BUTTON','Allow'))); $this->elementEnd('fieldset'); $this->elementEnd('form'); @@ -345,10 +496,10 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return void */ - function getInstructions() { - return _('Allow or deny access to your account information.'); + // TRANS: Form instructions. + return _('Authorize access to your account information.'); } /** @@ -358,18 +509,61 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return void */ - function showLocalNav() { // NOP } + /* + * Checks to see if a the "mode" parameter is present in the request + * and set to "desktop". If it is, the page is meant to be displayed in + * a small frame of another application, and we should suppress the + * header, aside, and footer. + */ + function desktopMode() + { + if (isset($this->mode) && $this->mode == 'desktop') { + return true; + } else { + return false; + } + } + + /* + * Override - suppress output in "desktop" mode + */ + function showHeader() + { + if ($this->desktopMode() == false) { + parent::showHeader(); + } + } + + /* + * Override - suppress output in "desktop" mode + */ + function showAside() + { + if ($this->desktopMode() == false) { + parent::showAside(); + } + } + + /* + * Override - suppress output in "desktop" mode + */ + function showFooter() + { + if ($this->desktopMode() == false) { + parent::showFooter(); + } + } + /** * Show site notice. * * @return nothing */ - function showSiteNotice() { // NOP @@ -382,10 +576,165 @@ class ApiOauthAuthorizeAction extends ApiOauthAction * * @return nothing */ - function showNoticeForm() { // NOP } + /* + * Show a nice message confirming the authorization + * operation was canceled. + * + * @return nothing + */ + function showCanceled() + { + $info = new InfoAction( + // TRANS: Header for user notification after revoking OAuth access to an application. + _('Authorization canceled.'), + sprintf( + // TRANS: User notification after revoking OAuth access to an application. + // TRANS: %s is an OAuth token. + _('The request token %s has been revoked.'), + $this->oauthTokenParam + ) + ); + + $info->showPage(); + } + + /* + * Show a nice message that the authorization was successful. + * If the operation is out-of-band, show a pin. + * + * @return nothing + */ + function showAuthorized() + { + $title = null; + $msg = null; + + if ($this->app->name == 'anonymous') { + + $title = + // TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. + _('You have successfully authorized the application'); + + $msg = + // TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. + _('Please return to the application and enter the following security code to complete the process.'); + + } else { + + $title = sprintf( + // TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. + // TRANS: %s is the authorised application name. + _('You have successfully authorized %s'), + $this->app->name + ); + + $msg = sprintf( + // TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. + // TRANS: %s is the authorised application name. + _('Please return to %s and enter the following security code to complete the process.'), + $this->app->name + ); + + } + + if ($this->reqToken->verified_callback == 'oob') { + $pin = new ApiOauthPinAction( + $title, + $msg, + $this->reqToken->verifier, + $this->desktopMode() + ); + $pin->showPage(); + } else { + // NOTE: This would only happen if an application registered as + // a web application but sent in 'oob' for the oauth_callback + // parameter. Usually web apps will send in a callback and + // not use the pin-based workflow. + + $info = new InfoAction( + $title, + $msg, + $this->oauthTokenParam, + $this->reqToken->verifier + ); + + $info->showPage(); + } + } + + /* + * Figure out what the callback should be + */ + function getCallback() + { + $callback = null; + + // Return the verified callback if we have one + if ($this->reqToken->verified_callback != 'oob') { + + $callback = $this->reqToken->verified_callback; + + // Otherwise return the callback that was provided when + // registering the app + if (empty($callback)) { + + common_debug( + "No verified callback found for request token, using application callback: " + . $this->app->callback_url, + __FILE__ + ); + + $callback = $this->app->callback_url; + } + } + + return $callback; + } + + /* + * Properly format the callback URL and parameters so it's + * suitable for a redirect in the OAuth dance + * + * @param string $url the URL + * @param array $params an array of parameters + * + * @return string $url a URL to use for redirecting to + */ + function buildCallbackUrl($url, $params) + { + foreach ($params as $k => $v) { + $url = $this->appendQueryVar( + $url, + OAuthUtil::urlencode_rfc3986($k), + OAuthUtil::urlencode_rfc3986($v) + ); + } + + return $url; + } + + /* + * Append a new query parameter after any existing query + * parameters. + * + * @param string $url the URL + * @prarm string $k the parameter name + * @param string $v value of the paramter + * + * @return string $url the new URL with added parameter + */ + function appendQueryVar($url, $k, $v) { + $url = preg_replace('/(.*)(\?|&)' . $k . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); + $url = substr($url, 0, -1); + if (strpos($url, '?') === false) { + return ($url . '?' . $k . '=' . $v); + } else { + return ($url . '&' . $k . '=' . $v); + } + } } diff --git a/actions/apioauthpin.php b/actions/apioauthpin.php new file mode 100644 index 0000000000..22fb95adb5 --- /dev/null +++ b/actions/apioauthpin.php @@ -0,0 +1,172 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Action for displaying an OAuth verifier pin + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +/** + * Class for displaying an OAuth verifier pin + * + * XXX: I'm pretty sure we don't need to check the logged in state here. -- Zach + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class ApiOauthPinAction extends InfoAction +{ + function __construct($title, $message, $verifier, $desktopMode = false) + { + $this->verifier = $verifier; + $this->title = $title; + $this->desktopMode = $desktopMode; + parent::__construct($title, $message); + } + + /** + * Show body - override to add a special CSS class for the pin pages's + * "desktop mode" (minimal display) + * + * Calls template methods + * + * @return nothing + */ + function showBody() + { + $bodyClasses = array(); + + if ($this->desktopMode) { + $bodyClasses[] = 'oauth-desktop-mode'; + } + + if (common_current_user()) { + $bodyClasses[] = 'user_in'; + } + + $attrs = array('id' => strtolower($this->trimmed('action'))); + + if (!empty($bodyClasses)) { + $attrs['class'] = implode(' ', $bodyClasses); + } + + $this->elementStart('body', $attrs); + + $this->elementStart('div', array('id' => 'wrap')); + if (Event::handle('StartShowHeader', array($this))) { + $this->showHeader(); + Event::handle('EndShowHeader', array($this)); + } + $this->showCore(); + if (Event::handle('StartShowFooter', array($this))) { + $this->showFooter(); + Event::handle('EndShowFooter', array($this)); + } + $this->elementEnd('div'); + $this->showScripts(); + $this->elementEnd('body'); + } + + /** + * A local menu + * + * Shows different login/register actions. + * + * @return void + */ + function showLocalNav() + { + // NOP + } + + /* + * Override - suppress output in "desktop" mode + */ + function showHeader() + { + if ($this->desktopMode == false) { + parent::showHeader(); + } + } + + /* + * Override - suppress output in "desktop" mode + */ + function showAside() + { + if ($this->desktopMode == false) { + parent::showAside(); + } + } + + /* + * Override - suppress output in "desktop" mode + */ + function showFooter() + { + if ($this->desktopMode == false) { + parent::showFooter(); + } + } + + /** + * Show site notice. + * + * @return nothing + */ + function showSiteNotice() + { + // NOP + } + + /** + * Show notice form. + * + * Show the form for posting a new notice + * + * @return nothing + */ + function showNoticeForm() + { + // NOP + } + + /** + * Display content. + * + * @return nothing + */ + function showContent() + { + $this->element('div', array('class' => 'info'), $this->message); + $this->element('div', array('id' => 'oauth_pin'), $this->verifier); + } +} diff --git a/actions/apioauthrequesttoken.php b/actions/apioauthrequesttoken.php index 4fa626d866..31e6387462 100644 --- a/actions/apioauthrequesttoken.php +++ b/actions/apioauthrequesttoken.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Get an OAuth request token + * Issue temporary OAuth credentials (a request token) * * PHP version 5 * @@ -34,7 +34,7 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR . '/lib/apioauth.php'; /** - * Get an OAuth request token + * Issue temporary OAuth credentials (a request token) * * @category API * @package StatusNet @@ -42,7 +42,6 @@ require_once INSTALLDIR . '/lib/apioauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiOauthRequestTokenAction extends ApiOauthAction { /** @@ -51,24 +50,22 @@ class ApiOauthRequestTokenAction extends ApiOauthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); - $this->callback = $this->arg('oauth_callback'); - - if (!empty($this->callback)) { - common_debug("callback: $this->callback"); - } + // XXX: support "force_login" parameter like Twitter? (Forces the user to enter + // their credentials to ensure the correct users account is authorized.) return true; } /** - * Class handler. + * Handle a request for temporary OAuth credentials + * + * Make sure the request is kosher, then emit a set of temporary + * credentials -- AKA an unauthorized request token. * * @param array $args array of arguments * @@ -85,15 +82,73 @@ class ApiOauthRequestTokenAction extends ApiOauthAction $server->add_signature_method($hmac_method); try { - $req = OAuthRequest::from_request(); + + $req = OAuthRequest::from_request(); + + // verify callback + if (!$this->verifyCallback($req->get_parameter('oauth_callback'))) { + throw new OAuthException( + "You must provide a valid URL or 'oob' in oauth_callback.", + 400 + ); + } + + // check signature and issue a new request token $token = $server->fetch_request_token($req); - print $token; + + common_log( + LOG_INFO, + sprintf( + "API OAuth - Issued request token %s for consumer %s with oauth_callback %s", + $token->key, + $req->get_parameter('oauth_consumer_key'), + "'" . $req->get_parameter('oauth_callback') ."'" + ) + ); + + // return token to the client + $this->showRequestToken($token); + } catch (OAuthException $e) { common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); - header('HTTP/1.1 401 Unauthorized'); - header('Content-Type: text/html; charset=utf-8'); - print $e->getMessage() . "\n"; + + // Return 401 for for bad credentials or signature problems, + // and 400 for missing or unsupported parameters + + $code = $e->getCode(); + $this->clientError($e->getMessage(), empty($code) ? 401 : $code, 'text'); } } + /* + * Display temporary OAuth credentials + */ + function showRequestToken($token) + { + header('Content-Type: application/x-www-form-urlencoded'); + print $token; + print '&oauth_callback_confirmed=true'; + } + + /* Make sure the callback parameter contains either a real URL + * or the string 'oob'. + * + * @todo Check for evil/banned URLs here + * + * @return boolean true or false + */ + function verifyCallback($callback) + { + if ($callback == "oob") { + common_debug("OAuth request token requested for out of band client."); + + // XXX: Should we throw an error if a client is registered as a + // web application but requests the pin based workflow? For now I'm + // allowing the workflow to proceed and issuing a pin. --Zach + + return true; + } else { + return Validate::uri($callback); + } + } } diff --git a/actions/apisearchatom.php b/actions/apisearchatom.php index 60bb8b0408..32ff918da3 100644 --- a/actions/apisearchatom.php +++ b/actions/apisearchatom.php @@ -48,10 +48,8 @@ require_once INSTALLDIR.'/lib/apiprivateauth.php'; * * @see ApiPrivateAuthAction */ - class ApiSearchAtomAction extends ApiPrivateAuthAction { - var $cnt; var $query; var $lang; @@ -70,7 +68,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @see Action::__construct */ - function __construct($output='php://output', $indent=null) { parent::__construct($output, $indent); @@ -81,7 +78,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadonly() { return true; @@ -93,16 +89,13 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * @param array $args Arguments from $_REQUEST * * @return boolean success - * */ - function prepare($args) { common_debug("in apisearchatom prepare()"); parent::prepare($args); - $this->query = $this->trimmed('q'); $this->lang = $this->trimmed('lang'); $this->rpp = $this->trimmed('rpp'); @@ -121,7 +114,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction $this->page = 1; } - // TODO: Suppport since_id -- we need to tweak the backend + // TODO: Suppport max_id -- we need to tweak the backend // Search classes to support it. $this->since_id = $this->trimmed('since_id'); @@ -139,7 +132,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -154,7 +146,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return array an array of Notice objects sorted in reverse chron */ - function getNotices() { // TODO: Support search operators like from: and to:, boolean, etc. @@ -180,13 +171,16 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction if ($this->cnt > 0) { while ($notice->fetch()) { - ++$cnt; if (!$this->max_id) { $this->max_id = $notice->id; } + if ($this->since_id && $notice->id <= $this->since_id) { + break; + } + if ($cnt > $this->rpp) { break; } @@ -203,7 +197,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function showAtom() { $notices = $this->getNotices(); @@ -212,7 +205,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction $this->showFeed(); foreach ($notices as $n) { - $profile = $n->getProfile(); // Don't show notices from deleted users @@ -230,7 +222,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function showFeed() { // TODO: A9 OpenSearch stuff like search.twitter.com? @@ -278,6 +269,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction 'rel' => 'self', 'href' => $self_uri)); + // @todo Needs i18n? $this->element('title', null, "$this->query - $sitename Search"); $this->element('updated', null, common_date_iso8601('now')); @@ -313,7 +305,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction 'rel' => 'previous', 'href' => $previous_uri)); } - } /** @@ -324,7 +315,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function showEntry($notice) { $server = common_config('site', 'server'); @@ -356,10 +346,10 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction if ($ns) { if (!empty($ns->name) && !empty($ns->url)) { $source = '<a href="' - . htmlspecialchars($ns->url) - . '" rel="nofollow">' - . htmlspecialchars($ns->name) - . '</a>'; + . htmlspecialchars($ns->url) + . '" rel="nofollow">' + . htmlspecialchars($ns->name) + . '</a>'; } else { $source = $ns->code; } @@ -372,6 +362,7 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction $name = $profile->nickname; if ($profile->fullname) { + // @todo Needs proper i18n? $name .= ' (' . $profile->fullname . ')'; } @@ -387,7 +378,6 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function initAtom() { header('Content-Type: application/atom+xml; charset=utf-8'); @@ -399,10 +389,8 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction * * @return void */ - function endAtom() { $this->elementEnd('feed'); } - } diff --git a/actions/apisearchjson.php b/actions/apisearchjson.php index e44634684d..dd442b7f24 100644 --- a/actions/apisearchjson.php +++ b/actions/apisearchjson.php @@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/jsonsearchresultslist.php'; * @link http://status.net/ * @see ApiAction */ - class ApiSearchJSONAction extends ApiPrivateAuthAction { var $query; @@ -62,7 +61,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction * * @return boolean true if nothing goes wrong */ - function prepare($args) { common_debug("apisearchjson prepare()"); @@ -87,6 +85,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction $this->page = 1; } + // TODO: Suppport max_id -- we need to tweak the backend + // Search classes to support it. + $this->since_id = $this->trimmed('since_id'); $this->geocode = $this->trimmed('geocode'); @@ -100,7 +101,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -112,10 +112,8 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction * * @return void */ - function showResults() { - // TODO: Support search operators like from: and to:, boolean, etc. $notice = new Notice(); @@ -132,9 +130,9 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction $cnt = $notice->find(); } - // TODO: since_id, lang, geocode + // TODO: max_id, lang, geocode - $results = new JSONSearchResultsList($notice, $q, $this->rpp, $this->page); + $results = new JSONSearchResultsList($notice, $q, $this->rpp, $this->page, $this->since_id); $this->initDocument('json'); $results->show(); @@ -146,7 +144,6 @@ class ApiSearchJSONAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; diff --git a/actions/apistatusesdestroy.php b/actions/apistatusesdestroy.php index 0dfeb48122..d73e574b3c 100644 --- a/actions/apistatusesdestroy.php +++ b/actions/apistatusesdestroy.php @@ -55,7 +55,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusesDestroyAction extends ApiAuthAction { var $status = null; @@ -66,9 +65,7 @@ class ApiStatusesDestroyAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -94,13 +91,13 @@ class ApiStatusesDestroyAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed trying to execute an unknown API method deleting a status. _('API method not found.'), 404 ); @@ -109,6 +106,8 @@ class ApiStatusesDestroyAction extends ApiAuthAction if (!in_array($_SERVER['REQUEST_METHOD'], array('POST', 'DELETE'))) { $this->clientError( + // TRANS: Client error displayed trying to delete a status not using POST or DELETE. + // TRANS: POST and DELETE should not be translated. _('This method requires a POST or DELETE.'), 400, $this->format @@ -118,6 +117,7 @@ class ApiStatusesDestroyAction extends ApiAuthAction if (empty($this->notice)) { $this->clientError( + // TRANS: Client error displayed trying to delete a status with an invalid ID. _('No status found with that ID.'), 404, $this->format ); @@ -125,13 +125,14 @@ class ApiStatusesDestroyAction extends ApiAuthAction } if ($this->user->id == $this->notice->profile_id) { - $replies = new Reply; - $replies->get('notice_id', $this->notice_id); - $replies->delete(); - $this->notice->delete(); + if (Event::handle('StartDeleteOwnNotice', array($this->user, $this->notice))) { + $this->notice->delete(); + Event::handle('EndDeleteOwnNotice', array($this->user, $this->notice)); + } $this->showNotice(); } else { $this->clientError( + // TRANS: Client error displayed trying to delete a status of another user. _('You may not delete another user\'s status.'), 403, $this->format @@ -144,7 +145,6 @@ class ApiStatusesDestroyAction extends ApiAuthAction * * @return void */ - function showNotice() { if (!empty($this->notice)) { @@ -155,5 +155,4 @@ class ApiStatusesDestroyAction extends ApiAuthAction } } } - } diff --git a/actions/apistatusesretweet.php b/actions/apistatusesretweet.php index 9aa3374854..ecc4a3f033 100644 --- a/actions/apistatusesretweet.php +++ b/actions/apistatusesretweet.php @@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusesRetweetAction extends ApiAuthAction { var $original = null; @@ -54,14 +53,13 @@ class ApiStatusesRetweetAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error. POST is a HTTP command. It should not be translated. $this->clientError(_('This method requires a POST.'), 400, $this->format); return false; @@ -72,6 +70,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction $this->original = Notice::staticGet('id', $id); if (empty($this->original)) { + // TRANS: Client error displayed trying to repeat a non-existing notice through the API. $this->clientError(_('No such notice.'), 400, $this->format); return false; @@ -80,6 +79,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction $this->user = $this->auth_user; if ($this->user->id == $this->original->profile_id) { + // TRANS: Client error displayed trying to repeat an own notice through the API. $this->clientError(_('Cannot repeat your own notice.'), 400, $this->format); return false; @@ -88,6 +88,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction $profile = $this->user->getProfile(); if ($profile->hasRepeated($id)) { + // TRANS: Client error displayed trying to re-repeat a notice through the API. $this->clientError(_('Already repeated that notice.'), 400, $this->format); return false; @@ -105,15 +106,12 @@ class ApiStatusesRetweetAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); $repeat = $this->original->repeat($this->user->id, $this->source); - - $this->showNotice($repeat); } @@ -122,7 +120,6 @@ class ApiStatusesRetweetAction extends ApiAuthAction * * @return void */ - function showNotice($notice) { if (!empty($notice)) { diff --git a/actions/apistatusesretweets.php b/actions/apistatusesretweets.php index a79d43168e..cc7caee19d 100644 --- a/actions/apistatusesretweets.php +++ b/actions/apistatusesretweets.php @@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusesRetweetsAction extends ApiAuthAction { const MAXCOUNT = 100; @@ -57,9 +56,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -69,6 +66,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction $this->original = Notice::staticGet('id', $id); if (empty($this->original)) { + // TRANS: Client error displayed trying to display redents of a non-exiting notice. $this->clientError(_('No such notice.'), 400, $this->format); return false; @@ -94,7 +92,6 @@ class ApiStatusesRetweetsAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -109,6 +106,7 @@ class ApiStatusesRetweetsAction extends ApiAuthAction $this->showJsonTimeline($strm); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } diff --git a/actions/apistatusesshow.php b/actions/apistatusesshow.php index 476820a43d..80b0374a63 100644 --- a/actions/apistatusesshow.php +++ b/actions/apistatusesshow.php @@ -55,10 +55,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusesShowAction extends ApiPrivateAuthAction { - var $notice_id = null; var $notice = null; @@ -68,9 +66,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -100,17 +96,27 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); - if (!in_array($this->format, array('xml', 'json'))) { - $this->clientError(_('API method not found.'), $code = 404); + if (!in_array($this->format, array('xml', 'json', 'atom'))) { + // TRANS: Client error displayed when trying to handle an unknown API method. + $this->clientError(_('API method not found.'), 404); return; } - $this->showNotice(); + switch ($_SERVER['REQUEST_METHOD']) { + case 'GET': + $this->showNotice(); + break; + case 'DELETE': + $this->deleteNotice(); + break; + default: + $this->clientError(_('HTTP method not supported.'), 405); + return; + } } /** @@ -118,17 +124,23 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction * * @return void */ - function showNotice() { if (!empty($this->notice)) { - if ($this->format == 'xml') { + switch ($this->format) { + case 'xml': $this->showSingleXmlStatus($this->notice); - } elseif ($this->format == 'json') { + break; + case 'json': $this->show_single_json_status($this->notice); + break; + case 'atom': + $this->showSingleAtomStatus($this->notice); + break; + default: + throw new Exception(sprintf(_("Unsupported format: %s"), $this->format)); } } else { - // XXX: Twitter just sets a 404 header and doens't bother // to return an err msg @@ -136,12 +148,14 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction if (!empty($deleted)) { $this->clientError( + // TRANS: Client error displayed requesting a deleted status. _('Status deleted.'), 410, $this->format ); } else { $this->clientError( + // TRANS: Client error displayed requesting a status with an invalid ID. _('No status with that ID found.'), 404, $this->format @@ -151,16 +165,16 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction } /** - * Is this action read only? + * We expose AtomPub here, so non-GET/HEAD reqs must be read/write. * * @param array $args other arguments * * @return boolean true */ - + function isReadOnly($args) { - return true; + return ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'HEAD'); } /** @@ -168,7 +182,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notice)) { @@ -186,7 +199,6 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->notice)) { @@ -194,6 +206,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->notice->id, strtotime($this->notice->created)) @@ -204,4 +217,30 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction return null; } + function deleteNotice() + { + if ($this->format != 'atom') { + $this->clientError(_("Can only delete using the Atom format.")); + return; + } + + if (empty($this->auth_user) || + ($this->notice->profile_id != $this->auth_user->id && + !$this->auth_user->hasRight(Right::DELETEOTHERSNOTICE))) { + $this->clientError(_('Can\'t delete this notice.'), 403); + return; + } + + if (Event::handle('StartDeleteOwnNotice', array($this->auth_user, $this->notice))) { + $this->notice->delete(); + Event::handle('EndDeleteOwnNotice', array($this->auth_user, $this->notice)); + } + + // @fixme is there better output we could do here? + + header('HTTP/1.1 200 OK'); + header('Content-Type: text/plain'); + print(sprintf(_('Deleted notice %d'), $this->notice->id)); + print("\n"); + } } diff --git a/actions/apistatusesupdate.php b/actions/apistatusesupdate.php index fa3f611c0a..a8ec7f8bb9 100644 --- a/actions/apistatusesupdate.php +++ b/actions/apistatusesupdate.php @@ -55,7 +55,7 @@ Yes @param status (Required) The URL-encoded text of the status update. - @param source (Optional) The source of the status. + @param source (Optional) The source application name, if using HTTP authentication or an anonymous OAuth consumer. @param in_reply_to_status_id (Optional) The ID of an existing status that the update is in reply to. @param lat (Optional) The latitude the status refers to. @param long (Optional) The longitude the status refers to. @@ -67,7 +67,7 @@ @subsection usagenotes Usage notes @li The URL pattern is relative to the @ref apiroot. - @li If the @e source parameter is not supplied the source of the status will default to 'api'. + @li If the @e source parameter is not supplied the source of the status will default to 'api'. When authenticated via a registered OAuth application, the application's registered name and URL will always override the source parameter. @li The XML response uses <a href="http://georss.org/Main_Page">GeoRSS</a> to encode the latitude and longitude (see example response below <georss:point>). @li Data uploaded via the @e media parameter should be multipart/form-data encoded. @@ -147,10 +147,8 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusesUpdateAction extends ApiAuthAction { - var $source = null; var $status = null; var $in_reply_to_status_id = null; var $lat = null; @@ -162,9 +160,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -188,13 +184,13 @@ class ApiStatusesUpdateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { $this->clientError( + // TRANS: Client error. POST is a HTTP command. It should not be translated. _('This method requires a POST.'), 400, $this->format @@ -209,8 +205,11 @@ class ApiStatusesUpdateAction extends ApiAuthAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientError(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; @@ -218,6 +217,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction if (empty($this->status)) { $this->clientError( + // TRANS: Client error displayed when the parameter "status" is missing. _('Client must provide a \'status\' parameter with a value.'), 400, $this->format @@ -226,20 +226,24 @@ class ApiStatusesUpdateAction extends ApiAuthAction } if (empty($this->auth_user)) { + // TRANS: Client error displayed when updating a status for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } - $status_shortened = common_shorten_links($this->status); + $status_shortened = $this->auth_user->shortenlinks($this->status); if (Notice::contentTooLong($status_shortened)) { - // Note: Twitter truncates anything over 140, flags the status // as "truncated." $this->clientError( sprintf( - _('That\'s too long. Max notice size is %d chars.'), + // TRANS: Client error displayed when the parameter "status" is missing. + // TRANS: %d is the maximum number of character for a notice. + _m('That\'s too long. Maximum notice size is %d character.', + 'That\'s too long. Maximum notice size is %d characters.', + Notice::maxContent()), Notice::maxContent() ), 406, @@ -255,7 +259,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction $cmd = $inter->handle_command($this->auth_user, $status_shortened); if ($cmd) { - if ($this->supported($cmd)) { $cmd->execute(new Channel()); } @@ -265,13 +268,10 @@ class ApiStatusesUpdateAction extends ApiAuthAction // or not! $this->notice = $this->auth_user->getCurrentNotice(); - } else { - $reply_to = null; if (!empty($this->in_reply_to_status_id)) { - // Check whether notice actually exists $reply = Notice::staticGet($this->in_reply_to_status_id); @@ -280,7 +280,8 @@ class ApiStatusesUpdateAction extends ApiAuthAction $reply_to = $this->in_reply_to_status_id; } else { $this->clientError( - _('Not found.'), + // TRANS: Client error displayed when replying to a non-existing notice. + _('Parent notice not found.'), $code = 404, $this->format ); @@ -302,10 +303,11 @@ class ApiStatusesUpdateAction extends ApiAuthAction if (Notice::contentTooLong($status_shortened)) { $upload->delete(); - $msg = _( - 'Max notice size is %d chars, ' . - 'including attachment URL.' - ); + // TRANS: Client error displayed exceeding the maximum notice length. + // TRANS: %d is the maximum lenth for a notice. + $msg = _m('Maximum notice size is %d character, including attachment URL.', + 'Maximum notice size is %d characters, including attachment URL.', + Notice::maxContent()); $this->clientError( sprintf($msg, Notice::maxContent()), 400, @@ -344,7 +346,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction if (isset($upload)) { $upload->attachToNotice($this->notice); } - } $this->showNotice(); @@ -355,7 +356,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction * * @return void */ - function showNotice() { if (!empty($this->notice)) { @@ -374,7 +374,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction * * @return boolean true or false */ - function supported($cmd) { static $cmdlist = array('MessageCommand', 'SubCommand', 'UnsubCommand', @@ -386,5 +385,4 @@ class ApiStatusesUpdateAction extends ApiAuthAction return false; } - } diff --git a/actions/apistatusnetconfig.php b/actions/apistatusnetconfig.php index 76d37ea97f..771a95baec 100644 --- a/actions/apistatusnetconfig.php +++ b/actions/apistatusnetconfig.php @@ -46,7 +46,6 @@ 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 ApiStatusnetConfigAction extends ApiAction { var $keys = array( @@ -69,9 +68,7 @@ class ApiStatusnetConfigAction extends ApiAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -85,7 +82,6 @@ class ApiStatusnetConfigAction extends ApiAction * * @return void */ - function handle($args) { parent::handle($args); @@ -138,6 +134,7 @@ class ApiStatusnetConfigAction extends ApiAction break; default: $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -155,11 +152,8 @@ class ApiStatusnetConfigAction extends ApiAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } - diff --git a/actions/apistatusnetversion.php b/actions/apistatusnetversion.php index d094807597..bc2babc3f2 100644 --- a/actions/apistatusnetversion.php +++ b/actions/apistatusnetversion.php @@ -47,7 +47,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiStatusnetVersionAction extends ApiPrivateAuthAction { /** @@ -58,7 +57,6 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -72,7 +70,6 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -90,6 +87,7 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction break; default: $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -107,11 +105,8 @@ class ApiStatusnetVersionAction extends ApiPrivateAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } - diff --git a/actions/apisubscriptions.php b/actions/apisubscriptions.php index 63d65f2893..fc0a2638b6 100644 --- a/actions/apisubscriptions.php +++ b/actions/apisubscriptions.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiSubscriptionsAction extends ApiBareAuthAction { var $profiles = null; @@ -62,9 +61,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -84,6 +81,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed when requesting a list of followers for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return false; } @@ -102,12 +100,12 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (!in_array($this->format, array('xml', 'json'))) { + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); return; } @@ -128,7 +126,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return array Profiles */ - function getProfiles() { } @@ -140,7 +137,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -151,7 +147,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return string datestamp of the latest profile in the stream */ - function lastModified() { if (!empty($this->profiles) && (count($this->profiles) > 0)) { @@ -171,7 +166,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->profiles) && (count($this->profiles) > 0)) { @@ -181,8 +175,10 @@ class ApiSubscriptionsAction extends ApiBareAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, + // Caching tags. isset($this->ids_only) ? 'IDs' : 'Profiles', strtotime($this->profiles[0]->created), strtotime($this->profiles[$last]->created)) @@ -201,7 +197,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return void */ - function showProfiles($include_statuses = true) { switch ($this->format) { @@ -229,6 +224,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction print json_encode($arrays); break; default: + // TRANS: Client error displayed when requesting profiles of followers in an unsupported format. $this->clientError(_('Unsupported format.')); break; } @@ -240,7 +236,6 @@ class ApiSubscriptionsAction extends ApiBareAuthAction * * @return void */ - function showIds() { switch ($this->format) { @@ -259,9 +254,9 @@ class ApiSubscriptionsAction extends ApiBareAuthAction print json_encode($ids); break; default: + // TRANS: Client error displayed when requesting IDs of followers in an unsupported format. $this->clientError(_('Unsupported format.')); break; } } - } diff --git a/actions/apitimelinefavorites.php b/actions/apitimelinefavorites.php index 7228960c0b..c952c46238 100644 --- a/actions/apitimelinefavorites.php +++ b/actions/apitimelinefavorites.php @@ -48,7 +48,6 @@ require_once INSTALLDIR.'/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineFavoritesAction extends ApiBareAuthAction { var $notices = null; @@ -59,9 +58,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -69,6 +66,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -87,7 +85,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -99,7 +96,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return void */ - function showTimeline() { $profile = $this->user->getProfile(); @@ -107,6 +103,8 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction $sitename = common_config('site', 'name'); $title = sprintf( + // TRANS: Title for timeline of most recent favourite notices by a user. + // TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. _('%1$s / Favorites from %2$s'), $sitename, $this->user->nickname @@ -116,7 +114,10 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction $id = "tag:$taguribase:Favorites:" . $this->user->id; $subtitle = sprintf( - _('%1$s updates favorited by %2$s / %2$s.'), + // TRANS: Subtitle for timeline of most recent favourite notices by a user. + // TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, + // TRANS: %3$s is a user nickname. + _('%1$s updates favorited by %2$s / %3$s.'), $sitename, $profile->getBestName(), $this->user->nickname @@ -148,7 +149,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); $atom = new AtomNoticeFeed($this->auth_user); @@ -165,12 +165,12 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); - break; case 'json': $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -181,7 +181,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -220,7 +219,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -231,7 +229,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -249,7 +246,6 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -259,6 +255,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, strtotime($this->notices[0]->created), @@ -269,5 +266,4 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction return null; } - } diff --git a/actions/apitimelinefriends.php b/actions/apitimelinefriends.php index 40ce35979b..71049f6eb1 100644 --- a/actions/apitimelinefriends.php +++ b/actions/apitimelinefriends.php @@ -151,7 +151,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineFriendsAction extends ApiBareAuthAction { var $notices = null; @@ -164,13 +163,13 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -189,7 +188,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -201,7 +199,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return void */ - function showTimeline() { $profile = $this->user->getProfile(); @@ -246,7 +243,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); $atom = new AtomNoticeFeed($this->auth_user); @@ -268,6 +264,7 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -278,7 +275,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -307,7 +303,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -318,7 +313,6 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -336,16 +330,15 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { - $last = count($this->notices) - 1; return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, strtotime($this->notices[0]->created), @@ -356,5 +349,4 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction return null; } - } diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index 7a40fd8084..a85da4b0f3 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineGroupAction extends ApiPrivateAuthAction { - var $group = null; var $notices = null; @@ -64,7 +62,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -83,12 +80,12 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->group)) { + // TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. $this->clientError(_('Group not found.'), 404, $this->format); return false; } @@ -102,7 +99,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return void */ - function showTimeline() { // We'll pull common formatting out of this for other formats @@ -126,7 +122,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); try { @@ -138,19 +133,21 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction $this->raw($atom->getString()); } catch (Atom10FeedException $e) { $this->serverError( - 'Could not generate feed for group - ' . $e->getMessage(), + // TRANS: Server error displayed when generating an Atom feed fails. + // TRANS: %s is the error. + sprintf(_('Could not generate feed for group - %s'),$e->getMessage()), 400, $this->format ); return; } - break; case 'json': $this->showJsonTimeline($this->notices); break; default: $this->clientError( + // TRANS: Client error displayed when trying to handle an unknown API method. _('API method not found.'), 404, $this->format @@ -164,7 +161,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -190,7 +186,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -201,7 +196,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -219,7 +213,6 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -229,6 +222,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->group->id, strtotime($this->notices[0]->created), @@ -239,5 +233,4 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction return null; } - } diff --git a/actions/apitimelinehome.php b/actions/apitimelinehome.php index 27eb741691..75a9f72580 100644 --- a/actions/apitimelinehome.php +++ b/actions/apitimelinehome.php @@ -56,7 +56,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineHomeAction extends ApiBareAuthAction { var $notices = null; @@ -67,9 +66,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -77,6 +74,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -95,7 +93,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -107,12 +104,12 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return void */ - function showTimeline() { $profile = $this->user->getProfile(); $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); $sitename = common_config('site', 'name'); + // TRANS: Timeline title for user and friends. %s is a user nickname. $title = sprintf(_("%s and friends"), $this->user->nickname); $taguribase = TagURI::base(); $id = "tag:$taguribase:HomeTimeline:" . $this->user->id; @@ -172,6 +169,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -182,7 +180,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -215,7 +212,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -226,7 +222,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -244,7 +239,6 @@ class ApiTimelineHomeAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -254,6 +248,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, strtotime($this->notices[0]->created), @@ -264,5 +259,4 @@ class ApiTimelineHomeAction extends ApiBareAuthAction return null; } - } diff --git a/actions/apitimelinementions.php b/actions/apitimelinementions.php index ed1ad20e32..a9b6d0b3df 100644 --- a/actions/apitimelinementions.php +++ b/actions/apitimelinementions.php @@ -55,10 +55,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineMentionsAction extends ApiBareAuthAction { - var $notices = null; /** @@ -67,9 +65,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -77,6 +73,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed when requesting most recent mentions for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -95,7 +92,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -107,7 +103,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return void */ - function showTimeline() { $profile = $this->user->getProfile(); @@ -115,6 +110,8 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $sitename = common_config('site', 'name'); $title = sprintf( + // TRANS: Title for timeline of most recent mentions of a user. + // TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. _('%1$s / Updates mentioning %2$s'), $sitename, $this->user->nickname ); @@ -128,6 +125,9 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $self = $this->getSelfUri(); $subtitle = sprintf( + // TRANS: Subtitle for timeline of most recent mentions of a user. + // TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, + // TRANS: %3$s is a user's full name. _('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $this->user->nickname, $profile->getBestName() ); @@ -149,7 +149,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); $atom = new AtomNoticeFeed($this->auth_user); @@ -171,6 +170,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -181,7 +181,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -205,7 +204,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -216,7 +214,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -234,7 +231,6 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -244,6 +240,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->user->id, strtotime($this->notices[0]->created), @@ -254,5 +251,4 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction return null; } - } diff --git a/actions/apitimelinepublic.php b/actions/apitimelinepublic.php index f901642882..2745e5d3fe 100644 --- a/actions/apitimelinepublic.php +++ b/actions/apitimelinepublic.php @@ -144,10 +144,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; </statuses> @endverbatim */ - class ApiTimelinePublicAction extends ApiPrivateAuthAction { - var $notices = null; /** @@ -158,7 +156,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -177,7 +174,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -189,16 +185,17 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return void */ - function showTimeline() { $sitename = common_config('site', 'name'); $sitelogo = (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png'); + // TRANS: Title for site timeline. %s is the StatusNet sitename. $title = sprintf(_("%s public timeline"), $sitename); $taguribase = TagURI::base(); $id = "tag:$taguribase:PublicTimeline"; $link = common_local_url('public'); $self = $this->getSelfUri(); + // TRANS: Subtitle for site timeline. %s is the StatusNet sitename. $subtitle = sprintf(_("%s updates from everyone!"), $sitename); switch($this->format) { @@ -238,6 +235,7 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -248,7 +246,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -272,7 +269,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -283,7 +279,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -301,7 +296,6 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -311,6 +305,7 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), strtotime($this->notices[0]->created), strtotime($this->notices[$last]->created)) @@ -320,5 +315,4 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction return null; } - } diff --git a/actions/apitimelineretweetedbyme.php b/actions/apitimelineretweetedbyme.php index af05623cdf..5fe9609159 100644 --- a/actions/apitimelineretweetedbyme.php +++ b/actions/apitimelineretweetedbyme.php @@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineRetweetedByMeAction extends ApiAuthAction { const DEFAULTCOUNT = 20; @@ -64,12 +63,12 @@ class ApiTimelineRetweetedByMeAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); - $this->serverError('Unimplemented.', 503); + // TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. + $this->serverError(_('Unimplemented.'), 503); return false; } @@ -81,7 +80,6 @@ class ApiTimelineRetweetedByMeAction extends ApiAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; diff --git a/actions/apitimelineretweetedtome.php b/actions/apitimelineretweetedtome.php index 73e35c86bf..6213a08eac 100644 --- a/actions/apitimelineretweetedtome.php +++ b/actions/apitimelineretweetedtome.php @@ -42,7 +42,6 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineRetweetedToMeAction extends ApiAuthAction { const DEFAULTCOUNT = 20; @@ -61,9 +60,7 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -88,7 +85,6 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -108,6 +104,7 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction case 'atom': $profile = $this->auth_user->getProfile(); + // TRANS: Title for Atom feed "repeated to me". %s is the user nickname. $title = sprintf(_("Repeated to %s"), $this->auth_user->nickname); $taguribase = TagURI::base(); $id = "tag:$taguribase:RepeatedToMe:" . $this->auth_user->id; @@ -116,8 +113,8 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction $this->showAtomTimeline($strm, $title, $id, $link); break; - default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -132,7 +129,6 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; diff --git a/actions/apitimelineretweetsofme.php b/actions/apitimelineretweetsofme.php index ea922fc427..9cb277279f 100644 --- a/actions/apitimelineretweetsofme.php +++ b/actions/apitimelineretweetsofme.php @@ -43,7 +43,6 @@ require_once INSTALLDIR . '/lib/mediafile.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineRetweetsOfMeAction extends ApiAuthAction { const DEFAULTCOUNT = 20; @@ -62,9 +61,7 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -89,7 +86,6 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -111,6 +107,8 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction case 'atom': $profile = $this->auth_user->getProfile(); + // TRANS: Title of list of repeated notices of the logged in user. + // TRANS: %s is the nickname of the logged in user. $title = sprintf(_("Repeats of %s"), $this->auth_user->nickname); $taguribase = TagURI::base(); $id = "tag:$taguribase:RepeatsOfMe:" . $this->auth_user->id; @@ -147,8 +145,8 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction $this->raw($atom->getString()); break; - default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -163,7 +161,6 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; diff --git a/actions/apitimelinetag.php b/actions/apitimelinetag.php index c7ec172aeb..4dbe1fc0db 100644 --- a/actions/apitimelinetag.php +++ b/actions/apitimelinetag.php @@ -49,10 +49,8 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineTagAction extends ApiPrivateAuthAction { - var $notices = null; /** @@ -61,9 +59,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -85,7 +81,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -97,13 +92,16 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return void */ - function showTimeline() { $sitename = common_config('site', 'name'); $sitelogo = (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png'); + // TRANS: Title for timeline with lastest notices with a given tag. + // TRANS: %s is the tag. $title = sprintf(_("Notices tagged with %s"), $this->tag); $subtitle = sprintf( + // TRANS: Subtitle for timeline with lastest notices with a given tag. + // TRANS: %1$s is the tag, $2$s is the StatusNet sitename. _('Updates tagged with %1$s on %2$s!'), $this->tag, $sitename @@ -136,7 +134,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); $atom = new AtomNoticeFeed($this->auth_user); @@ -158,6 +155,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } @@ -168,7 +166,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return array notices */ - function getNotices() { $notices = array(); @@ -193,7 +190,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -204,7 +200,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -222,7 +217,6 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -232,6 +226,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction return '"' . implode( ':', array($this->arg('action'), + common_user_cache_hash($this->auth_user), common_language(), $this->tag, strtotime($this->notices[0]->created), @@ -242,5 +237,4 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction return null; } - } diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php index 17a2836639..42988a00f6 100644 --- a/actions/apitimelineuser.php +++ b/actions/apitimelineuser.php @@ -57,10 +57,8 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiTimelineUserAction extends ApiBareAuthAction { - var $notices = null; /** @@ -69,9 +67,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction * @param array $args $_REQUEST args * * @return boolean success flag - * */ - function prepare($args) { parent::prepare($args); @@ -79,6 +75,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { + // TRANS: Client error displayed requesting most recent notices for a non-existing user. $this->clientError(_('No such user.'), 404, $this->format); return; } @@ -97,11 +94,15 @@ class ApiTimelineUserAction extends ApiBareAuthAction * * @return void */ - function handle($args) { parent::handle($args); - $this->showTimeline(); + + if ($this->isPost()) { + $this->handlePost(); + } else { + $this->showTimeline(); + } } /** @@ -109,7 +110,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction * * @return void */ - function showTimeline() { $profile = $this->user->getProfile(); @@ -119,9 +119,9 @@ class ApiTimelineUserAction extends ApiBareAuthAction $atom = new AtomUserNoticeFeed($this->user, $this->auth_user); $link = common_local_url( - 'showstream', - array('nickname' => $this->user->nickname) - ); + 'showstream', + array('nickname' => $this->user->nickname) + ); $self = $this->getSelfUri(); @@ -137,21 +137,63 @@ class ApiTimelineUserAction extends ApiBareAuthAction break; case 'rss': $this->showRssTimeline( - $this->notices, - $atom->title, - $link, - $atom->subtitle, - $suplink, - $atom->logo, - $self - ); + $this->notices, + $atom->title, + $link, + $atom->subtitle, + $suplink, + $atom->logo, + $self + ); break; case 'atom': - header('Content-Type: application/atom+xml; charset=utf-8'); $atom->setId($self); $atom->setSelfLink($self); + + // Add navigation links: next, prev, first + // Note: we use IDs rather than pages for navigation; page boundaries + // change too quickly! + + if (!empty($this->next_id)) { + $nextUrl = common_local_url('ApiTimelineUser', + array('format' => 'atom', + 'id' => $this->user->id), + array('max_id' => $this->next_id)); + + $atom->addLink($nextUrl, + array('rel' => 'next', + 'type' => 'application/atom+xml')); + } + + if (($this->page > 1 || !empty($this->max_id)) && !empty($this->notices)) { + + $lastNotice = $this->notices[0]; + $lastId = $lastNotice->id; + + $prevUrl = common_local_url('ApiTimelineUser', + array('format' => 'atom', + 'id' => $this->user->id), + array('since_id' => $lastId)); + + $atom->addLink($prevUrl, + array('rel' => 'prev', + 'type' => 'application/atom+xml')); + } + + if ($this->page > 1 || !empty($this->since_id) || !empty($this->max_id)) { + + $firstUrl = common_local_url('ApiTimelineUser', + array('format' => 'atom', + 'id' => $this->user->id)); + + $atom->addLink($firstUrl, + array('rel' => 'first', + 'type' => 'application/atom+xml')); + + } + $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); @@ -160,10 +202,10 @@ class ApiTimelineUserAction extends ApiBareAuthAction $this->showJsonTimeline($this->notices); break; default: + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); break; } - } /** @@ -171,34 +213,38 @@ class ApiTimelineUserAction extends ApiBareAuthAction * * @return array notices */ - function getNotices() { $notices = array(); - $notice = $this->user->getNotices( - ($this->page-1) * $this->count, $this->count, - $this->since_id, $this->max_id - ); + $notice = $this->user->getNotices(($this->page-1) * $this->count, + $this->count + 1, + $this->since_id, + $this->max_id); while ($notice->fetch()) { - $notices[] = clone($notice); + if (count($notices) < $this->count) { + $notices[] = clone($notice); + } else { + $this->next_id = $notice->id; + break; + } } return $notices; } /** - * Is this action read only? + * We expose AtomPub here, so non-GET/HEAD reqs must be read/write. * * @param array $args other arguments * * @return boolean true */ - + function isReadOnly($args) { - return true; + return ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'HEAD'); } /** @@ -206,7 +252,6 @@ class ApiTimelineUserAction extends ApiBareAuthAction * * @return string datestamp of the latest notice in the stream */ - function lastModified() { if (!empty($this->notices) && (count($this->notices) > 0)) { @@ -224,25 +269,228 @@ class ApiTimelineUserAction extends ApiBareAuthAction * * @return string etag */ - function etag() { if (!empty($this->notices) && (count($this->notices) > 0)) { - $last = count($this->notices) - 1; return '"' . implode( - ':', - array($this->arg('action'), - common_language(), - $this->user->id, - strtotime($this->notices[0]->created), - strtotime($this->notices[$last]->created)) - ) - . '"'; + ':', + array($this->arg('action'), + common_user_cache_hash($this->auth_user), + common_language(), + $this->user->id, + strtotime($this->notices[0]->created), + strtotime($this->notices[$last]->created)) + ) + . '"'; } return null; } + function handlePost() + { + if (empty($this->auth_user) || + $this->auth_user->id != $this->user->id) { + // TRANS: Client error displayed trying to add a notice to another user's timeline. + $this->clientError(_('Only the user can add to their own timeline.')); + return; + } + + // Only handle posts for Atom + if ($this->format != 'atom') { + // TRANS: Client error displayed when using another format than AtomPub. + $this->clientError(_('Only accept AtomPub for Atom feeds.')); + return; + } + + $xml = trim(file_get_contents('php://input')); + if (empty($xml)) { + $this->clientError(_('Atom post must not be empty.')); + } + + $dom = DOMDocument::loadXML($xml); + if (!$dom) { + $this->clientError(_('Atom post must be well-formed XML.')); + } + + if ($dom->documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'entry') { + // TRANS: Client error displayed when not using an Atom entry. + $this->clientError(_('Atom post must be an Atom entry.')); + return; + } + + $activity = new Activity($dom->documentElement); + + if (Event::handle('StartAtomPubNewActivity', array(&$activity))) { + + if ($activity->verb != ActivityVerb::POST) { + // TRANS: Client error displayed when not using the POST verb. + // TRANS: Do not translate POST. + $this->clientError(_('Can only handle POST activities.')); + return; + } + + $note = $activity->objects[0]; + + if (!in_array($note->type, array(ActivityObject::NOTE, + ActivityObject::BLOGENTRY, + ActivityObject::STATUS))) { + // TRANS: Client error displayed when using an unsupported activity object type. + // TRANS: %s is the unsupported activity object type. + $this->clientError(sprintf(_('Cannot handle activity object type "%s".'), + $note->type)); + return; + } + + $saved = $this->postNote($activity); + + Event::handle('EndAtomPubNewActivity', array($activity, $saved)); + } + + if (!empty($saved)) { + header('HTTP/1.1 201 Created'); + header("Location: " . common_local_url('ApiStatusesShow', array('id' => $saved->id, + 'format' => 'atom'))); + $this->showSingleAtomStatus($saved); + } + } + + function postNote($activity) + { + $note = $activity->objects[0]; + + // Use summary as fallback for content + + if (!empty($note->content)) { + $sourceContent = $note->content; + } else if (!empty($note->summary)) { + $sourceContent = $note->summary; + } else if (!empty($note->title)) { + $sourceContent = $note->title; + } else { + // @fixme fetch from $sourceUrl? + // TRANS: Client error displayed when posting a notice without content through the API. + $this->clientError(sprintf(_('No content for notice %d.'), + $note->id)); + return; + } + + // Get (safe!) HTML and text versions of the content + + $rendered = $this->purify($sourceContent); + $content = html_entity_decode(strip_tags($rendered), ENT_QUOTES, 'UTF-8'); + + $shortened = $this->auth_user->shortenLinks($content); + + $options = array('is_local' => Notice::LOCAL_PUBLIC, + 'rendered' => $rendered, + 'replies' => array(), + 'groups' => array(), + 'tags' => array(), + 'urls' => array()); + + // accept remote URI (not necessarily a good idea) + + common_debug("Note ID is {$note->id}"); + + if (!empty($note->id)) { + $notice = Notice::staticGet('uri', trim($note->id)); + + if (!empty($notice)) { + // TRANS: Client error displayed when using another format than AtomPub. + $this->clientError(sprintf(_('Notice with URI "%s" already exists.'), + $note->id)); + return; + } + common_log(LOG_NOTICE, "Saving client-supplied notice URI '$note->id'"); + $options['uri'] = $note->id; + } + + // accept remote create time (also maybe not such a good idea) + + if (!empty($activity->time)) { + common_log(LOG_NOTICE, "Saving client-supplied create time {$activity->time}"); + $options['created'] = common_sql_date($activity->time); + } + + // Check for optional attributes... + + if (!empty($activity->context)) { + + foreach ($activity->context->attention as $uri) { + + $profile = Profile::fromURI($uri); + + if (!empty($profile)) { + $options['replies'] = $uri; + } else { + $group = User_group::staticGet('uri', $uri); + if (!empty($group)) { + $options['groups'] = $uri; + } else { + // @fixme: hook for discovery here + common_log(LOG_WARNING, sprintf(_('AtomPub post with unknown attention URI %s'), $uri)); + } + } + } + + // Maintain direct reply associations + // @fixme what about conversation ID? + + if (!empty($activity->context->replyToID)) { + $orig = Notice::staticGet('uri', + $activity->context->replyToID); + if (!empty($orig)) { + $options['reply_to'] = $orig->id; + } + } + + $location = $activity->context->location; + + if ($location) { + $options['lat'] = $location->lat; + $options['lon'] = $location->lon; + if ($location->location_id) { + $options['location_ns'] = $location->location_ns; + $options['location_id'] = $location->location_id; + } + } + } + + // Atom categories <-> hashtags + + foreach ($activity->categories as $cat) { + if ($cat->term) { + $term = common_canonical_tag($cat->term); + if ($term) { + $options['tags'][] = $term; + } + } + } + + // Atom enclosures -> attachment URLs + foreach ($activity->enclosures as $href) { + // @fixme save these locally or....? + $options['urls'][] = $href; + } + + $saved = Notice::saveNew($this->user->id, + $content, + 'atompub', // TODO: deal with this + $options); + + return $saved; + } + + function purify($content) + { + require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; + + $config = array('safe' => 1, + 'deny_attribute' => 'id,style,on*'); + return htmLawed($content, $config); + } } diff --git a/actions/apitrends.php b/actions/apitrends.php index 5b74636c69..3e854b1096 100644 --- a/actions/apitrends.php +++ b/actions/apitrends.php @@ -44,10 +44,8 @@ require_once INSTALLDIR.'/lib/apiprivateauth.php'; * * @see ApiAction */ - class ApiTrendsAction extends ApiPrivateAuthAction { - var $callback; /** @@ -70,7 +68,6 @@ class ApiTrendsAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -84,7 +81,7 @@ class ApiTrendsAction extends ApiPrivateAuthAction */ function showTrends() { + // TRANS: Server error for unfinished API method showTrends. $this->serverError(_('API method under construction.'), 501); } - -} \ No newline at end of file +} diff --git a/actions/apiuserfollowers.php b/actions/apiuserfollowers.php index e8d92a773e..a5a429259d 100644 --- a/actions/apiuserfollowers.php +++ b/actions/apiuserfollowers.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiUserFollowersAction extends ApiSubscriptionsAction { /** @@ -56,7 +55,6 @@ class ApiUserFollowersAction extends ApiSubscriptionsAction * * @return array Profiles */ - function getProfiles() { $offset = ($this->page - 1) * $this->count; @@ -85,5 +83,4 @@ class ApiUserFollowersAction extends ApiSubscriptionsAction return $profiles; } - } diff --git a/actions/apiuserfriends.php b/actions/apiuserfriends.php index 741a26e588..b77d08097c 100644 --- a/actions/apiuserfriends.php +++ b/actions/apiuserfriends.php @@ -48,7 +48,6 @@ require_once INSTALLDIR . '/lib/apibareauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiUserFriendsAction extends ApiSubscriptionsAction { /** @@ -56,7 +55,6 @@ class ApiUserFriendsAction extends ApiSubscriptionsAction * * @return array Profiles */ - function getProfiles() { $offset = ($this->page - 1) * $this->count; @@ -85,5 +83,4 @@ class ApiUserFriendsAction extends ApiSubscriptionsAction return $profiles; } - } diff --git a/actions/apiuserprofileimage.php b/actions/apiuserprofileimage.php new file mode 100644 index 0000000000..d2cf9a3e57 --- /dev/null +++ b/actions/apiuserprofileimage.php @@ -0,0 +1,135 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Return a user's avatar image + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category API + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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/apiprivateauth.php'; + +/** + * Ouputs avatar URL for a user, specified by screen name. + * Unlike most API endpoints, this returns an HTTP redirect rather than direct data. + * + * @category API + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class ApiUserProfileImageAction extends ApiPrivateAuthAction +{ + /** + * Take arguments for running + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + * + */ + function prepare($args) + { + parent::prepare($args); + $this->user = User::staticGet('nickname', $this->arg('screen_name')); + $this->size = $this->arg('size'); + + return true; + } + + /** + * Handle the request + * + * Check the format and show the user info + * + * @param array $args $_REQUEST data (unused) + * + * @return void + */ + function handle($args) + { + parent::handle($args); + + if (empty($this->user)) { + // TRANS: Client error displayed when requesting user information for a non-existing user. + $this->clientError(_('User not found.'), 404, $this->format); + return; + } + + $profile = $this->user->getProfile(); + + if (empty($profile)) { + // TRANS: Client error displayed when requesting user information for a user without a profile. + $this->clientError(_('User has no profile.')); + return; + } + + $size = $this->avatarSize(); + $avatar = $profile->getAvatar($size); + if ($avatar) { + $url = $avatar->displayUrl(); + } else { + $url = Avatar::defaultImage($size); + } + + // We don't actually output JSON or XML data -- redirect! + common_redirect($url, 302); + } + + /** + * Get the appropriate pixel size for an avatar based on the request... + * + * @return int + */ + private function avatarSize() + { + switch ($this->size) { + case 'mini': + return AVATAR_MINI_SIZE; // 24x24 + case 'bigger': + return AVATAR_PROFILE_SIZE; // Twitter does 73x73, but we do 96x96 + case 'normal': // fall through + default: + return AVATAR_STREAM_SIZE; // 48x48 + } + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } +} diff --git a/actions/apiusershow.php b/actions/apiusershow.php index 28993102c0..fbd4d60598 100644 --- a/actions/apiusershow.php +++ b/actions/apiusershow.php @@ -49,7 +49,6 @@ require_once INSTALLDIR . '/lib/apiprivateauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiUserShowAction extends ApiPrivateAuthAction { /** @@ -60,7 +59,6 @@ class ApiUserShowAction extends ApiPrivateAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -87,17 +85,18 @@ class ApiUserShowAction extends ApiPrivateAuthAction * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->user)) { - $this->clientError(_('Not found.'), 404, $this->format); + // TRANS: Client error displayed when requesting user information for a non-existing user. + $this->clientError(_('User not found.'), 404, $this->format); return; } if (!in_array($this->format, array('xml', 'json'))) { + // TRANS: Client error displayed when trying to handle an unknown API method. $this->clientError(_('API method not found.'), $code = 404); return; } @@ -105,6 +104,7 @@ class ApiUserShowAction extends ApiPrivateAuthAction $profile = $this->user->getProfile(); if (empty($profile)) { + // TRANS: Client error displayed when requesting user information for a user without a profile. $this->clientError(_('User has no profile.')); return; } @@ -120,7 +120,6 @@ class ApiUserShowAction extends ApiPrivateAuthAction $this->showJsonObjects($twitter_user); $this->endDocument('json'); } - } /** @@ -132,10 +131,8 @@ class ApiUserShowAction extends ApiPrivateAuthAction * * @return boolean is read only action? */ - function isReadOnly($args) { return true; } - } diff --git a/actions/atompubfavoritefeed.php b/actions/atompubfavoritefeed.php new file mode 100644 index 0000000000..478a01b7c6 --- /dev/null +++ b/actions/atompubfavoritefeed.php @@ -0,0 +1,374 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Feed of ActivityStreams 'favorite' actions + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Feed of ActivityStreams 'favorite' actions + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubfavoritefeedAction extends ApiAuthAction +{ + private $_profile = null; + private $_faves = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + + $this->_profile = Profile::staticGet('id', $this->trimmed('profile')); + + if (empty($this->_profile)) { + throw new ClientException(_('No such profile'), 404); + } + + $offset = ($this->page-1) * $this->count; + $limit = $this->count + 1; + + $this->_faves = Fave::byProfile($this->_profile->id, + $offset, + $limit); + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + parent::handle($argarray); + + switch ($_SERVER['REQUEST_METHOD']) { + case 'HEAD': + case 'GET': + $this->showFeed(); + break; + case 'POST': + $this->addFavorite(); + break; + default: + throw new ClientException(_('HTTP method not supported.'), 405); + return; + } + + return; + } + + /** + * Show a feed of favorite activity streams objects + * + * @return void + */ + + function showFeed() + { + header('Content-Type: application/atom+xml; charset=utf-8'); + + $url = common_local_url('AtomPubFavoriteFeed', + array('profile' => $this->_profile->id)); + + $feed = new Atom10Feed(true); + + $feed->addNamespace('activity', + 'http://activitystrea.ms/spec/1.0/'); + + $feed->addNamespace('poco', + 'http://portablecontacts.net/spec/1.0'); + + $feed->addNamespace('media', + 'http://purl.org/syndication/atommedia'); + + $feed->id = $url; + + $feed->setUpdated('now'); + + $feed->addAuthor($this->_profile->getBestName(), + $this->_profile->getURI()); + + $feed->setTitle(sprintf(_("%s favorites"), + $this->_profile->getBestName())); + + $feed->setSubtitle(sprintf(_("Notices %s has favorited to on %s"), + $this->_profile->getBestName(), + common_config('site', 'name'))); + + $feed->addLink(common_local_url('showfavorites', + array('nickname' => + $this->_profile->nickname))); + + $feed->addLink($url, + array('rel' => 'self', + 'type' => 'application/atom+xml')); + + // If there's more... + + if ($this->page > 1) { + $feed->addLink($url, + array('rel' => 'first', + 'type' => 'application/atom+xml')); + + $feed->addLink(common_local_url('AtomPubFavoriteFeed', + array('profile' => + $this->_profile->id), + array('page' => + $this->page - 1)), + array('rel' => 'prev', + 'type' => 'application/atom+xml')); + } + + if ($this->_faves->N > $this->count) { + + $feed->addLink(common_local_url('AtomPubFavoriteFeed', + array('profile' => + $this->_profile->id), + array('page' => + $this->page + 1)), + array('rel' => 'next', + 'type' => 'application/atom+xml')); + } + + $i = 0; + + while ($this->_faves->fetch()) { + + // We get one more than needed; skip that one + + $i++; + + if ($i > $this->count) { + break; + } + + $act = $this->_faves->asActivity(); + $feed->addEntryRaw($act->asString(false, false, false)); + } + + $this->raw($feed->getString()); + } + + /** + * add a new favorite + * + * @return void + */ + + function addFavorite() + { + // XXX: Refactor this; all the same for atompub + + if (empty($this->auth_user) || + $this->auth_user->id != $this->_profile->id) { + throw new ClientException(_("Can't add someone else's". + " subscription"), 403); + } + + $xml = file_get_contents('php://input'); + + $dom = DOMDocument::loadXML($xml); + + if ($dom->documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'entry') { + // TRANS: Client error displayed when not using an Atom entry. + throw new ClientException(_('Atom post must be an Atom entry.')); + return; + } + + $activity = new Activity($dom->documentElement); + + $fave = null; + + if (Event::handle('StartAtomPubNewActivity', array(&$activity))) { + + if ($activity->verb != ActivityVerb::FAVORITE) { + // TRANS: Client error displayed when not using the POST verb. + // TRANS: Do not translate POST. + throw new ClientException(_('Can only handle Favorite activities.')); + return; + } + + $note = $activity->objects[0]; + + if (!in_array($note->type, array(ActivityObject::NOTE, + ActivityObject::BLOGENTRY, + ActivityObject::STATUS))) { + throw new ClientException(_('Can only fave notices.')); + return; + } + + $notice = Notice::staticGet('uri', $note->id); + + if (empty($notice)) { + // XXX: import from listed URL or something + throw new ClientException(_('Unknown note.')); + } + + $old = Fave::pkeyGet(array('user_id' => $this->auth_user->id, + 'notice_id' => $notice->id)); + + if (!empty($old)) { + throw new ClientException(_('Already a favorite.')); + } + + $profile = $this->auth_user->getProfile(); + + $fave = Fave::addNew($profile, $notice); + + if (!empty($fave)) { + $this->_profile->blowFavesCache(); + $this->notify($fave, $notice, $this->auth_user); + } + + Event::handle('EndAtomPubNewActivity', array($activity, $fave)); + } + + if (!empty($fave)) { + $act = $fave->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + header('Content-Location: ' . $act->selfLink); + + $this->startXML(); + $this->raw($act->asString(true, true, true)); + $this->endXML(); + } + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } + + /** + * Return last modified, if applicable. + * + * MAY override + * + * @return string last modified http header + */ + function lastModified() + { + // For comparison with If-Last-Modified + // If not applicable, return null + return null; + } + + /** + * Return etag, if applicable. + * + * MAY override + * + * @return string etag http header + */ + + function etag() + { + return null; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return false; + } else { + return true; + } + } + + /** + * Notify the author of the favorite that the user likes their notice + * + * @param Favorite $fave the favorite in question + * @param Notice $notice the notice that's been faved + * @param User $user the user doing the favoriting + * + * @return void + */ + + function notify($fave, $notice, $user) + { + $other = User::staticGet('id', $notice->profile_id); + if ($other && $other->id != $user->id) { + if ($other->email && $other->emailnotifyfav) { + mail_notify_fave($other, $user, $notice); + } + // XXX: notify by IM + // XXX: notify by SMS + } + } +} diff --git a/actions/atompubmembershipfeed.php b/actions/atompubmembershipfeed.php new file mode 100644 index 0000000000..3002576c15 --- /dev/null +++ b/actions/atompubmembershipfeed.php @@ -0,0 +1,355 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Feed of group memberships for a user, in ActivityStreams format + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Feed of group memberships for a user, in ActivityStreams format + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubmembershipfeedAction extends ApiAuthAction +{ + private $_profile = null; + private $_memberships = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + + $profileId = $this->trimmed('profile'); + + $this->_profile = Profile::staticGet('id', $profileId); + + if (empty($this->_profile)) { + throw new ClientException(_('No such profile.'), 404); + } + + $offset = ($this->page-1) * $this->count; + $limit = $this->count + 1; + + $this->_memberships = Group_member::byMember($this->_profile->id, + $offset, + $limit); + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + parent::handle($argarray); + + switch ($_SERVER['REQUEST_METHOD']) { + case 'HEAD': + case 'GET': + $this->showFeed(); + break; + case 'POST': + $this->addMembership(); + break; + default: + throw new ClientException(_('HTTP method not supported.'), 405); + return; + } + + return; + } + + /** + * Show a feed of favorite activity streams objects + * + * @return void + */ + + function showFeed() + { + header('Content-Type: application/atom+xml; charset=utf-8'); + + $url = common_local_url('AtomPubMembershipFeed', + array('profile' => $this->_profile->id)); + + $feed = new Atom10Feed(true); + + $feed->addNamespace('activity', + 'http://activitystrea.ms/spec/1.0/'); + + $feed->addNamespace('poco', + 'http://portablecontacts.net/spec/1.0'); + + $feed->addNamespace('media', + 'http://purl.org/syndication/atommedia'); + + $feed->id = $url; + + $feed->setUpdated('now'); + + $feed->addAuthor($this->_profile->getBestName(), + $this->_profile->getURI()); + + $feed->setTitle(sprintf(_("%s group memberships"), + $this->_profile->getBestName())); + + $feed->setSubtitle(sprintf(_("Groups %s is a member of on %s"), + $this->_profile->getBestName(), + common_config('site', 'name'))); + + $feed->addLink(common_local_url('usergroups', + array('nickname' => + $this->_profile->nickname))); + + $feed->addLink($url, + array('rel' => 'self', + 'type' => 'application/atom+xml')); + + // If there's more... + + if ($this->page > 1) { + $feed->addLink($url, + array('rel' => 'first', + 'type' => 'application/atom+xml')); + + $feed->addLink(common_local_url('AtomPubMembershipFeed', + array('profile' => + $this->_profile->id), + array('page' => + $this->page - 1)), + array('rel' => 'prev', + 'type' => 'application/atom+xml')); + } + + if ($this->_memberships->N > $this->count) { + + $feed->addLink(common_local_url('AtomPubMembershipFeed', + array('profile' => + $this->_profile->id), + array('page' => + $this->page + 1)), + array('rel' => 'next', + 'type' => 'application/atom+xml')); + } + + $i = 0; + + while ($this->_memberships->fetch()) { + + // We get one more than needed; skip that one + + $i++; + + if ($i > $this->count) { + break; + } + + $act = $this->_memberships->asActivity(); + $feed->addEntryRaw($act->asString(false, false, false)); + } + + $this->raw($feed->getString()); + } + + /** + * add a new favorite + * + * @return void + */ + + function addMembership() + { + // XXX: Refactor this; all the same for atompub + + if (empty($this->auth_user) || + $this->auth_user->id != $this->_profile->id) { + throw new ClientException(_("Can't add someone else's". + " membership"), 403); + } + + $xml = file_get_contents('php://input'); + + $dom = DOMDocument::loadXML($xml); + + if ($dom->documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'entry') { + // TRANS: Client error displayed when not using an Atom entry. + throw new ClientException(_('Atom post must be an Atom entry.')); + return; + } + + $activity = new Activity($dom->documentElement); + + $membership = null; + + if (Event::handle('StartAtomPubNewActivity', array(&$activity))) { + + if ($activity->verb != ActivityVerb::JOIN) { + // TRANS: Client error displayed when not using the POST verb. + // TRANS: Do not translate POST. + throw new ClientException(_('Can only handle Join activities.')); + return; + } + + $groupObj = $activity->objects[0]; + + if ($groupObj->type != ActivityObject::GROUP) { + throw new ClientException(_('Can only fave notices.')); + return; + } + + $group = User_group::staticGet('uri', $groupObj->id); + + if (empty($group)) { + // XXX: import from listed URL or something + throw new ClientException(_('Unknown group.')); + } + + $old = Group_member::pkeyGet(array('profile_id' => $this->auth_user->id, + 'group_id' => $group->id)); + + if (!empty($old)) { + throw new ClientException(_('Already a member.')); + } + + $profile = $this->auth_user->getProfile(); + + if (Group_block::isBlocked($group, $profile)) { + // XXX: import from listed URL or something + throw new ClientException(_('Blocked by admin.')); + } + + if (Event::handle('StartJoinGroup', array($group, $this->auth_user))) { + $membership = Group_member::join($group->id, $this->auth_user->id); + Event::handle('EndJoinGroup', array($group, $this->auth_user)); + } + + Event::handle('EndAtomPubNewActivity', array($activity, $membership)); + } + + if (!empty($membership)) { + $act = $membership->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + header('Content-Location: ' . $act->selfLink); + + $this->startXML(); + $this->raw($act->asString(true, true, true)); + $this->endXML(); + } + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } + + /** + * Return last modified, if applicable. + * + * MAY override + * + * @return string last modified http header + */ + function lastModified() + { + // For comparison with If-Last-Modified + // If not applicable, return null + return null; + } + + /** + * Return etag, if applicable. + * + * MAY override + * + * @return string etag http header + */ + + function etag() + { + return null; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return false; + } else { + return true; + } + } +} diff --git a/actions/atompubshowfavorite.php b/actions/atompubshowfavorite.php new file mode 100644 index 0000000000..5fe680bb7b --- /dev/null +++ b/actions/atompubshowfavorite.php @@ -0,0 +1,228 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Show a single favorite in Atom Activity Streams format + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Show a single favorite in Atom Activity Streams format. + * + * Can also be used to delete a favorite. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubshowfavoriteAction extends ApiAuthAction +{ + private $_profile = null; + private $_notice = null; + private $_fave = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + + $profileId = $this->trimmed('profile'); + $noticeId = $this->trimmed('notice'); + + $this->_profile = Profile::staticGet('id', $profileId); + + if (empty($this->_profile)) { + throw new ClientException(_('No such profile.'), 404); + } + + $this->_notice = Notice::staticGet('id', $noticeId); + + if (empty($this->_notice)) { + throw new ClientException(_('No such notice.'), 404); + } + + $this->_fave = Fave::pkeyGet(array('user_id' => $profileId, + 'notice_id' => $noticeId)); + + if (empty($this->_fave)) { + throw new ClientException(_('No such favorite.'), 404); + } + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + parent::handle($argarray); + + switch ($_SERVER['REQUEST_METHOD']) { + case GET: + case HEAD: + $this->showFave(); + break; + case DELETE: + $this->deleteFave(); + break; + default: + throw new ClientException(_('HTTP method not supported.'), + 405); + } + return true; + } + + /** + * Show a single favorite, in ActivityStreams format + * + * @return void + */ + + function showFave() + { + $activity = $this->_fave->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + + $this->startXML(); + $this->raw($activity->asString(true, true, true)); + $this->endXML(); + + return; + } + + /** + * Delete the favorite + * + * @return void + */ + + function deleteFave() + { + if (empty($this->auth_user) || + $this->auth_user->id != $this->_profile->id) { + throw new ClientException(_("Can't delete someone else's". + " favorite"), 403); + } + + $this->_fave->delete(); + + return; + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } + + /** + * Return last modified, if applicable. + * + * MAY override + * + * @return string last modified http header + */ + + function lastModified() + { + return max(strtotime($this->_profile->modified), + strtotime($this->_notice->modified), + strtotime($this->_fave->modified)); + } + + /** + * Return etag, if applicable. + * + * MAY override + * + * @return string etag http header + */ + + function etag() + { + $mtime = strtotime($this->_fave->modified); + + return 'W/"' . implode(':', array('AtomPubShowFavorite', + $this->_profile->id, + $this->_notice->id, + $mtime)) . '"'; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return false; + } else { + return true; + } + } +} diff --git a/actions/atompubshowmembership.php b/actions/atompubshowmembership.php new file mode 100644 index 0000000000..6d848a2290 --- /dev/null +++ b/actions/atompubshowmembership.php @@ -0,0 +1,235 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Show a single membership as an Activity Streams entry + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Show (or delete) a single membership event as an ActivityStreams entry + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubshowmembershipAction extends ApiAuthAction +{ + private $_profile = null; + private $_group = null; + private $_membership = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + + $profileId = $this->trimmed('profile'); + + $this->_profile = Profile::staticGet('id', $profileId); + + if (empty($this->_profile)) { + throw new ClientException(_('No such profile.'), 404); + } + + $groupId = $this->trimmed('group'); + + $this->_group = User_group::staticGet('id', $groupId); + + if (empty($this->_group)) { + throw new ClientException(_('No such group'), 404); + } + + $kv = array('group_id' => $groupId, + 'profile_id' => $profileId); + + $this->_membership = Group_member::pkeyGet($kv); + + if (empty($this->_membership)) { + throw new ClientException(_('Not a member'), 404); + } + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + switch ($_SERVER['REQUEST_METHOD']) { + case 'GET': + case 'HEAD': + $this->showMembership(); + break; + case 'DELETE': + $this->deleteMembership(); + break; + default: + throw new ClientException(_('Method not supported'), 405); + break; + } + return; + } + + /** + * show a single membership + * + * @return void + */ + + function showMembership() + { + $activity = $this->_membership->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + + $this->startXML(); + $this->raw($activity->asString(true, true, true)); + $this->endXML(); + + return; + } + + /** + * Delete the membership (leave the group) + * + * @return void + */ + + function deleteMembership() + { + if (empty($this->auth_user) || + $this->auth_user->id != $this->_profile->id) { + throw new ClientException(_("Can't delete someone else's". + " membership"), 403); + } + + if (Event::handle('StartLeaveGroup', array($this->_group, $this->auth_user))) { + Group_member::leave($this->_group->id, $this->auth_user->id); + Event::handle('EndLeaveGroup', array($this->_group, $this->auth_user)); + } + + return; + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } + + /** + * Return last modified, if applicable. + * + * Because the representation depends on the profile and group, + * our last modified value is the maximum of their mod time + * with the actual membership's mod time. + * + * @return string last modified http header + */ + function lastModified() + { + return max(strtotime($this->_profile->modified), + strtotime($this->_group->modified), + strtotime($this->_membership->modified)); + } + + /** + * Return etag, if applicable. + * + * A "weak" Etag including the profile and group id as well as + * the admin flag and ctime of the membership. + * + * @return string etag http header + */ + + function etag() + { + $ctime = strtotime($this->_membership->created); + + $adminflag = ($this->_membership->is_admin) ? 't' : 'f'; + + return 'W/"' . implode(':', array('AtomPubShowMembership', + $this->_profile->id, + $this->_group->id, + $adminflag, + $ctime)) . '"'; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return false; + } else { + return true; + } + } +} diff --git a/actions/atompubshowsubscription.php b/actions/atompubshowsubscription.php new file mode 100644 index 0000000000..55ba68adc5 --- /dev/null +++ b/actions/atompubshowsubscription.php @@ -0,0 +1,224 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Single subscription + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Show a single subscription + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubshowsubscriptionAction extends ApiAuthAction +{ + private $_subscriber = null; + private $_subscribed = null; + private $_subscription = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + $subscriberId = $this->trimmed('subscriber'); + + $this->_subscriber = Profile::staticGet('id', $subscriberId); + + if (empty($this->_subscriber)) { + throw new ClientException(sprintf(_('No such profile id: %d'), + $subscriberId), 404); + } + + $subscribedId = $this->trimmed('subscribed'); + + $this->_subscribed = Profile::staticGet('id', $subscribedId); + + if (empty($this->_subscribed)) { + throw new ClientException(sprintf(_('No such profile id: %d'), + $subscribedId), 404); + } + + $this->_subscription = + Subscription::pkeyGet(array('subscriber' => $subscriberId, + 'subscribed' => $subscribedId)); + + if (empty($this->_subscription)) { + $msg = sprintf(_('Profile %d not subscribed to profile %d'), + $subscriberId, $subscribedId); + throw new ClientException($msg, 404); + } + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + parent::handle($argarray); + switch ($_SERVER['REQUEST_METHOD']) { + case 'HEAD': + case 'GET': + $this->showSubscription(); + break; + case 'DELETE': + $this->deleteSubscription(); + break; + default: + $this->clientError(_('HTTP method not supported.'), 405); + return; + } + + return; + } + + /** + * Show the subscription in ActivityStreams Atom format. + * + * @return void + */ + + function showSubscription() + { + $activity = $this->_subscription->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + + $this->startXML(); + $this->raw($activity->asString(true, true, true)); + $this->endXML(); + + return; + } + + /** + * Delete the subscription + * + * @return void + */ + + function deleteSubscription() + { + if (empty($this->auth_user) || + $this->auth_user->id != $this->_subscriber->id) { + throw new ClientException(_("Can't delete someone else's". + " subscription"), 403); + } + + Subscription::cancel($this->_subscriber, + $this->_subscribed); + + return; + } + + /** + * Is this action read only? + * + * @param array $args other arguments + * + * @return boolean true + */ + + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'DELETE') { + return false; + } else { + return true; + } + } + + /** + * Return last modified, if applicable. + * + * @return string last modified http header + */ + + function lastModified() + { + return max(strtotime($this->_subscriber->modified), + strtotime($this->_subscribed->modified), + strtotime($this->_subscription->modified)); + } + + /** + * Etag for this object + * + * @return string etag http header + */ + + function etag() + { + $mtime = strtotime($this->_subscription->modified); + + return 'W/"' . implode(':', array('AtomPubShowSubscription', + $this->_subscriber->id, + $this->_subscribed->id, + $mtime)) . '"'; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'DELETE') { + return true; + } else { + return false; + } + } +} diff --git a/actions/atompubsubscriptionfeed.php b/actions/atompubsubscriptionfeed.php new file mode 100644 index 0000000000..15ae79f6a6 --- /dev/null +++ b/actions/atompubsubscriptionfeed.php @@ -0,0 +1,335 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * AtomPub subscription feed + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; + +/** + * Subscription feed class for AtomPub + * + * Generates a list of the user's subscriptions + * + * @category AtomPub + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AtompubsubscriptionfeedAction extends ApiAuthAction +{ + private $_profile = null; + private $_subscriptions = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + + function prepare($argarray) + { + parent::prepare($argarray); + + $subscriber = $this->trimmed('subscriber'); + + $this->_profile = Profile::staticGet('id', $subscriber); + + if (empty($this->_profile)) { + throw new ClientException(sprintf(_('No such profile id: %d'), + $subscriber), 404); + } + + // page and count from ApiAction + + $offset = ($this->page-1) * $this->count; + + $this->_subscriptions = Subscription::bySubscriber($subscriber, + $offset, + $this->count + 1); + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + + function handle($argarray=null) + { + parent::handle($argarray); + switch ($_SERVER['REQUEST_METHOD']) { + case 'HEAD': + case 'GET': + $this->showFeed(); + break; + case 'POST': + $this->addSubscription(); + break; + default: + $this->clientError(_('HTTP method not supported.'), 405); + return; + } + + return; + } + + /** + * Show the feed of subscriptions + * + * @return void + */ + + function showFeed() + { + header('Content-Type: application/atom+xml; charset=utf-8'); + + $url = common_local_url('AtomPubSubscriptionFeed', + array('subscriber' => $this->_profile->id)); + + $feed = new Atom10Feed(true); + + $feed->addNamespace('activity', + 'http://activitystrea.ms/spec/1.0/'); + + $feed->addNamespace('poco', + 'http://portablecontacts.net/spec/1.0'); + + $feed->addNamespace('media', + 'http://purl.org/syndication/atommedia'); + + $feed->id = $url; + + $feed->setUpdated('now'); + + $feed->addAuthor($this->_profile->getBestName(), + $this->_profile->getURI()); + + $feed->setTitle(sprintf(_("%s subscriptions"), + $this->_profile->getBestName())); + + $feed->setSubtitle(sprintf(_("People %s has subscribed to on %s"), + $this->_profile->getBestName(), + common_config('site', 'name'))); + + $feed->addLink(common_local_url('subscriptions', + array('nickname' => + $this->_profile->nickname))); + + $feed->addLink($url, + array('rel' => 'self', + 'type' => 'application/atom+xml')); + + // If there's more... + + if ($this->page > 1) { + $feed->addLink($url, + array('rel' => 'first', + 'type' => 'application/atom+xml')); + + $feed->addLink(common_local_url('AtomPubSubscriptionFeed', + array('subscriber' => + $this->_profile->id), + array('page' => + $this->page - 1)), + array('rel' => 'prev', + 'type' => 'application/atom+xml')); + } + + if ($this->_subscriptions->N > $this->count) { + + $feed->addLink(common_local_url('AtomPubSubscriptionFeed', + array('subscriber' => + $this->_profile->id), + array('page' => + $this->page + 1)), + array('rel' => 'next', + 'type' => 'application/atom+xml')); + } + + $i = 0; + + // XXX: This is kind of inefficient + + while ($this->_subscriptions->fetch()) { + + // We get one more than needed; skip that one + + $i++; + + if ($i > $this->count) { + break; + } + + $act = $this->_subscriptions->asActivity(); + $feed->addEntryRaw($act->asString(false, false, false)); + } + + $this->raw($feed->getString()); + } + + /** + * Add a new subscription + * + * Handling the POST method for AtomPub + * + * @return void + */ + + function addSubscription() + { + if (empty($this->auth_user) || + $this->auth_user->id != $this->_profile->id) { + throw new ClientException(_("Can't add someone else's". + " subscription"), 403); + } + + $xml = file_get_contents('php://input'); + + $dom = DOMDocument::loadXML($xml); + + if ($dom->documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'entry') { + // TRANS: Client error displayed when not using an Atom entry. + $this->clientError(_('Atom post must be an Atom entry.')); + return; + } + + $activity = new Activity($dom->documentElement); + + $sub = null; + + if (Event::handle('StartAtomPubNewActivity', array(&$activity))) { + + if ($activity->verb != ActivityVerb::FOLLOW) { + // TRANS: Client error displayed when not using the POST verb. + // TRANS: Do not translate POST. + $this->clientError(_('Can only handle Follow activities.')); + return; + } + + $person = $activity->objects[0]; + + if ($person->type != ActivityObject::PERSON) { + $this->clientError(_('Can only follow people.')); + return; + } + + // XXX: OStatus discovery (maybe) + + $profile = Profile::fromURI($person->id); + + if (empty($profile)) { + $this->clientError(sprintf(_('Unknown profile %s'), $person->id)); + return; + } + + if (Subscription::start($this->_profile, $profile)) { + $sub = Subscription::pkeyGet(array('subscriber' => $this->_profile->id, + 'subscribed' => $profile->id)); + } + + Event::handle('EndAtomPubNewActivity', array($activity, $sub)); + } + + if (!empty($sub)) { + $act = $sub->asActivity(); + + header('Content-Type: application/atom+xml; charset=utf-8'); + header('Content-Location: ' . $act->selfLink); + + $this->startXML(); + $this->raw($act->asString(true, true, true)); + $this->endXML(); + } + } + + /** + * Return true if read only. + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + return $_SERVER['REQUEST_METHOD'] != 'POST'; + } + + /** + * Return last modified, if applicable. + * + * @return string last modified http header + */ + + function lastModified() + { + return null; + } + + /** + * Return etag, if applicable. + * + * @return string etag http header + */ + + function etag() + { + return null; + } + + /** + * Does this require authentication? + * + * @return boolean true if delete, else false + */ + + function requiresAuth() + { + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + return true; + } else { + return false; + } + } +} diff --git a/actions/attachment.php b/actions/attachment.php index 6981354d10..45aa78728a 100644 --- a/actions/attachment.php +++ b/actions/attachment.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/lib/attachmentlist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AttachmentAction extends Action { /** @@ -70,6 +69,7 @@ class AttachmentAction extends Action } if (empty($this->attachment)) { + // TRANS: Client error displayed trying to get a non-existing attachment. $this->clientError(_('No such attachment.'), 404); return false; } @@ -81,7 +81,6 @@ class AttachmentAction extends Action * * @return boolean true */ - function isReadOnly($args) { return true; @@ -129,7 +128,6 @@ class AttachmentAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -150,7 +148,6 @@ class AttachmentAction extends Action * * @return void */ - function showLocalNavBlock() { } @@ -162,7 +159,6 @@ class AttachmentAction extends Action * * @return void */ - function showContent() { $ali = new Attachment($this->attachment, $this); @@ -174,7 +170,6 @@ class AttachmentAction extends Action * * @return void */ - function showPageNoticeBlock() { } @@ -191,4 +186,3 @@ class AttachmentAction extends Action $atcs->show(); } } - diff --git a/actions/attachment_ajax.php b/actions/attachment_ajax.php index 1e07280750..fb7d15f8a2 100644 --- a/actions/attachment_ajax.php +++ b/actions/attachment_ajax.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/actions/attachment.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Attachment_ajaxAction extends AttachmentAction { /** @@ -80,4 +79,3 @@ class Attachment_ajaxAction extends AttachmentAction $this->elementEnd('div'); } } - diff --git a/actions/attachment_thumbnail.php b/actions/attachment_thumbnail.php index 7d0ac97a69..38648b8bef 100644 --- a/actions/attachment_thumbnail.php +++ b/actions/attachment_thumbnail.php @@ -42,10 +42,8 @@ require_once INSTALLDIR.'/actions/attachment.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Attachment_thumbnailAction extends AttachmentAction { - function handle($args) { $this->showPage(); @@ -79,6 +77,4 @@ class Attachment_thumbnailAction extends AttachmentAction } $this->element('img', array('src' => $file_thumbnail->url, 'alt' => 'Thumbnail')); } - } - diff --git a/actions/avatarbynickname.php b/actions/avatarbynickname.php index 537950792f..fa97a86ebf 100644 --- a/actions/avatarbynickname.php +++ b/actions/avatarbynickname.php @@ -48,7 +48,7 @@ class AvatarbynicknameAction extends Action * Class handler. * * @param array $args query arguments - * + * * @return boolean false if nickname or user isn't found */ function handle($args) @@ -56,27 +56,32 @@ class AvatarbynicknameAction extends Action parent::handle($args); $nickname = $this->trimmed('nickname'); if (!$nickname) { + // TRANS: Client error displayed trying to get an avatar without providing a nickname. $this->clientError(_('No nickname.')); return; } $size = $this->trimmed('size'); if (!$size) { + // TRANS: Client error displayed trying to get an avatar without providing an avatar size. $this->clientError(_('No size.')); return; } $size = strtolower($size); if (!in_array($size, array('original', '96', '48', '24'))) { + // TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. $this->clientError(_('Invalid size.')); return; } $user = User::staticGet('nickname', $nickname); if (!$user) { + // TRANS: Client error displayed trying to get an avatar for a non-existing user. $this->clientError(_('No such user.')); return; } $profile = $user->getProfile(); if (!$profile) { + // TRANS: Client error displayed trying to get an avatar for a user without a profile. $this->clientError(_('User has no profile.')); return; } @@ -103,4 +108,3 @@ class AvatarbynicknameAction extends Action return true; } } - diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php index 52dc2e4249..375420c5c9 100644 --- a/actions/avatarsettings.php +++ b/actions/avatarsettings.php @@ -49,7 +49,6 @@ define('MAX_ORIGINAL', 480); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AvatarsettingsAction extends AccountSettingsAction { var $mode = null; @@ -61,9 +60,9 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return string Title of the page */ - function title() { + // TRANS: Title for avatar upload page. return _('Avatar'); } @@ -72,10 +71,12 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return instructions for use */ - function getInstructions() { - return sprintf(_('You can upload your personal avatar. The maximum file size is %s.'), ImageFile::maxFileSize()); + // TRANS: Instruction for avatar upload page. + // TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". + return sprintf(_('You can upload your personal avatar. The maximum file size is %s.'), + ImageFile::maxFileSize()); } /** @@ -103,6 +104,7 @@ class AvatarsettingsAction extends AccountSettingsAction if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. $this->serverError(_('User without matching profile.')); return; } @@ -116,14 +118,16 @@ class AvatarsettingsAction extends AccountSettingsAction 'action' => common_local_url('avatarsettings'))); $this->elementStart('fieldset'); + // TRANS: Avatar upload page form legend. $this->element('legend', null, _('Avatar settings')); $this->hidden('token', common_session_token()); - + if (Event::handle('StartAvatarFormData', array($this))) { $this->elementStart('ul', 'form_data'); if ($original) { $this->elementStart('li', array('id' => 'avatar_original', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). $this->element('h2', null, _("Original")); $this->elementStart('div', array('id'=>'avatar_original_view')); $this->element('img', array('src' => $original->url, @@ -139,6 +143,7 @@ class AvatarsettingsAction extends AccountSettingsAction if ($avatar) { $this->elementStart('li', array('id' => 'avatar_preview', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). $this->element('h2', null, _("Preview")); $this->elementStart('div', array('id'=>'avatar_preview_view')); $this->element('img', array('src' => $original->url, @@ -146,7 +151,8 @@ class AvatarsettingsAction extends AccountSettingsAction 'height' => AVATAR_PROFILE_SIZE, 'alt' => $user->nickname)); $this->elementEnd('div'); - $this->submit('delete', _('Delete')); + // TRANS: Button on avatar upload page to delete current avatar. + $this->submit('delete', _m('BUTTON','Delete')); $this->elementEnd('li'); } @@ -163,7 +169,8 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('ul', 'form_actions'); $this->elementStart('li'); - $this->submit('upload', _('Upload')); + // TRANS: Button on avatar upload page to upload an avatar. + $this->submit('upload', _m('BUTTON','Upload')); $this->elementEnd('li'); $this->elementEnd('ul'); } @@ -171,7 +178,6 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementEnd('fieldset'); $this->elementEnd('form'); - } function showCropForm() @@ -182,6 +188,7 @@ class AvatarsettingsAction extends AccountSettingsAction if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. $this->serverError(_('User without matching profile.')); return; } @@ -194,6 +201,7 @@ class AvatarsettingsAction extends AccountSettingsAction 'action' => common_local_url('avatarsettings'))); $this->elementStart('fieldset'); + // TRANS: Avatar upload page crop form legend. $this->element('legend', null, _('Avatar settings')); $this->hidden('token', common_session_token()); @@ -202,6 +210,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('li', array('id' => 'avatar_original', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). $this->element('h2', null, _("Original")); $this->elementStart('div', array('id'=>'avatar_original_view')); $this->element('img', array('src' => Avatar::url($this->filedata['filename']), @@ -214,6 +223,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->elementStart('li', array('id' => 'avatar_preview', 'class' => 'avatar_view')); + // TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). $this->element('h2', null, _("Preview")); $this->elementStart('div', array('id'=>'avatar_preview_view')); $this->element('img', array('src' => Avatar::url($this->filedata['filename']), @@ -228,13 +238,14 @@ class AvatarsettingsAction extends AccountSettingsAction 'type' => 'hidden', 'id' => $crop_info)); } - $this->submit('crop', _('Crop')); + + // TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. + $this->submit('crop', _m('BUTTON','Crop')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('fieldset'); $this->elementEnd('form'); - } /** @@ -244,7 +255,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { // Workaround for PHP returning empty $_POST and $_FILES when POST @@ -254,9 +264,11 @@ class AvatarsettingsAction extends AccountSettingsAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); - + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->showForm(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } @@ -269,7 +281,7 @@ class AvatarsettingsAction extends AccountSettingsAction 'Try again, please.')); return; } - + if (Event::handle('StartAvatarSaveForm', array($this))) { if ($this->arg('upload')) { $this->uploadAvatar(); @@ -278,6 +290,7 @@ class AvatarsettingsAction extends AccountSettingsAction } else if ($this->arg('delete')) { $this->deleteAvatar(); } else { + // TRANS: Unexpected validation error on avatar upload form. $this->showForm(_('Unexpected form submission.')); } Event::handle('EndAvatarSaveForm', array($this)); @@ -292,7 +305,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function uploadAvatar() { try { @@ -302,6 +314,7 @@ class AvatarsettingsAction extends AccountSettingsAction return; } if ($imagefile === null) { + // TRANS: Validation error on avatar upload form when no file was uploaded. $this->showForm(_('No file uploaded.')); return; } @@ -329,6 +342,7 @@ class AvatarsettingsAction extends AccountSettingsAction $this->mode = 'crop'; + // TRANS: Avatar upload form unstruction after uploading a file. $this->showForm(_('Pick a square area of the image to be your avatar'), true); } @@ -338,12 +352,12 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function cropAvatar() { $filedata = $_SESSION['FILEDATA']; if (!$filedata) { + // TRANS: Server error displayed if an avatar upload went wrong somehow server side. $this->serverError(_('Lost our file data.')); return; } @@ -367,24 +381,25 @@ class AvatarsettingsAction extends AccountSettingsAction @unlink($filedata['filepath']); unset($_SESSION['FILEDATA']); $this->mode = 'upload'; + // TRANS: Success message for having updated a user avatar. $this->showForm(_('Avatar updated.'), true); common_broadcast_profile($profile); } else { + // TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. $this->showForm(_('Failed updating avatar.')); } } - + /** * Get rid of the current avatar. * * @return void */ - function deleteAvatar() { $user = common_current_user(); $profile = $user->getProfile(); - + $avatar = $profile->getOriginalAvatar(); if($avatar) $avatar->delete(); $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); @@ -394,6 +409,7 @@ class AvatarsettingsAction extends AccountSettingsAction $avatar = $profile->getAvatar(AVATAR_MINI_SIZE); if($avatar) $avatar->delete(); + // TRANS: Success message for deleting a user avatar. $this->showForm(_('Avatar deleted.'), true); } @@ -414,7 +430,6 @@ class AvatarsettingsAction extends AccountSettingsAction * * @return void */ - function showScripts() { parent::showScripts(); diff --git a/actions/block.php b/actions/block.php index 93f8ec9370..e87353b4e1 100644 --- a/actions/block.php +++ b/actions/block.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class BlockAction extends ProfileFormAction { var $profile = null; @@ -54,7 +53,6 @@ class BlockAction extends ProfileFormAction * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { @@ -66,6 +64,7 @@ class BlockAction extends ProfileFormAction assert(!empty($cur)); // checked by parent if ($cur->hasBlocked($this->profile)) { + // TRANS: Client error displayed when blocking a user that has already been blocked. $this->clientError(_('You already blocked that user.')); return false; } @@ -82,7 +81,6 @@ class BlockAction extends ProfileFormAction * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -104,6 +102,7 @@ class BlockAction extends ProfileFormAction } function title() { + // TRANS: Title for block user page. return _('Block user'); } @@ -133,8 +132,10 @@ class BlockAction extends ProfileFormAction 'action' => common_local_url('block'))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); + // TRANS: Legend for block user form. $this->element('legend', _('Block user')); $this->element('p', null, + // TRANS: Explanation of consequences when blocking a user on the block user page. _('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 '. @@ -184,6 +185,7 @@ class BlockAction extends ProfileFormAction } if (!$result) { + // TRANS: Server error displayed when blocking a user fails. $this->serverError(_('Failed to save block information.')); return; } @@ -199,7 +201,7 @@ class BlockAction extends ProfileFormAction * Override for form session token checks; on our first hit we're just * requesting confirmation, which doesn't need a token. We need to be * able to take regular GET requests from email! - * + * * @throws ClientException if token is bad on POST request or if we have * confirmation parameters which could trigger something. */ @@ -216,7 +218,7 @@ class BlockAction extends ProfileFormAction /** * If we reached this form without returnto arguments, return to the * current user's subscription list. - * + * * @return string URL */ function defaultReturnTo() diff --git a/actions/blockedfromgroup.php b/actions/blockedfromgroup.php index a0598db270..6ff572c05d 100644 --- a/actions/blockedfromgroup.php +++ b/actions/blockedfromgroup.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class BlockedfromgroupAction extends GroupDesignAction { var $page = null; @@ -70,6 +69,7 @@ class BlockedfromgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. $this->clientError(_('No nickname.'), 404); return false; } @@ -77,6 +77,7 @@ class BlockedfromgroupAction extends GroupDesignAction $local = Local_group::staticGet('nickname', $nickname); if (!$local) { + // TRANS: Client error displayed when requesting a list of blocked users for a non-local group. $this->clientError(_('No such group.'), 404); return false; } @@ -84,6 +85,7 @@ class BlockedfromgroupAction extends GroupDesignAction $this->group = User_group::staticGet('id', $local->group_id); if (!$this->group) { + // TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. $this->clientError(_('No such group.'), 404); return false; } @@ -94,9 +96,13 @@ class BlockedfromgroupAction extends GroupDesignAction function title() { if ($this->page == 1) { + // TRANS: Title for first page with list of users blocked from a group. + // TRANS: %s is a group nickname. return sprintf(_('%s blocked profiles'), $this->group->nickname); } else { + // TRANS: Title for any but the first page with list of users blocked from a group. + // TRANS: %1$s is a group nickname, %2$d is a page number. return sprintf(_('%1$s blocked profiles, page %2$d'), $this->group->nickname, $this->page); @@ -112,6 +118,7 @@ class BlockedfromgroupAction extends GroupDesignAction function showPageNotice() { $this->element('p', 'instructions', + // TRANS: Instructions for list of users blocked from a group. _('A list of the users blocked from joining this group.')); } @@ -205,7 +212,6 @@ class GroupBlockListItem extends ProfileListItem * * @see UnblockForm */ - class GroupUnblockForm extends Form { /** @@ -234,7 +240,6 @@ class GroupUnblockForm extends Form * @param User_group $group group to block user from * @param array $args return-to args */ - function __construct($out=null, $profile=null, $group=null, $args=null) { parent::__construct($out); @@ -249,7 +254,6 @@ class GroupUnblockForm extends Form * * @return int ID of the form */ - function id() { // This should be unique for the page. @@ -261,7 +265,6 @@ class GroupUnblockForm extends Form * * @return string class of the form */ - function formClass() { return 'form_group_unblock'; @@ -272,7 +275,6 @@ class GroupUnblockForm extends Form * * @return string URL of the action */ - function action() { return common_local_url('groupunblock'); @@ -285,6 +287,7 @@ class GroupUnblockForm extends Form */ function formLegend() { + // TRANS: Form legend for unblocking a user from a group. $this->out->element('legend', null, _('Unblock user from group')); } @@ -293,7 +296,6 @@ class GroupUnblockForm extends Form * * @return void */ - function formData() { $this->out->hidden('unblockto-' . $this->profile->id, @@ -314,9 +316,14 @@ class GroupUnblockForm extends Form * * @return void */ - function formActions() { - $this->out->submit('submit', _('Unblock'), 'submit', null, _('Unblock this user')); + $this->out->submit('submit', + // TRANS: Button text for unblocking a user from a group. + _m('BUTTON','Unblock'), + 'submit', + null, + // TRANS: Tooltip for button for unblocking a user from a group. + _('Unblock this user')); } } diff --git a/actions/bookmarklet.php b/actions/bookmarklet.php index 041c2e8947..9cf4e58f89 100644 --- a/actions/bookmarklet.php +++ b/actions/bookmarklet.php @@ -34,7 +34,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { require_once INSTALLDIR . '/actions/newnotice.php'; /** - * Action for posting a notice + * Action for posting a notice * * @category Bookmarklet * @package StatusNet @@ -42,12 +42,12 @@ require_once INSTALLDIR . '/actions/newnotice.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class BookmarkletAction extends NewnoticeAction { function showTitle() { // TRANS: Title for mini-posting window loaded from bookmarklet. + // TRANS: %s is the StatusNet site name. $this->element('title', null, sprintf(_('Post to %s'), common_config('site', 'name'))); } @@ -73,4 +73,3 @@ class BookmarkletAction extends NewnoticeAction { } } - diff --git a/actions/confirmaddress.php b/actions/confirmaddress.php index f92db3ec45..fd04c31307 100644 --- a/actions/confirmaddress.php +++ b/actions/confirmaddress.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ConfirmaddressAction extends Action { /** type of confirmation. */ @@ -61,7 +60,6 @@ class ConfirmaddressAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -72,16 +70,19 @@ class ConfirmaddressAction extends Action } $code = $this->trimmed('code'); if (!$code) { + // TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. $this->clientError(_('No confirmation code.')); return; } $confirm = Confirm_address::staticGet('code', $code); if (!$confirm) { + // TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. $this->clientError(_('Confirmation code not found.')); return; } $cur = common_current_user(); if ($cur->id != $confirm->user_id) { + // TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. $this->clientError(_('That confirmation code is not for you!')); return; } @@ -98,6 +99,7 @@ class ConfirmaddressAction extends Action if (in_array($type, array('email', 'sms'))) { if ($cur->$type == $confirm->address) { + // TRANS: Client error for an already confirmed email/jabber/sms address. $this->clientError(_('That address has already been confirmed.')); return; } @@ -162,7 +164,9 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); - $this->serverError(_('Couldn\'t delete email confirmation.')); + // TRANS: Server error displayed when an address confirmation code deletion from the + // TRANS: database fails in the contact address confirmation action. + $this->serverError(_('Could not delete address confirmation.')); return; } @@ -175,9 +179,9 @@ class ConfirmaddressAction extends Action * * @return string title */ - function title() { + // TRANS: Title for the contact address confirmation action. return _('Confirm address'); } @@ -186,12 +190,13 @@ class ConfirmaddressAction extends Action * * @return void */ - function showContent() { $cur = common_current_user(); $this->element('p', null, + // TRANS: Success message for the contact address confirmation action. + // TRANS: %s can be 'email', 'jabber', or 'sms'. sprintf(_('The address "%s" has been '. 'confirmed for your account.'), $this->address)); diff --git a/actions/conversation.php b/actions/conversation.php index 900a724ef3..8d11df37bc 100644 --- a/actions/conversation.php +++ b/actions/conversation.php @@ -45,7 +45,6 @@ require_once INSTALLDIR.'/lib/noticelist.php'; * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationAction extends Action { var $id = null; @@ -58,7 +57,6 @@ class ConversationAction extends Action * * @return boolean false if id not passed in */ - function prepare($args) { parent::prepare($args); @@ -81,7 +79,6 @@ class ConversationAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -93,10 +90,10 @@ class ConversationAction extends Action * * @return string page title */ - function title() { - return _("Conversation"); + // TRANS: Title for page with a conversion (multiple notices in context). + return _('Conversation'); } /** @@ -107,7 +104,6 @@ class ConversationAction extends Action * * @return void */ - function showContent() { $notices = Notice::conversationStream($this->id, null, null); @@ -134,7 +130,6 @@ class ConversationAction extends Action * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationTree extends NoticeList { var $tree = null; @@ -145,12 +140,12 @@ class ConversationTree extends NoticeList * * @return void */ - function show() { $cnt = $this->_buildTree(); $this->out->elementStart('div', array('id' =>'notices_primary')); + // TRANS: Header on conversation page. Hidden by default (h2). $this->out->element('h2', null, _('Notices')); $this->out->elementStart('ol', array('class' => 'notices xoxo')); @@ -200,7 +195,6 @@ class ConversationTree extends NoticeList * * @return void */ - function showNoticePlus($id) { $notice = $this->table[$id]; @@ -237,7 +231,6 @@ class ConversationTree extends NoticeList * * @return NoticeListItem a list item to show */ - function newListItem($notice) { return new ConversationTreeItem($notice, $this->out); @@ -255,7 +248,6 @@ class ConversationTree extends NoticeList * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ConversationTreeItem extends NoticeListItem { /** @@ -266,7 +258,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showStart() { return; @@ -280,7 +271,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showEnd() { return; @@ -293,7 +283,6 @@ class ConversationTreeItem extends NoticeListItem * * @return void */ - function showContext() { return; diff --git a/actions/deleteapplication.php b/actions/deleteapplication.php index 806de0be6e..272a91762c 100644 --- a/actions/deleteapplication.php +++ b/actions/deleteapplication.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class DeleteapplicationAction extends Action { var $app = null; @@ -52,7 +51,6 @@ class DeleteapplicationAction extends Action * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { @@ -60,6 +58,7 @@ class DeleteapplicationAction extends Action } if (!common_logged_in()) { + // TRANS: Client error displayed trying to delete an application while not logged in. $this->clientError(_('You must be logged in to delete an application.')); return false; } @@ -68,6 +67,7 @@ class DeleteapplicationAction extends Action $this->app = Oauth_application::staticGet('id', $id); if (empty($this->app)) { + // TRANS: Client error displayed trying to delete an application that does not exist. $this->clientError(_('Application not found.')); return false; } @@ -75,6 +75,7 @@ class DeleteapplicationAction extends Action $cur = common_current_user(); if ($cur->id != $this->app->owner) { + // TRANS: Client error displayed trying to delete an application the current user does not own. $this->clientError(_('You are not the owner of this application.'), 401); return false; } @@ -91,7 +92,6 @@ class DeleteapplicationAction extends Action * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -120,6 +120,7 @@ class DeleteapplicationAction extends Action } function title() { + // TRANS: Title for delete application page. return _('Delete application'); } @@ -144,8 +145,10 @@ class DeleteapplicationAction extends Action array('id' => $this->app->id)))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); + // TRANS: Fieldset legend on delete application page. $this->element('legend', _('Delete application')); $this->element('p', null, + // TRANS: Confirmation text on delete application page. _('Are you sure you want to delete this application? '. 'This will clear all data about the application from the '. 'database, including all existing user connections.')); @@ -171,10 +174,8 @@ class DeleteapplicationAction extends Action * * @return void */ - function handlePost() { $this->app->delete(); } } - diff --git a/actions/deletegroup.php b/actions/deletegroup.php new file mode 100644 index 0000000000..4e9b9851f1 --- /dev/null +++ b/actions/deletegroup.php @@ -0,0 +1,235 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Delete a group + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Group + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Brion Vibber <brion@status.net> + * @copyright 2008-2010 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); +} + +/** + * Delete a group + * + * This is the action for deleting a group. + * + * @category Group + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * @fixme merge more of this code with related variants + */ +class DeletegroupAction extends RedirectingAction +{ + var $group = null; + + /** + * Prepare to run + * + * @fixme merge common setup code with other group actions + * @fixme allow group admins to delete their own groups + */ + function prepare($args) + { + parent::prepare($args); + + if (!common_logged_in()) { + // TRANS: Client error when trying to delete group while not logged in. + $this->clientError(_('You must be logged in to delete a group.')); + return false; + } + + $nickname_arg = $this->trimmed('nickname'); + $id = intval($this->arg('id')); + if ($id) { + $this->group = User_group::staticGet('id', $id); + } else if ($nickname_arg) { + $nickname = common_canonical_nickname($nickname_arg); + + // Permanent redirect on non-canonical nickname + + if ($nickname_arg != $nickname) { + $args = array('nickname' => $nickname); + common_redirect(common_local_url('leavegroup', $args), 301); + return false; + } + + $local = Local_group::staticGet('nickname', $nickname); + + if (!$local) { + // TRANS: Client error when trying to delete a non-local group. + $this->clientError(_('No such group.'), 404); + return false; + } + + $this->group = User_group::staticGet('id', $local->group_id); + } else { + // TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. + $this->clientError(_('No nickname or ID.'), 404); + return false; + } + + if (!$this->group) { + // TRANS: Client error when trying to delete a non-existing group. + $this->clientError(_('No such group.'), 404); + return false; + } + + $cur = common_current_user(); + if (!$cur->hasRight(Right::DELETEGROUP)) { + // TRANS: Client error when trying to delete a group without having the rights to delete it. + $this->clientError(_('You are not allowed to delete this group.'), 403); + return false; + } + + return true; + } + + /** + * Handle the request + * + * On POST, delete the group. + * + * @param array $args unused + * + * @return void + */ + function handle($args) + { + parent::handle($args); + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + if ($this->arg('no')) { + $this->returnToPrevious(); + return; + } elseif ($this->arg('yes')) { + $this->handlePost(); + return; + } + } + $this->showPage(); + } + + function handlePost() + { + $cur = common_current_user(); + + try { + if (Event::handle('StartDeleteGroup', array($this->group))) { + $this->group->delete(); + Event::handle('EndDeleteGroup', array($this->group)); + } + } catch (Exception $e) { + // TRANS: Server error displayed if a group could not be deleted. + // TRANS: %s is the name of the group that could not be deleted. + $this->serverError(sprintf(_('Could not delete group %s.'), + $this->group->nickname)); + } + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Message given after deleting a group. + // TRANS: %s is the deleted group's name. + $this->element('title', null, sprintf(_('Deleted group %s'), + $this->group->nickname)); + $this->elementEnd('head'); + $this->elementStart('body'); + // @fixme add a sensible AJAX response form! + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + // @fixme if we could direct to the page on which this group + // would have shown... that would be awesome + common_redirect(common_local_url('groups'), + 303); + } + } + + function title() { + // TRANS: Title of delete group page. + return _('Delete group'); + } + + function showContent() { + $this->areYouSureForm(); + } + + /** + * Confirm with user. + * Ripped from DeleteuserAction + * + * Shows a confirmation form. + * + * @fixme refactor common code for things like this + * @return void + */ + function areYouSureForm() + { + $id = $this->group->id; + $this->elementStart('form', array('id' => 'deletegroup-' . $id, + 'method' => 'post', + 'class' => 'form_settings form_entity_block', + 'action' => common_local_url('deletegroup', array('id' => $this->group->id)))); + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + // TRANS: Form legend for deleting a group. + $this->element('legend', _('Delete group')); + if (Event::handle('StartDeleteGroupForm', array($this, $this->group))) { + $this->element('p', null, + // TRANS: Warning in form for deleleting a group. + _('Are you sure you want to delete this group? '. + 'This will clear all data about the group from the '. + 'database, without a backup. ' . + 'Public posts to this group will still appear in ' . + 'individual timelines.')); + foreach ($this->args as $k => $v) { + if (substr($k, 0, 9) == 'returnto-') { + $this->hidden($k, $v); + } + } + Event::handle('EndDeleteGroupForm', array($this, $this->group)); + } + $this->submit('form_action-no', + // TRANS: Button label on the delete group form. + _m('BUTTON','No'), + 'submit form_action-primary', + 'no', + // TRANS: Submit button title for 'No' when deleting a group. + _('Do not delete this group')); + $this->submit('form_action-yes', + // TRANS: Button label on the delete group form. + _m('BUTTON','Yes'), + 'submit form_action-secondary', + 'yes', + // TRANS: Submit button title for 'Yes' when deleting a group. + _('Delete this group')); + $this->elementEnd('fieldset'); + $this->elementEnd('form'); + } +} diff --git a/actions/deletenotice.php b/actions/deletenotice.php index f8010a814a..a7ac28e19c 100644 --- a/actions/deletenotice.php +++ b/actions/deletenotice.php @@ -32,6 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// @todo FIXME: documentation needed. class DeletenoticeAction extends Action { var $error = null; @@ -45,10 +46,18 @@ class DeletenoticeAction extends Action parent::prepare($args); $this->user = common_current_user(); + + if (!$this->user) { + // TRANS: Error message displayed trying to delete a notice while not logged in. + common_user_error(_('Not logged in.')); + exit; + } + $notice_id = $this->trimmed('notice'); $this->notice = Notice::staticGet($notice_id); if (!$this->notice) { + // TRANS: Error message displayed trying to delete a non-existing notice. common_user_error(_('No such notice.')); exit; } @@ -63,11 +72,9 @@ class DeletenoticeAction extends Action { parent::handle($args); - if (!common_logged_in()) { - common_user_error(_('Not logged in.')); - exit; - } else if ($this->notice->profile_id != $this->user_profile->id && + if ($this->notice->profile_id != $this->user_profile->id && !$this->user->hasRight(Right::DELETEOTHERSNOTICE)) { + // TRANS: Error message displayed trying to delete a notice that was not made by the current user. common_user_error(_('Can\'t delete this notice.')); exit; } @@ -87,7 +94,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showPageNotice() { $instr = $this->getInstructions(); @@ -100,12 +106,14 @@ class DeletenoticeAction extends Action function getInstructions() { + // TRANS: Instructions for deleting a notice. return _('You are about to permanently delete a notice. ' . 'Once this is done, it cannot be undone.'); } function title() { + // TRANS: Page title when deleting a notice. return _('Delete notice'); } @@ -118,7 +126,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showForm($error = null) { $this->error = $error; @@ -130,7 +137,6 @@ class DeletenoticeAction extends Action * * @return void */ - function showContent() { $this->elementStart('form', array('id' => 'form_notice_delete', @@ -138,9 +144,11 @@ class DeletenoticeAction extends Action 'method' => 'post', 'action' => common_local_url('deletenotice'))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend for the delete notice form. $this->element('legend', null, _('Delete notice')); $this->hidden('token', common_session_token()); $this->hidden('notice', $this->trimmed('notice')); + // TRANS: Message for the delete notice form. $this->element('p', null, _('Are you sure you want to delete this notice?')); $this->submit('form_action-no', // TRANS: Button label on the delete notice form. @@ -172,7 +180,10 @@ class DeletenoticeAction extends Action } if ($this->arg('yes')) { - $this->notice->delete(); + if (Event::handle('StartDeleteOwnNotice', array($this->user, $this->notice))) { + $this->notice->delete(); + Event::handle('EndDeleteOwnNotice', array($this->user, $this->notice)); + } } $url = common_get_returnto(); diff --git a/actions/designadminpanel.php b/actions/designadminpanel.php index 763737175b..321a8ee5eb 100644 --- a/actions/designadminpanel.php +++ b/actions/designadminpanel.php @@ -71,7 +71,7 @@ class DesignadminpanelAction extends AdminPanelAction function getInstructions() { - return _('Design settings for this StatusNet site.'); + return _('Design settings for this StatusNet site'); } /** @@ -120,8 +120,11 @@ class DesignadminpanelAction extends AdminPanelAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientException(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } @@ -140,7 +143,7 @@ class DesignadminpanelAction extends AdminPanelAction $themeChanged = ($this->trimmed('theme') != $oldtheme); } - static $settings = array('theme', 'logo'); + static $settings = array('theme', 'logo', 'ssllogo'); $values = array(); @@ -154,9 +157,22 @@ class DesignadminpanelAction extends AdminPanelAction $config->query('BEGIN'); - // Only update colors if the theme has not changed. + if ($themeChanged) { + // If the theme has changed, reset custom colors and let them pick + // up the new theme's defaults. + $colors = array('background', 'content', 'sidebar', 'text', 'link'); + foreach ($colors as $colorKey) { + // Clear from global config so we see defaults on this page... + $GLOBALS['config']['design'][$colorKey . 'color'] = false; - if (!$themeChanged) { + // And remove old settings from DB... + $this->deleteSetting('design', $colorKey . 'color'); + } + } else { + // Only save colors from the form if the theme has not changed. + // + // @fixme a future more ajaxy form should allow theme switch + // and color customization in one step. $bgcolor = new WebColor($this->trimmed('design_background')); $ccolor = new WebColor($this->trimmed('design_content')); @@ -217,6 +233,7 @@ class DesignadminpanelAction extends AdminPanelAction function restoreDefaults() { $this->deleteSetting('site', 'logo'); + $this->deleteSetting('site', 'ssllogo'); $this->deleteSetting('site', 'theme'); $settings = array( @@ -244,8 +261,8 @@ class DesignadminpanelAction extends AdminPanelAction function saveBackgroundImage() { $filename = null; - - if ($_FILES['design_background-image_file']['error'] == + if (isset($_FILES['design_background-image_file']['error']) && + $_FILES['design_background-image_file']['error'] == UPLOAD_ERR_OK) { $filepath = null; @@ -280,7 +297,7 @@ class DesignadminpanelAction extends AdminPanelAction /** * Save the custom theme if the user uploaded one. - * + * * @return mixed custom theme name, if succesful, or null if no theme upload. * @throws ClientException for invalid theme archives * @throws ServerException if trouble saving the theme files @@ -318,6 +335,11 @@ class DesignadminpanelAction extends AdminPanelAction $this->clientError(_('Invalid logo URL.')); } + if (!empty($values['ssllogo']) && + !Validate::uri($values['ssllogo'], array('allowed_schemes' => array('https')))) { + $this->clientError(_('Invalid SSL logo URL.')); + } + if (!in_array($values['theme'], Theme::listAvailable())) { $this->clientError(sprintf(_("Theme not available: %s."), $values['theme'])); } @@ -431,6 +453,10 @@ class DesignAdminPanelForm extends AdminForm $this->input('logo', _('Site logo'), 'Logo for the site (full URL)'); $this->unli(); + $this->li(); + $this->input('ssllogo', _('SSL logo'), 'Logo to show on SSL pages'); + $this->unli(); + $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); diff --git a/actions/editapplication.php b/actions/editapplication.php index 64cf0a5745..760b1d284e 100644 --- a/actions/editapplication.php +++ b/actions/editapplication.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class EditApplicationAction extends OwnerDesignAction { var $msg = null; @@ -51,18 +50,19 @@ class EditApplicationAction extends OwnerDesignAction function title() { - return _('Edit Application'); + // TRANS: Title for "Edit application" form. + return _('Edit application'); } /** * Prepare to run */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to edit an application while not logged in. $this->clientError(_('You must be logged in to edit an application.')); return false; } @@ -74,10 +74,12 @@ class EditApplicationAction extends OwnerDesignAction $cur = common_current_user(); if ($cur->id != $this->owner->id) { + // TRANS: Client error displayed trying to edit an application while not being its owner. $this->clientError(_('You are not the owner of this application.'), 401); } if (!$this->app) { + // TRANS: Client error displayed trying to edit an application that does not exist. $this->clientError(_('No such application.')); return false; } @@ -94,7 +96,6 @@ class EditApplicationAction extends OwnerDesignAction * * @return void */ - function handle($args) { parent::handle($args); @@ -115,8 +116,11 @@ class EditApplicationAction extends OwnerDesignAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientException(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } @@ -136,6 +140,7 @@ class EditApplicationAction extends OwnerDesignAction } elseif ($this->arg('save')) { $this->trySave(); } else { + // TRANS: Client error displayed submitting invalid form data for edit application. $this->clientError(_('Unexpected form submission.')); } } @@ -158,6 +163,7 @@ class EditApplicationAction extends OwnerDesignAction $this->element('p', 'error', $this->msg); } else { $this->element('p', 'instructions', + // TRANS: Instructions for "Edit application" form. _('Use this form to edit your application.')); } } @@ -174,36 +180,47 @@ class EditApplicationAction extends OwnerDesignAction $access_type = $this->arg('default_access_type'); if (empty($name)) { + // TRANS: Validation error shown when not providing a name in the "Edit application" form. $this->showForm(_('Name is required.')); return; } elseif (mb_strlen($name) > 255) { - $this->showForm(_('Name is too long (max 255 chars).')); + // TRANS: Validation error shown when providing too long a name in the "Edit application" form. + $this->showForm(_('Name is too long (maximum 255 characters).')); return; } else if ($this->nameExists($name)) { + // TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. $this->showForm(_('Name already in use. Try another one.')); return; } elseif (empty($description)) { + // TRANS: Validation error shown when not providing a description in the "Edit application" form. $this->showForm(_('Description is required.')); return; } elseif (Oauth_application::descriptionTooLong($description)) { $this->showForm(sprintf( - _('Description is too long (max %d chars).'), - Oauth_application::maxDescription())); + // TRANS: Validation error shown when providing too long a description in the "Edit application" form. + _m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + Oauth_application::maxDesc()), + Oauth_application::maxDesc())); return; } elseif (mb_strlen($source_url) > 255) { + // TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. $this->showForm(_('Source URL is too long.')); return; } elseif ((mb_strlen($source_url) > 0) && !Validate::uri($source_url, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. $this->showForm(_('Source URL is not valid.')); return; } elseif (empty($organization)) { + // TRANS: Validation error shown when not providing an organisation in the "Edit application" form. $this->showForm(_('Organization is required.')); return; } elseif (mb_strlen($organization) > 255) { - $this->showForm(_('Organization is too long (max 255 chars).')); + // TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. + $this->showForm(_('Organization is too long (maximum 255 characters).')); return; } elseif (empty($homepage)) { $this->showForm(_('Organization homepage is required.')); @@ -212,9 +229,11 @@ class EditApplicationAction extends OwnerDesignAction && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. $this->showForm(_('Homepage is not a valid URL.')); return; } elseif (mb_strlen($callback_url) > 255) { + // TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. $this->showForm(_('Callback is too long.')); return; } elseif (mb_strlen($callback_url) > 0 @@ -222,6 +241,7 @@ class EditApplicationAction extends OwnerDesignAction array('allowed_schemes' => array('http', 'https')) )) { + // TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. $this->showForm(_('Callback URL is not valid.')); return; } @@ -253,8 +273,12 @@ class EditApplicationAction extends OwnerDesignAction $result = $this->app->update($orig); - if (!$result) { + // Note: 0 means no rows changed, which can happen if the only + // thing we changed was the icon, since it's not altered until + // the next step. + if ($result === false) { common_log_db_error($this->app, 'UPDATE', __FILE__); + // TRANS: Server error occuring when an application could not be updated from the "Edit application" form. $this->serverError(_('Could not update application.')); } @@ -273,7 +297,6 @@ class EditApplicationAction extends OwnerDesignAction * * @return boolean true if the name already exists */ - function nameExists($name) { $newapp = Oauth_application::staticGet('name', $name); @@ -283,6 +306,4 @@ class EditApplicationAction extends OwnerDesignAction return $newapp->id != $this->app->id; } } - } - diff --git a/actions/editgroup.php b/actions/editgroup.php index 4b596cade9..ab4dbb2836 100644 --- a/actions/editgroup.php +++ b/actions/editgroup.php @@ -45,14 +45,13 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class EditgroupAction extends GroupDesignAction { - var $msg; function title() { + // TRANS: Title for form to edit a group. %s is a group nickname. return sprintf(_('Edit %s group'), $this->group->nickname); } @@ -65,6 +64,7 @@ class EditgroupAction extends GroupDesignAction parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to edit a group while not logged in. $this->clientError(_('You must be logged in to create a group.')); return false; } @@ -81,6 +81,7 @@ class EditgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. $this->clientError(_('No nickname.'), 404); return false; } @@ -97,6 +98,7 @@ class EditgroupAction extends GroupDesignAction } if (!$this->group) { + // TRANS: Client error displayed trying to edit a non-existing group. $this->clientError(_('No such group.'), 404); return false; } @@ -104,6 +106,7 @@ class EditgroupAction extends GroupDesignAction $cur = common_current_user(); if (!$cur->isAdmin($this->group)) { + // TRANS: Client error displayed trying to edit a group while not being a group admin. $this->clientError(_('You must be an admin to edit the group.'), 403); return false; } @@ -120,7 +123,6 @@ class EditgroupAction extends GroupDesignAction * * @return void */ - function handle($args) { parent::handle($args); @@ -155,6 +157,7 @@ class EditgroupAction extends GroupDesignAction $this->element('p', 'error', $this->msg); } else { $this->element('p', 'instructions', + // TRANS: Form instructions for group edit form. _('Use this form to edit the group.')); } } @@ -169,43 +172,48 @@ class EditgroupAction extends GroupDesignAction { $cur = common_current_user(); if (!$cur->isAdmin($this->group)) { + // TRANS: Client error displayed trying to edit a group while not being a group admin. $this->clientError(_('You must be an admin to edit the group.'), 403); return; } - $nickname = common_canonical_nickname($this->trimmed('nickname')); + $nickname = Nickname::normalize($this->trimmed('nickname')); $fullname = $this->trimmed('fullname'); $homepage = $this->trimmed('homepage'); $description = $this->trimmed('description'); $location = $this->trimmed('location'); $aliasstring = $this->trimmed('aliases'); - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_('Nickname must have only lowercase letters '. - 'and numbers and no spaces.')); - return; - } else if ($this->nicknameExists($nickname)) { + if ($this->nicknameExists($nickname)) { + // TRANS: Group edit form validation error. $this->showForm(_('Nickname already in use. Try another one.')); return; } else if (!User_group::allowedNickname($nickname)) { + // TRANS: Group edit form validation error. $this->showForm(_('Not a valid nickname.')); return; } else if (!is_null($homepage) && (strlen($homepage) > 0) && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Group edit form validation error. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { - $this->showForm(_('Full name is too long (max 255 chars).')); + // TRANS: Group edit form validation error. + $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (User_group::descriptionTooLong($description)) { - $this->showForm(sprintf(_('description is too long (max %d chars).'), User_group::maxDescription())); + $this->showForm(sprintf( + // TRANS: Group edit form validation error. + _m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + User_group::maxDescription()), + User_group::maxDescription())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { - $this->showForm(_('Location is too long (max 255 chars).')); + // TRANS: Group edit form validation error. + $this->showForm(_('Location is too long (maximum 255 characters).')); return; } @@ -216,25 +224,30 @@ class EditgroupAction extends GroupDesignAction } if (count($aliases) > common_config('group', 'maxaliases')) { - $this->showForm(sprintf(_('Too many aliases! Maximum %d.'), + // TRANS: Group edit form validation error. + // TRANS: %d is the maximum number of allowed aliases. + $this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.', + 'Too many aliases! Maximum %d allowed.', + common_config('group', 'maxaliases')), common_config('group', 'maxaliases'))); return; } foreach ($aliases as $alias) { - if (!Validate::string($alias, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { + if (!Nickname::isValid($alias)) { + // TRANS: Group edit form validation error. $this->showForm(sprintf(_('Invalid alias: "%s"'), $alias)); return; } if ($this->nicknameExists($alias)) { + // TRANS: Group edit form validation error. $this->showForm(sprintf(_('Alias "%s" already in use. Try another one.'), $alias)); return; } // XXX assumes alphanum nicknames if (strcmp($alias, $nickname) == 0) { + // TRANS: Group edit form validation error. $this->showForm(_('Alias can\'t be the same as nickname.')); return; } @@ -255,12 +268,14 @@ class EditgroupAction extends GroupDesignAction if (!$result) { common_log_db_error($this->group, 'UPDATE', __FILE__); + // TRANS: Server error displayed when editing a group fails. $this->serverError(_('Could not update group.')); } $result = $this->group->setAliases($aliases); if (!$result) { + // TRANS: Server error displayed when group aliases could not be added. $this->serverError(_('Could not create aliases.')); } @@ -277,6 +292,7 @@ class EditgroupAction extends GroupDesignAction array('nickname' => $nickname)), 303); } else { + // TRANS: Group edit form success message. $this->showForm(_('Options saved.')); } } @@ -300,4 +316,3 @@ class EditgroupAction extends GroupDesignAction return false; } } - diff --git a/actions/emailsettings.php b/actions/emailsettings.php index 6138a88f90..4a7dc1b871 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -79,6 +79,7 @@ class EmailsettingsAction extends AccountSettingsAction function showScripts() { parent::showScripts(); + $this->script('emailsettings.js'); $this->autofocus('email'); } @@ -131,7 +132,11 @@ class EmailsettingsAction extends AccountSettingsAction // TRANS: Field label for e-mail address input in e-mail settings form. $this->input('email', _('Email address'), ($this->arg('email')) ? $this->arg('email') : null, - // TRANS: Instructions for e-mail address input form. + // TRANS: Instructions for e-mail address input form. Do not translate + // TRANS: "example.org". It is one of the domain names reserved for + // TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. + // TRANS: Any other domain may be owned by a legitimate person or + // TRANS: organization. _('Email address, like "UserName@example.org"')); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -145,6 +150,26 @@ class EmailsettingsAction extends AccountSettingsAction $this->elementStart('fieldset', array('id' => 'settings_email_incoming')); // TRANS: Form legend for incoming e-mail settings form. $this->element('legend', null, _('Incoming email')); + + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + $this->checkbox('emailpost', + // TRANS: Checkbox label in e-mail preferences form. + _('I want to post notices by email.'), + $user->emailpost); + $this->elementEnd('li'); + $this->elementEnd('ul'); + + // Our stylesheets make the form_data list items all floats, which + // creates lots of problems with trying to wrap divs around things. + // This should force a break before the next section, which needs + // to be separate so we can disable the things in it when the + // checkbox is off. + $this->elementStart('div', array('style' => 'clear: both')); + $this->elementEnd('div'); + + $this->elementStart('div', array('id' => 'emailincoming')); + if ($user->incomingemail) { $this->elementStart('p'); $this->element('span', 'address', $user->incomingemail); @@ -159,13 +184,22 @@ class EmailsettingsAction extends AccountSettingsAction } $this->elementStart('p'); - $this->element('span', 'input_instructions', - // TRANS: Instructions for incoming e-mail address input form. - _('Make a new email address for posting to; '. - 'cancels the old one.')); + if ($user->incomingemail) { + // TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. + $msg = _('Make a new email address for posting to; '. + 'cancels the old one.'); + } else { + // TRANS: Instructions for incoming e-mail address input form. + $msg = _('To send notices via email, we need to create a unique email address for you on this server:'); + } + $this->element('span', 'input_instructions', $msg); $this->elementEnd('p'); + // TRANS: Button label for adding an e-mail address to send notices from. $this->submit('newincoming', _m('BUTTON','New')); + + $this->elementEnd('div'); // div#emailincoming + $this->elementEnd('fieldset'); } @@ -174,51 +208,47 @@ class EmailsettingsAction extends AccountSettingsAction $this->element('legend', null, _('Email preferences')); $this->elementStart('ul', 'form_data'); - $this->elementStart('li'); - $this->checkbox('emailnotifysub', - // TRANS: Checkbox label in e-mail preferences form. - _('Send me notices of new subscriptions through email.'), - $user->emailnotifysub); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('emailnotifyfav', - // TRANS: Checkbox label in e-mail preferences form. - _('Send me email when someone '. - 'adds my notice as a favorite.'), - $user->emailnotifyfav); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('emailnotifymsg', - // TRANS: Checkbox label in e-mail preferences form. - _('Send me email when someone sends me a private message.'), - $user->emailnotifymsg); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('emailnotifyattn', - // TRANS: Checkbox label in e-mail preferences form. - _('Send me email when someone sends me an "@-reply".'), - $user->emailnotifyattn); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('emailnotifynudge', - // TRANS: Checkbox label in e-mail preferences form. - _('Allow friends to nudge me and send me an email.'), - $user->emailnotifynudge); - $this->elementEnd('li'); - if (common_config('emailpost', 'enabled')) { - $this->elementStart('li'); - $this->checkbox('emailpost', - // TRANS: Checkbox label in e-mail preferences form. - _('I want to post notices by email.'), - $user->emailpost); - $this->elementEnd('li'); - } - $this->elementStart('li'); - $this->checkbox('emailmicroid', - // TRANS: Checkbox label in e-mail preferences form. - _('Publish a MicroID for my email address.'), - $user->emailmicroid); - $this->elementEnd('li'); + + if (Event::handle('StartEmailFormData', array($this))) { + $this->elementStart('li'); + $this->checkbox('emailnotifysub', + // TRANS: Checkbox label in e-mail preferences form. + _('Send me notices of new subscriptions through email.'), + $user->emailnotifysub); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('emailnotifyfav', + // TRANS: Checkbox label in e-mail preferences form. + _('Send me email when someone '. + 'adds my notice as a favorite.'), + $user->emailnotifyfav); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('emailnotifymsg', + // TRANS: Checkbox label in e-mail preferences form. + _('Send me email when someone sends me a private message.'), + $user->emailnotifymsg); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('emailnotifyattn', + // TRANS: Checkbox label in e-mail preferences form. + _('Send me email when someone sends me an "@-reply".'), + $user->emailnotifyattn); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('emailnotifynudge', + // TRANS: Checkbox label in e-mail preferences form. + _('Allow friends to nudge me and send me an email.'), + $user->emailnotifynudge); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('emailmicroid', + // TRANS: Checkbox label in e-mail preferences form. + _('Publish a MicroID for my email address.'), + $user->emailmicroid); + $this->elementEnd('li'); + Event::handle('EndEmailFormData', array($this)); + } $this->elementEnd('ul'); // TRANS: Button label to save e-mail preferences. $this->submit('save', _m('BUTTON','Save')); @@ -295,43 +325,48 @@ class EmailsettingsAction extends AccountSettingsAction function savePreferences() { - $emailnotifysub = $this->boolean('emailnotifysub'); - $emailnotifyfav = $this->boolean('emailnotifyfav'); - $emailnotifymsg = $this->boolean('emailnotifymsg'); - $emailnotifynudge = $this->boolean('emailnotifynudge'); - $emailnotifyattn = $this->boolean('emailnotifyattn'); - $emailmicroid = $this->boolean('emailmicroid'); - $emailpost = $this->boolean('emailpost'); - - $user = common_current_user(); - - assert(!is_null($user)); // should already be checked - - $user->query('BEGIN'); - - $original = clone($user); - - $user->emailnotifysub = $emailnotifysub; - $user->emailnotifyfav = $emailnotifyfav; - $user->emailnotifymsg = $emailnotifymsg; - $user->emailnotifynudge = $emailnotifynudge; - $user->emailnotifyattn = $emailnotifyattn; - $user->emailmicroid = $emailmicroid; - $user->emailpost = $emailpost; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - // TRANS: Server error thrown on database error updating e-mail preferences. - $this->serverError(_('Couldn\'t update user.')); - return; - } - - $user->query('COMMIT'); - - // TRANS: Confirmation message for successful e-mail preferences save. - $this->showForm(_('Email preferences saved.'), true); + $user = common_current_user(); + + if (Event::handle('StartEmailSaveForm', array($this, &$user))) { + + $emailnotifysub = $this->boolean('emailnotifysub'); + $emailnotifyfav = $this->boolean('emailnotifyfav'); + $emailnotifymsg = $this->boolean('emailnotifymsg'); + $emailnotifynudge = $this->boolean('emailnotifynudge'); + $emailnotifyattn = $this->boolean('emailnotifyattn'); + $emailmicroid = $this->boolean('emailmicroid'); + $emailpost = $this->boolean('emailpost'); + + assert(!is_null($user)); // should already be checked + + $user->query('BEGIN'); + + $original = clone($user); + + $user->emailnotifysub = $emailnotifysub; + $user->emailnotifyfav = $emailnotifyfav; + $user->emailnotifymsg = $emailnotifymsg; + $user->emailnotifynudge = $emailnotifynudge; + $user->emailnotifyattn = $emailnotifyattn; + $user->emailmicroid = $emailmicroid; + $user->emailpost = $emailpost; + + $result = $user->update($original); + + if ($result === false) { + common_log_db_error($user, 'UPDATE', __FILE__); + // TRANS: Server error thrown on database error updating e-mail preferences. + $this->serverError(_('Couldn\'t update user.')); + return; + } + + $user->query('COMMIT'); + + Event::handle('EndEmailSaveForm', array($this)); + + // TRANS: Confirmation message for successful e-mail preferences save. + $this->showForm(_('Email preferences saved.'), true); + } } /** @@ -497,6 +532,7 @@ class EmailsettingsAction extends AccountSettingsAction $orig = clone($user); $user->incomingemail = null; + $user->emailpost = 0; if (!$user->updateKeys($orig)) { common_log_db_error($user, 'UPDATE', __FILE__); @@ -521,6 +557,7 @@ class EmailsettingsAction extends AccountSettingsAction $orig = clone($user); $user->incomingemail = mail_new_incoming_address(); + $user->emailpost = 1; if (!$user->updateKeys($orig)) { common_log_db_error($user, 'UPDATE', __FILE__); diff --git a/actions/favorited.php b/actions/favorited.php index d8980440d1..19d49feecf 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -185,29 +185,11 @@ class FavoritedAction extends Action function showContent() { - $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); - $cutoff = sprintf("fave.modified > '%s'", - common_sql_date(time() - common_config('popular', 'cutoff'))); - - $qry = 'SELECT notice.*, '. - $weightexpr . ' as weight ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - "WHERE $cutoff " . - 'GROUP BY id,profile_id,uri,content,rendered,url,created,notice.modified,reply_to,is_local,source,notice.conversation ' . - 'ORDER BY weight DESC'; - - $offset = ($this->page - 1) * NOTICES_PER_PAGE; - $limit = NOTICES_PER_PAGE + 1; - - if (common_config('db', 'type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - - $notice = Memcached_DataObject::cachedQuery('Notice', - $qry, - 600); + $pop = new Popularity(); + $pop->offset = ($this->page - 1) * NOTICES_PER_PAGE; + $pop->limit = NOTICES_PER_PAGE; + $pop->expiry = 600; + $notice = $pop->getNotices(); $nl = new NoticeList($notice, $this); diff --git a/actions/getfile.php b/actions/getfile.php index 9cbe8e1d99..a45506ce2a 100644 --- a/actions/getfile.php +++ b/actions/getfile.php @@ -129,9 +129,9 @@ class GetfileAction extends Action return null; } - $cache = common_memcache(); + $cache = Cache::instance(); if($cache) { - $key = common_cache_key('attachments:etag:' . $this->path); + $key = Cache::key('attachments:etag:' . $this->path); $etag = $cache->get($key); if($etag === false) { $etag = crc32(file_get_contents($this->path)); diff --git a/actions/groupmembers.php b/actions/groupmembers.php index 54f1d8dcda..d03d0b5a3a 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -97,9 +97,13 @@ class GroupmembersAction extends GroupDesignAction function title() { if ($this->page == 1) { + // TRANS: Title of the page showing group members. + // TRANS: %s is the name of the group. return sprintf(_('%s group members'), $this->group->nickname); } else { + // TRANS: Title of the page showing group members. + // TRANS: %1$s is the name of the group, %2$d is the page number of the members list. return sprintf(_('%1$s group members, page %2$d'), $this->group->nickname, $this->page); @@ -389,7 +393,14 @@ class GroupBlockForm extends Form function formActions() { - $this->out->submit('submit', _('Block'), 'submit', null, _('Block this user')); + $this->out->submit( + 'submit', + // TRANS: Button text for the form that will block a user from a group. + _m('BUTTON','Block'), + 'submit', + null, + // TRANS: Submit button title. + _m('TOOLTIP', 'Block this user')); } } @@ -516,6 +527,13 @@ class MakeAdminForm extends Form function formActions() { - $this->out->submit('submit', _('Make Admin'), 'submit', null, _('Make this user an admin')); + $this->out->submit( + 'submit', + // TRANS: Button text for the form that will make a user administrator. + _m('BUTTON','Make Admin'), + 'submit', + null, + // TRANS: Submit button title. + _m('TOOLTIP','Make this user an admin')); } } diff --git a/actions/groupunblock.php b/actions/groupunblock.php index dd6b15c26c..ef2380725e 100644 --- a/actions/groupunblock.php +++ b/actions/groupunblock.php @@ -32,7 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } /** - * Unlock a user from a group + * Unblock a user from a group * * @category Action * @package StatusNet @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class GroupunblockAction extends Action { var $profile = null; @@ -53,11 +52,11 @@ class GroupunblockAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed when trying to unblock a user from a group while not logged in. $this->clientError(_('Not logged in.')); return false; } @@ -68,11 +67,13 @@ class GroupunblockAction extends Action } $id = $this->trimmed('unblockto'); if (empty($id)) { + // TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. $this->clientError(_('No profile specified.')); return false; } $this->profile = Profile::staticGet('id', $id); if (empty($this->profile)) { + // TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. $this->clientError(_('No profile with that ID.')); return false; } @@ -83,15 +84,18 @@ class GroupunblockAction extends Action } $this->group = User_group::staticGet('id', $group_id); if (empty($this->group)) { + // TRANS: Client error displayed when trying to unblock a user from a non-existing group. $this->clientError(_('No such group.')); return false; } $user = common_current_user(); if (!$user->isAdmin($this->group)) { + // TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. $this->clientError(_('Only an admin can unblock group members.'), 401); return false; } if (!Group_block::isBlocked($this->group, $this->profile)) { + // TRANS: Client error displayed when trying to unblock a non-blocked user from a group. $this->clientError(_('User is not blocked from group.')); return false; } @@ -105,7 +109,6 @@ class GroupunblockAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -119,12 +122,12 @@ class GroupunblockAction extends Action * * @return void */ - function unblockProfile() { $result = Group_block::unblockProfile($this->group, $this->profile); if (!$result) { + // TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. $this->serverError(_('Error removing the block.')); return; } @@ -146,4 +149,3 @@ class GroupunblockAction extends Action } } } - diff --git a/plugins/OStatus/actions/hostmeta.php b/actions/hostmeta.php similarity index 62% rename from plugins/OStatus/actions/hostmeta.php rename to actions/hostmeta.php index 8ca07f9165..331fc8a999 100644 --- a/plugins/OStatus/actions/hostmeta.php +++ b/actions/hostmeta.php @@ -18,28 +18,46 @@ */ /** - * @package OStatusPlugin + * @category Action + * @package StatusNet * @maintainer James Walker <james@status.net> + * @author Craig Andrews <candrews@integralblue.com> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} class HostMetaAction extends Action { + /** + * Is read only? + * + * @return boolean true + */ + function isReadOnly() + { + return true; + } + function handle() { parent::handle(); $domain = common_config('site', 'server'); - $url = common_local_url('userxrd'); - $url.= '?uri={uri}'; $xrd = new XRD(); $xrd->host = $domain; - $xrd->links[] = array('rel' => Discovery::LRDD_REL, - 'template' => $url, - 'title' => array('Resource Descriptor')); + + if(Event::handle('StartHostMetaLinks', array(&$xrd->links))) { + $url = common_local_url('userxrd'); + $url.= '?uri={uri}'; + $xrd->links[] = array('rel' => Discovery::LRDD_REL, + 'template' => $url, + 'title' => array('Resource Descriptor')); + Event::handle('EndHostMetaLinks', array(&$xrd->links)); + } header('Content-type: application/xrd+xml'); print $xrd->toXML(); diff --git a/actions/imsettings.php b/actions/imsettings.php index 662b1063e7..1b1bc0dc0d 100644 --- a/actions/imsettings.php +++ b/actions/imsettings.php @@ -133,7 +133,7 @@ class ImsettingsAction extends ConnectSettingsAction 'message with further instructions. '. '(Did you add %s to your buddy list?)'), $transport_info['display'], - $transport_info['daemon_screenname'])); + $transport_info['daemonScreenname'])); $this->hidden('screenname', $confirm->address); // TRANS: Button label to cancel an IM address confirmation procedure. $this->submit('cancel', _m('BUTTON','Cancel')); diff --git a/actions/invite.php b/actions/invite.php index 4bba8893d6..e9adb3b7f9 100644 --- a/actions/invite.php +++ b/actions/invite.php @@ -36,8 +36,11 @@ class InviteAction extends CurrentUserDesignAction { parent::handle($args); if (!common_config('invite', 'enabled')) { + // TRANS: Client error displayed when trying to sent invites while they have been disabled. $this->clientError(_('Invites have been disabled.')); } else if (!common_logged_in()) { + // TRANS: Client error displayed when trying to sent invites while not logged in. + // TRANS: %s is the StatusNet site name. $this->clientError(sprintf(_('You must be logged in to invite other users to use %s.'), common_config('site', 'name'))); return; @@ -69,7 +72,9 @@ class InviteAction extends CurrentUserDesignAction foreach ($addresses as $email) { $email = trim($email); if (!Validate::email($email, common_config('email', 'check_domain'))) { - $this->showForm(sprintf(_('Invalid email address: %s'), $email)); + // TRANS: Form validation message when providing an e-mail address that does not validate. + // TRANS: %s is an invalid e-mail address. + $this->showForm(sprintf(_('Invalid email address: %s.'), $email)); return; } } @@ -107,8 +112,10 @@ class InviteAction extends CurrentUserDesignAction function title() { if ($this->mode == 'sent') { - return _('Invitation(s) sent'); + // TRANS: Page title when invitations have been sent. + return _('Invitations sent'); } else { + // TRANS: Page title when inviting potential users. return _('Invite new users'); } } @@ -125,28 +132,48 @@ class InviteAction extends CurrentUserDesignAction function showInvitationSuccess() { if ($this->already) { - $this->element('p', null, _('You are already subscribed to these users:')); + // TRANS: Message displayed inviting users to use a StatusNet site while the inviting user + // TRANS: is already subscribed to one or more users with the given e-mail address(es). + // TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. + // TRANS: Followed by a bullet list. + $this->element('p', null, _m('You are already subscribed to this user:', + 'You are already subscribed to these users:', + count($this->already))); $this->elementStart('ul'); foreach ($this->already as $other) { - $this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email)); + // TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). + $this->element('li', null, sprintf(_m('INVITE','%1$s (%2$s)'), $other->nickname, $other->email)); } $this->elementEnd('ul'); } if ($this->subbed) { - $this->element('p', null, _('These people are already users and you were automatically subscribed to them:')); + // TRANS: Message displayed inviting users to use a StatusNet site while the invited user + // TRANS: already uses a this StatusNet site. Plural form is based on the number of + // TRANS: reported already present people. Followed by a bullet list. + $this->element('p', null, _m('This person is already a user and you were automatically subscribed:', + 'These people are already users and you were automatically subscribed to them:', + count($this->subbed))); $this->elementStart('ul'); foreach ($this->subbed as $other) { - $this->element('li', null, sprintf(_('%1$s (%2$s)'), $other->nickname, $other->email)); + // TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). + $this->element('li', null, sprintf(_m('INVITE','%1$s (%2$s)'), $other->nickname, $other->email)); } $this->elementEnd('ul'); } if ($this->sent) { - $this->element('p', null, _('Invitation(s) sent to the following people:')); + // TRANS: Message displayed inviting users to use a StatusNet site. Plural form is + // TRANS: based on the number of invitations sent. Followed by a bullet list of + // TRANS: e-mail addresses to which invitations were sent. + $this->element('p', null, _m('Invitation sent to the following person:', + 'Invitations sent to the following people:', + count($this->sent))); $this->elementStart('ul'); foreach ($this->sent as $other) { $this->element('li', null, $other); } $this->elementEnd('ul'); + // TRANS: Generic message displayed after sending out one or more invitations to + // TRANS: people to join a StatusNet site. $this->element('p', null, _('You will be notified when your invitees accept the invitation and register on the site. Thanks for growing the community!')); } } @@ -159,6 +186,7 @@ class InviteAction extends CurrentUserDesignAction } else { $this->elementStart('div', 'instructions'); $this->element('p', null, + // TRANS: Form instructions. _('Use this form to invite your friends and colleagues to use this service.')); $this->elementEnd('div'); } @@ -179,18 +207,23 @@ class InviteAction extends CurrentUserDesignAction 'class' => 'form_settings', 'action' => common_local_url('invite'))); $this->elementStart('fieldset'); + // TRANS: Form legend. $this->element('legend', null, 'Send an invitation'); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label for a list of e-mail addresses. $this->textarea('addresses', _('Email addresses'), $this->trimmed('addresses'), + // TRANS: Tooltip for field label for a list of e-mail addresses. _('Addresses of friends to invite (one per line)')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label for a personal message to send to invitees. $this->textarea('personal', _('Personal message'), $this->trimmed('personal'), + // TRANS: Tooltip for field label for a personal message to send to invitees. _('Optionally add a personal message to the invitation.')); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -224,10 +257,16 @@ class InviteAction extends CurrentUserDesignAction $headers['From'] = mail_notify_from(); $headers['To'] = trim($email); - // TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. + // TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral + // TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is + // TRANS: the StatusNet sitename. $headers['Subject'] = sprintf(_('%1$s has invited you to join them on %2$s'), $bestname, $sitename); - // TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. + // TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral + // TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the + // TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the + // TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link + // TRANS: to register with the StatusNet site. $body = sprintf(_("%1\$s has invited you to join them on %2\$s (%3\$s).\n\n". "%2\$s is a micro-blogging service that lets you keep up-to-date with people you know and people who interest you.\n\n". "You can also share news about yourself, your thoughts, or your life online with people who know about you. ". diff --git a/actions/licenseadminpanel.php b/actions/licenseadminpanel.php new file mode 100644 index 0000000000..95ac48cc8f --- /dev/null +++ b/actions/licenseadminpanel.php @@ -0,0 +1,322 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * License administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +/** + * License settings + * + * @category Admin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class LicenseadminpanelAction extends AdminPanelAction +{ + + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + // TRANS: User admin panel title + return _m('TITLE', 'License'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _('License for this StatusNet site'); + } + + /** + * Show the site admin panel form + * + * @return void + */ + + function showForm() + { + $form = new LicenseAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array( + 'license' => array('type', 'owner', 'url', 'title', 'image') + ); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] = $this->trimmed($setting); + } + } + + // This throws an exception on validation errors + + $this->validate($values); + + // assert(all values are valid); + + $config = new Config(); + + $config->query('BEGIN'); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + /** + * Validate License admin form values + * + * @param array &$values from the form + * + * @return nothing + */ + + function validate(&$values) + { + // Validate license type (shouldn't have to do it, but just in case) + + $types = array('private', 'allrightsreserved', 'cc'); + + if (!in_array($values['license']['type'], $types)) { + $this->clientError(_("Invalid license selection.")); + } + + // Make sure the user has set an owner if the site has a private + // license + + if ($values['license']['type'] == 'allrightsreserved' + && empty($values['license']['owner']) + ) { + $this->clientError( + _("You must specify the owner of the content when using the All Rights Reserved license.") + ); + } + + // Make sure the license title is not too long + if (mb_strlen($values['license']['type']) > 255) { + $this->clientError( + _('Invalid license title. Maximum length is 255 characters.') + ); + } + + // make sure the license URL and license image URL are valid URLs + + $options = array('allowed_schemes' => array('http', 'https')); + + // URLs should be set for cc license + + if ($values['license']['type'] == 'cc') { + if (!Validate::uri($values['license']['url'], $options)) { + $this->clientError(_("Invalid license URL.")); + } + if (!Validate::uri($values['license']['image'], $options)) { + $this->clientError(_("Invalid license image URL.")); + } + } + + // can be either blank or a valid URL for private & allrightsreserved + + if (!empty($values['license']['url'])) { + if (!Validate::uri($values['license']['url'], $options)) { + $this->clientError(_("License URL must be blank or a valid URL.")); + } + } + + // can be either blank or a valid URL for private & allrightsreserved + + if (!empty($values['license']['image'])) { + if (!Validate::uri($values['license']['image'], $options)) { + $this->clientError(_("License image must be blank or valid URL.")); + } + } + } +} + +class LicenseAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'licenseadminpanel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('licenseadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart( + 'fieldset', array('id' => 'settings_license-selection') + ); + $this->out->element('legend', null, _('License selection')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + + $types = array( + 'private' => _('Private'), + 'allrightsreserved' => _('All Rights Reserved'), + 'cc' => _('Creative Commons') + ); + + $this->out->dropdown( + 'type', + _('Type'), + $types, + _('Select license'), + false, + $this->value('type', 'license') + ); + + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_license-details') + ); + $this->out->element('legend', null, _('License details')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input( + 'owner', + _('Owner'), + _('Name of the owner of the site\'s content (if applicable).'), + 'license' + ); + $this->unli(); + + $this->li(); + $this->input( + 'title', + _('License Title'), + _('The title of the license.'), + 'license' + ); + $this->unli(); + + $this->li(); + $this->input( + 'url', + _('License URL'), + _('URL for more information about the license.'), + 'license' + ); + $this->unli(); + + $this->li(); + $this->input( + 'image', _('License Image URL'), + _('URL for an image to display with the license.'), + 'license' + ); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit( + 'submit', _('Save'), 'submit', null, _('Save license settings') + ); + } +} diff --git a/actions/login.php b/actions/login.php index d3e4312f71..103df7ee5a 100644 --- a/actions/login.php +++ b/actions/login.php @@ -62,28 +62,6 @@ class LoginAction extends Action return false; } - /** - * Prepare page to run - * - * - * @param $args - * @return string title - */ - - function prepare($args) - { - parent::prepare($args); - - // @todo this check should really be in index.php for all sensitive actions - $ssl = common_config('site', 'ssl'); - if (empty($_SERVER['HTTPS']) && ($ssl == 'always' || $ssl == 'sometimes')) { - common_redirect(common_local_url('login')); - // exit - } - - return true; - } - /** * Handle input, produce output * @@ -118,27 +96,10 @@ class LoginAction extends Action * @return void */ - function checkLogin($user_id=null, $token=null) + function checkLogin($user_id=null) { // XXX: login throttle - // CSRF protection - token set in NoticeForm - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $st = common_session_token(); - if (empty($token)) { - common_log(LOG_WARNING, 'No token provided by client.'); - } else if (empty($st)) { - common_log(LOG_WARNING, 'No session token stored.'); - } else { - common_log(LOG_WARNING, 'Token = ' . $token . ' and session token = ' . $st); - } - - $this->clientError(_('There was a problem with your session token. '. - 'Try again, please.')); - return; - } - $nickname = $this->trimmed('nickname'); $password = $this->arg('password'); @@ -261,7 +222,6 @@ class LoginAction extends Action $this->elementEnd('li'); $this->elementEnd('ul'); $this->submit('submit', _('Login')); - $this->hidden('token', common_session_token()); $this->elementEnd('fieldset'); $this->elementEnd('form'); $this->elementStart('p'); diff --git a/actions/makeadmin.php b/actions/makeadmin.php index 9ccb442308..4e6e97a569 100644 --- a/actions/makeadmin.php +++ b/actions/makeadmin.php @@ -148,7 +148,7 @@ class MakeadminAction extends RedirectingAction $this->group->getBestName()); } - $this->returnToArgs(); + $this->returnToPrevious(); } /** diff --git a/actions/newapplication.php b/actions/newapplication.php index 0f819b3499..ae17545589 100644 --- a/actions/newapplication.php +++ b/actions/newapplication.php @@ -42,14 +42,14 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class NewApplicationAction extends OwnerDesignAction { var $msg; function title() { - return _('New Application'); + // TRANS: This is the title of the form for adding a new application. + return _('New application'); } /** @@ -61,6 +61,7 @@ class NewApplicationAction extends OwnerDesignAction parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to add a new application while not logged in. $this->clientError(_('You must be logged in to register an application.')); return false; } @@ -91,35 +92,38 @@ class NewApplicationAction extends OwnerDesignAction function handlePost($args) { - // Workaround for PHP returning empty $_POST and $_FILES when POST + // Workaround for PHP returning empty $_POST and $_FILES when POST // length > post_max_size in php.ini if (empty($_FILES) && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->clientException(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; } - // CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->clientError(_('There was a problem with your session token.')); - return; - } + // CSRF protection + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->clientError(_('There was a problem with your session token.')); + return; + } - $cur = common_current_user(); + $cur = common_current_user(); - if ($this->arg('cancel')) { - common_redirect(common_local_url('oauthappssettings'), 303); - } elseif ($this->arg('save')) { - $this->trySave(); - } else { - $this->clientError(_('Unexpected form submission.')); - } + if ($this->arg('cancel')) { + common_redirect(common_local_url('oauthappssettings'), 303); + } elseif ($this->arg('save')) { + $this->trySave(); + } else { + $this->clientError(_('Unexpected form submission.')); + } } function showForm($msg=null) @@ -162,15 +166,19 @@ class NewApplicationAction extends OwnerDesignAction $this->showForm(_('Name already in use. Try another one.')); return; } elseif (mb_strlen($name) > 255) { - $this->showForm(_('Name is too long (max 255 chars).')); + $this->showForm(_('Name is too long (maximum 255 characters).')); return; } elseif (empty($description)) { $this->showForm(_('Description is required.')); return; } elseif (Oauth_application::descriptionTooLong($description)) { $this->showForm(sprintf( - _('Description is too long (max %d chars).'), - Oauth_application::maxDescription())); + // TRANS: Form validation error in New application form. + // TRANS: %d is the maximum number of characters for the description. + _m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + Oauth_application::maxDesc()), + Oauth_application::maxDesc())); return; } elseif (empty($source_url)) { $this->showForm(_('Source URL is required.')); @@ -188,7 +196,7 @@ class NewApplicationAction extends OwnerDesignAction $this->showForm(_('Organization is required.')); return; } elseif (mb_strlen($organization) > 255) { - $this->showForm(_('Organization is too long (max 255 chars).')); + $this->showForm(_('Organization is too long (maximum 255 characters).')); return; } elseif (empty($homepage)) { $this->showForm(_('Organization homepage is required.')); diff --git a/actions/newgroup.php b/actions/newgroup.php index 75bc293ec6..95af6415e5 100644 --- a/actions/newgroup.php +++ b/actions/newgroup.php @@ -43,25 +43,25 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class NewgroupAction extends Action { var $msg; function title() { + // TRANS: Title for form to create a group. return _('New group'); } /** * Prepare to run */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to create a group while not logged in. $this->clientError(_('You must be logged in to create a group.')); return false; } @@ -78,7 +78,6 @@ class NewgroupAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -107,45 +106,54 @@ class NewgroupAction extends Action $this->element('p', 'error', $this->msg); } else { $this->element('p', 'instructions', + // TRANS: Form instructions for group create form. _('Use this form to create a new group.')); } } function trySave() { - $nickname = $this->trimmed('nickname'); + try { + $nickname = Nickname::normalize($this->trimmed('nickname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); + } $fullname = $this->trimmed('fullname'); $homepage = $this->trimmed('homepage'); $description = $this->trimmed('description'); $location = $this->trimmed('location'); $aliasstring = $this->trimmed('aliases'); - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_('Nickname must have only lowercase letters '. - 'and numbers and no spaces.')); - return; - } else if ($this->nicknameExists($nickname)) { + if ($this->nicknameExists($nickname)) { + // TRANS: Group create form validation error. $this->showForm(_('Nickname already in use. Try another one.')); return; } else if (!User_group::allowedNickname($nickname)) { + // TRANS: Group create form validation error. $this->showForm(_('Not a valid nickname.')); return; } else if (!is_null($homepage) && (strlen($homepage) > 0) && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Group create form validation error. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { - $this->showForm(_('Full name is too long (max 255 chars).')); + // TRANS: Group create form validation error. + $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (User_group::descriptionTooLong($description)) { - $this->showForm(sprintf(_('description is too long (max %d chars).'), User_group::maxDescription())); + // TRANS: Group create form validation error. + // TRANS: %d is the maximum number of allowed characters. + $this->showForm(sprintf(_m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + User_group::maxDescription()), + User_group::maxDescription())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { - $this->showForm(_('Location is too long (max 255 chars).')); + // TRANS: Group create form validation error. + $this->showForm(_('Location is too long (maximum 255 characters).')); return; } @@ -156,25 +164,30 @@ class NewgroupAction extends Action } if (count($aliases) > common_config('group', 'maxaliases')) { - $this->showForm(sprintf(_('Too many aliases! Maximum %d.'), + // TRANS: Group create form validation error. + // TRANS: %d is the maximum number of allowed aliases. + $this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.', + 'Too many aliases! Maximum %d allowed.', + common_config('group', 'maxaliases')), common_config('group', 'maxaliases'))); return; } foreach ($aliases as $alias) { - if (!Validate::string($alias, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { + if (!Nickname::isValid($alias)) { + // TRANS: Group create form validation error. $this->showForm(sprintf(_('Invalid alias: "%s"'), $alias)); return; } if ($this->nicknameExists($alias)) { + // TRANS: Group create form validation error. $this->showForm(sprintf(_('Alias "%s" already in use. Try another one.'), $alias)); return; } // XXX assumes alphanum nicknames if (strcmp($alias, $nickname) == 0) { + // TRANS: Group create form validation error. $this->showForm(_('Alias can\'t be the same as nickname.')); return; } @@ -218,4 +231,3 @@ class NewgroupAction extends Action return false; } } - diff --git a/actions/newmessage.php b/actions/newmessage.php index 25e58feab3..447a00580c 100644 --- a/actions/newmessage.php +++ b/actions/newmessage.php @@ -144,11 +144,14 @@ class NewmessageAction extends Action $this->showForm(_('No content!')); return; } else { - $content_shortened = common_shorten_links($this->content); + $content_shortened = $user->shortenLinks($this->content); if (Message::contentTooLong($content_shortened)) { - $this->showForm(sprintf(_('That\'s too long. ' . - 'Max message size is %d chars.'), + // TRANS: Form validation error displayed when message content is too long. + // TRANS: %d is the maximum number of characters for a message. + $this->showForm(sprintf(_m('That\'s too long. Maximum message size is %d character.', + 'That\'s too long. Maximum message size is %d characters.', + Message::maxContent()), Message::maxContent())); return; } diff --git a/actions/newnotice.php b/actions/newnotice.php index 61b38786bd..faafd9551d 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -82,7 +82,6 @@ class NewnoticeAction extends Action * * @return void */ - function handle($args) { if (!common_logged_in()) { @@ -91,9 +90,12 @@ class NewnoticeAction extends Action // check for this before token since all POST and FILES data // is losts when size is exceeded if (empty($_POST) && $_SERVER['CONTENT_LENGTH']) { - $this->clientError(sprintf(_('The server was unable to handle ' . - 'that much POST data (%s bytes) due to its current configuration.'), - $_SERVER['CONTENT_LENGTH'])); + // TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. + // TRANS: %s is the number of bytes of the CONTENT_LENGTH. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); + $this->clientError(sprintf($msg,$_SERVER['CONTENT_LENGTH'])); } parent::handle($args); @@ -152,10 +154,13 @@ class NewnoticeAction extends Action return; } - $content_shortened = common_shorten_links($content); + $content_shortened = $user->shortenLinks($content); if (Notice::contentTooLong($content_shortened)) { - $this->clientError(sprintf(_('That\'s too long. '. - 'Max notice size is %d chars.'), + // TRANS: Client error displayed when the parameter "status" is missing. + // TRANS: %d is the maximum number of character for a notice. + $this->clientError(sprintf(_m('That\'s too long. Maximum notice size is %d character.', + 'That\'s too long. Maximum notice size is %d characters.', + Notice::maxContent()), Notice::maxContent())); } @@ -176,12 +181,10 @@ class NewnoticeAction extends Action if (Notice::contentTooLong($content_shortened)) { $upload->delete(); - $this->clientError( - sprintf( - _('Max notice size is %d chars, including attachment URL.'), - Notice::maxContent() - ) - ); + $this->clientError(sprintf(_m('Maximum notice size is %d character, including attachment URL.', + 'Maximum notice size is %d characters, including attachment URL.', + Notice::maxContent()), + Notice::maxContent())); } } @@ -204,10 +207,18 @@ class NewnoticeAction extends Action $options = array_merge($options, $locOptions); } - $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); + $author_id = $user->id; + $text = $content_shortened; - if (isset($upload)) { - $upload->attachToNotice($notice); + if (Event::handle('StartNoticeSaveWeb', array($this, &$author_id, &$text, &$options))) { + + $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); + + if (isset($upload)) { + $upload->attachToNotice($notice); + } + + Event::handle('EndNoticeSaveWeb', array($this, $notice)); } Event::handle('EndSaveNewNoticeWeb', array($this, $user, &$content_shortened, &$options)); @@ -344,4 +355,3 @@ class NewnoticeAction extends Action $nli->show(); } } - diff --git a/actions/nudge.php b/actions/nudge.php index 32ae8587cc..219a8c9aba 100644 --- a/actions/nudge.php +++ b/actions/nudge.php @@ -82,7 +82,7 @@ class NudgeAction extends Action } if (!$other->email || !$other->emailnotifynudge) { - $this->clientError(_('This user doesn\'t allow nudges or hasn\'t confirmed or set their email yet.')); + $this->clientError(_('This user doesn\'t allow nudges or hasn\'t confirmed or set their email address yet.')); return; } diff --git a/actions/oauthappssettings.php b/actions/oauthappssettings.php index 6c0670b17b..c98c90dbf8 100644 --- a/actions/oauthappssettings.php +++ b/actions/oauthappssettings.php @@ -56,6 +56,7 @@ class OauthappssettingsAction extends SettingsAction $this->page = ($this->arg('page')) ? ($this->arg('page') + 0) : 1; if (!common_logged_in()) { + // TRANS: Message displayed to an anonymous user trying to view OAuth application list. $this->clientError(_('You must be logged in to list your applications.')); return false; } @@ -71,6 +72,7 @@ class OauthappssettingsAction extends SettingsAction function title() { + // TRANS: Page title for OAuth applications return _('OAuth applications'); } @@ -82,6 +84,7 @@ class OauthappssettingsAction extends SettingsAction function getInstructions() { + // TRANS: Page instructions for OAuth applications return _('Applications you have registered'); } @@ -100,6 +103,7 @@ class OauthappssettingsAction extends SettingsAction $application = new Oauth_application(); $application->owner = $user->id; + $application->whereAdd("name != 'anonymous'"); $application->limit($offset, $limit); $application->orderBy('created DESC'); $application->find(); @@ -119,6 +123,7 @@ class OauthappssettingsAction extends SettingsAction array('href' => common_local_url('newapplication'), 'class' => 'more' ), + // TRANS: Link description to add a new OAuth application. 'Register a new application'); $this->elementEnd('p'); @@ -132,6 +137,7 @@ class OauthappssettingsAction extends SettingsAction function showEmptyListMessage() { + // TRANS: Empty list message on page with OAuth applications. $message = sprintf(_('You have not registered any applications yet.')); $this->elementStart('div', 'guide'); @@ -162,5 +168,4 @@ class OauthappssettingsAction extends SettingsAction } } - } diff --git a/actions/oauthconnectionssettings.php b/actions/oauthconnectionssettings.php index 8a206d7101..cdb73203f0 100644 --- a/actions/oauthconnectionssettings.php +++ b/actions/oauthconnectionssettings.php @@ -22,7 +22,7 @@ * @category Settings * @package StatusNet * @author Zach Copley <zach@status.net> - * @copyright 2008-2009 StatusNet, Inc. + * @copyright 2008-2010 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/ */ @@ -46,17 +46,15 @@ require_once INSTALLDIR . '/lib/apioauthstore.php'; * * @see SettingsAction */ - class OauthconnectionssettingsAction extends ConnectSettingsAction { - - var $page = null; - var $id = null; + var $page = null; + var $oauth_token = null; function prepare($args) { parent::prepare($args); - $this->id = (int)$this->arg('id'); + $this->oauth_token = $this->arg('oauth_token'); $this->page = ($this->arg('page')) ? ($this->arg('page') + 0) : 1; return true; } @@ -69,6 +67,7 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction function title() { + // TRANS: Title for OAuth connection settings. return _('Connected applications'); } @@ -80,7 +79,8 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction function getInstructions() { - return _('You have allowed the following applications to access you account.'); + // TRANS: Instructions for OAuth connection settings. + return _('The following connections exist for your account.'); } /** @@ -97,22 +97,26 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction $offset = ($this->page - 1) * APPS_PER_PAGE; $limit = APPS_PER_PAGE + 1; - $application = $profile->getApplications($offset, $limit); + $connection = $user->getConnectedApps($offset, $limit); $cnt = 0; - if (!empty($application)) { - $al = new ApplicationList($application, $user, $this, true); - $cnt = $al->show(); + if (!empty($connection)) { + $cal = new ConnectedAppsList($connection, $user, $this); + $cnt = $cal->show(); } if ($cnt == 0) { $this->showEmptyListMessage(); } - $this->pagination($this->page > 1, $cnt > APPS_PER_PAGE, - $this->page, 'connectionssettings', - array('nickname' => $user->nickname)); + $this->pagination( + $this->page > 1, + $cnt > APPS_PER_PAGE, + $this->page, + 'connectionssettings', + array('nickname' => $user->nickname) + ); } /** @@ -125,7 +129,6 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction * * @return void */ - function handlePost() { // CSRF protection @@ -138,44 +141,36 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction } if ($this->arg('revoke')) { - $this->revokeAccess($this->id); - - // XXX: Show some indicator to the user of what's been done. - - $this->showPage(); + $this->revokeAccess($this->oauth_token); } else { + // TRANS: Client error when submitting a form with unexpected information. $this->clientError(_('Unexpected form submission.'), 401); return false; } } /** - * Revoke access to an authorized OAuth application + * Revoke an access token + * + * XXX: Confirm revoke before doing it * * @param int $appId the ID of the application * */ - - function revokeAccess($appId) + function revokeAccess($token) { $cur = common_current_user(); - $app = Oauth_application::staticGet('id', $appId); - - if (empty($app)) { - $this->clientError(_('No such application.'), 404); - return false; - } - - // XXX: Transaction here? - - $appUser = Oauth_application_user::getByKeys($cur, $app); + $appUser = Oauth_application_user::getByUserAndToken($cur, $token); if (empty($appUser)) { + // TRANS: Client error when trying to revoke access for an application while not being a user of it. $this->clientError(_('You are not a user of that application.'), 401); return false; } + $app = Oauth_application::staticGet('id', $appUser->application_id); + $datastore = new ApiStatusNetOAuthDataStore(); $datastore->revoke_token($appUser->token, 1); @@ -183,18 +178,38 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction if (!$result) { common_log_db_error($orig, 'DELETE', __FILE__); - $this->clientError(sprintf(_('Unable to revoke access for app: %s.'), $app->id)); + // TRANS: Client error when revoking access has failed for some reason. + // TRANS: %s is the application ID revoking access failed for. + $this->clientError(sprintf(_('Unable to revoke access for application: %s.'), $app->id)); return false; } - $msg = 'User %s (id: %d) revoked access to app %s (id: %d)'; - common_log(LOG_INFO, sprintf($msg, $cur->nickname, - $cur->id, $app->name, $app->id)); + $msg = 'API OAuth - user %s (id: %d) revoked access token %s for app id %d'; + common_log( + LOG_INFO, + sprintf( + $msg, + $cur->nickname, + $cur->id, + $appUser->token, + $appUser->application_id + ) + ); + $msg = sprintf( + // TRANS: Success message after revoking access for an application. + // TRANS: %1$s is the application name, %2$s is the first part of the user token. + _('You have successfully revoked access for %1$s and the access token starting with %2$s.'), + $app->name, + substr($appUser->token, 0, 7) + ); + + $this->showForm($msg, true); } function showEmptyListMessage() { + // TRANS: Empty list message when no applications have been authorised yet. $message = _('You have not authorized any applications to use your account.'); $this->elementStart('div', 'guide'); @@ -204,15 +219,26 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction function showSections() { - $cur = common_current_user(); + $cur = common_current_user(); - $this->element('h2', null, 'Developers'); - $this->elementStart('p'); - $this->raw(_('Developers can edit the registration settings for their applications ')); - $this->element('a', - array('href' => common_local_url('oauthappssettings')), - 'here.'); - $this->elementEnd('p'); + $this->elementStart('div', array('id' => 'developer-help', 'class' => 'section')); + + $this->element('h2', null, 'Developers'); + $this->elementStart('p'); + + $devMsg = sprintf( + // TRANS: Note for developers in the OAuth connection settings form. + // TRANS: This message contains a Markdown link. Do not separate "](". + // TRANS: %s is the URL to the OAuth settings. + _('Are you a developer? [Register an OAuth client application](%s) to use with this instance of StatusNet.'), + common_local_url('oauthappssettings') + ); + + $output = common_markup_to_html($devMsg); + + $this->raw($output); + $this->elementEnd('p'); + + $this->elementEnd('section'); } - } diff --git a/actions/oembed.php b/actions/oembed.php index e25e4cb259..bef707f92a 100644 --- a/actions/oembed.php +++ b/actions/oembed.php @@ -79,11 +79,7 @@ class OembedAction extends Action if (empty($profile)) { $this->serverError(_('Notice has no profile.'), 500); } - if (!empty($profile->fullname)) { - $authorname = $profile->fullname . ' (' . $profile->nickname . ')'; - } else { - $authorname = $profile->nickname; - } + $authorname = $profile->getFancyName(); $oembed['title'] = sprintf(_('%1$s\'s status on %2$s'), $authorname, common_exact_date($notice->created)); @@ -112,10 +108,23 @@ class OembedAction extends Action $oembed['url']=$file_oembed->url; }else if(substr($attachment->mimetype,0,strlen('image/'))=='image/'){ $oembed['type']='photo'; - //TODO set width and height - //$oembed['width']= - //$oembed['height']= + if ($attachment->filename) { + $filepath = File::path($attachment->filename); + $gis = @getimagesize($filepath); + if ($gis) { + $oembed['width'] = $gis[0]; + $oembed['height'] = $gis[1]; + } else { + // TODO Either throw an error or find a fallback? + } + } $oembed['url']=$attachment->url; + $thumb = $attachment->getThumbnail(); + if ($thumb) { + $oembed['thumbnail_url'] = $thumb->url; + $oembed['thumbnail_width'] = $thumb->width; + $oembed['thumbnail_height'] = $thumb->height; + } }else{ $oembed['type']='link'; $oembed['url']=common_local_url('attachment', @@ -206,4 +215,15 @@ class OembedAction extends Action return; } + /** + * Is this action read-only? + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } } diff --git a/actions/pathsadminpanel.php b/actions/pathsadminpanel.php index 7ff3c2583a..dd65a7a134 100644 --- a/actions/pathsadminpanel.php +++ b/actions/pathsadminpanel.php @@ -44,10 +44,8 @@ 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 PathsadminpanelAction extends AdminPanelAction { - /** * Returns the page title * @@ -56,6 +54,7 @@ class PathsadminpanelAction extends AdminPanelAction function title() { + // TRANS: Title for Paths admin panel. return _('Paths'); } @@ -64,10 +63,10 @@ class PathsadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - return _('Path and server settings for this StatusNet site.'); + // TRANS: Form instructions for Path admin panel. + return _('Path and server settings for this StatusNet site'); } /** @@ -75,7 +74,6 @@ class PathsadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new PathsAdminPanelForm($this); @@ -88,20 +86,20 @@ class PathsadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array( - 'site' => array('path', 'locale_path', 'ssl', 'sslserver'), - 'theme' => array('server', 'dir', 'path'), - 'avatar' => array('server', 'dir', 'path'), - 'background' => array('server', 'dir', 'path') - ); + 'site' => array('path', 'locale_path', 'ssl', 'sslserver'), + 'theme' => array('server', 'dir', 'path', 'sslserver', 'sslpath'), + 'avatar' => array('server', 'dir', 'path'), + 'background' => array('server', 'dir', 'path', 'sslserver', 'sslpath'), + 'attachments' => array('server', 'dir', 'path', 'sslserver', 'sslpath') + ); - // XXX: If we're only going to have one boolean on thi page we - // can remove some of the boolean processing code --Z + // XXX: If we're only going to have one boolean on thi page we + // can remove some of the boolean processing code --Z - static $booleans = array('site' => array('fancy')); + static $booleans = array('site' => array('fancy')); $values = array(); @@ -131,13 +129,13 @@ class PathsadminpanelAction extends AdminPanelAction } } - foreach ($booleans as $section => $parts) { - foreach ($parts as $setting) { + foreach ($booleans as $section => $parts) { + foreach ($parts as $setting) { Config::save($section, $setting, $values[$section][$setting]); } - } + } - $config->query('COMMIT'); + $config->query('COMMIT'); return; } @@ -147,25 +145,29 @@ class PathsadminpanelAction extends AdminPanelAction * * @return void */ - function validate(&$values) { - // Validate theme dir if (!empty($values['theme']['dir']) && !is_readable($values['theme']['dir'])) { + // TRANS: Client error in Paths admin panel. + // TRANS: %s is the directory that could not be read from. $this->clientError(sprintf(_("Theme directory not readable: %s."), $values['theme']['dir'])); } // Validate avatar dir if (empty($values['avatar']['dir']) || !is_writable($values['avatar']['dir'])) { + // TRANS: Client error in Paths admin panel. + // TRANS: %s is the avatar directory that could not be written to. $this->clientError(sprintf(_("Avatar directory not writable: %s."), $values['avatar']['dir'])); } // Validate background dir if (empty($values['background']['dir']) || !is_writable($values['background']['dir'])) { + // TRANS: Client error in Paths admin panel. + // TRANS: %s is the background directory that could not be written to. $this->clientError(sprintf(_("Background directory not writable: %s."), $values['background']['dir'])); } @@ -174,27 +176,28 @@ class PathsadminpanelAction extends AdminPanelAction // XXX: What else do we need to validate for lacales path here? --Z if (!empty($values['site']['locale_path']) && !is_readable($values['site']['locale_path'])) { + // TRANS: Client error in Paths admin panel. + // TRANS: %s is the locales directory that could not be read from. $this->clientError(sprintf(_("Locales directory not readable: %s."), $values['site']['locale_path'])); } // Validate SSL setup if (mb_strlen($values['site']['sslserver']) > 255) { + // TRANS: Client error in Paths admin panel. + // TRANS: %s is the SSL server URL that is too long. $this->clientError(_('Invalid SSL server. The maximum length is 255 characters.')); } } - } class PathsAdminPanelForm extends AdminForm { - /** * ID of the form * * @return int ID of the form */ - function id() { return 'form_paths_admin_panel'; @@ -205,7 +208,6 @@ class PathsAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -216,7 +218,6 @@ class PathsAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('pathsadminpanel'); @@ -227,30 +228,42 @@ class PathsAdminPanelForm extends AdminForm * * @return void */ - function formData() { - $this->out->elementStart('fieldset', array('id' => 'settings_paths_locale')); + $this->out->elementStart('fieldset', array('id' => 'settings_paths_locale')); + // TRANS: Fieldset legend in Paths admin panel. $this->out->element('legend', null, _('Site'), 'site'); $this->out->elementStart('ul', 'form_data'); - $this->li(); - $this->input('server', _('Server'), _('Site\'s server hostname.')); + $this->li(); + $this->input('server', + // TRANS: Field label in Paths admin panel. + _('Server'), + _('Site\'s server hostname.')); $this->unli(); $this->li(); - $this->input('path', _('Path'), _('Site path')); + $this->input('path', + // TRANS: Field label in Paths admin panel. + _('Path'), + _('Site path.')); $this->unli(); $this->li(); - $this->input('locale_path', _('Path to locales'), _('Directory path to locales'), 'site'); + $this->input('locale_path', + // TRANS: Field label in Paths admin panel. + _('Locale directory'), + _('Directory path to locales.'), + 'site'); $this->unli(); - $this->li(); - $this->out->checkbox('fancy', _('Fancy URLs'), + $this->li(); + $this->out->checkbox('fancy', + // TRANS: Checkbox label in Paths admin panel. + _('Fancy URLs'), (bool) $this->value('fancy'), _('Use fancy (more readable and memorable) URLs?')); - $this->unli(); + $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); @@ -261,35 +274,84 @@ class PathsAdminPanelForm extends AdminForm $this->out->elementStart('ul', 'form_data'); $this->li(); - $this->input('server', _('Theme server'), 'Server for themes', 'theme'); + $this->input('server', + // TRANS: Field label in Paths admin panel. + _('Server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for themes.'), + 'theme'); $this->unli(); $this->li(); - $this->input('path', _('Theme path'), 'Web path to themes', 'theme'); + $this->input('path', + // TRANS: Field label in Paths admin panel. + _('Path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to themes.'), + 'theme'); $this->unli(); $this->li(); - $this->input('dir', _('Theme directory'), 'Directory where themes are located', 'theme'); + $this->input('sslserver', + // TRANS: Field label in Paths admin panel. + _('SSL server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('SSL server for themes (default: SSL server).'), + 'theme'); + $this->unli(); + + $this->li(); + $this->input('sslpath', + // TRANS: Field label in Paths admin panel. + _('SSL path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('SSL path to themes (default: /theme/).'), + 'theme'); + $this->unli(); + + $this->li(); + $this->input('dir', + // TRANS: Field label in Paths admin panel. + _('Directory'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Directory where themes are located.'), + 'theme'); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_avatar-paths')); + // TRANS: Fieldset legend in Paths admin panel. $this->out->element('legend', null, _('Avatars')); $this->out->elementStart('ul', 'form_data'); $this->li(); - $this->input('server', _('Avatar server'), 'Server for avatars', 'avatar'); + $this->input('server', + // TRANS: Field label in Paths admin panel. + _('Avatar server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for avatars.'), + 'avatar'); $this->unli(); $this->li(); - $this->input('path', _('Avatar path'), 'Web path to avatars', 'avatar'); + $this->input('path', + // TRANS: Field label in Paths admin panel. + _('Avatar path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to avatars.'), + 'avatar'); $this->unli(); $this->li(); - $this->input('dir', _('Avatar directory'), 'Directory where avatars are located', 'avatar'); + $this->input('dir', + // TRANS: Field label in Paths admin panel. + _('Avatar directory'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Directory where avatars are located.'), + 'avatar'); $this->unli(); $this->out->elementEnd('ul'); @@ -297,47 +359,146 @@ class PathsAdminPanelForm extends AdminForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => - 'settings_design_background-paths')); + 'settings_design_background-paths')); + // TRANS: Fieldset legend in Paths admin panel. $this->out->element('legend', null, _('Backgrounds')); $this->out->elementStart('ul', 'form_data'); $this->li(); - $this->input('server', _('Background server'), 'Server for backgrounds', 'background'); + $this->input('server', + // TRANS: Field label in Paths admin panel. + _('Server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for backgrounds.'), + 'background'); $this->unli(); $this->li(); - $this->input('path', _('Background path'), 'Web path to backgrounds', 'background'); + $this->input('path', + // TRANS: Field label in Paths admin panel. + _('Path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to backgrounds.'), + 'background'); $this->unli(); $this->li(); - $this->input('dir', _('Background directory'), 'Directory where backgrounds are located', 'background'); + $this->input('sslserver', + // TRANS: Field label in Paths admin panel. + _('SSL server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for backgrounds on SSL pages.'), + 'background'); + $this->unli(); + + $this->li(); + $this->input('sslpath', + // TRANS: Field label in Paths admin panel. + _('SSL path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to backgrounds on SSL pages.'), + 'background'); + $this->unli(); + + $this->li(); + $this->input('dir', + // TRANS: Field label in Paths admin panel. + _('Directory'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Directory where backgrounds are located.'), + 'background'); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset', array('id' => + 'settings_design_attachments-paths')); + + // TRANS: Fieldset legens in Paths admin panel. + $this->out->element('legend', null, _('Attachments')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input('server', + // TRANS: Field label in Paths admin panel. + _('Server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for attachments.'), + 'attachments'); + $this->unli(); + + $this->li(); + $this->input('path', + // TRANS: Field label in Paths admin panel. + _('Path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to attachments.'), + 'attachments'); + $this->unli(); + + $this->li(); + $this->input('sslserver', + // TRANS: Field label in Paths admin panel. + _('SSL server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server for attachments on SSL pages.'), + 'attachments'); + $this->unli(); + + $this->li(); + $this->input('sslpath', + // TRANS: Field label in Paths admin panel. + _('SSL path'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Web path to attachments on SSL pages.'), + 'attachments'); + $this->unli(); + + $this->li(); + $this->input('dir', + // TRANS: Field label in Paths admin panel. + _('Directory'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Directory where attachments are located.'), + 'attachments'); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl')); + // TRANS: Fieldset legend in Paths admin panel. $this->out->element('legend', null, _('SSL')); $this->out->elementStart('ul', 'form_data'); $this->li(); + + // TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). $ssl = array('never' => _('Never'), + // TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). 'sometimes' => _('Sometimes'), + // TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). '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')); + // TRANS: Drop down label in Paths admin panel. + $this->out->dropdown('site-ssl', + _('Use SSL'), + // TRANS: Tooltip for field label in Paths admin panel. + $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->input('sslserver', + // TRANS: Field label in Paths admin panel. + _('SSL server'), + // TRANS: Tooltip for field label in Paths admin panel. + _('Server to direct SSL requests to.'), + 'site'); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); - } /** @@ -345,11 +506,12 @@ class PathsAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('save', _('Save'), 'submit', - 'save', _('Save paths')); + // TRANS: Button text to store form data in the Paths admin panel. + $this->out->submit('save', _m('BUTTON','Save'), 'submit', + // TRANS: Button title text to store form data in the Paths admin panel. + 'save', _('Save paths')); } /** @@ -365,10 +527,8 @@ class PathsAdminPanelForm extends AdminForm * * @return void */ - function input($setting, $title, $instructions, $section='site') { $this->out->input("$section-$setting", $title, $this->value($setting, $section), $instructions); } - } diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 161e35b111..28b1d20f34 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -57,6 +57,7 @@ class ProfilesettingsAction extends AccountSettingsAction function title() { + // TRANS: Page title for profile settings. return _('Profile settings'); } @@ -68,6 +69,7 @@ class ProfilesettingsAction extends AccountSettingsAction function getInstructions() { + // TRANS: Usage instructions for profile settings. return _('You can update your personal profile info here '. 'so people know more about you.'); } @@ -96,6 +98,7 @@ class ProfilesettingsAction extends AccountSettingsAction 'class' => 'form_settings', 'action' => common_local_url('profilesettings'))); $this->elementStart('fieldset'); + // TRANS: Profile settings form legend. $this->element('legend', null, _('Profile information')); $this->hidden('token', common_session_token()); @@ -103,38 +106,54 @@ class ProfilesettingsAction extends AccountSettingsAction $this->elementStart('ul', 'form_data'); if (Event::handle('StartProfileFormData', array($this))) { $this->elementStart('li'); + // TRANS: Field label in form for profile settings. $this->input('nickname', _('Nickname'), ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname, - _('1-64 lowercase letters or numbers, no punctuation or spaces')); + // TRANS: Tooltip for field label in form for profile settings. + _('1-64 lowercase letters or numbers, no punctuation or spaces.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label in form for profile settings. $this->input('fullname', _('Full name'), ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label in form for profile settings. $this->input('homepage', _('Homepage'), ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage, - _('URL of your homepage, blog, or profile on another site')); + // TRANS: Tooltip for field label in form for profile settings. + _('URL of your homepage, blog, or profile on another site.')); $this->elementEnd('li'); $this->elementStart('li'); $maxBio = Profile::maxBio(); if ($maxBio > 0) { - $bioInstr = sprintf(_('Describe yourself and your interests in %d chars'), + // TRANS: Tooltip for field label in form for profile settings. Plural + // TRANS: is decided by the number of characters available for the + // TRANS: biography (%d). + $bioInstr = sprintf(_m('Describe yourself and your interests in %d character', + 'Describe yourself and your interests in %d characters', + $maxBio), $maxBio); } else { + // TRANS: Tooltip for field label in form for profile settings. $bioInstr = _('Describe yourself and your interests'); } + // TRANS: Text area label in form for profile settings where users can provide. + // TRANS: their biography. $this->textarea('bio', _('Bio'), ($this->arg('bio')) ? $this->arg('bio') : $profile->bio, $bioInstr); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label in form for profile settings. $this->input('location', _('Location'), ($this->arg('location')) ? $this->arg('location') : $profile->location, + // TRANS: Tooltip for field label in form for profile settings. _('Where you are, like "City, State (or Region), Country"')); $this->elementEnd('li'); if (common_config('location', 'share') == 'user') { $this->elementStart('li'); + // TRANS: Checkbox label in form for profile settings. $this->checkbox('sharelocation', _('Share my current location when posting notices'), ($this->arg('sharelocation')) ? $this->arg('sharelocation') : $user->shareLocation()); @@ -142,13 +161,17 @@ class ProfilesettingsAction extends AccountSettingsAction } Event::handle('EndProfileFormData', array($this)); $this->elementStart('li'); + // TRANS: Field label in form for profile settings. $this->input('tags', _('Tags'), ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()), + // TRANS: Tooltip for field label in form for profile settings. _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated')); $this->elementEnd('li'); $this->elementStart('li'); $language = common_language(); + // TRANS: Dropdownlist label in form for profile settings. $this->dropdown('language', _('Language'), + // TRANS: Tooltip for dropdown list label in form for profile settings. get_nice_language_list(), _('Preferred language'), false, $language); $this->elementEnd('li'); @@ -158,12 +181,15 @@ class ProfilesettingsAction extends AccountSettingsAction $timezones[$v] = $v; } $this->elementStart('li'); + // TRANS: Dropdownlist label in form for profile settings. $this->dropdown('timezone', _('Timezone'), + // TRANS: Tooltip for dropdown list label in form for profile settings. $timezones, _('What timezone are you normally in?'), true, $timezone); $this->elementEnd('li'); $this->elementStart('li'); $this->checkbox('autosubscribe', + // TRANS: Checkbox label in form for profile settings. _('Automatically subscribe to whoever '. 'subscribes to me (best for non-humans)'), ($this->arg('autosubscribe')) ? @@ -171,7 +197,8 @@ class ProfilesettingsAction extends AccountSettingsAction $this->elementEnd('li'); } $this->elementEnd('ul'); - $this->submit('save', _('Save')); + // TRANS: Button to save input in profile settings. + $this->submit('save', _m('BUTTON','Save')); $this->elementEnd('fieldset'); $this->elementEnd('form'); @@ -198,7 +225,13 @@ class ProfilesettingsAction extends AccountSettingsAction if (Event::handle('StartProfileSaveForm', array($this))) { - $nickname = $this->trimmed('nickname'); + try { + $nickname = Nickname::normalize($this->trimmed('nickname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); + return; + } + $fullname = $this->trimmed('fullname'); $homepage = $this->trimmed('homepage'); $bio = $this->trimmed('bio'); @@ -209,36 +242,43 @@ class ProfilesettingsAction extends AccountSettingsAction $tagstring = $this->trimmed('tags'); // Some validation - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.')); - return; - } else if (!User::allowed_nickname($nickname)) { + if (!User::allowed_nickname($nickname)) { + // TRANS: Validation error in form for profile settings. $this->showForm(_('Not a valid nickname.')); return; } else if (!is_null($homepage) && (strlen($homepage) > 0) && !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Validation error in form for profile settings. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { - $this->showForm(_('Full name is too long (max 255 chars).')); + // TRANS: Validation error in form for profile settings. + $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (Profile::bioTooLong($bio)) { - $this->showForm(sprintf(_('Bio is too long (max %d chars).'), + // TRANS: Validation error in form for profile settings. + // TRANS: Plural form is used based on the maximum number of allowed + // TRANS: characters for the biography (%d). + $this->showForm(sprintf(_m('Bio is too long (maximum %d character).', + 'Bio is too long (maximum %d characters).', + Profile::maxBio()), Profile::maxBio())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { - $this->showForm(_('Location is too long (max 255 chars).')); + // TRANS: Validation error in form for profile settings. + $this->showForm(_('Location is too long (maximum 255 characters).')); return; } else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) { + // TRANS: Validation error in form for profile settings. $this->showForm(_('Timezone not selected.')); return; } else if ($this->nicknameExists($nickname)) { + // TRANS: Validation error in form for profile settings. $this->showForm(_('Nickname already in use. Try another one.')); return; } else if (!is_null($language) && strlen($language) > 50) { - $this->showForm(_('Language is too long (max 50 chars).')); + // TRANS: Validation error in form for profile settings. + $this->showForm(_('Language is too long (maximum 50 characters).')); return; } @@ -250,6 +290,8 @@ class ProfilesettingsAction extends AccountSettingsAction foreach ($tags as $tag) { if (!common_valid_profile_tag($tag)) { + // TRANS: Validation error in form for profile settings. + // TRANS: %s is an invalid tag. $this->showForm(sprintf(_('Invalid tag: "%s"'), $tag)); return; } @@ -280,6 +322,7 @@ class ProfilesettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); + // TRANS: Server error thrown when user profile settings could not be updated. $this->serverError(_('Couldn\'t update user.')); return; } else { @@ -303,6 +346,8 @@ class ProfilesettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); + // TRANS: Server error thrown when user profile settings could not be updated to + // TRANS: automatically subscribe to any subscriber. $this->serverError(_('Couldn\'t update user for autosubscribe.')); return; } @@ -360,6 +405,7 @@ class ProfilesettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($prefs, ($exists) ? 'UPDATE' : 'INSERT', __FILE__); + // TRANS: Server error thrown when user profile location preference settings could not be updated. $this->serverError(_('Couldn\'t save location prefs.')); return; } @@ -372,6 +418,7 @@ class ProfilesettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($profile, 'UPDATE', __FILE__); + // TRANS: Server error thrown when user profile settings could not be saved. $this->serverError(_('Couldn\'t save profile.')); return; } @@ -380,6 +427,7 @@ class ProfilesettingsAction extends AccountSettingsAction $result = $user->setSelfTags($tags); if (!$result) { + // TRANS: Server error thrown when user profile settings tags could not be saved. $this->serverError(_('Couldn\'t save tags.')); return; } @@ -388,6 +436,7 @@ class ProfilesettingsAction extends AccountSettingsAction Event::handle('EndProfileSaveForm', array($this)); common_broadcast_profile($profile); + // TRANS: Confirmation shown when user profile settings are saved. $this->showForm(_('Settings saved.'), true); } diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index 70c356659a..57821d428e 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -44,7 +44,6 @@ define('TAGS_PER_PAGE', 100); * @copyright 2008-2009 StatusNet, Inc. * @link http://status.net/ */ - class PublictagcloudAction extends Action { function isReadOnly($args) @@ -54,24 +53,37 @@ class PublictagcloudAction extends Action function title() { + // TRANS: Title for public tag cloud. return _('Public tag cloud'); } function showPageNotice() { $this->element('p', 'instructions', - sprintf(_('These are most popular recent tags on %s '), + // TRANS: Instructions (more used like an explanation/header). + // TRANS: %s is the StatusNet sitename. + sprintf(_('These are most popular recent tags on %s'), common_config('site', 'name'))); } function showEmptyList() { + // TRANS: This message contains a Markdown URL. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. $message = _('No one has posted a notice with a [hashtag](%%doc.tags%%) yet.') . ' '; if (common_logged_in()) { + // TRANS: Message shown to a logged in user for the public tag cloud + // TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. $message .= _('Be the first to post one!'); } else { + // TRANS: Message shown to a anonymous user for the public tag cloud + // TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. + // TRANS: This message contains a Markdown URL. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. $message .= _('Why not [register an account](%%action.register%%) and be the first to post one!'); } diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index f9956897f6..33b0440e40 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -362,7 +362,7 @@ class RecoverpasswordAction extends Action $confirm = $this->trimmed('confirm'); if (!$newpassword || strlen($newpassword) < 6) { - $this->showPasswordForm(_('Password must be 6 chars or more.')); + $this->showPasswordForm(_('Password must be 6 characters or more.')); return; } if ($newpassword != $confirm) { diff --git a/actions/redirect.php b/actions/redirect.php new file mode 100644 index 0000000000..9cb03708db --- /dev/null +++ b/actions/redirect.php @@ -0,0 +1,71 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Site access administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Action + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @copyright 2010 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); +} + +/** + * Administer site access settings + * + * @category Action + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class RedirectAction extends Action +{ + /** + * These pages are read-only. + * + * @param array $args unused. + * + * @return boolean read-only flag (false) + */ + + function isReadOnly($args) + { + return true; + } + + /** + * Handle a request + * + * @param array $args array of arguments + * + * @return nothing + */ + function handle($args) + { + common_redirect(common_local_url($this->arg('nextAction'), $this->arg('args'))); + } +} + diff --git a/actions/register.php b/actions/register.php index 7307bc689b..075b1af99d 100644 --- a/actions/register.php +++ b/actions/register.php @@ -74,13 +74,6 @@ class RegisterAction extends Action parent::prepare($args); $this->code = $this->trimmed('code'); - // @todo this check should really be in index.php for all sensitive actions - $ssl = common_config('site', 'ssl'); - if (empty($_SERVER['HTTPS']) && ($ssl == 'always' || $ssl == 'sometimes')) { - common_redirect(common_local_url('register')); - // exit - } - if (empty($this->code)) { common_ensure_session(); if (array_key_exists('invitecode', $_SESSION)) { @@ -198,7 +191,11 @@ class RegisterAction extends Action } // Input scrubbing - $nickname = common_canonical_nickname($nickname); + try { + $nickname = Nickname::normalize($nickname); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); + } $email = common_canonical_email($email); if (!$this->boolean('license')) { @@ -206,11 +203,6 @@ class RegisterAction extends Action 'agree to the license.')); } else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) { $this->showForm(_('Not a valid email address.')); - } else if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_('Nickname must have only lowercase letters '. - 'and numbers and no spaces.')); } else if ($this->nicknameExists($nickname)) { $this->showForm(_('Nickname already in use. Try another one.')); } else if (!User::allowed_nickname($nickname)) { @@ -224,14 +216,16 @@ class RegisterAction extends Action $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { - $this->showForm(_('Full name is too long (max 255 chars).')); + $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (Profile::bioTooLong($bio)) { - $this->showForm(sprintf(_('Bio is too long (max %d chars).'), + $this->showForm(sprintf(_m('Bio is too long (maximum %d character).', + 'Bio is too long (maximum %d characters).', + Profile::maxBio()), Profile::maxBio())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { - $this->showForm(_('Location is too long (max 255 chars).')); + $this->showForm(_('Location is too long (maximum 255 characters).')); return; } else if (strlen($password) < 6) { $this->showForm(_('Password must be 6 or more characters.')); @@ -465,7 +459,12 @@ class RegisterAction extends Action $this->elementStart('li'); $maxBio = Profile::maxBio(); if ($maxBio > 0) { - $bioInstr = sprintf(_('Describe yourself and your interests in %d chars'), + // TRANS: Tooltip for field label in form for profile settings. Plural + // TRANS: is decided by the number of characters available for the + // TRANS: biography (%d). + $bioInstr = sprintf(_m('Describe yourself and your interests in %d character', + 'Describe yourself and your interests in %d characters', + $maxBio), $maxBio); } else { $bioInstr = _('Describe yourself and your interests'); diff --git a/actions/rsd.php b/actions/rsd.php index f88bf2e9a8..e02c85c41b 100644 --- a/actions/rsd.php +++ b/actions/rsd.php @@ -162,6 +162,20 @@ class RsdAction extends Action 'true'); $this->elementEnd('settings'); $this->elementEnd('api'); + + // Atom API + + if (empty($this->user)) { + $service = common_local_url('ApiAtomService'); + } else { + $service = common_local_url('ApiAtomService', array('id' => $this->user->nickname)); + } + + $this->element('api', array('name' => 'Atom', + 'preferred' => 'false', + 'apiLink' => $service, + 'blogID' => $blogID)); + Event::handle('EndRsdListApis', array($this, $this->user)); } $this->elementEnd('apis'); diff --git a/actions/sessionsadminpanel.php b/actions/sessionsadminpanel.php index 4386ef844b..e9bd1719f2 100644 --- a/actions/sessionsadminpanel.php +++ b/actions/sessionsadminpanel.php @@ -62,7 +62,7 @@ class SessionsadminpanelAction extends AdminPanelAction function getInstructions() { - return _('Session settings for this StatusNet site.'); + return _('Session settings for this StatusNet site'); } /** diff --git a/actions/showapplication.php b/actions/showapplication.php index fa44844816..10aaff538f 100644 --- a/actions/showapplication.php +++ b/actions/showapplication.php @@ -271,17 +271,17 @@ class ShowApplicationAction extends OwnerDesignAction $this->elementStart('dl', 'entity_request_token_url'); $this->element('dt', null, _('Request token URL')); - $this->element('dd', null, common_local_url('apioauthrequesttoken')); + $this->element('dd', null, common_local_url('ApiOauthRequestToken')); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_access_token_url'); $this->element('dt', null, _('Access token URL')); - $this->element('dd', null, common_local_url('apioauthaccesstoken')); + $this->element('dd', null, common_local_url('ApiOauthAccessToken')); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_authorize_url'); $this->element('dt', null, _('Authorize URL')); - $this->element('dd', null, common_local_url('apioauthauthorize')); + $this->element('dd', null, common_local_url('ApiOauthAuthorize')); $this->elementEnd('dl'); $this->element('p', 'note', diff --git a/actions/showfavorites.php b/actions/showfavorites.php index d8042e91c7..77b73711d2 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -227,7 +227,7 @@ class ShowfavoritesAction extends OwnerDesignAction function showContent() { - $nl = new NoticeList($this->notice, $this); + $nl = new FavoritesNoticeList($this->notice, $this); $cnt = $nl->show(); if (0 == $cnt) { @@ -244,3 +244,15 @@ class ShowfavoritesAction extends OwnerDesignAction } } +class FavoritesNoticeList extends NoticeList +{ + function newListItem($notice) + { + return new FavoritesNoticeListItem($notice, $this->out); + } +} + +// All handled by superclass +class FavoritesNoticeListItem extends DoFollowListItem +{ +} diff --git a/actions/showgroup.php b/actions/showgroup.php index 17c37e4d79..f38cd420ac 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -46,10 +46,8 @@ define('MEMBERS_PER_SECTION', 27); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShowgroupAction extends GroupDesignAction { - /** page we're viewing. */ var $page = null; @@ -58,7 +56,6 @@ class ShowgroupAction extends GroupDesignAction * * @return boolean true */ - function isReadOnly($args) { return true; @@ -69,18 +66,16 @@ class ShowgroupAction extends GroupDesignAction * * @return string page title, with page number */ - function title() { - if (!empty($this->group->fullname)) { - $base = $this->group->fullname . ' (' . $this->group->nickname . ')'; - } else { - $base = $this->group->nickname; - } + $base = $this->group->getFancyName(); if ($this->page == 1) { + // TRANS: Page title for first group page. %s is a group name. return sprintf(_('%s group'), $base); } else { + // TRANS: Page title for any but first group page. + // TRANS: %1$s is a group name, $2$s is a page number. return sprintf(_('%1$s group, page %2$d'), $base, $this->page); @@ -96,7 +91,6 @@ class ShowgroupAction extends GroupDesignAction * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -118,6 +112,7 @@ class ShowgroupAction extends GroupDesignAction } if (!$nickname) { + // TRANS: Client error displayed if no nickname argument was given requesting a group page. $this->clientError(_('No nickname.'), 404); return false; } @@ -135,6 +130,7 @@ class ShowgroupAction extends GroupDesignAction return false; } else { common_log(LOG_NOTICE, "Couldn't find local group for nickname '$nickname'"); + // TRANS: Client error displayed if no remote group with a given name was found requesting group page. $this->clientError(_('No such group.'), 404); return false; } @@ -143,6 +139,7 @@ class ShowgroupAction extends GroupDesignAction $this->group = User_group::staticGet('id', $local->group_id); if (!$this->group) { + // TRANS: Client error displayed if no local group with a given name was found requesting group page. $this->clientError(_('No such group.'), 404); return false; } @@ -160,7 +157,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function handle($args) { $this->showPage(); @@ -171,7 +167,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showLocalNav() { $nav = new GroupNav($this, $this->group); @@ -183,7 +178,6 @@ class ShowgroupAction extends GroupDesignAction * * Shows a group profile and a list of group notices */ - function showContent() { $this->showGroupProfile(); @@ -195,7 +189,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showGroupNotices() { $notice = $this->group->getNotices(($this->page-1)*NOTICES_PER_PAGE, @@ -218,15 +211,16 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showGroupProfile() { $this->elementStart('div', array('id' => 'i', 'class' => 'entity_profile vcard author')); + // TRANS: Group profile header (h2). Text hidden by default. $this->element('h2', null, _('Group profile')); $this->elementStart('dl', 'entity_depiction'); + // TRANS: Label for group avatar (dt). Text hidden by default. $this->element('dt', null, _('Avatar')); $this->elementStart('dd'); @@ -242,6 +236,7 @@ class ShowgroupAction extends GroupDesignAction $this->elementEnd('dl'); $this->elementStart('dl', 'entity_nickname'); + // TRANS: Label for group nickname (dt). Text hidden by default. $this->element('dt', null, _('Nickname')); $this->elementStart('dd'); $hasFN = ($this->group->fullname) ? 'nickname url uid' : 'fn org nickname url uid'; @@ -253,6 +248,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->fullname) { $this->elementStart('dl', 'entity_fn'); + // TRANS: Label for full group name (dt). Text hidden by default. $this->element('dt', null, _('Full name')); $this->elementStart('dd'); $this->element('span', 'fn org', $this->group->fullname); @@ -262,6 +258,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->location) { $this->elementStart('dl', 'entity_location'); + // TRANS: Label for group location (dt). Text hidden by default. $this->element('dt', null, _('Location')); $this->element('dd', 'label', $this->group->location); $this->elementEnd('dl'); @@ -269,6 +266,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->homepage) { $this->elementStart('dl', 'entity_url'); + // TRANS: Label for group URL (dt). Text hidden by default. $this->element('dt', null, _('URL')); $this->elementStart('dd'); $this->element('a', array('href' => $this->group->homepage, @@ -280,6 +278,7 @@ class ShowgroupAction extends GroupDesignAction if ($this->group->description) { $this->elementStart('dl', 'entity_note'); + // TRANS: Label for group description or group note (dt). Text hidden by default. $this->element('dt', null, _('Note')); $this->element('dd', 'note', $this->group->description); $this->elementEnd('dl'); @@ -290,6 +289,7 @@ class ShowgroupAction extends GroupDesignAction if (!empty($aliases)) { $this->elementStart('dl', 'entity_aliases'); + // TRANS: Label for group aliases (dt). Text hidden by default. $this->element('dt', null, _('Aliases')); $this->element('dd', 'aliases', implode(' ', $aliases)); $this->elementEnd('dl'); @@ -298,12 +298,13 @@ class ShowgroupAction extends GroupDesignAction $this->elementEnd('div'); + $cur = common_current_user(); $this->elementStart('div', 'entity_actions'); + // TRANS: Group actions header (h2). Text hidden by default. $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); $this->elementStart('li', 'entity_subscribe'); if (Event::handle('StartGroupSubscribe', array($this, $this->group))) { - $cur = common_current_user(); if ($cur) { if ($cur->isMember($this->group)) { $lf = new LeaveForm($this, $this->group); @@ -316,6 +317,12 @@ class ShowgroupAction extends GroupDesignAction Event::handle('EndGroupSubscribe', array($this, $this->group)); } $this->elementEnd('li'); + if ($cur && $cur->hasRight(Right::DELETEGROUP)) { + $this->elementStart('li', 'entity_delete'); + $df = new DeleteGroupForm($this, $this->group); + $df->show(); + $this->elementEnd('li'); + } $this->elementEnd('ul'); $this->elementEnd('div'); } @@ -325,7 +332,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function getFeeds() { $url = @@ -335,23 +341,27 @@ class ShowgroupAction extends GroupDesignAction return array(new Feed(Feed::RSS1, common_local_url('grouprss', array('nickname' => $this->group->nickname)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (RSS 1.0)'), $this->group->nickname)), new Feed(Feed::RSS2, common_local_url('ApiTimelineGroup', array('format' => 'rss', 'id' => $this->group->id)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (RSS 2.0)'), $this->group->nickname)), new Feed(Feed::ATOM, common_local_url('ApiTimelineGroup', array('format' => 'atom', 'id' => $this->group->id)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('Notice feed for %s group (Atom)'), $this->group->nickname)), new Feed(Feed::FOAF, common_local_url('foafgroup', array('nickname' => $this->group->nickname)), + // TRANS: Tooltip for feed link. %s is a group nickname. sprintf(_('FOAF for %s group'), $this->group->nickname))); } @@ -361,7 +371,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showSections() { $this->showMembers(); @@ -376,7 +385,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showMembers() { $member = $this->group->getMembers(0, MEMBERS_PER_SECTION); @@ -390,17 +398,22 @@ class ShowgroupAction extends GroupDesignAction if (Event::handle('StartShowGroupMembersMiniList', array($this))) { + // TRANS: Header for mini list of group members on a group page (h2). $this->element('h2', null, _('Members')); $gmml = new GroupMembersMiniList($member, $this); $cnt = $gmml->show(); if ($cnt == 0) { + // TRANS: Description for mini list of group members on a group page when the group has no members. $this->element('p', null, _('(None)')); } + // @todo FIXME: Should be shown if a group has more than 27 members, but I do not see it displayed at + // for example http://identi.ca/group/statusnet. Broken? if ($cnt > MEMBERS_PER_SECTION) { $this->element('a', array('href' => common_local_url('groupmembers', array('nickname' => $this->group->nickname))), + // TRANS: Link to all group members from mini list of group members if group has more than n members. _('All members')); } @@ -415,7 +428,6 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showAdmins() { $adminSection = new GroupAdminSection($this, $this->group); @@ -427,22 +439,26 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showStatistics() { $this->elementStart('div', array('id' => 'entity_statistics', 'class' => 'section')); + // TRANS: Header for group statistics on a group page (h2). $this->element('h2', null, _('Statistics')); $this->elementStart('dl', 'entity_created'); - $this->element('dt', null, _('Created')); + // @todo FIXME: i18n issue. This label gets a colon added from somewhere. Should be part of the message. + // TRANS: Label for creation date in statistics on group page. + $this->element('dt', null, _m('LABEL','Created')); $this->element('dd', null, date('j M Y', strtotime($this->group->created))); $this->elementEnd('dl'); $this->elementStart('dl', 'entity_members'); - $this->element('dt', null, _('Members')); + // @todo FIXME: i18n issue. This label gets a colon added from somewhere. Should be part of the message. + // TRANS: Label for member count in statistics on group page. + $this->element('dt', null, _m('LABEL','Members')); $this->element('dd', null, $this->group->getMemberCount()); $this->elementEnd('dl'); @@ -452,12 +468,21 @@ class ShowgroupAction extends GroupDesignAction function showAnonymousMessage() { if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + // @todo FIXME: use group full name here if available instead of (uglier) primary alias. + // TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. + // TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, + // TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. + // TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). $m = sprintf(_('**%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. '. '[Join now](%%%%action.register%%%%) to become part of this group and many more! ([Read more](%%%%doc.help%%%%))'), $this->group->nickname); } else { + // @todo FIXME: use group full name here if available instead of (uglier) primary alias. + // TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. + // TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, + // TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). $m = sprintf(_('**%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. '), @@ -486,6 +511,7 @@ class GroupAdminSection extends ProfileSection function title() { + // TRANS: Header for list of group administrators on a group page (h2). return _('Admins'); } @@ -521,4 +547,3 @@ class GroupMembersMiniListItem extends ProfileMiniListItem return $aAttrs; } } - diff --git a/actions/showmessage.php b/actions/showmessage.php index db757948ba..d737f85d3a 100644 --- a/actions/showmessage.php +++ b/actions/showmessage.php @@ -26,8 +26,8 @@ * @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); +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); } require_once INSTALLDIR.'/lib/mailbox.php'; @@ -36,26 +36,24 @@ require_once INSTALLDIR.'/lib/mailbox.php'; * Show a single message * * // XXX: It is totally weird how this works! - * + * * @category Personal * @package StatusNet * @author Evan Prodromou <evan@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShowmessageAction extends MailboxAction { /** * Message object to show */ - var $message = null; - + /** * The current user */ - + var $user = null; /** @@ -67,17 +65,17 @@ class ShowmessageAction extends MailboxAction * * @return success flag */ - function prepare($args) { parent::prepare($args); - + $this->page = 1; - + $id = $this->trimmed('message'); $this->message = Message::staticGet('id', $id); if (!$this->message) { + // TRANS: Client error displayed requesting a single message that does not exist. $this->clientError(_('No such message.'), 404); return false; } @@ -90,40 +88,47 @@ class ShowmessageAction extends MailboxAction function handle($args) { Action::handle($args); - - if ($this->user && ($this->user->id == $this->message->from_profile || + + if ($this->user && ($this->user->id == $this->message->from_profile || $this->user->id == $this->message->to_profile)) { $this->showPage(); } else { + // TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. $this->clientError(_('Only the sender and recipient ' . 'may read this message.'), 403); return; } } - + function title() - { + { if ($this->user->id == $this->message->from_profile) { $to = $this->message->getTo(); - return sprintf(_("Message to %1\$s on %2\$s"), + // @todo FIXME: Might be nice if the timestamp could be localised. + // TRANS: Page title for single direct message display when viewing user is the sender. + // TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. + return sprintf(_('Message to %1$s on %2$s'), $to->nickname, common_exact_date($this->message->created)); } else if ($this->user->id == $this->message->to_profile) { $from = $this->message->getFrom(); - return sprintf(_("Message from %1\$s on %2\$s"), + // @todo FIXME: Might be nice if the timestamp could be localised. + // TRANS: Page title for single message display. + // TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. + return sprintf(_('Message from %1$s on %2$s'), $from->nickname, common_exact_date($this->message->created)); } } - - function getMessages() - { + + function getMessages() + { $message = new Message(); $message->id = $this->message->id; $message->find(); return $message; } - + function getMessageProfile() { if ($this->user->id == $this->message->from_profile) { @@ -135,23 +140,21 @@ class ShowmessageAction extends MailboxAction return null; } } - + /** * Don't show local navigation * * @return void */ - function showLocalNavBlock() { } - + /** * Don't show page notice * * @return void */ - function showPageNoticeBlock() { } @@ -161,17 +164,15 @@ class ShowmessageAction extends MailboxAction * * @return void */ - - function showAside() + function showAside() { } - + /** * Don't show any instructions * * @return string */ - function getInstructions() { return ''; diff --git a/actions/shownotice.php b/actions/shownotice.php index 77ba2ce9fd..91b0901bf4 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -151,6 +151,7 @@ class ShownoticeAction extends OwnerDesignAction strtotime($this->avatar->modified) : 0; return 'W/"' . implode(':', array($this->arg('action'), + common_user_cache_hash(), common_language(), $this->notice->id, strtotime($this->notice->created), @@ -166,11 +167,7 @@ class ShownoticeAction extends OwnerDesignAction function title() { - if (!empty($this->profile->fullname)) { - $base = $this->profile->fullname . ' (' . $this->profile->nickname . ')'; - } else { - $base = $this->profile->nickname; - } + $base = $this->profile->getFancyName(); return sprintf(_('%1$s\'s status on %2$s'), $base, @@ -291,10 +288,20 @@ class ShownoticeAction extends OwnerDesignAction array(), array('format'=>'xml','url'=>$this->notice->uri)), 'title'=>'oEmbed'),null); + + // Extras to aid in sharing notices to Facebook + $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); + $avatarUrl = ($avatar) ? + $avatar->displayUrl() : + Avatar::defaultImage(AVATAR_PROFILE_SIZE); + $this->element('meta', array('property' => 'og:image', + 'content' => $avatarUrl)); + $this->element('meta', array('property' => 'og:description', + 'content' => $this->notice->content)); } } -class SingleNoticeItem extends NoticeListItem +class SingleNoticeItem extends DoFollowListItem { /** * recipe function for displaying a single notice. @@ -307,15 +314,49 @@ class SingleNoticeItem extends NoticeListItem function show() { $this->showStart(); - $this->showNotice(); - $this->showNoticeAttachments(); - $this->showNoticeInfo(); - $this->showNoticeOptions(); + if (Event::handle('StartShowNoticeItem', array($this))) { + $this->showNotice(); + $this->showNoticeAttachments(); + $this->showNoticeInfo(); + $this->showNoticeOptions(); + Event::handle('EndShowNoticeItem', array($this)); + } + $this->showEnd(); } + /** + * For our zoomed-in special case we'll use a fuller list + * for the attachment info. + */ function showNoticeAttachments() { $al = new AttachmentList($this->notice, $this->out); $al->show(); } + + /** + * show the avatar of the notice's author + * + * We use the larger size for single notice page. + * + * @return void + */ + + function showAvatar() + { + $avatar_size = AVATAR_PROFILE_SIZE; + + $avatar = $this->profile->getAvatar($avatar_size); + + $this->out->element('img', array('src' => ($avatar) ? + $avatar->displayUrl() : + Avatar::defaultImage($avatar_size), + 'class' => 'avatar photo', + 'width' => $avatar_size, + 'height' => $avatar_size, + 'alt' => + ($this->profile->fullname) ? + $this->profile->fullname : + $this->profile->nickname)); + } } diff --git a/actions/showstream.php b/actions/showstream.php index 744b6906eb..14f629b6a8 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -54,7 +54,6 @@ require_once INSTALLDIR.'/lib/feedlist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShowstreamAction extends ProfileAction { function isReadOnly($args) @@ -64,27 +63,31 @@ class ShowstreamAction extends ProfileAction function title() { - if (!empty($this->profile->fullname)) { - $base = $this->profile->fullname . ' (' . $this->user->nickname . ') '; - } else { - $base = $this->user->nickname; - } + $base = $this->profile->getFancyName(); if (!empty($this->tag)) { - $base .= sprintf(_(' tagged %s'), $this->tag); - } - - if ($this->page == 1) { - return $base; + if ($this->page == 1) { + // TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. + return sprintf(_('%1$s tagged %2$s'), $base, $this->tag); + } else { + // TRANS: Page title showing tagged notices in one user's stream. + // TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. + return sprintf(_('%1$s tagged %2$s, page %3$d'), $base, $this->tag, $this->page); + } } else { - return sprintf(_('%1$s, page %2$d'), - $base, - $this->page); + if ($this->page == 1) { + return $base; + } else { + // TRANS: Extended page title showing tagged notices in one user's stream. + // TRANS: %1$s is the username, %2$d is the page number. + return sprintf(_('%1$s, page %2$d'), + $base, + $this->page); + } } } function handle($args) { - // Looks like we're good; start output // For YADIS discovery, we also have a <meta> tag @@ -119,6 +122,8 @@ class ShowstreamAction extends ProfileAction common_local_url('userrss', array('nickname' => $this->user->nickname, 'tag' => $this->tag)), + // TRANS: Title for link to notice feed. + // TRANS: %1$s is a user nickname, %2$s is a hashtag. sprintf(_('Notice feed for %1$s tagged %2$s (RSS 1.0)'), $this->user->nickname, $this->tag))); } @@ -126,6 +131,8 @@ class ShowstreamAction extends ProfileAction return array(new Feed(Feed::RSS1, common_local_url('userrss', array('nickname' => $this->user->nickname)), + // TRANS: Title for link to notice feed. + // TRANS: %s is a user nickname. sprintf(_('Notice feed for %s (RSS 1.0)'), $this->user->nickname)), new Feed(Feed::RSS2, @@ -133,6 +140,8 @@ class ShowstreamAction extends ProfileAction array( 'id' => $this->user->id, 'format' => 'rss')), + // TRANS: Title for link to notice feed. + // TRANS: %s is a user nickname. sprintf(_('Notice feed for %s (RSS 2.0)'), $this->user->nickname)), new Feed(Feed::ATOM, @@ -145,6 +154,8 @@ class ShowstreamAction extends ProfileAction new Feed(Feed::FOAF, common_local_url('foaf', array('nickname' => $this->user->nickname)), + // TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. + // TRANS: More information at http://www.foaf-project.org. %s is a user nickname. sprintf(_('FOAF for %s'), $this->user->nickname))); } @@ -180,7 +191,6 @@ class ShowstreamAction extends ProfileAction $this->element('link', array('rel' => 'EditURI', 'type' => 'application/rsd+xml', 'href' => $rsd)); - } function showProfile() @@ -191,17 +201,23 @@ class ShowstreamAction extends ProfileAction function showEmptyListMessage() { - $message = sprintf(_('This is the timeline for %1$s but %2$s hasn\'t posted anything yet.'), $this->user->nickname, $this->user->nickname) . ' '; + // TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. + $message = sprintf(_('This is the timeline for %1$s, but %1$s hasn\'t posted anything yet.'), $this->user->nickname) . ' '; if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { + // TRANS: Second sentence of empty list message for a stream for the user themselves. $message .= _('Seen anything interesting recently? You haven\'t posted any notices yet, now would be a good time to start :)'); } else { + // TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. + // TRANS: This message contains a Markdown link. Keep "](" together. $message .= sprintf(_('You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%%?status_textarea=%2$s).'), $this->user->nickname, '@' . $this->user->nickname); } } else { + // TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. + // TRANS: This message contains a Markdown link. Keep "](" together. $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } @@ -216,7 +232,10 @@ class ShowstreamAction extends ProfileAction ? $this->user->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1) : $this->user->getTaggedNotices($this->tag, ($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1, 0, 0, null); - $pnl = new ProfileNoticeList($notice, $this); + $pnl = null; + if (Event::handle('ShowStreamNoticeList', array($notice, $this, &$pnl))) { + $pnl = new ProfileNoticeList($notice, $this); + } $cnt = $pnl->show(); if (0 == $cnt) { $this->showEmptyListMessage(); @@ -234,11 +253,15 @@ class ShowstreamAction extends ProfileAction function showAnonymousMessage() { if (!(common_config('site','closed') || common_config('site','inviteonly'))) { + // TRANS: Announcement for anonymous users showing a stream if site registrations are open. + // TRANS: This message contains a Markdown link. Keep "](" together. $m = sprintf(_('**%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. ' . '[Join now](%%%%action.register%%%%) to follow **%s**\'s notices and many more! ([Read more](%%%%doc.help%%%%))'), $this->user->nickname, $this->user->nickname); } else { + // TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. + // TRANS: This message contains a Markdown link. Keep "](" together. $m = sprintf(_('**%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. '), $this->user->nickname, $this->user->nickname); @@ -266,7 +289,7 @@ class ProfileNoticeList extends NoticeList } } -class ProfileNoticeListItem extends NoticeListItem +class ProfileNoticeListItem extends DoFollowListItem { function showAuthor() { @@ -278,7 +301,6 @@ class ProfileNoticeListItem extends NoticeListItem * * @return void */ - function showRepeat() { if (!empty($this->repeat)) { @@ -289,13 +311,14 @@ class ProfileNoticeListItem extends NoticeListItem 'class' => 'url'); if (!empty($this->profile->fullname)) { - $attrs['title'] = $this->profile->fullname . ' (' . $this->profile->nickname . ')'; + $attrs['title'] = $this->profile->getFancyName(); } $this->out->elementStart('span', 'repeat'); $text_link = XMLStringer::estring('a', $attrs, $this->profile->nickname); + // TRANS: Link to the author of a repeated notice. %s is a linked nickname. $this->out->raw(sprintf(_('Repeat of %s'), $text_link)); $this->out->elementEnd('span'); diff --git a/actions/sitenoticeadminpanel.php b/actions/sitenoticeadminpanel.php index bdcaa23557..797a6c4f4c 100644 --- a/actions/sitenoticeadminpanel.php +++ b/actions/sitenoticeadminpanel.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class SitenoticeadminpanelAction extends AdminPanelAction { /** @@ -50,9 +49,9 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { + // TRANS: Page title for site-wide notice tab in admin panel. return _('Site Notice'); } @@ -61,9 +60,9 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { + // TRANS: Instructions for site-wide notice tab in admin panel. return _('Edit site-wide message'); } @@ -72,7 +71,6 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new SiteNoticeAdminPanelForm($this); @@ -85,7 +83,6 @@ class SitenoticeadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { $siteNotice = $this->trimmed('site-notice'); @@ -100,6 +97,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction $result = Config::save('site', 'notice', $siteNotice); if (!$result) { + // TRANS: Server error displayed when saving a site-wide notice was impossible. $this->ServerError(_("Unable to save site notice.")); } } @@ -110,7 +108,8 @@ class SitenoticeadminpanelAction extends AdminPanelAction if (mb_strlen($siteNotice) > 255) { $this->clientError( - _('Max length for the site-wide notice is 255 chars.') + // TRANS: Client error displayed when a site-wide notice was longer than allowed. + _('Maximum length for the site-wide notice is 255 characters.') ); } @@ -173,9 +172,11 @@ class SiteNoticeAdminPanelForm extends AdminForm $this->out->elementStart('li'); $this->out->textarea( 'site-notice', + // TRANS: Label for site-wide notice text field in admin panel. _('Site notice text'), common_config('site', 'notice'), - _('Site-wide notice text (255 chars max; HTML okay)') + // TRANS: Tooltip for site-wide notice text field in admin panel. + _('Site-wide notice text (255 characters maximum; HTML allowed)') ); $this->out->elementEnd('li'); @@ -192,9 +193,11 @@ class SiteNoticeAdminPanelForm extends AdminForm { $this->out->submit( 'submit', - _('Save'), + // TRANS: Button text for saving site notice in admin panel. + _m('BUTTON','Save'), 'submit', null, + // TRANS: Title for button to save site notice in admin panel. _('Save site notice') ); } diff --git a/actions/subedit.php b/actions/subedit.php index cf6589e504..3b77aff584 100644 --- a/actions/subedit.php +++ b/actions/subedit.php @@ -19,6 +19,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// @todo FIXME: Documentation needed. class SubeditAction extends Action { var $profile = null; @@ -28,6 +29,7 @@ class SubeditAction extends Action parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying a change a subscription while not logged in. $this->clientError(_('Not logged in.')); return false; } @@ -43,6 +45,7 @@ class SubeditAction extends Action $id = $this->trimmed('profile'); if (!$id) { + // TRANS: Client error displayed trying a change a subscription without providing a profile. $this->clientError(_('No profile specified.')); return false; } @@ -50,6 +53,7 @@ class SubeditAction extends Action $this->profile = Profile::staticGet('id', $id); if (!$this->profile) { + // TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. $this->clientError(_('No profile with that ID.')); return false; } @@ -67,6 +71,7 @@ class SubeditAction extends Action 'subscribed' => $this->profile->id)); if (!$sub) { + // TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. $this->clientError(_('You are not subscribed to that profile.')); return false; } @@ -80,6 +85,7 @@ class SubeditAction extends Action if (!$result) { common_log_db_error($sub, 'UPDATE', __FILE__); + // TRANS: Server error displayed when updating a subscription fails with a database error. $this->serverError(_('Could not save subscription.')); return false; } diff --git a/actions/subscribers.php b/actions/subscribers.php index 2845a498e9..2862f35c6d 100644 --- a/actions/subscribers.php +++ b/actions/subscribers.php @@ -41,14 +41,17 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class SubscribersAction extends GalleryAction { function title() { if ($this->page == 1) { + // TRANS: Header for list of subscribers for a user (first page). + // TRANS: %s is the user's nickname. return sprintf(_('%s subscribers'), $this->user->nickname); } else { + // TRANS: Header for list of subscribers for a user (not first page). + // TRANS: %1$s is the user's nickname, $2$d is the page number. return sprintf(_('%1$s subscribers, page %2$d'), $this->user->nickname, $this->page); @@ -60,10 +63,14 @@ class SubscribersAction extends GalleryAction $user = common_current_user(); if ($user && ($user->id == $this->profile->id)) { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscribers + // TRANS: of the logged in user's own profile. _('These are the people who listen to '. 'your notices.')); } else { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscribers of a user other + // TRANS: than the logged in user. %s is the user nickname. sprintf(_('These are the people who '. 'listen to %s\'s notices.'), $this->profile->nickname)); @@ -105,12 +112,20 @@ class SubscribersAction extends GalleryAction if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { - $message = _('You have no subscribers. Try subscribing to people you know and they might return the favor'); + // TRANS: Subscriber list text when the logged in user has no subscribers. + $message = _('You have no subscribers. Try subscribing to people you know and they might return the favor.'); } else { + // TRANS: Subscriber list text when looking at the subscribers for a of a user other + // TRANS: than the logged in user that has no subscribers. %s is the user nickname. $message = sprintf(_('%s has no subscribers. Want to be the first?'), $this->user->nickname); } } else { + // TRANS: Subscriber list text when looking at the subscribers for a of a user that has none + // TRANS: as an anonymous user. %s is the user nickname. + // TRANS: This message contains a Markdown URL. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. $message = sprintf(_('%s has no subscribers. Why not [register an account](%%%%action.register%%%%) and be the first?'), $this->user->nickname); } diff --git a/actions/subscriptions.php b/actions/subscriptions.php index da563a218f..10e8f28608 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -41,16 +41,17 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @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); } - class SubscriptionsAction extends GalleryAction { function title() { if ($this->page == 1) { + // TRANS: Header for subscriptions overview for a user (first page). + // TRANS: %s is a user nickname. return sprintf(_('%s subscriptions'), $this->user->nickname); } else { + // TRANS: Header for subscriptions overview for a user (not first page). + // TRANS: %1$s is a user nickname, %2$d is the page number. return sprintf(_('%1$s subscriptions, page %2$d'), $this->user->nickname, $this->page); @@ -62,10 +63,14 @@ class SubscriptionsAction extends GalleryAction $user = common_current_user(); if ($user && ($user->id == $this->profile->id)) { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions + // TRANS: of the logged in user's own profile. _('These are the people whose notices '. 'you listen to.')); } else { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions of a user other + // TRANS: than the logged in user. %s is the user nickname. sprintf(_('These are the people whose '. 'notices %s listens to.'), $this->profile->nickname)); @@ -123,12 +128,24 @@ class SubscriptionsAction extends GalleryAction if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { - $message = _('You\'re not listening to anyone\'s notices right now, try subscribing to people you know. Try [people search](%%action.peoplesearch%%), look for members in groups you\'re interested in and in our [featured users](%%action.featured%%). If you\'re a [Twitter user](%%action.twittersettings%%), you can automatically subscribe to people you already follow there.'); + // TRANS: Subscription list text when the logged in user has no subscriptions. + // TRANS: This message contains Markdown URLs. The link description is between + // TRANS: square brackets, and the link between parentheses. Do not separate "](" + // TRANS: and do not change the URL part. + $message = _('You\'re not listening to anyone\'s notices right now, try subscribing to people you know. '. + 'Try [people search](%%action.peoplesearch%%), look for members in groups you\'re interested '. + 'in and in our [featured users](%%action.featured%%). '. + 'If you\'re a [Twitter user](%%action.twittersettings%%), you can automatically subscribe to '. + 'people you already follow there.'); } else { + // TRANS: Subscription list text when looking at the subscriptions for a of a user other + // TRANS: than the logged in user that has no subscriptions. %s is the user nickname. $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); } } else { + // TRANS: Subscription list text when looking at the subscriptions for a of a user that has none + // TRANS: as an anonymous user. %s is the user nickname. $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); } @@ -146,6 +163,22 @@ class SubscriptionsAction extends GalleryAction $cloud2 = new SubscriptionsPeopleSelfTagCloudSection($this); $cloud2->show(); } + + /** + * Link to feeds of subscriptions + * + * @return array of Feed objects + */ + + function getFeeds() + { + return array(new Feed(Feed::ATOM, + common_local_url('AtomPubSubscriptionFeed', + array('subscriber' => $this->profile->id)), + sprintf(_('Subscription feed for %s (Atom)'), + $this->profile->nickname))); + + } } // XXX SubscriptionsList and SubscriptionList are dangerously close @@ -207,6 +240,7 @@ class SubscriptionsListItem extends SubscriptionListItem } $this->out->element('input', $attrs); + // TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. $this->out->element('label', array('for' => 'jabber-'.$this->profile->id), _('IM')); } else { $this->out->hidden('jabber', $sub->jabber); @@ -221,12 +255,15 @@ class SubscriptionsListItem extends SubscriptionListItem } $this->out->element('input', $attrs); + // TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. $this->out->element('label', array('for' => 'sms-'.$this->profile->id), _('SMS')); } else { $this->out->hidden('sms', $sub->sms); } - $this->out->submit('save', _('Save')); + // TRANS: Save button for settings for a profile in a subscriptions list. + $this->out->submit('save', _m('BUTTON','Save')); $this->out->elementEnd('form'); return; } + } diff --git a/actions/othersettings.php b/actions/urlsettings.php similarity index 84% rename from actions/othersettings.php rename to actions/urlsettings.php index 8d6e004047..7b2fc3f554 100644 --- a/actions/othersettings.php +++ b/actions/urlsettings.php @@ -47,7 +47,7 @@ require_once INSTALLDIR.'/lib/accountsettingsaction.php'; * @link http://status.net/ */ -class OthersettingsAction extends AccountSettingsAction +class UrlsettingsAction extends AccountSettingsAction { /** * Title of the page @@ -57,7 +57,7 @@ class OthersettingsAction extends AccountSettingsAction function title() { - return _('Other settings'); + return _('URL settings'); } /** @@ -68,6 +68,7 @@ class OthersettingsAction extends AccountSettingsAction function getInstructions() { + // TRANS: Instructions for tab "Other" in user profile settings. return _('Manage various other options.'); } @@ -93,7 +94,7 @@ class OthersettingsAction extends AccountSettingsAction 'id' => 'form_settings_other', 'class' => 'form_settings', 'action' => - common_local_url('othersettings'))); + common_local_url('urlsettings'))); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); @@ -107,6 +108,9 @@ class OthersettingsAction extends AccountSettingsAction { $services[$name]=$name; if($value['freeService']){ + // TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a + // TRANS: user's profile settings. This message has one space at the beginning. Use your + // TRANS: language's word separator here if it has one (most likely a single space). $services[$name].=_(' (free service)'); } } @@ -115,7 +119,9 @@ class OthersettingsAction extends AccountSettingsAction asort($services); $this->elementStart('li'); + // TRANS: Label for dropdown with URL shortener services. $this->dropdown('urlshorteningservice', _('Shorten URLs with'), + // TRANS: Tooltip for for dropdown with URL shortener services. $services, _('Automatic shortening service to use.'), false, $user->urlshorteningservice); $this->elementEnd('li'); @@ -125,21 +131,18 @@ class OthersettingsAction extends AccountSettingsAction _('URL longer than'), (!is_null($this->arg('maxurllength'))) ? $this->arg('maxurllength') : User_urlshortener_prefs::maxUrlLength($user), - _('URLs longer than this will be shortened.')); + _('URLs longer than this will be shortened, 0 means always shorten.')); $this->elementEnd('li'); $this->elementStart('li'); $this->input('maxnoticelength', _('Text longer than'), (!is_null($this->arg('maxnoticelength'))) ? $this->arg('maxnoticelength') : User_urlshortener_prefs::maxNoticeLength($user), - _('URLs in notices longer than this will be shortened.')); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('viewdesigns', _('View profile designs'), - - $user->viewdesigns, _('Show or hide profile designs.')); + _('URLs in notices longer than this will be shortened, 0 means always shorten.')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('save', _('Save')); + // TRANS: Button text for saving "Other settings" in profile. + $this->submit('save', _m('BUTTON','Save')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -166,12 +169,11 @@ class OthersettingsAction extends AccountSettingsAction $urlshorteningservice = $this->trimmed('urlshorteningservice'); if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) { - $this->showForm(_('URL shortening service is too long (max 50 chars).')); + // TRANS: Form validation error for form "Other settings" in user profile. + $this->showForm(_('URL shortening service is too long (maximum 50 characters).')); return; } - $viewdesigns = $this->boolean('viewdesigns'); - $maxurllength = $this->trimmed('maxurllength'); if (!Validate::number($maxurllength, array('min' => 0))) { @@ -193,12 +195,12 @@ class OthersettingsAction extends AccountSettingsAction $original = clone($user); $user->urlshorteningservice = $urlshorteningservice; - $user->viewdesigns = $viewdesigns; $result = $user->update($original); if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); + // TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. $this->serverError(_('Couldn\'t update user.')); return; } diff --git a/actions/useradminpanel.php b/actions/useradminpanel.php index ee9c230769..fc75e83b2d 100644 --- a/actions/useradminpanel.php +++ b/actions/useradminpanel.php @@ -12,6 +12,7 @@ * (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. @@ -24,7 +25,7 @@ * @author Evan Prodromou <evan@status.net> * @author Zach Copley <zach@status.net> * @author Sarven Capadisli <csarven@status.net> - * @copyright 2008-2009 StatusNet, Inc. + * @copyright 2008-2010 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/ */ @@ -44,7 +45,6 @@ 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 UseradminpanelAction extends AdminPanelAction { /** @@ -52,7 +52,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { // TRANS: User admin panel title @@ -64,10 +63,10 @@ class UseradminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - return _('User settings for this StatusNet site.'); + // TRANS: Instruction for user admin panel. + return _('User settings for this StatusNet site'); } /** @@ -75,7 +74,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new UserAdminPanelForm($this); @@ -88,7 +86,6 @@ class UseradminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array( @@ -146,13 +143,15 @@ class UseradminpanelAction extends AdminPanelAction // Validate biolimit if (!Validate::number($values['profile']['biolimit'])) { - $this->clientError(_("Invalid bio limit. Must be numeric.")); + // TRANS: Form validation error in user admin panel when a non-numeric character limit was set. + $this->clientError(_('Invalid bio limit. Must be numeric.')); } // Validate welcome text if (mb_strlen($values['newuser']['welcome']) > 255) { - $this->clientError(_("Invalid welcome text. Max length is 255 characters.")); + // TRANS: Form validation error in user admin panel when welcome text is too long. + $this->clientError(_('Invalid welcome text. Maximum length is 255 characters.')); } // Validate default subscription @@ -162,7 +161,9 @@ class UseradminpanelAction extends AdminPanelAction if (empty($defuser)) { $this->clientError( sprintf( - _('Invalid default subscripton: \'%1$s\' is not user.'), + // TRANS: Client error displayed when trying to set a non-existing user as default subscription for new + // TRANS: users in user admin panel. %1$s is the invalid nickname. + _('Invalid default subscripton: \'%1$s\' is not a user.'), $values['newuser']['default'] ) ); @@ -178,7 +179,6 @@ class UserAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'useradminpanel'; @@ -189,7 +189,6 @@ class UserAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -200,7 +199,6 @@ class UserAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('useradminpanel'); @@ -211,7 +209,6 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart('fieldset', array('id' => 'settings_user-profile')); @@ -219,7 +216,9 @@ class UserAdminPanelForm extends AdminForm $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label in user admin panel for setting the character limit for the bio field. $this->input('biolimit', _('Bio Limit'), + // TRANS: Tooltip in user admin panel for setting the character limit for the bio field. _('Maximum length of a profile bio in characters.'), 'profile'); $this->unli(); @@ -228,17 +227,22 @@ class UserAdminPanelForm extends AdminForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_user-newusers')); + // TRANS: Form legend in user admin panel. $this->out->element('legend', null, _('New users')); $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label in user admin panel for setting new user welcome text. $this->input('welcome', _('New user welcome'), - _('Welcome text for new users (Max 255 chars).'), + // TRANS: Tooltip in user admin panel for setting new user welcome text. + _('Welcome text for new users (maximum 255 characters).'), 'newuser'); $this->unli(); $this->li(); + // TRANS: Field label in user admin panel for setting default subscription for new users. $this->input('default', _('Default subscription'), + // TRANS: Tooltip in user admin panel for setting default subscription for new users. _('Automatically subscribe new users to this user.'), 'newuser'); $this->unli(); @@ -248,21 +252,21 @@ class UserAdminPanelForm extends AdminForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_user-invitations')); + // TRANS: Form legend in user admin panel. $this->out->element('legend', null, _('Invitations')); $this->out->elementStart('ul', 'form_data'); $this->li(); + // TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. $this->out->checkbox('invite-enabled', _('Invitations enabled'), (bool) $this->value('enabled', 'invite'), + // TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. _('Whether to allow users to invite new users.')); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); - - - } /** @@ -277,7 +281,6 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function input($setting, $title, $instructions, $section='site') { $this->out->input("$section-$setting", $title, $this->value($setting, $section), $instructions); @@ -288,9 +291,14 @@ class UserAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save site settings')); + $this->out->submit('submit', + // TRANS: Button text to save user settings in user admin panel. + _m('BUTTON','Save'), + 'submit', + null, + // TRANS: Title for button to save user settings in user admin panel. + _('Save user settings')); } } diff --git a/actions/userdesignsettings.php b/actions/userdesignsettings.php index 1cf8780006..e6caea3a1b 100644 --- a/actions/userdesignsettings.php +++ b/actions/userdesignsettings.php @@ -120,6 +120,20 @@ class UserDesignSettingsAction extends DesignSettingsAction $this->showDesignForm($design); } + /** + * Shows the design settings form + * + * @param Design $design a working design to show + * + * @return nothing + */ + + function showDesignForm($design) + { + $form = new UserDesignForm($this, $design, $this->submitaction); + $form->show(); + } + /** * Save or update the user's design settings * @@ -128,6 +142,8 @@ class UserDesignSettingsAction extends DesignSettingsAction function saveDesign() { + $this->saveDesignPreferences(); + foreach ($this->args as $key => $val) { if (preg_match('/(#ho|ho)Td.*g/i', $val)) { $this->sethd(); @@ -164,7 +180,8 @@ class UserDesignSettingsAction extends DesignSettingsAction $tile = true; } - $user = common_current_user(); + $user = common_current_user(); + $design = $user->getDesign(); if (!empty($design)) { @@ -282,4 +299,64 @@ class UserDesignSettingsAction extends DesignSettingsAction $this->showForm(_('Enjoy your hotdog!'), true); } + function saveDesignPreferences() + { + $viewdesigns = $this->boolean('viewdesigns'); + + $user = common_current_user(); + + $original = clone($user); + + $user->viewdesigns = $viewdesigns; + + $result = $user->update($original); + + if ($result === false) { + common_log_db_error($user, 'UPDATE', __FILE__); + throw new ServerException(_('Couldn\'t update user.')); + } + } +} + +class UserDesignForm extends DesignForm +{ + function __construct($out, $design, $actionurl) + { + parent::__construct($out, $design, $actionurl); + } + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _('Design settings')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $user = common_current_user(); + + $this->out->elementStart('ul', 'form_data'); + $this->out->elementStart('li'); + $this->out->checkbox('viewdesigns', _('View profile designs'), + - $user->viewdesigns, _('Show or hide profile designs.')); + $this->out->elementEnd('li'); + $this->out->elementEnd('ul'); + + $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset'); + $this->out->element('legend', null, _('Background file')); + + parent::formData(); + } } diff --git a/plugins/OStatus/actions/userxrd.php b/actions/userxrd.php similarity index 70% rename from plugins/OStatus/actions/userxrd.php rename to actions/userxrd.php index 6a6886eb8c..582f7a35e7 100644 --- a/plugins/OStatus/actions/userxrd.php +++ b/actions/userxrd.php @@ -17,36 +17,46 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * @package OStatusPlugin * @maintainer James Walker <james@status.net> */ - -if (!defined('STATUSNET')) { exit(1); } - class UserxrdAction extends XrdAction { - function prepare($args) { parent::prepare($args); $this->uri = $this->trimmed('uri'); - $this->uri = Discovery::normalize($this->uri); - - if (Discovery::isWebfinger($this->uri)) { + $this->uri = self::normalize($this->uri); + + if (self::isWebfinger($this->uri)) { $parts = explode('@', substr(urldecode($this->uri), 5)); if (count($parts) == 2) { list($nick, $domain) = $parts; // @fixme confirm the domain too + // @fixme if domain checking is added, ensure that it will not + // cause problems with sites that have changed domains! $nick = common_canonical_nickname($nick); $this->user = User::staticGet('nickname', $nick); } } else { $this->user = User::staticGet('uri', $this->uri); + if (empty($this->user)) { + // try and get it by profile url + $profile = Profile::staticGet('profileurl', $this->uri); + if (!empty($profile)) { + $this->user = User::staticGet('id', $profile->id); + } + } } + if (!$this->user) { - $this->clientError(_('No such user.'), 404); + $this->clientError(_m('No such user.'), 404); return false; } diff --git a/classes/Avatar.php b/classes/Avatar.php index dbe2cd8138..6edc817685 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -42,8 +42,9 @@ class Avatar extends Memcached_DataObject return Memcached_DataObject::pkeyGet('Avatar', $kv); } - // where should the avatar go for this user? - + /** + * Where should the avatar go for this user? + */ static function filename($id, $extension, $size=null, $extra=null) { if ($size) { diff --git a/classes/Config.php b/classes/Config.php index 43b99587fa..e14730438e 100644 --- a/classes/Config.php +++ b/classes/Config.php @@ -58,7 +58,7 @@ class Config extends Memcached_DataObject $c = self::memcache(); if (!empty($c)) { - $settings = $c->get(common_cache_key(self::settingsKey)); + $settings = $c->get(Cache::key(self::settingsKey)); if ($settings !== false) { return $settings; } @@ -77,7 +77,7 @@ class Config extends Memcached_DataObject $config->free(); if (!empty($c)) { - $c->set(common_cache_key(self::settingsKey), $settings); + $c->set(Cache::key(self::settingsKey), $settings); } return $settings; @@ -154,7 +154,7 @@ class Config extends Memcached_DataObject $c = self::memcache(); if (!empty($c)) { - $c->delete(common_cache_key(self::settingsKey)); + $c->delete(Cache::key(self::settingsKey)); } } } diff --git a/classes/Consumer.php b/classes/Consumer.php index ce399f2783..c1090b85a3 100644 --- a/classes/Consumer.php +++ b/classes/Consumer.php @@ -65,5 +65,4 @@ class Consumer extends Memcached_DataObject $nonce->consumer_key = $this->consumer_key; $nonce->delete(); } - } diff --git a/classes/Conversation.php b/classes/Conversation.php index f540004ef3..aab55723f6 100755 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -74,6 +74,4 @@ class Conversation extends Memcached_DataObject return $conv; } - } - diff --git a/classes/Design.php b/classes/Design.php index ff44e01096..a8fdb72191 100644 --- a/classes/Design.php +++ b/classes/Design.php @@ -139,7 +139,42 @@ class Design extends Memcached_DataObject static function url($filename) { - $path = common_config('background', 'path'); + if (StatusNet::isHTTPS()) { + + $sslserver = common_config('background', 'sslserver'); + + if (empty($sslserver)) { + // XXX: this assumes that background dir == site dir + /background/ + // not true if there's another server + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/background/'; + } else { + $server = $sslserver; + $path = common_config('background', 'sslpath'); + if (empty($path)) { + $path = common_config('background', 'path'); + } + } + + $protocol = 'https'; + + } else { + + $path = common_config('background', 'path'); + + $server = common_config('background', 'server'); + + if (empty($server)) { + $server = common_config('site', 'server'); + } + + $protocol = 'http'; + } if ($path[strlen($path)-1] != '/') { $path .= '/'; @@ -149,25 +184,6 @@ class Design extends Memcached_DataObject $path = '/'.$path; } - $server = common_config('background', 'server'); - - if (empty($server)) { - $server = common_config('site', 'server'); - } - - $ssl = common_config('background', 'ssl'); - - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config('background', 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - - $protocol = ($ssl) ? 'https' : 'http'; - return $protocol.'://'.$server.$path.$filename; } diff --git a/classes/Fave.php b/classes/Fave.php index ed4f56aeef..4a9cfaae06 100644 --- a/classes/Fave.php +++ b/classes/Fave.php @@ -85,6 +85,19 @@ class Fave extends Memcached_DataObject return $ids; } + /** + * Note that the sorting for this is by order of *fave* not order of *notice*. + * + * @fixme add since_id, max_id support? + * + * @param <type> $user_id + * @param <type> $own + * @param <type> $offset + * @param <type> $limit + * @param <type> $since_id + * @param <type> $max_id + * @return <type> + */ function _streamDirect($user_id, $own, $offset, $limit, $since_id, $max_id) { $fav = new Fave(); @@ -129,4 +142,70 @@ class Fave extends Memcached_DataObject return $ids; } + + function asActivity() + { + $notice = Notice::staticGet('id', $this->notice_id); + $profile = Profile::staticGet('id', $this->user_id); + + $act = new Activity(); + + $act->verb = ActivityVerb::FAVORITE; + + // FIXME: rationalize this with URL below + + $act->id = TagURI::mint('favor:%d:%d:%s', + $profile->id, + $notice->id, + common_date_iso8601($this->modified)); + + $act->time = strtotime($this->modified); + // TRANS: Activity title when marking a notice as favorite. + $act->title = _("Favor"); + // TRANS: Ntofication given when a user marks a notice as favorite. + // TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. + $act->content = sprintf(_('%1$s marked notice %2$s as a favorite.'), + $profile->getBestName(), + $notice->uri); + + $act->actor = ActivityObject::fromProfile($profile); + $act->objects[] = ActivityObject::fromNotice($notice); + + $url = common_local_url('AtomPubShowFavorite', + array('profile' => $this->user_id, + 'notice' => $this->notice_id)); + + $act->selfLink = $url; + $act->editLink = $url; + + return $act; + } + + /** + * Fetch a stream of favorites by profile + * + * @param integer $profileId Profile that faved + * @param integer $offset Offset from last + * @param integer $limit Number to get + * + * @return mixed stream of faves, use fetch() to iterate + * + * @todo Cache results + * @todo integrate with Fave::stream() + */ + + static function byProfile($profileId, $offset, $limit) + { + $fav = new Fave(); + + $fav->user_id = $profileId; + + $fav->orderBy('modified DESC'); + + $fav->limit($offset, $limit); + + $fav->find(); + + return $fav; + } } diff --git a/classes/File.php b/classes/File.php index 407fd32114..ef9dbf14ab 100644 --- a/classes/File.php +++ b/classes/File.php @@ -29,7 +29,6 @@ require_once INSTALLDIR.'/classes/File_to_post.php'; /** * Table Definition for file */ - class File extends Memcached_DataObject { ###START_AUTOCODE @@ -117,10 +116,24 @@ class File extends Memcached_DataObject } /** + * Go look at a URL and possibly save data about it if it's new: + * - follow redirect chains and store them in file_redirection + * - look up oEmbed data and save it in file_oembed + * - if a thumbnail is available, save it in file_thumbnail + * - save file record with basic info + * - optionally save a file_to_post record + * - return the File object with the full reference + * * @fixme refactor this mess, it's gotten pretty scary. - * @param bool $followRedirects + * @param string $given_url the URL we're looking at + * @param int $notice_id (optional) + * @param bool $followRedirects defaults to true + * + * @return mixed File on success, -1 on some errors + * + * @throws ServerException on some errors */ - function processNew($given_url, $notice_id=null, $followRedirects=true) { + public function processNew($given_url, $notice_id=null, $followRedirects=true) { if (empty($given_url)) return -1; // error, no url to process $given_url = File_redirection::_canonUrl($given_url); if (empty($given_url)) return -1; // error, no url to process @@ -170,9 +183,9 @@ class File extends Memcached_DataObject if (empty($x)) { $x = File::staticGet($file_id); if (empty($x)) { - // FIXME: This could possibly be a clearer message :) + // @todo FIXME: This could possibly be a clearer message :) // TRANS: Server exception thrown when... Robin thinks something is impossible! - throw new ServerException(_("Robin thinks something is impossible.")); + throw new ServerException(_('Robin thinks something is impossible.')); } } @@ -187,8 +200,10 @@ class File extends Memcached_DataObject if ($fileSize > common_config('attachments', 'file_quota')) { // TRANS: Message given if an upload is larger than the configured maximum. // TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. - return sprintf(_('No file may be larger than %1$d bytes ' . - 'and the file you sent was %2$d bytes. Try to upload a smaller version.'), + // TRANS: %1$s is used for plural. + return sprintf(_m('No file may be larger than %1$d byte and the file you sent was %2$d bytes. Try to upload a smaller version.', + 'No file may be larger than %1$d bytes and the file you sent was %2$d bytes. Try to upload a smaller version.', + common_config('attachments', 'file_quota')), common_config('attachments', 'file_quota'), $fileSize); } @@ -198,8 +213,11 @@ class File extends Memcached_DataObject $total = $this->total + $fileSize; if ($total > common_config('attachments', 'user_quota')) { // TRANS: Message given if an upload would exceed user quota. - // TRANS: %d (number) is the user quota in bytes. - return sprintf(_('A file this large would exceed your user quota of %d bytes.'), common_config('attachments', 'user_quota')); + // TRANS: %d (number) is the user quota in bytes and is used for plural. + return sprintf(_m('A file this large would exceed your user quota of %d byte.', + 'A file this large would exceed your user quota of %d bytes.', + common_config('attachments', 'user_quota')), + common_config('attachments', 'user_quota')); } $query .= ' AND EXTRACT(month FROM file.modified) = EXTRACT(month FROM now()) and EXTRACT(year FROM file.modified) = EXTRACT(year FROM now())'; $this->query($query); @@ -207,8 +225,11 @@ class File extends Memcached_DataObject $total = $this->total + $fileSize; if ($total > common_config('attachments', 'monthly_quota')) { // TRANS: Message given id an upload would exceed a user's monthly quota. - // TRANS: $d (number) is the monthly user quota in bytes. - return sprintf(_('A file this large would exceed your monthly quota of %d bytes.'), common_config('attachments', 'monthly_quota')); + // TRANS: $d (number) is the monthly user quota in bytes and is used for plural. + return sprintf(_m('A file this large would exceed your monthly quota of %d byte.', + 'A file this large would exceed your monthly quota of %d bytes.', + common_config('attachments', 'monthly_quota')), + common_config('attachments', 'monthly_quota')); } return true; } @@ -218,12 +239,19 @@ class File extends Memcached_DataObject static function filename($profile, $basename, $mimetype) { require_once 'MIME/Type/Extension.php'; + + // We have to temporarily disable auto handling of PEAR errors... + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); + $mte = new MIME_Type_Extension(); - try { - $ext = $mte->getExtension($mimetype); - } catch ( Exception $e) { + $ext = $mte->getExtension($mimetype); + if (PEAR::isError($ext)) { $ext = strtolower(preg_replace('/\W/', '', $mimetype)); } + + // Restore error handling. + PEAR::staticPopErrorHandling(); + $nickname = $profile->nickname; $datestamp = strftime('%Y%m%dT%H%M%S', time()); $random = strtolower(common_confirmation_code(32)); @@ -262,22 +290,39 @@ class File extends Memcached_DataObject // TRANS: Client exception thrown if a file upload does not have a valid name. throw new ClientException(_("Invalid filename.")); } - if(common_config('site','private')) { + + if (common_config('site','private')) { return common_local_url('getfile', array('filename' => $filename)); + } + + if (StatusNet::isHTTPS()) { + + $sslserver = common_config('attachments', 'sslserver'); + + if (empty($sslserver)) { + // XXX: this assumes that background dir == site dir + /file/ + // not true if there's another server + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/file/'; + } else { + $server = $sslserver; + $path = common_config('attachments', 'sslpath'); + if (empty($path)) { + $path = common_config('attachments', 'path'); + } + } + + $protocol = 'https'; } else { $path = common_config('attachments', 'path'); - - if ($path[strlen($path)-1] != '/') { - $path .= '/'; - } - - if ($path[0] != '/') { - $path = '/'.$path; - } - $server = common_config('attachments', 'server'); if (empty($server)) { @@ -286,19 +331,18 @@ class File extends Memcached_DataObject $ssl = common_config('attachments', 'ssl'); - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config('attachments', 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - $protocol = ($ssl) ? 'https' : 'http'; - - return $protocol.'://'.$server.$path.$filename; } + + if ($path[strlen($path)-1] != '/') { + $path .= '/'; + } + + if ($path[0] != '/') { + $path = '/'.$path; + } + + return $protocol.'://'.$server.$path.$filename; } function getEnclosure(){ @@ -322,22 +366,28 @@ class File extends Memcached_DataObject $mimetype = substr($mimetype,0,$semicolon); } if(in_array($mimetype,$notEnclosureMimeTypes)){ + // Never treat generic HTML links as an enclosure type! + // But if we have oEmbed info, we'll consider it golden. $oembed = File_oembed::staticGet('file_id',$this->id); - if($oembed){ + if($oembed && in_array($oembed->type, array('photo', 'video'))){ $mimetype = strtolower($oembed->mimetype); $semicolon = strpos($mimetype,';'); if($semicolon){ $mimetype = substr($mimetype,0,$semicolon); } - if(in_array($mimetype,$notEnclosureMimeTypes)){ - return false; - }else{ + // @fixme uncertain if this is right. + // we want to expose things like YouTube videos as + // viewable attachments, but don't expose them as + // downloadable enclosures.....? + //if (in_array($mimetype, $notEnclosureMimeTypes)) { + // return false; + //} else { if($oembed->mimetype) $enclosure->mimetype=$oembed->mimetype; if($oembed->url) $enclosure->url=$oembed->url; if($oembed->title) $enclosure->title=$oembed->title; if($oembed->modified) $enclosure->modified=$oembed->modified; unset($oembed->size); - } + //} } else { return false; } @@ -352,4 +402,14 @@ class File extends Memcached_DataObject $enclosure = $this->getEnclosure(); return !empty($enclosure); } + + /** + * Get the attachment's thumbnail record, if any. + * + * @return File_thumbnail + */ + function getThumbnail() + { + return File_thumbnail::staticGet('file_id', $this->id); + } } diff --git a/classes/File_oembed.php b/classes/File_oembed.php index 041b447404..b7bf3a5dae 100644 --- a/classes/File_oembed.php +++ b/classes/File_oembed.php @@ -58,26 +58,16 @@ class File_oembed extends Memcached_DataObject return array(false, false, false); } - function _getOembed($url, $maxwidth = 500, $maxheight = 400) { - require_once INSTALLDIR.'/extlib/Services/oEmbed.php'; + function _getOembed($url) { $parameters = array( - 'maxwidth'=>$maxwidth, - 'maxheight'=>$maxheight, + 'maxwidth' => common_config('attachments', 'thumb_width'), + 'maxheight' => common_config('attachments', 'thumb_height'), ); - try{ - $oEmbed = new Services_oEmbed($url); - $object = $oEmbed->getObject($parameters); - return $object; - }catch(Exception $e){ - try{ - $oEmbed = new Services_oEmbed($url, array( - Services_oEmbed::OPTION_API => common_config('oohembed', 'endpoint') - )); - $object = $oEmbed->getObject($parameters); - return $object; - }catch(Exception $ex){ - return false; - } + try { + return oEmbedHelper::getObject($url, $parameters); + } catch (Exception $e) { + common_log(LOG_ERR, "Error during oembed lookup for $url - " . $e->getMessage()); + return false; } } @@ -120,7 +110,7 @@ class File_oembed extends Memcached_DataObject } } $file_oembed->insert(); - if (!empty($data->thumbnail_url)) { + if (!empty($data->thumbnail_url) || ($data->type == 'photo')) { $ft = File_thumbnail::staticGet('file_id', $file_id); if (!empty($ft)) { common_log(LOG_WARNING, "Strangely, a File_thumbnail object exists for new file $file_id", @@ -131,4 +121,3 @@ class File_oembed extends Memcached_DataObject } } } - diff --git a/classes/File_redirection.php b/classes/File_redirection.php index 6a86197d93..1096f500bf 100644 --- a/classes/File_redirection.php +++ b/classes/File_redirection.php @@ -91,9 +91,16 @@ class File_redirection extends Memcached_DataObject $request->setMethod(HTTP_Request2::METHOD_HEAD); $response = $request->send(); - if (405 == $response->getStatus()) { + if (405 == $response->getStatus() || 204 == $response->getStatus()) { + // HTTP 405 Unsupported Method // Server doesn't support HEAD method? Can this really happen? // We'll try again as a GET and ignore the response data. + // + // HTTP 204 No Content + // YFrog sends 204 responses back for our HEAD checks, which + // seems like it may be a logic error in their servers. If + // we get a 204 back, re-run it as a GET... if there's really + // no content it'll be cheap. :) $request = self::_commonHttp($short_url, $redirs); $response = $request->send(); } @@ -132,6 +139,7 @@ class File_redirection extends Memcached_DataObject * reached. * * @param string $in_url + * @param boolean $discover true to attempt dereferencing the redirect if we don't know it already * @return mixed one of: * string - target URL, if this is a direct link or a known redirect * array - redirect info if this is an *unknown* redirect: @@ -143,7 +151,7 @@ class File_redirection extends Memcached_DataObject * size (optional): byte size from Content-Length header * time (optional): timestamp from Last-Modified header */ - public function where($in_url) { + public function where($in_url, $discover=true) { // let's see if we know this... $a = File::staticGet('url', $in_url); @@ -159,8 +167,13 @@ class File_redirection extends Memcached_DataObject } } - $ret = File_redirection::lookupWhere($in_url); - return $ret; + if ($discover) { + $ret = File_redirection::lookupWhere($in_url); + return $ret; + } else { + // No manual dereferencing; leave the unknown URL as is. + return $in_url; + } } /** @@ -174,14 +187,14 @@ class File_redirection extends Memcached_DataObject * may be saved. * * @param string $long_url + * @param User $user whose shortening options to use; defaults to the current web session user * @return string */ - - function makeShort($long_url) + function makeShort($long_url, $user=null) { $canon = File_redirection::_canonUrl($long_url); - $short_url = File_redirection::_userMakeShort($canon); + $short_url = File_redirection::_userMakeShort($canon, $user); // Did we get one? Is it shorter? @@ -206,11 +219,11 @@ class File_redirection extends Memcached_DataObject * @return string */ - function forceShort($long_url) + function forceShort($long_url, $user) { $canon = File_redirection::_canonUrl($long_url); - $short_url = File_redirection::_userMakeShort($canon, true); + $short_url = File_redirection::_userMakeShort($canon, $user, true); // Did we get one? Is it shorter? if (!empty($short_url)) { @@ -220,8 +233,8 @@ class File_redirection extends Memcached_DataObject } } - function _userMakeShort($long_url, $force = false) { - $short_url = common_shorten_url($long_url, $force); + function _userMakeShort($long_url, User $user=null, $force = false) { + $short_url = common_shorten_url($long_url, $user, $force); if (!empty($short_url) && $short_url != $long_url) { $short_url = (string)$short_url; // store it @@ -265,6 +278,18 @@ class File_redirection extends Memcached_DataObject return null; } + /** + * Basic attempt to canonicalize a URL, cleaning up some standard variants + * such as funny syntax or a missing path. Used internally when cleaning + * up URLs for storage and following redirect chains. + * + * Note that despite being on File_redirect, this function DOES NOT perform + * any dereferencing of redirects. + * + * @param string $in_url input URL + * @param string $default_scheme if given a bare link; defaults to 'http://' + * @return string + */ function _canonUrl($in_url, $default_scheme = 'http://') { if (empty($in_url)) return false; $out_url = $in_url; @@ -311,4 +336,3 @@ class File_redirection extends Memcached_DataObject $file_redir->insert(); } } - diff --git a/classes/File_thumbnail.php b/classes/File_thumbnail.php index f8b70356c7..17bac7f08c 100644 --- a/classes/File_thumbnail.php +++ b/classes/File_thumbnail.php @@ -48,13 +48,45 @@ class File_thumbnail extends Memcached_DataObject return array(false, false, false); } - function saveNew($data, $file_id) { + /** + * Save oEmbed-provided thumbnail data + * + * @param object $data + * @param int $file_id + */ + public static function saveNew($data, $file_id) { + if (!empty($data->thumbnail_url)) { + // Non-photo types such as video will usually + // show us a thumbnail, though it's not required. + self::saveThumbnail($file_id, + $data->thumbnail_url, + $data->thumbnail_width, + $data->thumbnail_height); + } else if ($data->type == 'photo') { + // The inline photo URL given should also fit within + // our requested thumbnail size, per oEmbed spec. + self::saveThumbnail($file_id, + $data->url, + $data->width, + $data->height); + } + } + + /** + * Save a thumbnail record for the referenced file record. + * + * @param int $file_id + * @param string $url + * @param int $width + * @param int $height + */ + static function saveThumbnail($file_id, $url, $width, $height) + { $tn = new File_thumbnail; $tn->file_id = $file_id; - $tn->url = $data->thumbnail_url; - $tn->width = intval($data->thumbnail_width); - $tn->height = intval($data->thumbnail_height); + $tn->url = $url; + $tn->width = intval($width); + $tn->height = intval($height); $tn->insert(); } } - diff --git a/classes/File_to_post.php b/classes/File_to_post.php index 72a42b0880..530921adcb 100644 --- a/classes/File_to_post.php +++ b/classes/File_to_post.php @@ -67,4 +67,3 @@ class File_to_post extends Memcached_DataObject return Memcached_DataObject::pkeyGet('File_to_post', $kv); } } - diff --git a/classes/Foreign_link.php b/classes/Foreign_link.php index e47b2e3096..60db51595e 100644 --- a/classes/Foreign_link.php +++ b/classes/Foreign_link.php @@ -44,7 +44,6 @@ class Foreign_link extends Memcached_DataObject $result = $flink->find(true); return empty($result) ? null : $flink; - } static function getByForeignID($foreign_id, $service) @@ -129,5 +128,4 @@ class Foreign_link extends Memcached_DataObject return false; } } - } diff --git a/classes/Foreign_service.php b/classes/Foreign_service.php index ef614dbd6e..dd74fd2ca6 100644 --- a/classes/Foreign_service.php +++ b/classes/Foreign_service.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Foreign_service extends Memcached_DataObject +class Foreign_service extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -12,7 +12,7 @@ class Foreign_service extends Memcached_DataObject public $__table = 'foreign_service'; // table name public $id; // int(4) primary_key not_null public $name; // varchar(32) unique_key not_null - public $description; // varchar(255) + public $description; // varchar(255) public $created; // datetime() not_null public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP diff --git a/classes/Foreign_subscription.php b/classes/Foreign_subscription.php index d508606218..ec2631238e 100644 --- a/classes/Foreign_subscription.php +++ b/classes/Foreign_subscription.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Foreign_subscription extends Memcached_DataObject +class Foreign_subscription extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ diff --git a/classes/Foreign_user.php b/classes/Foreign_user.php index e98a16064a..8e6e0b33e0 100644 --- a/classes/Foreign_user.php +++ b/classes/Foreign_user.php @@ -83,5 +83,4 @@ class Foreign_user extends Memcached_DataObject } return $result; } - } diff --git a/classes/Group_block.php b/classes/Group_block.php index 9f4d592956..ffc57a496e 100644 --- a/classes/Group_block.php +++ b/classes/Group_block.php @@ -111,5 +111,4 @@ class Group_block extends Memcached_DataObject return true; } - } diff --git a/classes/Group_inbox.php b/classes/Group_inbox.php index 2a0787e387..8f5c65e594 100644 --- a/classes/Group_inbox.php +++ b/classes/Group_inbox.php @@ -1,8 +1,8 @@ <?php + /** * Table Definition for group_inbox */ - class Group_inbox extends Memcached_DataObject { ###START_AUTOCODE diff --git a/classes/Group_member.php b/classes/Group_member.php index 2239461beb..2cf31cf123 100644 --- a/classes/Group_member.php +++ b/classes/Group_member.php @@ -26,6 +26,15 @@ class Group_member extends Memcached_DataObject return Memcached_DataObject::pkeyGet('Group_member', $kv); } + /** + * Method to add a user to a group. + * + * @param integer $group_id Group to add to + * @param integer $profile_id Profile being added + * + * @return Group_member new membership object + */ + static function join($group_id, $profile_id) { $member = new Group_member(); @@ -42,7 +51,7 @@ class Group_member extends Memcached_DataObject throw new Exception(_("Group join failed.")); } - return true; + return $member; } static function leave($group_id, $profile_id) @@ -65,4 +74,91 @@ class Group_member extends Memcached_DataObject return true; } + + function getMember() + { + $member = Profile::staticGet('id', $this->profile_id); + + if (empty($member)) { + // TRANS: Exception thrown providing an invalid profile ID. + // TRANS: %s is the invalid profile ID. + throw new Exception(sprintf(_("Profile ID %s is invalid."),$this->profile_id)); + } + + return $member; + } + + function getGroup() + { + $group = User_group::staticGet('id', $this->group_id); + + if (empty($group)) { + // TRANS: Exception thrown providing an invalid group ID. + // TRANS: %s is the invalid group ID. + throw new Exception(sprintf(_("Group ID %s is invalid."),$this->group_id)); + } + + return $group; + } + + /** + * Get stream of memberships by member + * + * @param integer $memberId profile ID of the member to fetch for + * @param integer $offset offset from start of stream to get + * @param integer $limit number of memberships to get + * + * @return Group_member stream of memberships, use fetch() to iterate + */ + + static function byMember($memberId, $offset=0, $limit=GROUPS_PER_PAGE) + { + $membership = new Group_member(); + + $membership->profile_id = $memberId; + + $membership->orderBy('created DESC'); + + $membership->limit($offset, $limit); + + $membership->find(); + + return $membership; + } + + function asActivity() + { + $member = $this->getMember(); + $group = $this->getGroup(); + + $act = new Activity(); + + $act->id = TagURI::mint('join:%d:%d:%s', + $member->id, + $group->id, + common_date_iso8601($this->created)); + + $act->actor = ActivityObject::fromProfile($member); + $act->verb = ActivityVerb::JOIN; + $act->objects[] = ActivityObject::fromGroup($group); + + $act->time = strtotime($this->created); + // TRANS: Activity title. + $act->title = _("Join"); + + // TRANS: Success message for subscribe to group attempt through OStatus. + // TRANS: %1$s is the member name, %2$s is the subscribed group's name. + $act->content = sprintf(_('%1$s has joined group %2$s.'), + $member->getBestName(), + $group->getBestName()); + + $url = common_local_url('AtomPubShowMembership', + array('profile' => $member->id, + 'group' => $group->id)); + + $act->selfLink = $url; + $act->editLink = $url; + + return $act; + } } diff --git a/classes/Inbox.php b/classes/Inbox.php index 430419ba5e..a1ab6215fd 100644 --- a/classes/Inbox.php +++ b/classes/Inbox.php @@ -55,7 +55,6 @@ class Inbox extends Memcached_DataObject /** * Create a new inbox from existing Notice_inbox stuff */ - static function initialize($user_id) { $inbox = Inbox::fromNoticeInbox($user_id); @@ -115,10 +114,10 @@ class Inbox extends Memcached_DataObject */ static function insertNotice($user_id, $notice_id) { - // Going straight to the DB rather than trusting our caching - // during an update. Note: not using DB_DataObject::staticGet, - // which is unsafe to use directly (in-process caching causes - // memory leaks, which accumulate in queue processes). + // Going straight to the DB rather than trusting our caching + // during an update. Note: not using DB_DataObject::staticGet, + // which is unsafe to use directly (in-process caching causes + // memory leaks, which accumulate in queue processes). $inbox = new Inbox(); if (!$inbox->get('user_id', $user_id)) { $inbox = Inbox::initialize($user_id); diff --git a/classes/Invitation.php b/classes/Invitation.php index 8a36fd8df1..0e87c1629c 100644 --- a/classes/Invitation.php +++ b/classes/Invitation.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Invitation extends Memcached_DataObject +class Invitation extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ diff --git a/classes/Managed_DataObject.php b/classes/Managed_DataObject.php new file mode 100644 index 0000000000..7990d7f408 --- /dev/null +++ b/classes/Managed_DataObject.php @@ -0,0 +1,154 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * Wrapper for Memcached_DataObject which knows its own schema definition. + * Builds its own damn settings from a schema definition. + * + * @author Brion Vibber <brion@status.net> + */ +abstract class Managed_DataObject extends Memcached_DataObject +{ + /** + * The One True Thingy that must be defined and declared. + */ + public static abstract function schemaDef(); + + /** + * get/set an associative array of table columns + * + * @access public + * @return array (associative) + */ + function table() + { + // Hack for PHP 5.2 not supporting late static binding + //$table = static::schemaDef(); + $table = call_user_func(array(get_class($this), 'schemaDef')); + return array_map(array($this, 'columnBitmap'), $table['fields']); + } + + /** + * get/set an array of table primary keys + * + * Key info is pulled from the table definition array. + * + * @access private + * @return array + */ + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * Get a sequence key + * + * Returns the first serial column defined in the table, if any. + * + * @access private + * @return array (column,use_native,sequence_name) + */ + + function sequenceKey() + { + $table = call_user_func(array(get_class($this), 'schemaDef')); + foreach ($table['fields'] as $name => $column) { + if ($column['type'] == 'serial') { + // We have a serial/autoincrement column. + // Declare it to be a native sequence! + return array($name, true, false); + } + } + + // No sequence key on this table. + return array(false, false, false); + } + + /** + * Return key definitions for DB_DataObject and Memcache_DataObject. + * + * DB_DataObject needs to know about keys that the table has; this function + * defines them. + * + * @return array key definitions + */ + + function keyTypes() + { + $table = call_user_func(array(get_class($this), 'schemaDef')); + + if (!empty($table['unique keys'])) { + foreach ($table['unique keys'] as $idx => $fields) { + foreach ($fields as $name) { + $keys[$name] = 'U'; + } + } + } + + if (!empty($table['primary key'])) { + foreach ($table['primary key'] as $name) { + $keys[$name] = 'K'; + } + } + return $keys; + } + + /** + * Build the appropriate DB_DataObject bitfield map for this field. + * + * @param array $column + * @return int + */ + function columnBitmap($column) + { + $type = $column['type']; + + // For quoting style... + $intTypes = array('int', + 'integer', + 'float', + 'serial', + 'numeric'); + if (in_array($type, $intTypes)) { + $style = DB_DATAOBJECT_INT; + } else { + $style = DB_DATAOBJECT_STR; + } + + // Data type formatting style... + $formatStyles = array('blob' => DB_DATAOBJECT_BLOB, + 'text' => DB_DATAOBJECT_TXT, + 'date' => DB_DATAOBJECT_DATE, + 'time' => DB_DATAOBJECT_TIME, + 'datetime' => DB_DATAOBJECT_DATE | DB_DATAOBJECT_TIME, + 'timestamp' => DB_DATAOBJECT_MYSQLTIMESTAMP); + + if (isset($formatStyles[$type])) { + $style |= $formatStyles[$type]; + } + + // Nullable? + if (!empty($column['not null'])) { + $style |= DB_DATAOBJECT_NOTNULL; + } + + return $style; + } +} \ No newline at end of file diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 0f1ed04892..f71bfd3da0 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -124,7 +124,7 @@ class Memcached_DataObject extends Safe_DataObject } static function memcache() { - return common_memcache(); + return Cache::instance(); } static function cacheKey($cls, $k, $v) { @@ -134,7 +134,7 @@ class Memcached_DataObject extends Safe_DataObject str_replace("\n", " ", $e->getTraceAsString())); } $vstr = self::valueString($v); - return common_cache_key(strtolower($cls).':'.$k.':'.$vstr); + return Cache::key(strtolower($cls).':'.$k.':'.$vstr); } static function getcached($cls, $k, $v) { @@ -189,11 +189,11 @@ class Memcached_DataObject extends Safe_DataObject str_replace("\n", " ", $e->getTraceAsString())); return false; } else { - $keys = $this->_allCacheKeys(); + $keys = $this->_allCacheKeys(); - foreach ($keys as $key) { - $c->set($key, $this); - } + foreach ($keys as $key) { + $c->set($key, $this); + } } } @@ -302,8 +302,8 @@ class Memcached_DataObject extends Safe_DataObject $inst->query($qry); return $inst; } - $key_part = common_keyize($cls).':'.md5($qry); - $ckey = common_cache_key($key_part); + $key_part = Cache::keyize($cls).':'.md5($qry); + $ckey = Cache::key($key_part); $stored = $c->get($ckey); if ($stored !== false) { @@ -338,13 +338,31 @@ class Memcached_DataObject extends Safe_DataObject } $start = microtime(true); - $result = parent::_query($string); + $fail = false; + $result = null; + if (Event::handle('StartDBQuery', array($this, $string, &$result))) { + try { + $result = parent::_query($string); + } catch (Exception $e) { + $fail = $e; + } + Event::handle('EndDBQuery', array($this, $string, &$result)); + } $delta = microtime(true) - $start; $limit = common_config('db', 'log_slow_queries'); if (($limit > 0 && $delta >= $limit) || common_config('db', 'log_queries')) { $clean = $this->sanitizeQuery($string); - common_log(LOG_DEBUG, sprintf("DB query (%0.3fs): %s", $delta, $clean)); + if ($fail) { + $msg = sprintf("FAILED DB query (%0.3fs): %s - %s", $delta, $fail->getMessage(), $clean); + } else { + $msg = sprintf("DB query (%0.3fs): %s", $delta, $clean); + } + common_log(LOG_DEBUG, $msg); + } + + if ($fail) { + throw $fail; } return $result; } @@ -550,7 +568,7 @@ class Memcached_DataObject extends Safe_DataObject $keyPart = vsprintf($format, $args); - $cacheKey = common_cache_key($keyPart); + $cacheKey = Cache::key($keyPart); return $c->delete($cacheKey); } @@ -592,7 +610,7 @@ class Memcached_DataObject extends Safe_DataObject return false; } - $cacheKey = common_cache_key($keyPart); + $cacheKey = Cache::key($keyPart); return $c->get($cacheKey); } @@ -605,7 +623,7 @@ class Memcached_DataObject extends Safe_DataObject return false; } - $cacheKey = common_cache_key($keyPart); + $cacheKey = Cache::key($keyPart); return $c->set($cacheKey, $value, $flag, $expiry); } @@ -637,4 +655,3 @@ class Memcached_DataObject extends Safe_DataObject return $vstr; } } - diff --git a/classes/Message.php b/classes/Message.php index fa0c5b3181..484d1f724c 100644 --- a/classes/Message.php +++ b/classes/Message.php @@ -38,7 +38,6 @@ class Message extends Memcached_DataObject } static function saveNew($from, $to, $content, $source) { - $sender = Profile::staticGet('id', $from); if (!$sender->hasRight(Right::NEWMESSAGE)) { @@ -46,12 +45,19 @@ class Message extends Memcached_DataObject throw new ClientException(_('You are banned from sending direct messages.')); } + $user = User::staticGet('id', $sender->id); + $msg = new Message(); $msg->from_profile = $from; $msg->to_profile = $to; - $msg->content = common_shorten_links($content); - $msg->rendered = common_render_text($content); + if ($user) { + // Use the sender's URL shortening options. + $msg->content = $user->shortenLinks($content); + } else { + $msg->content = common_shorten_links($content); + } + $msg->rendered = common_render_text($msg->content); $msg->created = common_sql_now(); $msg->source = $source; diff --git a/classes/Nonce.php b/classes/Nonce.php index 2f8ab00b5d..93191bd409 100644 --- a/classes/Nonce.php +++ b/classes/Nonce.php @@ -36,5 +36,4 @@ class Nonce extends Memcached_DataObject { return array('consumer_key,token' => 'token:consumer_key,token'); } - } diff --git a/classes/Notice.php b/classes/Notice.php index fe014b942d..6acf0c7c1a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -121,16 +121,19 @@ class Notice extends Memcached_DataObject $deleted->insert(); } - // Clear related records + if (Event::handle('NoticeDeleteRelated', array($this))) { - $this->clearReplies(); - $this->clearRepeats(); - $this->clearFaves(); - $this->clearTags(); - $this->clearGroupInboxes(); + // Clear related records - // NOTE: we don't clear inboxes - // NOTE: we don't clear queue items + $this->clearReplies(); + $this->clearRepeats(); + $this->clearFaves(); + $this->clearTags(); + $this->clearGroupInboxes(); + + // NOTE: we don't clear inboxes + // NOTE: we don't clear queue items + } $result = parent::delete(); @@ -253,9 +256,14 @@ class Notice extends Memcached_DataObject $is_local = Notice::LOCAL_PUBLIC; } - $profile = Profile::staticGet($profile_id); - - $final = common_shorten_links($content); + $profile = Profile::staticGet('id', $profile_id); + $user = User::staticGet('id', $profile_id); + if ($user) { + // Use the local user's shortening preferences, if applicable. + $final = $user->shortenLinks($content); + } else { + $final = common_shorten_links($content); + } if (Notice::contentTooLong($final)) { // TRANS: Client exception thrown if a notice contains too many characters. @@ -473,7 +481,9 @@ class Notice extends Memcached_DataObject * @return void */ function saveUrls() { - common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id); + if (common_config('attachments', 'process_links')) { + common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id); + } } /** @@ -486,17 +496,18 @@ class Notice extends Memcached_DataObject */ function saveKnownUrls($urls) { - // @fixme validation? - foreach (array_unique($urls) as $url) { - File::processNew($url, $this->id); + if (common_config('attachments', 'process_links')) { + // @fixme validation? + foreach (array_unique($urls) as $url) { + File::processNew($url, $this->id); + } } } /** * @private callback */ - function saveUrl($data) { - list($url, $notice_id) = $data; + function saveUrl($url, $notice_id) { File::processNew($url, $notice_id); } @@ -521,10 +532,8 @@ class Notice extends Memcached_DataObject $notice = new Notice(); $notice->profile_id = $profile_id; $notice->content = $content; - if (common_config('db','type') == 'pgsql') - $notice->whereAdd('extract(epoch from now() - created) < ' . common_config('site', 'dupelimit')); - else - $notice->whereAdd('now() - created < ' . common_config('site', 'dupelimit')); + $threshold = common_sql_date(time() - common_config('site', 'dupelimit')); + $notice->whereAdd(sprintf("created > '%s'", $notice->escape($threshold))); $cnt = $notice->count(); return ($cnt == 0); @@ -580,7 +589,9 @@ class Notice extends Memcached_DataObject if ($f2p->find()) { while ($f2p->fetch()) { $f = File::staticGet($f2p->file_id); - $att[] = clone($f); + if ($f) { + $att[] = clone($f); + } } } return $att; @@ -588,7 +599,7 @@ class Notice extends Memcached_DataObject function getStreamByIds($ids) { - $cache = common_memcache(); + $cache = Cache::instance(); if (!empty($cache)) { $notices = array(); @@ -643,7 +654,7 @@ class Notice extends Memcached_DataObject $notice->selectAdd(); // clears it $notice->selectAdd('id'); - $notice->orderBy('id DESC'); + $notice->orderBy('created DESC, id DESC'); if (!is_null($offset)) { $notice->limit($offset, $limit); @@ -657,13 +668,8 @@ class Notice extends Memcached_DataObject $notice->whereAdd('is_local !='. Notice::GATEWAY); } - if ($since_id != 0) { - $notice->whereAdd('id > ' . $since_id); - } - - if ($max_id != 0) { - $notice->whereAdd('id <= ' . $max_id); - } + Notice::addWhereSinceId($notice, $since_id); + Notice::addWhereMaxId($notice, $max_id); $ids = array(); @@ -698,19 +704,14 @@ class Notice extends Memcached_DataObject $notice->conversation = $id; - $notice->orderBy('id DESC'); + $notice->orderBy('created DESC, id DESC'); if (!is_null($offset)) { $notice->limit($offset, $limit); } - if ($since_id != 0) { - $notice->whereAdd('id > ' . $since_id); - } - - if ($max_id != 0) { - $notice->whereAdd('id <= ' . $max_id); - } + Notice::addWhereSinceId($notice, $since_id); + Notice::addWhereMaxId($notice, $max_id); $ids = array(); @@ -740,6 +741,7 @@ class Notice extends Memcached_DataObject 1, 1 ); + if ($conversation->N > 0) { return true; } @@ -748,15 +750,22 @@ class Notice extends Memcached_DataObject } /** - * @param $groups array of Group *objects* - * @param $recipients array of profile *ids* + * Pull up a full list of local recipients who will be getting + * this notice in their inbox. Results will be cached, so don't + * change the input data wily-nilly! + * + * @param array $groups optional list of Group objects; + * if left empty, will be loaded from group_inbox records + * @param array $recipient optional list of reply profile ids + * if left empty, will be loaded from reply records + * @return array associating recipient user IDs with an inbox source constant */ function whoGets($groups=null, $recipients=null) { $c = self::memcache(); if (!empty($c)) { - $ni = $c->get(common_cache_key('notice:who_gets:'.$this->id)); + $ni = $c->get(Cache::key('notice:who_gets:'.$this->id)); if ($ni !== false) { return $ni; } @@ -782,33 +791,33 @@ class Notice extends Memcached_DataObject $ni[$id] = NOTICE_INBOX_SOURCE_SUB; } - $profile = $this->getProfile(); - foreach ($groups as $group) { $users = $group->getUserMembers(); foreach ($users as $id) { if (!array_key_exists($id, $ni)) { - $user = User::staticGet('id', $id); - if (!$user->hasBlocked($profile)) { - $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; - } + $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; } } } foreach ($recipients as $recipient) { - if (!array_key_exists($recipient, $ni)) { - $recipientUser = User::staticGet('id', $recipient); - if (!empty($recipientUser)) { - $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY; - } + $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY; + } + } + + // Exclude any deleted, non-local, or blocking recipients. + $profile = $this->getProfile(); + foreach ($ni as $id => $source) { + $user = User::staticGet('id', $id); + if (empty($user) || $user->hasBlocked($profile)) { + unset($ni[$id]); } } if (!empty($c)) { // XXX: pack this data better - $c->set(common_cache_key('notice:who_gets:'.$this->id), $ni); + $c->set(Cache::key('notice:who_gets:'.$this->id), $ni); } return $ni; @@ -891,7 +900,7 @@ class Notice extends Memcached_DataObject { if (!is_array($group_ids)) { // TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). - throw new ServerException(_("Bad type provided to saveKnownGroups")); + throw new ServerException(_('Bad type provided to saveKnownGroups.')); } $groups = array(); @@ -1016,25 +1025,31 @@ class Notice extends Memcached_DataObject if (empty($uris)) { return; } + $sender = Profile::staticGet($this->profile_id); foreach (array_unique($uris) as $uri) { - $user = User::staticGet('uri', $uri); + $profile = Profile::fromURI($uri); - if (!empty($user)) { - if ($user->hasBlocked($sender)) { - continue; - } - - $reply = new Reply(); - - $reply->notice_id = $this->id; - $reply->profile_id = $user->id; - common_log(LOG_INFO, __METHOD__ . ": saving reply: notice $this->id to profile $user->id"); - - $id = $reply->insert(); + if (empty($profile)) { + common_log(LOG_WARNING, "Unable to determine profile for URI '$uri'"); + continue; } + + if ($profile->hasBlocked($sender)) { + common_log(LOG_INFO, "Not saving reply to profile {$profile->id} ($uri) from sender {$sender->id} because of a block."); + continue; + } + + $reply = new Reply(); + + $reply->notice_id = $this->id; + $reply->profile_id = $profile->id; + + common_log(LOG_INFO, __METHOD__ . ": saving reply: notice $this->id to profile $profile->id"); + + $id = $reply->insert(); } return; @@ -1098,7 +1113,7 @@ class Notice extends Memcached_DataObject common_log_db_error($reply, 'INSERT', __FILE__); // TRANS: Server exception thrown when a reply cannot be saved. // TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. - throw new ServerException(sprintf(_("Could not save reply for %1$d, %2$d."), $this->id, $mentioned->id)); + throw new ServerException(sprintf(_('Could not save reply for %1$d, %2$d.'), $this->id, $mentioned->id)); } else { $replied[$mentioned->id] = 1; self::blow('reply:stream:%d', $mentioned->id); @@ -1201,184 +1216,191 @@ class Notice extends Memcached_DataObject return $groups; } + /** + * Convert a notice into an activity for export. + * + * @param User $cur Current user + * + * @return Activity activity object representing this Notice. + */ + + function asActivity() + { + $act = self::cacheGet(Cache::codeKey('notice:as-activity:'.$this->id)); + + if (!empty($act)) { + return $act; + } + + $act = new Activity(); + + if (Event::handle('StartNoticeAsActivity', array($this, &$act))) { + + $profile = $this->getProfile(); + + $act->actor = ActivityObject::fromProfile($profile); + $act->verb = ActivityVerb::POST; + $act->objects[] = ActivityObject::fromNotice($this); + + // XXX: should this be handled by default processing for object entry? + + $act->time = strtotime($this->created); + $act->link = $this->bestUrl(); + + $act->content = common_xml_safe_str($this->rendered); + $act->id = $this->uri; + $act->title = common_xml_safe_str($this->content); + + // Categories + + $tags = $this->getTags(); + + foreach ($tags as $tag) { + $cat = new AtomCategory(); + $cat->term = $tag; + + $act->categories[] = $cat; + } + + // Enclosures + // XXX: use Atom Media and/or File activity objects instead + + $attachments = $this->attachments(); + + foreach ($attachments as $attachment) { + $enclosure = $attachment->getEnclosure(); + if ($enclosure) { + $act->enclosures[] = $enclosure; + } + } + + $ctx = new ActivityContext(); + + if (!empty($this->reply_to)) { + $reply = Notice::staticGet('id', $this->reply_to); + if (!empty($reply)) { + $ctx->replyToID = $reply->uri; + $ctx->replyToUrl = $reply->bestUrl(); + } + } + + $ctx->location = $this->getLocation(); + + $conv = null; + + if (!empty($this->conversation)) { + $conv = Conversation::staticGet('id', $this->conversation); + if (!empty($conv)) { + $ctx->conversation = $conv->uri; + } + } + + $reply_ids = $this->getReplies(); + + foreach ($reply_ids as $id) { + $profile = Profile::staticGet('id', $id); + if (!empty($profile)) { + $ctx->attention[] = $profile->getUri(); + } + } + + $groups = $this->getGroups(); + + foreach ($groups as $group) { + $ctx->attention[] = $group->uri; + } + + // XXX: deprecated; use ActivityVerb::SHARE instead + + $repeat = null; + + if (!empty($this->repeat_of)) { + $repeat = Notice::staticGet('id', $this->repeat_of); + $ctx->forwardID = $repeat->uri; + $ctx->forwardUrl = $repeat->bestUrl(); + } + + $act->context = $ctx; + + // Source + + $atom_feed = $profile->getAtomFeed(); + + if (!empty($atom_feed)) { + + $act->source = new ActivitySource(); + + // XXX: we should store the actual feed ID + + $act->source->id = $atom_feed; + + // XXX: we should store the actual feed title + + $act->source->title = $profile->getBestName(); + + $act->source->links['alternate'] = $profile->profileurl; + $act->source->links['self'] = $atom_feed; + + $act->source->icon = $profile->avatarUrl(AVATAR_PROFILE_SIZE); + + $notice = $profile->getCurrentNotice(); + + if (!empty($notice)) { + $act->source->updated = self::utcDate($notice->created); + } + + $user = User::staticGet('id', $profile->id); + + if (!empty($user)) { + $act->source->links['license'] = common_config('license', 'url'); + } + } + + if ($this->isLocal()) { + $act->selfLink = common_local_url('ApiStatusesShow', array('id' => $this->id, + 'format' => 'atom')); + $act->editLink = $act->selfLink; + } + + Event::handle('EndNoticeAsActivity', array($this, &$act)); + } + + self::cacheSet(Cache::codeKey('notice:as-activity:'.$this->id), $act); + + return $act; + } + // This has gotten way too long. Needs to be sliced up into functional bits // or ideally exported to a utility class. - function asAtomEntry($namespace=false, $source=false, $author=true, $cur=null) + function asAtomEntry($namespace=false, + $source=false, + $author=true, + $cur=null) { - $profile = $this->getProfile(); + $act = $this->asActivity(); + $act->extra[] = $this->noticeInfo($cur); + return $act->asString($namespace, $author, $source); + } - $xs = new XMLStringer(true); + /** + * Extra notice info for atom entries + * + * Clients use some extra notice info in the atom stream. + * This gives it to them. + * + * @param User $cur Current user + * + * @return array representation of <statusnet:notice_info> element + */ - if ($namespace) { - $attrs = array('xmlns' => 'http://www.w3.org/2005/Atom', - 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0', - 'xmlns:georss' => 'http://www.georss.org/georss', - 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', - 'xmlns:media' => 'http://purl.org/syndication/atommedia', - 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0', - 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', - 'xmlns:statusnet' => 'http://status.net/schema/api/1/'); - } else { - $attrs = array(); - } + function noticeInfo($cur) + { + // local notice ID (useful to clients for ordering) - if (Event::handle('StartActivityStart', array(&$this, &$xs, &$attrs))) { - $xs->elementStart('entry', $attrs); - Event::handle('EndActivityStart', array(&$this, &$xs, &$attrs)); - } + $noticeInfoAttr = array('local_id' => $this->id); - if (Event::handle('StartActivitySource', array(&$this, &$xs))) { - - if ($source) { - - $atom_feed = $profile->getAtomFeed(); - - if (!empty($atom_feed)) { - - $xs->elementStart('source'); - - // XXX: we should store the actual feed ID - - $xs->element('id', null, $atom_feed); - - // XXX: we should store the actual feed title - - $xs->element('title', null, $profile->getBestName()); - - $xs->element('link', array('rel' => 'alternate', - 'type' => 'text/html', - 'href' => $profile->profileurl)); - - $xs->element('link', array('rel' => 'self', - 'type' => 'application/atom+xml', - 'href' => $atom_feed)); - - $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE)); - - $notice = $profile->getCurrentNotice(); - - if (!empty($notice)) { - $xs->element('updated', null, self::utcDate($notice->created)); - } - - $user = User::staticGet('id', $profile->id); - - if (!empty($user)) { - $xs->element('link', array('rel' => 'license', - 'href' => common_config('license', 'url'))); - } - - $xs->elementEnd('source'); - } - } - Event::handle('EndActivitySource', array(&$this, &$xs)); - } - - $title = common_xml_safe_str($this->content); - - if (Event::handle('StartActivityTitle', array(&$this, &$xs, &$title))) { - $xs->element('title', null, $title); - Event::handle('EndActivityTitle', array($this, &$xs, $title)); - } - - $atomAuthor = ''; - - if ($author) { - $atomAuthor = $profile->asAtomAuthor($cur); - } - - if (Event::handle('StartActivityAuthor', array(&$this, &$xs, &$atomAuthor))) { - if (!empty($atomAuthor)) { - $xs->raw($atomAuthor); - Event::handle('EndActivityAuthor', array(&$this, &$xs, &$atomAuthor)); - } - } - - $actor = ''; - - if ($author) { - $actor = $profile->asActivityActor(); - } - - if (Event::handle('StartActivityActor', array(&$this, &$xs, &$actor))) { - if (!empty($actor)) { - $xs->raw($actor); - Event::handle('EndActivityActor', array(&$this, &$xs, &$actor)); - } - } - - $url = $this->bestUrl(); - - if (Event::handle('StartActivityLink', array(&$this, &$xs, &$url))) { - $xs->element('link', array('rel' => 'alternate', - 'type' => 'text/html', - 'href' => $url)); - Event::handle('EndActivityLink', array(&$this, &$xs, $url)); - } - - $id = $this->uri; - - if (Event::handle('StartActivityId', array(&$this, &$xs, &$id))) { - $xs->element('id', null, $id); - Event::handle('EndActivityId', array(&$this, &$xs, $id)); - } - - $published = self::utcDate($this->created); - - if (Event::handle('StartActivityPublished', array(&$this, &$xs, &$published))) { - $xs->element('published', null, $published); - Event::handle('EndActivityPublished', array(&$this, &$xs, $published)); - } - - $updated = $published; // XXX: notices are usually immutable - - if (Event::handle('StartActivityUpdated', array(&$this, &$xs, &$updated))) { - $xs->element('updated', null, $updated); - Event::handle('EndActivityUpdated', array(&$this, &$xs, $updated)); - } - - $content = common_xml_safe_str($this->rendered); - - if (Event::handle('StartActivityContent', array(&$this, &$xs, &$content))) { - $xs->element('content', array('type' => 'html'), $content); - Event::handle('EndActivityContent', array(&$this, &$xs, $content)); - } - - // Most of our notices represent POSTing a NOTE. This is the default verb - // for activity streams, so we normally just leave it out. - - $verb = ActivityVerb::POST; - - if (Event::handle('StartActivityVerb', array(&$this, &$xs, &$verb))) { - $xs->element('activity:verb', null, $verb); - Event::handle('EndActivityVerb', array(&$this, &$xs, $verb)); - } - - // We use the default behavior for activity streams: if there's no activity:object, - // then treat the entry itself as the object. Here, you can set the type of that object, - // which is normally a NOTE. - - $type = ActivityObject::NOTE; - - if (Event::handle('StartActivityDefaultObjectType', array(&$this, &$xs, &$type))) { - $xs->element('activity:object-type', null, $type); - Event::handle('EndActivityDefaultObjectType', array(&$this, &$xs, $type)); - } - - // Since we usually use the entry itself as an object, we don't have an explicit - // object. Some extensions may want to add them (for photo, event, music, etc.). - - $objects = array(); - - if (Event::handle('StartActivityObjects', array(&$this, &$xs, &$objects))) { - foreach ($objects as $object) { - $xs->raw($object->asString()); - } - Event::handle('EndActivityObjects', array(&$this, &$xs, $objects)); - } - - $noticeInfoAttr = array('local_id' => $this->id); // local notice ID (useful to clients for ordering) + // notice source $ns = $this->getSource(); @@ -1388,163 +1410,27 @@ class Notice extends Memcached_DataObject $noticeInfoAttr['source_link'] = $ns->url; if (!empty($ns->name)) { $noticeInfoAttr['source'] = '<a href="' - . htmlspecialchars($ns->url) + . htmlspecialchars($ns->url) . '" rel="nofollow">' - . htmlspecialchars($ns->name) + . htmlspecialchars($ns->name) . '</a>'; } } } + // favorite and repeated + if (!empty($cur)) { $noticeInfoAttr['favorite'] = ($cur->hasFave($this)) ? "true" : "false"; - $profile = $cur->getProfile(); - $noticeInfoAttr['repeated'] = ($profile->hasRepeated($this->id)) ? "true" : "false"; + $cp = $cur->getProfile(); + $noticeInfoAttr['repeated'] = ($cp->hasRepeated($this->id)) ? "true" : "false"; } if (!empty($this->repeat_of)) { $noticeInfoAttr['repeat_of'] = $this->repeat_of; } - if (Event::handle('StartActivityNoticeInfo', array(&$this, &$xs, &$noticeInfoAttr))) { - $xs->element('statusnet:notice_info', $noticeInfoAttr, null); - Event::handle('EndActivityNoticeInfo', array(&$this, &$xs, $noticeInfoAttr)); - } - - $replyNotice = null; - - if ($this->reply_to) { - $replyNotice = Notice::staticGet('id', $this->reply_to); - } - - if (Event::handle('StartActivityInReplyTo', array(&$this, &$xs, &$replyNotice))) { - if (!empty($replyNotice)) { - $xs->element('link', array('rel' => 'related', - 'href' => $replyNotice->bestUrl())); - $xs->element('thr:in-reply-to', - array('ref' => $replyNotice->uri, - 'href' => $replyNotice->bestUrl())); - Event::handle('EndActivityInReplyTo', array(&$this, &$xs, $replyNotice)); - } - } - - $conv = null; - - if (!empty($this->conversation)) { - $conv = Conversation::staticGet('id', $this->conversation); - } - - if (Event::handle('StartActivityConversation', array(&$this, &$xs, &$conv))) { - if (!empty($conv)) { - $xs->element('link', array('rel' => 'ostatus:conversation', - 'href' => $conv->uri)); - } - Event::handle('EndActivityConversation', array(&$this, &$xs, $conv)); - } - - $replyProfiles = array(); - - $reply_ids = $this->getReplies(); - - foreach ($reply_ids as $id) { - $profile = Profile::staticGet('id', $id); - if (!empty($profile)) { - $replyProfiles[] = $profile; - } - } - - if (Event::handle('StartActivityAttentionProfiles', array(&$this, &$xs, &$replyProfiles))) { - foreach ($replyProfiles as $profile) { - $xs->element('link', array('rel' => 'ostatus:attention', - 'href' => $profile->getUri())); - $xs->element('link', array('rel' => 'mentioned', - 'href' => $profile->getUri())); - } - Event::handle('EndActivityAttentionProfiles', array(&$this, &$xs, $replyProfiles)); - } - - $groups = $this->getGroups(); - - if (Event::handle('StartActivityAttentionGroups', array(&$this, &$xs, &$groups))) { - foreach ($groups as $group) { - $xs->element('link', array('rel' => 'ostatus:attention', - 'href' => $group->permalink())); - $xs->element('link', array('rel' => 'mentioned', - 'href' => $group->permalink())); - } - Event::handle('EndActivityAttentionGroups', array(&$this, &$xs, $groups)); - } - - $repeat = null; - - if (!empty($this->repeat_of)) { - $repeat = Notice::staticGet('id', $this->repeat_of); - } - - if (Event::handle('StartActivityForward', array(&$this, &$xs, &$repeat))) { - if (!empty($repeat)) { - $xs->element('ostatus:forward', - array('ref' => $repeat->uri, - 'href' => $repeat->bestUrl())); - } - - Event::handle('EndActivityForward', array(&$this, &$xs, $repeat)); - } - - $tags = $this->getTags(); - - if (Event::handle('StartActivityCategories', array(&$this, &$xs, &$tags))) { - foreach ($tags as $tag) { - $xs->element('category', array('term' => $tag)); - } - Event::handle('EndActivityCategories', array(&$this, &$xs, $tags)); - } - - // Enclosures - - $enclosures = array(); - - $attachments = $this->attachments(); - - foreach ($attachments as $attachment) { - $enclosure = $attachment->getEnclosure(); - if ($enclosure) { - $enclosures[] = $enclosure; - } - } - - if (Event::handle('StartActivityEnclosures', array(&$this, &$xs, &$enclosures))) { - foreach ($enclosures as $enclosure) { - $attributes = array('rel' => 'enclosure', - 'href' => $enclosure->url, - 'type' => $enclosure->mimetype, - 'length' => $enclosure->size); - - if ($enclosure->title) { - $attributes['title'] = $enclosure->title; - } - - $xs->element('link', $attributes, null); - } - Event::handle('EndActivityEnclosures', array(&$this, &$xs, $enclosures)); - } - - $lat = $this->lat; - $lon = $this->lon; - - if (Event::handle('StartActivityGeo', array(&$this, &$xs, &$lat, &$lon))) { - if (!empty($lat) && !empty($lon)) { - $xs->element('georss:point', null, $lat . ' ' . $lon); - } - Event::handle('EndActivityGeo', array(&$this, &$xs, $lat, $lon)); - } - - if (Event::handle('StartActivityEnd', array(&$this, &$xs))) { - $xs->elementEnd('entry'); - Event::handle('EndActivityEnd', array(&$this, &$xs)); - } - - return $xs->getString(); + return array('statusnet:notice_info', $noticeInfoAttr, null); } /** @@ -1556,6 +1442,7 @@ class Notice extends Memcached_DataObject * @param string $element one of 'subject', 'object', 'target' * @return string */ + function asActivityNoun($element) { $noun = ActivityObject::fromNotice($this); @@ -1576,7 +1463,7 @@ class Notice extends Memcached_DataObject function stream($fn, $args, $cachekey, $offset=0, $limit=20, $since_id=0, $max_id=0) { - $cache = common_memcache(); + $cache = Cache::instance(); if (empty($cache) || $since_id != 0 || $max_id != 0 || @@ -1586,7 +1473,7 @@ class Notice extends Memcached_DataObject $max_id))); } - $idkey = common_cache_key($cachekey); + $idkey = Cache::key($cachekey); $idstr = $cache->get($idkey); @@ -1768,17 +1655,17 @@ class Notice extends Memcached_DataObject function repeatStream($limit=100) { - $cache = common_memcache(); + $cache = Cache::instance(); if (empty($cache)) { $ids = $this->_repeatStreamDirect($limit); } else { - $idstr = $cache->get(common_cache_key('notice:repeats:'.$this->id)); + $idstr = $cache->get(Cache::key('notice:repeats:'.$this->id)); if ($idstr !== false) { $ids = explode(',', $idstr); } else { $ids = $this->_repeatStreamDirect(100); - $cache->set(common_cache_key('notice:repeats:'.$this->id), implode(',', $ids)); + $cache->set(Cache::key('notice:repeats:'.$this->id), implode(',', $ids)); } if ($limit < 100) { // We do a max of 100, so slice down to limit @@ -1798,10 +1685,10 @@ class Notice extends Memcached_DataObject $notice->repeat_of = $this->id; - $notice->orderBy('created'); // NB: asc! + $notice->orderBy('created, id'); // NB: asc! - if (!is_null($offset)) { - $notice->limit($offset, $limit); + if (!is_null($limit)) { + $notice->limit(0, $limit); } $ids = array(); @@ -1823,7 +1710,6 @@ class Notice extends Memcached_DataObject $options = array(); if (!empty($location_id) && !empty($location_ns)) { - $options['location_id'] = $location_id; $options['location_ns'] = $location_ns; @@ -1835,7 +1721,6 @@ class Notice extends Memcached_DataObject } } else if (!empty($lat) && !empty($lon)) { - $options['lat'] = $lat; $options['lon'] = $lon; @@ -1846,7 +1731,6 @@ class Notice extends Memcached_DataObject $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; @@ -1932,10 +1816,10 @@ class Notice extends Memcached_DataObject if ($tag->find()) { while ($tag->fetch()) { - self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, common_keyize($tag->tag)); - self::blow('profile:notice_ids_tagged:%d:%s;last', $this->profile_id, common_keyize($tag->tag)); - self::blow('notice_tag:notice_ids:%s', common_keyize($tag->tag)); - self::blow('notice_tag:notice_ids:%s;last', common_keyize($tag->tag)); + self::blow('profile:notice_ids_tagged:%d:%s', $this->profile_id, Cache::keyize($tag->tag)); + self::blow('profile:notice_ids_tagged:%d:%s;last', $this->profile_id, Cache::keyize($tag->tag)); + self::blow('notice_tag:notice_ids:%s', Cache::keyize($tag->tag)); + self::blow('notice_tag:notice_ids:%s;last', Cache::keyize($tag->tag)); $tag->delete(); } } @@ -1963,6 +1847,7 @@ class Notice extends Memcached_DataObject { // We always insert for the author so they don't // have to wait + Event::handle('StartNoticeDistribute', array($this)); $user = User::staticGet('id', $this->profile_id); if (!empty($user)) { @@ -2083,4 +1968,108 @@ class Notice extends Memcached_DataObject $d = new DateTime($dateStr, new DateTimeZone('UTC')); return $d->format(DATE_W3C); } + + /** + * Look up the creation timestamp for a given notice ID, even + * if it's been deleted. + * + * @param int $id + * @return mixed string recorded creation timestamp, or false if can't be found + */ + public static function getAsTimestamp($id) + { + if (!$id) { + return false; + } + + $notice = Notice::staticGet('id', $id); + if ($notice) { + return $notice->created; + } + + $deleted = Deleted_notice::staticGet('id', $id); + if ($deleted) { + return $deleted->created; + } + + return false; + } + + /** + * Build an SQL 'where' fragment for timestamp-based sorting from a since_id + * parameter, matching notices posted after the given one (exclusive). + * + * If the referenced notice can't be found, will return false. + * + * @param int $id + * @param string $idField + * @param string $createdField + * @return mixed string or false if no match + */ + public static function whereSinceId($id, $idField='id', $createdField='created') + { + $since = Notice::getAsTimestamp($id); + if ($since) { + return sprintf("($createdField = '%s' and $idField > %d) or ($createdField > '%s')", $since, $id, $since); + } + return false; + } + + /** + * Build an SQL 'where' fragment for timestamp-based sorting from a since_id + * parameter, matching notices posted after the given one (exclusive), and + * if necessary add it to the data object's query. + * + * @param DB_DataObject $obj + * @param int $id + * @param string $idField + * @param string $createdField + * @return mixed string or false if no match + */ + public static function addWhereSinceId(DB_DataObject $obj, $id, $idField='id', $createdField='created') + { + $since = self::whereSinceId($id); + if ($since) { + $obj->whereAdd($since); + } + } + + /** + * Build an SQL 'where' fragment for timestamp-based sorting from a max_id + * parameter, matching notices posted before the given one (inclusive). + * + * If the referenced notice can't be found, will return false. + * + * @param int $id + * @param string $idField + * @param string $createdField + * @return mixed string or false if no match + */ + public static function whereMaxId($id, $idField='id', $createdField='created') + { + $max = Notice::getAsTimestamp($id); + if ($max) { + return sprintf("($createdField < '%s') or ($createdField = '%s' and $idField <= %d)", $max, $max, $id); + } + return false; + } + + /** + * Build an SQL 'where' fragment for timestamp-based sorting from a max_id + * parameter, matching notices posted before the given one (inclusive), and + * if necessary add it to the data object's query. + * + * @param DB_DataObject $obj + * @param int $id + * @param string $idField + * @param string $createdField + * @return mixed string or false if no match + */ + public static function addWhereMaxId(DB_DataObject $obj, $id, $idField='id', $createdField='created') + { + $max = self::whereMaxId($id); + if ($max) { + $obj->whereAdd($max); + } + } } diff --git a/classes/Notice_source.php b/classes/Notice_source.php index e7568bbca2..43893ebe18 100644 --- a/classes/Notice_source.php +++ b/classes/Notice_source.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Notice_source extends Memcached_DataObject +class Notice_source extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php index a5d0716a71..c8031ddf39 100644 --- a/classes/Notice_tag.php +++ b/classes/Notice_tag.php @@ -40,7 +40,7 @@ class Notice_tag extends Memcached_DataObject $ids = Notice::stream(array('Notice_tag', '_streamDirect'), array($tag), - 'notice_tag:notice_ids:' . common_keyize($tag), + 'notice_tag:notice_ids:' . Cache::keyize($tag), $offset, $limit); return Notice::getStreamByIds($ids); @@ -55,15 +55,10 @@ class Notice_tag extends Memcached_DataObject $nt->selectAdd(); $nt->selectAdd('notice_id'); - if ($since_id != 0) { - $nt->whereAdd('notice_id > ' . $since_id); - } + Notice::addWhereSinceId($nt, $since_id, 'notice_id'); + Notice::addWhereMaxId($nt, $max_id, 'notice_id'); - if ($max_id != 0) { - $nt->whereAdd('notice_id < ' . $max_id); - } - - $nt->orderBy('notice_id DESC'); + $nt->orderBy('created DESC, notice_id DESC'); if (!is_null($offset)) { $nt->limit($offset, $limit); @@ -82,9 +77,9 @@ class Notice_tag extends Memcached_DataObject function blowCache($blowLast=false) { - self::blow('notice_tag:notice_ids:%s', common_keyize($this->tag)); + self::blow('notice_tag:notice_ids:%s', Cache::keyize($this->tag)); if ($blowLast) { - self::blow('notice_tag:notice_ids:%s;last', common_keyize($this->tag)); + self::blow('notice_tag:notice_ids:%s;last', Cache::keyize($this->tag)); } } diff --git a/classes/Oauth_application.php b/classes/Oauth_application.php index 748b642200..f1d4fb7a6f 100644 --- a/classes/Oauth_application.php +++ b/classes/Oauth_application.php @@ -46,12 +46,19 @@ class Oauth_application extends Memcached_DataObject static function maxDesc() { - $desclimit = common_config('application', 'desclimit'); - // null => use global limit (distinct from 0!) - if (is_null($desclimit)) { - $desclimit = common_config('site', 'textlimit'); + // This used to default to textlimit or allow unlimited descriptions, + // but this isn't part of a notice and the field's limited to 255 chars + // in the DB, so those seem silly. + // + // Now just defaulting to 255 max unless a smaller application desclimit + // is actually set. Setting to 0 will use the maximum. + $max = 255; + $desclimit = intval(common_config('application', 'desclimit')); + if ($desclimit > 0 && $desclimit < $max) { + return $desclimit; + } else { + return $max; } - return $desclimit; } static function descriptionTooLong($desc) @@ -110,7 +117,6 @@ class Oauth_application extends Memcached_DataObject * * @return void */ - function uploadLogo() { if ($_FILES['app_icon']['error'] == @@ -153,5 +159,4 @@ class Oauth_application extends Memcached_DataObject $oauser->application_id = $this->id; $oauser->delete(); } - } diff --git a/classes/Oauth_application_user.php b/classes/Oauth_application_user.php index 57986281f9..e1b4b8c046 100644 --- a/classes/Oauth_application_user.php +++ b/classes/Oauth_application_user.php @@ -24,16 +24,16 @@ class Oauth_application_user extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - static function getByKeys($user, $app) + static function getByUserAndToken($user, $token) { - if (empty($user) || empty($app)) { + if (empty($user) || empty($token)) { return null; } $oau = new Oauth_application_user(); - $oau->profile_id = $user->id; - $oau->application_id = $app->id; + $oau->profile_id = $user->id; + $oau->token = $token; $oau->limit(1); $result = $oau->find(true); @@ -41,4 +41,34 @@ class Oauth_application_user extends Memcached_DataObject return empty($result) ? null : $oau; } + function updateKeys(&$orig) + { + $this->_connect(); + $parts = array(); + foreach (array('profile_id', 'application_id', 'token', 'access_type') as $k) { + if (strcmp($this->$k, $orig->$k) != 0) { + $parts[] = $k . ' = ' . $this->_quote($this->$k); + } + } + if (count($parts) == 0) { + # No changes + return true; + } + $toupdate = implode(', ', $parts); + + $table = $this->tableName(); + if(common_config('db','quote_identifiers')) { + $table = '"' . $table . '"'; + } + $qry = 'UPDATE ' . $table . ' SET ' . $toupdate . + ' WHERE profile_id = ' . $orig->profile_id + . ' AND application_id = ' . $orig->application_id + . " AND token = '$orig->token'"; + $orig->decache(); + $result = $this->query($qry); + if ($result) { + $this->encache(); + } + return $result; + } } diff --git a/classes/Oauth_token_association.php b/classes/Oauth_token_association.php new file mode 100644 index 0000000000..66be22b5d3 --- /dev/null +++ b/classes/Oauth_token_association.php @@ -0,0 +1,42 @@ +<?php +/** + * Table Definition for oauth_association + */ +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +class Oauth_token_association extends Memcached_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'oauth_token_association'; // table name + public $profile_id; // int(4) primary_key not_null + public $application_id; // int(4) primary_key not_null + public $token; // varchar(255) primary key not null + public $created; // datetime not_null + public $modified; // timestamp not_null default_CURRENT_TIMESTAMP + + /* Static get */ + function staticGet($k, $v = NULL) { + return Memcached_DataObject::staticGet('oauth_token_association', $k, $v); + } + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE + + static function getByUserAndToken($user, $token) + { + if (empty($user) || empty($token)) { + return null; + } + + $oau = new oauth_request_token(); + + $oau->profile_id = $user->id; + $oau->token = $token; + $oau->limit(1); + + $result = $oau->find(true); + + return empty($result) ? null : $oau; + } +} diff --git a/classes/Profile.php b/classes/Profile.php index d7617f0b74..977947b6f7 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -103,7 +103,6 @@ class Profile extends Memcached_DataObject foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { # We don't do a scaled one if original is our scaled size if (!($avatar->width == $size && $avatar->height == $size)) { - $scaled_filename = $imagefile->resize($size); //$scaled = DB_DataObject::factory('avatar'); @@ -126,6 +125,14 @@ class Profile extends Memcached_DataObject return $avatar; } + /** + * Delete attached avatars for this user from the database and filesystem. + * This should be used instead of a batch delete() to ensure that files + * get removed correctly. + * + * @param boolean $original true to delete only the original-size file + * @return <type> + */ function delete_avatars($original=true) { $avatar = new Avatar(); @@ -142,11 +149,32 @@ class Profile extends Memcached_DataObject return true; } + /** + * Gets either the full name (if filled) or the nickname. + * + * @return string + */ function getBestName() { return ($this->fullname) ? $this->fullname : $this->nickname; } + /** + * Gets the full name (if filled) with nickname as a parenthetical, or the nickname alone + * if no fullname is provided. + * + * @return string + */ + function getFancyName() + { + if ($this->fullname) { + // TRANS: Full name of a profile or group followed by nickname in parens + return sprintf(_m('FANCYNAME','%1$s (%2$s)'), $this->fullname, $this->nickname); + } else { + return $this->nickname; + } + } + /** * Get the most recent notice posted by this user, if any. * @@ -187,26 +215,29 @@ class Profile extends Memcached_DataObject function _streamTaggedDirect($tag, $offset, $limit, $since_id, $max_id) { // XXX It would be nice to do this without a join + // (necessary to do it efficiently on accounts with long history) $notice = new Notice(); $query = "select id from notice join notice_tag on id=notice_id where tag='". $notice->escape($tag) . - "' and profile_id=" . $notice->escape($this->id); + "' and profile_id=" . intval($this->id); - if ($since_id != 0) { - $query .= " and id > $since_id"; + $since = Notice::whereSinceId($since_id, 'id', 'notice.created'); + if ($since) { + $query .= " and ($since)"; } - if ($max_id != 0) { - $query .= " and id < $max_id"; + $max = Notice::whereMaxId($max_id, 'id', 'notice.created'); + if ($max) { + $query .= " and ($max)"; } - $query .= ' order by id DESC'; + $query .= ' order by notice.created DESC, id DESC'; if (!is_null($offset)) { - $query .= " LIMIT $limit OFFSET $offset"; + $query .= " LIMIT " . intval($limit) . " OFFSET " . intval($offset); } $notice->query($query); @@ -224,58 +255,22 @@ class Profile extends Memcached_DataObject { $notice = new Notice(); - // Temporary hack until notice_profile_id_idx is updated - // to (profile_id, id) instead of (profile_id, created, id). - // It's been falling back to PRIMARY instead, which is really - // very inefficient for a profile that hasn't posted in a few - // months. Even though forcing the index will cause a filesort, - // it's usually going to be better. - if (common_config('db', 'type') == 'mysql') { - $index = ''; - $query = - "select id from notice force index (notice_profile_id_idx) ". - "where profile_id=" . $notice->escape($this->id); + $notice->profile_id = $this->id; - if ($since_id != 0) { - $query .= " and id > $since_id"; - } + $notice->selectAdd(); + $notice->selectAdd('id'); - if ($max_id != 0) { - $query .= " and id < $max_id"; - } + Notice::addWhereSinceId($notice, $since_id); + Notice::addWhereMaxId($notice, $max_id); - $query .= ' order by id DESC'; + $notice->orderBy('created DESC, id DESC'); - if (!is_null($offset)) { - $query .= " LIMIT $limit OFFSET $offset"; - } - - $notice->query($query); - } else { - $index = ''; - - $notice->profile_id = $this->id; - - $notice->selectAdd(); - $notice->selectAdd('id'); - - if ($since_id != 0) { - $notice->whereAdd('id > ' . $since_id); - } - - if ($max_id != 0) { - $notice->whereAdd('id <= ' . $max_id); - } - - $notice->orderBy('id DESC'); - - if (!is_null($offset)) { - $notice->limit($offset, $limit); - } - - $notice->find(); + if (!is_null($offset)) { + $notice->limit($offset, $limit); } + $notice->find(); + $ids = array(); while ($notice->fetch()) { @@ -352,87 +347,40 @@ class Profile extends Memcached_DataObject function getSubscriptions($offset=0, $limit=null) { - $qry = - 'SELECT profile.* ' . - 'FROM profile JOIN subscription ' . - 'ON profile.id = subscription.subscribed ' . - 'WHERE subscription.subscriber = %d ' . - 'AND subscription.subscribed != subscription.subscriber ' . - 'ORDER BY subscription.created DESC '; + $subs = Subscription::bySubscriber($this->id, + $offset, + $limit); - if ($offset>0 && !is_null($limit)){ - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } + $profiles = array(); + + while ($subs->fetch()) { + $profiles[] = Profile::staticGet($subs->subscribed); } - $profile = new Profile(); - - $profile->query(sprintf($qry, $this->id)); - - return $profile; + return new ArrayWrapper($profiles); } function getSubscribers($offset=0, $limit=null) { - $qry = - 'SELECT profile.* ' . - 'FROM profile JOIN subscription ' . - 'ON profile.id = subscription.subscriber ' . - 'WHERE subscription.subscribed = %d ' . - 'AND subscription.subscribed != subscription.subscriber ' . - 'ORDER BY subscription.created DESC '; + $subs = Subscription::bySubscribed($this->id, + $offset, + $limit); - if ($offset>0 && !is_null($limit)){ - if ($offset) { - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - } + $profiles = array(); + + while ($subs->fetch()) { + $profiles[] = Profile::staticGet($subs->subscriber); } - $profile = new Profile(); - - $cnt = $profile->query(sprintf($qry, $this->id)); - - return $profile; - } - - function getApplications($offset = 0, $limit = null) - { - $qry = - 'SELECT a.* ' . - 'FROM oauth_application_user u, oauth_application a ' . - 'WHERE u.profile_id = %d ' . - 'AND a.id = u.application_id ' . - 'AND u.access_type > 0 ' . - 'ORDER BY u.created DESC '; - - if ($offset > 0) { - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - } - - $application = new Oauth_application(); - - $cnt = $application->query(sprintf($qry, $this->id)); - - return $application; + return new ArrayWrapper($profiles); } function subscriptionCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cnt = $c->get(common_cache_key('profile:subscription_count:'.$this->id)); + $cnt = $c->get(Cache::key('profile:subscription_count:'.$this->id)); if (is_integer($cnt)) { return (int) $cnt; } @@ -446,7 +394,7 @@ class Profile extends Memcached_DataObject $cnt = ($cnt > 0) ? $cnt - 1 : $cnt; if (!empty($c)) { - $c->set(common_cache_key('profile:subscription_count:'.$this->id), $cnt); + $c->set(Cache::key('profile:subscription_count:'.$this->id), $cnt); } return $cnt; @@ -454,9 +402,9 @@ class Profile extends Memcached_DataObject function subscriberCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cnt = $c->get(common_cache_key('profile:subscriber_count:'.$this->id)); + $cnt = $c->get(Cache::key('profile:subscriber_count:'.$this->id)); if (is_integer($cnt)) { return (int) $cnt; } @@ -468,17 +416,75 @@ class Profile extends Memcached_DataObject $cnt = (int) $sub->count('distinct subscriber'); if (!empty($c)) { - $c->set(common_cache_key('profile:subscriber_count:'.$this->id), $cnt); + $c->set(Cache::key('profile:subscriber_count:'.$this->id), $cnt); } return $cnt; } + /** + * Is this profile subscribed to another profile? + * + * @param Profile $other + * @return boolean + */ + function isSubscribed($other) + { + return Subscription::exists($this, $other); + } + + /** + * Are these two profiles subscribed to each other? + * + * @param Profile $other + * @return boolean + */ + function mutuallySubscribed($other) + { + return $this->isSubscribed($other) && + $other->isSubscribed($this); + } + + function hasFave($notice) + { + $cache = Cache::instance(); + + // XXX: Kind of a hack. + + if (!empty($cache)) { + // This is the stream of favorite notices, in rev chron + // order. This forces it into cache. + + $ids = Fave::stream($this->id, 0, NOTICE_CACHE_WINDOW); + + // If it's in the list, then it's a fave + + if (in_array($notice->id, $ids)) { + return true; + } + + // If we're not past the end of the cache window, + // then the cache has all available faves, so this one + // is not a fave. + + if (count($ids) < NOTICE_CACHE_WINDOW) { + return false; + } + + // Otherwise, cache doesn't have all faves; + // fall through to the default + } + + $fave = Fave::pkeyGet(array('user_id' => $this->id, + 'notice_id' => $notice->id)); + return ((is_null($fave)) ? false : true); + } + function faveCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cnt = $c->get(common_cache_key('profile:fave_count:'.$this->id)); + $cnt = $c->get(Cache::key('profile:fave_count:'.$this->id)); if (is_integer($cnt)) { return (int) $cnt; } @@ -489,7 +495,7 @@ class Profile extends Memcached_DataObject $cnt = (int) $faves->count('distinct notice_id'); if (!empty($c)) { - $c->set(common_cache_key('profile:fave_count:'.$this->id), $cnt); + $c->set(Cache::key('profile:fave_count:'.$this->id), $cnt); } return $cnt; @@ -497,10 +503,10 @@ class Profile extends Memcached_DataObject function noticeCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cnt = $c->get(common_cache_key('profile:notice_count:'.$this->id)); + $cnt = $c->get(Cache::key('profile:notice_count:'.$this->id)); if (is_integer($cnt)) { return (int) $cnt; } @@ -511,41 +517,55 @@ class Profile extends Memcached_DataObject $cnt = (int) $notices->count('distinct id'); if (!empty($c)) { - $c->set(common_cache_key('profile:notice_count:'.$this->id), $cnt); + $c->set(Cache::key('profile:notice_count:'.$this->id), $cnt); } return $cnt; } + function blowFavesCache() + { + $cache = Cache::instance(); + if ($cache) { + // Faves don't happen chronologically, so we need to blow + // ;last cache, too + $cache->delete(Cache::key('fave:ids_by_user:'.$this->id)); + $cache->delete(Cache::key('fave:ids_by_user:'.$this->id.';last')); + $cache->delete(Cache::key('fave:ids_by_user_own:'.$this->id)); + $cache->delete(Cache::key('fave:ids_by_user_own:'.$this->id.';last')); + } + $this->blowFaveCount(); + } + function blowSubscriberCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $c->delete(common_cache_key('profile:subscriber_count:'.$this->id)); + $c->delete(Cache::key('profile:subscriber_count:'.$this->id)); } } function blowSubscriptionCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $c->delete(common_cache_key('profile:subscription_count:'.$this->id)); + $c->delete(Cache::key('profile:subscription_count:'.$this->id)); } } function blowFaveCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $c->delete(common_cache_key('profile:fave_count:'.$this->id)); + $c->delete(Cache::key('profile:fave_count:'.$this->id)); } } function blowNoticeCount() { - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $c->delete(common_cache_key('profile:notice_count:'.$this->id)); + $c->delete(Cache::key('profile:notice_count:'.$this->id)); } } @@ -572,9 +592,11 @@ class Profile extends Memcached_DataObject $this->_deleteMessages(); $this->_deleteTags(); $this->_deleteBlocks(); + $this->delete_avatars(); - $related = array('Avatar', - 'Reply', + // Warning: delete() will run on the batch objects, + // not on individual objects. + $related = array('Reply', 'Group_member', ); Event::handle('ProfileDeleteRelated', array($this, &$related)); @@ -710,43 +732,52 @@ class Profile extends Memcached_DataObject function grantRole($name) { - $role = new Profile_role(); + if (Event::handle('StartGrantRole', array($this, $name))) { - $role->profile_id = $this->id; - $role->role = $name; - $role->created = common_sql_now(); + $role = new Profile_role(); - $result = $role->insert(); + $role->profile_id = $this->id; + $role->role = $name; + $role->created = common_sql_now(); - if (!$result) { - common_log_db_error($role, 'INSERT', __FILE__); - return false; + $result = $role->insert(); + + if (!$result) { + throw new Exception("Can't save role '$name' for profile '{$this->id}'"); + } + + Event::handle('EndGrantRole', array($this, $name)); } - return true; + return $result; } function revokeRole($name) { - $role = Profile_role::pkeyGet(array('profile_id' => $this->id, - 'role' => $name)); + if (Event::handle('StartRevokeRole', array($this, $name))) { - if (empty($role)) { - // TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. - // TRANS: %1$s is the role name, %2$s is the user ID (number). - throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; does not exist.'),$name, $this->id)); + $role = Profile_role::pkeyGet(array('profile_id' => $this->id, + 'role' => $name)); + + if (empty($role)) { + // TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. + // TRANS: %1$s is the role name, %2$s is the user ID (number). + throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; does not exist.'),$name, $this->id)); + } + + $result = $role->delete(); + + if (!$result) { + common_log_db_error($role, 'DELETE', __FILE__); + // TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. + // TRANS: %1$s is the role name, %2$s is the user ID (number). + throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; database error.'),$name, $this->id)); + } + + Event::handle('EndRevokeRole', array($this, $name)); + + return true; } - - $result = $role->delete(); - - if (!$result) { - common_log_db_error($role, 'DELETE', __FILE__); - // TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. - // TRANS: %1$s is the role name, %2$s is the user ID (number). - throw new Exception(sprintf(_('Cannot revoke role "%1$s" for user #%2$d; database error.'),$name, $this->id)); - } - - return true; } function isSandboxed() @@ -790,13 +821,14 @@ class Profile extends Memcached_DataObject * @param $right string Name of the right, usually a constant in class Right * @return boolean whether the user has the right in question */ - function hasRight($right) { $result = false; + if ($this->hasRole(Profile_role::DELETED)) { return false; } + if (Event::handle('UserRightsCheck', array($this, $right, &$result))) { switch ($right) { @@ -805,6 +837,7 @@ class Profile extends Memcached_DataObject case Right::SANDBOXUSER: case Right::SILENCEUSER: case Right::DELETEUSER: + case Right::DELETEGROUP: $result = $this->hasRole(Profile_role::MODERATOR); break; case Right::CONFIGURESITE: @@ -960,4 +993,25 @@ class Profile extends Memcached_DataObject return $feed; } + + static function fromURI($uri) + { + $profile = null; + + if (Event::handle('StartGetProfileFromURI', array($uri, &$profile))) { + // Get a local user or remote (OMB 0.1) profile + $user = User::staticGet('uri', $uri); + if (!empty($user)) { + $profile = $user->getProfile(); + } else { + $remote_profile = Remote_profile::staticGet('uri', $uri); + if (!empty($remote_profile)) { + $profile = Profile::staticGet('id', $remote_profile->profile_id); + } + } + Event::handle('EndGetProfileFromURI', array($uri, $profile)); + } + + return $profile; + } } diff --git a/classes/Profile_tag.php b/classes/Profile_tag.php index 0a1ad9cd6b..ab6bab0964 100644 --- a/classes/Profile_tag.php +++ b/classes/Profile_tag.php @@ -23,7 +23,6 @@ class Profile_tag extends Memcached_DataObject ###END_AUTOCODE static function getTags($tagger, $tagged) { - $tags = array(); # XXX: store this in memcached @@ -44,7 +43,6 @@ class Profile_tag extends Memcached_DataObject } static function setTags($tagger, $tagged, $newtags) { - $newtags = array_unique($newtags); $oldtags = Profile_tag::getTags($tagger, $tagged); diff --git a/classes/Queue_item.php b/classes/Queue_item.php index c7e17be6e8..007d4ed232 100644 --- a/classes/Queue_item.php +++ b/classes/Queue_item.php @@ -32,7 +32,7 @@ class Queue_item extends Memcached_DataObject if ($transports) { if (is_array($transports)) { // @fixme use safer escaping - $list = implode("','", array_map('addslashes', $transports)); + $list = implode("','", array_map(array($qi, 'escape'), $transports)); $qi->whereAdd("transport in ('$list')"); } else { $qi->transport = $transports; diff --git a/classes/Remember_me.php b/classes/Remember_me.php index 8dc29bfa39..3df7a99831 100644 --- a/classes/Remember_me.php +++ b/classes/Remember_me.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Remember_me extends Memcached_DataObject +class Remember_me extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -16,11 +16,15 @@ class Remember_me extends Memcached_DataObject /* Static get */ function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('Remember_me',$k,$v); } + { + return Memcached_DataObject::staticGet('Remember_me',$k,$v); + } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE function sequenceKey() - { return array(false, false); } + { + return array(false, false); + } } diff --git a/classes/Remote_profile.php b/classes/Remote_profile.php index 77bfbcd99c..1672e9f956 100644 --- a/classes/Remote_profile.php +++ b/classes/Remote_profile.php @@ -24,7 +24,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Remote_profile extends Memcached_DataObject +class Remote_profile extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -32,8 +32,8 @@ class Remote_profile extends Memcached_DataObject public $__table = 'remote_profile'; // table name public $id; // int(4) primary_key not_null public $uri; // varchar(255) unique_key - public $postnoticeurl; // varchar(255) - public $updateprofileurl; // varchar(255) + public $postnoticeurl; // varchar(255) + public $updateprofileurl; // varchar(255) public $created; // datetime() not_null public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP @@ -43,7 +43,7 @@ class Remote_profile extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - + function hasRight($right) { $profile = Profile::staticGet($this->id); diff --git a/classes/Reply.php b/classes/Reply.php index dc6296bda3..371c16cf48 100644 --- a/classes/Reply.php +++ b/classes/Reply.php @@ -50,15 +50,10 @@ class Reply extends Memcached_DataObject $reply = new Reply(); $reply->profile_id = $user_id; - if ($since_id != 0) { - $reply->whereAdd('notice_id > ' . $since_id); - } + Notice::addWhereSinceId($reply, $since_id, 'notice_id', 'modified'); + Notice::addWhereMaxId($reply, $max_id, 'notice_id', 'modified'); - if ($max_id != 0) { - $reply->whereAdd('notice_id < ' . $max_id); - } - - $reply->orderBy('notice_id DESC'); + $reply->orderBy('modified DESC, notice_id DESC'); if (!is_null($offset)) { $reply->limit($offset, $limit); diff --git a/classes/Safe_DataObject.php b/classes/Safe_DataObject.php index f0ea6b136f..891e33a668 100644 --- a/classes/Safe_DataObject.php +++ b/classes/Safe_DataObject.php @@ -287,4 +287,3 @@ class Safe_DataObject extends DB_DataObject return Safe_DataObject::$iniCache[$key]; } } - diff --git a/classes/Schema_version.php b/classes/Schema_version.php new file mode 100644 index 0000000000..6b464c6d1d --- /dev/null +++ b/classes/Schema_version.php @@ -0,0 +1,22 @@ +<?php +/** + * Table Definition for schema_version + */ + +class Schema_version extends Memcached_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'schema_version'; // table name + public $table_name; // varchar(64) primary_key not_null + public $checksum; // varchar(64) not_null + public $modified; // datetime() not_null + + /* Static get */ + function staticGet($k,$v=null) + { return Memcached_DataObject::staticGet('Schema_version',$k,$v); } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE +} diff --git a/classes/Session.php b/classes/Session.php index 2422f8b68e..e1c83ad4dc 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -178,6 +178,18 @@ class Session extends Memcached_DataObject $result = session_set_save_handler('Session::open', 'Session::close', 'Session::read', 'Session::write', 'Session::destroy', 'Session::gc'); self::logdeb("save handlers result = $result"); + + // PHP 5.3 with APC ends up destroying a bunch of object stuff before the session + // save handlers get called on request teardown. + // Registering an explicit shutdown function should take care of this before + // everything breaks on us. + register_shutdown_function('Session::cleanup'); + return $result; } + + static function cleanup() + { + session_write_close(); + } } diff --git a/classes/Sms_carrier.php b/classes/Sms_carrier.php index ffa12de29e..500cb4f043 100644 --- a/classes/Sms_carrier.php +++ b/classes/Sms_carrier.php @@ -4,7 +4,7 @@ */ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Sms_carrier extends Memcached_DataObject +class Sms_carrier extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -22,7 +22,7 @@ class Sms_carrier extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - + function toEmailAddress($sms) { return sprintf($this->email_pattern, $sms); diff --git a/classes/Status_network.php b/classes/Status_network.php index 5680c14584..5d01e72ccc 100644 --- a/classes/Status_network.php +++ b/classes/Status_network.php @@ -167,18 +167,17 @@ class Status_network extends Safe_DataObject ' WHERE nickname = ' . $this->_quote($this->nickname); $orig->decache(); $result = $this->query($qry); - if ($result) { - $this->encache(); - } + $this->decache(); + return $result; } - + function delete() { $this->decache(); # while we still have the values! return parent::delete(); } - + /** * @param string $servername hostname * @param string $wildcard hostname suffix to match wildcard config @@ -308,27 +307,20 @@ class Status_network extends Safe_DataObject */ function getTags() { - $result = array(); - - $tags = new Status_network_tag(); - $tags->site_id = $this->site_id; - if ($tags->find()) { - while ($tags->fetch()) { - $result[] = $tags->tag; - } - } + $result = Status_network_tag::getTags($this->site_id); // XXX : for backwards compatibility if (empty($result)) { return explode('|', $this->tags); } - + return $result; } /** * Save a given set of tags * @param array tags + * @fixme only add/remove differentials */ function setTags($tags) { @@ -339,7 +331,7 @@ class Status_network extends Safe_DataObject $snt->site_id = $this->site_id; $snt->tag = $tag; $snt->created = common_sql_now(); - + $id = $snt->insert(); if (!$id) { // TRANS: Exception thrown when a tag cannot be saved. @@ -364,7 +356,7 @@ class Status_network extends Safe_DataObject $tag->free(); } - + /** * Check if this site record has a particular meta-info tag attached. * @param string $tag diff --git a/classes/Status_network_tag.php b/classes/Status_network_tag.php index 18c508bc8e..2273ecb2e5 100644 --- a/classes/Status_network_tag.php +++ b/classes/Status_network_tag.php @@ -26,7 +26,7 @@ class Status_network_tag extends Safe_DataObject public $__table = 'status_network_tag'; // table name public $site_id; // int(4) primary_key not_null - public $tag; // varchar(64) primary_key not_null + public $tag; // varchar(64) primary_key not_null public $created; // datetime() not_null @@ -34,7 +34,7 @@ class Status_network_tag extends Safe_DataObject { global $config; global $_DB_DATAOBJECT; - + $sn = new Status_network(); $sn->_connect(); @@ -43,7 +43,6 @@ class Status_network_tag extends Safe_DataObject $this->_connect(); } - /* Static get */ function staticGet($k,$v=null) { @@ -61,9 +60,73 @@ class Status_network_tag extends Safe_DataObject ###END_AUTOCODE - function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Status_network_tag', $kv); } + + /** + * Fetch the (possibly cached) tag entries for the given site id. + * Uses status_network's cache settings. + * + * @param string $site_id + * @return array of strings + */ + static function getTags($site_id) + { + $key = 'status_network_tags:' . $site_id; + if (Status_network::$cache) { + $packed = Status_network::$cache->get($key); + if (is_string($packed)) { + if ($packed == '') { + return array(); + } else { + return explode('|', $packed); + } + } + } + + $result = array(); + + $tags = new Status_network_tag(); + $tags->site_id = $site_id; + if ($tags->find()) { + while ($tags->fetch()) { + $result[] = $tags->tag; + } + } + + if (Status_network::$cache) { + $packed = implode('|', $result); + Status_network::$cache->set($key, $packed, 0, 3600); + } + + return $result; + } + + /** + * Drop the cached tag entries for this site. + * Needed after inserting/deleting a tag entry. + */ + function decache() + { + $key = 'status_network_tags:' . $this->site_id; + if (Status_network::$cache) { + Status_network::$cache->delete($key); + } + } + + function insert() + { + $ret = parent::insert(); + $this->decache(); + return $ret; + } + + function delete() + { + $ret = parent::delete(); + $this->decache(); + return $ret; + } } diff --git a/classes/Subscription.php b/classes/Subscription.php index 0225ed4df9..1d4f37929b 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -26,6 +26,8 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; class Subscription extends Memcached_DataObject { + const CACHE_WINDOW = 201; + ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -91,6 +93,9 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); + self::blow('subscription:by-subscriber:'.$subscriber->id); + self::blow('subscription:by-subscribed:'.$other->id); + $subscriber->blowSubscriptionCount(); $other->blowSubscriberCount(); @@ -220,6 +225,9 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); + self::blow('subscription:by-subscriber:'.$subscriber->id); + self::blow('subscription:by-subscribed:'.$other->id); + $subscriber->blowSubscriptionCount(); $other->blowSubscriberCount(); @@ -235,4 +243,185 @@ class Subscription extends Memcached_DataObject 'subscribed' => $other->id)); return (empty($sub)) ? false : true; } + + function asActivity() + { + $subscriber = Profile::staticGet('id', $this->subscriber); + $subscribed = Profile::staticGet('id', $this->subscribed); + + $act = new Activity(); + + $act->verb = ActivityVerb::FOLLOW; + + // XXX: rationalize this with the URL + + $act->id = TagURI::mint('follow:%d:%d:%s', + $subscriber->id, + $subscribed->id, + common_date_iso8601($this->created)); + + $act->time = strtotime($this->created); + // TRANS: Activity tile when subscribing to another person. + $act->title = _("Follow"); + // TRANS: Notification given when one person starts following another. + // TRANS: %1$s is the subscriber, %2$s is the subscribed. + $act->content = sprintf(_('%1$s is now following %2$s.'), + $subscriber->getBestName(), + $subscribed->getBestName()); + + $act->actor = ActivityObject::fromProfile($subscriber); + $act->objects[] = ActivityObject::fromProfile($subscribed); + + $url = common_local_url('AtomPubShowSubscription', + array('subscriber' => $subscriber->id, + 'subscribed' => $subscribed->id)); + + $act->selfLink = $url; + $act->editLink = $url; + + return $act; + } + + /** + * Stream of subscriptions with the same subscriber + * + * Useful for showing pages that list subscriptions in reverse + * chronological order. Has offset & limit to make paging + * easy. + * + * @param integer $subscriberId Profile ID of the subscriber + * @param integer $offset Offset from latest + * @param integer $limit Maximum number to fetch + * + * @return Subscription stream of subscriptions; use fetch() to iterate + */ + + static function bySubscriber($subscriberId, + $offset = 0, + $limit = PROFILES_PER_PAGE) + { + if ($offset + $limit > self::CACHE_WINDOW) { + return new ArrayWrapper(self::realBySubscriber($subscriberId, + $offset, + $limit)); + } else { + $key = 'subscription:by-subscriber:'.$subscriberId; + $window = self::cacheGet($key); + if ($window === false) { + $window = self::realBySubscriber($subscriberId, + 0, + self::CACHE_WINDOW); + self::cacheSet($key, $window); + } + return new ArrayWrapper(array_slice($window, + $offset, + $limit)); + } + } + + private static function realBySubscriber($subscriberId, + $offset, + $limit) + { + $sub = new Subscription(); + + $sub->subscriber = $subscriberId; + + $sub->whereAdd('subscribed != ' . $subscriberId); + + $sub->orderBy('created DESC'); + $sub->limit($offset, $limit); + + $sub->find(); + + $subs = array(); + + while ($sub->fetch()) { + $subs[] = clone($sub); + } + + return $subs; + } + + /** + * Stream of subscriptions with the same subscribed profile + * + * Useful for showing pages that list subscribers in reverse + * chronological order. Has offset & limit to make paging + * easy. + * + * @param integer $subscribedId Profile ID of the subscribed + * @param integer $offset Offset from latest + * @param integer $limit Maximum number to fetch + * + * @return Subscription stream of subscriptions; use fetch() to iterate + */ + + static function bySubscribed($subscribedId, + $offset = 0, + $limit = PROFILES_PER_PAGE) + { + if ($offset + $limit > self::CACHE_WINDOW) { + return new ArrayWrapper(self::realBySubscribed($subscribedId, + $offset, + $limit)); + } else { + $key = 'subscription:by-subscribed:'.$subscribedId; + $window = self::cacheGet($key); + if ($window === false) { + $window = self::realBySubscribed($subscribedId, + 0, + self::CACHE_WINDOW); + self::cacheSet($key, $window); + } + return new ArrayWrapper(array_slice($window, + $offset, + $limit)); + } + } + + private static function realBySubscribed($subscribedId, + $offset, + $limit) + { + $sub = new Subscription(); + + $sub->subscribed = $subscribedId; + + $sub->whereAdd('subscriber != ' . $subscribedId); + + $sub->orderBy('created DESC'); + $sub->limit($offset, $limit); + + $sub->find(); + + $subs = array(); + + while ($sub->fetch()) { + $subs[] = clone($sub); + } + + return $subs; + } + + /** + * Flush cached subscriptions when subscription is updated + * + * Because we cache subscriptions, it's useful to flush them + * here. + * + * @param mixed $orig Original version of object + * + * @return boolean success flag. + */ + + function update($orig=null) + { + $result = parent::update($orig); + + self::blow('subscription:by-subscriber:'.$this->subscriber); + self::blow('subscription:by-subscribed:'.$this->subscribed); + + return $result; + } } diff --git a/classes/User.php b/classes/User.php index 70e09c1dc4..04b9b4cc68 100644 --- a/classes/User.php +++ b/classes/User.php @@ -79,7 +79,8 @@ class User extends Memcached_DataObject function isSubscribed($other) { - return Subscription::exists($this->getProfile(), $other); + $profile = $this->getProfile(); + return $profile->isSubscribed($other); } // 'update' won't write key columns, so we have to do it ourselves. @@ -110,6 +111,16 @@ class User extends Memcached_DataObject return $result; } + /** + * Check whether the given nickname is potentially usable, or if it's + * excluded by any blacklists on this system. + * + * WARNING: INPUT IS NOT VALIDATED OR NORMALIZED. NON-NORMALIZED INPUT + * OR INVALID INPUT MAY LEAD TO FALSE RESULTS. + * + * @param string $nickname + * @return boolean true if clear, false if blacklisted + */ static function allowed_nickname($nickname) { // XXX: should already be validated for size, content, etc. @@ -250,6 +261,19 @@ class User extends Memcached_DataObject $user->inboxed = 1; + // Set default-on options here, otherwise they'll be disabled + // initially for sites using caching, since the initial encache + // doesn't know about the defaults in the database. + $user->emailnotifysub = 1; + $user->emailnotifyfav = 1; + $user->emailnotifynudge = 1; + $user->emailnotifymsg = 1; + $user->emailnotifyattn = 1; + $user->emailmicroid = 1; + $user->emailpost = 1; + $user->jabbermicroid = 1; + $user->viewdesigns = 1; + $user->created = common_sql_now(); if (Event::handle('StartUserRegister', array(&$user, &$profile))) { @@ -264,7 +288,13 @@ class User extends Memcached_DataObject } $user->id = $id; - $user->uri = common_user_uri($user); + + if (!empty($uri)) { + $user->uri = $uri; + } else { + $user->uri = common_user_uri($user); + } + if (!empty($password)) { // may not have a password for OpenID users $user->password = common_munge_password($password, $id); } @@ -388,43 +418,14 @@ class User extends Memcached_DataObject function hasFave($notice) { - $cache = common_memcache(); - - // XXX: Kind of a hack. - - if ($cache) { - // This is the stream of favorite notices, in rev chron - // order. This forces it into cache. - - $ids = Fave::stream($this->id, 0, NOTICE_CACHE_WINDOW); - - // If it's in the list, then it's a fave - - if (in_array($notice->id, $ids)) { - return true; - } - - // If we're not past the end of the cache window, - // then the cache has all available faves, so this one - // is not a fave. - - if (count($ids) < NOTICE_CACHE_WINDOW) { - return false; - } - - // Otherwise, cache doesn't have all faves; - // fall through to the default - } - - $fave = Fave::pkeyGet(array('user_id' => $this->id, - 'notice_id' => $notice->id)); - return ((is_null($fave)) ? false : true); + $profile = $this->getProfile(); + return $profile->hasFave($notice); } function mutuallySubscribed($other) { - return $this->isSubscribed($other) && - $other->isSubscribed($this); + $profile = $this->getProfile(); + return $profile->mutuallySubscribed($other); } function mutuallySubscribedUsers() @@ -487,17 +488,8 @@ class User extends Memcached_DataObject function blowFavesCache() { - $cache = common_memcache(); - if ($cache) { - // Faves don't happen chronologically, so we need to blow - // ;last cache, too - $cache->delete(common_cache_key('fave:ids_by_user:'.$this->id)); - $cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last')); - $cache->delete(common_cache_key('fave:ids_by_user_own:'.$this->id)); - $cache->delete(common_cache_key('fave:ids_by_user_own:'.$this->id.';last')); - } $profile = $this->getProfile(); - $profile->blowFaveCount(); + $profile->blowFavesCache(); } function getSelfTags() @@ -547,6 +539,9 @@ class User extends Memcached_DataObject if (Subscription::exists($other, $self)) { Subscription::cancel($other, $self); } + if (Subscription::exists($self, $other)) { + Subscription::cancel($self, $other); + } $block->query('COMMIT'); @@ -755,19 +750,14 @@ class User extends Memcached_DataObject $notice->profile_id = $this->id; $notice->whereAdd('repeat_of IS NOT NULL'); - $notice->orderBy('id DESC'); + $notice->orderBy('created DESC, id DESC'); if (!is_null($offset)) { $notice->limit($offset, $limit); } - if ($since_id != 0) { - $notice->whereAdd('id > ' . $since_id); - } - - if ($max_id != 0) { - $notice->whereAdd('id <= ' . $max_id); - } + Notice::addWhereSinceId($notice, $since_id); + Notice::addWhereMaxId($notice, $max_id); $ids = array(); @@ -800,17 +790,17 @@ class User extends Memcached_DataObject 'FROM notice original JOIN notice rept ON original.id = rept.repeat_of ' . 'WHERE original.profile_id = ' . $this->id . ' '; - if ($since_id != 0) { - $qry .= 'AND original.id > ' . $since_id . ' '; + $since = Notice::whereSinceId($since_id, 'original.id', 'original.created'); + if ($since) { + $qry .= "AND ($since) "; } - if ($max_id != 0) { - $qry .= 'AND original.id <= ' . $max_id . ' '; + $max = Notice::whereMaxId($max_id, 'original.id', 'original.created'); + if ($max) { + $qry .= "AND ($max) "; } - // NOTE: we sort by fave time, not by notice time! - - $qry .= 'ORDER BY original.id DESC '; + $qry .= 'ORDER BY original.created, original.id DESC '; if (!is_null($offset)) { $qry .= "LIMIT $limit OFFSET $offset"; @@ -886,4 +876,126 @@ class User extends Memcached_DataObject return $owner; } + + /** + * Pull the primary site account to use in single-user mode. + * If a valid user nickname is listed in 'singleuser':'nickname' + * in the config, this will be used; otherwise the site owner + * account is taken by default. + * + * @return User + * @throws ServerException if no valid single user account is present + * @throws ServerException if called when not in single-user mode + */ + static function singleUser() + { + if (common_config('singleuser', 'enabled')) { + + $user = null; + + $nickname = common_config('singleuser', 'nickname'); + + if (!empty($nickname)) { + $user = User::staticGet('nickname', $nickname); + } + + // if there was no nickname or no user by that nickname, + // try the site owner. + + if (empty($user)) { + $user = User::siteOwner(); + } + + if (!empty($user)) { + return $user; + } else { + // TRANS: Server exception. + throw new ServerException(_('No single user defined for single-user mode.')); + } + } else { + // TRANS: Server exception. + throw new ServerException(_('Single-user mode code called when not enabled.')); + } + } + + /** + * This is kind of a hack for using external setup code that's trying to + * build single-user sites. + * + * Will still return a username if the config singleuser/nickname is set + * even if the account doesn't exist, which normally indicates that the + * site is horribly misconfigured. + * + * At the moment, we need to let it through so that router setup can + * complete, otherwise we won't be able to create the account. + * + * This will be easier when we can more easily create the account and + * *then* switch the site to 1user mode without jumping through hoops. + * + * @return string + * @throws ServerException if no valid single user account is present + * @throws ServerException if called when not in single-user mode + */ + static function singleUserNickname() + { + try { + $user = User::singleUser(); + return $user->nickname; + } catch (Exception $e) { + if (common_config('singleuser', 'enabled') && common_config('singleuser', 'nickname')) { + common_log(LOG_WARN, "Warning: code attempting to pull single-user nickname when the account does not exist. If this is not setup time, this is probably a bug."); + return common_config('singleuser', 'nickname'); + } + throw $e; + } + } + + /** + * Find and shorten links in the given text using this user's URL shortening + * settings. + * + * By default, links will be left untouched if the text is shorter than the + * configured maximum notice length. Pass true for the $always parameter + * to force all links to be shortened regardless. + * + * Side effects: may save file and file_redirection records for referenced URLs. + * + * @param string $text + * @param boolean $always + * @return string + */ + public function shortenLinks($text, $always=false) + { + return common_shorten_links($text, $always, $this); + } + + /* + * Get a list of OAuth client application that have access to this + * user's account. + */ + function getConnectedApps($offset = 0, $limit = null) + { + $qry = + 'SELECT u.* ' . + 'FROM oauth_application_user u, oauth_application a ' . + 'WHERE u.profile_id = %d ' . + 'AND a.id = u.application_id ' . + 'AND u.access_type > 0 ' . + 'ORDER BY u.created DESC '; + + if ($offset > 0) { + if (common_config('db','type') == 'pgsql') { + $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; + } else { + $qry .= ' LIMIT ' . $offset . ', ' . $limit; + } + } + + $apps = new Oauth_application_user(); + + $cnt = $apps->query(sprintf($qry, $this->id)); + + return $apps; + } + } diff --git a/classes/User_group.php b/classes/User_group.php index 0b83cfd47d..cffc786458 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -100,15 +100,10 @@ class User_group extends Memcached_DataObject $inbox->selectAdd(); $inbox->selectAdd('notice_id'); - if ($since_id != 0) { - $inbox->whereAdd('notice_id > ' . $since_id); - } + Notice::addWhereSinceId($inbox, $since_id, 'notice_id'); + Notice::addWhereMaxId($inbox, $max_id, 'notice_id'); - if ($max_id != 0) { - $inbox->whereAdd('notice_id <= ' . $max_id); - } - - $inbox->orderBy('notice_id DESC'); + $inbox->orderBy('created DESC, notice_id DESC'); if (!is_null($offset)) { $inbox->limit($offset, $limit); @@ -234,6 +229,22 @@ class User_group extends Memcached_DataObject return ($this->fullname) ? $this->fullname : $this->nickname; } + /** + * Gets the full name (if filled) with nickname as a parenthetical, or the nickname alone + * if no fullname is provided. + * + * @return string + */ + function getFancyName() + { + if ($this->fullname) { + // TRANS: Full name of a profile or group followed by nickname in parens + return sprintf(_m('FANCYNAME','%1$s (%2$s)'), $this->fullname, $this->nickname); + } else { + return $this->nickname; + } + } + function getAliases() { $aliases = array(); @@ -465,7 +476,6 @@ class User_group extends Memcached_DataObject } static function register($fields) { - // MAGICALLY put fields into current scope extract($fields); @@ -548,4 +558,61 @@ class User_group extends Memcached_DataObject $group->query('COMMIT'); return $group; } + + /** + * Handle cascading deletion, on the model of notice and profile. + * + * This should handle freeing up cached entries for the group's + * id, nickname, URI, and aliases. There may be other areas that + * are not de-cached in the UI, including the sidebar lists on + * GroupsAction + */ + function delete() + { + if ($this->id) { + + // Safe to delete in bulk for now + + $related = array('Group_inbox', + 'Group_block', + 'Group_member', + 'Related_group'); + + Event::handle('UserGroupDeleteRelated', array($this, &$related)); + + foreach ($related as $cls) { + + $inst = new $cls(); + $inst->group_id = $this->id; + + if ($inst->find()) { + while ($inst->fetch()) { + $dup = clone($inst); + $dup->delete(); + } + } + } + + // And related groups in the other direction... + $inst = new Related_group(); + $inst->related_group_id = $this->id; + $inst->delete(); + + // Aliases and the local_group entry need to be cleared explicitly + // or we'll miss clearing some cache keys; that can make it hard + // to create a new group with one of those names or aliases. + $this->setAliases(array()); + $local = Local_group::staticGet('group_id', $this->id); + if ($local) { + $local->delete(); + } + + // blow the cached ids + self::blow('user_group:notice_ids:%d', $this->id); + + } else { + common_log(LOG_WARN, "Ambiguous user_group->delete(); skipping related tables."); + } + parent::delete(); + } } diff --git a/classes/User_username.php b/classes/User_username.php index 8d99cddd3f..ae7785cc9f 100644 --- a/classes/User_username.php +++ b/classes/User_username.php @@ -18,7 +18,9 @@ class User_username extends Memcached_DataObject /* Static get */ function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('User_username',$k,$v); } + { + return Memcached_DataObject::staticGet('User_username',$k,$v); + } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE @@ -37,6 +39,7 @@ class User_username extends Memcached_DataObject $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{ @@ -57,5 +60,4 @@ class User_username extends Memcached_DataObject function keys() { return array('provider_name' => 'K', 'username' => 'K'); } - } diff --git a/classes/statusnet.ini b/classes/statusnet.ini index b57d862263..d1d2980fd3 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -401,6 +401,18 @@ modified = 384 profile_id = K application_id = K +[oauth_token_association] +profile_id = 129 +application_id = 129 +token = 130 +created = 142 +modified = 384 + +[oauth_token_association__keys] +profile_id = K +application_id = K +token = K + [profile] id = 129 nickname = 130 @@ -497,6 +509,14 @@ replied_id = 1 notice_id = K profile_id = K +[schema_version] +table_name = 130 +checksum = 130 +modified = 384 + +[schema_version__keys] +table_name = K + [session] id = 130 session_data = 34 diff --git a/db/074to080.sql b/db/074to080.sql index ff08191596..e3631e214a 100644 --- a/db/074to080.sql +++ b/db/074to080.sql @@ -107,3 +107,15 @@ create table group_alias ( index group_alias_group_id_idx (group_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table session ( + + id varchar(32) primary key comment 'session ID', + session_data text comment 'session data', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + index session_modified_idx (modified) + +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + diff --git a/db/08to09_pg.sql b/db/08to09_pg.sql index 498a94e68a..d3eb644437 100644 --- a/db/08to09_pg.sql +++ b/db/08to09_pg.sql @@ -120,3 +120,21 @@ create table inbox ( ); +create table user_location_prefs ( + user_id integer not null /*comment 'user who has the preference'*/ references "user" (id), + share_location int default 1 /* comment 'Whether to share location data'*/, + created timestamp not null /*comment 'date this record was created'*/, + modified timestamp /* comment 'date this record was modified'*/, + + primary key (user_id) +); + +create table inbox ( + + user_id integer not null /* comment 'user receiving the notice' */ references "user" (id), + notice_ids bytea /* comment 'packed list of notice ids' */, + + primary key (user_id) + +); + diff --git a/db/096to097.sql b/db/096to097.sql new file mode 100644 index 0000000000..209a3a8811 --- /dev/null +++ b/db/096to097.sql @@ -0,0 +1,26 @@ +-- Add indexes for sorting changes in 0.9.7 + +-- Allows sorting public timeline, api/statuses/repeats, and conversations by timestamp efficiently +alter table notice + add index notice_created_id_is_local_idx (created,id,is_local), + + add index notice_repeat_of_created_id_idx (repeat_of, created, id), + drop index notice_repeatof_idx, + + add index notice_conversation_created_id_idx (conversation, created, id), + drop index notice_conversation_idx; + +-- Allows sorting tag-filtered public timeline by timestamp efficiently +alter table notice_tag add index notice_tag_tag_created_notice_id_idx (tag, created, notice_id); + +-- Needed for sorting reply/mentions timelines +alter table reply add index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id); + +-- Needed for sorting group messages by timestamp +alter table group_inbox add index group_inbox_group_id_created_notice_id_idx (group_id, created, notice_id); + +-- Helps make some reverse role lookups more efficient if there's a lot of assigned accounts +alter table profile_role add index profile_role_role_created_profile_id_idx (role, created, profile_id); + +-- Fix for sorting a user's group memberships by order joined +alter table group_member add index group_member_profile_id_created_idx (profile_id, created); diff --git a/db/core.php b/db/core.php new file mode 100644 index 0000000000..29aa917c1f --- /dev/null +++ b/db/core.php @@ -0,0 +1,1026 @@ +<?php + +/** + * + * Some notes... + * + * Drupal docs don't list a bool type, but it might be nice to use rather than 'tinyint' + * Note however that we use bitfields and things as well in tinyints, and PG's + * "bool" type isn't 100% compatible with 0/1 checks. Just keeping tinyints. :) + * + * decimal <-> numeric + * + * MySQL 'timestamp' columns were formerly used for 'modified' files for their + * auto-updating properties. This didn't play well with changes to cache usage + * in 0.9.x, as we don't know the timestamp value at INSERT time and never + * have a chance to load it up again before caching. For now I'm leaving them + * in, but we may want to clean them up later. + * + * Current code should be setting 'created' and 'modified' fields explicitly; + * this also avoids mismatches between server and client timezone settings. + * + * + * fulltext indexes? + * got one or two things wanting a custom charset setting on a field? + * + * foreign keys are kinda funky... + * those specified in inline syntax (as all in the original .sql) are NEVER ENFORCED on mysql + * those made with an explicit 'foreign key' WITHIN INNODB and IF there's a proper index, do get enforced + * double-check what we've been doing on postgres? + */ + +$schema['profile'] = array( + 'description' => 'local and remote users have profiles', + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'nickname' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'nickname or username'), + 'fullname' => array('type' => 'varchar', 'length' => 255, 'description' => 'display name'), + 'profileurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL, cached so we dont regenerate'), + 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'identifying URL'), + 'bio' => array('type' => 'text', 'description' => 'descriptive biography'), + 'location' => array('type' => 'varchar', 'length' => 255, 'description' => 'physical location'), + 'lat' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'latitude'), + 'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'), + 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), + 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'indexes' => array( + 'profile_nickname_idx' => array('nickname'), + ), + 'fulltext indexes' => array( + 'nickname' => array('nickname', 'fullname', 'location', 'bio', 'homepage') + ), +); + +$schema['avatar'] = array( + 'fields' => array( + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), + 'original' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'uploaded by user or generated?'), + 'width' => array('type' => 'int', 'not null' => true, 'description' => 'image width'), + 'height' => array('type' => 'int', 'not null' => true, 'description' => 'image height'), + 'mediatype' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'file type'), + 'filename' => array('type' => 'varchar', 'length' => 255, 'description' => 'local filename, if local'), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'avatar location'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('profile_id', 'width', 'height'), + 'unique keys' => array( + 'avatar_url_key' => array('url'), + ), + 'foreign keys' => array( + 'avatar_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array( + 'avatar_profile_id_idx' => array('profile_id'), + ), +); + +$schema['sms_carrier'] = array( + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'primary key for SMS carrier'), + 'name' => array('type' => 'varchar', 'length' => 64, 'description' => 'name of the carrier'), + 'email_pattern' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'sprintf pattern for making an email address from a phone number'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'sms_carrier_name_key' => array('name'), + ), +); + +$schema['user'] = array( + 'description' => 'local users', + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), + 'nickname' => array('type' => 'varchar', 'length' => 64, 'description' => 'nickname or username, duped in profile'), + 'password' => array('type' => 'varchar', 'length' => 255, 'description' => 'salted password, can be null for OpenID users'), + 'email' => array('type' => 'varchar', 'length' => 255, 'description' => 'email address for password recovery etc.'), + 'incomingemail' => array('type' => 'varchar', 'length' => 255, 'description' => 'email address for post-by-email'), + 'emailnotifysub' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Notify by email of subscriptions'), + 'emailnotifyfav' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Notify by email of favorites'), + 'emailnotifynudge' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Notify by email of nudges'), + 'emailnotifymsg' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Notify by email of direct messages'), + 'emailnotifyattn' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Notify by email of @-replies'), + 'emailmicroid' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'whether to publish email microid'), + 'language' => array('type' => 'varchar', 'length' => 50, 'description' => 'preferred language'), + 'timezone' => array('type' => 'varchar', 'length' => 50, 'description' => 'timezone'), + 'emailpost' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Post by email'), + 'sms' => array('type' => 'varchar', 'length' => 64, 'description' => 'sms phone number'), + 'carrier' => array('type' => 'int', 'description' => 'foreign key to sms_carrier'), + 'smsnotify' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'whether to send notices to SMS'), + 'smsreplies' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'whether to send notices to SMS on replies'), + 'smsemail' => array('type' => 'varchar', 'length' => 255, 'description' => 'built from sms and carrier'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier, usually a tag URI'), + 'autosubscribe' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'automatically subscribe to users who subscribe to us'), + 'urlshorteningservice' => array('type' => 'varchar', 'length' => 50, 'default' => 'ur1.ca', 'description' => 'service to use for auto-shortening URLs'), + 'inboxed' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'has an inbox been created for this user?'), + 'design_id' => array('type' => 'int', 'description' => 'id of a design'), + 'viewdesigns' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'whether to view user-provided designs'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'user_nickname_key' => array('nickname'), + 'user_email_key' => array('email'), + 'user_incomingemail_key' => array('incomingemail'), + 'user_sms_key' => array('sms'), + 'user_uri_key' => array('uri'), + ), + 'foreign keys' => array( + 'user_id_fkey' => array('profile', array('id' => 'id')), + 'user_carrier_fkey' => array('sms_carrier', array('carrier' => 'id')), + 'user_design_id_fkey' => array('design', array('design_id' => 'id')), + ), + 'indexes' => array( + 'user_smsemail_idx' => array('smsemail'), + ), +); + +$schema['remote_profile'] = array( + 'description' => 'remote people (OMB)', + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier, usually a tag URI'), + 'postnoticeurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL we use for posting notices'), + 'updateprofileurl' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL we use for updates to this profile'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'remote_profile_uri_key' => array('uri'), + ), + 'foreign keys' => array( + 'remote_profile_id_fkey' => array('profile', array('id' => 'id')), + ), +); + +$schema['subscription'] = array( + 'fields' => array( + 'subscriber' => array('type' => 'int', 'not null' => true, 'description' => 'profile listening'), + 'subscribed' => array('type' => 'int', 'not null' => true, 'description' => 'profile being listened to'), + 'jabber' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'deliver jabber messages'), + 'sms' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'deliver sms messages'), + 'token' => array('type' => 'varchar', 'length' => 255, 'description' => 'authorization token'), + 'secret' => array('type' => 'varchar', 'length' => 255, 'description' => 'token secret'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('subscriber', 'subscribed'), + 'indexes' => array( + 'subscription_subscriber_idx' => array('subscriber', 'created'), + 'subscription_subscribed_idx' => array('subscribed', 'created'), + 'subscription_token_idx' => array('token'), + ), +); + +$schema['notice'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'who made the update'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier, usually a tag URI'), + 'content' => array('type' => 'text', 'description' => 'update content'), + 'rendered' => array('type' => 'text', 'description' => 'HTML version of the content'), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL of any attachment (image, video, bookmark, whatever)'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + 'reply_to' => array('type' => 'int', 'description' => 'notice replied to (usually a guess)'), + 'is_local' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'notice was generated by a user'), + 'source' => array('type' => 'varchar', 'length' => 32, 'description' => 'source of comment, like "web", "im", or "clientname"'), + 'conversation' => array('type' => 'int', 'description' => 'id of root notice in this conversation'), + 'lat' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'latitude'), + 'lon' => array('type' => 'numeric', 'precision' => 10, 'scale' => 7, 'description' => 'longitude'), + 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), + 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), + 'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'notice_uri_key' => array('uri'), + ), + 'foreign keys' => array( + 'notice_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + 'notice_reply_to_fkey' => array('notice', array('reply_to' => 'id')), + 'notice_conversation_fkey' => array('conversation', array('conversation' => 'id')), # note... used to refer to notice.id + 'notice_repeat_of_fkey' => array('notice', array('repeat_of' => 'id')), # @fixme: what about repeats of deleted notices? + ), + 'indexes' => array( + 'notice_profile_id_idx' => array('profile_id', 'created', 'id'), + 'notice_conversation_idx' => array('conversation'), + 'notice_created_idx' => array('created'), + 'notice_replyto_idx' => array('reply_to'), + 'notice_repeatof_idx' => array('repeat_of'), + ), + 'fulltext indexes' => array( + 'content' => array('content'), + ) +); + +$schema['notice_source'] = array( + 'fields' => array( + 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'source code'), + 'name' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'name of the source'), + 'url' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'url to link to'), + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'date this record was created'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('code'), +); + +$schema['reply'] = array( + 'fields' => array( + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice that is the reply'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile replied to'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + 'replied_id' => array('type' => 'int', 'description' => 'notice replied to (not used, see notice.reply_to)'), + ), + 'primary key' => array('notice_id', 'profile_id'), + 'foreign keys' => array( + 'reply_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + 'reply_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array( + 'reply_notice_id_idx' => array('notice_id'), + 'reply_profile_id_idx' => array('profile_id'), + 'reply_replied_id_idx' => array('replied_id'), + ), +); + +$schema['fave'] = array( + 'fields' => array( + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice that is the favorite'), + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who likes this notice'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('notice_id', 'user_id'), + 'foreign keys' => array( + 'fave_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + 'fave_user_id_fkey' => array('profile', array('user_id' => 'id')), // note: formerly referenced notice.id, but we can now record remote users' favorites + ), + 'indexes' => array( + 'fave_notice_id_idx' => array('notice_id'), + 'fave_user_id_idx' => array('user_id', 'modified'), + 'fave_modified_idx' => array('modified'), + ), +); + +/* tables for OAuth */ + +$schema['consumer'] = array( + 'description' => 'OAuth consumer record', + 'fields' => array( + 'consumer_key' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'unique identifier, root URL'), + 'consumer_secret' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'secret value'), + 'seed' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'seed for new tokens by this consumer'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('consumer_key'), +); + +$schema['token'] = array( + 'description' => 'OAuth token record', + 'fields' => array( + 'consumer_key' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'unique identifier, root URL'), + 'tok' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'identifying value'), + 'secret' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'secret value'), + 'type' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'request or access'), + 'state' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'for requests, 0 = initial, 1 = authorized, 2 = used'), + 'verifier' => array('type' => 'varchar', 'length' => 255, 'description' => 'verifier string for OAuth 1.0a'), + 'verified_callback' => array('type' => 'varchar', 'length' => 255, 'description' => 'verified callback URL for OAuth 1.0a'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('consumer_key', 'tok'), + 'foreign keys' => array( + 'token_consumer_key_fkey' => array('consumer', array('consumer_key'=> 'consumer_key')), + ), +); + +$schema['nonce'] = array( + 'description' => 'OAuth nonce record', + 'fields' => array( + 'consumer_key' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'unique identifier, root URL'), + 'tok' => array('type' => 'char', 'length' => 32, 'description' => 'buggy old value, ignored'), + 'nonce' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'nonce'), + 'ts' => array('type' => 'datetime', 'not null' => true, 'description' => 'timestamp sent'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('consumer_key', 'ts', 'nonce'), +); + +$schema['oauth_application'] = array( + 'description' => 'OAuth application registration record', + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'owner' => array('type' => 'int', 'not null' => true, 'description' => 'owner of the application'), + 'consumer_key' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'application consumer key'), + 'name' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'name of the application'), + 'description' => array('type' => 'varchar', 'length' => 255, 'description' => 'description of the application'), + 'icon' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'application icon'), + 'source_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'application homepage - used for source link'), + 'organization' => array('type' => 'varchar', 'length' => 255, 'description' => 'name of the organization running the application'), + 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'homepage for the organization'), + 'callback_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'url to redirect to after authentication'), + 'type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'type of app, 1 = browser, 2 = desktop'), + 'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'default access type, bit 1 = read, bit 2 = write'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'oauth_application_name_key' => array('name'), // in the long run, we should perhaps not force these unique, and use another source id + ), + 'foreign keys' => array( + 'oauth_application_owner_fkey' => array('profile', array('owner' => 'id')), // Are remote users allowed to create oauth application records? + 'oauth_application_consumer_key_fkey' => array('consumer', array('consumer_key' => 'consumer_key')), + ), +); + +$schema['oauth_application_user'] = array( + 'fields' => array( + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'user of the application'), + 'application_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the application'), + 'access_type' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'access type, bit 1 = read, bit 2 = write'), + 'token' => array('type' => 'varchar', 'length' => 255, 'description' => 'request or access token'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('profile_id', 'application_id'), + 'foreign keys' => array( + 'oauth_application_user_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + 'oauth_application_user_application_id_fkey' => array('oauth_application', array('application_id' => 'id')), + ), +); + +/* These are used by JanRain OpenID library */ + +$schema['oid_associations'] = array( + 'fields' => array( + 'server_url' => array('type' => 'blob', 'not null' => true), + 'handle' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'default' => ''), // character set latin1, + 'secret' => array('type' => 'blob'), + 'issued' => array('type' => 'int'), + 'lifetime' => array('type' => 'int'), + 'assoc_type' => array('type' => 'varchar', 'length' => 64), + ), + 'primary key' => array(array('server_url', 255), 'handle'), +); + +$schema['oid_nonces'] = array( + 'fields' => array( + 'server_url' => array('type' => 'varchar', 'length' => 2047), + 'timestamp' => array('type' => 'int'), + 'salt' => array('type' => 'char', 'length' => 40), + ), + 'unique keys' => array( + 'oid_nonces_server_url_timestamp_salt_key' => array(array('server_url', 255), 'timestamp', 'salt'), + ), +); + +$schema['confirm_address'] = array( + 'fields' => array( + 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'good random code'), + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who requested confirmation'), + 'address' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'address (email, xmpp, SMS, etc.)'), + 'address_extra' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'carrier ID, for SMS'), + 'address_type' => array('type' => 'varchar', 'length' => 8, 'not null' => true, 'description' => 'address type ("email", "xmpp", "sms")'), + 'claimed' => array('type' => 'datetime', 'description' => 'date this was claimed for queueing'), + 'sent' => array('type' => 'datetime', 'description' => 'date this was sent for queueing'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('code'), + 'foreign keys' => array( + 'confirm_address_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['remember_me'] = array( + 'fields' => array( + 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'good random code'), + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who is logged in'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('code'), + 'foreign keys' => array( + 'remember_me_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['queue_item'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'frame' => array('type' => 'blob', 'not null' => true, 'description' => 'data: object reference or opaque string'), + 'transport' => array('type' => 'varchar', 'length' => 8, 'not null' => true, 'description' => 'queue for what? "email", "xmpp", "sms", "irc", ...'), // @fixme 8 chars is too short; bump up. + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'claimed' => array('type' => 'datetime', 'description' => 'date this item was claimed'), + ), + 'primary key' => array('id'), + 'indexes' => array( + 'queue_item_created_idx' => array('created'), + ), +); + +$schema['notice_tag'] = array( + 'description' => 'Hash tags', + 'fields' => array( + 'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash tag associated with this notice'), + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice tagged'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('tag', 'notice_id'), + 'foreign keys' => array( + 'notice_tag_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + ), + 'indexes' => array( + 'notice_tag_created_idx' => array('created'), + 'notice_tag_notice_id_idx' => array('notice_id'), + ), +); + +/* Synching with foreign services */ + +$schema['foreign_service'] = array( + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'numeric key for service'), + 'name' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'name of the service'), + 'description' => array('type' => 'varchar', 'length' => 255, 'description' => 'description'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'foreign_service_name_key' => array('name'), + ), +); + +$schema['foreign_user'] = array( + 'fields' => array( + 'id' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'unique numeric key on foreign service'), + 'service' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to service'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'identifying URI'), + 'nickname' => array('type' => 'varchar', 'length' => 255, 'description' => 'nickname on foreign service'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id', 'service'), + 'foreign keys' => array( + 'foreign_user_service_fkey' => array('foreign_service', array('service' => 'id')), + ), + 'unique keys' => array( + 'foreign_user_uri_key' => array('uri'), + ), +); + +$schema['foreign_link'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'link to user on this system, if exists'), + 'foreign_id' => array('type' => 'int', 'size' => 'big', 'unsigned' => true, 'not null' => true, 'description' => 'link to user on foreign service, if exists'), + 'service' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to service'), + 'credentials' => array('type' => 'varchar', 'length' => 255, 'description' => 'authc credentials, typically a password'), + 'noticesync' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 1, 'description' => 'notice synchronization, bit 1 = sync outgoing, bit 2 = sync incoming, bit 3 = filter local replies'), + 'friendsync' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 2, 'description' => 'friend synchronization, bit 1 = sync outgoing, bit 2 = sync incoming'), + 'profilesync' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 1, 'description' => 'profile synchronization, bit 1 = sync outgoing, bit 2 = sync incoming'), + 'last_noticesync' => array('type' => 'datetime', 'description' => 'last time notices were imported'), + 'last_friendsync' => array('type' => 'datetime', 'description' => 'last time friends were imported'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id', 'foreign_id', 'service'), + 'foreign keys' => array( + 'foreign_link_user_id_fkey' => array('user', array('user_id' => 'id')), + 'foreign_link_foreign_id_fkey' => array('foreign_user', array('foreign_id' => 'id', 'service' => 'service')), + 'foreign_link_service_fkey' => array('foreign_service', array('service' => 'id')), + ), + 'indexes' => array( + 'foreign_user_user_id_idx' => array('user_id'), + ), +); + +$schema['foreign_subscription'] = array( + 'fields' => array( + 'service' => array('type' => 'int', 'not null' => true, 'description' => 'service where relationship happens'), + 'subscriber' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'subscriber on foreign service'), + 'subscribed' => array('type' => 'int', 'size' => 'big', 'not null' => true, 'description' => 'subscribed user'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('service', 'subscriber', 'subscribed'), + 'foreign keys' => array( + 'foreign_subscription_service_fkey' => array('foreign_service', array('service' => 'id')), + 'foreign_subscription_subscriber_fkey' => array('foreign_user', array('subscriber' => 'id', 'service' => 'service')), + 'foreign_subscription_subscribed_fkey' => array('foreign_user', array('subscribed' => 'id', 'service' => 'service')), + ), + 'indexes' => array( + 'foreign_subscription_subscriber_idx' => array('service', 'subscriber'), + 'foreign_subscription_subscribed_idx' => array('service', 'subscribed'), + ), +); + +$schema['invitation'] = array( + 'fields' => array( + 'code' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'random code for an invitation'), + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'who sent the invitation'), + 'address' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'invitation sent to'), + 'address_type' => array('type' => 'varchar', 'length' => 8, 'not null' => true, 'description' => 'address type ("email", "xmpp", "sms")'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('code'), + 'foreign keys' => array( + 'invitation_user_id_fkey' => array('user', array('user_id' => 'id')), + ), + 'indexes' => array( + 'invitation_address_idx' => array('address', 'address_type'), + 'invitation_user_id_idx' => array('user_id'), + ), +); + +$schema['message'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier'), + 'from_profile' => array('type' => 'int', 'not null' => true, 'description' => 'who the message is from'), + 'to_profile' => array('type' => 'int', 'not null' => true, 'description' => 'who the message is to'), + 'content' => array('type' => 'text', 'description' => 'message content'), + 'rendered' => array('type' => 'text', 'description' => 'HTML version of the content'), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL of any attachment (image, video, bookmark, whatever)'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + 'source' => array('type' => 'varchar', 'length' => 32, 'description' => 'source of comment, like "web", "im", or "clientname"'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'message_uri_key' => array('uri'), + ), + 'foreign keys' => array( + 'message_from_profile_fkey' => array('profile', array('from_profile' => 'id')), + 'message_to_profile_fkey' => array('profile', array('to_profile' => 'id')), + ), + 'indexes' => array( + // @fixme these are really terrible indexes, since you can only sort on one of them at a time. + // looks like we really need a (to_profile, created) for inbox and a (from_profile, created) for outbox + 'message_from_idx' => array('from_profile'), + 'message_to_idx' => array('to_profile'), + 'message_created_idx' => array('created'), + ), +); + +$schema['notice_inbox'] = array( + 'description' => 'Obsolete; old entries here are converted to packed entries in the inbox table since 0.9', + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user receiving the message'), + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice received'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the notice was created'), + 'source' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'reason it is in the inbox, 1=subscription'), + ), + 'primary key' => array('user_id', 'notice_id'), + 'foreign keys' => array( + 'notice_inbox_user_id_fkey' => array('user', array('user_id' => 'id')), + 'notice_inbox_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + ), + 'indexes' => array( + 'notice_inbox_notice_id_idx' => array('notice_id'), + ), +); + +$schema['profile_tag'] = array( + 'fields' => array( + 'tagger' => array('type' => 'int', 'not null' => true, 'description' => 'user making the tag'), + 'tagged' => array('type' => 'int', 'not null' => true, 'description' => 'profile tagged'), + 'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash tag associated with this notice'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date the tag was added'), + ), + 'primary key' => array('tagger', 'tagged', 'tag'), + 'foreign keys' => array( + 'profile_tag_tagger_fkey' => array('user', array('tagger' => 'id')), + 'profile_tag_tagged_fkey' => array('profile', array('tagged' => 'id')), + ), + 'indexes' => array( + 'profile_tag_modified_idx' => array('modified'), + 'profile_tag_tagger_tag_idx' => array('tagger', 'tag'), + 'profile_tag_tagged_idx' => array('tagged'), + ), +); + +$schema['profile_block'] = array( + 'fields' => array( + 'blocker' => array('type' => 'int', 'not null' => true, 'description' => 'user making the block'), + 'blocked' => array('type' => 'int', 'not null' => true, 'description' => 'profile that is blocked'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date of blocking'), + ), + 'foreign keys' => array( + 'profile_block_blocker_fkey' => array('user', array('blocker' => 'id')), + 'profile_block_blocked_fkey' => array('profile', array('blocked' => 'id')), + ), + 'primary key' => array('blocker', 'blocked'), +); + +$schema['user_group'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + + 'nickname' => array('type' => 'varchar', 'length' => 64, 'description' => 'nickname for addressing'), + 'fullname' => array('type' => 'varchar', 'length' => 255, 'description' => 'display name'), + 'homepage' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL, cached so we dont regenerate'), + 'description' => array('type' => 'text', 'description' => 'group description'), + 'location' => array('type' => 'varchar', 'length' => 255, 'description' => 'related physical location, if any'), + + 'original_logo' => array('type' => 'varchar', 'length' => 255, 'description' => 'original size logo'), + 'homepage_logo' => array('type' => 'varchar', 'length' => 255, 'description' => 'homepage (profile) size logo'), + 'stream_logo' => array('type' => 'varchar', 'length' => 255, 'description' => 'stream-sized logo'), + 'mini_logo' => array('type' => 'varchar', 'length' => 255, 'description' => 'mini logo'), + 'design_id' => array('type' => 'int', 'description' => 'id of a design'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universal identifier'), + 'mainpage' => array('type' => 'varchar', 'length' => 255, 'description' => 'page for group info to link to'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'user_group_uri_key' => array('uri'), + ), + 'foreign keys' => array( + 'user_group_design_id_fkey' => array('design', array('design_id' => 'id')), + ), + 'indexes' => array( + 'user_group_nickname_idx' => array('nickname'), + ), +); + +$schema['group_member'] = array( + 'fields' => array( + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to user_group'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to profile table'), + 'is_admin' => array('type' => 'int', 'size' => 'tiny', 'default' => 0, 'description' => 'is this user an admin?'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('group_id', 'profile_id'), + 'foreign keys' => array( + 'group_member_group_id_fkey' => array('user_group', array('group_id' => 'id')), + 'group_member_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array( + // @fixme probably we want a (profile_id, created) index here? + 'group_member_profile_id_idx' => array('profile_id'), + 'group_member_created_idx' => array('created'), + ), +); + +$schema['related_group'] = array( + // @fixme description for related_group? + 'fields' => array( + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to user_group'), + 'related_group_id' => array('type' => 'int', 'not null' => true, 'description' => 'foreign key to user_group'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('group_id', 'related_group_id'), + 'foreign keys' => array( + 'related_group_group_id_fkey' => array('user_group', array('group_id' => 'id')), + 'related_group_related_group_id_fkey' => array('user_group', array('related_group_id' => 'id')), + ), +); + +$schema['group_inbox'] = array( + 'description' => 'Many-many table listing notices posted to a given group, or which groups a given notice was posted to.', + 'fields' => array( + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group receiving the message'), + 'notice_id' => array('type' => 'int', 'not null' => true, 'description' => 'notice received'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the notice was created'), + ), + 'primary key' => array('group_id', 'notice_id'), + 'foreign keys' => array( + 'group_inbox_group_id_fkey' => array('user_group', array('group_id' => 'id')), + 'group_inbox_notice_id_fkey' => array('notice', array('notice_id' => 'id')), + ), + 'indexes' => array( + 'group_inbox_created_idx' => array('created'), + 'group_inbox_notice_id_idx' => array('notice_id'), + ), +); + +$schema['file'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'destination URL after following redirections'), + 'mimetype' => array('type' => 'varchar', 'length' => 50, 'description' => 'mime type of resource'), + 'size' => array('type' => 'int', 'description' => 'size of resource when available'), + 'title' => array('type' => 'varchar', 'length' => 255, 'description' => 'title of resource when available'), + 'date' => array('type' => 'int', 'description' => 'date of resource according to http query'), + 'protected' => array('type' => 'int', 'description' => 'true when URL is private (needs login)'), + 'filename' => array('type' => 'varchar', 'length' => 255, 'description' => 'if a local file, name of the file'), + + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'file_url_key' => array('url'), + ), +); + +$schema['file_oembed'] = array( + 'fields' => array( + 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'oEmbed for that URL/file'), + 'version' => array('type' => 'varchar', 'length' => 20, 'description' => 'oEmbed spec. version'), + 'type' => array('type' => 'varchar', 'length' => 20, 'description' => 'oEmbed type: photo, video, link, rich'), + 'mimetype' => array('type' => 'varchar', 'length' => 50, 'description' => 'mime type of resource'), + 'provider' => array('type' => 'varchar', 'length' => 50, 'description' => 'name of this oEmbed provider'), + 'provider_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL of this oEmbed provider'), + 'width' => array('type' => 'int', 'description' => 'width of oEmbed resource when available'), + 'height' => array('type' => 'int', 'description' => 'height of oEmbed resource when available'), + 'html' => array('type' => 'text', 'description' => 'html representation of this oEmbed resource when applicable'), + 'title' => array('type' => 'varchar', 'length' => 255, 'description' => 'title of oEmbed resource when available'), + 'author_name' => array('type' => 'varchar', 'length' => 50, 'description' => 'author name for this oEmbed resource'), + 'author_url' => array('type' => 'varchar', 'length' => 255, 'description' => 'author URL for this oEmbed resource'), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL for this oEmbed resource when applicable (photo, link)'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('file_id'), + 'foreign keys' => array( + 'file_oembed_file_id_fkey' => array('file', array('file_id' => 'id')), + ), +); + +$schema['file_redirection'] = array( + 'fields' => array( + 'url' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'short URL (or any other kind of redirect) for file (id)'), + 'file_id' => array('type' => 'int', 'description' => 'short URL for what URL/file'), + 'redirections' => array('type' => 'int', 'description' => 'redirect count'), + 'httpcode' => array('type' => 'int', 'description' => 'HTTP status code (20x, 30x, etc.)'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('url'), + 'foreign keys' => array( + 'file_redirection_file_id_fkey' => array('file' => array('file_id' => 'id')), + ), +); + +$schema['file_thumbnail'] = array( + 'fields' => array( + 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'thumbnail for what URL/file'), + 'url' => array('type' => 'varchar', 'length' => 255, 'description' => 'URL of thumbnail'), + 'width' => array('type' => 'int', 'description' => 'width of thumbnail'), + 'height' => array('type' => 'int', 'description' => 'height of thumbnail'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('file_id'), + 'foreign keys' => array( + 'file_thumbnail_file_id_fkey' => array('file', array('file_id' => 'id')), + ), + 'unique keys' => array( + 'file_thumbnail_url_key' => array('url'), + ), +); + +$schema['file_to_post'] = array( + 'fields' => array( + 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of URL/file'), + 'post_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the notice it belongs to'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('file_id', 'post_id'), + 'foreign keys' => array( + 'file_to_post_file_id_fkey' => array('file', array('file_id' => 'id')), + 'file_to_post_post_id_fkey' => array('notice', array('post_id' => 'id')), + ), + 'indexes' => array( + 'post_id_idx' => array('post_id'), + ), +); + +$schema['design'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'design ID'), + 'backgroundcolor' => array('type' => 'int', 'description' => 'main background color'), + 'contentcolor' => array('type' => 'int', 'description' => 'content area background color'), + 'sidebarcolor' => array('type' => 'int', 'description' => 'sidebar background color'), + 'textcolor' => array('type' => 'int', 'description' => 'text color'), + 'linkcolor' => array('type' => 'int', 'description' => 'link color'), + 'backgroundimage' => array('type' => 'varchar', 'length' => 255, 'description' => 'background image, if any'), + 'disposition' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image'), + ), + 'primary key' => array('id'), +); + +$schema['group_block'] = array( + 'fields' => array( + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group profile is blocked from'), + 'blocked' => array('type' => 'int', 'not null' => true, 'description' => 'profile that is blocked'), + 'blocker' => array('type' => 'int', 'not null' => true, 'description' => 'user making the block'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date of blocking'), + ), + 'primary key' => array('group_id', 'blocked'), + 'foreign keys' => array( + 'group_block_group_id_fkey' => array('user_group', array('group_id' => 'id')), + 'group_block_blocked_fkey' => array('profile', array('blocked' => 'id')), + 'group_block_blocker_fkey' => array('user', array('blocker' => 'id')), + ), +); + +$schema['group_alias'] = array( + 'fields' => array( + 'alias' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'additional nickname for the group'), + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group profile is blocked from'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date alias was created'), + ), + 'primary key' => array('alias'), + 'foreign keys' => array( + 'group_alias_group_id_fkey' => array('user_group', array('group_id' => 'id')), + ), + 'indexes' => array( + 'group_alias_group_id_idx' => array('group_id'), + ), +); + +$schema['session'] = array( + 'fields' => array( + 'id' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'session ID'), + 'session_data' => array('type' => 'text', 'description' => 'session data'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'indexes' => array( + 'session_modified_idx' => array('modified'), + ), +); + +$schema['deleted_notice'] = array( + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'identity of notice'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'author of the notice'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'universally unique identifier, usually a tag URI'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the notice record was created'), + 'deleted' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the notice record was created'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'deleted_notice_uri_key' => array('uri'), + ), + 'indexes' => array( + 'deleted_notice_profile_id_idx' => array('profile_id'), + ), +); + +$schema['config'] = array( + 'fields' => array( + 'section' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'default' => '', 'description' => 'configuration section'), + 'setting' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'default' => '', 'description' => 'configuration setting'), + 'value' => array('type' => 'varchar', 'length' => 255, 'description' => 'configuration value'), + ), + 'primary key' => array('section', 'setting'), +); + +$schema['profile_role'] = array( + 'fields' => array( + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'account having the role'), + 'role' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'string representing the role'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the role was granted'), + ), + 'primary key' => array('profile_id', 'role'), + 'foreign keys' => array( + 'profile_role_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), +); + +$schema['location_namespace'] = array( + 'fields' => array( + 'id' => array('type' => 'int', 'not null' => true, 'description' => 'identity for this namespace'), + 'description' => array('type' => 'varchar', 'length' => 255, 'description' => 'description of the namespace'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date the record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), +); + +$schema['login_token'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user owning this token'), + 'token' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'token useable for logging in'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'login_token_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['user_location_prefs'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user who has the preference'), + 'share_location' => array('type' => 'int', 'size' => 'tiny', 'default' => 1, 'description' => 'Whether to share location data'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'user_location_prefs_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['inbox'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user receiving the notice'), + 'notice_ids' => array('type' => 'blob', 'description' => 'packed list of notice ids'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'inbox_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +// @fixme possibly swap this for a more general prefs table? +$schema['user_im_prefs'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user'), + 'screenname' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'screenname on this service'), + 'transport' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'transport (ex xmpp, aim)'), + 'notify' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Notify when a new notice is sent'), + 'replies' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Send replies from people not subscribed to'), + 'microid' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 1, 'description' => 'Publish a MicroID'), + 'updatefrompresence' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Send replies from people not subscribed to.'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id', 'transport'), + 'unique keys' => array( + 'transport_screenname_key' => array('transport', 'screenname'), + ), + 'foreign keys' => array( + 'user_im_prefs_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['conversation'] = array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'uri' => array('type' => 'varchar', 'length' => 225, 'description' => 'URI of the conversation'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'conversation_uri_key' => array('uri'), + ), +); + +$schema['local_group'] = array( + 'description' => 'Record for a user group on the local site, with some additional info not in user_group', + 'fields' => array( + 'group_id' => array('type' => 'int', 'not null' => true, 'description' => 'group represented'), + 'nickname' => array('type' => 'varchar', 'length' => 64, 'description' => 'group represented'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('group_id'), + 'foreign keys' => array( + 'local_group_group_id_fkey' => array('user_group', array('group_id' => 'id')), + ), + 'unique keys' => array( + 'local_group_nickname_key' => array('nickname'), + ), +); + +$schema['user_urlshortener_prefs'] = array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user'), + 'urlshorteningservice' => array('type' => 'varchar', 'length' => 50, 'default' => 'ur1.ca', 'description' => 'service to use for auto-shortening URLs'), + 'maxurllength' => array('type' => 'int', 'not null' => true, 'description' => 'urls greater than this length will be shortened, 0 = always, null = never'), + 'maxnoticelength' => array('type' => 'int', 'not null' => true, 'description' => 'notices with content greater than this value will have all urls shortened, 0 = always, null = never'), + + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'user_urlshortener_prefs_user_id_fkey' => array('user', array('user_id' => 'id')), + ), +); + +$schema['schema_version'] = array( + 'description' => 'To avoid checking database structure all the time, we store a checksum of the expected schema info for each table here. If it has not changed since the last time we checked the table, we can leave it as is.', + 'fields' => array( + 'table_name' => array('type' => 'varchar', 'length' => '64', 'not null' => true, 'description' => 'Table name'), + 'checksum' => array('type' => 'varchar', 'length' => '64', 'not null' => true, 'description' => 'Checksum of schema array; a mismatch indicates we should check the table more thoroughly.'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('table_name'), +); diff --git a/db/notice_source.sql b/db/notice_source.sql index 6bfd5c5f15..82074077b4 100644 --- a/db/notice_source.sql +++ b/db/notice_source.sql @@ -34,7 +34,7 @@ VALUES ('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()), ('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()), ('moconica','Moconica','http://moconica.com/', now()), - ('mustard', 'MuSTArDroid', 'https://launchpad.net/mustardroid', now()), + ('mustard', 'mustard', 'http://mustard.macno.org', now()), ('nambu','Nambu','http://www.nambu.com/', now()), ('peoplebrowsr', 'PeopleBrowsr', 'http://www.peoplebrowsr.com/', now()), ('Pikchur','Pikchur','http://www.pikchur.com/', now()), @@ -52,6 +52,10 @@ VALUES ('socialoomphBfD4pMqz31', 'SocialOomph', 'http://www.socialoomph.com/', now()), ('spaz','Spaz','http://funkatron.com/spaz', now()), ('StatusNet Desktop', 'StatusNet Desktop', 'http://status.net/desktop', now()), + ('StatusNet Mobile', 'StatusNet Mobile', 'http://status.net/mobile', now()), + ('StatusNet iPhone', 'iPhone', 'http://status.net/iphone', now()), + ('StatusNet Android', 'Android', 'http://status.net/android', now()), + ('StatusNet Blackberry', 'Blackberry', 'http://status.net/blackberry', now()), ('tarpipe','tarpipe','http://tarpipe.com/', now()), ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()), ('tr.im','tr.im','http://tr.im/', now()), diff --git a/db/statusnet.sql b/db/statusnet.sql index a0c497fff5..debe6f095c 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -126,11 +126,21 @@ create table notice ( location_ns integer comment 'namespace for location', repeat_of integer comment 'notice this is a repeat of' references notice (id), + -- For public timeline... + index notice_created_id_is_local_idx (created,id,is_local), + + -- For profile timelines... index notice_profile_id_idx (profile_id,created,id), - index notice_conversation_idx (conversation), - index notice_created_idx (created), + + -- For api/statuses/repeats... + index notice_repeat_of_created_id_idx (repeat_of, created, id), + + -- For conversation views + index notice_conversation_created_id_idx (conversation, created, id), + + -- Are these needed/used? index notice_replyto_idx (reply_to), - index notice_repeatof_idx (repeat_of), + FULLTEXT(content) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; @@ -151,7 +161,10 @@ create table reply ( constraint primary key (notice_id, profile_id), index reply_notice_id_idx (notice_id), index reply_profile_id_idx (profile_id), - index reply_replied_id_idx (replied_id) + index reply_replied_id_idx (replied_id), + + -- Needed for sorting reply/mentions timelines + index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; @@ -232,6 +245,15 @@ create table oauth_application_user ( constraint primary key (profile_id, application_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +create table oauth_token_association ( + profile_id integer not null comment 'user of the application' references profile (id), + application_id integer not null comment 'id of the application' references oauth_application (id), + token varchar(255) comment 'request or access token', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + constraint primary key (profile_id, application_id, token) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + /* These are used by JanRain OpenID library */ create table oid_associations ( @@ -287,7 +309,10 @@ create table notice_tag ( constraint primary key (tag, notice_id), index notice_tag_created_idx (created), - index notice_tag_notice_id_idx (notice_id) + index notice_tag_notice_id_idx (notice_id), + + -- For sorting tag-filtered public timeline + index notice_tag_tag_created_notice_id_idx (tag, created, notice_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; /* Synching with foreign services */ @@ -433,7 +458,10 @@ create table group_member ( constraint primary key (group_id, profile_id), index group_member_profile_id_idx (profile_id), - index group_member_created_idx (created) + index group_member_created_idx (created), + + -- To pull up a list of someone's groups in order joined + index group_member_profile_id_created_idx (profile_id, created) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; @@ -454,7 +482,10 @@ create table group_inbox ( constraint primary key (group_id, notice_id), index group_inbox_created_idx (created), - index group_inbox_notice_id_idx (notice_id) + index group_inbox_notice_id_idx (notice_id), + + -- Needed for sorting group messages by timestamp + index group_inbox_group_id_created_notice_id_idx (group_id, created, notice_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; @@ -594,7 +625,8 @@ create table profile_role ( role varchar(32) not null comment 'string representing the role', created datetime not null comment 'date the role was granted', - constraint primary key (profile_id, role) + constraint primary key (profile_id, role), + index profile_role_role_created_profile_id_idx (role, created, profile_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; diff --git a/db/statusnet_pg.sql b/db/statusnet_pg.sql index 2db98550c9..fe0758de89 100644 --- a/db/statusnet_pg.sql +++ b/db/statusnet_pg.sql @@ -136,7 +136,6 @@ create table notice ( is_local integer default 0 /* comment 'notice was generated by a user' */, source varchar(32) /* comment 'source of comment, like "web", "im", or "clientname"' */, conversation integer /*id of root notice in this conversation' */ references notice (id), - location varchar(255) /* comment 'physical location' */, lat decimal(10,7) /* comment 'latitude'*/ , lon decimal(10,7) /* comment 'longitude'*/ , location_id integer /* comment 'location id if possible'*/ , diff --git a/doc-src/about b/doc-src/about index 6a0ceb10f5..fcf2bf373a 100644 --- a/doc-src/about +++ b/doc-src/about @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + %%site.name%% is a social network based on the Free Software [GNU social](http://www.gnu.org/software/social/) tool. diff --git a/doc-src/api b/doc-src/api new file mode 100644 index 0000000000..5c8815bddd --- /dev/null +++ b/doc-src/api @@ -0,0 +1,6 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + +%%site.name%% provides an API that applications can use to interact with it. +More information about this API can be found on the [StatusNet Wiki](http://status.net/wiki/API). diff --git a/doc-src/badge b/doc-src/badge index 5499e334ca..98cdcfce27 100644 --- a/doc-src/badge +++ b/doc-src/badge @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + Install the %%site.name%% badge on your blog or web site to show the latest updates from you and your friends! diff --git a/doc-src/bookmarklet b/doc-src/bookmarklet index ae359d2dbe..0b77bf45a7 100644 --- a/doc-src/bookmarklet +++ b/doc-src/bookmarklet @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + A bookmarklet is a small piece of javascript code used as a bookmark. This one will let you post to %%site.name%% simply by selecting some text on a page and pressing the bookmarklet. Drag-and-drop the following link to your bookmarks bar or right-click it and add it to your browser favorites to keep it handy. diff --git a/doc-src/contact b/doc-src/contact index c63fcd01ad..75c3aa8364 100644 --- a/doc-src/contact +++ b/doc-src/contact @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + There are a number of options for getting in contact with responsible people for %%site.name%%. diff --git a/doc-src/faq b/doc-src/faq index b333c4148d..39948723de 100644 --- a/doc-src/faq +++ b/doc-src/faq @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + These are some *Frequently Asked Questions* about this service, with some answers. diff --git a/doc-src/groups b/doc-src/groups index 772ca98334..5ff09600ef 100644 --- a/doc-src/groups +++ b/doc-src/groups @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + Users on %%site.name%% can create *groups* that other users can join. Groups can be a great way to share information and entertainment with a group of people who have a common interest or background. diff --git a/doc-src/help b/doc-src/help index 37a8d11f72..6d12b4cd76 100644 --- a/doc-src/help +++ b/doc-src/help @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + %%site.name%% is a **microblogging service**. Users post short (%%site.textlimit%% character) notices which are broadcast to their friends and fans using the Web, RSS, or instant messages. @@ -31,3 +35,4 @@ Here are some documents that you might find helpful in understanding * [Source](%%doc.source%%) - How to get the StatusNet source code * [Badge](%%doc.badge%%) - How to put a StatusNet badge on your blog or homepage * [Bookmarklet](%%doc.bookmarklet%%) - Bookmarklet for posting Web pages +* [API](%%doc.api%%) - API for use by external clients diff --git a/doc-src/im b/doc-src/im index eda4f6fc57..896c121879 100644 --- a/doc-src/im +++ b/doc-src/im @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + You can post messages to %%site.name%% using a [Jabber](http://jabber.org/) client on your computer, mobile phone, or other platform. ([GTalk](http://talk.google.com/), Google's Jabber program, will also work.) This can be a convenient way to keep diff --git a/doc-src/openmublog b/doc-src/openmublog index aec532b797..267ad6e7c4 100644 --- a/doc-src/openmublog +++ b/doc-src/openmublog @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + [OpenMicroBlogging](http://openmicroblogging.org/) is a protocol that lets users of one [microblogging](http://en.wikipedia.org/wiki/microblogging) service subscribe to notices by users of another service. The protocol, based on diff --git a/doc-src/privacy b/doc-src/privacy index 90c7b3c7fb..d6e71c92dc 100644 --- a/doc-src/privacy +++ b/doc-src/privacy @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + This document outlines this service's respect for your personal privacy as a user of the service. diff --git a/doc-src/sms b/doc-src/sms index 6cdccc6e97..0e63da9e6b 100644 --- a/doc-src/sms +++ b/doc-src/sms @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + You can post messages to %%site.name%% using many kinds of cell phones that support SMS messaging. This site does not support SMS directly; rather, it uses your carrier's email gateway to send and diff --git a/doc-src/source b/doc-src/source index 3ddd6203ec..670071b224 100644 --- a/doc-src/source +++ b/doc-src/source @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + This service uses a Free microblogging tool called **StatusNet**. StatusNet is available under the [GNU Affero General Public License Version 3.0](http://www.fsf.org/licensing/licenses/agpl-3.0.html), a diff --git a/doc-src/tags b/doc-src/tags index 2ed352e701..091b147ad3 100644 --- a/doc-src/tags +++ b/doc-src/tags @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + %%site.name%% supports [tags](http://en.wikipedia.org/wiki/Tag_(metadata)) to help you organize your activities here. You can use tags for people and for diff --git a/doc-src/tos b/doc-src/tos index bcfc319814..8d5bac57fc 100644 --- a/doc-src/tos +++ b/doc-src/tos @@ -1,3 +1,7 @@ +<!-- Copyright 2008-2010 StatusNet Inc. and contributors. --> +<!-- Document licensed under Creative Commons Attribution 3.0 Unported. See --> +<!-- http://creativecommons.org/licenses/by/3.0/ for details. --> + The gist -------- diff --git a/extlib/HTTP/Request.php b/extlib/HTTP/Request.php deleted file mode 100644 index 42eac3b141..0000000000 --- a/extlib/HTTP/Request.php +++ /dev/null @@ -1,1521 +0,0 @@ -<?php -/** - * Class for performing HTTP requests - * - * PHP versions 4 and 5 - * - * LICENSE: - * - * Copyright (c) 2002-2007, Richard Heyes - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * o Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * o Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * o The names of the authors may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * @category HTTP - * @package HTTP_Request - * @author Richard Heyes <richard@phpguru.org> - * @author Alexey Borzov <avb@php.net> - * @copyright 2002-2007 Richard Heyes - * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Request.php,v 1.63 2008/10/11 11:07:10 avb Exp $ - * @link http://pear.php.net/package/HTTP_Request/ - */ - -/** - * PEAR and PEAR_Error classes (for error handling) - */ -require_once 'PEAR.php'; -/** - * Socket class - */ -require_once 'Net/Socket.php'; -/** - * URL handling class - */ -require_once 'Net/URL.php'; - -/**#@+ - * Constants for HTTP request methods - */ -define('HTTP_REQUEST_METHOD_GET', 'GET', true); -define('HTTP_REQUEST_METHOD_HEAD', 'HEAD', true); -define('HTTP_REQUEST_METHOD_POST', 'POST', true); -define('HTTP_REQUEST_METHOD_PUT', 'PUT', true); -define('HTTP_REQUEST_METHOD_DELETE', 'DELETE', true); -define('HTTP_REQUEST_METHOD_OPTIONS', 'OPTIONS', true); -define('HTTP_REQUEST_METHOD_TRACE', 'TRACE', true); -/**#@-*/ - -/**#@+ - * Constants for HTTP request error codes - */ -define('HTTP_REQUEST_ERROR_FILE', 1); -define('HTTP_REQUEST_ERROR_URL', 2); -define('HTTP_REQUEST_ERROR_PROXY', 4); -define('HTTP_REQUEST_ERROR_REDIRECTS', 8); -define('HTTP_REQUEST_ERROR_RESPONSE', 16); -define('HTTP_REQUEST_ERROR_GZIP_METHOD', 32); -define('HTTP_REQUEST_ERROR_GZIP_READ', 64); -define('HTTP_REQUEST_ERROR_GZIP_DATA', 128); -define('HTTP_REQUEST_ERROR_GZIP_CRC', 256); -/**#@-*/ - -/**#@+ - * Constants for HTTP protocol versions - */ -define('HTTP_REQUEST_HTTP_VER_1_0', '1.0', true); -define('HTTP_REQUEST_HTTP_VER_1_1', '1.1', true); -/**#@-*/ - -if (extension_loaded('mbstring') && (2 & ini_get('mbstring.func_overload'))) { - /** - * Whether string functions are overloaded by their mbstring equivalents - */ - define('HTTP_REQUEST_MBSTRING', true); -} else { - /** - * @ignore - */ - define('HTTP_REQUEST_MBSTRING', false); -} - -/** - * Class for performing HTTP requests - * - * Simple example (fetches yahoo.com and displays it): - * <code> - * $a = &new HTTP_Request('http://www.yahoo.com/'); - * $a->sendRequest(); - * echo $a->getResponseBody(); - * </code> - * - * @category HTTP - * @package HTTP_Request - * @author Richard Heyes <richard@phpguru.org> - * @author Alexey Borzov <avb@php.net> - * @version Release: 1.4.4 - */ -class HTTP_Request -{ - /**#@+ - * @access private - */ - /** - * Instance of Net_URL - * @var Net_URL - */ - var $_url; - - /** - * Type of request - * @var string - */ - var $_method; - - /** - * HTTP Version - * @var string - */ - var $_http; - - /** - * Request headers - * @var array - */ - var $_requestHeaders; - - /** - * Basic Auth Username - * @var string - */ - var $_user; - - /** - * Basic Auth Password - * @var string - */ - var $_pass; - - /** - * Socket object - * @var Net_Socket - */ - var $_sock; - - /** - * Proxy server - * @var string - */ - var $_proxy_host; - - /** - * Proxy port - * @var integer - */ - var $_proxy_port; - - /** - * Proxy username - * @var string - */ - var $_proxy_user; - - /** - * Proxy password - * @var string - */ - var $_proxy_pass; - - /** - * Post data - * @var array - */ - var $_postData; - - /** - * Request body - * @var string - */ - var $_body; - - /** - * A list of methods that MUST NOT have a request body, per RFC 2616 - * @var array - */ - var $_bodyDisallowed = array('TRACE'); - - /** - * Methods having defined semantics for request body - * - * Content-Length header (indicating that the body follows, section 4.3 of - * RFC 2616) will be sent for these methods even if no body was added - * - * @var array - */ - var $_bodyRequired = array('POST', 'PUT'); - - /** - * Files to post - * @var array - */ - var $_postFiles = array(); - - /** - * Connection timeout. - * @var float - */ - var $_timeout; - - /** - * HTTP_Response object - * @var HTTP_Response - */ - var $_response; - - /** - * Whether to allow redirects - * @var boolean - */ - var $_allowRedirects; - - /** - * Maximum redirects allowed - * @var integer - */ - var $_maxRedirects; - - /** - * Current number of redirects - * @var integer - */ - var $_redirects; - - /** - * Whether to append brackets [] to array variables - * @var bool - */ - var $_useBrackets = true; - - /** - * Attached listeners - * @var array - */ - var $_listeners = array(); - - /** - * Whether to save response body in response object property - * @var bool - */ - var $_saveBody = true; - - /** - * Timeout for reading from socket (array(seconds, microseconds)) - * @var array - */ - var $_readTimeout = null; - - /** - * Options to pass to Net_Socket::connect. See stream_context_create - * @var array - */ - var $_socketOptions = null; - /**#@-*/ - - /** - * Constructor - * - * Sets up the object - * @param string The url to fetch/access - * @param array Associative array of parameters which can have the following keys: - * <ul> - * <li>method - Method to use, GET, POST etc (string)</li> - * <li>http - HTTP Version to use, 1.0 or 1.1 (string)</li> - * <li>user - Basic Auth username (string)</li> - * <li>pass - Basic Auth password (string)</li> - * <li>proxy_host - Proxy server host (string)</li> - * <li>proxy_port - Proxy server port (integer)</li> - * <li>proxy_user - Proxy auth username (string)</li> - * <li>proxy_pass - Proxy auth password (string)</li> - * <li>timeout - Connection timeout in seconds (float)</li> - * <li>allowRedirects - Whether to follow redirects or not (bool)</li> - * <li>maxRedirects - Max number of redirects to follow (integer)</li> - * <li>useBrackets - Whether to append [] to array variable names (bool)</li> - * <li>saveBody - Whether to save response body in response object property (bool)</li> - * <li>readTimeout - Timeout for reading / writing data over the socket (array (seconds, microseconds))</li> - * <li>socketOptions - Options to pass to Net_Socket object (array)</li> - * </ul> - * @access public - */ - function HTTP_Request($url = '', $params = array()) - { - $this->_method = HTTP_REQUEST_METHOD_GET; - $this->_http = HTTP_REQUEST_HTTP_VER_1_1; - $this->_requestHeaders = array(); - $this->_postData = array(); - $this->_body = null; - - $this->_user = null; - $this->_pass = null; - - $this->_proxy_host = null; - $this->_proxy_port = null; - $this->_proxy_user = null; - $this->_proxy_pass = null; - - $this->_allowRedirects = false; - $this->_maxRedirects = 3; - $this->_redirects = 0; - - $this->_timeout = null; - $this->_response = null; - - foreach ($params as $key => $value) { - $this->{'_' . $key} = $value; - } - - if (!empty($url)) { - $this->setURL($url); - } - - // Default useragent - $this->addHeader('User-Agent', 'PEAR HTTP_Request class ( http://pear.php.net/ )'); - - // We don't do keep-alives by default - $this->addHeader('Connection', 'close'); - - // Basic authentication - if (!empty($this->_user)) { - $this->addHeader('Authorization', 'Basic ' . base64_encode($this->_user . ':' . $this->_pass)); - } - - // Proxy authentication (see bug #5913) - if (!empty($this->_proxy_user)) { - $this->addHeader('Proxy-Authorization', 'Basic ' . base64_encode($this->_proxy_user . ':' . $this->_proxy_pass)); - } - - // Use gzip encoding if possible - if (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http && extension_loaded('zlib')) { - $this->addHeader('Accept-Encoding', 'gzip'); - } - } - - /** - * Generates a Host header for HTTP/1.1 requests - * - * @access private - * @return string - */ - function _generateHostHeader() - { - if ($this->_url->port != 80 AND strcasecmp($this->_url->protocol, 'http') == 0) { - $host = $this->_url->host . ':' . $this->_url->port; - - } elseif ($this->_url->port != 443 AND strcasecmp($this->_url->protocol, 'https') == 0) { - $host = $this->_url->host . ':' . $this->_url->port; - - } elseif ($this->_url->port == 443 AND strcasecmp($this->_url->protocol, 'https') == 0 AND strpos($this->_url->url, ':443') !== false) { - $host = $this->_url->host . ':' . $this->_url->port; - - } else { - $host = $this->_url->host; - } - - return $host; - } - - /** - * Resets the object to its initial state (DEPRECATED). - * Takes the same parameters as the constructor. - * - * @param string $url The url to be requested - * @param array $params Associative array of parameters - * (see constructor for details) - * @access public - * @deprecated deprecated since 1.2, call the constructor if this is necessary - */ - function reset($url, $params = array()) - { - $this->HTTP_Request($url, $params); - } - - /** - * Sets the URL to be requested - * - * @param string The url to be requested - * @access public - */ - function setURL($url) - { - $this->_url = &new Net_URL($url, $this->_useBrackets); - - if (!empty($this->_url->user) || !empty($this->_url->pass)) { - $this->setBasicAuth($this->_url->user, $this->_url->pass); - } - - if (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http) { - $this->addHeader('Host', $this->_generateHostHeader()); - } - - // set '/' instead of empty path rather than check later (see bug #8662) - if (empty($this->_url->path)) { - $this->_url->path = '/'; - } - } - - /** - * Returns the current request URL - * - * @return string Current request URL - * @access public - */ - function getUrl() - { - return empty($this->_url)? '': $this->_url->getUrl(); - } - - /** - * Sets a proxy to be used - * - * @param string Proxy host - * @param int Proxy port - * @param string Proxy username - * @param string Proxy password - * @access public - */ - function setProxy($host, $port = 8080, $user = null, $pass = null) - { - $this->_proxy_host = $host; - $this->_proxy_port = $port; - $this->_proxy_user = $user; - $this->_proxy_pass = $pass; - - if (!empty($user)) { - $this->addHeader('Proxy-Authorization', 'Basic ' . base64_encode($user . ':' . $pass)); - } - } - - /** - * Sets basic authentication parameters - * - * @param string Username - * @param string Password - */ - function setBasicAuth($user, $pass) - { - $this->_user = $user; - $this->_pass = $pass; - - $this->addHeader('Authorization', 'Basic ' . base64_encode($user . ':' . $pass)); - } - - /** - * Sets the method to be used, GET, POST etc. - * - * @param string Method to use. Use the defined constants for this - * @access public - */ - function setMethod($method) - { - $this->_method = $method; - } - - /** - * Sets the HTTP version to use, 1.0 or 1.1 - * - * @param string Version to use. Use the defined constants for this - * @access public - */ - function setHttpVer($http) - { - $this->_http = $http; - } - - /** - * Adds a request header - * - * @param string Header name - * @param string Header value - * @access public - */ - function addHeader($name, $value) - { - $this->_requestHeaders[strtolower($name)] = $value; - } - - /** - * Removes a request header - * - * @param string Header name to remove - * @access public - */ - function removeHeader($name) - { - if (isset($this->_requestHeaders[strtolower($name)])) { - unset($this->_requestHeaders[strtolower($name)]); - } - } - - /** - * Adds a querystring parameter - * - * @param string Querystring parameter name - * @param string Querystring parameter value - * @param bool Whether the value is already urlencoded or not, default = not - * @access public - */ - function addQueryString($name, $value, $preencoded = false) - { - $this->_url->addQueryString($name, $value, $preencoded); - } - - /** - * Sets the querystring to literally what you supply - * - * @param string The querystring data. Should be of the format foo=bar&x=y etc - * @param bool Whether data is already urlencoded or not, default = already encoded - * @access public - */ - function addRawQueryString($querystring, $preencoded = true) - { - $this->_url->addRawQueryString($querystring, $preencoded); - } - - /** - * Adds postdata items - * - * @param string Post data name - * @param string Post data value - * @param bool Whether data is already urlencoded or not, default = not - * @access public - */ - function addPostData($name, $value, $preencoded = false) - { - if ($preencoded) { - $this->_postData[$name] = $value; - } else { - $this->_postData[$name] = $this->_arrayMapRecursive('urlencode', $value); - } - } - - /** - * Recursively applies the callback function to the value - * - * @param mixed Callback function - * @param mixed Value to process - * @access private - * @return mixed Processed value - */ - function _arrayMapRecursive($callback, $value) - { - if (!is_array($value)) { - return call_user_func($callback, $value); - } else { - $map = array(); - foreach ($value as $k => $v) { - $map[$k] = $this->_arrayMapRecursive($callback, $v); - } - return $map; - } - } - - /** - * Adds a file to form-based file upload - * - * Used to emulate file upload via a HTML form. The method also sets - * Content-Type of HTTP request to 'multipart/form-data'. - * - * If you just want to send the contents of a file as the body of HTTP - * request you should use setBody() method. - * - * @access public - * @param string name of file-upload field - * @param mixed file name(s) - * @param mixed content-type(s) of file(s) being uploaded - * @return bool true on success - * @throws PEAR_Error - */ - function addFile($inputName, $fileName, $contentType = 'application/octet-stream') - { - if (!is_array($fileName) && !is_readable($fileName)) { - return PEAR::raiseError("File '{$fileName}' is not readable", HTTP_REQUEST_ERROR_FILE); - } elseif (is_array($fileName)) { - foreach ($fileName as $name) { - if (!is_readable($name)) { - return PEAR::raiseError("File '{$name}' is not readable", HTTP_REQUEST_ERROR_FILE); - } - } - } - $this->addHeader('Content-Type', 'multipart/form-data'); - $this->_postFiles[$inputName] = array( - 'name' => $fileName, - 'type' => $contentType - ); - return true; - } - - /** - * Adds raw postdata (DEPRECATED) - * - * @param string The data - * @param bool Whether data is preencoded or not, default = already encoded - * @access public - * @deprecated deprecated since 1.3.0, method setBody() should be used instead - */ - function addRawPostData($postdata, $preencoded = true) - { - $this->_body = $preencoded ? $postdata : urlencode($postdata); - } - - /** - * Sets the request body (for POST, PUT and similar requests) - * - * @param string Request body - * @access public - */ - function setBody($body) - { - $this->_body = $body; - } - - /** - * Clears any postdata that has been added (DEPRECATED). - * - * Useful for multiple request scenarios. - * - * @access public - * @deprecated deprecated since 1.2 - */ - function clearPostData() - { - $this->_postData = null; - } - - /** - * Appends a cookie to "Cookie:" header - * - * @param string $name cookie name - * @param string $value cookie value - * @access public - */ - function addCookie($name, $value) - { - $cookies = isset($this->_requestHeaders['cookie']) ? $this->_requestHeaders['cookie']. '; ' : ''; - $this->addHeader('Cookie', $cookies . $name . '=' . $value); - } - - /** - * Clears any cookies that have been added (DEPRECATED). - * - * Useful for multiple request scenarios - * - * @access public - * @deprecated deprecated since 1.2 - */ - function clearCookies() - { - $this->removeHeader('Cookie'); - } - - /** - * Sends the request - * - * @access public - * @param bool Whether to store response body in Response object property, - * set this to false if downloading a LARGE file and using a Listener - * @return mixed PEAR error on error, true otherwise - */ - function sendRequest($saveBody = true) - { - if (!is_a($this->_url, 'Net_URL')) { - return PEAR::raiseError('No URL given', HTTP_REQUEST_ERROR_URL); - } - - $host = isset($this->_proxy_host) ? $this->_proxy_host : $this->_url->host; - $port = isset($this->_proxy_port) ? $this->_proxy_port : $this->_url->port; - - if (strcasecmp($this->_url->protocol, 'https') == 0) { - // Bug #14127, don't try connecting to HTTPS sites without OpenSSL - if (version_compare(PHP_VERSION, '4.3.0', '<') || !extension_loaded('openssl')) { - return PEAR::raiseError('Need PHP 4.3.0 or later with OpenSSL support for https:// requests', - HTTP_REQUEST_ERROR_URL); - } elseif (isset($this->_proxy_host)) { - return PEAR::raiseError('HTTPS proxies are not supported', HTTP_REQUEST_ERROR_PROXY); - } - $host = 'ssl://' . $host; - } - - // magic quotes may fuck up file uploads and chunked response processing - $magicQuotes = ini_get('magic_quotes_runtime'); - ini_set('magic_quotes_runtime', false); - - // RFC 2068, section 19.7.1: A client MUST NOT send the Keep-Alive - // connection token to a proxy server... - if (isset($this->_proxy_host) && !empty($this->_requestHeaders['connection']) && - 'Keep-Alive' == $this->_requestHeaders['connection']) - { - $this->removeHeader('connection'); - } - - $keepAlive = (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http && empty($this->_requestHeaders['connection'])) || - (!empty($this->_requestHeaders['connection']) && 'Keep-Alive' == $this->_requestHeaders['connection']); - $sockets = &PEAR::getStaticProperty('HTTP_Request', 'sockets'); - $sockKey = $host . ':' . $port; - unset($this->_sock); - - // There is a connected socket in the "static" property? - if ($keepAlive && !empty($sockets[$sockKey]) && - !empty($sockets[$sockKey]->fp)) - { - $this->_sock =& $sockets[$sockKey]; - $err = null; - } else { - $this->_notify('connect'); - $this->_sock =& new Net_Socket(); - $err = $this->_sock->connect($host, $port, null, $this->_timeout, $this->_socketOptions); - } - PEAR::isError($err) or $err = $this->_sock->write($this->_buildRequest()); - - if (!PEAR::isError($err)) { - if (!empty($this->_readTimeout)) { - $this->_sock->setTimeout($this->_readTimeout[0], $this->_readTimeout[1]); - } - - $this->_notify('sentRequest'); - - // Read the response - $this->_response = &new HTTP_Response($this->_sock, $this->_listeners); - $err = $this->_response->process( - $this->_saveBody && $saveBody, - HTTP_REQUEST_METHOD_HEAD != $this->_method - ); - - if ($keepAlive) { - $keepAlive = (isset($this->_response->_headers['content-length']) - || (isset($this->_response->_headers['transfer-encoding']) - && strtolower($this->_response->_headers['transfer-encoding']) == 'chunked')); - if ($keepAlive) { - if (isset($this->_response->_headers['connection'])) { - $keepAlive = strtolower($this->_response->_headers['connection']) == 'keep-alive'; - } else { - $keepAlive = 'HTTP/'.HTTP_REQUEST_HTTP_VER_1_1 == $this->_response->_protocol; - } - } - } - } - - ini_set('magic_quotes_runtime', $magicQuotes); - - if (PEAR::isError($err)) { - return $err; - } - - if (!$keepAlive) { - $this->disconnect(); - // Store the connected socket in "static" property - } elseif (empty($sockets[$sockKey]) || empty($sockets[$sockKey]->fp)) { - $sockets[$sockKey] =& $this->_sock; - } - - // Check for redirection - if ( $this->_allowRedirects - AND $this->_redirects <= $this->_maxRedirects - AND $this->getResponseCode() > 300 - AND $this->getResponseCode() < 399 - AND !empty($this->_response->_headers['location'])) { - - - $redirect = $this->_response->_headers['location']; - - // Absolute URL - if (preg_match('/^https?:\/\//i', $redirect)) { - $this->_url = &new Net_URL($redirect); - $this->addHeader('Host', $this->_generateHostHeader()); - // Absolute path - } elseif ($redirect{0} == '/') { - $this->_url->path = $redirect; - - // Relative path - } elseif (substr($redirect, 0, 3) == '../' OR substr($redirect, 0, 2) == './') { - if (substr($this->_url->path, -1) == '/') { - $redirect = $this->_url->path . $redirect; - } else { - $redirect = dirname($this->_url->path) . '/' . $redirect; - } - $redirect = Net_URL::resolvePath($redirect); - $this->_url->path = $redirect; - - // Filename, no path - } else { - if (substr($this->_url->path, -1) == '/') { - $redirect = $this->_url->path . $redirect; - } else { - $redirect = dirname($this->_url->path) . '/' . $redirect; - } - $this->_url->path = $redirect; - } - - $this->_redirects++; - return $this->sendRequest($saveBody); - - // Too many redirects - } elseif ($this->_allowRedirects AND $this->_redirects > $this->_maxRedirects) { - return PEAR::raiseError('Too many redirects', HTTP_REQUEST_ERROR_REDIRECTS); - } - - return true; - } - - /** - * Disconnect the socket, if connected. Only useful if using Keep-Alive. - * - * @access public - */ - function disconnect() - { - if (!empty($this->_sock) && !empty($this->_sock->fp)) { - $this->_notify('disconnect'); - $this->_sock->disconnect(); - } - } - - /** - * Returns the response code - * - * @access public - * @return mixed Response code, false if not set - */ - function getResponseCode() - { - return isset($this->_response->_code) ? $this->_response->_code : false; - } - - /** - * Returns the response reason phrase - * - * @access public - * @return mixed Response reason phrase, false if not set - */ - function getResponseReason() - { - return isset($this->_response->_reason) ? $this->_response->_reason : false; - } - - /** - * Returns either the named header or all if no name given - * - * @access public - * @param string The header name to return, do not set to get all headers - * @return mixed either the value of $headername (false if header is not present) - * or an array of all headers - */ - function getResponseHeader($headername = null) - { - if (!isset($headername)) { - return isset($this->_response->_headers)? $this->_response->_headers: array(); - } else { - $headername = strtolower($headername); - return isset($this->_response->_headers[$headername]) ? $this->_response->_headers[$headername] : false; - } - } - - /** - * Returns the body of the response - * - * @access public - * @return mixed response body, false if not set - */ - function getResponseBody() - { - return isset($this->_response->_body) ? $this->_response->_body : false; - } - - /** - * Returns cookies set in response - * - * @access public - * @return mixed array of response cookies, false if none are present - */ - function getResponseCookies() - { - return isset($this->_response->_cookies) ? $this->_response->_cookies : false; - } - - /** - * Builds the request string - * - * @access private - * @return string The request string - */ - function _buildRequest() - { - $separator = ini_get('arg_separator.output'); - ini_set('arg_separator.output', '&'); - $querystring = ($querystring = $this->_url->getQueryString()) ? '?' . $querystring : ''; - ini_set('arg_separator.output', $separator); - - $host = isset($this->_proxy_host) ? $this->_url->protocol . '://' . $this->_url->host : ''; - $port = (isset($this->_proxy_host) AND $this->_url->port != 80) ? ':' . $this->_url->port : ''; - $path = $this->_url->path . $querystring; - $url = $host . $port . $path; - - if (!strlen($url)) { - $url = '/'; - } - - $request = $this->_method . ' ' . $url . ' HTTP/' . $this->_http . "\r\n"; - - if (in_array($this->_method, $this->_bodyDisallowed) || - (0 == strlen($this->_body) && (HTTP_REQUEST_METHOD_POST != $this->_method || - (empty($this->_postData) && empty($this->_postFiles))))) - { - $this->removeHeader('Content-Type'); - } else { - if (empty($this->_requestHeaders['content-type'])) { - // Add default content-type - $this->addHeader('Content-Type', 'application/x-www-form-urlencoded'); - } elseif ('multipart/form-data' == $this->_requestHeaders['content-type']) { - $boundary = 'HTTP_Request_' . md5(uniqid('request') . microtime()); - $this->addHeader('Content-Type', 'multipart/form-data; boundary=' . $boundary); - } - } - - // Request Headers - if (!empty($this->_requestHeaders)) { - foreach ($this->_requestHeaders as $name => $value) { - $canonicalName = implode('-', array_map('ucfirst', explode('-', $name))); - $request .= $canonicalName . ': ' . $value . "\r\n"; - } - } - - // Method does not allow a body, simply add a final CRLF - if (in_array($this->_method, $this->_bodyDisallowed)) { - - $request .= "\r\n"; - - // Post data if it's an array - } elseif (HTTP_REQUEST_METHOD_POST == $this->_method && - (!empty($this->_postData) || !empty($this->_postFiles))) { - - // "normal" POST request - if (!isset($boundary)) { - $postdata = implode('&', array_map( - create_function('$a', 'return $a[0] . \'=\' . $a[1];'), - $this->_flattenArray('', $this->_postData) - )); - - // multipart request, probably with file uploads - } else { - $postdata = ''; - if (!empty($this->_postData)) { - $flatData = $this->_flattenArray('', $this->_postData); - foreach ($flatData as $item) { - $postdata .= '--' . $boundary . "\r\n"; - $postdata .= 'Content-Disposition: form-data; name="' . $item[0] . '"'; - $postdata .= "\r\n\r\n" . urldecode($item[1]) . "\r\n"; - } - } - foreach ($this->_postFiles as $name => $value) { - if (is_array($value['name'])) { - $varname = $name . ($this->_useBrackets? '[]': ''); - } else { - $varname = $name; - $value['name'] = array($value['name']); - } - foreach ($value['name'] as $key => $filename) { - $fp = fopen($filename, 'r'); - $basename = basename($filename); - $type = is_array($value['type'])? @$value['type'][$key]: $value['type']; - - $postdata .= '--' . $boundary . "\r\n"; - $postdata .= 'Content-Disposition: form-data; name="' . $varname . '"; filename="' . $basename . '"'; - $postdata .= "\r\nContent-Type: " . $type; - $postdata .= "\r\n\r\n" . fread($fp, filesize($filename)) . "\r\n"; - fclose($fp); - } - } - $postdata .= '--' . $boundary . "--\r\n"; - } - $request .= 'Content-Length: ' . - (HTTP_REQUEST_MBSTRING? mb_strlen($postdata, 'iso-8859-1'): strlen($postdata)) . - "\r\n\r\n"; - $request .= $postdata; - - // Explicitly set request body - } elseif (0 < strlen($this->_body)) { - - $request .= 'Content-Length: ' . - (HTTP_REQUEST_MBSTRING? mb_strlen($this->_body, 'iso-8859-1'): strlen($this->_body)) . - "\r\n\r\n"; - $request .= $this->_body; - - // No body: send a Content-Length header nonetheless (request #12900), - // but do that only for methods that require a body (bug #14740) - } else { - - if (in_array($this->_method, $this->_bodyRequired)) { - $request .= "Content-Length: 0\r\n"; - } - $request .= "\r\n"; - } - - return $request; - } - - /** - * Helper function to change the (probably multidimensional) associative array - * into the simple one. - * - * @param string name for item - * @param mixed item's values - * @return array array with the following items: array('item name', 'item value'); - * @access private - */ - function _flattenArray($name, $values) - { - if (!is_array($values)) { - return array(array($name, $values)); - } else { - $ret = array(); - foreach ($values as $k => $v) { - if (empty($name)) { - $newName = $k; - } elseif ($this->_useBrackets) { - $newName = $name . '[' . $k . ']'; - } else { - $newName = $name; - } - $ret = array_merge($ret, $this->_flattenArray($newName, $v)); - } - return $ret; - } - } - - - /** - * Adds a Listener to the list of listeners that are notified of - * the object's events - * - * Events sent by HTTP_Request object - * - 'connect': on connection to server - * - 'sentRequest': after the request was sent - * - 'disconnect': on disconnection from server - * - * Events sent by HTTP_Response object - * - 'gotHeaders': after receiving response headers (headers are passed in $data) - * - 'tick': on receiving a part of response body (the part is passed in $data) - * - 'gzTick': on receiving a gzip-encoded part of response body (ditto) - * - 'gotBody': after receiving the response body (passes the decoded body in $data if it was gzipped) - * - * @param HTTP_Request_Listener listener to attach - * @return boolean whether the listener was successfully attached - * @access public - */ - function attach(&$listener) - { - if (!is_a($listener, 'HTTP_Request_Listener')) { - return false; - } - $this->_listeners[$listener->getId()] =& $listener; - return true; - } - - - /** - * Removes a Listener from the list of listeners - * - * @param HTTP_Request_Listener listener to detach - * @return boolean whether the listener was successfully detached - * @access public - */ - function detach(&$listener) - { - if (!is_a($listener, 'HTTP_Request_Listener') || - !isset($this->_listeners[$listener->getId()])) { - return false; - } - unset($this->_listeners[$listener->getId()]); - return true; - } - - - /** - * Notifies all registered listeners of an event. - * - * @param string Event name - * @param mixed Additional data - * @access private - * @see HTTP_Request::attach() - */ - function _notify($event, $data = null) - { - foreach (array_keys($this->_listeners) as $id) { - $this->_listeners[$id]->update($this, $event, $data); - } - } -} - - -/** - * Response class to complement the Request class - * - * @category HTTP - * @package HTTP_Request - * @author Richard Heyes <richard@phpguru.org> - * @author Alexey Borzov <avb@php.net> - * @version Release: 1.4.4 - */ -class HTTP_Response -{ - /** - * Socket object - * @var Net_Socket - */ - var $_sock; - - /** - * Protocol - * @var string - */ - var $_protocol; - - /** - * Return code - * @var string - */ - var $_code; - - /** - * Response reason phrase - * @var string - */ - var $_reason; - - /** - * Response headers - * @var array - */ - var $_headers; - - /** - * Cookies set in response - * @var array - */ - var $_cookies; - - /** - * Response body - * @var string - */ - var $_body = ''; - - /** - * Used by _readChunked(): remaining length of the current chunk - * @var string - */ - var $_chunkLength = 0; - - /** - * Attached listeners - * @var array - */ - var $_listeners = array(); - - /** - * Bytes left to read from message-body - * @var null|int - */ - var $_toRead; - - /** - * Constructor - * - * @param Net_Socket socket to read the response from - * @param array listeners attached to request - */ - function HTTP_Response(&$sock, &$listeners) - { - $this->_sock =& $sock; - $this->_listeners =& $listeners; - } - - - /** - * Processes a HTTP response - * - * This extracts response code, headers, cookies and decodes body if it - * was encoded in some way - * - * @access public - * @param bool Whether to store response body in object property, set - * this to false if downloading a LARGE file and using a Listener. - * This is assumed to be true if body is gzip-encoded. - * @param bool Whether the response can actually have a message-body. - * Will be set to false for HEAD requests. - * @throws PEAR_Error - * @return mixed true on success, PEAR_Error in case of malformed response - */ - function process($saveBody = true, $canHaveBody = true) - { - do { - $line = $this->_sock->readLine(); - if (!preg_match('!^(HTTP/\d\.\d) (\d{3})(?: (.+))?!', $line, $s)) { - return PEAR::raiseError('Malformed response', HTTP_REQUEST_ERROR_RESPONSE); - } else { - $this->_protocol = $s[1]; - $this->_code = intval($s[2]); - $this->_reason = empty($s[3])? null: $s[3]; - } - while ('' !== ($header = $this->_sock->readLine())) { - $this->_processHeader($header); - } - } while (100 == $this->_code); - - $this->_notify('gotHeaders', $this->_headers); - - // RFC 2616, section 4.4: - // 1. Any response message which "MUST NOT" include a message-body ... - // is always terminated by the first empty line after the header fields - // 3. ... If a message is received with both a - // Transfer-Encoding header field and a Content-Length header field, - // the latter MUST be ignored. - $canHaveBody = $canHaveBody && $this->_code >= 200 && - $this->_code != 204 && $this->_code != 304; - - // If response body is present, read it and decode - $chunked = isset($this->_headers['transfer-encoding']) && ('chunked' == $this->_headers['transfer-encoding']); - $gzipped = isset($this->_headers['content-encoding']) && ('gzip' == $this->_headers['content-encoding']); - $hasBody = false; - if ($canHaveBody && ($chunked || !isset($this->_headers['content-length']) || - 0 != $this->_headers['content-length'])) - { - if ($chunked || !isset($this->_headers['content-length'])) { - $this->_toRead = null; - } else { - $this->_toRead = $this->_headers['content-length']; - } - while (!$this->_sock->eof() && (is_null($this->_toRead) || 0 < $this->_toRead)) { - if ($chunked) { - $data = $this->_readChunked(); - } elseif (is_null($this->_toRead)) { - $data = $this->_sock->read(4096); - } else { - $data = $this->_sock->read(min(4096, $this->_toRead)); - $this->_toRead -= HTTP_REQUEST_MBSTRING? mb_strlen($data, 'iso-8859-1'): strlen($data); - } - if ('' == $data && (!$this->_chunkLength || $this->_sock->eof())) { - break; - } else { - $hasBody = true; - if ($saveBody || $gzipped) { - $this->_body .= $data; - } - $this->_notify($gzipped? 'gzTick': 'tick', $data); - } - } - } - - if ($hasBody) { - // Uncompress the body if needed - if ($gzipped) { - $body = $this->_decodeGzip($this->_body); - if (PEAR::isError($body)) { - return $body; - } - $this->_body = $body; - $this->_notify('gotBody', $this->_body); - } else { - $this->_notify('gotBody'); - } - } - return true; - } - - - /** - * Processes the response header - * - * @access private - * @param string HTTP header - */ - function _processHeader($header) - { - if (false === strpos($header, ':')) { - return; - } - list($headername, $headervalue) = explode(':', $header, 2); - $headername = strtolower($headername); - $headervalue = ltrim($headervalue); - - if ('set-cookie' != $headername) { - if (isset($this->_headers[$headername])) { - $this->_headers[$headername] .= ',' . $headervalue; - } else { - $this->_headers[$headername] = $headervalue; - } - } else { - $this->_parseCookie($headervalue); - } - } - - - /** - * Parse a Set-Cookie header to fill $_cookies array - * - * @access private - * @param string value of Set-Cookie header - */ - function _parseCookie($headervalue) - { - $cookie = array( - 'expires' => null, - 'domain' => null, - 'path' => null, - 'secure' => false - ); - - // Only a name=value pair - if (!strpos($headervalue, ';')) { - $pos = strpos($headervalue, '='); - $cookie['name'] = trim(substr($headervalue, 0, $pos)); - $cookie['value'] = trim(substr($headervalue, $pos + 1)); - - // Some optional parameters are supplied - } else { - $elements = explode(';', $headervalue); - $pos = strpos($elements[0], '='); - $cookie['name'] = trim(substr($elements[0], 0, $pos)); - $cookie['value'] = trim(substr($elements[0], $pos + 1)); - - for ($i = 1; $i < count($elements); $i++) { - if (false === strpos($elements[$i], '=')) { - $elName = trim($elements[$i]); - $elValue = null; - } else { - list ($elName, $elValue) = array_map('trim', explode('=', $elements[$i])); - } - $elName = strtolower($elName); - if ('secure' == $elName) { - $cookie['secure'] = true; - } elseif ('expires' == $elName) { - $cookie['expires'] = str_replace('"', '', $elValue); - } elseif ('path' == $elName || 'domain' == $elName) { - $cookie[$elName] = urldecode($elValue); - } else { - $cookie[$elName] = $elValue; - } - } - } - $this->_cookies[] = $cookie; - } - - - /** - * Read a part of response body encoded with chunked Transfer-Encoding - * - * @access private - * @return string - */ - function _readChunked() - { - // at start of the next chunk? - if (0 == $this->_chunkLength) { - $line = $this->_sock->readLine(); - if (preg_match('/^([0-9a-f]+)/i', $line, $matches)) { - $this->_chunkLength = hexdec($matches[1]); - // Chunk with zero length indicates the end - if (0 == $this->_chunkLength) { - $this->_sock->readLine(); // make this an eof() - return ''; - } - } else { - return ''; - } - } - $data = $this->_sock->read($this->_chunkLength); - $this->_chunkLength -= HTTP_REQUEST_MBSTRING? mb_strlen($data, 'iso-8859-1'): strlen($data); - if (0 == $this->_chunkLength) { - $this->_sock->readLine(); // Trailing CRLF - } - return $data; - } - - - /** - * Notifies all registered listeners of an event. - * - * @param string Event name - * @param mixed Additional data - * @access private - * @see HTTP_Request::_notify() - */ - function _notify($event, $data = null) - { - foreach (array_keys($this->_listeners) as $id) { - $this->_listeners[$id]->update($this, $event, $data); - } - } - - - /** - * Decodes the message-body encoded by gzip - * - * The real decoding work is done by gzinflate() built-in function, this - * method only parses the header and checks data for compliance with - * RFC 1952 - * - * @access private - * @param string gzip-encoded data - * @return string decoded data - */ - function _decodeGzip($data) - { - if (HTTP_REQUEST_MBSTRING) { - $oldEncoding = mb_internal_encoding(); - mb_internal_encoding('iso-8859-1'); - } - $length = strlen($data); - // If it doesn't look like gzip-encoded data, don't bother - if (18 > $length || strcmp(substr($data, 0, 2), "\x1f\x8b")) { - return $data; - } - $method = ord(substr($data, 2, 1)); - if (8 != $method) { - return PEAR::raiseError('_decodeGzip(): unknown compression method', HTTP_REQUEST_ERROR_GZIP_METHOD); - } - $flags = ord(substr($data, 3, 1)); - if ($flags & 224) { - return PEAR::raiseError('_decodeGzip(): reserved bits are set', HTTP_REQUEST_ERROR_GZIP_DATA); - } - - // header is 10 bytes minimum. may be longer, though. - $headerLength = 10; - // extra fields, need to skip 'em - if ($flags & 4) { - if ($length - $headerLength - 2 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $extraLength = unpack('v', substr($data, 10, 2)); - if ($length - $headerLength - 2 - $extraLength[1] < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $headerLength += $extraLength[1] + 2; - } - // file name, need to skip that - if ($flags & 8) { - if ($length - $headerLength - 1 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $filenameLength = strpos(substr($data, $headerLength), chr(0)); - if (false === $filenameLength || $length - $headerLength - $filenameLength - 1 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $headerLength += $filenameLength + 1; - } - // comment, need to skip that also - if ($flags & 16) { - if ($length - $headerLength - 1 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $commentLength = strpos(substr($data, $headerLength), chr(0)); - if (false === $commentLength || $length - $headerLength - $commentLength - 1 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $headerLength += $commentLength + 1; - } - // have a CRC for header. let's check - if ($flags & 1) { - if ($length - $headerLength - 2 < 8) { - return PEAR::raiseError('_decodeGzip(): data too short', HTTP_REQUEST_ERROR_GZIP_DATA); - } - $crcReal = 0xffff & crc32(substr($data, 0, $headerLength)); - $crcStored = unpack('v', substr($data, $headerLength, 2)); - if ($crcReal != $crcStored[1]) { - return PEAR::raiseError('_decodeGzip(): header CRC check failed', HTTP_REQUEST_ERROR_GZIP_CRC); - } - $headerLength += 2; - } - // unpacked data CRC and size at the end of encoded data - $tmp = unpack('V2', substr($data, -8)); - $dataCrc = $tmp[1]; - $dataSize = $tmp[2]; - - // finally, call the gzinflate() function - // don't pass $dataSize to gzinflate, see bugs #13135, #14370 - $unpacked = gzinflate(substr($data, $headerLength, -8)); - if (false === $unpacked) { - return PEAR::raiseError('_decodeGzip(): gzinflate() call failed', HTTP_REQUEST_ERROR_GZIP_READ); - } elseif ($dataSize != strlen($unpacked)) { - return PEAR::raiseError('_decodeGzip(): data size check failed', HTTP_REQUEST_ERROR_GZIP_READ); - } elseif ((0xffffffff & $dataCrc) != (0xffffffff & crc32($unpacked))) { - return PEAR::raiseError('_decodeGzip(): data CRC check failed', HTTP_REQUEST_ERROR_GZIP_CRC); - } - if (HTTP_REQUEST_MBSTRING) { - mb_internal_encoding($oldEncoding); - } - return $unpacked; - } -} // End class HTTP_Response -?> diff --git a/extlib/HTTP/Request/Listener.php b/extlib/HTTP/Request/Listener.php deleted file mode 100644 index b4fe444b35..0000000000 --- a/extlib/HTTP/Request/Listener.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php -/** - * Listener for HTTP_Request and HTTP_Response objects - * - * PHP versions 4 and 5 - * - * LICENSE: - * - * Copyright (c) 2002-2007, Richard Heyes - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * o Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * o Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * o The names of the authors may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * @category HTTP - * @package HTTP_Request - * @author Alexey Borzov <avb@php.net> - * @copyright 2002-2007 Richard Heyes - * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Listener.php,v 1.3 2007/05/18 10:33:31 avb Exp $ - * @link http://pear.php.net/package/HTTP_Request/ - */ - -/** - * Listener for HTTP_Request and HTTP_Response objects - * - * This class implements the Observer part of a Subject-Observer - * design pattern. - * - * @category HTTP - * @package HTTP_Request - * @author Alexey Borzov <avb@php.net> - * @version Release: 1.4.4 - */ -class HTTP_Request_Listener -{ - /** - * A listener's identifier - * @var string - */ - var $_id; - - /** - * Constructor, sets the object's identifier - * - * @access public - */ - function HTTP_Request_Listener() - { - $this->_id = md5(uniqid('http_request_', 1)); - } - - - /** - * Returns the listener's identifier - * - * @access public - * @return string - */ - function getId() - { - return $this->_id; - } - - - /** - * This method is called when Listener is notified of an event - * - * @access public - * @param object an object the listener is attached to - * @param string Event name - * @param mixed Additional data - * @abstract - */ - function update(&$subject, $event, $data = null) - { - echo "Notified of event: '$event'\n"; - if (null !== $data) { - echo "Additional data: "; - var_dump($data); - } - } -} -?> diff --git a/extlib/Net/URL/Mapper.php b/extlib/Net/URL/Mapper.php index 65e38818bb..009c135214 100644 --- a/extlib/Net/URL/Mapper.php +++ b/extlib/Net/URL/Mapper.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Mapper.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Mapper.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Exception.php b/extlib/Net/URL/Mapper/Exception.php index ac3ad172b1..1915ad9782 100644 --- a/extlib/Net/URL/Mapper/Exception.php +++ b/extlib/Net/URL/Mapper/Exception.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Exception.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Exception.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Part.php b/extlib/Net/URL/Mapper/Part.php index 2f15b2c162..087c368eea 100644 --- a/extlib/Net/URL/Mapper/Part.php +++ b/extlib/Net/URL/Mapper/Part.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Part.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Part.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Part/Dynamic.php b/extlib/Net/URL/Mapper/Part/Dynamic.php index 349d87338c..914afa4211 100644 --- a/extlib/Net/URL/Mapper/Part/Dynamic.php +++ b/extlib/Net/URL/Mapper/Part/Dynamic.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Dynamic.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Dynamic.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Part/Fixed.php b/extlib/Net/URL/Mapper/Part/Fixed.php index b315b442db..7d94973eac 100644 --- a/extlib/Net/URL/Mapper/Part/Fixed.php +++ b/extlib/Net/URL/Mapper/Part/Fixed.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Fixed.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Fixed.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Part/Wildcard.php b/extlib/Net/URL/Mapper/Part/Wildcard.php index 6085ff6489..84e29e1306 100644 --- a/extlib/Net/URL/Mapper/Part/Wildcard.php +++ b/extlib/Net/URL/Mapper/Part/Wildcard.php @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Wildcard.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Wildcard.php 232857 2007-03-28 10:23:04Z mansion $ * @link http://pear.php.net/package/Net_URL_Mapper */ diff --git a/extlib/Net/URL/Mapper/Path.php b/extlib/Net/URL/Mapper/Path.php index b541002c7a..b459fa1fd3 100644 --- a/extlib/Net/URL/Mapper/Path.php +++ b/extlib/Net/URL/Mapper/Path.php @@ -5,7 +5,7 @@ * PHP version 5 * * LICENSE: - * + * * Copyright (c) 2006, Bertrand Mansion <golgote@mamasam.com> * All rights reserved. * @@ -16,9 +16,9 @@ * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the + * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * * The names of the authors may not be used to endorse or promote products + * * The names of the authors may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS @@ -37,7 +37,7 @@ * @package Net_URL_Mapper * @author Bertrand Mansion <golgote@mamasam.com> * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version CVS: $Id: Path.php,v 1.1 2007/03/28 10:23:04 mansion Exp $ + * @version CVS: $Id: Path.php 296456 2010-03-20 00:41:08Z kguest $ * @link http://pear.php.net/package/Net_URL_Mapper */ @@ -84,6 +84,22 @@ class Net_URL_Mapper_Path $this->getRequired(); } + /** + * Called when the object is serialized + * Make sure we do not store too much info when the object is serialized + * and call the regular expressions generator functions so that they will + * not need to be generated again on wakeup. + * + * @return array Name of properties to store when serialized + */ + public function __sleep() + { + $this->getFormat(); + $this->getRule(); + return array('alias', 'path', 'defaults', 'rule', 'format', + 'parts', 'minKeys', 'maxKeys', 'fixed', 'required'); + } + public function getPath() { return $this->path; @@ -127,7 +143,7 @@ class Net_URL_Mapper_Path /** * Set the path parts default values * @param array Associative array with format partname => value - */ + */ public function setDefaults($defaults) { if (is_array($defaults)) { @@ -140,11 +156,11 @@ class Net_URL_Mapper_Path /** * Set the path parts default values * @param array Associative array with format partname => value - */ + */ public function setRules($rules) { if (is_array($rules)) { - $this->rules = $rules; + $this->rules = $rules; } else { $this->rules = array(); } @@ -153,7 +169,7 @@ class Net_URL_Mapper_Path /** * Returns the regular expression used to match this path * @return string PERL Regular expression - */ + */ public function getRule() { if (is_null($this->rule)) { @@ -213,10 +229,10 @@ class Net_URL_Mapper_Path /** * Checks whether the path contains the given part by name - * If value parameter is given, the part also checks if the + * If value parameter is given, the part also checks if the * given value conforms to the part rule. * @param string Part name - * @param mixed The value to check against + * @param mixed The value to check against */ public function hasKey($partName, $value = null) { @@ -241,7 +257,12 @@ class Net_URL_Mapper_Path } $path = '/'.trim(Net_URL::resolvePath($path), '/'); if (!empty($qstring)) { - $path .= '?'.http_build_query($qstring); + if(strpos($path, '?') === false) { + $path .= '?'; + } else { + $path .= '&'; + } + $path .= http_build_query($qstring); } if (!empty($anchor)) { $path .= '#'.ltrim($anchor, '#'); @@ -427,4 +448,4 @@ class Net_URL_Mapper_Path } -?> \ No newline at end of file +?> diff --git a/extlib/Net/URL/Mapper/Path.plex b/extlib/Net/URL/Mapper/Path.plex new file mode 100644 index 0000000000..c5ef1f88ea --- /dev/null +++ b/extlib/Net/URL/Mapper/Path.plex @@ -0,0 +1,334 @@ +<?php +/** + * URL parser and mapper + * + * PHP version 5 + * + * LICENSE: + * + * Copyright (c) 2006, Bertrand Mansion <golgote@mamasam.com> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * The names of the authors may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * @category Net + * @package Net_URL_Mapper + * @author Bertrand Mansion <golgote@mamasam.com> + * @license http://opensource.org/licenses/bsd-license.php New BSD License + * @version CVS: $Id: Path.plex 283937 2009-07-12 11:37:21Z mansion $ + * @link http://pear.php.net/package/Net_URL_Mapper + */ + +require_once 'Net/URL/Mapper/Part/Dynamic.php'; +require_once 'Net/URL/Mapper/Part/Wildcard.php'; +require_once 'Net/URL/Mapper/Part/Fixed.php'; + +class Net_URL_Mapper_Path +{ + private $path = ''; + private $N = 0; + public $token; + public $value; + private $line = 1; + private $state = 1; + + + protected $alias; + protected $rules = array(); + protected $defaults = array(); + protected $parts = array(); + protected $rule; + protected $format; + protected $minKeys; + protected $maxKeys; + protected $fixed = true; + protected $required; + + public function __construct($path = '', $defaults = array(), $rules = array()) + { + $this->path = '/'.trim(Net_URL::resolvePath($path), '/'); + $this->setDefaults($defaults); + $this->setRules($rules); + + try { + $this->parsePath(); + } catch (Exception $e) { + // The path could not be parsed correctly, treat it as fixed + $this->fixed = true; + $part = self::createPart(Net_URL_Mapper_Part::FIXED, $this->path, $this->path); + $this->parts = array($part); + } + $this->getRequired(); + } + + /** + * Called when the object is serialized + * Make sure we do not store too much info when the object is serialized + * and call the regular expressions generator functions so that they will + * not need to be generated again on wakeup. + * + * @return array Name of properties to store when serialized + */ + public function __sleep() + { + $this->getFormat(); + $this->getRule(); + return array('alias', 'path', 'defaults', 'rule', 'format', + 'parts', 'minKeys', 'maxKeys', 'fixed', 'required'); + } + + public function getPath() + { + return $this->path; + } + + protected function parsePath() + { + while ($this->yylex()) { } + } + + /** + * Get the path alias + * Path aliases can be used instead of full path + * @return null|string + */ + public function getAlias() + { + return $this->alias; + } + + /** + * Set the path name + * @param string Set the path name + * @see getAlias() + */ + public function setAlias($alias) + { + $this->alias = $alias; + return $this; + } + + /** + * Get the path parts default values + * @return null|array + */ + public function getDefaults() + { + return $this->defaults; + } + + /** + * Set the path parts default values + * @param array Associative array with format partname => value + */ + public function setDefaults($defaults) + { + if (is_array($defaults)) { + $this->defaults = $defaults; + } else { + $this->defaults = array(); + } + } + + /** + * Set the path parts default values + * @param array Associative array with format partname => value + */ + public function setRules($rules) + { + if (is_array($rules)) { + $this->rules = $rules; + } else { + $this->rules = array(); + } + } + + /** + * Returns the regular expression used to match this path + * @return string PERL Regular expression + */ + public function getRule() + { + if (is_null($this->rule)) { + $this->rule = '/^'; + foreach ($this->parts as $path => $part) { + $this->rule .= $part->getRule(); + } + $this->rule .= '$/'; + } + return $this->rule; + } + + public function getFormat() + { + if (is_null($this->format)) { + $this->format = '/^'; + foreach ($this->parts as $path => $part) { + $this->format .= $part->getFormat(); + } + $this->format .= '$/'; + } + return $this->format; + } + + protected function addPart($part) + { + if (array_key_exists($part->content, $this->defaults)) { + $part->setRequired(false); + $part->setDefaults($this->defaults[$part->content]); + } + if (isset($this->rules[$part->content])) { + $part->setRule($this->rules[$part->content]); + } + $this->rule = null; + if ($part->getType() != Net_URL_Mapper_Part::FIXED) { + $this->fixed = false; + $this->parts[$part->content] = $part; + } else { + $this->parts[] = $part; + } + return $part; + } + + public static function createPart($type, $content, $path) + { + switch ($type) { + case Net_URL_Mapper_Part::DYNAMIC: + return new Net_URL_Mapper_Part_Dynamic($content, $path); + break; + case Net_URL_Mapper_Part::WILDCARD: + return new Net_URL_Mapper_Part_Wildcard($content, $path); + break; + default: + return new Net_URL_Mapper_Part_Fixed($content, $path); + } + } + + /** + * Checks whether the path contains the given part by name + * If value parameter is given, the part also checks if the + * given value conforms to the part rule. + * @param string Part name + * @param mixed The value to check against + */ + public function hasKey($partName, $value = null) + { + if (array_key_exists($partName, $this->parts)) { + if (!is_null($value) && $value !== false) { + return $this->parts[$partName]->match($value); + } else { + return true; + } + } elseif (array_key_exists($partName, $this->defaults) && + $value == $this->defaults[$partName]) { + return true; + } + return false; + } + + public function generate($values = array(), $qstring = array(), $anchor = '') + { + $path = ''; + foreach ($this->parts as $part) { + $path .= $part->generate($values); + } + $path = '/'.trim(Net_URL::resolvePath($path), '/'); + if (!empty($qstring)) { + $path .= '?'.http_build_query($qstring); + } + if (!empty($anchor)) { + $path .= '#'.ltrim($anchor, '#'); + } + return $path; + } + + public function getRequired() + { + if (!isset($this->required)) { + $req = array(); + foreach ($this->parts as $part) { + if ($part->isRequired()) { + $req[] = $part->content; + } + } + $this->required = $req; + } + return $this->required; + } + + public function getMaxKeys() + { + if (is_null($this->maxKeys)) { + $this->maxKeys = count($this->required); + $this->maxKeys += count($this->defaults); + } + return $this->maxKeys; + } + + + +/*!lex2php +%input $this->path +%counter $this->N +%token $this->token +%value $this->value +%line $this->line +static = /\/?([^\/:\*]+)/ +variable = /([a-zA-Z0-9_]+)/ +dynamic = /\/?:/ +wildcard = @/?\*@ +grouping = /\/?\(([a-zA-Z0-9_]+)\)/ +*/ +/*!lex2php +%statename START +dynamic grouping { + $c = $yy_subpatterns[0]; + $part = self::createPart(Net_URL_Mapper_Part::DYNAMIC, $c, $this->value); + $this->addPart($part); +} +wildcard grouping { + $c = $yy_subpatterns[0]; + $part = self::createPart(Net_URL_Mapper_Part::WILDCARD, $c, $this->value); + $this->addPart($part); +} +dynamic variable { + $c = $yy_subpatterns[0]; + $part = self::createPart(Net_URL_Mapper_Part::DYNAMIC, $c, $this->value); + $this->addPart($part); +} +wildcard variable { + $c = $yy_subpatterns[0]; + $part = self::createPart(Net_URL_Mapper_Part::WILDCARD, $c, $this->value); + $this->addPart($part); +} +static { + $c = $yy_subpatterns[0]; + $part = self::createPart(Net_URL_Mapper_Part::FIXED, $c, $this->value); + $this->addPart($part); +} +*/ +} + +?> \ No newline at end of file diff --git a/extlib/OAuth.php b/extlib/OAuth.php index 04984d5fa0..e9c4bdfaec 100644 --- a/extlib/OAuth.php +++ b/extlib/OAuth.php @@ -3,26 +3,26 @@ /* Generic exception class */ -class OAuthException extends Exception {/*{{{*/ +class OAuthException extends Exception { // pass -}/*}}}*/ +} -class OAuthConsumer {/*{{{*/ +class OAuthConsumer { public $key; public $secret; - function __construct($key, $secret, $callback_url=NULL) {/*{{{*/ + function __construct($key, $secret, $callback_url=NULL) { $this->key = $key; $this->secret = $secret; $this->callback_url = $callback_url; - }/*}}}*/ + } - function __toString() {/*{{{*/ + function __toString() { return "OAuthConsumer[key=$this->key,secret=$this->secret]"; - }/*}}}*/ -}/*}}}*/ + } +} -class OAuthToken {/*{{{*/ +class OAuthToken { // access tokens and request tokens public $key; public $secret; @@ -31,56 +31,77 @@ class OAuthToken {/*{{{*/ * key = the token * secret = the token secret */ - function __construct($key, $secret) {/*{{{*/ + function __construct($key, $secret) { $this->key = $key; $this->secret = $secret; - }/*}}}*/ + } /** * generates the basic string serialization of a token that a server * would respond to request_token and access_token calls with */ - function to_string() {/*{{{*/ - return "oauth_token=" . OAuthUtil::urlencode_rfc3986($this->key) . - "&oauth_token_secret=" . OAuthUtil::urlencode_rfc3986($this->secret); - }/*}}}*/ + function to_string() { + return "oauth_token=" . + OAuthUtil::urlencode_rfc3986($this->key) . + "&oauth_token_secret=" . + OAuthUtil::urlencode_rfc3986($this->secret); + } - function __toString() {/*{{{*/ + function __toString() { return $this->to_string(); - }/*}}}*/ -}/*}}}*/ + } +} -class OAuthSignatureMethod {/*{{{*/ - public function check_signature(&$request, $consumer, $token, $signature) { +/** + * A class for implementing a Signature Method + * See section 9 ("Signing Requests") in the spec + */ +abstract class OAuthSignatureMethod { + /** + * Needs to return the name of the Signature Method (ie HMAC-SHA1) + * @return string + */ + abstract public function get_name(); + + /** + * Build up the signature + * NOTE: The output of this function MUST NOT be urlencoded. + * the encoding is handled in OAuthRequest when the final + * request is serialized + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token + * @return string + */ + abstract public function build_signature($request, $consumer, $token); + + /** + * Verifies that a given signature is correct + * @param OAuthRequest $request + * @param OAuthConsumer $consumer + * @param OAuthToken $token + * @param string $signature + * @return bool + */ + public function check_signature($request, $consumer, $token, $signature) { $built = $this->build_signature($request, $consumer, $token); return $built == $signature; - - // Check for zero length, although unlikely here - if (strlen($built) == 0 || strlen($signature) == 0) { - return false; - } - - if (strlen($built) != strlen($signature)) { - return false; - } - - $result = 0; - - // Avoid a timing leak with a (hopefully) time insensitive compare - for ($i = 0; $i < strlen($signature); $i++) { - $result |= ord($built{$i}) ^ ord($signature{$i}); - } - - return $result == 0; } -}/*}}}*/ +} -class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {/*{{{*/ - function get_name() {/*{{{*/ +/** + * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104] + * where the Signature Base String is the text and the key is the concatenated values (each first + * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&' + * character (ASCII code 38) even if empty. + * - Chapter 9.2 ("HMAC-SHA1") + */ +class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod { + function get_name() { return "HMAC-SHA1"; - }/*}}}*/ + } - public function build_signature($request, $consumer, $token) {/*{{{*/ + public function build_signature($request, $consumer, $token) { $base_string = $request->get_signature_base_string(); $request->base_string = $base_string; @@ -92,61 +113,74 @@ class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {/*{{{*/ $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); $key = implode('&', $key_parts); - return base64_encode( hash_hmac('sha1', $base_string, $key, true)); - }/*}}}*/ -}/*}}}*/ + return base64_encode(hash_hmac('sha1', $base_string, $key, true)); + } +} -class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {/*{{{*/ - public function get_name() {/*{{{*/ +/** + * The PLAINTEXT method does not provide any security protection and SHOULD only be used + * over a secure channel such as HTTPS. It does not use the Signature Base String. + * - Chapter 9.4 ("PLAINTEXT") + */ +class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod { + public function get_name() { return "PLAINTEXT"; - }/*}}}*/ + } - public function build_signature($request, $consumer, $token) {/*{{{*/ - $sig = array( - OAuthUtil::urlencode_rfc3986($consumer->secret) + /** + * oauth_signature is set to the concatenated encoded values of the Consumer Secret and + * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is + * empty. The result MUST be encoded again. + * - Chapter 9.4.1 ("Generating Signatures") + * + * Please note that the second encoding MUST NOT happen in the SignatureMethod, as + * OAuthRequest handles this! + */ + public function build_signature($request, $consumer, $token) { + $key_parts = array( + $consumer->secret, + ($token) ? $token->secret : "" ); - if ($token) { - array_push($sig, OAuthUtil::urlencode_rfc3986($token->secret)); - } else { - array_push($sig, ''); - } + $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); + $key = implode('&', $key_parts); + $request->base_string = $key; - $raw = implode("&", $sig); - // for debug purposes - $request->base_string = $raw; + return $key; + } +} - return OAuthUtil::urlencode_rfc3986($raw); - }/*}}}*/ -}/*}}}*/ - -class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {/*{{{*/ - public function get_name() {/*{{{*/ +/** + * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in + * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for + * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a + * verified way to the Service Provider, in a manner which is beyond the scope of this + * specification. + * - Chapter 9.3 ("RSA-SHA1") + */ +abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod { + public function get_name() { return "RSA-SHA1"; - }/*}}}*/ + } - protected function fetch_public_cert(&$request) {/*{{{*/ - // not implemented yet, ideas are: - // (1) do a lookup in a table of trusted certs keyed off of consumer - // (2) fetch via http using a url provided by the requester - // (3) some sort of specific discovery code based on request - // - // either way should return a string representation of the certificate - throw Exception("fetch_public_cert not implemented"); - }/*}}}*/ + // Up to the SP to implement this lookup of keys. Possible ideas are: + // (1) do a lookup in a table of trusted certs keyed off of consumer + // (2) fetch via http using a url provided by the requester + // (3) some sort of specific discovery code based on request + // + // Either way should return a string representation of the certificate + protected abstract function fetch_public_cert(&$request); - protected function fetch_private_cert(&$request) {/*{{{*/ - // not implemented yet, ideas are: - // (1) do a lookup in a table of trusted certs keyed off of consumer - // - // either way should return a string representation of the certificate - throw Exception("fetch_private_cert not implemented"); - }/*}}}*/ + // Up to the SP to implement this lookup of keys. Possible ideas are: + // (1) do a lookup in a table of trusted certs keyed off of consumer + // + // Either way should return a string representation of the certificate + protected abstract function fetch_private_cert(&$request); - public function build_signature(&$request, $consumer, $token) {/*{{{*/ + public function build_signature($request, $consumer, $token) { $base_string = $request->get_signature_base_string(); $request->base_string = $base_string; - + // Fetch the private key cert based on the request $cert = $this->fetch_private_cert($request); @@ -154,19 +188,19 @@ class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {/*{{{*/ $privatekeyid = openssl_get_privatekey($cert); // Sign using the key - $ok = openssl_sign($base_string, $signature, $privatekeyid); + $ok = openssl_sign($base_string, $signature, $privatekeyid); // Release the key resource openssl_free_key($privatekeyid); - - return base64_encode($signature); - } /*}}}*/ - public function check_signature(&$request, $consumer, $token, $signature) {/*{{{*/ + return base64_encode($signature); + } + + public function check_signature($request, $consumer, $token, $signature) { $decoded_sig = base64_decode($signature); $base_string = $request->get_signature_base_string(); - + // Fetch the public key cert based on the request $cert = $this->fetch_public_cert($request); @@ -174,143 +208,145 @@ class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {/*{{{*/ $publickeyid = openssl_get_publickey($cert); // Check the computed signature against the one passed in the query - $ok = openssl_verify($base_string, $decoded_sig, $publickeyid); + $ok = openssl_verify($base_string, $decoded_sig, $publickeyid); // Release the key resource openssl_free_key($publickeyid); - - return $ok == 1; - } /*}}}*/ -}/*}}}*/ -class OAuthRequest {/*{{{*/ - private $parameters; - private $http_method; - private $http_url; + return $ok == 1; + } +} + +class OAuthRequest { + protected $parameters; + protected $http_method; + protected $http_url; // for debug purposes public $base_string; public static $version = '1.0'; + public static $POST_INPUT = 'php://input'; - function __construct($http_method, $http_url, $parameters=NULL) {/*{{{*/ - @$parameters or $parameters = array(); + function __construct($http_method, $http_url, $parameters=NULL) { + $parameters = ($parameters) ? $parameters : array(); + $parameters = array_merge( OAuthUtil::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters); $this->parameters = $parameters; $this->http_method = $http_method; $this->http_url = $http_url; - }/*}}}*/ + } /** * attempt to build up a request from what was passed to the server */ - public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) {/*{{{*/ - $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") ? 'http' : 'https'; - @$http_url or $http_url = $scheme . '://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']; - @$http_method or $http_method = $_SERVER['REQUEST_METHOD']; - - $request_headers = OAuthRequest::get_headers(); + public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) { + $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") + ? 'http' + : 'https'; + $http_url = ($http_url) ? $http_url : $scheme . + '://' . $_SERVER['HTTP_HOST'] . + ':' . + $_SERVER['SERVER_PORT'] . + $_SERVER['REQUEST_URI']; + $http_method = ($http_method) ? $http_method : $_SERVER['REQUEST_METHOD']; - // let the library user override things however they'd like, if they know - // which parameters to use then go for it, for example XMLRPC might want to - // do this - if ($parameters) { - $req = new OAuthRequest($http_method, $http_url, $parameters); - } else { - // collect request parameters from query string (GET) and post-data (POST) if appropriate (note: POST vars have priority) - $req_parameters = $_GET; - if ($http_method == "POST" && - ( @strstr($request_headers["Content-Type"], "application/x-www-form-urlencoded") || @strstr($_ENV["CONTENT_TYPE"], "application/x-www-form-urlencoded") )) { - $req_parameters = array_merge($req_parameters, $_POST); + // We weren't handed any parameters, so let's find the ones relevant to + // this request. + // If you run XML-RPC or similar you should use this to provide your own + // parsed parameter-list + if (!$parameters) { + // Find request headers + $request_headers = OAuthUtil::get_headers(); + + // Parse the query-string to find GET parameters + $parameters = OAuthUtil::parse_parameters($_SERVER['QUERY_STRING']); + + // It's a POST request of the proper content-type, so parse POST + // parameters and add those overriding any duplicates from GET + if ($http_method == "POST" + && isset($request_headers['Content-Type']) + && strstr($request_headers['Content-Type'], + 'application/x-www-form-urlencoded') + ) { + $post_data = OAuthUtil::parse_parameters( + file_get_contents(self::$POST_INPUT) + ); + $parameters = array_merge($parameters, $post_data); + } + + // We have a Authorization-header with OAuth data. Parse the header + // and add those overriding any duplicates from GET or POST + if (isset($request_headers['Authorization']) && substr($request_headers['Authorization'], 0, 6) == 'OAuth ') { + $header_parameters = OAuthUtil::split_header( + $request_headers['Authorization'] + ); + $parameters = array_merge($parameters, $header_parameters); } - // next check for the auth header, we need to do some extra stuff - // if that is the case, namely suck in the parameters from GET or POST - // so that we can include them in the signature - if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") { - $header_parameters = OAuthRequest::split_header($request_headers['Authorization']); - $parameters = array_merge($req_parameters, $header_parameters); - $req = new OAuthRequest($http_method, $http_url, $parameters); - } else $req = new OAuthRequest($http_method, $http_url, $req_parameters); } - return $req; - }/*}}}*/ + return new OAuthRequest($http_method, $http_url, $parameters); + } /** * pretty much a helper function to set up the request */ - public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) {/*{{{*/ - @$parameters or $parameters = array(); + public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) { + $parameters = ($parameters) ? $parameters : array(); $defaults = array("oauth_version" => OAuthRequest::$version, "oauth_nonce" => OAuthRequest::generate_nonce(), "oauth_timestamp" => OAuthRequest::generate_timestamp(), "oauth_consumer_key" => $consumer->key); + if ($token) + $defaults['oauth_token'] = $token->key; + $parameters = array_merge($defaults, $parameters); - if ($token) { - $parameters['oauth_token'] = $token->key; - } return new OAuthRequest($http_method, $http_url, $parameters); - }/*}}}*/ + } - public function set_parameter($name, $value) {/*{{{*/ - $this->parameters[$name] = $value; - }/*}}}*/ + public function set_parameter($name, $value, $allow_duplicates = true) { + if ($allow_duplicates && isset($this->parameters[$name])) { + // We have already added parameter(s) with this name, so add to the list + if (is_scalar($this->parameters[$name])) { + // This is the first duplicate, so transform scalar (string) + // into an array so we can add the duplicates + $this->parameters[$name] = array($this->parameters[$name]); + } - public function get_parameter($name) {/*{{{*/ + $this->parameters[$name][] = $value; + } else { + $this->parameters[$name] = $value; + } + } + + public function get_parameter($name) { return isset($this->parameters[$name]) ? $this->parameters[$name] : null; - }/*}}}*/ + } - public function get_parameters() {/*{{{*/ + public function get_parameters() { return $this->parameters; - }/*}}}*/ + } + + public function unset_parameter($name) { + unset($this->parameters[$name]); + } /** - * Returns the normalized parameters of the request - * - * This will be all (except oauth_signature) parameters, - * sorted first by key, and if duplicate keys, then by - * value. - * - * The returned string will be all the key=value pairs - * concated by &. - * + * The request parameters, sorted and concatenated into a normalized string. * @return string */ - public function get_signable_parameters() {/*{{{*/ + public function get_signable_parameters() { // Grab all parameters $params = $this->parameters; - + // Remove oauth_signature if present + // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.") if (isset($params['oauth_signature'])) { unset($params['oauth_signature']); } - - // Urlencode both keys and values - $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); - $values = OAuthUtil::urlencode_rfc3986(array_values($params)); - $params = array_combine($keys, $values); - // Sort by keys (natsort) - uksort($params, 'strcmp'); - - // Generate key=value pairs - $pairs = array(); - foreach ($params as $key=>$value ) { - if (is_array($value)) { - // If the value is an array, it's because there are multiple - // with the same key, sort them, then add all the pairs - natsort($value); - foreach ($value as $v2) { - $pairs[] = $key . '=' . $v2; - } - } else { - $pairs[] = $key . '=' . $value; - } - } - - // Return the pairs, concated with & - return implode('&', $pairs); - }/*}}}*/ + return OAuthUtil::build_http_query($params); + } /** * Returns the base string of this request @@ -319,7 +355,7 @@ class OAuthRequest {/*{{{*/ * and the parameters (normalized), each urlencoded * and the concated with &. */ - public function get_signature_base_string() {/*{{{*/ + public function get_signature_base_string() { $parts = array( $this->get_normalized_http_method(), $this->get_normalized_http_url(), @@ -329,185 +365,141 @@ class OAuthRequest {/*{{{*/ $parts = OAuthUtil::urlencode_rfc3986($parts); return implode('&', $parts); - }/*}}}*/ + } /** * just uppercases the http method */ - public function get_normalized_http_method() {/*{{{*/ + public function get_normalized_http_method() { return strtoupper($this->http_method); - }/*}}}*/ + } /** * parses the url and rebuilds it to be * scheme://host/path */ - public function get_normalized_http_url() {/*{{{*/ + public function get_normalized_http_url() { $parts = parse_url($this->http_url); - $port = isset($parts['port']) ? $parts['port'] : null; - $scheme = $parts['scheme']; - $host = $parts['host']; - $path = @$parts['path']; - - $port or $port = ($scheme == 'https') ? '443' : '80'; + $scheme = (isset($parts['scheme'])) ? $parts['scheme'] : 'http'; + $port = (isset($parts['port'])) ? $parts['port'] : (($scheme == 'https') ? '443' : '80'); + $host = (isset($parts['host'])) ? $parts['host'] : ''; + $path = (isset($parts['path'])) ? $parts['path'] : ''; if (($scheme == 'https' && $port != '443') || ($scheme == 'http' && $port != '80')) { $host = "$host:$port"; } return "$scheme://$host$path"; - }/*}}}*/ + } /** * builds a url usable for a GET request */ - public function to_url() {/*{{{*/ - $out = $this->get_normalized_http_url() . "?"; - $out .= $this->to_postdata(); + public function to_url() { + $post_data = $this->to_postdata(); + $out = $this->get_normalized_http_url(); + if ($post_data) { + $out .= '?'.$post_data; + } return $out; - }/*}}}*/ + } /** * builds the data one would send in a POST request - * - * TODO(morten.fangel): - * this function might be easily replaced with http_build_query() - * and corrections for rfc3986 compatibility.. but not sure */ - public function to_postdata() {/*{{{*/ - $total = array(); - foreach ($this->parameters as $k => $v) { - if (is_array($v)) { - foreach ($v as $va) { - $total[] = OAuthUtil::urlencode_rfc3986($k) . "[]=" . OAuthUtil::urlencode_rfc3986($va); - } - } else { - $total[] = OAuthUtil::urlencode_rfc3986($k) . "=" . OAuthUtil::urlencode_rfc3986($v); - } - } - $out = implode("&", $total); - return $out; - }/*}}}*/ + public function to_postdata() { + return OAuthUtil::build_http_query($this->parameters); + } /** * builds the Authorization: header */ - public function to_header() {/*{{{*/ - $out ='Authorization: OAuth realm=""'; + public function to_header($realm=null) { + $first = true; + if($realm) { + $out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"'; + $first = false; + } else + $out = 'Authorization: OAuth'; + $total = array(); foreach ($this->parameters as $k => $v) { if (substr($k, 0, 5) != "oauth") continue; - if (is_array($v)) throw new OAuthException('Arrays not supported in headers'); - $out .= ',' . OAuthUtil::urlencode_rfc3986($k) . '="' . OAuthUtil::urlencode_rfc3986($v) . '"'; + if (is_array($v)) { + throw new OAuthException('Arrays not supported in headers'); + } + $out .= ($first) ? ' ' : ','; + $out .= OAuthUtil::urlencode_rfc3986($k) . + '="' . + OAuthUtil::urlencode_rfc3986($v) . + '"'; + $first = false; } return $out; - }/*}}}*/ + } - public function __toString() {/*{{{*/ + public function __toString() { return $this->to_url(); - }/*}}}*/ + } - public function sign_request($signature_method, $consumer, $token) {/*{{{*/ - $this->set_parameter("oauth_signature_method", $signature_method->get_name()); + public function sign_request($signature_method, $consumer, $token) { + $this->set_parameter( + "oauth_signature_method", + $signature_method->get_name(), + false + ); $signature = $this->build_signature($signature_method, $consumer, $token); - $this->set_parameter("oauth_signature", $signature); - }/*}}}*/ + $this->set_parameter("oauth_signature", $signature, false); + } - public function build_signature($signature_method, $consumer, $token) {/*{{{*/ + public function build_signature($signature_method, $consumer, $token) { $signature = $signature_method->build_signature($this, $consumer, $token); return $signature; - }/*}}}*/ + } /** * util function: current timestamp */ - private static function generate_timestamp() {/*{{{*/ + private static function generate_timestamp() { return time(); - }/*}}}*/ + } /** * util function: current nonce */ - private static function generate_nonce() {/*{{{*/ + private static function generate_nonce() { $mt = microtime(); $rand = mt_rand(); return md5($mt . $rand); // md5s look nicer than numbers - }/*}}}*/ + } +} - /** - * util function for turning the Authorization: header into - * parameters, has to do some unescaping - */ - private static function split_header($header) {/*{{{*/ - $pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/'; - $offset = 0; - $params = array(); - while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { - $match = $matches[0]; - $header_name = $matches[2][0]; - $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0]; - $params[$header_name] = OAuthUtil::urldecode_rfc3986( $header_content ); - $offset = $match[1] + strlen($match[0]); - } - - if (isset($params['realm'])) { - unset($params['realm']); - } - - return $params; - }/*}}}*/ - - /** - * helper to try to sort out headers for people who aren't running apache - */ - private static function get_headers() {/*{{{*/ - if (function_exists('apache_request_headers')) { - // we need this to get the actual Authorization: header - // because apache tends to tell us it doesn't exist - return apache_request_headers(); - } - // otherwise we don't have apache and are just going to have to hope - // that $_SERVER actually contains what we need - $out = array(); - foreach ($_SERVER as $key => $value) { - if (substr($key, 0, 5) == "HTTP_") { - // this is chaos, basically it is just there to capitalize the first - // letter of every word that is not an initial HTTP and strip HTTP - // code from przemek - $key = str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($key, 5))))); - $out[$key] = $value; - } - } - return $out; - }/*}}}*/ -}/*}}}*/ - -class OAuthServer {/*{{{*/ +class OAuthServer { protected $timestamp_threshold = 300; // in seconds, five minutes - protected $version = 1.0; // hi blaine + protected $version = '1.0'; // hi blaine protected $signature_methods = array(); protected $data_store; - function __construct($data_store) {/*{{{*/ + function __construct($data_store) { $this->data_store = $data_store; - }/*}}}*/ + } + + public function add_signature_method($signature_method) { + $this->signature_methods[$signature_method->get_name()] = + $signature_method; + } - public function add_signature_method($signature_method) {/*{{{*/ - $this->signature_methods[$signature_method->get_name()] = - $signature_method; - }/*}}}*/ - // high level functions /** * process a request_token request * returns the request token on success */ - public function fetch_request_token(&$request) {/*{{{*/ + public function fetch_request_token(&$request) { $this->get_version($request); $consumer = $this->get_consumer($request); @@ -517,16 +509,18 @@ class OAuthServer {/*{{{*/ $this->check_signature($request, $consumer, $token); - $new_token = $this->data_store->new_request_token($consumer); + // Rev A change + $callback = $request->get_parameter('oauth_callback'); + $new_token = $this->data_store->new_request_token($consumer, $callback); return $new_token; - }/*}}}*/ + } /** * process an access_token request * returns the access token on success */ - public function fetch_access_token(&$request) {/*{{{*/ + public function fetch_access_token(&$request) { $this->get_version($request); $consumer = $this->get_consumer($request); @@ -534,63 +528,76 @@ class OAuthServer {/*{{{*/ // requires authorized request token $token = $this->get_token($request, $consumer, "request"); - $this->check_signature($request, $consumer, $token); - $new_token = $this->data_store->new_access_token($token, $consumer); + // Rev A change + $verifier = $request->get_parameter('oauth_verifier'); + $new_token = $this->data_store->new_access_token($token, $consumer, $verifier); return $new_token; - }/*}}}*/ + } /** * verify an api call, checks all the parameters */ - public function verify_request(&$request) {/*{{{*/ + public function verify_request(&$request) { $this->get_version($request); $consumer = $this->get_consumer($request); $token = $this->get_token($request, $consumer, "access"); $this->check_signature($request, $consumer, $token); return array($consumer, $token); - }/*}}}*/ + } // Internals from here /** * version 1 */ - private function get_version(&$request) {/*{{{*/ + private function get_version(&$request) { $version = $request->get_parameter("oauth_version"); if (!$version) { - $version = 1.0; + // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. + // Chapter 7.0 ("Accessing Protected Ressources") + $version = '1.0'; } - if ($version && $version != $this->version) { + if ($version !== $this->version) { throw new OAuthException("OAuth version '$version' not supported"); } return $version; - }/*}}}*/ + } /** * figure out the signature with some defaults */ - private function get_signature_method(&$request) {/*{{{*/ - $signature_method = - @$request->get_parameter("oauth_signature_method"); + private function get_signature_method($request) { + $signature_method = $request instanceof OAuthRequest + ? $request->get_parameter("oauth_signature_method") + : NULL; + if (!$signature_method) { - $signature_method = "PLAINTEXT"; + // According to chapter 7 ("Accessing Protected Ressources") the signature-method + // parameter is required, and we can't just fallback to PLAINTEXT + throw new OAuthException('No signature method parameter. This parameter is required'); } - if (!in_array($signature_method, + + if (!in_array($signature_method, array_keys($this->signature_methods))) { throw new OAuthException( - "Signature method '$signature_method' not supported try one of the following: " . implode(", ", array_keys($this->signature_methods)) - ); + "Signature method '$signature_method' not supported " . + "try one of the following: " . + implode(", ", array_keys($this->signature_methods)) + ); } return $this->signature_methods[$signature_method]; - }/*}}}*/ + } /** * try to find the consumer for the provided request's consumer key */ - private function get_consumer(&$request) {/*{{{*/ - $consumer_key = @$request->get_parameter("oauth_consumer_key"); + private function get_consumer($request) { + $consumer_key = $request instanceof OAuthRequest + ? $request->get_parameter("oauth_consumer_key") + : NULL; + if (!$consumer_key) { throw new OAuthException("Invalid consumer key"); } @@ -601,13 +608,16 @@ class OAuthServer {/*{{{*/ } return $consumer; - }/*}}}*/ + } /** * try to find the token for the provided request's token key */ - private function get_token(&$request, $consumer, $token_type="access") {/*{{{*/ - $token_field = @$request->get_parameter('oauth_token'); + private function get_token($request, $consumer, $token_type="access") { + $token_field = $request instanceof OAuthRequest + ? $request->get_parameter('oauth_token') + : NULL; + $token = $this->data_store->lookup_token( $consumer, $token_type, $token_field ); @@ -615,175 +625,255 @@ class OAuthServer {/*{{{*/ throw new OAuthException("Invalid $token_type token: $token_field"); } return $token; - }/*}}}*/ + } /** * all-in-one function to check the signature on a request * should guess the signature method appropriately */ - private function check_signature(&$request, $consumer, $token) {/*{{{*/ + private function check_signature($request, $consumer, $token) { // this should probably be in a different method - $timestamp = @$request->get_parameter('oauth_timestamp'); - $nonce = @$request->get_parameter('oauth_nonce'); + $timestamp = $request instanceof OAuthRequest + ? $request->get_parameter('oauth_timestamp') + : NULL; + $nonce = $request instanceof OAuthRequest + ? $request->get_parameter('oauth_nonce') + : NULL; $this->check_timestamp($timestamp); $this->check_nonce($consumer, $token, $nonce, $timestamp); $signature_method = $this->get_signature_method($request); - $signature = $request->get_parameter('oauth_signature'); + $signature = $request->get_parameter('oauth_signature'); $valid_sig = $signature_method->check_signature( - $request, - $consumer, - $token, + $request, + $consumer, + $token, $signature ); if (!$valid_sig) { throw new OAuthException("Invalid signature"); } - }/*}}}*/ + } /** * check that the timestamp is new enough */ - private function check_timestamp($timestamp) {/*{{{*/ + private function check_timestamp($timestamp) { + if( ! $timestamp ) + throw new OAuthException( + 'Missing timestamp parameter. The parameter is required' + ); + // verify that timestamp is recentish $now = time(); - if ($now - $timestamp > $this->timestamp_threshold) { - throw new OAuthException("Expired timestamp, yours $timestamp, ours $now"); + if (abs($now - $timestamp) > $this->timestamp_threshold) { + throw new OAuthException( + "Expired timestamp, yours $timestamp, ours $now" + ); } - }/*}}}*/ + } /** * check that the nonce is not repeated */ - private function check_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ + private function check_nonce($consumer, $token, $nonce, $timestamp) { + if( ! $nonce ) + throw new OAuthException( + 'Missing nonce parameter. The parameter is required' + ); + // verify that the nonce is uniqueish - $found = $this->data_store->lookup_nonce($consumer, $token, $nonce, $timestamp); + $found = $this->data_store->lookup_nonce( + $consumer, + $token, + $nonce, + $timestamp + ); if ($found) { throw new OAuthException("Nonce already used: $nonce"); } - }/*}}}*/ + } +} - -}/*}}}*/ - -class OAuthDataStore {/*{{{*/ - function lookup_consumer($consumer_key) {/*{{{*/ +class OAuthDataStore { + function lookup_consumer($consumer_key) { // implement me - }/*}}}*/ + } - function lookup_token($consumer, $token_type, $token) {/*{{{*/ + function lookup_token($consumer, $token_type, $token) { // implement me - }/*}}}*/ + } - function lookup_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ + function lookup_nonce($consumer, $token, $nonce, $timestamp) { // implement me - }/*}}}*/ + } - function new_request_token($consumer) {/*{{{*/ + function new_request_token($consumer, $callback = null) { // return a new token attached to this consumer - }/*}}}*/ + } - function new_access_token($token, $consumer) {/*{{{*/ + function new_access_token($token, $consumer, $verifier = null) { // return a new access token attached to this consumer // for the user associated with this token if the request token // is authorized // should also invalidate the request token - }/*}}}*/ + } -}/*}}}*/ +} + +class OAuthUtil { + public static function urlencode_rfc3986($input) { + if (is_array($input)) { + return array_map(array('OAuthUtil', 'urlencode_rfc3986'), $input); + } else if (is_scalar($input)) { + return str_replace( + '+', + ' ', + str_replace('%7E', '~', rawurlencode($input)) + ); + } else { + return ''; + } +} -/* A very naive dbm-based oauth storage - */ -class SimpleOAuthDataStore extends OAuthDataStore {/*{{{*/ - private $dbh; - - function __construct($path = "oauth.gdbm") {/*{{{*/ - $this->dbh = dba_popen($path, 'c', 'gdbm'); - }/*}}}*/ - - function __destruct() {/*{{{*/ - dba_close($this->dbh); - }/*}}}*/ - - function lookup_consumer($consumer_key) {/*{{{*/ - $rv = dba_fetch("consumer_$consumer_key", $this->dbh); - if ($rv === FALSE) { - return NULL; - } - $obj = unserialize($rv); - if (!($obj instanceof OAuthConsumer)) { - return NULL; - } - return $obj; - }/*}}}*/ - - function lookup_token($consumer, $token_type, $token) {/*{{{*/ - $rv = dba_fetch("${token_type}_${token}", $this->dbh); - if ($rv === FALSE) { - return NULL; - } - $obj = unserialize($rv); - if (!($obj instanceof OAuthToken)) { - return NULL; - } - return $obj; - }/*}}}*/ - - function lookup_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ - if (dba_exists("nonce_$nonce", $this->dbh)) { - return TRUE; - } else { - dba_insert("nonce_$nonce", "1", $this->dbh); - return FALSE; - } - }/*}}}*/ - - function new_token($consumer, $type="request") {/*{{{*/ - $key = md5(time()); - $secret = time() + time(); - $token = new OAuthToken($key, md5(md5($secret))); - if (!dba_insert("${type}_$key", serialize($token), $this->dbh)) { - throw new OAuthException("doooom!"); - } - return $token; - }/*}}}*/ - - function new_request_token($consumer) {/*{{{*/ - return $this->new_token($consumer, "request"); - }/*}}}*/ - - function new_access_token($token, $consumer) {/*{{{*/ - - $token = $this->new_token($consumer, 'access'); - dba_delete("request_" . $token->key, $this->dbh); - return $token; - }/*}}}*/ -}/*}}}*/ - -class OAuthUtil {/*{{{*/ - public static function urlencode_rfc3986($input) {/*{{{*/ - if (is_array($input)) { - return array_map(array('OAuthUtil','urlencode_rfc3986'), $input); - } else if (is_scalar($input)) { - return str_replace('+', ' ', - str_replace('%7E', '~', rawurlencode($input))); - } else { - return ''; - } - }/*}}}*/ - - - // This decode function isn't taking into consideration the above - // modifications to the encoding process. However, this method doesn't + // This decode function isn't taking into consideration the above + // modifications to the encoding process. However, this method doesn't // seem to be used anywhere so leaving it as is. - public static function urldecode_rfc3986($string) {/*{{{*/ - return rawurldecode($string); - }/*}}}*/ -}/*}}}*/ + public static function urldecode_rfc3986($string) { + return urldecode($string); + } + + // Utility function for turning the Authorization: header into + // parameters, has to do some unescaping + // Can filter out any non-oauth parameters if needed (default behaviour) + // May 28th, 2010 - method updated to tjerk.meesters for a speed improvement. + // see http://code.google.com/p/oauth/issues/detail?id=163 + public static function split_header($header, $only_allow_oauth_parameters = true) { + $params = array(); + if (preg_match_all('/('.($only_allow_oauth_parameters ? 'oauth_' : '').'[a-z_-]*)=(:?"([^"]*)"|([^,]*))/', $header, $matches)) { + foreach ($matches[1] as $i => $h) { + $params[$h] = OAuthUtil::urldecode_rfc3986(empty($matches[3][$i]) ? $matches[4][$i] : $matches[3][$i]); + } + if (isset($params['realm'])) { + unset($params['realm']); + } + } + return $params; + } + + // helper to try to sort out headers for people who aren't running apache + public static function get_headers() { + if (function_exists('apache_request_headers')) { + // we need this to get the actual Authorization: header + // because apache tends to tell us it doesn't exist + $headers = apache_request_headers(); + + // sanitize the output of apache_request_headers because + // we always want the keys to be Cased-Like-This and arh() + // returns the headers in the same case as they are in the + // request + $out = array(); + foreach ($headers AS $key => $value) { + $key = str_replace( + " ", + "-", + ucwords(strtolower(str_replace("-", " ", $key))) + ); + $out[$key] = $value; + } + } else { + // otherwise we don't have apache and are just going to have to hope + // that $_SERVER actually contains what we need + $out = array(); + if( isset($_SERVER['CONTENT_TYPE']) ) + $out['Content-Type'] = $_SERVER['CONTENT_TYPE']; + if( isset($_ENV['CONTENT_TYPE']) ) + $out['Content-Type'] = $_ENV['CONTENT_TYPE']; + + foreach ($_SERVER as $key => $value) { + if (substr($key, 0, 5) == "HTTP_") { + // this is chaos, basically it is just there to capitalize the first + // letter of every word that is not an initial HTTP and strip HTTP + // code from przemek + $key = str_replace( + " ", + "-", + ucwords(strtolower(str_replace("_", " ", substr($key, 5)))) + ); + $out[$key] = $value; + } + } + } + return $out; + } + + // This function takes a input like a=b&a=c&d=e and returns the parsed + // parameters like this + // array('a' => array('b','c'), 'd' => 'e') + public static function parse_parameters( $input ) { + if (!isset($input) || !$input) return array(); + + $pairs = explode('&', $input); + + $parsed_parameters = array(); + foreach ($pairs as $pair) { + $split = explode('=', $pair, 2); + $parameter = OAuthUtil::urldecode_rfc3986($split[0]); + $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : ''; + + if (isset($parsed_parameters[$parameter])) { + // We have already recieved parameter(s) with this name, so add to the list + // of parameters with this name + + if (is_scalar($parsed_parameters[$parameter])) { + // This is the first duplicate, so transform scalar (string) into an array + // so we can add the duplicates + $parsed_parameters[$parameter] = array($parsed_parameters[$parameter]); + } + + $parsed_parameters[$parameter][] = $value; + } else { + $parsed_parameters[$parameter] = $value; + } + } + return $parsed_parameters; + } + + public static function build_http_query($params) { + if (!$params) return ''; + + // Urlencode both keys and values + $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); + $values = OAuthUtil::urlencode_rfc3986(array_values($params)); + $params = array_combine($keys, $values); + + // Parameters are sorted by name, using lexicographical byte value ordering. + // Ref: Spec: 9.1.1 (1) + uksort($params, 'strcmp'); + + $pairs = array(); + foreach ($params as $parameter => $value) { + if (is_array($value)) { + // If two or more parameters share the same name, they are sorted by their value + // Ref: Spec: 9.1.1 (1) + // June 12th, 2010 - changed to sort because of issue 164 by hidetaka + sort($value, SORT_STRING); + foreach ($value as $duplicate_value) { + $pairs[] = $parameter . '=' . $duplicate_value; + } + } else { + $pairs[] = $parameter . '=' . $value; + } + } + // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61) + // Each name-value pair is separated by an '&' character (ASCII code 38) + return implode('&', $pairs); + } +} ?> diff --git a/extlib/Services/oEmbed.php b/extlib/Services/oEmbed.php deleted file mode 100644 index 0dc8f01b2f..0000000000 --- a/extlib/Services/oEmbed.php +++ /dev/null @@ -1,357 +0,0 @@ -<?php - -/** - * An interface for oEmbed consumption - * - * PHP version 5.1.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Validate.php'; -require_once 'Net/URL2.php'; -require_once 'HTTP/Request.php'; -require_once 'Services/oEmbed/Exception.php'; -require_once 'Services/oEmbed/Exception/NoSupport.php'; -require_once 'Services/oEmbed/Object.php'; - -/** - * Base class for consuming oEmbed objects - * - * <code> - * <?php - * - * require_once 'Services/oEmbed.php'; - * - * // The URL that we'd like to find out more information about. - * $url = 'http://flickr.com/photos/joestump/2848795611/'; - * - * // The oEmbed API URI. Not all providers support discovery yet so we're - * // explicitly providing one here. If one is not provided Services_oEmbed - * // attempts to discover it. If none is found an exception is thrown. - * $oEmbed = new Services_oEmbed($url, array( - * Services_oEmbed::OPTION_API => 'http://www.flickr.com/services/oembed/' - * )); - * $object = $oEmbed->getObject(); - * - * // All of the objects have somewhat sane __toString() methods that allow - * // you to output them directly. - * echo (string)$object; - * - * ?> - * </code> - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed -{ - /** - * HTTP timeout in seconds - * - * All HTTP requests made by Services_oEmbed will respect this timeout. - * This can be passed to {@link Services_oEmbed::setOption()} or to the - * options parameter in {@link Services_oEmbed::__construct()}. - * - * @var string OPTION_TIMEOUT Timeout in seconds - */ - const OPTION_TIMEOUT = 'http_timeout'; - - /** - * HTTP User-Agent - * - * All HTTP requests made by Services_oEmbed will be sent with the - * string set by this option. - * - * @var string OPTION_USER_AGENT The HTTP User-Agent string - */ - const OPTION_USER_AGENT = 'http_user_agent'; - - /** - * The API's URI - * - * If the API is known ahead of time this option can be used to explicitly - * set it. If not present then the API is attempted to be discovered - * through the auto-discovery mechanism. - * - * @var string OPTION_API - */ - const OPTION_API = 'oembed_api'; - - /** - * Options for oEmbed requests - * - * @var array $options The options for making requests - */ - protected $options = array( - self::OPTION_TIMEOUT => 3, - self::OPTION_API => null, - self::OPTION_USER_AGENT => 'Services_oEmbed 0.1.0' - ); - - /** - * URL of object to get embed information for - * - * @var object $url {@link Net_URL2} instance of URL of object - */ - protected $url = null; - - /** - * Constructor - * - * @param string $url The URL to fetch an oEmbed for - * @param array $options A list of options for the oEmbed lookup - * - * @throws {@link Services_oEmbed_Exception} if the $url is invalid - * @throws {@link Services_oEmbed_Exception} when no valid API is found - * @return void - */ - public function __construct($url, array $options = array()) - { - if (Validate::uri($url)) { - $this->url = new Net_URL2($url); - } else { - throw new Services_oEmbed_Exception('URL is invalid'); - } - - if (count($options)) { - foreach ($options as $key => $val) { - $this->setOption($key, $val); - } - } - - if ($this->options[self::OPTION_API] === null) { - $this->options[self::OPTION_API] = $this->discover($url); - } - } - - /** - * Set an option for the oEmbed request - * - * @param mixed $option The option name - * @param mixed $value The option value - * - * @see Services_oEmbed::OPTION_API, Services_oEmbed::OPTION_TIMEOUT - * @throws {@link Services_oEmbed_Exception} on invalid option - * @access public - * @return void - */ - public function setOption($option, $value) - { - switch ($option) { - case self::OPTION_API: - case self::OPTION_TIMEOUT: - break; - default: - throw new Services_oEmbed_Exception( - 'Invalid option "' . $option . '"' - ); - } - - $func = '_set_' . $option; - if (method_exists($this, $func)) { - $this->options[$option] = $this->$func($value); - } else { - $this->options[$option] = $value; - } - } - - /** - * Set the API option - * - * @param string $value The API's URI - * - * @throws {@link Services_oEmbed_Exception} on invalid API URI - * @see Validate::uri() - * @return string - */ - protected function _set_oembed_api($value) - { - if (!Validate::uri($value)) { - throw new Services_oEmbed_Exception( - 'API URI provided is invalid' - ); - } - - return $value; - } - - /** - * Get the oEmbed response - * - * @param array $params Optional parameters for - * - * @throws {@link Services_oEmbed_Exception} on cURL errors - * @throws {@link Services_oEmbed_Exception} on HTTP errors - * @throws {@link Services_oEmbed_Exception} when result is not parsable - * @return object The oEmbed response as an object - */ - public function getObject(array $params = array()) - { - $params['url'] = $this->url->getURL(); - if (!isset($params['format'])) { - $params['format'] = 'json'; - } - - $sets = array(); - foreach ($params as $var => $val) { - $sets[] = $var . '=' . urlencode($val); - } - - $url = $this->options[self::OPTION_API] . '?' . implode('&', $sets); - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->options[self::OPTION_TIMEOUT]); - $result = curl_exec($ch); - - if (curl_errno($ch)) { - throw new Services_oEmbed_Exception( - curl_error($ch), curl_errno($ch) - ); - } - - $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if (substr($code, 0, 1) != '2') { - throw new Services_oEmbed_Exception('Non-200 code returned. Got code ' . $code); - } - - curl_close($ch); - - switch ($params['format']) { - case 'json': - $res = json_decode($result); - if (!is_object($res)) { - throw new Services_oEmbed_Exception( - 'Could not parse JSON response' - ); - } - break; - case 'xml': - libxml_use_internal_errors(true); - $res = simplexml_load_string($result); - if (!$res instanceof SimpleXMLElement) { - $errors = libxml_get_errors(); - $err = array_shift($errors); - libxml_clear_errors(); - libxml_use_internal_errors(false); - throw new Services_oEmbed_Exception( - $err->message, $error->code - ); - } - break; - } - - return Services_oEmbed_Object::factory($res); - } - - /** - * Discover an oEmbed API - * - * @param string $url The URL to attempt to discover oEmbed for - * - * @throws {@link Services_oEmbed_Exception} if the $url is invalid - * @return string The oEmbed API endpoint discovered - */ - protected function discover($url) - { - $body = $this->sendRequest($url); - - // Find all <link /> tags that have a valid oembed type set. We then - // extract the href attribute for each type. - $regexp = '#<link([^>]*)type[\s\n]*=[\s\n]*"' . - '(application/json|text/xml)\+oembed"([^>]*)>#im'; - - $m = $ret = array(); - if (!preg_match_all($regexp, $body, $m)) { - throw new Services_oEmbed_Exception_NoSupport( - 'No valid oEmbed links found on page' - ); - } - - foreach ($m[0] as $i => $link) { - $h = array(); - if (preg_match('/[\s\n]+href[\s\n]*=[\s\n]*"([^"]+)"/im', $link, $h)) { - $ret[$m[2][$i]] = $h[1]; - } - } - - return (isset($ret['application/json']) ? $ret['application/json'] : array_pop($ret)); - } - - /** - * Send a GET request to the provider - * - * @param mixed $url The URL to send the request to - * - * @throws {@link Services_oEmbed_Exception} on HTTP errors - * @return string The contents of the response - */ - private function sendRequest($url) - { - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->options[self::OPTION_TIMEOUT]); - curl_setopt($ch, CURLOPT_USERAGENT, $this->options[self::OPTION_USER_AGENT]); - $result = curl_exec($ch); - if (curl_errno($ch)) { - throw new Services_oEmbed_Exception( - curl_error($ch), curl_errno($ch) - ); - } - - $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - if (substr($code, 0, 1) != '2') { - throw new Services_oEmbed_Exception('Non-200 code returned. Got code ' . $code); - } - - return $result; - } -} - -?> diff --git a/extlib/Services/oEmbed/Exception.php b/extlib/Services/oEmbed/Exception.php deleted file mode 100644 index 446ac2a706..0000000000 --- a/extlib/Services/oEmbed/Exception.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php - -/** - * Base exception class for {@link Services_oEmbed} - * - * PHP version 5.1.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'PEAR/Exception.php'; - -/** - * Base exception class for {@link Services_oEmbed} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Exception extends PEAR_Exception -{ - -} - -?> diff --git a/extlib/Services/oEmbed/Exception/NoSupport.php b/extlib/Services/oEmbed/Exception/NoSupport.php deleted file mode 100644 index 384c7191f2..0000000000 --- a/extlib/Services/oEmbed/Exception/NoSupport.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -/** - * Exception class when no oEmbed support is discovered - * - * PHP version 5.2.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -/** - * Exception class when no oEmbed support is discovered - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Exception_NoSupport extends Services_oEmbed_Exception -{ - -} - -?> diff --git a/extlib/Services/oEmbed/Object.php b/extlib/Services/oEmbed/Object.php deleted file mode 100644 index 9eedd7efb6..0000000000 --- a/extlib/Services/oEmbed/Object.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php - -/** - * An interface for oEmbed consumption - * - * PHP version 5.1.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Object/Exception.php'; - -/** - * Base class for consuming oEmbed objects - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -abstract class Services_oEmbed_Object -{ - - /** - * Valid oEmbed object types - * - * @var array $types Array of valid object types - * @see Services_oEmbed_Object::factory() - */ - static protected $types = array( - 'photo' => 'Photo', - 'video' => 'Video', - 'link' => 'Link', - 'rich' => 'Rich' - ); - - /** - * Create an oEmbed object from result - * - * @param object $object Raw object returned from API - * - * @throws {@link Services_oEmbed_Object_Exception} on object error - * @return object Instance of object driver - * @see Services_oEmbed_Object_Link, Services_oEmbed_Object_Photo - * @see Services_oEmbed_Object_Rich, Services_oEmbed_Object_Video - */ - static public function factory($object) - { - if (!isset($object->type)) { - throw new Services_oEmbed_Object_Exception( - 'Object has no type' - ); - } - - $type = (string)$object->type; - if (!isset(self::$types[$type])) { - throw new Services_oEmbed_Object_Exception( - 'Object type is unknown or invalid: ' . $type - ); - } - - $file = 'Services/oEmbed/Object/' . self::$types[$type] . '.php'; - include_once $file; - - $class = 'Services_oEmbed_Object_' . self::$types[$type]; - if (!class_exists($class)) { - throw new Services_oEmbed_Object_Exception( - 'Object class is invalid or not present' - ); - } - - $instance = new $class($object); - return $instance; - } - - /** - * Instantiation is not allowed - * - * @return void - */ - private function __construct() - { - - } -} - -?> diff --git a/extlib/Services/oEmbed/Object/Common.php b/extlib/Services/oEmbed/Object/Common.php deleted file mode 100644 index f568ec89f5..0000000000 --- a/extlib/Services/oEmbed/Object/Common.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php - -/** - * Base class for oEmbed objects - * - * PHP version 5.1.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -/** - * Base class for oEmbed objects - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -abstract class Services_oEmbed_Object_Common -{ - /** - * Raw object returned from API - * - * @var object $object The raw object from the API - */ - protected $object = null; - - /** - * Required fields per the specification - * - * @var array $required Array of required fields - * @link http://oembed.com - */ - protected $required = array(); - - /** - * Constructor - * - * @param object $object Raw object returned from the API - * - * @throws {@link Services_oEmbed_Object_Exception} on missing fields - * @return void - */ - public function __construct($object) - { - $this->object = $object; - - $this->required[] = 'version'; - foreach ($this->required as $field) { - if (!isset($this->$field)) { - throw new Services_oEmbed_Object_Exception( - 'Object is missing required ' . $field . ' attribute' - ); - } - } - } - - /** - * Get object variable - * - * @param string $var Variable to get - * - * @see Services_oEmbed_Object_Common::$object - * @return mixed Attribute's value or null if it's not set/exists - */ - public function __get($var) - { - if (property_exists($this->object, $var)) { - return $this->object->$var; - } - - return null; - } - - /** - * Is variable set? - * - * @param string $var Variable name to check - * - * @return boolean True if set, false if not - * @see Services_oEmbed_Object_Common::$object - */ - public function __isset($var) - { - if (property_exists($this->object, $var)) { - return (isset($this->object->$var)); - } - - return false; - } - - /** - * Require a sane __toString for all objects - * - * @return string - */ - abstract public function __toString(); -} - -?> diff --git a/extlib/Services/oEmbed/Object/Exception.php b/extlib/Services/oEmbed/Object/Exception.php deleted file mode 100644 index 6025ffd494..0000000000 --- a/extlib/Services/oEmbed/Object/Exception.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php - -/** - * Exception for {@link Services_oEmbed_Object} - * - * PHP version 5.1.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Exception.php'; - -/** - * Exception for {@link Services_oEmbed_Object} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Object_Exception extends Services_oEmbed_Exception -{ - -} - -?> diff --git a/extlib/Services/oEmbed/Object/Link.php b/extlib/Services/oEmbed/Object/Link.php deleted file mode 100644 index 9b627a89ac..0000000000 --- a/extlib/Services/oEmbed/Object/Link.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -/** - * Link object for {@link Services_oEmbed} - * - * PHP version 5.2.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Object/Common.php'; - -/** - * Link object for {@link Services_oEmbed} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Object_Link extends Services_oEmbed_Object_Common -{ - /** - * Output a sane link - * - * @return string An HTML link of the object - */ - public function __toString() - { - return '<a href="' . $this->url . '">' . $this->title . '</a>'; - } -} - -?> diff --git a/extlib/Services/oEmbed/Object/Photo.php b/extlib/Services/oEmbed/Object/Photo.php deleted file mode 100644 index 5fbf4292fa..0000000000 --- a/extlib/Services/oEmbed/Object/Photo.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * Photo object for {@link Services_oEmbed} - * - * PHP version 5.2.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Object/Common.php'; - -/** - * Photo object for {@link Services_oEmbed} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Object_Photo extends Services_oEmbed_Object_Common -{ - /** - * Required fields for photo objects - * - * @var array $required Required fields - */ - protected $required = array( - 'url', 'width', 'height' - ); - - /** - * Output a valid HTML tag for image - * - * @return string HTML <img /> tag for Photo - */ - public function __toString() - { - $img = '<img src="' . $this->url . '" width="' . $this->width . '" ' . - 'height="' . $this->height . '"'; - - if (isset($this->title)) { - $img .= ' alt="' . $this->title . '"'; - } - - return $img . ' />'; - } -} - -?> diff --git a/extlib/Services/oEmbed/Object/Rich.php b/extlib/Services/oEmbed/Object/Rich.php deleted file mode 100644 index dbf6933ac7..0000000000 --- a/extlib/Services/oEmbed/Object/Rich.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * Photo object for {@link Services_oEmbed} - * - * PHP version 5.2.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Object/Common.php'; - -/** - * Photo object for {@link Services_oEmbed} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Object_Rich extends Services_oEmbed_Object_Common -{ - /** - * Required fields for rich objects - * - * @var array $required Required fields - */ - protected $required = array( - 'html', 'width', 'height' - ); - - /** - * Output a the HTML tag for rich object - * - * @return string HTML for rich object - */ - public function __toString() - { - return $this->html; - } -} - -?> diff --git a/extlib/Services/oEmbed/Object/Video.php b/extlib/Services/oEmbed/Object/Video.php deleted file mode 100644 index 7461081151..0000000000 --- a/extlib/Services/oEmbed/Object/Video.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * Photo object for {@link Services_oEmbed} - * - * PHP version 5.2.0+ - * - * Copyright (c) 2008, Digg.com, Inc. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of Digg.com, Inc. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version SVN: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ - -require_once 'Services/oEmbed/Object/Common.php'; - -/** - * Photo object for {@link Services_oEmbed} - * - * @category Services - * @package Services_oEmbed - * @author Joe Stump <joe@joestump.net> - * @copyright 2008 Digg.com, Inc. - * @license http://tinyurl.com/42zef New BSD License - * @version Release: @version@ - * @link http://code.google.com/p/digg - * @link http://oembed.com - */ -class Services_oEmbed_Object_Video extends Services_oEmbed_Object_Common -{ - /** - * Required fields for video objects - * - * @var array $required Required fields - */ - protected $required = array( - 'html', 'width', 'height' - ); - - /** - * Output a valid embed tag for video - * - * @return string HTML for video - */ - public function __toString() - { - return $this->html; - } -} - -?> diff --git a/index.php b/index.php index 0aceeda55a..5a08aa0782 100644 --- a/index.php +++ b/index.php @@ -204,7 +204,7 @@ function checkMirror($action_obj, $args) function isLoginAction($action) { - static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd'); + static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd', 'hostmeta'); $login = null; @@ -225,12 +225,12 @@ function main() if ($_lighty_url['path'] != '/index.php' && $_lighty_url['path'] != '/') { $_lighty_path = preg_replace('/^'.preg_quote(common_config('site', 'path')).'\//', '', substr($_lighty_url['path'], 1)); $_SERVER['QUERY_STRING'] = 'p='.$_lighty_path; - if ($_lighty_url['query']) { + if (isset($_lighty_url['query']) && $_lighty_url['query'] != '') { $_SERVER['QUERY_STRING'] .= '&'.$_lighty_url['query']; - } - parse_str($_lighty_url['query'], $_lighty_query); - foreach ($_lighty_query as $key => $val) { - $_GET[$key] = $_REQUEST[$key] = $val; + parse_str($_lighty_url['query'], $_lighty_query); + foreach ($_lighty_query as $key => $val) { + $_GET[$key] = $_REQUEST[$key] = $val; + } } $_GET['p'] = $_REQUEST['p'] = $_lighty_path; } @@ -283,6 +283,14 @@ function main() return; } + $site_ssl = common_config('site', 'ssl'); + + // If the request is HTTP and it should be HTTPS... + if ($site_ssl != 'never' && !StatusNet::isHTTPS() && common_is_sensitive($args['action'])) { + common_redirect(common_local_url($args['action'], $args)); + return; + } + $args = array_merge($args, $_REQUEST); Event::handle('ArgsInitialize', array(&$args)); diff --git a/install.php b/install.php index 158d51fa33..9b0d19882c 100644 --- a/install.php +++ b/install.php @@ -45,14 +45,62 @@ require INSTALLDIR . '/lib/installer.php'; * Helper class for building form */ class Posted { + /** + * HTML-friendly escaped string for the POST param of given name, or empty. + * @param string $name + * @return string + */ function value($name) + { + return htmlspecialchars($this->string($name)); + } + + /** + * The given POST parameter value, forced to a string. + * Missing value will give ''. + * + * @param string $name + * @return string + */ + function string($name) + { + return strval($this->raw($name)); + } + + /** + * The given POST parameter value, in its original form. + * Magic quotes are stripped, if provided. + * Missing value will give null. + * + * @param string $name + * @return mixed + */ + function raw($name) { if (isset($_POST[$name])) { - return htmlspecialchars(strval($_POST[$name])); + return $this->dequote($_POST[$name]); } else { - return ''; + return null; } } + + /** + * If necessary, strip magic quotes from the given value. + * + * @param mixed $val + * @return mixed + */ + function dequote($val) + { + if (get_magic_quotes_gpc()) { + if (is_string($val)) { + return stripslashes($val); + } else if (is_array($val)) { + return array_map(array($this, 'dequote'), $val); + } + } + return $val; + } } /** @@ -107,11 +155,7 @@ class WebInstaller extends Installer global $dbModules; $post = new Posted(); $dbRadios = ''; - if (isset($_POST['dbtype'])) { - $dbtype = $_POST['dbtype']; - } else { - $dbtype = null; - } + $dbtype = $post->raw('dbtype'); foreach (self::$dbModules as $type => $info) { if ($this->checkExtension($info['check_module'])) { if ($dbtype == null || $dbtype == $type) { @@ -245,19 +289,20 @@ STR; */ function prepare() { - $this->host = $_POST['host']; - $this->dbtype = $_POST['dbtype']; - $this->database = $_POST['database']; - $this->username = $_POST['dbusername']; - $this->password = $_POST['dbpassword']; - $this->sitename = $_POST['sitename']; - $this->fancy = !empty($_POST['fancy']); + $post = new Posted(); + $this->host = $post->string('host'); + $this->dbtype = $post->string('dbtype'); + $this->database = $post->string('database'); + $this->username = $post->string('dbusername'); + $this->password = $post->string('dbpassword'); + $this->sitename = $post->string('sitename'); + $this->fancy = (bool)$post->string('fancy'); - $this->adminNick = strtolower($_POST['admin_nickname']); - $this->adminPass = $_POST['admin_password']; - $adminPass2 = $_POST['admin_password2']; - $this->adminEmail = $_POST['admin_email']; - $this->adminUpdates = $_POST['admin_updates']; + $this->adminNick = strtolower($post->string('admin_nickname')); + $this->adminPass = $post->string('admin_password'); + $adminPass2 = $post->string('admin_password2'); + $this->adminEmail = $post->string('admin_email'); + $this->adminUpdates = $post->string('admin_updates'); $this->server = $_SERVER['HTTP_HOST']; $this->path = substr(dirname($_SERVER['PHP_SELF']), 1); diff --git a/js/Makefile b/js/Makefile new file mode 100644 index 0000000000..00e4347141 --- /dev/null +++ b/js/Makefile @@ -0,0 +1,11 @@ +.fake: all clean + +TARGETS=util.min.js + +all: $(TARGETS) + +clean: + rm -f $(TARGETS) + +util.min.js: util.js + yui-compressor $< -o $@ diff --git a/js/emailsettings.js b/js/emailsettings.js new file mode 100644 index 0000000000..c7f85fe9ae --- /dev/null +++ b/js/emailsettings.js @@ -0,0 +1,23 @@ +$(function() { + +function toggleIncomingOptions() { + var enabled = $('#emailpost').attr('checked'); + if (enabled) { + // Note: button style currently does not respond to disabled in our main themes. + // Graying out the whole section with a 50% transparency will do for now. :) + // @todo: add a general 'disabled' class style to the base themes. + $('#emailincoming').removeAttr('style') + .find('input').removeAttr('disabled'); + } else { + $('#emailincoming').attr('style', 'opacity: 0.5') + .find('input').attr('disabled', 'disabled'); + } +} + +toggleIncomingOptions(); + +$('#emailpost').click(function() { + toggleIncomingOptions(); +}); + +}); diff --git a/js/geometa.js b/js/geometa.js deleted file mode 100644 index bba59b4486..0000000000 --- a/js/geometa.js +++ /dev/null @@ -1,217 +0,0 @@ -// 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 -(function() { - // We are already defined. Hooray! - if (window.google && google.gears) { - return; - } - - var factory = null; - - // Firefox - if (typeof GearsFactory != 'undefined') { - factory = new GearsFactory(); - } else { - // IE - try { - factory = new ActiveXObject('Gears.Factory'); - // privateSetGlobalObject is only required and supported on WinCE. - if (factory.getBuildInfo().indexOf('ie_mobile') != -1) { - factory.privateSetGlobalObject(this); - } - } catch (e) { - // Safari - if ((typeof navigator.mimeTypes != 'undefined') && navigator.mimeTypes["application/x-googlegears"]) { - factory = document.createElement("object"); - factory.style.display = "none"; - factory.width = 0; - factory.height = 0; - factory.type = "application/x-googlegears"; - document.documentElement.appendChild(factory); - } - } - } - - // *Do not* define any objects if Gears is not installed. This mimics the - // behavior of Gears defining the objects in the future. - if (!factory) { - return; - } - - // Now set up the objects, being careful not to overwrite anything. - // - // Note: In Internet Explorer for Windows Mobile, you can't add properties to - // the window object. However, global objects are automatically added as - // properties of the window object in all browsers. - if (!window.google) { - google = {}; - } - - if (!google.gears) { - google.gears = {factory: factory}; - } -})(); -// -- END GEARS_INIT - -var GearsGeoLocation = (function() { - // -- PRIVATE - var geo = google.gears.factory.create('beta.geolocation'); - - var wrapSuccess = function(callback, self) { // wrap it for lastPosition love - return function(position) { - callback(position); - self.lastPosition = position; - }; - }; - - // -- PUBLIC - return { - shim: true, - - type: "Gears", - - lastPosition: null, - - getCurrentPosition: function(successCallback, errorCallback, options) { - var self = this; - var sc = wrapSuccess(successCallback, self); - geo.getCurrentPosition(sc, errorCallback, options); - }, - - watchPosition: function(successCallback, errorCallback, options) { - geo.watchPosition(successCallback, errorCallback, options); - }, - - clearWatch: function(watchId) { - geo.clearWatch(watchId); - }, - - getPermission: function(siteName, imageUrl, extraMessage) { - geo.getPermission(siteName, imageUrl, extraMessage); - } - - }; -}); - -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(); - -})(); -} diff --git a/js/jquery.cookie.min.js b/js/jquery.cookie.min.js new file mode 100644 index 0000000000..eb129db969 --- /dev/null +++ b/js/jquery.cookie.min.js @@ -0,0 +1 @@ +jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}}; \ No newline at end of file diff --git a/js/jquery.form.js b/js/jquery.form.js index 936b847abe..2b853df428 100644 --- a/js/jquery.form.js +++ b/js/jquery.form.js @@ -1,632 +1,785 @@ -/* - * jQuery Form Plugin - * version: 2.17 (06-NOV-2008) - * @requires jQuery v1.2.2 or later - * - * Examples and documentation at: http://malsup.com/jquery/form/ - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * Revision: $Id$ - */ -;(function($) { - -/* - Usage Note: - ----------- - Do not use both ajaxSubmit and ajaxForm on the same form. These - functions are intended to be exclusive. Use ajaxSubmit if you want - to bind your own submit handler to the form. For example, - - $(document).ready(function() { - $('#myForm').bind('submit', function() { - $(this).ajaxSubmit({ - target: '#output' - }); - return false; // <-- important! - }); - }); - - Use ajaxForm when you want the plugin to manage all the event binding - for you. For example, - - $(document).ready(function() { - $('#myForm').ajaxForm({ - target: '#output' - }); - }); - - When using ajaxForm, the ajaxSubmit function will be invoked for you - at the appropriate time. -*/ - -/** - * ajaxSubmit() provides a mechanism for immediately submitting - * an HTML form using AJAX. - */ -$.fn.ajaxSubmit = function(options) { - // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) - if (!this.length) { - log('ajaxSubmit: skipping submit process - no element selected'); - return this; - } - - if (typeof options == 'function') - options = { success: options }; - - options = $.extend({ - url: this.attr('action') || window.location.toString(), - type: this.attr('method') || 'GET' - }, options || {}); - - // hook for manipulating the form data before it is extracted; - // convenient for use with rich editors like tinyMCE or FCKEditor - var veto = {}; - this.trigger('form-pre-serialize', [this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); - return this; - } - - // provide opportunity to alter form data before it is serialized - if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSerialize callback'); - return this; - } - - var a = this.formToArray(options.semantic); - if (options.data) { - options.extraData = options.data; - for (var n in options.data) { - if(options.data[n] instanceof Array) { - for (var k in options.data[n]) - a.push( { name: n, value: options.data[n][k] } ) - } - else - a.push( { name: n, value: options.data[n] } ); - } - } - - // give pre-submit callback an opportunity to abort the submit - if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { - log('ajaxSubmit: submit aborted via beforeSubmit callback'); - return this; - } - - // fire vetoable 'validate' event - this.trigger('form-submit-validate', [a, this, options, veto]); - if (veto.veto) { - log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); - return this; - } - - var q = $.param(a); - - if (options.type.toUpperCase() == 'GET') { - options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; - options.data = null; // data is null for 'get' - } - else - options.data = q; // data is the query string for 'post' - - var $form = this, callbacks = []; - if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); - if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); - - // perform a load on the target only if dataType is not provided - if (!options.dataType && options.target) { - var oldSuccess = options.success || function(){}; - callbacks.push(function(data) { - $(options.target).html(data).each(oldSuccess, arguments); - }); - } - else if (options.success) - callbacks.push(options.success); - - options.success = function(data, status) { - for (var i=0, max=callbacks.length; i < max; i++) - callbacks[i].apply(options, [data, status, $form]); - }; - - // are there files to upload? - var files = $('input:file', this).fieldValue(); - var found = false; - for (var j=0; j < files.length; j++) - if (files[j]) - found = true; - - // options.iframe allows user to force iframe mode - if (options.iframe || found) { - // hack to fix Safari hang (thanks to Tim Molendijk for this) - // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d - if ($.browser.safari && options.closeKeepAlive) - $.get(options.closeKeepAlive, fileUpload); - else - fileUpload(); - } - else - $.ajax(options); - - // fire 'notify' event - this.trigger('form-submit-notify', [this, options]); - return this; - - - // private function for handling file uploads (hat tip to YAHOO!) - function fileUpload() { - var form = $form[0]; - - if ($(':input[name=submit]', form).length) { - alert('Error: Form elements must not be named "submit".'); - return; - } - - var opts = $.extend({}, $.ajaxSettings, options); - var s = jQuery.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts); - - var id = 'jqFormIO' + (new Date().getTime()); - var $io = $('<iframe id="' + id + '" name="' + id + '" />'); - var io = $io[0]; - - if ($.browser.msie || $.browser.opera) - io.src = 'javascript:false;document.write("");'; - $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' }); - - var xhr = { // mock object - aborted: 0, - responseText: null, - responseXML: null, - status: 0, - statusText: 'n/a', - getAllResponseHeaders: function() {}, - getResponseHeader: function() {}, - setRequestHeader: function() {}, - abort: function() { - this.aborted = 1; - $io.attr('src','about:blank'); // abort op in progress - } - }; - - var g = opts.global; - // trigger ajax global events so that activity/block indicators work like normal - if (g && ! $.active++) $.event.trigger("ajaxStart"); - if (g) $.event.trigger("ajaxSend", [xhr, opts]); - - if (s.beforeSend && s.beforeSend(xhr, s) === false) { - s.global && jQuery.active--; - return; - } - if (xhr.aborted) - return; - - var cbInvoked = 0; - var timedOut = 0; - - // add submitting element to data if we know it - var sub = form.clk; - if (sub) { - var n = sub.name; - if (n && !sub.disabled) { - options.extraData = options.extraData || {}; - options.extraData[n] = sub.value; - if (sub.type == "image") { - options.extraData[name+'.x'] = form.clk_x; - options.extraData[name+'.y'] = form.clk_y; - } - } - } - - // take a breath so that pending repaints get some cpu time before the upload starts - setTimeout(function() { - // make sure form attrs are set - var t = $form.attr('target'), a = $form.attr('action'); - $form.attr({ - target: id, - method: 'POST', - action: opts.url - }); - - // ie borks in some cases when setting encoding - if (! options.skipEncodingOverride) { - $form.attr({ - encoding: 'multipart/form-data', - enctype: 'multipart/form-data' - }); - } - - // support timout - if (opts.timeout) - setTimeout(function() { timedOut = true; cb(); }, opts.timeout); - - // add "extra" data to form if provided in options - var extraInputs = []; - try { - if (options.extraData) - for (var n in options.extraData) - extraInputs.push( - $('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />') - .appendTo(form)[0]); - - // add iframe to doc and submit the form - $io.appendTo('body'); - io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false); - form.submit(); - } - finally { - // reset attrs and remove "extra" input elements - $form.attr('action', a); - t ? $form.attr('target', t) : $form.removeAttr('target'); - $(extraInputs).remove(); - } - }, 10); - - function cb() { - if (cbInvoked++) return; - - io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false); - - var operaHack = 0; - var ok = true; - try { - if (timedOut) throw 'timeout'; - // extract the server response from the iframe - var data, doc; - - doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document; - - if (doc.body == null && !operaHack && $.browser.opera) { - // In Opera 9.2.x the iframe DOM is not always traversable when - // the onload callback fires so we give Opera 100ms to right itself - operaHack = 1; - cbInvoked--; - setTimeout(cb, 100); - return; - } - - xhr.responseText = doc.body ? doc.body.innerHTML : null; - xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; - xhr.getResponseHeader = function(header){ - var headers = {'content-type': opts.dataType}; - return headers[header]; - }; - - if (opts.dataType == 'json' || opts.dataType == 'script') { - var ta = doc.getElementsByTagName('textarea')[0]; - xhr.responseText = ta ? ta.value : xhr.responseText; - } - else if (opts.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { - xhr.responseXML = toXml(xhr.responseText); - } - data = $.httpData(xhr, opts.dataType); - } - catch(e){ - ok = false; - $.handleError(opts, xhr, 'error', e); - } - - // ordering of these callbacks/triggers is odd, but that's how $.ajax does it - if (ok) { - opts.success(data, 'success'); - if (g) $.event.trigger("ajaxSuccess", [xhr, opts]); - } - if (g) $.event.trigger("ajaxComplete", [xhr, opts]); - if (g && ! --$.active) $.event.trigger("ajaxStop"); - if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error'); - - // clean up - setTimeout(function() { - $io.remove(); - xhr.responseXML = null; - }, 100); - }; - - function toXml(s, doc) { - if (window.ActiveXObject) { - doc = new ActiveXObject('Microsoft.XMLDOM'); - doc.async = 'false'; - doc.loadXML(s); - } - else - doc = (new DOMParser()).parseFromString(s, 'text/xml'); - return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null; - }; - }; -}; - -/** - * ajaxForm() provides a mechanism for fully automating form submission. - * - * The advantages of using this method instead of ajaxSubmit() are: - * - * 1: This method will include coordinates for <input type="image" /> elements (if the element - * is used to submit the form). - * 2. This method will include the submit element's name/value data (for the element that was - * used to submit the form). - * 3. This method binds the submit() method to the form for you. - * - * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely - * passes the options argument along after properly binding events for submit elements and - * the form itself. - */ -$.fn.ajaxForm = function(options) { - return this.ajaxFormUnbind().bind('submit.form-plugin',function() { - $(this).ajaxSubmit(options); - return false; - }).each(function() { - // store options in hash - $(":submit,input:image", this).bind('click.form-plugin',function(e) { - var form = this.form; - form.clk = this; - if (this.type == 'image') { - if (e.offsetX != undefined) { - form.clk_x = e.offsetX; - form.clk_y = e.offsetY; - } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin - var offset = $(this).offset(); - form.clk_x = e.pageX - offset.left; - form.clk_y = e.pageY - offset.top; - } else { - form.clk_x = e.pageX - this.offsetLeft; - form.clk_y = e.pageY - this.offsetTop; - } - } - // clear form vars - setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 10); - }); - }); -}; - -// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm -$.fn.ajaxFormUnbind = function() { - this.unbind('submit.form-plugin'); - return this.each(function() { - $(":submit,input:image", this).unbind('click.form-plugin'); - }); - -}; - -/** - * formToArray() gathers form element data into an array of objects that can - * be passed to any of the following ajax functions: $.get, $.post, or load. - * Each object in the array has both a 'name' and 'value' property. An example of - * an array for a simple login form might be: - * - * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] - * - * It is this array that is passed to pre-submit callback functions provided to the - * ajaxSubmit() and ajaxForm() methods. - */ -$.fn.formToArray = function(semantic) { - var a = []; - if (this.length == 0) return a; - - var form = this[0]; - var els = semantic ? form.getElementsByTagName('*') : form.elements; - if (!els) return a; - for(var i=0, max=els.length; i < max; i++) { - var el = els[i]; - var n = el.name; - if (!n) continue; - - if (semantic && form.clk && el.type == "image") { - // handle image inputs on the fly when semantic == true - if(!el.disabled && form.clk == el) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - continue; - } - - var v = $.fieldValue(el, true); - if (v && v.constructor == Array) { - for(var j=0, jmax=v.length; j < jmax; j++) - a.push({name: n, value: v[j]}); - } - else if (v !== null && typeof v != 'undefined') - a.push({name: n, value: v}); - } - - if (!semantic && form.clk) { - // input type=='image' are not found in elements array! handle them here - var inputs = form.getElementsByTagName("input"); - for(var i=0, max=inputs.length; i < max; i++) { - var input = inputs[i]; - var n = input.name; - if(n && !input.disabled && input.type == "image" && form.clk == input) - a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); - } - } - return a; -}; - -/** - * Serializes form data into a 'submittable' string. This method will return a string - * in the format: name1=value1&name2=value2 - */ -$.fn.formSerialize = function(semantic) { - //hand off to jQuery.param for proper encoding - return $.param(this.formToArray(semantic)); -}; - -/** - * Serializes all field elements in the jQuery object into a query string. - * This method will return a string in the format: name1=value1&name2=value2 - */ -$.fn.fieldSerialize = function(successful) { - var a = []; - this.each(function() { - var n = this.name; - if (!n) return; - var v = $.fieldValue(this, successful); - if (v && v.constructor == Array) { - for (var i=0,max=v.length; i < max; i++) - a.push({name: n, value: v[i]}); - } - else if (v !== null && typeof v != 'undefined') - a.push({name: this.name, value: v}); - }); - //hand off to jQuery.param for proper encoding - return $.param(a); -}; - -/** - * Returns the value(s) of the element in the matched set. For example, consider the following form: - * - * <form><fieldset> - * <input name="A" type="text" /> - * <input name="A" type="text" /> - * <input name="B" type="checkbox" value="B1" /> - * <input name="B" type="checkbox" value="B2"/> - * <input name="C" type="radio" value="C1" /> - * <input name="C" type="radio" value="C2" /> - * </fieldset></form> - * - * var v = $(':text').fieldValue(); - * // if no values are entered into the text inputs - * v == ['',''] - * // if values entered into the text inputs are 'foo' and 'bar' - * v == ['foo','bar'] - * - * var v = $(':checkbox').fieldValue(); - * // if neither checkbox is checked - * v === undefined - * // if both checkboxes are checked - * v == ['B1', 'B2'] - * - * var v = $(':radio').fieldValue(); - * // if neither radio is checked - * v === undefined - * // if first radio is checked - * v == ['C1'] - * - * The successful argument controls whether or not the field element must be 'successful' - * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). - * The default value of the successful argument is true. If this value is false the value(s) - * for each element is returned. - * - * Note: This method *always* returns an array. If no valid value can be determined the - * array will be empty, otherwise it will contain one or more values. - */ -$.fn.fieldValue = function(successful) { - for (var val=[], i=0, max=this.length; i < max; i++) { - var el = this[i]; - var v = $.fieldValue(el, successful); - if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) - continue; - v.constructor == Array ? $.merge(val, v) : val.push(v); - } - return val; -}; - -/** - * Returns the value of the field element. - */ -$.fieldValue = function(el, successful) { - var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); - if (typeof successful == 'undefined') successful = true; - - if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || - (t == 'checkbox' || t == 'radio') && !el.checked || - (t == 'submit' || t == 'image') && el.form && el.form.clk != el || - tag == 'select' && el.selectedIndex == -1)) - return null; - - if (tag == 'select') { - var index = el.selectedIndex; - if (index < 0) return null; - var a = [], ops = el.options; - var one = (t == 'select-one'); - var max = (one ? index+1 : ops.length); - for(var i=(one ? index : 0); i < max; i++) { - var op = ops[i]; - if (op.selected) { - // extra pain for IE... - var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value; - if (one) return v; - a.push(v); - } - } - return a; - } - return el.value; -}; - -/** - * Clears the form data. Takes the following actions on the form's input fields: - * - input text fields will have their 'value' property set to the empty string - * - select elements will have their 'selectedIndex' property set to -1 - * - checkbox and radio inputs will have their 'checked' property set to false - * - inputs of type submit, button, reset, and hidden will *not* be effected - * - button elements will *not* be effected - */ -$.fn.clearForm = function() { - return this.each(function() { - $('input,select,textarea', this).clearFields(); - }); -}; - -/** - * Clears the selected form elements. - */ -$.fn.clearFields = $.fn.clearInputs = function() { - return this.each(function() { - var t = this.type, tag = this.tagName.toLowerCase(); - if (t == 'file' || t == 'text' || t == 'password' || tag == 'textarea') - this.value = ''; - else if (t == 'checkbox' || t == 'radio') - this.checked = false; - else if (tag == 'select') - this.selectedIndex = -1; - }); -}; - -/** - * Resets the form data. Causes all form elements to be reset to their original value. - */ -$.fn.resetForm = function() { - return this.each(function() { - // guard against an input with the name of 'reset' - // note that IE reports the reset function as an 'object' - if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) - this.reset(); - }); -}; - -/** - * Enables or disables any matching elements. - */ -$.fn.enable = function(b) { - if (b == undefined) b = true; - return this.each(function() { - this.disabled = !b - }); -}; - -/** - * Checks/unchecks any matching checkboxes or radio buttons and - * selects/deselects and matching option elements. - */ -$.fn.selected = function(select) { - if (select == undefined) select = true; - return this.each(function() { - var t = this.type; - if (t == 'checkbox' || t == 'radio') - this.checked = select; - else if (this.tagName.toLowerCase() == 'option') { - var $sel = $(this).parent('select'); - if (select && $sel[0] && $sel[0].type == 'select-one') { - // deselect all other options - $sel.find('option').selected(false); - } - this.selected = select; - } - }); -}; - -// helper fn for console logging -// set $.fn.ajaxSubmit.debug to true to enable debug logging -function log() { - if ($.fn.ajaxSubmit.debug && window.console && window.console.log) - window.console.log('[jquery.form] ' + Array.prototype.join.call(arguments,'')); -}; - -})(jQuery); +/*! + * jQuery Form Plugin + * version: 2.49 (18-OCT-2010) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +;(function($) { + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are intended to be exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').bind('submit', function(e) { + e.preventDefault(); // <-- important + $(this).ajaxSubmit({ + target: '#output' + }); + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + if (typeof options == 'function') { + options = { success: options }; + } + + var url = $.trim(this.attr('action')); + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + url = url || window.location.href || ''; + + options = $.extend(true, { + url: url, + type: this.attr('method') || 'GET', + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var n,v,a = this.formToArray(options.semantic); + if (options.data) { + options.extraData = options.data; + for (n in options.data) { + if(options.data[n] instanceof Array) { + for (var k in options.data[n]) { + a.push( { name: n, value: options.data[n][k] } ); + } + } + else { + v = options.data[n]; + v = $.isFunction(v) ? v() : v; // if value is fn, invoke it + a.push( { name: n, value: v } ); + } + } + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else { + options.data = q; // data is the query string for 'post' + } + + var $form = this, callbacks = []; + if (options.resetForm) { + callbacks.push(function() { $form.resetForm(); }); + } + if (options.clearForm) { + callbacks.push(function() { $form.clearForm(); }); + } + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) { + callbacks.push(options.success); + } + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + var context = options.context || options; // jQuery 1.4+ supports scope context + for (var i=0, max=callbacks.length; i < max; i++) { + callbacks[i].apply(context, [data, status, xhr || $form, $form]); + } + }; + + // are there files to upload? + var fileInputs = $('input:file', this).length > 0; + var mp = 'multipart/form-data'; + var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if (options.iframe !== false && (fileInputs || options.iframe || multipart)) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, fileUpload); + } + else { + fileUpload(); + } + } + else { + $.ajax(options); + } + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUpload() { + var form = $form[0]; + + if ($(':input[name=submit],:input[id=submit]', form).length) { + // if there is an input with a name or id of 'submit' then we won't be + // able to invoke the submit fn on the form (at least not x-browser) + alert('Error: Form elements must not have name or id of "submit".'); + return; + } + + var s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id; + window[fn] = function() { + var f = $io.data('form-plugin-onload'); + if (f) { + f(); + window[fn] = undefined; + try { delete window[fn]; } catch(e){} + } + } + var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" onload="window[\'_\'+this.id]()" />'); + var io = $io[0]; + + $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' }); + + var xhr = { // mock object + aborted: 0, + responseText: null, + responseXML: null, + status: 0, + statusText: 'n/a', + getAllResponseHeaders: function() {}, + getResponseHeader: function() {}, + setRequestHeader: function() {}, + abort: function() { + this.aborted = 1; + $io.attr('src', s.iframeSrc); // abort op in progress + } + }; + + var g = s.global; + // trigger ajax global events so that activity/block indicators work like normal + if (g && ! $.active++) { + $.event.trigger("ajaxStart"); + } + if (g) { + $.event.trigger("ajaxSend", [xhr, s]); + } + + if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) { + if (s.global) { + $.active--; + } + return; + } + if (xhr.aborted) { + return; + } + + var cbInvoked = false; + var timedOut = 0; + + // add submitting element to data if we know it + var sub = form.clk; + if (sub) { + var n = sub.name; + if (n && !sub.disabled) { + s.extraData = s.extraData || {}; + s.extraData[n] = sub.value; + if (sub.type == "image") { + s.extraData[n+'.x'] = form.clk_x; + s.extraData[n+'.y'] = form.clk_y; + } + } + } + + // take a breath so that pending repaints get some cpu time before the upload starts + function doSubmit() { + // make sure form attrs are set + var t = $form.attr('target'), a = $form.attr('action'); + + // update form attrs in IE friendly way + form.setAttribute('target',id); + if (form.getAttribute('method') != 'POST') { + form.setAttribute('method', 'POST'); + } + if (form.getAttribute('action') != s.url) { + form.setAttribute('action', s.url); + } + + // ie borks in some cases when setting encoding + if (! s.skipEncodingOverride) { + $form.attr({ + encoding: 'multipart/form-data', + enctype: 'multipart/form-data' + }); + } + + // support timout + if (s.timeout) { + setTimeout(function() { timedOut = true; cb(); }, s.timeout); + } + + // add "extra" data to form if provided in options + var extraInputs = []; + try { + if (s.extraData) { + for (var n in s.extraData) { + extraInputs.push( + $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />') + .appendTo(form)[0]); + } + } + + // add iframe to doc and submit the form + $io.appendTo('body'); + $io.data('form-plugin-onload', cb); + form.submit(); + } + finally { + // reset attrs and remove "extra" input elements + form.setAttribute('action',a); + if(t) { + form.setAttribute('target', t); + } else { + $form.removeAttr('target'); + } + $(extraInputs).remove(); + } + } + + if (s.forceSync) { + doSubmit(); + } + else { + setTimeout(doSubmit, 10); // this lets dom updates render + } + + var data, doc, domCheckCount = 50; + + function cb() { + if (cbInvoked) { + return; + } + + $io.removeData('form-plugin-onload'); + + var ok = true; + try { + if (timedOut) { + throw 'timeout'; + } + // extract the server response from the iframe + doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document; + + var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc); + log('isXml='+isXml); + if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) { + if (--domCheckCount) { + // in some browsers (Opera) the iframe DOM is not always traversable when + // the onload callback fires, so we loop a bit to accommodate + log('requeing onLoad callback, DOM not available'); + setTimeout(cb, 250); + return; + } + // let this fall through because server response could be an empty document + //log('Could not access iframe DOM after mutiple tries.'); + //throw 'DOMException: not available'; + } + + //log('response detected'); + cbInvoked = true; + xhr.responseText = doc.documentElement ? doc.documentElement.innerHTML : null; + xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc; + xhr.getResponseHeader = function(header){ + var headers = {'content-type': s.dataType}; + return headers[header]; + }; + + var scr = /(json|script)/.test(s.dataType); + if (scr || s.textarea) { + // see if user embedded response in textarea + var ta = doc.getElementsByTagName('textarea')[0]; + if (ta) { + xhr.responseText = ta.value; + } + else if (scr) { + // account for browsers injecting pre around json response + var pre = doc.getElementsByTagName('pre')[0]; + var b = doc.getElementsByTagName('body')[0]; + if (pre) { + xhr.responseText = pre.innerHTML; + } + else if (b) { + xhr.responseText = b.innerHTML; + } + } + } + else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { + xhr.responseXML = toXml(xhr.responseText); + } + data = $.httpData(xhr, s.dataType); + } + catch(e){ + log('error caught:',e); + ok = false; + xhr.error = e; + $.handleError(s, xhr, 'error', e); + } + + // ordering of these callbacks/triggers is odd, but that's how $.ajax does it + if (ok) { + s.success.call(s.context, data, 'success', xhr); + if (g) { + $.event.trigger("ajaxSuccess", [xhr, s]); + } + } + if (g) { + $.event.trigger("ajaxComplete", [xhr, s]); + } + if (g && ! --$.active) { + $.event.trigger("ajaxStop"); + } + if (s.complete) { + s.complete.call(s.context, xhr, ok ? 'success' : 'error'); + } + + // clean up + setTimeout(function() { + $io.removeData('form-plugin-onload'); + $io.remove(); + xhr.responseXML = null; + }, 100); + } + + function toXml(s, doc) { + if (window.ActiveXObject) { + doc = new ActiveXObject('Microsoft.XMLDOM'); + doc.async = 'false'; + doc.loadXML(s); + } + else { + doc = (new DOMParser()).parseFromString(s, 'text/xml'); + } + return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null; + } + } +}; + +/** + * ajaxForm() provides a mechanism for fully automating form submission. + * + * The advantages of using this method instead of ajaxSubmit() are: + * + * 1: This method will include coordinates for <input type="image" /> elements (if the element + * is used to submit the form). + * 2. This method will include the submit element's name/value data (for the element that was + * used to submit the form). + * 3. This method binds the submit() method to the form for you. + * + * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely + * passes the options argument along after properly binding events for submit elements and + * the form itself. + */ +$.fn.ajaxForm = function(options) { + // in jQuery 1.3+ we can fix mistakes with the ready state + if (this.length === 0) { + var o = { s: this.selector, c: this.context }; + if (!$.isReady && o.s) { + log('DOM not ready, queuing ajaxForm'); + $(function() { + $(o.s,o.c).ajaxForm(options); + }); + return this; + } + // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready() + log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)')); + return this; + } + + return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) { + if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed + e.preventDefault(); + $(this).ajaxSubmit(options); + } + }).bind('click.form-plugin', function(e) { + var target = e.target; + var $el = $(target); + if (!($el.is(":submit,input:image"))) { + // is this a child element of the submit el? (ex: a span within a button) + var t = $el.closest(':submit'); + if (t.length == 0) { + return; + } + target = t[0]; + } + var form = this; + form.clk = target; + if (target.type == 'image') { + if (e.offsetX != undefined) { + form.clk_x = e.offsetX; + form.clk_y = e.offsetY; + } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin + var offset = $el.offset(); + form.clk_x = e.pageX - offset.left; + form.clk_y = e.pageY - offset.top; + } else { + form.clk_x = e.pageX - target.offsetLeft; + form.clk_y = e.pageY - target.offsetTop; + } + } + // clear form vars + setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100); + }); +}; + +// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm +$.fn.ajaxFormUnbind = function() { + return this.unbind('submit.form-plugin click.form-plugin'); +}; + +/** + * formToArray() gathers form element data into an array of objects that can + * be passed to any of the following ajax functions: $.get, $.post, or load. + * Each object in the array has both a 'name' and 'value' property. An example of + * an array for a simple login form might be: + * + * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] + * + * It is this array that is passed to pre-submit callback functions provided to the + * ajaxSubmit() and ajaxForm() methods. + */ +$.fn.formToArray = function(semantic) { + var a = []; + if (this.length === 0) { + return a; + } + + var form = this[0]; + var els = semantic ? form.getElementsByTagName('*') : form.elements; + if (!els) { + return a; + } + + var i,j,n,v,el,max,jmax; + for(i=0, max=els.length; i < max; i++) { + el = els[i]; + n = el.name; + if (!n) { + continue; + } + + if (semantic && form.clk && el.type == "image") { + // handle image inputs on the fly when semantic == true + if(!el.disabled && form.clk == el) { + a.push({name: n, value: $(el).val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + continue; + } + + v = $.fieldValue(el, true); + if (v && v.constructor == Array) { + for(j=0, jmax=v.length; j < jmax; j++) { + a.push({name: n, value: v[j]}); + } + } + else if (v !== null && typeof v != 'undefined') { + a.push({name: n, value: v}); + } + } + + if (!semantic && form.clk) { + // input type=='image' are not found in elements array! handle it here + var $input = $(form.clk), input = $input[0]; + n = input.name; + if (n && !input.disabled && input.type == 'image') { + a.push({name: n, value: $input.val()}); + a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y}); + } + } + return a; +}; + +/** + * Serializes form data into a 'submittable' string. This method will return a string + * in the format: name1=value1&name2=value2 + */ +$.fn.formSerialize = function(semantic) { + //hand off to jQuery.param for proper encoding + return $.param(this.formToArray(semantic)); +}; + +/** + * Serializes all field elements in the jQuery object into a query string. + * This method will return a string in the format: name1=value1&name2=value2 + */ +$.fn.fieldSerialize = function(successful) { + var a = []; + this.each(function() { + var n = this.name; + if (!n) { + return; + } + var v = $.fieldValue(this, successful); + if (v && v.constructor == Array) { + for (var i=0,max=v.length; i < max; i++) { + a.push({name: n, value: v[i]}); + } + } + else if (v !== null && typeof v != 'undefined') { + a.push({name: this.name, value: v}); + } + }); + //hand off to jQuery.param for proper encoding + return $.param(a); +}; + +/** + * Returns the value(s) of the element in the matched set. For example, consider the following form: + * + * <form><fieldset> + * <input name="A" type="text" /> + * <input name="A" type="text" /> + * <input name="B" type="checkbox" value="B1" /> + * <input name="B" type="checkbox" value="B2"/> + * <input name="C" type="radio" value="C1" /> + * <input name="C" type="radio" value="C2" /> + * </fieldset></form> + * + * var v = $(':text').fieldValue(); + * // if no values are entered into the text inputs + * v == ['',''] + * // if values entered into the text inputs are 'foo' and 'bar' + * v == ['foo','bar'] + * + * var v = $(':checkbox').fieldValue(); + * // if neither checkbox is checked + * v === undefined + * // if both checkboxes are checked + * v == ['B1', 'B2'] + * + * var v = $(':radio').fieldValue(); + * // if neither radio is checked + * v === undefined + * // if first radio is checked + * v == ['C1'] + * + * The successful argument controls whether or not the field element must be 'successful' + * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls). + * The default value of the successful argument is true. If this value is false the value(s) + * for each element is returned. + * + * Note: This method *always* returns an array. If no valid value can be determined the + * array will be empty, otherwise it will contain one or more values. + */ +$.fn.fieldValue = function(successful) { + for (var val=[], i=0, max=this.length; i < max; i++) { + var el = this[i]; + var v = $.fieldValue(el, successful); + if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) { + continue; + } + v.constructor == Array ? $.merge(val, v) : val.push(v); + } + return val; +}; + +/** + * Returns the value of the field element. + */ +$.fieldValue = function(el, successful) { + var n = el.name, t = el.type, tag = el.tagName.toLowerCase(); + if (successful === undefined) { + successful = true; + } + + if (successful && (!n || el.disabled || t == 'reset' || t == 'button' || + (t == 'checkbox' || t == 'radio') && !el.checked || + (t == 'submit' || t == 'image') && el.form && el.form.clk != el || + tag == 'select' && el.selectedIndex == -1)) { + return null; + } + + if (tag == 'select') { + var index = el.selectedIndex; + if (index < 0) { + return null; + } + var a = [], ops = el.options; + var one = (t == 'select-one'); + var max = (one ? index+1 : ops.length); + for(var i=(one ? index : 0); i < max; i++) { + var op = ops[i]; + if (op.selected) { + var v = op.value; + if (!v) { // extra pain for IE... + v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value; + } + if (one) { + return v; + } + a.push(v); + } + } + return a; + } + return $(el).val(); +}; + +/** + * Clears the form data. Takes the following actions on the form's input fields: + * - input text fields will have their 'value' property set to the empty string + * - select elements will have their 'selectedIndex' property set to -1 + * - checkbox and radio inputs will have their 'checked' property set to false + * - inputs of type submit, button, reset, and hidden will *not* be effected + * - button elements will *not* be effected + */ +$.fn.clearForm = function() { + return this.each(function() { + $('input,select,textarea', this).clearFields(); + }); +}; + +/** + * Clears the selected form elements. + */ +$.fn.clearFields = $.fn.clearInputs = function() { + return this.each(function() { + var t = this.type, tag = this.tagName.toLowerCase(); + if (t == 'text' || t == 'password' || tag == 'textarea') { + this.value = ''; + } + else if (t == 'checkbox' || t == 'radio') { + this.checked = false; + } + else if (tag == 'select') { + this.selectedIndex = -1; + } + }); +}; + +/** + * Resets the form data. Causes all form elements to be reset to their original value. + */ +$.fn.resetForm = function() { + return this.each(function() { + // guard against an input with the name of 'reset' + // note that IE reports the reset function as an 'object' + if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) { + this.reset(); + } + }); +}; + +/** + * Enables or disables any matching elements. + */ +$.fn.enable = function(b) { + if (b === undefined) { + b = true; + } + return this.each(function() { + this.disabled = !b; + }); +}; + +/** + * Checks/unchecks any matching checkboxes or radio buttons and + * selects/deselects and matching option elements. + */ +$.fn.selected = function(select) { + if (select === undefined) { + select = true; + } + return this.each(function() { + var t = this.type; + if (t == 'checkbox' || t == 'radio') { + this.checked = select; + } + else if (this.tagName.toLowerCase() == 'option') { + var $sel = $(this).parent('select'); + if (select && $sel[0] && $sel[0].type == 'select-one') { + // deselect all other options + $sel.find('option').selected(false); + } + this.selected = select; + } + }); +}; + +// helper fn for console logging +// set $.fn.ajaxSubmit.debug to true to enable debug logging +function log() { + if ($.fn.ajaxSubmit.debug) { + var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,''); + if (window.console && window.console.log) { + window.console.log(msg); + } + else if (window.opera && window.opera.postError) { + window.opera.postError(msg); + } + } +}; + +})(jQuery); diff --git a/js/jquery.form.min.js b/js/jquery.form.min.js new file mode 100644 index 0000000000..04c26a6ece --- /dev/null +++ b/js/jquery.form.min.js @@ -0,0 +1,11 @@ +/* + * jQuery Form Plugin + * version: 2.49 (18-OCT-2010) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +(function(b){b.fn.ajaxSubmit=function(s){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof s=="function"){s={success:s}}var d=b.trim(this.attr("action"));if(d){d=(d.match(/^([^#]+)/)||[])[1]}d=d||window.location.href||"";s=b.extend(true,{url:d,type:this.attr("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},s);var t={};this.trigger("form-pre-serialize",[this,s,t]);if(t.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(s.beforeSerialize&&s.beforeSerialize(this,s)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var f,o,l=this.formToArray(s.semantic);if(s.data){s.extraData=s.data;for(f in s.data){if(s.data[f] instanceof Array){for(var h in s.data[f]){l.push({name:f,value:s.data[f][h]})}}else{o=s.data[f];o=b.isFunction(o)?o():o;l.push({name:f,value:o})}}}if(s.beforeSubmit&&s.beforeSubmit(l,this,s)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[l,this,s,t]);if(t.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var c=b.param(l);if(s.type.toUpperCase()=="GET"){s.url+=(s.url.indexOf("?")>=0?"&":"?")+c;s.data=null}else{s.data=c}var r=this,j=[];if(s.resetForm){j.push(function(){r.resetForm()})}if(s.clearForm){j.push(function(){r.clearForm()})}if(!s.dataType&&s.target){var p=s.success||function(){};j.push(function(n){var k=s.replaceTarget?"replaceWith":"html";b(s.target)[k](n).each(p,arguments)})}else{if(s.success){j.push(s.success)}}s.success=function(v,n,w){var u=s.context||s;for(var q=0,k=j.length;q<k;q++){j[q].apply(u,[v,n,w||r,r])}};var g=b("input:file",this).length>0;var e="multipart/form-data";var i=(r.attr("enctype")==e||r.attr("encoding")==e);if(s.iframe!==false&&(g||s.iframe||i)){if(s.closeKeepAlive){b.get(s.closeKeepAlive,m)}else{m()}}else{b.ajax(s)}this.trigger("form-submit-notify",[this,s]);return this;function m(){var k=r[0];if(b(":input[name=submit],:input[id=submit]",k).length){alert('Error: Form elements must not have name or id of "submit".');return}var y=b.extend(true,{},b.ajaxSettings,s);y.context=y.context||y;var B="jqFormIO"+(new Date().getTime()),w="_"+B;window[w]=function(){var n=q.data("form-plugin-onload");if(n){n();window[w]=undefined;try{delete window[w]}catch(K){}}};var q=b('<iframe id="'+B+'" name="'+B+'" src="'+y.iframeSrc+'" onload="window[\'_\'+this.id]()" />');var x=q[0];q.css({position:"absolute",top:"-1000px",left:"-1000px"});var u={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;q.attr("src",y.iframeSrc)}};var G=y.global;if(G&&!b.active++){b.event.trigger("ajaxStart")}if(G){b.event.trigger("ajaxSend",[u,y])}if(y.beforeSend&&y.beforeSend.call(y.context,u,y)===false){if(y.global){b.active--}return}if(u.aborted){return}var C=false;var F=0;var v=k.clk;if(v){var D=v.name;if(D&&!v.disabled){y.extraData=y.extraData||{};y.extraData[D]=v.value;if(v.type=="image"){y.extraData[D+".x"]=k.clk_x;y.extraData[D+".y"]=k.clk_y}}}function E(){var M=r.attr("target"),K=r.attr("action");k.setAttribute("target",B);if(k.getAttribute("method")!="POST"){k.setAttribute("method","POST")}if(k.getAttribute("action")!=y.url){k.setAttribute("action",y.url)}if(!y.skipEncodingOverride){r.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(y.timeout){setTimeout(function(){F=true;A()},y.timeout)}var L=[];try{if(y.extraData){for(var N in y.extraData){L.push(b('<input type="hidden" name="'+N+'" value="'+y.extraData[N]+'" />').appendTo(k)[0])}}q.appendTo("body");q.data("form-plugin-onload",A);k.submit()}finally{k.setAttribute("action",K);if(M){k.setAttribute("target",M)}else{r.removeAttr("target")}b(L).remove()}}if(y.forceSync){E()}else{setTimeout(E,10)}var I,J,H=50;function A(){if(C){return}q.removeData("form-plugin-onload");var L=true;try{if(F){throw"timeout"}J=x.contentWindow?x.contentWindow.document:x.contentDocument?x.contentDocument:x.document;var P=y.dataType=="xml"||J.XMLDocument||b.isXMLDoc(J);a("isXml="+P);if(!P&&window.opera&&(J.body==null||J.body.innerHTML=="")){if(--H){a("requeing onLoad callback, DOM not available");setTimeout(A,250);return}}C=true;u.responseText=J.documentElement?J.documentElement.innerHTML:null;u.responseXML=J.XMLDocument?J.XMLDocument:J;u.getResponseHeader=function(R){var Q={"content-type":y.dataType};return Q[R]};var O=/(json|script)/.test(y.dataType);if(O||y.textarea){var K=J.getElementsByTagName("textarea")[0];if(K){u.responseText=K.value}else{if(O){var N=J.getElementsByTagName("pre")[0];var n=J.getElementsByTagName("body")[0];if(N){u.responseText=N.innerHTML}else{if(n){u.responseText=n.innerHTML}}}}}else{if(y.dataType=="xml"&&!u.responseXML&&u.responseText!=null){u.responseXML=z(u.responseText)}}I=b.httpData(u,y.dataType)}catch(M){a("error caught:",M);L=false;u.error=M;b.handleError(y,u,"error",M)}if(L){y.success.call(y.context,I,"success",u);if(G){b.event.trigger("ajaxSuccess",[u,y])}}if(G){b.event.trigger("ajaxComplete",[u,y])}if(G&&!--b.active){b.event.trigger("ajaxStop")}if(y.complete){y.complete.call(y.context,u,L?"success":"error")}setTimeout(function(){q.removeData("form-plugin-onload");q.remove();u.responseXML=null},100)}function z(n,K){if(window.ActiveXObject){K=new ActiveXObject("Microsoft.XMLDOM");K.async="false";K.loadXML(n)}else{K=(new DOMParser()).parseFromString(n,"text/xml")}return(K&&K.documentElement&&K.documentElement.tagName!="parsererror")?K:null}}};b.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){a("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(c)});return this}a("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(j){var i=j.target;var g=b(i);if(!(g.is(":submit,input:image"))){var f=g.closest(":submit");if(f.length==0){return}i=f[0]}var h=this;h.clk=i;if(i.type=="image"){if(j.offsetX!=undefined){h.clk_x=j.offsetX;h.clk_y=j.offsetY}else{if(typeof b.fn.offset=="function"){var k=g.offset();h.clk_x=j.pageX-k.left;h.clk_y=j.pageY-k.top}else{h.clk_x=j.pageX-i.offsetLeft;h.clk_y=j.pageY-i.offsetTop}}}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length===0){return p}var d=this[0];var g=q?d.getElementsByTagName("*"):d.elements;if(!g){return p}var k,h,f,r,e,m,c;for(k=0,m=g.length;k<m;k++){e=g[k];f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(h=0,c=r.length;h<c;h++){p.push({name:f,value:r[h]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0];f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(j===undefined){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return b(c).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c===undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c===undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug){var c="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(c)}else{if(window.opera&&window.opera.postError){window.opera.postError(c)}}}}})(jQuery); \ No newline at end of file diff --git a/js/jquery.js b/js/jquery.js index b3b95307a1..a4f114586c 100644 --- a/js/jquery.js +++ b/js/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.4.2 + * jQuery JavaScript Library v1.4.4 * http://jquery.com/ * * Copyright 2010, John Resig @@ -11,10 +11,14 @@ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Sat Feb 13 22:33:48 2010 -0500 + * Date: Thu Nov 11 19:04:53 2010 -0500 */ (function( window, undefined ) { +// Use the correct document accordingly with window argument (sandbox) +var document = window.document; +var jQuery = (function() { + // Define a local copy of jQuery var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' @@ -27,28 +31,45 @@ var jQuery = function( selector, context ) { // Map over the $ in case of overwrite _$ = window.$, - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - // A central reference to the root jQuery(document) rootjQuery, // A simple way to check for HTML strings or ID strings // (both of which we optimize for) - quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/, + quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/, // Is it a simple selector isSimple = /^.[^:#\[\.,]*$/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, + rwhite = /\s/, // Used for trimming whitespace - rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g, + trimLeft = /^\s+/, + trimRight = /\s+$/, + + // Check for non-word characters + rnonword = /\W/, + + // Check for digits + rdigit = /\d/, // Match a standalone tag rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/, + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, + rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + + // Useragent RegExp + rwebkit = /(webkit)[ \/]([\w.]+)/, + ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/, + rmsie = /(msie) ([\w.]+)/, + rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, + // Keep a UserAgent string for use with jQuery.browser userAgent = navigator.userAgent, @@ -66,10 +87,14 @@ var jQuery = function( selector, context ) { // Save a reference to some core methods toString = Object.prototype.toString, - hasOwnProperty = Object.prototype.hasOwnProperty, + hasOwn = Object.prototype.hasOwnProperty, push = Array.prototype.push, slice = Array.prototype.slice, - indexOf = Array.prototype.indexOf; + trim = String.prototype.trim, + indexOf = Array.prototype.indexOf, + + // [[Class]] -> type pairs + class2type = {}; jQuery.fn = jQuery.prototype = { init: function( selector, context ) { @@ -88,7 +113,7 @@ jQuery.fn = jQuery.prototype = { } // The body element only exists once, optimize finding it - if ( selector === "body" && !context ) { + if ( selector === "body" && !context && document.body ) { this.context = document; this[0] = document.body; this.selector = "body"; @@ -122,7 +147,7 @@ jQuery.fn = jQuery.prototype = { } } else { - ret = buildFragment( [ match[1] ], [ doc ] ); + ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; } @@ -132,7 +157,9 @@ jQuery.fn = jQuery.prototype = { } else { elem = document.getElementById( match[2] ); - if ( elem ) { + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { // Handle the case where IE and Opera return items // by name instead of ID if ( elem.id !== match[2] ) { @@ -150,7 +177,7 @@ jQuery.fn = jQuery.prototype = { } // HANDLE: $("TAG") - } else if ( !context && /^\w+$/.test( selector ) ) { + } else if ( !context && !rnonword.test( selector ) ) { this.selector = selector; this.context = document; selector = document.getElementsByTagName( selector ); @@ -184,7 +211,7 @@ jQuery.fn = jQuery.prototype = { selector: "", // The current version of jQuery being used - jquery: "1.4.2", + jquery: "1.4.4", // The default length of a jQuery object is 0 length: 0, @@ -303,8 +330,11 @@ jQuery.fn = jQuery.prototype = { jQuery.fn.init.prototype = jQuery.fn; jQuery.extend = jQuery.fn.extend = function() { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy; + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { @@ -338,10 +368,15 @@ jQuery.extend = jQuery.fn.extend = function() { continue; } - // Recurse if we're merging object literal values or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || jQuery.isArray(copy) ) ) { - var clone = src && ( jQuery.isPlainObject(src) || jQuery.isArray(src) ) ? src - : jQuery.isArray(copy) ? [] : {}; + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); @@ -371,34 +406,51 @@ jQuery.extend({ // Is the DOM ready to be used? Set to true once it occurs. isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, // Handle when the DOM is ready - ready: function() { + ready: function( wait ) { + // A third-party is pushing the ready event forwards + if ( wait === true ) { + jQuery.readyWait--; + } + // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { + if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) { // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). if ( !document.body ) { - return setTimeout( jQuery.ready, 13 ); + return setTimeout( jQuery.ready, 1 ); } // Remember that the DOM is ready jQuery.isReady = true; + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + // If there are functions bound, to execute if ( readyList ) { // Execute all of them - var fn, i = 0; - while ( (fn = readyList[ i++ ]) ) { - fn.call( document, jQuery ); - } + var fn, + i = 0, + ready = readyList; // Reset the list of functions readyList = null; - } - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); + while ( (fn = ready[ i++ ]) ) { + fn.call( document, jQuery ); + } + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger( "ready" ).unbind( "ready" ); + } } } }, @@ -413,7 +465,8 @@ jQuery.extend({ // Catch cases where $(document).ready() is called after the // browser event has already occurred. if ( document.readyState === "complete" ) { - return jQuery.ready(); + // Handle it asynchronously to allow scripts the opportunity to delay ready + return setTimeout( jQuery.ready, 1 ); } // Mozilla, Opera and webkit nightlies currently support this event @@ -451,25 +504,40 @@ jQuery.extend({ // Since version 1.3, DOM methods and functions like alert // aren't supported. They return false on IE (#2968). isFunction: function( obj ) { - return toString.call(obj) === "[object Function]"; + return jQuery.type(obj) === "function"; }, - isArray: function( obj ) { - return toString.call(obj) === "[object Array]"; + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + // A crude way of determining if an object is a window + isWindow: function( obj ) { + return obj && typeof obj === "object" && "setInterval" in obj; + }, + + isNaN: function( obj ) { + return obj == null || !rdigit.test( obj ) || isNaN( obj ); + }, + + type: function( obj ) { + return obj == null ? + String( obj ) : + class2type[ toString.call(obj) ] || "object"; }, isPlainObject: function( obj ) { // Must be an Object. // Because of IE, we also have to check the presence of the constructor property. // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) { + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } // Not own constructor property must be Object - if ( obj.constructor - && !hasOwnProperty.call(obj, "constructor") - && !hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ) { + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } @@ -479,7 +547,7 @@ jQuery.extend({ var key; for ( key in obj ) {} - return key === undefined || hasOwnProperty.call( obj, key ); + return key === undefined || hasOwn.call( obj, key ); }, isEmptyObject: function( obj ) { @@ -503,9 +571,9 @@ jQuery.extend({ // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js - if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") - .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) { + if ( rvalidchars.test(data.replace(rvalidescape, "@") + .replace(rvalidtokens, "]") + .replace(rvalidbraces, "")) ) { // Try to use the native JSON parser first return window.JSON && window.JSON.parse ? @@ -584,9 +652,20 @@ jQuery.extend({ return object; }, - trim: function( text ) { - return (text || "").replace( rtrim, "" ); - }, + // Use native String.trim function wherever possible + trim: trim ? + function( text ) { + return text == null ? + "" : + trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + text.toString().replace( trimLeft, "" ).replace( trimRight, "" ); + }, // results is for internal usage only makeArray: function( array, results ) { @@ -596,7 +675,10 @@ jQuery.extend({ // The window, strings (and functions) also have 'length' // The extra typeof function check is to prevent crashes // in Safari 2 (See: #3039) - if ( array.length == null || typeof array === "string" || jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) { + // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 + var type = jQuery.type(array); + + if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); } else { jQuery.merge( ret, array ); @@ -621,7 +703,8 @@ jQuery.extend({ }, merge: function( first, second ) { - var i = first.length, j = 0; + var i = first.length, + j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { @@ -640,12 +723,14 @@ jQuery.extend({ }, grep: function( elems, callback, inv ) { - var ret = []; + var ret = [], retVal; + inv = !!inv; // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) { - if ( !inv !== !callback( elems[ i ], i ) ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { ret.push( elems[ i ] ); } } @@ -701,16 +786,49 @@ jQuery.extend({ return proxy; }, + // Mutifunctional method to get and set values to a collection + // The value/s can be optionally by executed if its a function + access: function( elems, key, value, exec, fn, pass ) { + var length = elems.length; + + // Setting many attributes + if ( typeof key === "object" ) { + for ( var k in key ) { + jQuery.access( elems, k, key[k], exec, fn, value ); + } + return elems; + } + + // Setting one attribute + if ( value !== undefined ) { + // Optionally, function values get executed if exec is true + exec = !pass && exec && jQuery.isFunction(value); + + for ( var i = 0; i < length; i++ ) { + fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); + } + + return elems; + } + + // Getting an attribute + return length ? fn( elems[0], key ) : undefined; + }, + + now: function() { + return (new Date()).getTime(); + }, + // Use of jQuery.browser is frowned upon. // More details: http://docs.jquery.com/Utilities/jQuery.browser uaMatch: function( ua ) { ua = ua.toLowerCase(); - var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) || - /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) || - /(msie) ([\w.]+)/.exec( ua ) || - !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || - []; + var match = rwebkit.exec( ua ) || + ropera.exec( ua ) || + rmsie.exec( ua ) || + ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) || + []; return { browser: match[1] || "", version: match[2] || "0" }; }, @@ -718,6 +836,11 @@ jQuery.extend({ browser: {} }); +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + browserMatch = jQuery.uaMatch( userAgent ); if ( browserMatch.browser ) { jQuery.browser[ browserMatch.browser ] = true; @@ -735,6 +858,13 @@ if ( indexOf ) { }; } +// Verify that \s matches non-breaking spaces +// (IE fails on this test) +if ( !rwhite.test( "\xA0" ) ) { + trimLeft = /^[\s\xA0]+/; + trimRight = /[\s\xA0]+$/; +} + // All jQuery objects should point back to these rootjQuery = jQuery(document); @@ -765,7 +895,7 @@ function doScrollCheck() { // If IE is used, use the trick by Diego Perini // http://javascript.nwbox.com/IEContentLoaded/ document.documentElement.doScroll("left"); - } catch( error ) { + } catch(e) { setTimeout( doScrollCheck, 1 ); return; } @@ -774,54 +904,12 @@ function doScrollCheck() { jQuery.ready(); } -function evalScript( i, elem ) { - if ( elem.src ) { - jQuery.ajax({ - url: elem.src, - async: false, - dataType: "script" - }); - } else { - jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); - } +// Expose jQuery to the global object +return (window.jQuery = window.$ = jQuery); - if ( elem.parentNode ) { - elem.parentNode.removeChild( elem ); - } -} +})(); -// Mutifunctional method to get and set values to a collection -// The value/s can be optionally by executed if its a function -function access( elems, key, value, exec, fn, pass ) { - var length = elems.length; - - // Setting many attributes - if ( typeof key === "object" ) { - for ( var k in key ) { - access( elems, k, key[k], exec, fn, value ); - } - return elems; - } - - // Setting one attribute - if ( value !== undefined ) { - // Optionally, function values get executed if exec is true - exec = !pass && exec && jQuery.isFunction(value); - - for ( var i = 0; i < length; i++ ) { - fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); - } - - return elems; - } - - // Getting an attribute - return length ? fn( elems[0], key ) : undefined; -} -function now() { - return (new Date).getTime(); -} (function() { jQuery.support = {}; @@ -829,13 +917,15 @@ function now() { var root = document.documentElement, script = document.createElement("script"), div = document.createElement("div"), - id = "script" + now(); + id = "script" + jQuery.now(); div.style.display = "none"; div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; var all = div.getElementsByTagName("*"), - a = div.getElementsByTagName("a")[0]; + a = div.getElementsByTagName("a")[0], + select = document.createElement("select"), + opt = select.appendChild( document.createElement("option") ); // Can't get basic test support if ( !all || !all.length || !a ) { @@ -878,18 +968,25 @@ function now() { // Make sure that a selected-by-default option has a working selected property. // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) - optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected, - - parentNode: div.removeChild( div.appendChild( document.createElement("div") ) ).parentNode === null, + optSelected: opt.selected, // Will be defined later deleteExpando: true, + optDisabled: false, checkClone: false, scriptEval: false, noCloneEvent: true, - boxModel: null + boxModel: null, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableHiddenOffsets: true }; + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as diabled) + select.disabled = true; + jQuery.support.optDisabled = !opt.disabled; + script.type = "text/javascript"; try { script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); @@ -909,7 +1006,7 @@ function now() { // Fails in Internet Explorer try { delete script.test; - + } catch(e) { jQuery.support.deleteExpando = false; } @@ -943,27 +1040,63 @@ function now() { document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; - document.body.removeChild( div ).style.display = 'none'; - div = null; + if ( "zoom" in div.style ) { + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + // (IE < 8 does this) + div.style.display = "inline"; + div.style.zoom = 1; + jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; + + // Check if elements with layout shrink-wrap their children + // (IE 6 does this) + div.style.display = ""; + div.innerHTML = "<div style='width:4px;'></div>"; + jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; + } + + div.innerHTML = "<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>"; + var tds = div.getElementsByTagName("td"); + + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + // (only IE 8 fails this test) + jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; + + tds[0].style.display = ""; + tds[1].style.display = "none"; + + // Check if empty table cells still have offsetWidth/Height + // (IE < 8 fail this test) + jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; + div.innerHTML = ""; + + document.body.removeChild( div ).style.display = "none"; + div = tds = null; }); // Technique from Juriy Zaytsev // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ - var eventSupported = function( eventName ) { - var el = document.createElement("div"); - eventName = "on" + eventName; + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; - var isSupported = (eventName in el); - if ( !isSupported ) { - el.setAttribute(eventName, "return;"); - isSupported = typeof el[eventName] === "function"; - } - el = null; + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; - return isSupported; + return isSupported; }; - + jQuery.support.submitBubbles = eventSupported("submit"); jQuery.support.changeBubbles = eventSupported("change"); @@ -971,35 +1104,31 @@ function now() { root = script = div = all = a = null; })(); -jQuery.props = { - "for": "htmlFor", - "class": "className", - readonly: "readOnly", - maxlength: "maxLength", - cellspacing: "cellSpacing", - rowspan: "rowSpan", - colspan: "colSpan", - tabindex: "tabIndex", - usemap: "useMap", - frameborder: "frameBorder" -}; -var expando = "jQuery" + now(), uuid = 0, windowData = {}; + + +var windowData = {}, + rbrace = /^(?:\{.*\}|\[.*\])$/; jQuery.extend({ cache: {}, - - expando:expando, + + // Please use with caution + uuid: 0, + + // Unique for each copy of jQuery on the page + expando: "jQuery" + jQuery.now(), // The following elements throw uncatchable exceptions if you // attempt to add expando properties to them. noData: { "embed": true, - "object": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "applet": true }, data: function( elem, name, data ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + if ( !jQuery.acceptData( elem ) ) { return; } @@ -1007,29 +1136,38 @@ jQuery.extend({ windowData : elem; - var id = elem[ expando ], cache = jQuery.cache, thisCache; + var isNode = elem.nodeType, + id = isNode ? elem[ jQuery.expando ] : null, + cache = jQuery.cache, thisCache; - if ( !id && typeof name === "string" && data === undefined ) { - return null; + if ( isNode && !id && typeof name === "string" && data === undefined ) { + return; } + // Get the data from the object directly + if ( !isNode ) { + cache = elem; + // Compute a unique ID for the element - if ( !id ) { - id = ++uuid; + } else if ( !id ) { + elem[ jQuery.expando ] = id = ++jQuery.uuid; } // Avoid generating a new cache unless none exists and we // want to manipulate it. if ( typeof name === "object" ) { - elem[ expando ] = id; - thisCache = cache[ id ] = jQuery.extend(true, {}, name); + if ( isNode ) { + cache[ id ] = jQuery.extend(cache[ id ], name); - } else if ( !cache[ id ] ) { - elem[ expando ] = id; + } else { + jQuery.extend( cache, name ); + } + + } else if ( isNode && !cache[ id ] ) { cache[ id ] = {}; } - thisCache = cache[ id ]; + thisCache = isNode ? cache[ id ] : cache; // Prevent overriding the named cache with undefined values if ( data !== undefined ) { @@ -1040,7 +1178,7 @@ jQuery.extend({ }, removeData: function( elem, name ) { - if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + if ( !jQuery.acceptData( elem ) ) { return; } @@ -1048,7 +1186,10 @@ jQuery.extend({ windowData : elem; - var id = elem[ expando ], cache = jQuery.cache, thisCache = cache[ id ]; + var isNode = elem.nodeType, + id = isNode ? elem[ jQuery.expando ] : elem, + cache = jQuery.cache, + thisCache = isNode ? cache[ id ] : id; // If we want to remove a specific section of the element's data if ( name ) { @@ -1057,30 +1198,66 @@ jQuery.extend({ delete thisCache[ name ]; // If we've removed all the data, remove the element's cache - if ( jQuery.isEmptyObject(thisCache) ) { + if ( isNode && jQuery.isEmptyObject(thisCache) ) { jQuery.removeData( elem ); } } // Otherwise, we want to remove all of the element's data } else { - if ( jQuery.support.deleteExpando ) { + if ( isNode && jQuery.support.deleteExpando ) { delete elem[ jQuery.expando ]; } else if ( elem.removeAttribute ) { elem.removeAttribute( jQuery.expando ); - } // Completely remove the data cache - delete cache[ id ]; + } else if ( isNode ) { + delete cache[ id ]; + + // Remove all fields from the object + } else { + for ( var n in elem ) { + delete elem[ n ]; + } + } } + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + if ( elem.nodeName ) { + var match = jQuery.noData[ elem.nodeName.toLowerCase() ]; + + if ( match ) { + return !(match === true || elem.getAttribute("classid") !== match); + } + } + + return true; } }); jQuery.fn.extend({ data: function( key, value ) { - if ( typeof key === "undefined" && this.length ) { - return jQuery.data( this[0] ); + var data = null; + + if ( typeof key === "undefined" ) { + if ( this.length ) { + var attr = this[0].attributes, name; + data = jQuery.data( this[0] ); + + for ( var i = 0, l = attr.length; i < l; i++ ) { + name = attr[i].name; + + if ( name.indexOf( "data-" ) === 0 ) { + name = name.substr( 5 ); + dataAttr( this[0], name, data[ name ] ); + } + } + } + + return data; } else if ( typeof key === "object" ) { return this.each(function() { @@ -1092,17 +1269,26 @@ jQuery.fn.extend({ parts[1] = parts[1] ? "." + parts[1] : ""; if ( value === undefined ) { - var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); + // Try to fetch any internally stored data first if ( data === undefined && this.length ) { data = jQuery.data( this[0], key ); + data = dataAttr( this[0], key, data ); } + return data === undefined && parts[1] ? this.data( parts[0] ) : data; + } else { - return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() { + return this.each(function() { + var $this = jQuery( this ), + args = [ parts[0], value ]; + + $this.triggerHandler( "setData" + parts[1] + "!", args ); jQuery.data( this, key, value ); + $this.triggerHandler( "changeData" + parts[1] + "!", args ); }); } }, @@ -1113,6 +1299,37 @@ jQuery.fn.extend({ }); } }); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + data = elem.getAttribute( "data-" + key ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + !jQuery.isNaN( data ) ? parseFloat( data ) : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + + + + jQuery.extend({ queue: function( elem, type, data ) { if ( !elem ) { @@ -1140,7 +1357,8 @@ jQuery.extend({ dequeue: function( elem, type ) { type = type || "fx"; - var queue = jQuery.queue( elem, type ), fn = queue.shift(); + var queue = jQuery.queue( elem, type ), + fn = queue.shift(); // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { @@ -1171,7 +1389,7 @@ jQuery.fn.extend({ if ( data === undefined ) { return jQuery.queue( this[0], type ); } - return this.each(function( i, elem ) { + return this.each(function( i ) { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { @@ -1203,18 +1421,35 @@ jQuery.fn.extend({ return this.queue( type || "fx", [] ); } }); + + + + var rclass = /[\n\t]/g, - rspace = /\s+/, + rspaces = /\s+/, rreturn = /\r/g, - rspecialurl = /href|src|style/, - rtype = /(button|input)/i, - rfocusable = /(button|input|object|select|textarea)/i, - rclickable = /^(a|area)$/i, - rradiocheck = /radio|checkbox/; + rspecialurl = /^(?:href|src|style)$/, + rtype = /^(?:button|input)$/i, + rfocusable = /^(?:button|input|object|select|textarea)$/i, + rclickable = /^a(?:rea)?$/i, + rradiocheck = /^(?:radio|checkbox)$/i; + +jQuery.props = { + "for": "htmlFor", + "class": "className", + readonly: "readOnly", + maxlength: "maxLength", + cellspacing: "cellSpacing", + rowspan: "rowSpan", + colspan: "colSpan", + tabindex: "tabIndex", + usemap: "useMap", + frameborder: "frameBorder" +}; jQuery.fn.extend({ attr: function( name, value ) { - return access( this, name, value, true, jQuery.attr ); + return jQuery.access( this, name, value, true, jQuery.attr ); }, removeAttr: function( name, fn ) { @@ -1235,7 +1470,7 @@ jQuery.fn.extend({ } if ( value && typeof value === "string" ) { - var classNames = (value || "").split( rspace ); + var classNames = (value || "").split( rspaces ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -1245,7 +1480,9 @@ jQuery.fn.extend({ elem.className = value; } else { - var className = " " + elem.className + " ", setClass = elem.className; + var className = " " + elem.className + " ", + setClass = elem.className; + for ( var c = 0, cl = classNames.length; c < cl; c++ ) { if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) { setClass += " " + classNames[c]; @@ -1269,7 +1506,7 @@ jQuery.fn.extend({ } if ( (value && typeof value === "string") || value === undefined ) { - var classNames = (value || "").split(rspace); + var classNames = (value || "").split( rspaces ); for ( var i = 0, l = this.length; i < l; i++ ) { var elem = this[i]; @@ -1293,7 +1530,8 @@ jQuery.fn.extend({ }, toggleClass: function( value, stateVal ) { - var type = typeof value, isBool = typeof stateVal === "boolean"; + var type = typeof value, + isBool = typeof stateVal === "boolean"; if ( jQuery.isFunction( value ) ) { return this.each(function(i) { @@ -1305,9 +1543,11 @@ jQuery.fn.extend({ return this.each(function() { if ( type === "string" ) { // toggle individual class names - var className, i = 0, self = jQuery(this), + var className, + i = 0, + self = jQuery( this ), state = stateVal, - classNames = value.split( rspace ); + classNames = value.split( rspaces ); while ( (className = classNames[ i++ ]) ) { // check each className given, space seperated list @@ -1339,12 +1579,15 @@ jQuery.fn.extend({ }, val: function( value ) { - if ( value === undefined ) { + if ( !arguments.length ) { var elem = this[0]; if ( elem ) { if ( jQuery.nodeName( elem, "option" ) ) { - return (elem.attributes.value || {}).specified ? elem.value : elem.text; + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; } // We need to handle select boxes special @@ -1363,8 +1606,11 @@ jQuery.fn.extend({ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { var option = options[ i ]; - if ( option.selected ) { - // Get the specifc value for the option + // Don't return options that are disabled or in a disabled optgroup + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { + + // Get the specific value for the option value = jQuery(option).val(); // We don't need an array for one selects @@ -1407,10 +1653,15 @@ jQuery.fn.extend({ val = value.call(this, i, self.val()); } - // Typecast each time if the value is a Function and the appended - // value is therefore different each time. - if ( typeof val === "number" ) { + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { val += ""; + } else if ( jQuery.isArray(val) ) { + val = jQuery.map(val, function (value) { + return value == null ? "" : value + ""; + }); } if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) { @@ -1463,89 +1714,103 @@ jQuery.extend({ // Try to normalize/fix the name name = notxml && jQuery.props[ name ] || name; - // Only do all the following if this is a node (faster for style) - if ( elem.nodeType === 1 ) { - // These attributes require special treatment - var special = rspecialurl.test( name ); + // These attributes require special treatment + var special = rspecialurl.test( name ); - // Safari mis-reports the default selected property of an option - // Accessing the parent's selectedIndex property fixes it - if ( name === "selected" && !jQuery.support.optSelected ) { - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - // Make sure that it also works with optgroups, see #5701 - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } + // Safari mis-reports the default selected property of an option + // Accessing the parent's selectedIndex property fixes it + if ( name === "selected" && !jQuery.support.optSelected ) { + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; } } - - // If applicable, access the attribute via the DOM 0 way - if ( name in elem && notxml && !special ) { - if ( set ) { - // We can't allow the type property to be changed (since it causes problems in IE) - if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { - jQuery.error( "type property can't be changed" ); - } - - elem[ name ] = value; - } - - // browsers index elements by id/name on forms, give priority to attributes. - if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { - return elem.getAttributeNode( name ).nodeValue; - } - - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - if ( name === "tabIndex" ) { - var attributeNode = elem.getAttributeNode( "tabIndex" ); - - return attributeNode && attributeNode.specified ? - attributeNode.value : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - - return elem[ name ]; - } - - if ( !jQuery.support.style && notxml && name === "style" ) { - if ( set ) { - elem.style.cssText = "" + value; - } - - return elem.style.cssText; - } - - if ( set ) { - // convert the value to a string (all browsers do this but IE) see #1070 - elem.setAttribute( name, "" + value ); - } - - var attr = !jQuery.support.hrefNormalized && notxml && special ? - // Some attributes require a special call on IE - elem.getAttribute( name, 2 ) : - elem.getAttribute( name ); - - // Non-existent attributes return null, we normalize to undefined - return attr === null ? undefined : attr; } - // elem is actually elem.style ... set the style - // Using attr for specific style information is now deprecated. Use style instead. - return jQuery.style( elem, name, value ); + // If applicable, access the attribute via the DOM 0 way + // 'in' checks fail in Blackberry 4.7 #6931 + if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) { + if ( set ) { + // We can't allow the type property to be changed (since it causes problems in IE) + if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) { + jQuery.error( "type property can't be changed" ); + } + + if ( value === null ) { + if ( elem.nodeType === 1 ) { + elem.removeAttribute( name ); + } + + } else { + elem[ name ] = value; + } + } + + // browsers index elements by id/name on forms, give priority to attributes. + if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) { + return elem.getAttributeNode( name ).nodeValue; + } + + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + if ( name === "tabIndex" ) { + var attributeNode = elem.getAttributeNode( "tabIndex" ); + + return attributeNode && attributeNode.specified ? + attributeNode.value : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + + return elem[ name ]; + } + + if ( !jQuery.support.style && notxml && name === "style" ) { + if ( set ) { + elem.style.cssText = "" + value; + } + + return elem.style.cssText; + } + + if ( set ) { + // convert the value to a string (all browsers do this but IE) see #1070 + elem.setAttribute( name, "" + value ); + } + + // Ensure that missing attributes return undefined + // Blackberry 4.7 returns "" from getAttribute #6938 + if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) { + return undefined; + } + + var attr = !jQuery.support.hrefNormalized && notxml && special ? + // Some attributes require a special call on IE + elem.getAttribute( name, 2 ) : + elem.getAttribute( name ); + + // Non-existent attributes return null, we normalize to undefined + return attr === null ? undefined : attr; } }); + + + + var rnamespaces = /\.(.*)$/, + rformElems = /^(?:textarea|input|select)$/i, + rperiod = /\./g, + rspace = / /g, + rescape = /[^\w\s.|`]/g, fcleanup = function( nm ) { - return nm.replace(/[^\w\s\.\|`]/g, function( ch ) { - return "\\" + ch; - }); - }; + return nm.replace(rescape, "\\$&"); + }, + focusCounts = { focusin: 0, focusout: 0 }; /* * A number of helper functions used for managing events. @@ -1563,10 +1828,17 @@ jQuery.event = { // For whatever reason, IE has trouble passing the window object // around, causing it to be cloned in the process - if ( elem.setInterval && ( elem !== window && !elem.frameElement ) ) { + if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { elem = window; } + if ( handler === false ) { + handler = returnFalse; + } else if ( !handler ) { + // Fixes bug #7229. Fix recommended by jdalton + return; + } + var handleObjIn, handleObj; if ( handler.handler ) { @@ -1588,8 +1860,28 @@ jQuery.event = { return; } - var events = elemData.events = elemData.events || {}, - eventHandle = elemData.handle, eventHandle; + // Use a key less likely to result in collisions for plain JS objects. + // Fixes bug #7150. + var eventKey = elem.nodeType ? "events" : "__events__", + events = elemData[ eventKey ], + eventHandle = elemData.handle; + + if ( typeof events === "function" ) { + // On plain objects events is a fn that holds the the data + // which prevents this data from being JSON serialized + // the function does not need to be called, it just contains the data + eventHandle = events.handle; + events = events.events; + + } else if ( !events ) { + if ( !elem.nodeType ) { + // On plain objects, create a fn that acts as the holder + // of the values to avoid JSON serialization of event data + elemData[ eventKey ] = elemData = function(){}; + } + + elemData.events = events = {}; + } if ( !eventHandle ) { elemData.handle = eventHandle = function() { @@ -1628,7 +1920,9 @@ jQuery.event = { } handleObj.type = type; - handleObj.guid = handler.guid; + if ( !handleObj.guid ) { + handleObj.guid = handler.guid; + } // Get the current list of functions bound to this event var handlers = events[ type ], @@ -1680,13 +1974,23 @@ jQuery.event = { return; } - var ret, type, fn, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + if ( handler === false ) { + handler = returnFalse; + } + + var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, + eventKey = elem.nodeType ? "events" : "__events__", elemData = jQuery.data( elem ), - events = elemData && elemData.events; + events = elemData && elemData[ eventKey ]; if ( !elemData || !events ) { return; } + + if ( typeof events === "function" ) { + elemData = events; + events = events.events; + } // types is actually an event object here if ( types && types.type ) { @@ -1721,7 +2025,7 @@ jQuery.event = { type = namespaces.shift(); namespace = new RegExp("(^|\\.)" + - jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)") + jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)"); } eventType = events[ type ]; @@ -1731,7 +2035,7 @@ jQuery.event = { } if ( !handler ) { - for ( var j = 0; j < eventType.length; j++ ) { + for ( j = 0; j < eventType.length; j++ ) { handleObj = eventType[ j ]; if ( all || namespace.test( handleObj.namespace ) ) { @@ -1745,7 +2049,7 @@ jQuery.event = { special = jQuery.event.special[ type ] || {}; - for ( var j = pos || 0; j < eventType.length; j++ ) { + for ( j = pos || 0; j < eventType.length; j++ ) { handleObj = eventType[ j ]; if ( handler.guid === handleObj.guid ) { @@ -1769,7 +2073,7 @@ jQuery.event = { // remove generic event handler if no more handlers exist if ( eventType.length === 0 || pos != null && eventType.length === 1 ) { if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { - removeEvent( elem, type, elemData.handle ); + jQuery.removeEvent( elem, type, elemData.handle ); } ret = null; @@ -1787,7 +2091,10 @@ jQuery.event = { delete elemData.events; delete elemData.handle; - if ( jQuery.isEmptyObject( elemData ) ) { + if ( typeof elemData === "function" ) { + jQuery.removeData( elem, eventKey ); + + } else if ( jQuery.isEmptyObject( elemData ) ) { jQuery.removeData( elem ); } } @@ -1802,7 +2109,7 @@ jQuery.event = { if ( !bubbling ) { event = typeof event === "object" ? // jQuery.Event object - event[expando] ? event : + event[ jQuery.expando ] ? event : // Object literal jQuery.extend( jQuery.Event(type), event ) : // Just the event type (string) @@ -1847,7 +2154,10 @@ jQuery.event = { event.currentTarget = elem; // Trigger the event, it is assumed that "handle" is a function - var handle = jQuery.data( elem, "handle" ); + var handle = elem.nodeType ? + jQuery.data( elem, "handle" ) : + (jQuery.data( elem, "__events__" ) || {}).handle; + if ( handle ) { handle.apply( elem, data ); } @@ -1859,41 +2169,44 @@ jQuery.event = { if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) { event.result = false; + event.preventDefault(); } } // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (e) {} + } catch (inlineError) {} if ( !event.isPropagationStopped() && parent ) { jQuery.event.trigger( event, data, parent, true ); } else if ( !event.isDefaultPrevented() ) { - var target = event.target, old, - isClick = jQuery.nodeName(target, "a") && type === "click", - special = jQuery.event.special[ type ] || {}; + var old, + target = event.target, + targetType = type.replace( rnamespaces, "" ), + isClick = jQuery.nodeName( target, "a" ) && targetType === "click", + special = jQuery.event.special[ targetType ] || {}; if ( (!special._default || special._default.call( elem, event ) === false) && !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) { try { - if ( target[ type ] ) { + if ( target[ targetType ] ) { // Make sure that we don't accidentally re-trigger the onFOO events - old = target[ "on" + type ]; + old = target[ "on" + targetType ]; if ( old ) { - target[ "on" + type ] = null; + target[ "on" + targetType ] = null; } jQuery.event.triggered = true; - target[ type ](); + target[ targetType ](); } // prevent IE from throwing an error for some elements with some event types, see #3533 - } catch (e) {} + } catch (triggerError) {} if ( old ) { - target[ "on" + type ] = old; + target[ "on" + targetType ] = old; } jQuery.event.triggered = false; @@ -1902,9 +2215,11 @@ jQuery.event = { }, handle: function( event ) { - var all, handlers, namespaces, namespace, events; + var all, handlers, namespaces, namespace_re, events, + namespace_sort = [], + args = jQuery.makeArray( arguments ); - event = arguments[0] = jQuery.event.fix( event || window.event ); + event = args[0] = jQuery.event.fix( event || window.event ); event.currentTarget = this; // Namespaced event handlers @@ -1913,10 +2228,19 @@ jQuery.event = { if ( !all ) { namespaces = event.type.split("."); event.type = namespaces.shift(); - namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); + namespace_sort = namespaces.slice(0).sort(); + namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)"); } - var events = jQuery.data(this, "events"), handlers = events[ event.type ]; + event.namespace = event.namespace || namespace_sort.join("."); + + events = jQuery.data(this, this.nodeType ? "events" : "__events__"); + + if ( typeof events === "function" ) { + events = events.events; + } + + handlers = (events || {})[ event.type ]; if ( events && handlers ) { // Clone the handlers to prevent manipulation @@ -1926,14 +2250,14 @@ jQuery.event = { var handleObj = handlers[ j ]; // Filter the functions by class - if ( all || namespace.test( handleObj.namespace ) ) { + if ( all || namespace_re.test( handleObj.namespace ) ) { // Pass in a reference to the handler function itself // So that we can later remove it event.handler = handleObj.handler; event.data = handleObj.data; event.handleObj = handleObj; - var ret = handleObj.handler.apply( this, arguments ); + var ret = handleObj.handler.apply( this, args ); if ( ret !== undefined ) { event.result = ret; @@ -1953,10 +2277,10 @@ jQuery.event = { return event.result; }, - props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), + props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), fix: function( event ) { - if ( event[ expando ] ) { + if ( event[ jQuery.expando ] ) { return event; } @@ -1972,7 +2296,8 @@ jQuery.event = { // Fix target property, if necessary if ( !event.target ) { - event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either + // Fixes #1925 where srcElement might not be defined either + event.target = event.srcElement || document; } // check if target is a textnode (safari) @@ -1987,14 +2312,16 @@ jQuery.event = { // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && event.clientX != null ) { - var doc = document.documentElement, body = document.body; + var doc = document.documentElement, + body = document.body; + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); } // Add which for key events - if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) { - event.which = event.charCode || event.keyCode; + if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { + event.which = event.charCode != null ? event.charCode : event.keyCode; } // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) @@ -2026,36 +2353,24 @@ jQuery.event = { live: { add: function( handleObj ) { - jQuery.event.add( this, handleObj.origType, jQuery.extend({}, handleObj, {handler: liveHandler}) ); + jQuery.event.add( this, + liveConvert( handleObj.origType, handleObj.selector ), + jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); }, remove: function( handleObj ) { - var remove = true, - type = handleObj.origType.replace(rnamespaces, ""); - - jQuery.each( jQuery.data(this, "events").live || [], function() { - if ( type === this.origType.replace(rnamespaces, "") ) { - remove = false; - return false; - } - }); - - if ( remove ) { - jQuery.event.remove( this, handleObj.origType, liveHandler ); - } + jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj ); } - }, beforeunload: { setup: function( data, namespaces, eventHandle ) { // We only want to do this special case on windows - if ( this.setInterval ) { + if ( jQuery.isWindow( this ) ) { this.onbeforeunload = eventHandle; } - - return false; }, + teardown: function( namespaces, eventHandle ) { if ( this.onbeforeunload === eventHandle ) { this.onbeforeunload = null; @@ -2065,12 +2380,16 @@ jQuery.event = { } }; -var removeEvent = document.removeEventListener ? +jQuery.removeEvent = document.removeEventListener ? function( elem, type, handle ) { - elem.removeEventListener( type, handle, false ); + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } } : function( elem, type, handle ) { - elem.detachEvent( "on" + type, handle ); + if ( elem.detachEvent ) { + elem.detachEvent( "on" + type, handle ); + } }; jQuery.Event = function( src ) { @@ -2090,10 +2409,10 @@ jQuery.Event = function( src ) { // timeStamp is buggy for some events on Firefox(#3843) // So we won't rely on the native value - this.timeStamp = now(); + this.timeStamp = jQuery.now(); // Mark it as fixed - this[ expando ] = true; + this[ jQuery.expando ] = true; }; function returnFalse() { @@ -2117,9 +2436,11 @@ jQuery.Event.prototype = { // if preventDefault exists run it on the original event if ( e.preventDefault ) { e.preventDefault(); - } + // otherwise set the returnValue property of the original event to false (IE) - e.returnValue = false; + } else { + e.returnValue = false; + } }, stopPropagation: function() { this.isPropagationStopped = returnTrue; @@ -2199,17 +2520,21 @@ if ( !jQuery.support.submitBubbles ) { setup: function( data, namespaces ) { if ( this.nodeName.toLowerCase() !== "form" ) { jQuery.event.add(this, "click.specialSubmit", function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, + type = elem.type; if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { + e.liveFired = undefined; return trigger( "submit", this, arguments ); } }); jQuery.event.add(this, "keypress.specialSubmit", function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, + type = elem.type; if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { + e.liveFired = undefined; return trigger( "submit", this, arguments ); } }); @@ -2229,9 +2554,7 @@ if ( !jQuery.support.submitBubbles ) { // change delegation, happens here so we have bind. if ( !jQuery.support.changeBubbles ) { - var formElems = /textarea|input|select/i, - - changeFilters, + var changeFilters, getVal = function( elem ) { var type = elem.type, val = elem.value; @@ -2256,7 +2579,7 @@ if ( !jQuery.support.changeBubbles ) { testChange = function testChange( e ) { var elem = e.target, data, val; - if ( !formElems.test( elem.nodeName ) || elem.readOnly ) { + if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) { return; } @@ -2274,6 +2597,7 @@ if ( !jQuery.support.changeBubbles ) { if ( data != null || val ) { e.type = "change"; + e.liveFired = undefined; return jQuery.event.trigger( e, arguments[1], elem ); } }; @@ -2282,6 +2606,8 @@ if ( !jQuery.support.changeBubbles ) { filters: { focusout: testChange, + beforedeactivate: testChange, + click: function( e ) { var elem = e.target, type = elem.type; @@ -2304,7 +2630,7 @@ if ( !jQuery.support.changeBubbles ) { // Beforeactivate happens also before the previous element is blurred // with this event you can't trigger a change event, but you can store - // information/focus[in] is not needed anymore + // information beforeactivate: function( e ) { var elem = e.target; jQuery.data( elem, "_change_data", getVal(elem) ); @@ -2320,17 +2646,20 @@ if ( !jQuery.support.changeBubbles ) { jQuery.event.add( this, type + ".specialChange", changeFilters[type] ); } - return formElems.test( this.nodeName ); + return rformElems.test( this.nodeName ); }, teardown: function( namespaces ) { jQuery.event.remove( this, ".specialChange" ); - return formElems.test( this.nodeName ); + return rformElems.test( this.nodeName ); } }; changeFilters = jQuery.event.special.change.filters; + + // Handle when the input is .focus()'d + changeFilters.focus = changeFilters.beforeactivate; } function trigger( type, elem, args ) { @@ -2343,17 +2672,21 @@ if ( document.addEventListener ) { jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { jQuery.event.special[ fix ] = { setup: function() { - this.addEventListener( orig, handler, true ); + if ( focusCounts[fix]++ === 0 ) { + document.addEventListener( orig, handler, true ); + } }, teardown: function() { - this.removeEventListener( orig, handler, true ); + if ( --focusCounts[fix] === 0 ) { + document.removeEventListener( orig, handler, true ); + } } }; function handler( e ) { e = jQuery.event.fix( e ); e.type = fix; - return jQuery.event.handle.call( this, e ); + return jQuery.event.trigger( e, null, e.target ); } }); } @@ -2368,7 +2701,7 @@ jQuery.each(["bind", "one"], function( i, name ) { return this; } - if ( jQuery.isFunction( data ) ) { + if ( jQuery.isFunction( data ) || data === false ) { fn = data; data = undefined; } @@ -2439,7 +2772,8 @@ jQuery.fn.extend({ toggle: function( fn ) { // Save reference to arguments for access in closure - var args = arguments, i = 1; + var args = arguments, + i = 1; // link all the functions, so any of them can unbind this click handler while ( i < args.length ) { @@ -2476,6 +2810,14 @@ jQuery.each(["live", "die"], function( i, name ) { var type, i = 0, match, namespaces, preType, selector = origSelector || this.selector, context = origSelector ? this : jQuery( this.context ); + + if ( typeof types === "object" && !types.preventDefault ) { + for ( var key in types ) { + context[ name ]( key, data, types[key], selector ); + } + + return this; + } if ( jQuery.isFunction( data ) ) { fn = data; @@ -2510,30 +2852,39 @@ jQuery.each(["live", "die"], function( i, name ) { if ( name === "live" ) { // bind live handler - context.each(function(){ - jQuery.event.add( this, liveConvert( type, selector ), + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], "live." + liveConvert( type, selector ), { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - }); + } } else { // unbind live handler - context.unbind( liveConvert( type, selector ), fn ); + context.unbind( "live." + liveConvert( type, selector ), fn ); } } return this; - } + }; }); function liveHandler( event ) { - var stop, elems = [], selectors = [], args = arguments, - related, match, handleObj, elem, j, i, l, data, - events = jQuery.data( this, "events" ); + var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret, + elems = [], + selectors = [], + events = jQuery.data( this, this.nodeType ? "events" : "__events__" ); + + if ( typeof events === "function" ) { + events = events.events; + } // Make sure we avoid non-left-click bubbling in Firefox (#3861) if ( event.liveFired === this || !events || !events.live || event.button && event.type === "click" ) { return; } + + if ( event.namespace ) { + namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)"); + } event.liveFired = this; @@ -2553,20 +2904,23 @@ function liveHandler( event ) { match = jQuery( event.target ).closest( selectors, event.currentTarget ); for ( i = 0, l = match.length; i < l; i++ ) { + close = match[i]; + for ( j = 0; j < live.length; j++ ) { handleObj = live[j]; - if ( match[i].selector === handleObj.selector ) { - elem = match[i].elem; + if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) { + elem = close.elem; related = null; // Those two events require additional checking if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) { + event.type = handleObj.preType; related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0]; } if ( !related || related !== elem ) { - elems.push({ elem: elem, handleObj: handleObj }); + elems.push({ elem: elem, handleObj: handleObj, level: close.level }); } } } @@ -2574,13 +2928,26 @@ function liveHandler( event ) { for ( i = 0, l = elems.length; i < l; i++ ) { match = elems[i]; + + if ( maxLevel && match.level > maxLevel ) { + break; + } + event.currentTarget = match.elem; event.data = match.handleObj.data; event.handleObj = match.handleObj; - if ( match.handleObj.origHandler.apply( match.elem, args ) === false ) { - stop = false; - break; + ret = match.handleObj.origHandler.apply( match.elem, arguments ); + + if ( ret === false || event.isPropagationStopped() ) { + maxLevel = match.level; + + if ( ret === false ) { + stop = false; + } + if ( event.isImmediatePropagationStopped() ) { + break; + } } } @@ -2588,7 +2955,7 @@ function liveHandler( event ) { } function liveConvert( type, selector ) { - return "live." + (type && type !== "*" ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&"); + return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&"); } jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + @@ -2596,8 +2963,15 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl "change select submit keydown keypress keyup error").split(" "), function( i, name ) { // Handle event binding - jQuery.fn[ name ] = function( fn ) { - return fn ? this.bind( name, fn ) : this.trigger( name ); + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == null ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); }; if ( jQuery.attrFn ) { @@ -2610,7 +2984,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl // More info: // - http://isaacschlueter.com/2006/10/msie-memory-leaks/ if ( window.attachEvent && !window.addEventListener ) { - window.attachEvent("onunload", function() { + jQuery(window).bind("unload", function() { for ( var id in jQuery.cache ) { if ( jQuery.cache[ id ].handle ) { // Try/Catch is to handle iframes being unloaded, see #4280 @@ -2621,6 +2995,8 @@ if ( window.attachEvent && !window.addEventListener ) { } }); } + + /*! * Sizzle CSS Selector Engine - v1.0 * Copyright 2009, The Dojo Foundation @@ -2629,7 +3005,7 @@ if ( window.attachEvent && !window.addEventListener ) { */ (function(){ -var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, done = 0, toString = Object.prototype.toString, hasDuplicate = false, @@ -2639,14 +3015,16 @@ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^ // optimization where it does not always call our comparision // function. If that is the case, discard the hasDuplicate value. // Thus far that includes Google Chrome. -[0, 0].sort(function(){ +[0, 0].sort(function() { baseHasDuplicate = false; return 0; }); -var Sizzle = function(selector, context, results, seed) { +var Sizzle = function( selector, context, results, seed ) { results = results || []; - var origContext = context = context || document; + context = context || document; + + var origContext = context; if ( context.nodeType !== 1 && context.nodeType !== 9 ) { return []; @@ -2656,24 +3034,34 @@ var Sizzle = function(selector, context, results, seed) { return results; } - var parts = [], m, set, checkSet, extra, prune = true, contextXML = isXML(context), + var m, set, checkSet, extra, ret, cur, pop, i, + prune = true, + contextXML = Sizzle.isXML( context ), + parts = [], soFar = selector; // Reset the position of the chunker regexp (start from head) - while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) { - soFar = m[3]; + do { + chunker.exec( "" ); + m = chunker.exec( soFar ); + + if ( m ) { + soFar = m[3]; - parts.push( m[1] ); + parts.push( m[1] ); - if ( m[2] ) { - extra = m[3]; - break; + if ( m[2] ) { + extra = m[3]; + break; + } } - } + } while ( m ); if ( parts.length > 1 && origPOS.exec( selector ) ) { + if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { set = posProcess( parts[0] + parts[1], context ); + } else { set = Expr.relative[ parts[0] ] ? [ context ] : @@ -2689,29 +3077,38 @@ var Sizzle = function(selector, context, results, seed) { set = posProcess( selector, set ); } } + } else { // Take a shortcut and set the context if the root selector is an ID // (but not if it'll be faster if the inner selector is an ID) if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML && Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) { - var ret = Sizzle.find( parts.shift(), context, contextXML ); - context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0]; + + ret = Sizzle.find( parts.shift(), context, contextXML ); + context = ret.expr ? + Sizzle.filter( ret.expr, ret.set )[0] : + ret.set[0]; } if ( context ) { - var ret = seed ? + ret = seed ? { expr: parts.pop(), set: makeArray(seed) } : Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML ); - set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set; + + set = ret.expr ? + Sizzle.filter( ret.expr, ret.set ) : + ret.set; if ( parts.length > 0 ) { - checkSet = makeArray(set); + checkSet = makeArray( set ); + } else { prune = false; } while ( parts.length ) { - var cur = parts.pop(), pop = cur; + cur = parts.pop(); + pop = cur; if ( !Expr.relative[ cur ] ) { cur = ""; @@ -2725,6 +3122,7 @@ var Sizzle = function(selector, context, results, seed) { Expr.relative[ cur ]( checkSet, pop, contextXML ); } + } else { checkSet = parts = []; } @@ -2741,19 +3139,22 @@ var Sizzle = function(selector, context, results, seed) { if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { results.push.apply( results, checkSet ); + } else if ( context && context.nodeType === 1 ) { - for ( var i = 0; checkSet[i] != null; i++ ) { - if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { + for ( i = 0; checkSet[i] != null; i++ ) { + if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) { results.push( set[i] ); } } + } else { - for ( var i = 0; checkSet[i] != null; i++ ) { + for ( i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && checkSet[i].nodeType === 1 ) { results.push( set[i] ); } } } + } else { makeArray( checkSet, results ); } @@ -2766,15 +3167,15 @@ var Sizzle = function(selector, context, results, seed) { return results; }; -Sizzle.uniqueSort = function(results){ +Sizzle.uniqueSort = function( results ) { if ( sortOrder ) { hasDuplicate = baseHasDuplicate; - results.sort(sortOrder); + results.sort( sortOrder ); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { - if ( results[i] === results[i-1] ) { - results.splice(i--, 1); + if ( results[i] === results[ i - 1 ] ) { + results.splice( i--, 1 ); } } } @@ -2783,27 +3184,33 @@ Sizzle.uniqueSort = function(results){ return results; }; -Sizzle.matches = function(expr, set){ - return Sizzle(expr, null, null, set); +Sizzle.matches = function( expr, set ) { + return Sizzle( expr, null, null, set ); }; -Sizzle.find = function(expr, context, isXML){ - var set, match; +Sizzle.matchesSelector = function( node, expr ) { + return Sizzle( expr, null, null, [node] ).length > 0; +}; + +Sizzle.find = function( expr, context, isXML ) { + var set; if ( !expr ) { return []; } for ( var i = 0, l = Expr.order.length; i < l; i++ ) { - var type = Expr.order[i], match; + var match, + type = Expr.order[i]; if ( (match = Expr.leftMatch[ type ].exec( expr )) ) { var left = match[1]; - match.splice(1,1); + match.splice( 1, 1 ); if ( left.substr( left.length - 1 ) !== "\\" ) { match[1] = (match[1] || "").replace(/\\/g, ""); set = Expr.find[ type ]( match, context, isXML ); + if ( set != null ) { expr = expr.replace( Expr.match[ type ], "" ); break; @@ -2813,20 +3220,26 @@ Sizzle.find = function(expr, context, isXML){ } if ( !set ) { - set = context.getElementsByTagName("*"); + set = context.getElementsByTagName( "*" ); } - return {set: set, expr: expr}; + return { set: set, expr: expr }; }; -Sizzle.filter = function(expr, set, inplace, not){ - var old = expr, result = [], curLoop = set, match, anyFound, - isXMLFilter = set && set[0] && isXML(set[0]); +Sizzle.filter = function( expr, set, inplace, not ) { + var match, anyFound, + old = expr, + result = [], + curLoop = set, + isXMLFilter = set && set[0] && Sizzle.isXML( set[0] ); while ( expr && set.length ) { for ( var type in Expr.filter ) { if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) { - var filter = Expr.filter[ type ], found, item, left = match[1]; + var found, item, + filter = Expr.filter[ type ], + left = match[1]; + anyFound = false; match.splice(1,1); @@ -2844,6 +3257,7 @@ Sizzle.filter = function(expr, set, inplace, not){ if ( !match ) { anyFound = found = true; + } else if ( match === true ) { continue; } @@ -2858,9 +3272,11 @@ Sizzle.filter = function(expr, set, inplace, not){ if ( inplace && found != null ) { if ( pass ) { anyFound = true; + } else { curLoop[i] = false; } + } else if ( pass ) { result.push( item ); anyFound = true; @@ -2889,6 +3305,7 @@ Sizzle.filter = function(expr, set, inplace, not){ if ( expr === old ) { if ( anyFound == null ) { Sizzle.error( expr ); + } else { break; } @@ -2906,30 +3323,35 @@ Sizzle.error = function( msg ) { var Expr = Sizzle.selectors = { order: [ "ID", "NAME", "TAG" ], + match: { - ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, - CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/, - NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/, - ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, - TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/, - CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, - POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, - PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ + ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, + NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, + ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, + TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, + CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, + POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, + PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ }, + leftMatch: {}, + attrMap: { "class": "className", "for": "htmlFor" }, + attrHandle: { - href: function(elem){ - return elem.getAttribute("href"); + href: function( elem ) { + return elem.getAttribute( "href" ); } }, + relative: { "+": function(checkSet, part){ var isPartStr = typeof part === "string", - isTag = isPartStr && !/\W/.test(part), + isTag = isPartStr && !/\W/.test( part ), isPartStrNotTag = isPartStr && !isTag; if ( isTag ) { @@ -2950,22 +3372,29 @@ var Expr = Sizzle.selectors = { Sizzle.filter( part, checkSet, true ); } }, - ">": function(checkSet, part){ - var isPartStr = typeof part === "string"; - if ( isPartStr && !/\W/.test(part) ) { + ">": function( checkSet, part ) { + var elem, + isPartStr = typeof part === "string", + i = 0, + l = checkSet.length; + + if ( isPartStr && !/\W/.test( part ) ) { part = part.toLowerCase(); - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; + for ( ; i < l; i++ ) { + elem = checkSet[i]; + if ( elem ) { var parent = elem.parentNode; checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false; } } + } else { - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - var elem = checkSet[i]; + for ( ; i < l; i++ ) { + elem = checkSet[i]; + if ( elem ) { checkSet[i] = isPartStr ? elem.parentNode : @@ -2978,37 +3407,50 @@ var Expr = Sizzle.selectors = { } } }, + "": function(checkSet, part, isXML){ - var doneName = done++, checkFn = dirCheck; + var nodeCheck, + doneName = done++, + checkFn = dirCheck; if ( typeof part === "string" && !/\W/.test(part) ) { - var nodeCheck = part = part.toLowerCase(); + part = part.toLowerCase(); + nodeCheck = part; checkFn = dirNodeCheck; } - checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); + checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML ); }, - "~": function(checkSet, part, isXML){ - var doneName = done++, checkFn = dirCheck; - if ( typeof part === "string" && !/\W/.test(part) ) { - var nodeCheck = part = part.toLowerCase(); + "~": function( checkSet, part, isXML ) { + var nodeCheck, + doneName = done++, + checkFn = dirCheck; + + if ( typeof part === "string" && !/\W/.test( part ) ) { + part = part.toLowerCase(); + nodeCheck = part; checkFn = dirNodeCheck; } - checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); + checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML ); } }, + find: { - ID: function(match, context, isXML){ + ID: function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); - return m ? [m] : []; + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; } }, - NAME: function(match, context){ + + NAME: function( match, context ) { if ( typeof context.getElementsByName !== "undefined" ) { - var ret = [], results = context.getElementsByName(match[1]); + var ret = [], + results = context.getElementsByName( match[1] ); for ( var i = 0, l = results.length; i < l; i++ ) { if ( results[i].getAttribute("name") === match[1] ) { @@ -3019,12 +3461,13 @@ var Expr = Sizzle.selectors = { return ret.length === 0 ? null : ret; } }, - TAG: function(match, context){ - return context.getElementsByTagName(match[1]); + + TAG: function( match, context ) { + return context.getElementsByTagName( match[1] ); } }, preFilter: { - CLASS: function(match, curLoop, inplace, result, not, isXML){ + CLASS: function( match, curLoop, inplace, result, not, isXML ) { match = " " + match[1].replace(/\\/g, "") + " "; if ( isXML ) { @@ -3037,6 +3480,7 @@ var Expr = Sizzle.selectors = { if ( !inplace ) { result.push( elem ); } + } else if ( inplace ) { curLoop[i] = false; } @@ -3045,13 +3489,16 @@ var Expr = Sizzle.selectors = { return false; }, - ID: function(match){ + + ID: function( match ) { return match[1].replace(/\\/g, ""); }, - TAG: function(match, curLoop){ + + TAG: function( match, curLoop ) { return match[1].toLowerCase(); }, - CHILD: function(match){ + + CHILD: function( match ) { if ( match[1] === "nth" ) { // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( @@ -3068,7 +3515,8 @@ var Expr = Sizzle.selectors = { return match; }, - ATTR: function(match, curLoop, inplace, result, not, isXML){ + + ATTR: function( match, curLoop, inplace, result, not, isXML ) { var name = match[1].replace(/\\/g, ""); if ( !isXML && Expr.attrMap[name] ) { @@ -3081,159 +3529,203 @@ var Expr = Sizzle.selectors = { return match; }, - PSEUDO: function(match, curLoop, inplace, result, not){ + + PSEUDO: function( match, curLoop, inplace, result, not ) { if ( match[1] === "not" ) { // If we're dealing with a complex expression, or a simple one if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) { match[3] = Sizzle(match[3], null, null, curLoop); + } else { var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); + if ( !inplace ) { result.push.apply( result, ret ); } + return false; } + } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { return true; } return match; }, - POS: function(match){ + + POS: function( match ) { match.unshift( true ); + return match; } }, + filters: { - enabled: function(elem){ + enabled: function( elem ) { return elem.disabled === false && elem.type !== "hidden"; }, - disabled: function(elem){ + + disabled: function( elem ) { return elem.disabled === true; }, - checked: function(elem){ + + checked: function( elem ) { return elem.checked === true; }, - selected: function(elem){ + + selected: function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly elem.parentNode.selectedIndex; + return elem.selected === true; }, - parent: function(elem){ + + parent: function( elem ) { return !!elem.firstChild; }, - empty: function(elem){ + + empty: function( elem ) { return !elem.firstChild; }, - has: function(elem, i, match){ + + has: function( elem, i, match ) { return !!Sizzle( match[3], elem ).length; }, - header: function(elem){ - return /h\d/i.test( elem.nodeName ); + + header: function( elem ) { + return (/h\d/i).test( elem.nodeName ); }, - text: function(elem){ + + text: function( elem ) { return "text" === elem.type; }, - radio: function(elem){ + radio: function( elem ) { return "radio" === elem.type; }, - checkbox: function(elem){ + + checkbox: function( elem ) { return "checkbox" === elem.type; }, - file: function(elem){ + + file: function( elem ) { return "file" === elem.type; }, - password: function(elem){ + password: function( elem ) { return "password" === elem.type; }, - submit: function(elem){ + + submit: function( elem ) { return "submit" === elem.type; }, - image: function(elem){ + + image: function( elem ) { return "image" === elem.type; }, - reset: function(elem){ + + reset: function( elem ) { return "reset" === elem.type; }, - button: function(elem){ + + button: function( elem ) { return "button" === elem.type || elem.nodeName.toLowerCase() === "button"; }, - input: function(elem){ - return /input|select|textarea|button/i.test(elem.nodeName); + + input: function( elem ) { + return (/input|select|textarea|button/i).test( elem.nodeName ); } }, setFilters: { - first: function(elem, i){ + first: function( elem, i ) { return i === 0; }, - last: function(elem, i, match, array){ + + last: function( elem, i, match, array ) { return i === array.length - 1; }, - even: function(elem, i){ + + even: function( elem, i ) { return i % 2 === 0; }, - odd: function(elem, i){ + + odd: function( elem, i ) { return i % 2 === 1; }, - lt: function(elem, i, match){ + + lt: function( elem, i, match ) { return i < match[3] - 0; }, - gt: function(elem, i, match){ + + gt: function( elem, i, match ) { return i > match[3] - 0; }, - nth: function(elem, i, match){ + + nth: function( elem, i, match ) { return match[3] - 0 === i; }, - eq: function(elem, i, match){ + + eq: function( elem, i, match ) { return match[3] - 0 === i; } }, filter: { - PSEUDO: function(elem, match, i, array){ - var name = match[1], filter = Expr.filters[ name ]; + PSEUDO: function( elem, match, i, array ) { + var name = match[1], + filter = Expr.filters[ name ]; if ( filter ) { return filter( elem, i, match, array ); + } else if ( name === "contains" ) { - return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0; + return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0; + } else if ( name === "not" ) { var not = match[3]; - for ( var i = 0, l = not.length; i < l; i++ ) { - if ( not[i] === elem ) { + for ( var j = 0, l = not.length; j < l; j++ ) { + if ( not[j] === elem ) { return false; } } return true; + } else { Sizzle.error( "Syntax error, unrecognized expression: " + name ); } }, - CHILD: function(elem, match){ - var type = match[1], node = elem; - switch (type) { - case 'only': - case 'first': + + CHILD: function( elem, match ) { + var type = match[1], + node = elem; + + switch ( type ) { + case "only": + case "first": while ( (node = node.previousSibling) ) { if ( node.nodeType === 1 ) { return false; } } + if ( type === "first" ) { return true; } + node = elem; - case 'last': + + case "last": while ( (node = node.nextSibling) ) { if ( node.nodeType === 1 ) { return false; } } + return true; - case 'nth': - var first = match[2], last = match[3]; + + case "nth": + var first = match[2], + last = match[3]; if ( first === 1 && last === 0 ) { return true; @@ -3244,33 +3736,41 @@ var Expr = Sizzle.selectors = { if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { var count = 0; + for ( node = parent.firstChild; node; node = node.nextSibling ) { if ( node.nodeType === 1 ) { node.nodeIndex = ++count; } } + parent.sizcache = doneName; } var diff = elem.nodeIndex - last; + if ( first === 0 ) { return diff === 0; + } else { return ( diff % first === 0 && diff / first >= 0 ); } } }, - ID: function(elem, match){ + + ID: function( elem, match ) { return elem.nodeType === 1 && elem.getAttribute("id") === match; }, - TAG: function(elem, match){ + + TAG: function( elem, match ) { return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match; }, - CLASS: function(elem, match){ + + CLASS: function( elem, match ) { return (" " + (elem.className || elem.getAttribute("class")) + " ") .indexOf( match ) > -1; }, - ATTR: function(elem, match){ + + ATTR: function( elem, match ) { var name = match[1], result = Expr.attrHandle[ name ] ? Expr.attrHandle[ name ]( elem ) : @@ -3301,8 +3801,10 @@ var Expr = Sizzle.selectors = { value === check || value.substr(0, check.length + 1) === check + "-" : false; }, - POS: function(elem, match, i, array){ - var name = match[2], filter = Expr.setFilters[ name ]; + + POS: function( elem, match, i, array ) { + var name = match[2], + filter = Expr.setFilters[ name ]; if ( filter ) { return filter( elem, i, match, array ); @@ -3311,16 +3813,17 @@ var Expr = Sizzle.selectors = { } }; -var origPOS = Expr.match.POS; +var origPOS = Expr.match.POS, + fescape = function(all, num){ + return "\\" + (num - 0 + 1); + }; for ( var type in Expr.match ) { - Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); - Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num){ - return "\\" + (num - 0 + 1); - })); + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) ); + Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) ); } -var makeArray = function(array, results) { +var makeArray = function( array, results ) { array = Array.prototype.slice.call( array, 0 ); if ( results ) { @@ -3339,19 +3842,22 @@ try { Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType; // Provide a fallback method if it does not work -} catch(e){ - makeArray = function(array, results) { - var ret = results || []; +} catch( e ) { + makeArray = function( array, results ) { + var i = 0, + ret = results || []; if ( toString.call(array) === "[object Array]" ) { Array.prototype.push.apply( ret, array ); + } else { if ( typeof array.length === "number" ) { - for ( var i = 0, l = array.length; i < l; i++ ) { + for ( var l = array.length; i < l; i++ ) { ret.push( array[i] ); } + } else { - for ( var i = 0; array[i]; i++ ) { + for ( ; array[i]; i++ ) { ret.push( array[i] ); } } @@ -3361,62 +3867,99 @@ try { }; } -var sortOrder; +var sortOrder, siblingCheck; if ( document.documentElement.compareDocumentPosition ) { sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) { - if ( a == b ) { - hasDuplicate = true; - } return a.compareDocumentPosition ? -1 : 1; } - var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; - if ( ret === 0 ) { - hasDuplicate = true; - } - return ret; + return a.compareDocumentPosition(b) & 4 ? -1 : 1; }; -} else if ( "sourceIndex" in document.documentElement ) { + +} else { sortOrder = function( a, b ) { - if ( !a.sourceIndex || !b.sourceIndex ) { - if ( a == b ) { - hasDuplicate = true; - } - return a.sourceIndex ? -1 : 1; + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // If the nodes are siblings (or identical) we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; } - var ret = a.sourceIndex - b.sourceIndex; - if ( ret === 0 ) { - hasDuplicate = true; - } - return ret; - }; -} else if ( document.createRange ) { - sortOrder = function( a, b ) { - if ( !a.ownerDocument || !b.ownerDocument ) { - if ( a == b ) { - hasDuplicate = true; - } - return a.ownerDocument ? -1 : 1; + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; } - var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); - aRange.setStart(a, 0); - aRange.setEnd(a, 0); - bRange.setStart(b, 0); - bRange.setEnd(b, 0); - var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); - if ( ret === 0 ) { - hasDuplicate = true; + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; } - return ret; + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + + siblingCheck = function( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; }; } // Utility function for retreiving the text value of an array of DOM nodes -function getText( elems ) { +Sizzle.getText = function( elems ) { var ret = "", elem; for ( var i = 0; elems[i]; i++ ) { @@ -3428,43 +3971,52 @@ function getText( elems ) { // Traverse everything else, except comment nodes } else if ( elem.nodeType !== 8 ) { - ret += getText( elem.childNodes ); + ret += Sizzle.getText( elem.childNodes ); } } return ret; -} +}; // Check to see if the browser returns elements by name when // querying by getElementById (and provide a workaround) (function(){ // We're going to inject a fake input element with a specified name var form = document.createElement("div"), - id = "script" + (new Date).getTime(); + id = "script" + (new Date()).getTime(), + root = document.documentElement; + form.innerHTML = "<a name='" + id + "'/>"; // Inject it into the root element, check its status, and remove it quickly - var root = document.documentElement; root.insertBefore( form, root.firstChild ); // The workaround has to do additional checks after a getElementById // Which slows things down for other browsers (hence the branching) if ( document.getElementById( id ) ) { - Expr.find.ID = function(match, context, isXML){ + Expr.find.ID = function( match, context, isXML ) { if ( typeof context.getElementById !== "undefined" && !isXML ) { var m = context.getElementById(match[1]); - return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; + + return m ? + m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? + [m] : + undefined : + []; } }; - Expr.filter.ID = function(elem, match){ + Expr.filter.ID = function( elem, match ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return elem.nodeType === 1 && node && node.nodeValue === match; }; } root.removeChild( form ); - root = form = null; // release memory in IE + + // release memory in IE + root = form = null; })(); (function(){ @@ -3477,8 +4029,8 @@ function getText( elems ) { // Make sure no comments are found if ( div.getElementsByTagName("*").length > 0 ) { - Expr.find.TAG = function(match, context){ - var results = context.getElementsByTagName(match[1]); + Expr.find.TAG = function( match, context ) { + var results = context.getElementsByTagName( match[1] ); // Filter out possible comments if ( match[1] === "*" ) { @@ -3499,19 +4051,25 @@ function getText( elems ) { // Check to see if an attribute returns normalized href attributes div.innerHTML = "<a href='#'></a>"; + if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && div.firstChild.getAttribute("href") !== "#" ) { - Expr.attrHandle.href = function(elem){ - return elem.getAttribute("href", 2); + + Expr.attrHandle.href = function( elem ) { + return elem.getAttribute( "href", 2 ); }; } - div = null; // release memory in IE + // release memory in IE + div = null; })(); if ( document.querySelectorAll ) { (function(){ - var oldSizzle = Sizzle, div = document.createElement("div"); + var oldSizzle = Sizzle, + div = document.createElement("div"), + id = "__sizzle__"; + div.innerHTML = "<p class='TEST'></p>"; // Safari can't handle uppercase or unicode characters when @@ -3520,15 +4078,42 @@ if ( document.querySelectorAll ) { return; } - Sizzle = function(query, context, extra, seed){ + Sizzle = function( query, context, extra, seed ) { context = context || document; + // Make sure that attribute selectors are quoted + query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + // Only use querySelectorAll on non-XML documents // (ID selectors don't work in non-HTML documents) - if ( !seed && context.nodeType === 9 && !isXML(context) ) { - try { - return makeArray( context.querySelectorAll(query), extra ); - } catch(e){} + if ( !seed && !Sizzle.isXML(context) ) { + if ( context.nodeType === 9 ) { + try { + return makeArray( context.querySelectorAll(query), extra ); + } catch(qsaError) {} + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + var old = context.getAttribute( "id" ), + nid = old || id; + + if ( !old ) { + context.setAttribute( "id", nid ); + } + + try { + return makeArray( context.querySelectorAll( "#" + nid + " " + query ), extra ); + + } catch(pseudoError) { + } finally { + if ( !old ) { + context.removeAttribute( "id" ); + } + } + } } return oldSizzle(query, context, extra, seed); @@ -3538,10 +4123,43 @@ if ( document.querySelectorAll ) { Sizzle[ prop ] = oldSizzle[ prop ]; } - div = null; // release memory in IE + // release memory in IE + div = null; })(); } +(function(){ + var html = document.documentElement, + matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector, + pseudoWorks = false; + + try { + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( document.documentElement, "[test!='']:sizzle" ); + + } catch( pseudoError ) { + pseudoWorks = true; + } + + if ( matches ) { + Sizzle.matchesSelector = function( node, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']"); + + if ( !Sizzle.isXML( node ) ) { + try { + if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) { + return matches.call( node, expr ); + } + } catch(e) {} + } + + return Sizzle(expr, null, null, [node]).length > 0; + }; + } +})(); + (function(){ var div = document.createElement("div"); @@ -3561,22 +4179,25 @@ if ( document.querySelectorAll ) { } Expr.order.splice(1, 0, "CLASS"); - Expr.find.CLASS = function(match, context, isXML) { + Expr.find.CLASS = function( match, context, isXML ) { if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { return context.getElementsByClassName(match[1]); } }; - div = null; // release memory in IE + // release memory in IE + div = null; })(); function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; + if ( elem ) { - elem = elem[dir]; var match = false; + elem = elem[dir]; + while ( elem ) { if ( elem.sizcache === doneName ) { match = checkSet[elem.sizset]; @@ -3604,9 +4225,11 @@ function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { for ( var i = 0, l = checkSet.length; i < l; i++ ) { var elem = checkSet[i]; + if ( elem ) { - elem = elem[dir]; var match = false; + + elem = elem[dir]; while ( elem ) { if ( elem.sizcache === doneName ) { @@ -3619,6 +4242,7 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { elem.sizcache = doneName; elem.sizset = i; } + if ( typeof cur !== "string" ) { if ( elem === cur ) { match = true; @@ -3639,21 +4263,34 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { } } -var contains = document.compareDocumentPosition ? function(a, b){ - return !!(a.compareDocumentPosition(b) & 16); -} : function(a, b){ - return a !== b && (a.contains ? a.contains(b) : true); -}; +if ( document.documentElement.contains ) { + Sizzle.contains = function( a, b ) { + return a !== b && (a.contains ? a.contains(b) : true); + }; -var isXML = function(elem){ +} else if ( document.documentElement.compareDocumentPosition ) { + Sizzle.contains = function( a, b ) { + return !!(a.compareDocumentPosition(b) & 16); + }; + +} else { + Sizzle.contains = function() { + return false; + }; +} + +Sizzle.isXML = function( elem ) { // documentElement is verified for cases where it doesn't yet exist // (such as loading iframes in IE - #4833) var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; }; -var posProcess = function(selector, context){ - var tmpSet = [], later = "", match, +var posProcess = function( selector, context ) { + var match, + tmpSet = [], + later = "", root = context.nodeType ? [context] : context; // Position selectors must be done after the filter @@ -3677,53 +4314,26 @@ jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.filters; jQuery.unique = Sizzle.uniqueSort; -jQuery.text = getText; -jQuery.isXMLDoc = isXML; -jQuery.contains = contains; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; -return; - -window.Sizzle = Sizzle; })(); + + var runtil = /Until$/, rparentsprev = /^(?:parents|prevUntil|prevAll)/, // Note: This RegExp should be improved, or likely pulled from Sizzle rmultiselector = /,/, - slice = Array.prototype.slice; - -// Implement the identical functionality for filter and not -var winnow = function( elements, qualifier, keep ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep(elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) === keep; - }); - - } else if ( qualifier.nodeType ) { - return jQuery.grep(elements, function( elem, i ) { - return (elem === qualifier) === keep; - }); - - } else if ( typeof qualifier === "string" ) { - var filtered = jQuery.grep(elements, function( elem ) { - return elem.nodeType === 1; - }); - - if ( isSimple.test( qualifier ) ) { - return jQuery.filter(qualifier, filtered, !keep); - } else { - qualifier = jQuery.filter( qualifier, filtered ); - } - } - - return jQuery.grep(elements, function( elem, i ) { - return (jQuery.inArray( elem, qualifier ) >= 0) === keep; - }); -}; + isSimple = /^.[^:#\[\.,]*$/, + slice = Array.prototype.slice, + POS = jQuery.expr.match.POS; jQuery.fn.extend({ find: function( selector ) { - var ret = this.pushStack( "", "find", selector ), length = 0; + var ret = this.pushStack( "", "find", selector ), + length = 0; for ( var i = 0, l = this.length; i < l; i++ ) { length = ret.length; @@ -3769,11 +4379,15 @@ jQuery.fn.extend({ }, closest: function( selectors, context ) { + var ret = [], i, l, cur = this[0]; + if ( jQuery.isArray( selectors ) ) { - var ret = [], cur = this[0], match, matches = {}, selector; + var match, selector, + matches = {}, + level = 1; if ( cur && selectors.length ) { - for ( var i = 0, l = selectors.length; i < l; i++ ) { + for ( i = 0, l = selectors.length; i < l; i++ ) { selector = selectors[i]; if ( !matches[selector] ) { @@ -3788,29 +4402,41 @@ jQuery.fn.extend({ match = matches[selector]; if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) { - ret.push({ selector: selector, elem: cur }); - delete matches[selector]; + ret.push({ selector: selector, elem: cur, level: level }); } } + cur = cur.parentNode; + level++; } } return ret; } - var pos = jQuery.expr.match.POS.test( selectors ) ? + var pos = POS.test( selectors ) ? jQuery( selectors, context || this.context ) : null; - return this.map(function( i, cur ) { - while ( cur && cur.ownerDocument && cur !== context ) { - if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) { - return cur; + for ( i = 0, l = this.length; i < l; i++ ) { + cur = this[i]; + + while ( cur ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + + } else { + cur = cur.parentNode; + if ( !cur || !cur.ownerDocument || cur === context ) { + break; + } } - cur = cur.parentNode; } - return null; - }); + } + + ret = ret.length > 1 ? jQuery.unique(ret) : ret; + + return this.pushStack( ret, "closest", selectors ); }, // Determine the position of an element within @@ -3918,11 +4544,15 @@ jQuery.extend({ expr = ":not(" + expr + ")"; } - return jQuery.find.matches(expr, elems); + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); }, dir: function( elem, dir, until ) { - var matched = [], cur = elem[dir]; + var matched = [], + cur = elem[ dir ]; + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { if ( cur.nodeType === 1 ) { matched.push( cur ); @@ -3957,20 +4587,50 @@ jQuery.extend({ return r; } }); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem, i ) { + return (elem === qualifier) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem, i ) { + return (jQuery.inArray( elem, qualifier ) >= 0) === keep; + }); +} + + + + var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rleadingWhitespace = /^\s+/, - rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g, - rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, rtagName = /<([\w:]+)/, rtbody = /<tbody/i, rhtml = /<|&#?\w+;/, - rnocache = /<script|<object|<embed|<option|<style/i, - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5) - fcloseTag = function( all, front, tag ) { - return rselfClosing.test( tag ) ? - all : - front + "></" + tag + ">"; - }, + rnocache = /<(?:script|object|embed|option|style)/i, + // checked="checked" or checked (html5) + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + raction = /\=([^="'>\s]+\/)>/g, wrapMap = { option: [ 1, "<select multiple='multiple'>", "</select>" ], legend: [ 1, "<fieldset>", "</fieldset>" ], @@ -3995,7 +4655,8 @@ jQuery.fn.extend({ text: function( text ) { if ( jQuery.isFunction(text) ) { return this.each(function(i) { - var self = jQuery(this); + var self = jQuery( this ); + self.text( text.call(this, i, self.text()) ); }); } @@ -4044,7 +4705,8 @@ jQuery.fn.extend({ } return this.each(function() { - var self = jQuery( this ), contents = self.contents(); + var self = jQuery( this ), + contents = self.contents(); if ( contents.length ) { contents.wrapAll( html ); @@ -4155,7 +4817,9 @@ jQuery.fn.extend({ // attributes in IE that are actually only stored // as properties will not be copied (such as the // the name attribute on an input). - var html = this.outerHTML, ownerDocument = this.ownerDocument; + var html = this.outerHTML, + ownerDocument = this.ownerDocument; + if ( !html ) { var div = ownerDocument.createElement("div"); div.appendChild( this.cloneNode(true) ); @@ -4164,7 +4828,7 @@ jQuery.fn.extend({ return jQuery.clean([html.replace(rinlinejQuery, "") // Handle the case in IE 8 where action=/test/> self-closes a tag - .replace(/=([^="'>\s]+\/)>/g, '="$1">') + .replace(raction, '="$1">') .replace(rleadingWhitespace, "")], ownerDocument)[0]; } else { return this.cloneNode(true); @@ -4192,7 +4856,7 @@ jQuery.fn.extend({ (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) && !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) { - value = value.replace(rxhtmlTag, fcloseTag); + value = value.replace(rxhtmlTag, "<$1></$2>"); try { for ( var i = 0, l = this.length; i < l; i++ ) { @@ -4210,10 +4874,9 @@ jQuery.fn.extend({ } else if ( jQuery.isFunction( value ) ) { this.each(function(i){ - var self = jQuery(this), old = self.html(); - self.empty().append(function(){ - return value.call( this, i, old ); - }); + var self = jQuery( this ); + + self.html( value.call(this, i, self.html()) ); }); } else { @@ -4235,13 +4898,14 @@ jQuery.fn.extend({ } if ( typeof value !== "string" ) { - value = jQuery(value).detach(); + value = jQuery( value ).detach(); } return this.each(function() { - var next = this.nextSibling, parent = this.parentNode; + var next = this.nextSibling, + parent = this.parentNode; - jQuery(this).remove(); + jQuery( this ).remove(); if ( next ) { jQuery(next).before( value ); @@ -4259,7 +4923,9 @@ jQuery.fn.extend({ }, domManip: function( args, table, callback ) { - var results, first, value = args[0], scripts = [], fragment, parent; + var results, first, fragment, parent, + value = args[0], + scripts = []; // We can't cloneNode fragments that contain checked, in WebKit if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) { @@ -4284,7 +4950,7 @@ jQuery.fn.extend({ results = { fragment: parent }; } else { - results = buildFragment( args, this, scripts ); + results = jQuery.buildFragment( args, this, scripts ); } fragment = results.fragment; @@ -4316,16 +4982,16 @@ jQuery.fn.extend({ } return this; - - function root( elem, cur ) { - return jQuery.nodeName(elem, "table") ? - (elem.getElementsByTagName("tbody")[0] || - elem.appendChild(elem.ownerDocument.createElement("tbody"))) : - elem; - } } }); +function root( elem, cur ) { + return jQuery.nodeName(elem, "table") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; +} + function cloneCopyEvent(orig, ret) { var i = 0; @@ -4334,7 +5000,9 @@ function cloneCopyEvent(orig, ret) { return; } - var oldData = jQuery.data( orig[i++] ), curData = jQuery.data( this, oldData ), events = oldData && oldData.events; + var oldData = jQuery.data( orig[i++] ), + curData = jQuery.data( this, oldData ), + events = oldData && oldData.events; if ( events ) { delete curData.handle; @@ -4349,7 +5017,7 @@ function cloneCopyEvent(orig, ret) { }); } -function buildFragment( args, nodes, scripts ) { +jQuery.buildFragment = function( args, nodes, scripts ) { var fragment, cacheable, cacheresults, doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document); @@ -4379,7 +5047,7 @@ function buildFragment( args, nodes, scripts ) { } return { fragment: fragment, cacheable: cacheable }; -} +}; jQuery.fragments = {}; @@ -4391,7 +5059,8 @@ jQuery.each({ replaceAll: "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { - var ret = [], insert = jQuery( selector ), + var ret = [], + insert = jQuery( selector ), parent = this.length === 1 && this[0].parentNode; if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { @@ -4401,7 +5070,7 @@ jQuery.each({ } else { for ( var i = 0, l = insert.length; i < l; i++ ) { var elems = (i > 0 ? this.clone(true) : this).get(); - jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); + jQuery( insert[i] )[ original ]( elems ); ret = ret.concat( elems ); } @@ -4436,7 +5105,7 @@ jQuery.extend({ } else if ( typeof elem === "string" ) { // Fix "XHTML"-style tags in all browsers - elem = elem.replace(rxhtmlTag, fcloseTag); + elem = elem.replace(rxhtmlTag, "<$1></$2>"); // Trim whitespace, otherwise indexOf won't work as expected var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(), @@ -4489,7 +5158,7 @@ jQuery.extend({ } if ( fragment ) { - for ( var i = 0; ret[i]; i++ ) { + for ( i = 0; ret[i]; i++ ) { if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); @@ -4511,18 +5180,22 @@ jQuery.extend({ deleteExpando = jQuery.support.deleteExpando; for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) { + continue; + } + id = elem[ jQuery.expando ]; if ( id ) { data = cache[ id ]; - if ( data.events ) { + if ( data && data.events ) { for ( var type in data.events ) { if ( special[ type ] ) { jQuery.event.remove( elem, type ); } else { - removeEvent( elem, type, data.handle ); + jQuery.removeEvent( elem, type, data.handle ); } } } @@ -4539,198 +5212,152 @@ jQuery.extend({ } } }); -// exclude the following css properties to add px -var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, - ralpha = /alpha\([^)]*\)/, + +function evalScript( i, elem ) { + if ( elem.src ) { + jQuery.ajax({ + url: elem.src, + async: false, + dataType: "script" + }); + } else { + jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + } + + if ( elem.parentNode ) { + elem.parentNode.removeChild( elem ); + } +} + + + + +var ralpha = /alpha\([^)]*\)/i, ropacity = /opacity=([^)]*)/, - rfloat = /float/i, rdashAlpha = /-([a-z])/ig, rupper = /([A-Z])/g, rnumpx = /^-?\d+(?:px)?$/i, rnum = /^-?\d/, - cssShow = { position: "absolute", visibility: "hidden", display:"block" }, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssWidth = [ "Left", "Right" ], cssHeight = [ "Top", "Bottom" ], + curCSS, + + getComputedStyle, + currentStyle, - // cache check for defaultView.getComputedStyle - getComputedStyle = document.defaultView && document.defaultView.getComputedStyle, - // normalize float css property - styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat", fcamelCase = function( all, letter ) { return letter.toUpperCase(); }; jQuery.fn.css = function( name, value ) { - return access( this, name, value, true, function( elem, name, value ) { - if ( value === undefined ) { - return jQuery.curCSS( elem, name ); - } - - if ( typeof value === "number" && !rexclude.test(name) ) { - value += "px"; - } + // Setting 'undefined' is a no-op + if ( arguments.length === 2 && value === undefined ) { + return this; + } - jQuery.style( elem, name, value ); + return jQuery.access( this, name, value, true, function( elem, name, value ) { + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); }); }; jQuery.extend({ - style: function( elem, name, value ) { - // don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) { - return undefined; - } + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity", "opacity" ); + return ret === "" ? "1" : ret; - // ignore negative width and height values #1599 - if ( (name === "width" || name === "height") && parseFloat(value) < 0 ) { - value = undefined; - } - - var style = elem.style || elem, set = value !== undefined; - - // IE uses filters for opacity - if ( !jQuery.support.opacity && name === "opacity" ) { - if ( set ) { - // IE has trouble with opacity if it does not have layout - // Force it by setting the zoom level - style.zoom = 1; - - // Set the alpha filter to set the opacity - var opacity = parseInt( value, 10 ) + "" === "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"; - var filter = style.filter || jQuery.curCSS( elem, "filter" ) || ""; - style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) : opacity; - } - - return style.filter && style.filter.indexOf("opacity=") >= 0 ? - (parseFloat( ropacity.exec(style.filter)[1] ) / 100) + "": - ""; - } - - // Make sure we're using the right name for getting the float value - if ( rfloat.test( name ) ) { - name = styleFloat; - } - - name = name.replace(rdashAlpha, fcamelCase); - - if ( set ) { - style[ name ] = value; - } - - return style[ name ]; - }, - - css: function( elem, name, force, extra ) { - if ( name === "width" || name === "height" ) { - var val, props = cssShow, which = name === "width" ? cssWidth : cssHeight; - - function getWH() { - val = name === "width" ? elem.offsetWidth : elem.offsetHeight; - - if ( extra === "border" ) { - return; + } else { + return elem.style.opacity; } - - jQuery.each( which, function() { - if ( !extra ) { - val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; - } - - if ( extra === "margin" ) { - val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; - } else { - val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; - } - }); } - - if ( elem.offsetWidth !== 0 ) { - getWH(); - } else { - jQuery.swap( elem, props, getWH ); - } - - return Math.max(0, Math.round(val)); } - - return jQuery.curCSS( elem, name, force ); }, - curCSS: function( elem, name, force ) { - var ret, style = elem.style, filter; + // Exclude the following css properties to add px + cssNumber: { + "zIndex": true, + "fontWeight": true, + "opacity": true, + "zoom": true, + "lineHeight": true + }, - // IE uses filters for opacity - if ( !jQuery.support.opacity && name === "opacity" && elem.currentStyle ) { - ret = ropacity.test(elem.currentStyle.filter || "") ? - (parseFloat(RegExp.$1) / 100) + "" : - ""; + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, - return ret === "" ? - "1" : - ret; + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; } - // Make sure we're using the right name for getting the float value - if ( rfloat.test( name ) ) { - name = styleFloat; + // Make sure that we're working with the right name + var ret, origName = jQuery.camelCase( name ), + style = elem.style, hooks = jQuery.cssHooks[ origName ]; + + name = jQuery.cssProps[ origName ] || origName; + + // Check if we're setting a value + if ( value !== undefined ) { + // Make sure that NaN and null values aren't set. See: #7116 + if ( typeof value === "number" && isNaN( value ) || value == null ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; } + }, - if ( !force && style && style[ name ] ) { - ret = style[ name ]; + css: function( elem, name, extra ) { + // Make sure that we're working with the right name + var ret, origName = jQuery.camelCase( name ), + hooks = jQuery.cssHooks[ origName ]; - } else if ( getComputedStyle ) { + name = jQuery.cssProps[ origName ] || origName; - // Only "float" is needed here - if ( rfloat.test( name ) ) { - name = "float"; - } + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { + return ret; - name = name.replace( rupper, "-$1" ).toLowerCase(); - - var defaultView = elem.ownerDocument.defaultView; - - if ( !defaultView ) { - return null; - } - - var computedStyle = defaultView.getComputedStyle( elem, null ); - - if ( computedStyle ) { - ret = computedStyle.getPropertyValue( name ); - } - - // We should always get a number back from opacity - if ( name === "opacity" && ret === "" ) { - ret = "1"; - } - - } else if ( elem.currentStyle ) { - var camelCase = name.replace(rdashAlpha, fcamelCase); - - ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; - - // From the awesome hack by Dean Edwards - // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 - - // If we're not dealing with a regular pixel number - // but a number that has a weird ending, we need to convert it to pixels - if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { - // Remember the original values - var left = style.left, rsLeft = elem.runtimeStyle.left; - - // Put in the new values to get a computed value out - elem.runtimeStyle.left = elem.currentStyle.left; - style.left = camelCase === "fontSize" ? "1em" : (ret || 0); - ret = style.pixelLeft + "px"; - - // Revert the changed values - style.left = left; - elem.runtimeStyle.left = rsLeft; - } + // Otherwise, if a way to get the computed value exists, use that + } else if ( curCSS ) { + return curCSS( elem, name, origName ); } - - return ret; }, // A method for quickly swapping in/out CSS properties to get correct calculations @@ -4746,45 +5373,218 @@ jQuery.extend({ callback.call( elem ); // Revert the old values - for ( var name in options ) { + for ( name in options ) { elem.style[ name ] = old[ name ]; } + }, + + camelCase: function( string ) { + return string.replace( rdashAlpha, fcamelCase ); } }); +// DEPRECATED, Use jQuery.css() instead +jQuery.curCSS = jQuery.css; + +jQuery.each(["height", "width"], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + var val; + + if ( computed ) { + if ( elem.offsetWidth !== 0 ) { + val = getWH( elem, name, extra ); + + } else { + jQuery.swap( elem, cssShow, function() { + val = getWH( elem, name, extra ); + }); + } + + if ( val <= 0 ) { + val = curCSS( elem, name, name ); + + if ( val === "0px" && currentStyle ) { + val = currentStyle( elem, name, name ); + } + + if ( val != null ) { + // Should return "auto" instead of 0, use 0 for + // temporary backwards-compat + return val === "" || val === "auto" ? "0px" : val; + } + } + + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + + // Should return "auto" instead of 0, use 0 for + // temporary backwards-compat + return val === "" || val === "auto" ? "0px" : val; + } + + return typeof val === "string" ? val : val + "px"; + } + }, + + set: function( elem, value ) { + if ( rnumpx.test( value ) ) { + // ignore negative width and height values #1599 + value = parseFloat(value); + + if ( value >= 0 ) { + return value + "px"; + } + + } else { + return value; + } + } + }; +}); + +if ( !jQuery.support.opacity ) { + jQuery.cssHooks.opacity = { + get: function( elem, computed ) { + // IE uses filters for opacity + return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ? + (parseFloat(RegExp.$1) / 100) + "" : + computed ? "1" : ""; + }, + + set: function( elem, value ) { + var style = elem.style; + + // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + style.zoom = 1; + + // Set the alpha filter to set the opacity + var opacity = jQuery.isNaN(value) ? + "" : + "alpha(opacity=" + value * 100 + ")", + filter = style.filter || ""; + + style.filter = ralpha.test(filter) ? + filter.replace(ralpha, opacity) : + style.filter + ' ' + opacity; + } + }; +} + +if ( document.defaultView && document.defaultView.getComputedStyle ) { + getComputedStyle = function( elem, newName, name ) { + var ret, defaultView, computedStyle; + + name = name.replace( rupper, "-$1" ).toLowerCase(); + + if ( !(defaultView = elem.ownerDocument.defaultView) ) { + return undefined; + } + + if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) { + ret = computedStyle.getPropertyValue( name ); + if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) { + ret = jQuery.style( elem, name ); + } + } + + return ret; + }; +} + +if ( document.documentElement.currentStyle ) { + currentStyle = function( elem, name ) { + var left, rsLeft, + ret = elem.currentStyle && elem.currentStyle[ name ], + style = elem.style; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { + // Remember the original values + left = style.left; + rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = name === "fontSize" ? "1em" : (ret || 0); + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + + return ret === "" ? "auto" : ret; + }; +} + +curCSS = getComputedStyle || currentStyle; + +function getWH( elem, name, extra ) { + var which = name === "width" ? cssWidth : cssHeight, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight; + + if ( extra === "border" ) { + return val; + } + + jQuery.each( which, function() { + if ( !extra ) { + val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0; + } + + if ( extra === "margin" ) { + val += parseFloat(jQuery.css( elem, "margin" + this )) || 0; + + } else { + val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0; + } + }); + + return val; +} + if ( jQuery.expr && jQuery.expr.filters ) { jQuery.expr.filters.hidden = function( elem ) { - var width = elem.offsetWidth, height = elem.offsetHeight, - skip = elem.nodeName.toLowerCase() === "tr"; + var width = elem.offsetWidth, + height = elem.offsetHeight; - return width === 0 && height === 0 && !skip ? - true : - width > 0 && height > 0 && !skip ? - false : - jQuery.curCSS(elem, "display") === "none"; + return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none"); }; jQuery.expr.filters.visible = function( elem ) { return !jQuery.expr.filters.hidden( elem ); }; } -var jsc = now(), - rscript = /<script(.|\s)*?\/script>/gi, - rselectTextarea = /select|textarea/i, - rinput = /color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i, - jsre = /=\?(&|$)/, + + + + +var jsc = jQuery.now(), + rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, + rselectTextarea = /^(?:select|textarea)/i, + rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rnoContent = /^(?:GET|HEAD)$/, + rbracket = /\[\]$/, + jsre = /\=\?(&|$)/, rquery = /\?/, - rts = /(\?|&)_=.*?(&|$)/, + rts = /([?&])_=[^&]*/, rurl = /^(\w+:)?\/\/([^\/?#]+)/, r20 = /%20/g, + rhash = /#.*$/, // Keep a copy of the old load method _load = jQuery.fn.load; jQuery.fn.extend({ load: function( url, params, callback ) { - if ( typeof url !== "string" ) { - return _load.call( this, url ); + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); // Don't do a request if no elements are being requested } else if ( !this.length ) { @@ -4829,7 +5629,7 @@ jQuery.fn.extend({ // See if a selector was specified self.html( selector ? // Create a dummy div to hold the results - jQuery("<div />") + jQuery("<div>") // inject the contents of the document in, removing the scripts // to avoid any 'Permission Denied' errors in IE .append(res.responseText.replace(rscript, "")) @@ -4853,6 +5653,7 @@ jQuery.fn.extend({ serialize: function() { return jQuery.param(this.serializeArray()); }, + serializeArray: function() { return this.map(function() { return this.elements ? jQuery.makeArray(this.elements) : this; @@ -4884,7 +5685,6 @@ jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".sp }); jQuery.extend({ - get: function( url, data, callback, type ) { // shift arguments if data argument was omited if ( jQuery.isFunction( data ) ) { @@ -4945,19 +5745,10 @@ jQuery.extend({ password: null, traditional: false, */ - // Create the request object; Microsoft failed to properly - // implement the XMLHttpRequest in IE7 (can't request local files), - // so we use the ActiveXObject when it is available // This function can be overriden by calling jQuery.ajaxSetup - xhr: window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ? - function() { - return new window.XMLHttpRequest(); - } : - function() { - try { - return new window.ActiveXObject("Microsoft.XMLHTTP"); - } catch(e) {} - }, + xhr: function() { + return new window.XMLHttpRequest(); + }, accepts: { xml: "application/xml, text/xml", html: "text/html", @@ -4968,16 +5759,14 @@ jQuery.extend({ } }, - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - ajax: function( origSettings ) { - var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings); - - var jsonp, status, data, - callbackContext = origSettings && origSettings.context || s, - type = s.type.toUpperCase(); + var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings), + jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type); + + s.url = s.url.replace( rhash, "" ); + + // Use original (not extended) context object if it was provided + s.context = origSettings && origSettings.context != null ? origSettings.context : s; // convert data if not already a string if ( s.data && s.processData && typeof s.data !== "string" ) { @@ -5012,17 +5801,25 @@ jQuery.extend({ s.dataType = "script"; // Handle JSONP-style loading - window[ jsonp ] = window[ jsonp ] || function( tmp ) { + var customJsonp = window[ jsonp ]; + + window[ jsonp ] = function( tmp ) { + if ( jQuery.isFunction( customJsonp ) ) { + customJsonp( tmp ); + + } else { + // Garbage collect + window[ jsonp ] = undefined; + + try { + delete window[ jsonp ]; + } catch( jsonpError ) {} + } + data = tmp; - success(); - complete(); - // Garbage collect - window[ jsonp ] = undefined; - - try { - delete window[ jsonp ]; - } catch(e) {} - + jQuery.handleSuccess( s, xhr, status, data ); + jQuery.handleComplete( s, xhr, status, data ); + if ( head ) { head.removeChild( script ); } @@ -5033,39 +5830,39 @@ jQuery.extend({ s.cache = false; } - if ( s.cache === false && type === "GET" ) { - var ts = now(); + if ( s.cache === false && noContent ) { + var ts = jQuery.now(); // try replacing _= if it is there - var ret = s.url.replace(rts, "$1_=" + ts + "$2"); + var ret = s.url.replace(rts, "$1_=" + ts); // if nothing was replaced, add timestamp to the end s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : ""); } - // If data is available, append data to url for get requests - if ( s.data && type === "GET" ) { + // If data is available, append data to url for GET/HEAD requests + if ( s.data && noContent ) { s.url += (rquery.test(s.url) ? "&" : "?") + s.data; } // Watch for a new set of requests - if ( s.global && ! jQuery.active++ ) { + if ( s.global && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } // Matches an absolute URL, and saves the domain var parts = rurl.exec( s.url ), - remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host); + remote = parts && (parts[1] && parts[1].toLowerCase() !== location.protocol || parts[2].toLowerCase() !== location.host); // If we're requesting a remote document // and trying to load JSON or Script with a GET if ( s.dataType === "script" && type === "GET" && remote ) { var head = document.getElementsByTagName("head")[0] || document.documentElement; var script = document.createElement("script"); - script.src = s.url; if ( s.scriptCharset ) { script.charset = s.scriptCharset; } + script.src = s.url; // Handle Script loading if ( !jsonp ) { @@ -5076,8 +5873,8 @@ jQuery.extend({ if ( !done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) { done = true; - success(); - complete(); + jQuery.handleSuccess( s, xhr, status, data ); + jQuery.handleComplete( s, xhr, status, data ); // Handle memory leak in IE script.onload = script.onreadystatechange = null; @@ -5115,8 +5912,8 @@ jQuery.extend({ // Need an extra try/catch for cross domain requests in Firefox 3 try { - // Set the correct header, if data is being sent - if ( s.data || origSettings && origSettings.contentType ) { + // Set content-type if data specified and content-body is valid for this type + if ( (s.data != null && !noContent) || (origSettings && origSettings.contentType) ) { xhr.setRequestHeader("Content-Type", s.contentType); } @@ -5139,14 +5936,14 @@ jQuery.extend({ // Set the Accepts header for the server, depending on the dataType xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? - s.accepts[ s.dataType ] + ", */*" : + s.accepts[ s.dataType ] + ", */*; q=0.01" : s.accepts._default ); - } catch(e) {} + } catch( headerError ) {} // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && s.beforeSend.call(callbackContext, xhr, s) === false ) { + if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false ) { // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) { + if ( s.global && jQuery.active-- === 1 ) { jQuery.event.trigger( "ajaxStop" ); } @@ -5156,7 +5953,7 @@ jQuery.extend({ } if ( s.global ) { - trigger("ajaxSend", [xhr, s]); + jQuery.triggerGlobal( s, "ajaxSend", [xhr, s] ); } // Wait for a response to come back @@ -5166,7 +5963,7 @@ jQuery.extend({ // Opera doesn't call onreadystatechange before this point // so we simulate the call if ( !requestDone ) { - complete(); + jQuery.handleComplete( s, xhr, status, data ); } requestDone = true; @@ -5194,9 +5991,9 @@ jQuery.extend({ try { // process the data (runs the xml through httpData regardless of callback) data = jQuery.httpData( xhr, s.dataType, s ); - } catch(err) { + } catch( parserError ) { status = "parsererror"; - errMsg = err; + errMsg = parserError; } } @@ -5204,14 +6001,16 @@ jQuery.extend({ if ( status === "success" || status === "notmodified" ) { // JSONP handles its own success callback if ( !jsonp ) { - success(); + jQuery.handleSuccess( s, xhr, status, data ); } } else { - jQuery.handleError(s, xhr, status, errMsg); + jQuery.handleError( s, xhr, status, errMsg ); } // Fire the complete handlers - complete(); + if ( !jsonp ) { + jQuery.handleComplete( s, xhr, status, data ); + } if ( isTimeout === "timeout" ) { xhr.abort(); @@ -5224,18 +6023,21 @@ jQuery.extend({ } }; - // Override the abort handler, if we can (IE doesn't allow it, but that's OK) + // Override the abort handler, if we can (IE 6 doesn't allow it, but that's OK) // Opera doesn't fire onreadystatechange at all on abort try { var oldAbort = xhr.abort; xhr.abort = function() { if ( xhr ) { - oldAbort.call( xhr ); + // oldAbort has no call property in IE7 so + // just do it this way, which works in all + // browsers + Function.prototype.call.call( oldAbort, xhr ); } onreadystatechange( "abort" ); }; - } catch(e) { } + } catch( abortError ) {} // Timeout checker if ( s.async && s.timeout > 0 ) { @@ -5249,11 +6051,13 @@ jQuery.extend({ // Send the data try { - xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null ); - } catch(e) { - jQuery.handleError(s, xhr, null, e); + xhr.send( noContent || s.data == null ? null : s.data ); + + } catch( sendError ) { + jQuery.handleError( s, xhr, null, sendError ); + // Fire the complete handlers - complete(); + jQuery.handleComplete( s, xhr, status, data ); } // firefox 1.5 doesn't fire statechange for sync requests @@ -5261,66 +6065,145 @@ jQuery.extend({ onreadystatechange(); } - function success() { - // If a local callback was specified, fire it and pass it the data - if ( s.success ) { - s.success.call( callbackContext, data, status, xhr ); - } - - // Fire the global callback - if ( s.global ) { - trigger( "ajaxSuccess", [xhr, s] ); - } - } - - function complete() { - // Process result - if ( s.complete ) { - s.complete.call( callbackContext, xhr, status); - } - - // The request was completed - if ( s.global ) { - trigger( "ajaxComplete", [xhr, s] ); - } - - // Handle the global AJAX counter - if ( s.global && ! --jQuery.active ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - - function trigger(type, args) { - (s.context ? jQuery(s.context) : jQuery.event).trigger(type, args); - } - // return XMLHttpRequest to allow aborting the request etc. return xhr; }, + // Serialize an array of form elements or a set of + // key/values into a query string + param: function( a, traditional ) { + var s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction(value) ? value() : value; + s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray(a) || a.jquery ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( var prefix in a ) { + buildParams( prefix, a[prefix], traditional, add ); + } + } + + // Return the resulting serialization + return s.join("&").replace(r20, "+"); + } +}); + +function buildParams( prefix, obj, traditional, add ) { + if ( jQuery.isArray(obj) && obj.length ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && obj != null && typeof obj === "object" ) { + if ( jQuery.isEmptyObject( obj ) ) { + add( prefix, "" ); + + // Serialize object item. + } else { + jQuery.each( obj, function( k, v ) { + buildParams( prefix + "[" + k + "]", v, traditional, add ); + }); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// This is still on the jQuery object... for now +// Want to move this to jQuery.ajax some day +jQuery.extend({ + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + handleError: function( s, xhr, status, e ) { // If a local callback was specified, fire it if ( s.error ) { - s.error.call( s.context || s, xhr, status, e ); + s.error.call( s.context, xhr, status, e ); } // Fire the global callback if ( s.global ) { - (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] ); + jQuery.triggerGlobal( s, "ajaxError", [xhr, s, e] ); } }, - // Counter for holding the number of active queries - active: 0, + handleSuccess: function( s, xhr, status, data ) { + // If a local callback was specified, fire it and pass it the data + if ( s.success ) { + s.success.call( s.context, data, status, xhr ); + } + + // Fire the global callback + if ( s.global ) { + jQuery.triggerGlobal( s, "ajaxSuccess", [xhr, s] ); + } + }, + + handleComplete: function( s, xhr, status ) { + // Process result + if ( s.complete ) { + s.complete.call( s.context, xhr, status ); + } + + // The request was completed + if ( s.global ) { + jQuery.triggerGlobal( s, "ajaxComplete", [xhr, s] ); + } + + // Handle the global AJAX counter + if ( s.global && jQuery.active-- === 1 ) { + jQuery.event.trigger( "ajaxStop" ); + } + }, + + triggerGlobal: function( s, type, args ) { + (s.context && s.context.url == null ? jQuery(s.context) : jQuery.event).trigger(type, args); + }, // Determines if an XMLHttpRequest was successful or not httpSuccess: function( xhr ) { try { // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 return !xhr.status && location.protocol === "file:" || - // Opera returns 0 when status is 304 - ( xhr.status >= 200 && xhr.status < 300 ) || - xhr.status === 304 || xhr.status === 1223 || xhr.status === 0; + xhr.status >= 200 && xhr.status < 300 || + xhr.status === 304 || xhr.status === 1223; } catch(e) {} return false; @@ -5339,8 +6222,7 @@ jQuery.extend({ jQuery.etag[url] = etag; } - // Opera returns 0 when status is 304 - return xhr.status === 304 || xhr.status === 0; + return xhr.status === 304; }, httpData: function( xhr, type, s ) { @@ -5371,77 +6253,40 @@ jQuery.extend({ } return data; - }, - - // Serialize an array of form elements or a set of - // key/values into a query string - param: function( a, traditional ) { - var s = []; - - // Set traditional to true for jQuery <= 1.3.2 behavior. - if ( traditional === undefined ) { - traditional = jQuery.ajaxSettings.traditional; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( jQuery.isArray(a) || a.jquery ) { - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - }); - - } else { - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( var prefix in a ) { - buildParams( prefix, a[prefix] ); - } - } - - // Return the resulting serialization - return s.join("&").replace(r20, "+"); - - function buildParams( prefix, obj ) { - if ( jQuery.isArray(obj) ) { - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || /\[\]$/.test( prefix ) ) { - // Treat each array item as a scalar. - add( prefix, v ); - } else { - // If array item is non-scalar (array or object), encode its - // numeric index to resolve deserialization ambiguity issues. - // Note that rack (as of 1.0.0) can't currently deserialize - // nested arrays properly, and attempting to do so may cause - // a server error. Possible fixes are to modify rack's - // deserialization algorithm or to provide an option or flag - // to force array serialization to be shallow. - buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v ); - } - }); - - } else if ( !traditional && obj != null && typeof obj === "object" ) { - // Serialize object item. - jQuery.each( obj, function( k, v ) { - buildParams( prefix + "[" + k + "]", v ); - }); - - } else { - // Serialize scalar item. - add( prefix, obj ); - } - } - - function add( key, value ) { - // If value is a function, invoke it and return its value - value = jQuery.isFunction(value) ? value() : value; - s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); - } } + }); + +/* + * Create the request object; Microsoft failed to properly + * implement the XMLHttpRequest in IE7 (can't request local files), + * so we use the ActiveXObject when it is available + * Additionally XMLHttpRequest can be disabled in IE7/IE8 so + * we need a fallback. + */ +if ( window.ActiveXObject ) { + jQuery.ajaxSettings.xhr = function() { + if ( window.location.protocol !== "file:" ) { + try { + return new window.XMLHttpRequest(); + } catch(xhrError) {} + } + + try { + return new window.ActiveXObject("Microsoft.XMLHTTP"); + } catch(activeError) {} + }; +} + +// Does this browser support XHR requests? +jQuery.support.ajax = !!jQuery.ajaxSettings.xhr(); + + + + var elemdisplay = {}, - rfxtypes = /toggle|show|hide/, - rfxnum = /^([+-]=)?([\d+-.]+)(.*)$/, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = /^([+\-]=)?([\d+.\-]+)(.*)$/, timerId, fxAttrs = [ // height animations @@ -5453,66 +6298,63 @@ var elemdisplay = {}, ]; jQuery.fn.extend({ - show: function( speed, callback ) { - if ( speed || speed === 0) { - return this.animate( genFx("show", 3), speed, callback); + show: function( speed, easing, callback ) { + var elem, display; + + if ( speed || speed === 0 ) { + return this.animate( genFx("show", 3), speed, easing, callback); } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - var old = jQuery.data(this[i], "olddisplay"); + for ( var i = 0, j = this.length; i < j; i++ ) { + elem = this[i]; + display = elem.style.display; - this[i].style.display = old || ""; + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !jQuery.data(elem, "olddisplay") && display === "none" ) { + display = elem.style.display = ""; + } - if ( jQuery.css(this[i], "display") === "none" ) { - var nodeName = this[i].nodeName, display; - - if ( elemdisplay[ nodeName ] ) { - display = elemdisplay[ nodeName ]; - - } else { - var elem = jQuery("<" + nodeName + " />").appendTo("body"); - - display = elem.css("display"); - - if ( display === "none" ) { - display = "block"; - } - - elem.remove(); - - elemdisplay[ nodeName ] = display; - } - - jQuery.data(this[i], "olddisplay", display); + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( display === "" && jQuery.css( elem, "display" ) === "none" ) { + jQuery.data(elem, "olddisplay", defaultDisplay(elem.nodeName)); } } - // Set the display of the elements in a second loop + // Set the display of most of the elements in a second loop // to avoid the constant reflow - for ( var j = 0, k = this.length; j < k; j++ ) { - this[j].style.display = jQuery.data(this[j], "olddisplay") || ""; + for ( i = 0; i < j; i++ ) { + elem = this[i]; + display = elem.style.display; + + if ( display === "" || display === "none" ) { + elem.style.display = jQuery.data(elem, "olddisplay") || ""; + } } return this; } }, - hide: function( speed, callback ) { + hide: function( speed, easing, callback ) { if ( speed || speed === 0 ) { - return this.animate( genFx("hide", 3), speed, callback); + return this.animate( genFx("hide", 3), speed, easing, callback); } else { - for ( var i = 0, l = this.length; i < l; i++ ) { - var old = jQuery.data(this[i], "olddisplay"); - if ( !old && old !== "none" ) { - jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display")); + for ( var i = 0, j = this.length; i < j; i++ ) { + var display = jQuery.css( this[i], "display" ); + + if ( display !== "none" ) { + jQuery.data( this[i], "olddisplay", display ); } } // Set the display of the elements in a second loop // to avoid the constant reflow - for ( var j = 0, k = this.length; j < k; j++ ) { - this[j].style.display = "none"; + for ( i = 0; i < j; i++ ) { + this[i].style.display = "none"; } return this; @@ -5522,7 +6364,7 @@ jQuery.fn.extend({ // Save the old toggle function _toggle: jQuery.fn.toggle, - toggle: function( fn, fn2 ) { + toggle: function( fn, fn2, callback ) { var bool = typeof fn === "boolean"; if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) { @@ -5535,15 +6377,15 @@ jQuery.fn.extend({ }); } else { - this.animate(genFx("toggle", 3), fn, fn2); + this.animate(genFx("toggle", 3), fn, fn2, callback); } return this; }, - fadeTo: function( speed, to, callback ) { + fadeTo: function( speed, to, easing, callback ) { return this.filter(":hidden").css("opacity", 0).show().end() - .animate({opacity: to}, speed, callback); + .animate({opacity: to}, speed, easing, callback); }, animate: function( prop, speed, easing, callback ) { @@ -5554,12 +6396,16 @@ jQuery.fn.extend({ } return this[ optall.queue === false ? "each" : "queue" ](function() { + // XXX 'this' does not always have a nodeName when running the + // test suite + var opt = jQuery.extend({}, optall), p, - hidden = this.nodeType === 1 && jQuery(this).is(":hidden"), + isElement = this.nodeType === 1, + hidden = isElement && jQuery(this).is(":hidden"), self = this; for ( p in prop ) { - var name = p.replace(rdashAlpha, fcamelCase); + var name = jQuery.camelCase( p ); if ( p !== name ) { prop[ name ] = prop[ p ]; @@ -5571,12 +6417,35 @@ jQuery.fn.extend({ return opt.complete.call(this); } - if ( ( p === "height" || p === "width" ) && this.style ) { - // Store display property - opt.display = jQuery.css(this, "display"); - + if ( isElement && ( p === "height" || p === "width" ) ) { // Make sure that nothing sneaks out - opt.overflow = this.style.overflow; + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height + // animated + if ( jQuery.css( this, "display" ) === "inline" && + jQuery.css( this, "float" ) === "none" ) { + if ( !jQuery.support.inlineBlockNeedsLayout ) { + this.style.display = "inline-block"; + + } else { + var display = defaultDisplay(this.nodeName); + + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if ( display === "inline" ) { + this.style.display = "inline-block"; + + } else { + this.style.display = "inline"; + this.style.zoom = 1; + } + } + } } if ( jQuery.isArray( prop[p] ) ) { @@ -5600,7 +6469,7 @@ jQuery.fn.extend({ } else { var parts = rfxnum.exec(val), - start = e.cur(true) || 0; + start = e.cur() || 0; if ( parts ) { var end = parseFloat( parts[2] ), @@ -5608,9 +6477,9 @@ jQuery.fn.extend({ // We need to compute starting value if ( unit !== "px" ) { - self.style[ name ] = (end || 1) + unit; - start = ((end || 1) / e.cur(true)) * start; - self.style[ name ] = start + unit; + jQuery.style( self, name, (end || 1) + unit); + start = ((end || 1) / e.cur()) * start; + jQuery.style( self, name, start + unit); } // If a +=/-= token was provided, we're doing a relative animation @@ -5662,22 +6531,33 @@ jQuery.fn.extend({ }); +function genFx( type, num ) { + var obj = {}; + + jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { + obj[ this ] = type; + }); + + return obj; +} + // Generate shortcuts for custom animations jQuery.each({ slideDown: genFx("show", 1), slideUp: genFx("hide", 1), slideToggle: genFx("toggle", 1), fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" } + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } }, function( name, props ) { - jQuery.fn[ name ] = function( speed, callback ) { - return this.animate( props, speed, callback ); + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); }; }); jQuery.extend({ speed: function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? speed : { + var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : { complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed, duration: speed, @@ -5685,7 +6565,7 @@ jQuery.extend({ }; opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : - jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default; + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default; // Queueing opt.old = opt.complete; @@ -5732,33 +6612,30 @@ jQuery.fx.prototype = { } (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); - - // Set display property to block for height/width animations - if ( ( this.prop === "height" || this.prop === "width" ) && this.elem.style ) { - this.elem.style.display = "block"; - } }, // Get the current size - cur: function( force ) { + cur: function() { if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) { return this.elem[ this.prop ]; } - var r = parseFloat(jQuery.css(this.elem, this.prop, force)); - return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; + var r = parseFloat( jQuery.css( this.elem, this.prop ) ); + return r && r > -10000 ? r : 0; }, // Start an animation from one number to another custom: function( from, to, unit ) { - this.startTime = now(); + var self = this, + fx = jQuery.fx; + + this.startTime = jQuery.now(); this.start = from; this.end = to; this.unit = unit || this.unit || "px"; this.now = this.start; this.pos = this.state = 0; - var self = this; function t( gotoEnd ) { return self.step(gotoEnd); } @@ -5766,7 +6643,7 @@ jQuery.fx.prototype = { t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval(jQuery.fx.tick, 13); + timerId = setInterval(fx.tick, fx.interval); } }, @@ -5797,7 +6674,7 @@ jQuery.fx.prototype = { // Each step of an animation step: function( gotoEnd ) { - var t = now(), done = true; + var t = jQuery.now(), done = true; if ( gotoEnd || t >= this.options.duration + this.startTime ) { this.now = this.end; @@ -5813,17 +6690,14 @@ jQuery.fx.prototype = { } if ( done ) { - if ( this.options.display != null ) { - // Reset the overflow - this.elem.style.overflow = this.options.overflow; + // Reset the overflow + if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { + var elem = this.elem, + options = this.options; - // Reset the display - var old = jQuery.data(this.elem, "olddisplay"); - this.elem.style.display = old ? old : this.options.display; - - if ( jQuery.css(this.elem, "display") === "none" ) { - this.elem.style.display = "block"; - } + jQuery.each( [ "", "X", "Y" ], function (index, value) { + elem.style[ "overflow" + value ] = options.overflow[index]; + } ); } // Hide the element if the "hide" operation was done @@ -5834,7 +6708,7 @@ jQuery.fx.prototype = { // Reset the properties, if the item has been hidden or shown if ( this.options.hide || this.options.show ) { for ( var p in this.options.curAnim ) { - jQuery.style(this.elem, p, this.options.orig[p]); + jQuery.style( this.elem, p, this.options.orig[p] ); } } @@ -5876,22 +6750,24 @@ jQuery.extend( jQuery.fx, { jQuery.fx.stop(); } }, - + + interval: 13, + stop: function() { clearInterval( timerId ); timerId = null; }, - + speeds: { slow: 600, - fast: 200, - // Default speed - _default: 400 + fast: 200, + // Default speed + _default: 400 }, step: { opacity: function( fx ) { - jQuery.style(fx.elem, "opacity", fx.now); + jQuery.style( fx.elem, "opacity", fx.now ); }, _default: function( fx ) { @@ -5912,18 +6788,32 @@ if ( jQuery.expr && jQuery.expr.filters ) { }; } -function genFx( type, num ) { - var obj = {}; +function defaultDisplay( nodeName ) { + if ( !elemdisplay[ nodeName ] ) { + var elem = jQuery("<" + nodeName + ">").appendTo("body"), + display = elem.css("display"); - jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { - obj[ this ] = type; - }); + elem.remove(); - return obj; + if ( display === "none" || display === "" ) { + display = "block"; + } + + elemdisplay[ nodeName ] = display; + } + + return elemdisplay[ nodeName ]; } + + + + +var rtable = /^t(?:able|d|h)$/i, + rroot = /^(?:body|html)$/i; + if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { - var elem = this[0]; + var elem = this[0], box; if ( options ) { return this.each(function( i ) { @@ -5939,10 +6829,26 @@ if ( "getBoundingClientRect" in document.documentElement ) { return jQuery.offset.bodyOffset( elem ); } - var box = elem.getBoundingClientRect(), doc = elem.ownerDocument, body = doc.body, docElem = doc.documentElement, - clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, - top = box.top + (self.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop, - left = box.left + (self.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft; + try { + box = elem.getBoundingClientRect(); + } catch(e) {} + + var doc = elem.ownerDocument, + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !box || !jQuery.contains( docElem, elem ) ) { + return box || { top: 0, left: 0 }; + } + + var body = doc.body, + win = getWindow(doc), + clientTop = docElem.clientTop || body.clientTop || 0, + clientLeft = docElem.clientLeft || body.clientLeft || 0, + scrollTop = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop ), + scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft), + top = box.top + scrollTop - clientTop, + left = box.left + scrollLeft - clientLeft; return { top: top, left: left }; }; @@ -5967,11 +6873,16 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.offset.initialize(); - var offsetParent = elem.offsetParent, prevOffsetParent = elem, - doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, - body = doc.body, defaultView = doc.defaultView, + var computedStyle, + offsetParent = elem.offsetParent, + prevOffsetParent = elem, + doc = elem.ownerDocument, + docElem = doc.documentElement, + body = doc.body, + defaultView = doc.defaultView, prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle, - top = elem.offsetTop, left = elem.offsetLeft; + top = elem.offsetTop, + left = elem.offsetLeft; while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) { @@ -5986,12 +6897,13 @@ if ( "getBoundingClientRect" in document.documentElement ) { top += elem.offsetTop; left += elem.offsetLeft; - if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.nodeName)) ) { + if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) { top += parseFloat( computedStyle.borderTopWidth ) || 0; left += parseFloat( computedStyle.borderLeftWidth ) || 0; } - prevOffsetParent = offsetParent, offsetParent = elem.offsetParent; + prevOffsetParent = offsetParent; + offsetParent = elem.offsetParent; } if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { @@ -6018,7 +6930,7 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.offset = { initialize: function() { - var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0, + var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0, html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } ); @@ -6032,12 +6944,16 @@ jQuery.offset = { this.doesNotAddBorder = (checkDiv.offsetTop !== 5); this.doesAddBorderForTableAndCells = (td.offsetTop === 5); - checkDiv.style.position = "fixed", checkDiv.style.top = "20px"; + checkDiv.style.position = "fixed"; + checkDiv.style.top = "20px"; + // safari subtracts parent border width here which is 5px this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15); checkDiv.style.position = checkDiv.style.top = ""; - innerDiv.style.overflow = "hidden", innerDiv.style.position = "relative"; + innerDiv.style.overflow = "hidden"; + innerDiv.style.position = "relative"; + this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5); this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop); @@ -6048,36 +6964,52 @@ jQuery.offset = { }, bodyOffset: function( body ) { - var top = body.offsetTop, left = body.offsetLeft; + var top = body.offsetTop, + left = body.offsetLeft; jQuery.offset.initialize(); if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) { - top += parseFloat( jQuery.curCSS(body, "marginTop", true) ) || 0; - left += parseFloat( jQuery.curCSS(body, "marginLeft", true) ) || 0; + top += parseFloat( jQuery.css(body, "marginTop") ) || 0; + left += parseFloat( jQuery.css(body, "marginLeft") ) || 0; } return { top: top, left: left }; }, setOffset: function( elem, options, i ) { + var position = jQuery.css( elem, "position" ); + // set position first, in-case top/left are set even on static elem - if ( /static/.test( jQuery.curCSS( elem, "position" ) ) ) { + if ( position === "static" ) { elem.style.position = "relative"; } - var curElem = jQuery( elem ), + + var curElem = jQuery( elem ), curOffset = curElem.offset(), - curTop = parseInt( jQuery.curCSS( elem, "top", true ), 10 ) || 0, - curLeft = parseInt( jQuery.curCSS( elem, "left", true ), 10 ) || 0; + curCSSTop = jQuery.css( elem, "top" ), + curCSSLeft = jQuery.css( elem, "left" ), + calculatePosition = (position === "absolute" && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1), + props = {}, curPosition = {}, curTop, curLeft; + + // need to be able to calculate position if either top or left is auto and position is absolute + if ( calculatePosition ) { + curPosition = curElem.position(); + } + + curTop = calculatePosition ? curPosition.top : parseInt( curCSSTop, 10 ) || 0; + curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0; if ( jQuery.isFunction( options ) ) { options = options.call( elem, i, curOffset ); } - var props = { - top: (options.top - curOffset.top) + curTop, - left: (options.left - curOffset.left) + curLeft - }; + if (options.top != null) { + props.top = (options.top - curOffset.top) + curTop; + } + if (options.left != null) { + props.left = (options.left - curOffset.left) + curLeft; + } if ( "using" in options ) { options.using.call( elem, props ); @@ -6101,17 +7033,17 @@ jQuery.fn.extend({ // Get correct offsets offset = this.offset(), - parentOffset = /^body|html$/i.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); + parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset(); // Subtract element margins // note: when an element has margin: auto the offsetLeft and marginLeft // are the same in Safari causing offset.left to incorrectly be 0 - offset.top -= parseFloat( jQuery.curCSS(elem, "marginTop", true) ) || 0; - offset.left -= parseFloat( jQuery.curCSS(elem, "marginLeft", true) ) || 0; + offset.top -= parseFloat( jQuery.css(elem, "marginTop") ) || 0; + offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0; // Add offsetParent borders - parentOffset.top += parseFloat( jQuery.curCSS(offsetParent[0], "borderTopWidth", true) ) || 0; - parentOffset.left += parseFloat( jQuery.curCSS(offsetParent[0], "borderLeftWidth", true) ) || 0; + parentOffset.top += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0; + parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0; // Subtract the two offsets return { @@ -6123,7 +7055,7 @@ jQuery.fn.extend({ offsetParent: function() { return this.map(function() { var offsetParent = this.offsetParent || document.body; - while ( offsetParent && (!/^body|html$/i.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { + while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) { offsetParent = offsetParent.offsetParent; } return offsetParent; @@ -6171,12 +7103,16 @@ jQuery.each( ["Left", "Top"], function( i, name ) { }); function getWindow( elem ) { - return ("scrollTo" in elem && elem.document) ? + return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 ? elem.defaultView || elem.parentWindow : false; } + + + + // Create innerHeight, innerWidth, outerHeight and outerWidth methods jQuery.each([ "Height", "Width" ], function( i, name ) { @@ -6185,14 +7121,14 @@ jQuery.each([ "Height", "Width" ], function( i, name ) { // innerHeight and innerWidth jQuery.fn["inner" + name] = function() { return this[0] ? - jQuery.css( this[0], type, false, "padding" ) : + parseFloat( jQuery.css( this[0], type, "padding" ) ) : null; }; // outerHeight and outerWidth jQuery.fn["outer" + name] = function( margin ) { return this[0] ? - jQuery.css( this[0], type, false, margin ? "margin" : "border" ) : + parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) : null; }; @@ -6210,32 +7146,34 @@ jQuery.each([ "Height", "Width" ], function( i, name ) { }); } - return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window? + if ( jQuery.isWindow( elem ) ) { // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode - elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] || - elem.document.body[ "client" + name ] : + return elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] || + elem.document.body[ "client" + name ]; - // Get document width or height - (elem.nodeType === 9) ? // is it a document - // Either scroll[Width/Height] or offset[Width/Height], whichever is greater - Math.max( - elem.documentElement["client" + name], - elem.body["scroll" + name], elem.documentElement["scroll" + name], - elem.body["offset" + name], elem.documentElement["offset" + name] - ) : + // Get document width or height + } else if ( elem.nodeType === 9 ) { + // Either scroll[Width/Height] or offset[Width/Height], whichever is greater + return Math.max( + elem.documentElement["client" + name], + elem.body["scroll" + name], elem.documentElement["scroll" + name], + elem.body["offset" + name], elem.documentElement["offset" + name] + ); - // Get or set width or height on the element - size === undefined ? - // Get width or height on the element - jQuery.css( elem, type ) : + // Get or set width or height on the element + } else if ( size === undefined ) { + var orig = jQuery.css( elem, type ), + ret = parseFloat( orig ); - // Set the width or height on the element (default to pixels if value is unitless) - this.css( type, typeof size === "string" ? size : size + "px" ); + return jQuery.isNaN( ret ) ? orig : ret; + + // Set the width or height on the element (default to pixels if value is unitless) + } else { + return this.css( type, typeof size === "string" ? size : size + "px" ); + } }; }); -// Expose jQuery to the global object -window.jQuery = window.$ = jQuery; + })(window); - diff --git a/js/jquery.min.js b/js/jquery.min.js index b170a78f8f..8f3ca2e2da 100644 --- a/js/jquery.min.js +++ b/js/jquery.min.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.4.2 + * jQuery JavaScript Library v1.4.4 * http://jquery.com/ * * Copyright 2010, John Resig @@ -11,145 +11,157 @@ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Sat Feb 13 22:33:48 2010 -0500 + * Date: Thu Nov 11 19:04:53 2010 -0500 */ -(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? -e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= -j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, -"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= -true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, -Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& -(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, -a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== -"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, -function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| -c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", -L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, -"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ -a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], -d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== -a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& -!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= -true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; -var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, -parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= -false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= -s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, -applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; -else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, -a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== -w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, -cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", -i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", -" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= -this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= -e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= -c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); -a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, -function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); -k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), -C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= -null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= -e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& -f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; -if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), -fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, -"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= -a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, -isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= -{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; -if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", -e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, -"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, -d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& -!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, -toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, -u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), -function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; -if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, -e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); -t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| -g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; -for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- -1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, -CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, -relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= -l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; -h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, -CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, -g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, -text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, -setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= -h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= -m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== -"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, -h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| -!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= -h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& -q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; -if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); -(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: -function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, -gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; -c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= -{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== -"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", -d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? -a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== -1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? -a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| +h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; +if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], +z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, +s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= +s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| +[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, +false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, +a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= +c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, +a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", +colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== +1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), +l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, +"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= +a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= +w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, +Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= +c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; +var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== +"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, +xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, +a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= +1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== +"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); +c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, +[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); +return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== +B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, +POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== +i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= +i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, +"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== +"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; +for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), +i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; +c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, +not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, +"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, -""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& -this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| -u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== -1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); -return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", -""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= -c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? -c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= -function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= -Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, -"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= -a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= -a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== -"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, -serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), -function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, -global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& -e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? -"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== -false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= -false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", -c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| -d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); -g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== -1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== -"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; -if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); -this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], -"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, -animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= -j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); -this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== -"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| -c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; -this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= -this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, -e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| -c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? -function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= -this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; -k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& -f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; -a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); -c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, -d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- -f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": -"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in -e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); - +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= +c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, +b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): +this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", +d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, +d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== +"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| +1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== +b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& +h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; +for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= +parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", +height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= +f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, +"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/js/json2.js b/js/json2.js index ecd5e959c3..e9ccc0d376 100644 --- a/js/json2.js +++ b/js/json2.js @@ -1,4 +1,483 @@ +alert('IMPORTANT: Remove this line from json2.js before deployment.'); /* -http://www.JSON.org/json2.js minified + http://www.JSON.org/json2.js + 2010-08-25 + + Public Domain. + + NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + + See http://www.JSON.org/js.html + + + 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. + + + 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 value + + 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. */ -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<length;i+=1){partial[i]=str(i,value)||'null';}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v;}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{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v);}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v;}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' ';}}else if(typeof space==='string'){indent=space;}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify');}return str('',{'':value});};}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){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);}cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);});}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,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j;}throw new SyntaxError('JSON.parse');};}}()); + +/*jslint evil: true, strict: false */ + +/*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) { + this.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 isFinite(this.valueOf()) ? + this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z' : null; + }; + + 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. + + text = String(text); + 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'); + }; + } +}()); diff --git a/js/json2.min.js b/js/json2.min.js new file mode 100644 index 0000000000..e84c5f70fc --- /dev/null +++ b/js/json2.min.js @@ -0,0 +1 @@ +alert("IMPORTANT: Remove this line from json2.js before deployment.");if(!this.JSON){this.JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};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<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}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{for(k in value){if(Object.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){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)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}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,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}()); \ No newline at end of file diff --git a/js/util.js b/js/util.js index ad8a44c82a..d929e91e2e 100644 --- a/js/util.js +++ b/js/util.js @@ -19,7 +19,8 @@ * @package StatusNet * @author Sarven Capadisli <csarven@status.net> * @author Evan Prodromou <evan@status.net> - * @copyright 2009 StatusNet, Inc. + * @author Brion Vibber <brion@status.net> + * @copyright 2009,2010 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/ */ @@ -33,6 +34,14 @@ var SN = { // StatusNet HTTP20x30x: [200, 201, 202, 203, 204, 205, 206, 300, 301, 302, 303, 304, 305, 306, 307] }, + /** + * @fixme are these worth the trouble? They seem to mostly just duplicate + * themselves while slightly obscuring the actual selector, so it's hard + * to pop over to the HTML and find something. + * + * In theory, minification could reduce them to shorter variable names, + * but at present that doesn't happen with yui-compressor. + */ S: { // Selector Disabled: 'disabled', Warning: 'warning', @@ -59,7 +68,42 @@ var SN = { // StatusNet } }, + /** + * Map of localized message strings exported to script from the PHP + * side via Action::getScriptMessages(). + * + * Retrieve them via SN.msg(); this array is an implementation detail. + * + * @access private + */ + messages: {}, + + /** + * Grabs a localized string that's been previously exported to us + * from server-side code via Action::getScriptMessages(). + * + * @example alert(SN.msg('coolplugin-failed')); + * + * @param {String} key: string key name to pull from message index + * @return matching localized message string + */ + msg: function(key) { + if (typeof SN.messages[key] == "undefined") { + return '[' + key + ']'; + } else { + return SN.messages[key]; + } + }, + U: { // Utils + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers on the new notice form. + * + * @param {jQuery} form: jQuery object whose first matching element is the form + * @access private + */ FormNoticeEnhancements: function(form) { if (jQuery.data(form[0], 'ElementData') === undefined) { MaxLength = form.find('#'+SN.C.S.NoticeTextCount).text(); @@ -76,6 +120,19 @@ var SN = { // StatusNet SN.U.Counter(form); }); + var delayedUpdate= function(e) { + // Cut and paste events fire *before* the operation, + // so we need to trigger an update in a little bit. + // This would be so much easier if the 'change' event + // actually fired every time the value changed. :P + window.setTimeout(function() { + SN.U.Counter(form); + }, 50); + }; + // Note there's still no event for mouse-triggered 'delete'. + NDT.bind('cut', delayedUpdate) + .bind('paste', delayedUpdate); + NDT.bind('keydown', function(e) { SN.U.SubmitOnReturn(e, form); }); @@ -89,6 +146,17 @@ var SN = { // StatusNet } }, + /** + * To be called from keydown event handler on the notice import form. + * Checks if return or enter key was pressed, and if so attempts to + * submit the form and cancel standard processing of the enter key. + * + * @param {Event} event + * @param {jQuery} el: jQuery object whose first element is the notice posting form + * + * @return {boolean} whether to cancel the event? Does this actually pass through? + * @access private + */ SubmitOnReturn: function(event, el) { if (event.keyCode == 13 || event.keyCode == 10) { el.submit(); @@ -101,6 +169,20 @@ var SN = { // StatusNet return true; }, + /** + * To be called from event handlers on the notice import form. + * Triggers an update of the remaining-characters counter. + * + * Additional counter updates will be suppressed during the + * next half-second to avoid flooding the layout engine with + * updates, followed by another automatic check. + * + * The maximum length is pulled from data established by + * FormNoticeEnhancements. + * + * @param {jQuery} form: jQuery object whose first element is the notice posting form + * @access private + */ Counter: function(form) { SN.C.I.FormNoticeCurrent = form; @@ -134,10 +216,24 @@ var SN = { // StatusNet } }, + /** + * Pull the count of characters in the current edit field. + * Plugins replacing the edit control may need to override this. + * + * @param {jQuery} form: jQuery object whose first element is the notice posting form + * @return number of chars + */ CharacterCount: function(form) { return form.find('#'+SN.C.S.NoticeDataText).val().length; }, + /** + * Called internally after the counter update blackout period expires; + * runs another update to make sure we didn't miss anything. + * + * @param {jQuery} form: jQuery object whose first element is the notice posting form + * @access private + */ ClearCounterBlackout: function(form) { // Allow keyup events to poke the counter again SN.C.I.CounterBlackout = false; @@ -145,11 +241,47 @@ var SN = { // StatusNet SN.U.Counter(form); }, + /** + * Helper function to rewrite default HTTP form action URLs to HTTPS + * so we can actually fetch them when on an SSL page in ssl=sometimes + * mode. + * + * It would be better to output URLs that didn't hardcode protocol + * and hostname in the first place... + * + * @param {String} url + * @return string + */ + RewriteAjaxAction: function(url) { + // Quick hack: rewrite AJAX submits to HTTPS if they'd fail otherwise. + if (document.location.protocol == 'https:' && url.substr(0, 5) == 'http:') { + return url.replace(/^http:\/\/[^:\/]+/, 'https://' + document.location.host); + } else { + return url; + } + }, + + /** + * Grabs form data and submits it asynchronously, with 'ajax=1' + * parameter added to the rest. + * + * If a successful response includes another form, that form + * will be extracted and copied in, replacing the original form. + * If there's no form, the first paragraph will be used. + * + * @fixme can sometimes explode confusingly if returnd data is bogus + * @fixme error handling is pretty vague + * @fixme can't submit file uploads + * + * @param {jQuery} form: jQuery object whose first element is a form + * + * @access public + */ FormXHR: function(form) { $.ajax({ type: 'POST', dataType: 'xml', - url: form.attr('action'), + url: SN.U.RewriteAjaxAction(form.attr('action')), data: form.serialize() + '&ajax=1', beforeSend: function(xhr) { form @@ -173,9 +305,62 @@ var SN = { // StatusNet }); }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers for special-cased async submission of the + * notice-posting form, including some pre-post validation. + * + * Unlike FormXHR() this does NOT submit the form immediately! + * It sets up event handlers so that any method of submitting the + * form (click on submit button, enter, submit() etc) will trigger + * it properly. + * + * Also unlike FormXHR(), this system will use a hidden iframe + * automatically to handle file uploads via <input type="file"> + * controls. + * + * @fixme tl;dr + * @fixme vast swaths of duplicate code and really long variable names clutter this function up real bad + * @fixme error handling is unreliable + * @fixme cookieValue is a global variable, but probably shouldn't be + * @fixme saving the location cache cookies should be split out + * @fixme some error messages are hardcoded english: needs i18n + * @fixme special-case for bookmarklet is confusing and uses a global var "self". Is this ok? + * + * @param {jQuery} form: jQuery object whose first element is a form + * + * @access public + */ FormNoticeXHR: function(form) { SN.C.I.NoticeDataGeo = {}; form.append('<input type="hidden" name="ajax" value="1"/>'); + + // Make sure we don't have a mixed HTTP/HTTPS submission... + form.attr('action', SN.U.RewriteAjaxAction(form.attr('action'))); + + /** + * Show a response feedback bit under the new-notice dialog. + * + * @param {String} cls: CSS class name to use ('error' or 'success') + * @param {String} text + * @access private + */ + var showFeedback = function(cls, text) { + form.append( + $('<p class="form_response"></p>') + .addClass(cls) + .text(text) + ); + }; + + /** + * Hide the previous response feedback, if any. + */ + var removeFeedback = function() { + form.find('.form_response').remove(); + }; + form.ajaxForm({ dataType: 'xml', timeout: '60000', @@ -222,13 +407,15 @@ var SN = { // StatusNet .find('#'+SN.C.S.NoticeActionSubmit) .removeClass(SN.C.S.Disabled) .removeAttr(SN.C.S.Disabled, SN.C.S.Disabled); - form.find('.form_response').remove(); + removeFeedback(); if (textStatus == 'timeout') { - form.append('<p class="form_response error">Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.</p>'); + // @fixme i18n + showFeedback('error', 'Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.'); } else { - if ($('.'+SN.C.S.Error, xhr.responseXML).length > 0) { - form.append(document._importNode($('.'+SN.C.S.Error, xhr.responseXML)[0], true)); + var response = SN.U.GetResponseXML(xhr); + if ($('.'+SN.C.S.Error, response).length > 0) { + form.append(document._importNode($('.'+SN.C.S.Error, response)[0], true)); } else { if (parseInt(xhr.status) === 0 || jQuery.inArray(parseInt(xhr.status), SN.C.I.HTTP20x30x) >= 0) { @@ -238,28 +425,27 @@ var SN = { // StatusNet SN.U.FormNoticeEnhancements(form); } else { - form.append('<p class="form_response error">(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.</p>'); + // @fixme i18n + showFeedback('error', '(Sorry! We had trouble sending your notice ('+xhr.status+' '+xhr.statusText+'). Please report the problem to the site administrator if this happens again.'); } } } }, success: function(data, textStatus) { - form.find('.form_response').remove(); - var result; - if ($('#'+SN.C.S.Error, data).length > 0) { - result = document._importNode($('p', data)[0], true); - result = result.textContent || result.innerHTML; - form.append('<p class="form_response error">'+result+'</p>'); + removeFeedback(); + var errorResult = $('#'+SN.C.S.Error, data); + if (errorResult.length > 0) { + showFeedback('error', errorResult.text()); } else { if($('body')[0].id == 'bookmarklet') { + // @fixme self is not referenced anywhere? self.close(); } - if ($('#'+SN.C.S.CommandResult, data).length > 0) { - result = document._importNode($('p', data)[0], true); - result = result.textContent || result.innerHTML; - form.append('<p class="form_response success">'+result+'</p>'); + var commandResult = $('#'+SN.C.S.CommandResult, data); + if (commandResult.length > 0) { + showFeedback('success', commandResult.text()); } else { // New notice post was successful. If on our timeline, show it! @@ -288,9 +474,7 @@ var SN = { // StatusNet else { // Not on a timeline that this belongs on? // Just show a success message. - result = document._importNode($('title', data)[0], true); - result_title = result.textContent || result.innerHTML; - form.append('<p class="form_response success">'+result_title+'</p>'); + showFeedback('success', $('title', data).text()); } } form.resetForm(); @@ -317,12 +501,57 @@ var SN = { // StatusNet }); }, + /** + * Fetch an XML DOM from an XHR's response data. + * + * Works around unavailable responseXML when document.domain + * has been modified by Meteor or other tools, in some but not + * all browsers. + * + * @param {XMLHTTPRequest} xhr + * @return DOMDocument + */ + GetResponseXML: function(xhr) { + try { + return xhr.responseXML; + } catch (e) { + return (new DOMParser()).parseFromString(xhr.responseText, "text/xml"); + } + }, + + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers on all visible notice's reply buttons to + * tweak the new-notice form with needed variables and focus it + * when pushed. + * + * (This replaces the default reply button behavior to submit + * directly to a form which comes back with a specialized page + * with the form data prefilled.) + * + * @access private + */ NoticeReply: function() { if ($('#'+SN.C.S.NoticeDataText).length > 0 && $('#content .notice_reply').length > 0) { $('#content .notice').each(function() { SN.U.NoticeReplyTo($(this)); }); } }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers on the given notice's reply button to + * tweak the new-notice form with needed variables and focus it + * when pushed. + * + * (This replaces the default reply button behavior to submit + * directly to a form which comes back with a specialized page + * with the form data prefilled.) + * + * @param {jQuery} notice: jQuery object containing one or more notices + * @access private + */ NoticeReplyTo: function(notice) { notice.find('.notice_reply').live('click', function() { var nickname = ($('.author .nickname', notice).length > 0) ? $($('.author .nickname', notice)[0]) : $('.author .nickname.uid'); @@ -331,6 +560,16 @@ var SN = { // StatusNet }); }, + /** + * Updates the new notice posting form with bits for replying to the + * given user. Adds replyto parameter to the form, and a "@foo" to the + * text area. + * + * @fixme replyto is a global variable, but probably shouldn't be + * + * @param {String} nick + * @param {String} id + */ NoticeReplySet: function(nick,id) { if (nick.match(SN.C.I.PatternUsername)) { var text = $('#'+SN.C.S.NoticeDataText); @@ -348,11 +587,25 @@ var SN = { // StatusNet } }, + /** + * Setup function -- DOES NOT apply immediately. + * + * Sets up event handlers for favor/disfavor forms to submit via XHR. + * Uses 'live' rather than 'bind', so applies to future as well as present items. + */ NoticeFavor: function() { $('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; }); $('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; }); }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers for repeat forms to toss up a confirmation + * popout before submitting. + * + * Uses 'live' rather than 'bind', so applies to future as well as present items. + */ NoticeRepeat: function() { $('.form_repeat').live('click', function(e) { e.preventDefault(); @@ -362,6 +615,22 @@ var SN = { // StatusNet }); }, + /** + * Shows a confirmation dialog box variant of the repeat button form. + * This seems to use a technique where the repeat form contains + * _both_ a standalone button _and_ text and buttons for a dialog. + * The dialog will close after its copy of the form is submitted, + * or if you click its 'close' button. + * + * The dialog is created by duplicating the original form and changing + * its style; while clever, this is hard to generalize and probably + * duplicates a lot of unnecessary HTML output. + * + * @fixme create confirmation dialogs through a generalized interface + * that can be reused instead of hardcoded text and styles. + * + * @param {jQuery} form + */ NoticeRepeatConfirmation: function(form) { var submit_i = form.find('.submit'); @@ -395,12 +664,28 @@ var SN = { // StatusNet }); }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Goes through all notices currently displayed and sets up attachment + * handling if needed. + */ NoticeAttachments: function() { $('.notice a.attachment').each(function() { SN.U.NoticeWithAttachment($(this).closest('.notice')); }); }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up special attachment link handling if needed. Currently this + * consists only of making the "more" button used for OStatus message + * cropping turn into an auto-expansion button that loads the full + * text from an attachment file. + * + * @param {jQuery} notice + */ NoticeWithAttachment: function(notice) { if (notice.find('.attachment').length === 0) { return; @@ -416,65 +701,21 @@ var SN = { // StatusNet }); return false; - }); - } - else { - $.fn.jOverlay.options = { - method : 'GET', - data : '', - url : '', - color : '#000', - opacity : '0.6', - zIndex : 9999, - center : false, - imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', - bgClickToClose : true, - success : function() { - $('#jOverlayContent').append('<button class="close">×</button>'); - $('#jOverlayContent button').click($.closeOverlay); - }, - timeout : 0, - autoHide : true, - css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} - }; - - notice.find('a.attachment').click(function() { - var attachId = ($(this).attr('id').substring('attachment'.length + 1)); - if (attachId) { - $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); - return false; - } - }); - - if ($('#shownotice').length == 0) { - var t; - notice.find('a.thumbnail').hover( - function() { - var anchor = $(this); - $('a.thumbnail').children('img').hide(); - anchor.closest(".entry-title").addClass('ov'); - - if (anchor.children('img').length === 0) { - t = setTimeout(function() { - $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { - anchor.append(data); - }); - }, 500); - } - else { - anchor.children('img').show(); - } - }, - function() { - clearTimeout(t); - $('a.thumbnail').children('img').hide(); - $(this).closest('.entry-title').removeClass('ov'); - } - ); - } + }).attr('title', SN.msg('showmore_tooltip')); } }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Sets up event handlers for the file-attachment widget in the + * new notice form. When a file is selected, a box will be added + * below the text input showing the filename and, if supported + * by the browser, a thumbnail preview. + * + * This preview box will also allow removing the attachment + * prior to posting. + */ NoticeDataAttach: function() { NDA = $('#'+SN.C.S.NoticeDataAttach); NDA.change(function() { @@ -492,9 +733,115 @@ var SN = { // StatusNet return false; }); + if (typeof this.files == "object") { + // Some newer browsers will let us fetch the files for preview. + for (var i = 0; i < this.files.length; i++) { + SN.U.PreviewAttach(this.files[i]); + } + } }); }, + /** + * For browsers with FileAPI support: make a thumbnail if possible, + * and append it into the attachment display widget. + * + * Known good: + * - Firefox 3.6.6, 4.0b7 + * - Chrome 8.0.552.210 + * + * Known ok metadata, can't get contents: + * - Safari 5.0.2 + * + * Known fail: + * - Opera 10.63, 11 beta (no input.files interface) + * + * @param {File} file + * + * @todo use configured thumbnail size + * @todo detect pixel size? + * @todo should we render a thumbnail to a canvas and then use the smaller image? + */ + PreviewAttach: function(file) { + var tooltip = file.type + ' ' + Math.round(file.size / 1024) + 'KB'; + var preview = true; + + var blobAsDataURL; + if (typeof window.createObjectURL != "undefined") { + /** + * createObjectURL lets us reference the file directly from an <img> + * This produces a compact URL with an opaque reference to the file, + * which we can reference immediately. + * + * - Firefox 3.6.6: no + * - Firefox 4.0b7: no + * - Safari 5.0.2: no + * - Chrome 8.0.552.210: works! + */ + blobAsDataURL = function(blob, callback) { + callback(window.createObjectURL(blob)); + } + } else if (typeof window.FileReader != "undefined") { + /** + * FileAPI's FileReader can build a data URL from a blob's contents, + * but it must read the file and build it asynchronously. This means + * we'll be passing a giant data URL around, which may be inefficient. + * + * - Firefox 3.6.6: works! + * - Firefox 4.0b7: works! + * - Safari 5.0.2: no + * - Chrome 8.0.552.210: works! + */ + blobAsDataURL = function(blob, callback) { + var reader = new FileReader(); + reader.onload = function(event) { + callback(reader.result); + } + reader.readAsDataURL(blob); + } + } else { + preview = false; + } + + var imageTypes = ['image/png', 'image/jpeg', 'image/gif', 'image/svg+xml']; + if ($.inArray(file.type, imageTypes) == -1) { + // We probably don't know how to show the file. + preview = false; + } + + var maxSize = 8 * 1024 * 1024; + if (file.size > maxSize) { + // Don't kill the browser trying to load some giant image. + preview = false; + } + + if (preview) { + blobAsDataURL(file, function(url) { + var img = $('<img>') + .attr('title', tooltip) + .attr('alt', tooltip) + .attr('src', url) + .attr('style', 'height: 120px'); + $('#'+SN.C.S.NoticeDataAttachSelected).append(img); + }); + } else { + var img = $('<div></div>').text(tooltip); + $('#'+SN.C.S.NoticeDataAttachSelected).append(img); + } + }, + + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Initializes state for the location-lookup features in the + * new-notice form. Seems to set up some event handlers for + * triggering lookups and using the new values. + * + * @fixme tl;dr + * @fixme there's not good visual state update here, so users have a + * hard time figuring out if it's working or fixing if it's wrong. + * + */ NoticeLocationAttach: function() { var NLat = $('#'+SN.C.S.NoticeLat).val(); var NLon = $('#'+SN.C.S.NoticeLon).val(); @@ -652,6 +999,18 @@ var SN = { // StatusNet } }, + /** + * Setup function -- DOES NOT trigger actions immediately. + * + * Initializes event handlers for the "Send direct message" link on + * profile pages, setting it up to display a dialog box when clicked. + * + * Unlike the repeat confirmation form, this appears to fetch + * the form _from the original link target_, so the form itself + * doesn't need to be in the current document. + * + * @fixme breaks ability to open link in new window? + */ NewDirectMessage: function() { NDM = $('.entity_send-a-message a'); NDM.attr({'href':NDM.attr('href')+'&ajax=1'}); @@ -680,6 +1039,15 @@ var SN = { // StatusNet }); }, + /** + * Return a date object with the current local time on the + * given year, month, and day. + * + * @param {number} year: 4-digit year + * @param {number} month: 0 == January + * @param {number} day: 1 == 1 + * @return {Date} + */ GetFullYear: function(year, month, day) { var date = new Date(); date.setFullYear(year, month, day); @@ -687,7 +1055,22 @@ var SN = { // StatusNet return date; }, + /** + * Some sort of object interface for storing some structured + * information in a cookie. + * + * Appears to be used to save the last-used login nickname? + * That's something that browsers usually take care of for us + * these days, do we really need to do it? Does anything else + * use this interface? + * + * @fixme what is this? + * @fixme should this use non-cookie local storage when available? + */ StatusNetInstance: { + /** + * @fixme what is this? + */ Set: function(value) { var SNI = SN.U.StatusNetInstance.Get(); if (SNI !== null) { @@ -703,6 +1086,9 @@ var SN = { // StatusNet }); }, + /** + * @fixme what is this? + */ Get: function() { var cookieValue = $.cookie(SN.C.S.StatusNetInstance); if (cookieValue !== null) { @@ -711,6 +1097,9 @@ var SN = { // StatusNet return null; }, + /** + * @fixme what is this? + */ Delete: function() { $.cookie(SN.C.S.StatusNetInstance, null); } @@ -722,6 +1111,9 @@ var SN = { // StatusNet * * @fixme this should be done in a saner way, with machine-readable * info about what page we're looking at. + * + * @param {DOMElement} notice: HTML chunk with formatted notice + * @return boolean */ belongsOnTimeline: function(notice) { var action = $("body").attr('id'); @@ -750,6 +1142,14 @@ var SN = { // StatusNet }, Init: { + /** + * If user is logged in, run setup code for the new notice form: + * + * - char counter + * - AJAX submission + * - location events + * - file upload events + */ NoticeForm: function() { if ($('body.user_in').length > 0) { SN.U.NoticeLocationAttach(); @@ -763,6 +1163,12 @@ var SN = { // StatusNet } }, + /** + * Run setup code for notice timeline views items: + * + * - AJAX submission for fave/repeat/reply (if logged in) + * - Attachment link extras ('more' links) + */ Notices: function() { if ($('body.user_in').length > 0) { SN.U.NoticeFavor(); @@ -773,6 +1179,12 @@ var SN = { // StatusNet SN.U.NoticeAttachments(); }, + /** + * Run setup code for user & group profile page header area if logged in: + * + * - AJAX submission for sub/unsub/join/leave/nudge + * - AJAX form popup for direct-message + */ EntityActions: function() { if ($('body.user_in').length > 0) { $('.form_user_subscribe').live('click', function() { SN.U.FormXHR($(this)); return false; }); @@ -785,6 +1197,14 @@ var SN = { // StatusNet } }, + /** + * Run setup code for login form: + * + * - loads saved last-used-nickname from cookie + * - sets event handler to save nickname to cookie on submit + * + * @fixme is this necessary? Browsers do their own form saving these days. + */ Login: function() { if (SN.U.StatusNetInstance.Get() !== null) { var nickname = SN.U.StatusNetInstance.Get().Nickname; @@ -801,6 +1221,13 @@ var SN = { // StatusNet } }; +/** + * Run initialization functions on DOM-ready. + * + * Note that if we're waiting on other scripts to load, this won't happen + * until that's done. To load scripts asynchronously without delaying setup, + * don't start them loading until after DOM-ready time! + */ $(document).ready(function(){ if ($('.'+SN.C.S.FormNotice).length > 0) { SN.Init.NoticeForm(); @@ -816,3 +1243,271 @@ $(document).ready(function(){ } }); +// Formerly in xbImportNode.js +// @fixme put it back there -- since we're minifying we can concat in the makefile now + +/* is this stuff defined? */ +if (!document.ELEMENT_NODE) { + document.ELEMENT_NODE = 1; + document.ATTRIBUTE_NODE = 2; + document.TEXT_NODE = 3; + document.CDATA_SECTION_NODE = 4; + document.ENTITY_REFERENCE_NODE = 5; + document.ENTITY_NODE = 6; + document.PROCESSING_INSTRUCTION_NODE = 7; + document.COMMENT_NODE = 8; + document.DOCUMENT_NODE = 9; + document.DOCUMENT_TYPE_NODE = 10; + document.DOCUMENT_FRAGMENT_NODE = 11; + document.NOTATION_NODE = 12; +} + +document._importNode = function(node, allChildren) { + /* find the node type to import */ + switch (node.nodeType) { + case document.ELEMENT_NODE: + /* create a new element */ + var newNode = document.createElement(node.nodeName); + /* does the node have any attributes to add? */ + if (node.attributes && node.attributes.length > 0) + /* add all of the attributes */ + for (var i = 0, il = node.attributes.length; i < il;) { + if (node.attributes[i].nodeName == 'class') { + newNode.className = node.getAttribute(node.attributes[i++].nodeName); + } else { + newNode.setAttribute(node.attributes[i].nodeName, node.getAttribute(node.attributes[i++].nodeName)); + } + } + /* are we going after children too, and does the node have any? */ + if (allChildren && node.childNodes && node.childNodes.length > 0) + /* recursively get all of the child nodes */ + for (var i = 0, il = node.childNodes.length; i < il;) + newNode.appendChild(document._importNode(node.childNodes[i++], allChildren)); + return newNode; + break; + case document.TEXT_NODE: + case document.CDATA_SECTION_NODE: + case document.COMMENT_NODE: + return document.createTextNode(node.nodeValue); + break; + } +}; + +// @fixme put this next bit back too -- since we're minifying we can concat in the makefile now +// 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 +(function() { + // We are already defined. Hooray! + if (window.google && google.gears) { + return; + } + + var factory = null; + + // Firefox + if (typeof GearsFactory != 'undefined') { + factory = new GearsFactory(); + } else { + // IE + try { + factory = new ActiveXObject('Gears.Factory'); + // privateSetGlobalObject is only required and supported on WinCE. + if (factory.getBuildInfo().indexOf('ie_mobile') != -1) { + factory.privateSetGlobalObject(this); + } + } catch (e) { + // Safari + if ((typeof navigator.mimeTypes != 'undefined') && navigator.mimeTypes["application/x-googlegears"]) { + factory = document.createElement("object"); + factory.style.display = "none"; + factory.width = 0; + factory.height = 0; + factory.type = "application/x-googlegears"; + document.documentElement.appendChild(factory); + } + } + } + + // *Do not* define any objects if Gears is not installed. This mimics the + // behavior of Gears defining the objects in the future. + if (!factory) { + return; + } + + // Now set up the objects, being careful not to overwrite anything. + // + // Note: In Internet Explorer for Windows Mobile, you can't add properties to + // the window object. However, global objects are automatically added as + // properties of the window object in all browsers. + if (!window.google) { + google = {}; + } + + if (!google.gears) { + google.gears = {factory: factory}; + } +})(); +// -- END GEARS_INIT + +var GearsGeoLocation = (function() { + // -- PRIVATE + var geo = google.gears.factory.create('beta.geolocation'); + + var wrapSuccess = function(callback, self) { // wrap it for lastPosition love + return function(position) { + callback(position); + self.lastPosition = position; + }; + }; + + // -- PUBLIC + return { + shim: true, + + type: "Gears", + + lastPosition: null, + + getCurrentPosition: function(successCallback, errorCallback, options) { + var self = this; + var sc = wrapSuccess(successCallback, self); + geo.getCurrentPosition(sc, errorCallback, options); + }, + + watchPosition: function(successCallback, errorCallback, options) { + geo.watchPosition(successCallback, errorCallback, options); + }, + + clearWatch: function(watchId) { + geo.clearWatch(watchId); + }, + + getPermission: function(siteName, imageUrl, extraMessage) { + geo.getPermission(siteName, imageUrl, extraMessage); + } + + }; +}); + +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(); + +})(); +} diff --git a/js/util.min.js b/js/util.min.js new file mode 100644 index 0000000000..854d1d5b0d --- /dev/null +++ b/js/util.min.js @@ -0,0 +1 @@ +var SN={C:{I:{CounterBlackout:false,MaxLength:140,PatternUsername:/^[0-9a-zA-Z\-_.]*$/,HTTP20x30x:[200,201,202,203,204,205,206,300,301,302,303,304,305,306,307]},S:{Disabled:"disabled",Warning:"warning",Error:"error",Success:"success",Processing:"processing",CommandResult:"command_result",FormNotice:"form_notice",NoticeDataText:"notice_data-text",NoticeTextCount:"notice_text-count",NoticeInReplyTo:"notice_in-reply-to",NoticeDataAttach:"notice_data-attach",NoticeDataAttachSelected:"notice_data-attach_selected",NoticeActionSubmit:"notice_action-submit",NoticeLat:"notice_data-lat",NoticeLon:"notice_data-lon",NoticeLocationId:"notice_data-location_id",NoticeLocationNs:"notice_data-location_ns",NoticeGeoName:"notice_data-geo_name",NoticeDataGeo:"notice_data-geo",NoticeDataGeoCookie:"NoticeDataGeo",NoticeDataGeoSelected:"notice_data-geo_selected",StatusNetInstance:"StatusNetInstance"}},messages:{},msg:function(a){if(typeof SN.messages[a]=="undefined"){return"["+a+"]"}else{return SN.messages[a]}},U:{FormNoticeEnhancements:function(b){if(jQuery.data(b[0],"ElementData")===undefined){MaxLength=b.find("#"+SN.C.S.NoticeTextCount).text();if(typeof(MaxLength)=="undefined"){MaxLength=SN.C.I.MaxLength}jQuery.data(b[0],"ElementData",{MaxLength:MaxLength});SN.U.Counter(b);NDT=b.find("#"+SN.C.S.NoticeDataText);NDT.bind("keyup",function(c){SN.U.Counter(b)});var a=function(c){window.setTimeout(function(){SN.U.Counter(b)},50)};NDT.bind("cut",a).bind("paste",a);NDT.bind("keydown",function(c){SN.U.SubmitOnReturn(c,b)})}else{b.find("#"+SN.C.S.NoticeTextCount).text(jQuery.data(b[0],"ElementData").MaxLength)}if($("body")[0].id!="conversation"&&window.location.hash.length===0&&$(window).scrollTop()==0){b.find("textarea").focus()}},SubmitOnReturn:function(b,a){if(b.keyCode==13||b.keyCode==10){a.submit();b.preventDefault();b.stopPropagation();$("#"+a[0].id+" #"+SN.C.S.NoticeDataText).blur();$("body").focus();return false}return true},Counter:function(d){SN.C.I.FormNoticeCurrent=d;var b=jQuery.data(d[0],"ElementData").MaxLength;if(b<=0){return}var c=b-SN.U.CharacterCount(d);var a=d.find("#"+SN.C.S.NoticeTextCount);if(c.toString()!=a.text()){if(!SN.C.I.CounterBlackout||c===0){if(a.text()!=String(c)){a.text(c)}if(c<0){d.addClass(SN.C.S.Warning)}else{d.removeClass(SN.C.S.Warning)}if(!SN.C.I.CounterBlackout){SN.C.I.CounterBlackout=true;SN.C.I.FormNoticeCurrent=d;window.setTimeout("SN.U.ClearCounterBlackout(SN.C.I.FormNoticeCurrent);",500)}}}},CharacterCount:function(a){return a.find("#"+SN.C.S.NoticeDataText).val().length},ClearCounterBlackout:function(a){SN.C.I.CounterBlackout=false;SN.U.Counter(a)},RewriteAjaxAction:function(a){if(document.location.protocol=="https:"&&a.substr(0,5)=="http:"){return a.replace(/^http:\/\/[^:\/]+/,"https://"+document.location.host)}else{return a}},FormXHR:function(a){$.ajax({type:"POST",dataType:"xml",url:SN.U.RewriteAjaxAction(a.attr("action")),data:a.serialize()+"&ajax=1",beforeSend:function(b){a.addClass(SN.C.S.Processing).find(".submit").addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled)},error:function(c,d,b){alert(b||d)},success:function(b,c){if(typeof($("form",b)[0])!="undefined"){form_new=document._importNode($("form",b)[0],true);a.replaceWith(form_new)}else{a.replaceWith(document._importNode($("p",b)[0],true))}}})},FormNoticeXHR:function(b){SN.C.I.NoticeDataGeo={};b.append('<input type="hidden" name="ajax" value="1"/>');b.attr("action",SN.U.RewriteAjaxAction(b.attr("action")));var c=function(d,e){b.append($('<p class="form_response"></p>').addClass(d).text(e))};var a=function(){b.find(".form_response").remove()};b.ajaxForm({dataType:"xml",timeout:"60000",beforeSend:function(d){if(b.find("#"+SN.C.S.NoticeDataText)[0].value.length===0){b.addClass(SN.C.S.Warning);return false}b.addClass(SN.C.S.Processing).find("#"+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled);SN.C.I.NoticeDataGeo.NLat=$("#"+SN.C.S.NoticeLat).val();SN.C.I.NoticeDataGeo.NLon=$("#"+SN.C.S.NoticeLon).val();SN.C.I.NoticeDataGeo.NLNS=$("#"+SN.C.S.NoticeLocationNs).val();SN.C.I.NoticeDataGeo.NLID=$("#"+SN.C.S.NoticeLocationId).val();SN.C.I.NoticeDataGeo.NDG=$("#"+SN.C.S.NoticeDataGeo).attr("checked");cookieValue=$.cookie(SN.C.S.NoticeDataGeoCookie);if(cookieValue!==null&&cookieValue!="disabled"){cookieValue=JSON.parse(cookieValue);SN.C.I.NoticeDataGeo.NLat=$("#"+SN.C.S.NoticeLat).val(cookieValue.NLat).val();SN.C.I.NoticeDataGeo.NLon=$("#"+SN.C.S.NoticeLon).val(cookieValue.NLon).val();if($("#"+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS)){SN.C.I.NoticeDataGeo.NLNS=$("#"+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val();SN.C.I.NoticeDataGeo.NLID=$("#"+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val()}}if(cookieValue=="disabled"){SN.C.I.NoticeDataGeo.NDG=$("#"+SN.C.S.NoticeDataGeo).attr("checked",false).attr("checked")}else{SN.C.I.NoticeDataGeo.NDG=$("#"+SN.C.S.NoticeDataGeo).attr("checked",true).attr("checked")}return true},error:function(f,g,e){b.removeClass(SN.C.S.Processing).find("#"+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled).removeAttr(SN.C.S.Disabled,SN.C.S.Disabled);a();if(g=="timeout"){c("error","Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.")}else{var d=SN.U.GetResponseXML(f);if($("."+SN.C.S.Error,d).length>0){b.append(document._importNode($("."+SN.C.S.Error,d)[0],true))}else{if(parseInt(f.status)===0||jQuery.inArray(parseInt(f.status),SN.C.I.HTTP20x30x)>=0){b.resetForm().find("#"+SN.C.S.NoticeDataAttachSelected).remove();SN.U.FormNoticeEnhancements(b)}else{c("error","(Sorry! We had trouble sending your notice ("+f.status+" "+f.statusText+"). Please report the problem to the site administrator if this happens again.")}}}},success:function(i,k){a();var e=$("#"+SN.C.S.Error,i);if(e.length>0){c("error",e.text())}else{if($("body")[0].id=="bookmarklet"){self.close()}var d=$("#"+SN.C.S.CommandResult,i);if(d.length>0){c("success",d.text())}else{var h=document._importNode($("li",i)[0],true);var j=$("#notices_primary .notices");if(j.length>0&&SN.U.belongsOnTimeline(h)){if($("#"+h.id).length===0){var f=$("#"+SN.C.S.NoticeInReplyTo).val();var g="#notices_primary #notice-"+f;if($("body")[0].id=="conversation"){if(f.length>0&&$(g+" .notices").length<1){$(g).append('<ul class="notices"></ul>')}$($(g+" .notices")[0]).append(h)}else{j.prepend(h)}$("#"+h.id).css({display:"none"}).fadeIn(2500);SN.U.NoticeWithAttachment($("#"+h.id));SN.U.NoticeReplyTo($("#"+h.id))}}else{c("success",$("title",i).text())}}b.resetForm();b.find("#"+SN.C.S.NoticeInReplyTo).val("");b.find("#"+SN.C.S.NoticeDataAttachSelected).remove();SN.U.FormNoticeEnhancements(b)}},complete:function(d,e){b.removeClass(SN.C.S.Processing).find("#"+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled).removeClass(SN.C.S.Disabled);$("#"+SN.C.S.NoticeLat).val(SN.C.I.NoticeDataGeo.NLat);$("#"+SN.C.S.NoticeLon).val(SN.C.I.NoticeDataGeo.NLon);if($("#"+SN.C.S.NoticeLocationNs)){$("#"+SN.C.S.NoticeLocationNs).val(SN.C.I.NoticeDataGeo.NLNS);$("#"+SN.C.S.NoticeLocationId).val(SN.C.I.NoticeDataGeo.NLID)}$("#"+SN.C.S.NoticeDataGeo).attr("checked",SN.C.I.NoticeDataGeo.NDG)}})},GetResponseXML:function(b){try{return b.responseXML}catch(a){return(new DOMParser()).parseFromString(b.responseText,"text/xml")}},NoticeReply:function(){if($("#"+SN.C.S.NoticeDataText).length>0&&$("#content .notice_reply").length>0){$("#content .notice").each(function(){SN.U.NoticeReplyTo($(this))})}},NoticeReplyTo:function(a){a.find(".notice_reply").live("click",function(){var b=($(".author .nickname",a).length>0)?$($(".author .nickname",a)[0]):$(".author .nickname.uid");SN.U.NoticeReplySet(b.text(),$($(".notice_id",a)[0]).text());return false})},NoticeReplySet:function(b,d){if(b.match(SN.C.I.PatternUsername)){var c=$("#"+SN.C.S.NoticeDataText);if(c.length>0){replyto="@"+b+" ";c.val(replyto+c.val().replace(RegExp(replyto,"i"),""));$("#"+SN.C.S.FormNotice+" #"+SN.C.S.NoticeInReplyTo).val(d);c[0].focus();if(c[0].setSelectionRange){var a=c.val().length;c[0].setSelectionRange(a,a)}}}},NoticeFavor:function(){$(".form_favor").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_disfavor").live("click",function(){SN.U.FormXHR($(this));return false})},NoticeRepeat:function(){$(".form_repeat").live("click",function(a){a.preventDefault();SN.U.NoticeRepeatConfirmation($(this));return false})},NoticeRepeatConfirmation:function(a){var c=a.find(".submit");var b=c.clone();b.addClass("submit_dialogbox").removeClass("submit");a.append(b);b.bind("click",function(){SN.U.FormXHR(a);return false});c.hide();a.addClass("dialogbox").append('<button class="close">×</button>').closest(".notice-options").addClass("opaque");a.find("button.close").click(function(){$(this).remove();a.removeClass("dialogbox").closest(".notice-options").removeClass("opaque");a.find(".submit_dialogbox").remove();a.find(".submit").show();return false})},NoticeAttachments:function(){$(".notice a.attachment").each(function(){SN.U.NoticeWithAttachment($(this).closest(".notice"))})},NoticeWithAttachment:function(b){if(b.find(".attachment").length===0){return}var a=b.find(".attachment.more");if(a.length>0){$(a[0]).click(function(){var c=$(this);c.addClass(SN.C.S.Processing);$.get(c.attr("href")+"/ajax",null,function(d){c.parent(".entry-content").html($(d).find("#attachment_view .entry-content").html())});return false}).attr("title",SN.msg("showmore_tooltip"))}},NoticeDataAttach:function(){NDA=$("#"+SN.C.S.NoticeDataAttach);NDA.change(function(){S='<div id="'+SN.C.S.NoticeDataAttachSelected+'" class="'+SN.C.S.Success+'"><code>'+$(this).val()+'</code> <button class="close">×</button></div>';NDAS=$("#"+SN.C.S.NoticeDataAttachSelected);if(NDAS.length>0){NDAS.replaceWith(S)}else{$("#"+SN.C.S.FormNotice).append(S)}$("#"+SN.C.S.NoticeDataAttachSelected+" button").click(function(){$("#"+SN.C.S.NoticeDataAttachSelected).remove();NDA.val("");return false});if(typeof this.files=="object"){for(var a=0;a<this.files.length;a++){SN.U.PreviewAttach(this.files[a])}}})},PreviewAttach:function(c){var d=c.type+" "+Math.round(c.size/1024)+"KB";var e=true;var g;if(typeof window.createObjectURL!="undefined"){g=function(h,i){i(window.createObjectURL(h))}}else{if(typeof window.FileReader!="undefined"){g=function(i,j){var h=new FileReader();h.onload=function(k){j(h.result)};h.readAsDataURL(i)}}else{e=false}}var a=["image/png","image/jpeg","image/gif","image/svg+xml"];if($.inArray(c.type,a)==-1){e=false}var f=8*1024*1024;if(c.size>f){e=false}if(e){g(c,function(i){var h=$("<img>").attr("title",d).attr("alt",d).attr("src",i).attr("style","height: 120px");$("#"+SN.C.S.NoticeDataAttachSelected).append(h)})}else{var b=$("<div></div>").text(d);$("#"+SN.C.S.NoticeDataAttachSelected).append(b)}},NoticeLocationAttach:function(){var c=$("#"+SN.C.S.NoticeLat).val();var h=$("#"+SN.C.S.NoticeLon).val();var d=$("#"+SN.C.S.NoticeLocationNs).val();var i=$("#"+SN.C.S.NoticeLocationId).val();var a=$("#"+SN.C.S.NoticeGeoName).text();var b=$("#"+SN.C.S.NoticeDataGeo);function e(){$("label[for="+SN.C.S.NoticeDataGeo+"]").attr("title",jQuery.trim($("label[for="+SN.C.S.NoticeDataGeo+"]").text())).removeClass("checked");$("#"+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.NoticeDataGeoCookie,"disabled",{path:"/"})}function j(k,l){$.getJSON(k,l,function(m){var n,o;if(typeof(m.location_ns)!="undefined"){$("#"+SN.C.S.NoticeLocationNs).val(m.location_ns);n=m.location_ns}if(typeof(m.location_id)!="undefined"){$("#"+SN.C.S.NoticeLocationId).val(m.location_id);o=m.location_id}if(typeof(m.name)=="undefined"){NLN_text=l.lat+";"+l.lon}else{NLN_text=m.name}$("label[for="+SN.C.S.NoticeDataGeo+"]").attr("title",NoticeDataGeo_text.ShareDisable+" ("+NLN_text+")");$("#"+SN.C.S.NoticeLat).val(l.lat);$("#"+SN.C.S.NoticeLon).val(l.lon);$("#"+SN.C.S.NoticeLocationNs).val(n);$("#"+SN.C.S.NoticeLocationId).val(o);$("#"+SN.C.S.NoticeDataGeo).attr("checked",true);var p={NLat:l.lat,NLon:l.lon,NLNS:n,NLID:o,NLN:NLN_text,NLNU:m.url,NDG:true};$.cookie(SN.C.S.NoticeDataGeoCookie,JSON.stringify(p),{path:"/"})})}if(b.length>0){if($.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){b.attr("checked",false)}else{b.attr("checked",true)}var f=$("#notice_data-geo_wrap");var g=f.attr("title");f.removeAttr("title");$("label[for="+SN.C.S.NoticeDataGeo+"]").attr("title",jQuery.trim($("label[for="+SN.C.S.NoticeDataGeo+"]").text()));b.change(function(){if($("#"+SN.C.S.NoticeDataGeo).attr("checked")===true||$.cookie(SN.C.S.NoticeDataGeoCookie)===null){$("label[for="+SN.C.S.NoticeDataGeo+"]").attr("title",NoticeDataGeo_text.ShareDisable).addClass("checked");if($.cookie(SN.C.S.NoticeDataGeoCookie)===null||$.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){if(navigator.geolocation){navigator.geolocation.getCurrentPosition(function(m){$("#"+SN.C.S.NoticeLat).val(m.coords.latitude);$("#"+SN.C.S.NoticeLon).val(m.coords.longitude);var n={lat:m.coords.latitude,lon:m.coords.longitude,token:$("#token").val()};j(g,n)},function(m){switch(m.code){case m.PERMISSION_DENIED:e();break;case m.TIMEOUT:$("#"+SN.C.S.NoticeDataGeo).attr("checked",false);break}},{timeout:10000})}else{if(c.length>0&&h.length>0){var k={lat:c,lon:h,token:$("#token").val()};j(g,k)}else{e();$("#"+SN.C.S.NoticeDataGeo).remove();$("label[for="+SN.C.S.NoticeDataGeo+"]").remove()}}}else{var l=JSON.parse($.cookie(SN.C.S.NoticeDataGeoCookie));$("#"+SN.C.S.NoticeLat).val(l.NLat);$("#"+SN.C.S.NoticeLon).val(l.NLon);$("#"+SN.C.S.NoticeLocationNs).val(l.NLNS);$("#"+SN.C.S.NoticeLocationId).val(l.NLID);$("#"+SN.C.S.NoticeDataGeo).attr("checked",l.NDG);$("label[for="+SN.C.S.NoticeDataGeo+"]").attr("title",NoticeDataGeo_text.ShareDisable+" ("+l.NLN+")").addClass("checked")}}else{e()}}).change()}},NewDirectMessage:function(){NDM=$(".entity_send-a-message a");NDM.attr({href:NDM.attr("href")+"&ajax=1"});NDM.bind("click",function(){var a=$(".entity_send-a-message form");if(a.length===0){$(this).addClass(SN.C.S.Processing);$.get(NDM.attr("href"),null,function(b){$(".entity_send-a-message").append(document._importNode($("form",b)[0],true));a=$(".entity_send-a-message .form_notice");SN.U.FormNoticeXHR(a);SN.U.FormNoticeEnhancements(a);a.append('<button class="close">×</button>');$(".entity_send-a-message button").click(function(){a.hide();return false});NDM.removeClass(SN.C.S.Processing)})}else{a.show();$(".entity_send-a-message textarea").focus()}return false})},GetFullYear:function(c,d,a){var b=new Date();b.setFullYear(c,d,a);return b},StatusNetInstance:{Set:function(b){var a=SN.U.StatusNetInstance.Get();if(a!==null){b=$.extend(a,b)}$.cookie(SN.C.S.StatusNetInstance,JSON.stringify(b),{path:"/",expires:SN.U.GetFullYear(2029,0,1)})},Get:function(){var a=$.cookie(SN.C.S.StatusNetInstance);if(a!==null){return JSON.parse(a)}return null},Delete:function(){$.cookie(SN.C.S.StatusNetInstance,null)}},belongsOnTimeline:function(b){var a=$("body").attr("id");if(a=="public"){return true}var c=$("#nav_profile a").attr("href");if(c){var d=$(b).find(".entry-title .author a.url").attr("href");if(d==c){if(a=="all"||a=="showstream"){return true}}}return false}},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()}},Notices:function(){if($("body.user_in").length>0){SN.U.NoticeFavor();SN.U.NoticeRepeat();SN.U.NoticeReply()}SN.U.NoticeAttachments()},EntityActions:function(){if($("body.user_in").length>0){$(".form_user_subscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_unsubscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_join").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_leave").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_nudge").live("click",function(){SN.U.FormXHR($(this));return false});SN.U.NewDirectMessage()}},Login:function(){if(SN.U.StatusNetInstance.Get()!==null){var a=SN.U.StatusNetInstance.Get().Nickname;if(a!==null){$("#form_login #nickname").val(a)}}$("#form_login").bind("submit",function(){SN.U.StatusNetInstance.Set({Nickname:$("#form_login #nickname").val()});return true})}}};$(document).ready(function(){if($("."+SN.C.S.FormNotice).length>0){SN.Init.NoticeForm()}if($("#content .notices").length>0){SN.Init.Notices()}if($("#content .entity_actions").length>0){SN.Init.EntityActions()}if($("#form_login").length>0){SN.Init.Login()}});if(!document.ELEMENT_NODE){document.ELEMENT_NODE=1;document.ATTRIBUTE_NODE=2;document.TEXT_NODE=3;document.CDATA_SECTION_NODE=4;document.ENTITY_REFERENCE_NODE=5;document.ENTITY_NODE=6;document.PROCESSING_INSTRUCTION_NODE=7;document.COMMENT_NODE=8;document.DOCUMENT_NODE=9;document.DOCUMENT_TYPE_NODE=10;document.DOCUMENT_FRAGMENT_NODE=11;document.NOTATION_NODE=12}document._importNode=function(e,a){switch(e.nodeType){case document.ELEMENT_NODE:var d=document.createElement(e.nodeName);if(e.attributes&&e.attributes.length>0){for(var c=0,b=e.attributes.length;c<b;){if(e.attributes[c].nodeName=="class"){d.className=e.getAttribute(e.attributes[c++].nodeName)}else{d.setAttribute(e.attributes[c].nodeName,e.getAttribute(e.attributes[c++].nodeName))}}}if(a&&e.childNodes&&e.childNodes.length>0){for(var c=0,b=e.childNodes.length;c<b;){d.appendChild(document._importNode(e.childNodes[c++],a))}}return d;break;case document.TEXT_NODE:case document.CDATA_SECTION_NODE:case document.COMMENT_NODE:return document.createTextNode(e.nodeValue);break}};if(typeof navigator.geolocation=="undefined"||navigator.geolocation.shim){(function(){(function(){if(window.google&&google.gears){return}var c=null;if(typeof GearsFactory!="undefined"){c=new GearsFactory()}else{try{c=new ActiveXObject("Gears.Factory");if(c.getBuildInfo().indexOf("ie_mobile")!=-1){c.privateSetGlobalObject(this)}}catch(d){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){c=document.createElement("object");c.style.display="none";c.width=0;c.height=0;c.type="application/x-googlegears";document.documentElement.appendChild(c)}}}if(!c){return}if(!window.google){google={}}if(!google.gears){google.gears={factory:c}}})();var a=(function(){var d=google.gears.factory.create("beta.geolocation");var c=function(f,e){return function(g){f(g);e.lastPosition=g}};return{shim:true,type:"Gears",lastPosition:null,getCurrentPosition:function(e,g,h){var f=this;var i=c(e,f);d.getCurrentPosition(i,g,h)},watchPosition:function(e,f,g){d.watchPosition(e,f,g)},clearWatch:function(e){d.clearWatch(e)},getPermission:function(g,e,f){d.getPermission(g,e,f)}}});var b=(function(){var i=false;var e=function(){if(!d()&&!i){i=true;var j=document.createElement("script");j.src=(document.location.protocol=="https:"?"https://":"http://")+"www.google.com/jsapi?callback=_google_loader_apiLoaded";j.type="text/javascript";document.getElementsByTagName("body")[0].appendChild(j)}};var c=[];var h=function(j){c.push(j)};var f=function(){if(d()){while(c.length>0){var j=c.pop();j()}}};window._google_loader_apiLoaded=function(){f()};var d=function(){return(window.google&&google.loader)};var g=function(j){if(d()){return true}h(j);e();return false};e();return{shim:true,type:"ClientLocation",lastPosition:null,getCurrentPosition:function(k,n,o){var m=this;if(!g(function(){m.getCurrentPosition(k,n,o)})){return}if(google.loader.ClientLocation){var l=google.loader.ClientLocation;var j={coords:{latitude:l.latitude,longitude:l.longitude,altitude:null,accuracy:43000,altitudeAccuracy:null,heading:null,speed:null},address:{city:l.address.city,country:l.address.country,country_code:l.address.country_code,region:l.address.region},timestamp:new Date()};k(j);this.lastPosition=j}else{if(n==="function"){n({code:3,message:"Using the Google ClientLocation API and it is not able to calculate a location."})}}},watchPosition:function(j,l,m){this.getCurrentPosition(j,l,m);var k=this;var n=setInterval(function(){k.getCurrentPosition(j,l,m)},10000);return n},clearWatch:function(j){clearInterval(j)},getPermission:function(l,j,k){return true}}});navigator.geolocation=(window.google&&google.gears)?a():b()})()}; \ No newline at end of file diff --git a/js/xbImportNode.js b/js/xbImportNode.js deleted file mode 100644 index f600a4789e..0000000000 --- a/js/xbImportNode.js +++ /dev/null @@ -1,47 +0,0 @@ -/* is this stuff defined? */ -if (!document.ELEMENT_NODE) { - document.ELEMENT_NODE = 1; - document.ATTRIBUTE_NODE = 2; - document.TEXT_NODE = 3; - document.CDATA_SECTION_NODE = 4; - document.ENTITY_REFERENCE_NODE = 5; - document.ENTITY_NODE = 6; - document.PROCESSING_INSTRUCTION_NODE = 7; - document.COMMENT_NODE = 8; - document.DOCUMENT_NODE = 9; - document.DOCUMENT_TYPE_NODE = 10; - document.DOCUMENT_FRAGMENT_NODE = 11; - document.NOTATION_NODE = 12; -} - -document._importNode = function(node, allChildren) { - /* find the node type to import */ - switch (node.nodeType) { - case document.ELEMENT_NODE: - /* create a new element */ - var newNode = document.createElement(node.nodeName); - /* does the node have any attributes to add? */ - if (node.attributes && node.attributes.length > 0) - /* add all of the attributes */ - for (var i = 0, il = node.attributes.length; i < il;) { - if (node.attributes[i].nodeName == 'class') { - newNode.className = node.getAttribute(node.attributes[i++].nodeName); - } else { - newNode.setAttribute(node.attributes[i].nodeName, node.getAttribute(node.attributes[i++].nodeName)); - } - } - /* are we going after children too, and does the node have any? */ - if (allChildren && node.childNodes && node.childNodes.length > 0) - /* recursively get all of the child nodes */ - for (var i = 0, il = node.childNodes.length; i < il;) - newNode.appendChild(document._importNode(node.childNodes[i++], allChildren)); - return newNode; - break; - case document.TEXT_NODE: - case document.CDATA_SECTION_NODE: - case document.COMMENT_NODE: - return document.createTextNode(node.nodeValue); - break; - } -}; - diff --git a/lib/accountsettingsaction.php b/lib/accountsettingsaction.php index 57740f8b85..2c519e4abd 100644 --- a/lib/accountsettingsaction.php +++ b/lib/accountsettingsaction.php @@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/settingsaction.php'; * * @see Widget */ - class AccountSettingsAction extends SettingsAction { /** @@ -54,7 +53,6 @@ class AccountSettingsAction extends SettingsAction * * @return void */ - function showLocalNav() { $menu = new AccountSettingsNav($this); @@ -73,7 +71,6 @@ class AccountSettingsAction extends SettingsAction * * @see HTMLOutputter */ - class AccountSettingsNav extends Widget { var $action = null; @@ -83,7 +80,6 @@ class AccountSettingsNav extends Widget * * @param Action $action current action, used for output */ - function __construct($action=null) { parent::__construct($action); @@ -95,7 +91,6 @@ class AccountSettingsNav extends Widget * * @return void */ - function show() { $action_name = $this->action->trimmed('action'); @@ -139,12 +134,12 @@ class AccountSettingsNav extends Widget $this->showMenuItem('userdesignsettings',_('Design'),$title); Event::handle('EndAccountSettingsDesignMenuItem', array($this, &$menu)); } - if(Event::handle('StartAccountSettingsOtherMenuItem', array($this, &$menu))){ + if(Event::handle('StartAccountSettingsUrlMenuItem', array($this, &$menu))){ // TRANS: Link title attribute in user account settings menu. - $title = _('Other options'); + $title = _('URL shortener settings'); // TRANS: Link description in user account settings menu. - $this->showMenuItem('othersettings',_('Other'),$title); - Event::handle('EndAccountSettingsOtherMenuItem', array($this, &$menu)); + $this->showMenuItem('urlsettings',_('URL'),$title); + Event::handle('EndAccountSettingsUrlMenuItem', array($this, &$menu)); } Event::handle('EndAccountSettingsNav', array(&$this->action)); diff --git a/lib/action.php b/lib/action.php index d417c88fce..31b5aa4954 100644 --- a/lib/action.php +++ b/lib/action.php @@ -121,7 +121,10 @@ class Action extends HTMLOutputter // lawsuit // XXX: attributes (profile?) $this->elementStart('head'); if (Event::handle('StartShowHeadElements', array($this))) { - $this->showTitle(); + if (Event::handle('StartShowHeadTitle', array($this))) { + $this->showTitle(); + Event::handle('EndShowHeadTitle', array($this)); + } $this->showShortcutIcon(); $this->showStylesheets(); $this->showOpenSearch(); @@ -172,8 +175,9 @@ class Action extends HTMLOutputter // lawsuit $this->element('link', array('rel' => 'shortcut icon', 'href' => Theme::path('favicon.ico'))); } else { + // favicon.ico should be HTTPS if the rest of the page is $this->element('link', array('rel' => 'shortcut icon', - 'href' => common_path('favicon.ico'))); + 'href' => common_path('favicon.ico', StatusNet::isHTTPS()))); } if (common_config('site', 'mobile')) { @@ -200,7 +204,7 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowStatusNetStyles', array($this)) && Event::handle('StartShowLaconicaStyles', array($this))) { - $this->cssLink('css/display.css',null, 'screen, projection, tv, print'); + $this->primaryCssLink(null, 'screen, projection, tv, print'); Event::handle('EndShowStatusNetStyles', array($this)); Event::handle('EndShowLaconicaStyles', array($this)); } @@ -235,7 +239,7 @@ class Action extends HTMLOutputter // lawsuit Event::handle('EndShowDesign', array($this)); } Event::handle('EndShowStyles', array($this)); - + if (common_config('custom_css', 'enabled')) { $css = common_config('custom_css', 'css'); if (Event::handle('StartShowCustomCss', array($this, &$css))) { @@ -248,6 +252,18 @@ class Action extends HTMLOutputter // lawsuit } } + function primaryCssLink($mainTheme=null, $media=null) + { + // If the currently-selected theme has dependencies on other themes, + // we'll need to load their display.css files as well in order. + $theme = new Theme($mainTheme); + $baseThemes = $theme->getDeps(); + foreach ($baseThemes as $baseTheme) { + $this->cssLink('css/display.css', $baseTheme, $media); + } + $this->cssLink('css/display.css', $mainTheme, $media); + } + /** * Show javascript headers * @@ -258,17 +274,16 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowScripts', array($this))) { if (Event::handle('StartShowJQueryScripts', array($this))) { $this->script('jquery.min.js'); - $this->script('jquery.form.js'); - $this->script('jquery.cookie.js'); - $this->inlineScript('if (typeof window.JSON !== "object") { $.getScript("'.common_path('js/json2.js').'"); }'); + $this->script('jquery.form.min.js'); + $this->script('jquery.cookie.min.js'); + $this->inlineScript('if (typeof window.JSON !== "object") { $.getScript("'.common_path('js/json2.min.js').'"); }'); $this->script('jquery.joverlay.min.js'); Event::handle('EndShowJQueryScripts', array($this)); } if (Event::handle('StartShowStatusNetScripts', array($this)) && Event::handle('StartShowLaconicaScripts', array($this))) { - $this->script('xbImportNode.js'); - $this->script('util.js'); - $this->script('geometa.js'); + $this->script('util.min.js'); + $this->showScriptMessages(); // Frame-busting code to avoid clickjacking attacks. $this->inlineScript('if (window.top !== window.self) { window.top.location.href = window.self.location.href; }'); Event::handle('EndShowStatusNetScripts', array($this)); @@ -278,6 +293,59 @@ class Action extends HTMLOutputter // lawsuit } } + /** + * Exports a map of localized text strings to JavaScript code. + * + * Plugins can add to what's exported by hooking the StartScriptMessages or EndScriptMessages + * events and appending to the array. Try to avoid adding strings that won't be used, as + * they'll be added to HTML output. + */ + + function showScriptMessages() + { + $messages = array(); + + if (Event::handle('StartScriptMessages', array($this, &$messages))) { + // Common messages needed for timeline views etc... + + // TRANS: Localized tooltip for '...' expansion button on overlong remote messages. + $messages['showmore_tooltip'] = _m('TOOLTIP', 'Show more'); + + $messages = array_merge($messages, $this->getScriptMessages()); + + Event::handle('EndScriptMessages', array($this, &$messages)); + } + + if (!empty($messages)) { + $this->inlineScript('SN.messages=' . json_encode($messages)); + } + + return $messages; + } + + /** + * If the action will need localizable text strings, export them here like so: + * + * return array('pool_deepend' => _('Deep end'), + * 'pool_shallow' => _('Shallow end')); + * + * The exported map will be available via SN.msg() to JS code: + * + * $('#pool').html('<div class="deepend"></div><div class="shallow"></div>'); + * $('#pool .deepend').text(SN.msg('pool_deepend')); + * $('#pool .shallow').text(SN.msg('pool_shallow')); + * + * Exports a map of localized text strings to JavaScript code. + * + * Plugins can add to what's exported on any action by hooking the StartScriptMessages or + * EndScriptMessages events and appending to the array. Try to avoid adding strings that won't + * be used, as they'll be added to HTML output. + */ + function getScriptMessages() + { + return array(); + } + /** * Show OpenSearch headers * @@ -301,7 +369,6 @@ class Action extends HTMLOutputter // lawsuit * * @return nothing */ - function showFeeds() { $feeds = $this->getFeeds(); @@ -349,9 +416,9 @@ class Action extends HTMLOutputter // lawsuit */ function showBody() { - $this->elementStart('body', (common_current_user()) ? array('id' => $this->trimmed('action'), + $this->elementStart('body', (common_current_user()) ? array('id' => strtolower($this->trimmed('action')), 'class' => 'user_in') - : array('id' => $this->trimmed('action'))); + : array('id' => strtolower($this->trimmed('action')))); $this->elementStart('div', array('id' => 'wrap')); if (Event::handle('StartShowHeader', array($this))) { $this->showHeader(); @@ -385,7 +452,10 @@ class Action extends HTMLOutputter // lawsuit Event::handle('EndShowSiteNotice', array($this)); } if (common_logged_in()) { - $this->showNoticeForm(); + if (Event::handle('StartShowNoticeForm', array($this))) { + $this->showNoticeForm(); + Event::handle('EndShowNoticeForm', array($this)); + } } else { $this->showAnonymousMessage(); } @@ -403,18 +473,43 @@ class Action extends HTMLOutputter // lawsuit 'class' => 'vcard')); if (Event::handle('StartAddressData', array($this))) { if (common_config('singleuser', 'enabled')) { + $user = User::singleUser(); $url = common_local_url('showstream', - array('nickname' => common_config('singleuser', 'nickname'))); + array('nickname' => $user->nickname)); } else { $url = common_local_url('public'); } $this->elementStart('a', array('class' => 'url home bookmark', 'href' => $url)); - if (common_config('site', 'logo') || file_exists(Theme::file('logo.png'))) { + + if (StatusNet::isHTTPS()) { + $logoUrl = common_config('site', 'ssllogo'); + if (empty($logoUrl)) { + // if logo is an uploaded file, try to fall back to HTTPS file URL + $httpUrl = common_config('site', 'logo'); + if (!empty($httpUrl)) { + $f = File::staticGet('url', $httpUrl); + if (!empty($f) && !empty($f->filename)) { + // this will handle the HTTPS case + $logoUrl = File::url($f->filename); + } + } + } + } else { + $logoUrl = common_config('site', 'logo'); + } + + if (empty($logoUrl) && file_exists(Theme::file('logo.png'))) { + // This should handle the HTTPS case internally + $logoUrl = Theme::path('logo.png'); + } + + if (!empty($logoUrl)) { $this->element('img', array('class' => 'logo photo', - 'src' => (common_config('site', 'logo')) ? common_config('site', 'logo') : Theme::path('logo.png'), + 'src' => $logoUrl, 'alt' => common_config('site', 'name'))); } + $this->text(' '); $this->element('span', array('class' => 'fn org'), common_config('site', 'name')); $this->elementEnd('a'); @@ -486,20 +581,20 @@ class Action extends HTMLOutputter // lawsuit } // TRANS: Tooltip for main menu option "Login" $tooltip = _m('TOOLTIP', 'Login to the site'); - // TRANS: Main menu option when not logged in to log in $this->menuItem(common_local_url('login'), + // TRANS: Main menu option when not logged in to log in _m('MENU', 'Login'), $tooltip, false, 'nav_login'); } // TRANS: Tooltip for main menu option "Help" $tooltip = _m('TOOLTIP', 'Help me!'); - // TRANS: Main menu option for help on the StatusNet site $this->menuItem(common_local_url('doc', array('title' => 'help')), + // TRANS: Main menu option for help on the StatusNet site _m('MENU', 'Help'), $tooltip, false, 'nav_help'); if ($user || !common_config('site', 'private')) { // TRANS: Tooltip for main menu option "Search" $tooltip = _m('TOOLTIP', 'Search for people or text'); - // TRANS: Main menu option when logged in or when the StatusNet instance is not private $this->menuItem(common_local_url('peoplesearch'), + // TRANS: Main menu option when logged in or when the StatusNet instance is not private _m('MENU', 'Search'), $tooltip, false, 'nav_search'); } Event::handle('EndPrimaryNav', array($this)); @@ -616,7 +711,10 @@ class Action extends HTMLOutputter // lawsuit function showContentBlock() { $this->elementStart('div', array('id' => 'content')); - $this->showPageTitle(); + if (Event::handle('StartShowPageTitle', array($this))) { + $this->showPageTitle(); + Event::handle('EndShowPageTitle', array($this)); + } $this->showPageNoticeBlock(); $this->elementStart('div', array('id' => 'content_inner')); // show the actual content (forms, lists, whatever) @@ -694,19 +792,18 @@ class Action extends HTMLOutputter // lawsuit * * @return nothing */ - function showAside() { $this->elementStart('div', array('id' => 'aside_primary', 'class' => 'aside')); - if (Event::handle('StartShowExportData', array($this))) { - $this->showExportData(); - Event::handle('EndShowExportData', array($this)); - } if (Event::handle('StartShowSections', array($this))) { $this->showSections(); Event::handle('EndShowSections', array($this)); } + if (Event::handle('StartShowExportData', array($this))) { + $this->showExportData(); + Event::handle('EndShowExportData', array($this)); + } $this->elementEnd('div'); } @@ -715,7 +812,6 @@ class Action extends HTMLOutputter // lawsuit * * @return void */ - function showExportData() { $feeds = $this->getFeeds(); @@ -782,15 +878,17 @@ class Action extends HTMLOutputter // lawsuit // TRANS: Secondary navigation menu option leading to privacy policy. _('Privacy')); $this->menuItem(common_local_url('doc', array('title' => 'source')), - // TRANS: Secondary navigation menu option. + // TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. _('Source')); $this->menuItem(common_local_url('version'), // TRANS: Secondary navigation menu option leading to version information on the StatusNet site. _('Version')); $this->menuItem(common_local_url('doc', array('title' => 'contact')), - // TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. + // TRANS: Secondary navigation menu option leading to e-mail contact information on the + // TRANS: StatusNet site, where to report bugs, ... _('Contact')); $this->menuItem(common_local_url('doc', array('title' => 'badge')), + // TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. _('Badge')); Event::handle('EndSecondaryNav', array($this)); } @@ -824,6 +922,9 @@ class Action extends HTMLOutputter // lawsuit $this->elementStart('dd', null); if (common_config('site', 'broughtby')) { // TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. + // TRANS: Text between [] is a link description, text between () is the link itself. + // TRANS: Make sure there is no whitespace between "]" and "(". + // TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby $instr = _('**%%site.name%%** is a social network, courtesy of [%%site.broughtby%%](%%site.broughtbyurl%%).'); } else { // TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. @@ -831,6 +932,9 @@ class Action extends HTMLOutputter // lawsuit } $instr .= ' '; // TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. + // TRANS: Make sure there is no whitespace between "]" and "(". + // TRANS: Text between [] is a link description, text between () is the link itself. + // TRANS: %s is the version of StatusNet that is being used. $instr .= sprintf(_('It runs on [GNU social](http://www.gnu.org/software/social/), version %s, available under the [GNU Affero General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html).'), STATUSNET_VERSION); $output = common_markup_to_html($instr); $this->raw($output); @@ -871,14 +975,33 @@ class Action extends HTMLOutputter // lawsuit case 'cc': // fall through default: $this->elementStart('p'); + + $image = common_config('license', 'image'); + $sslimage = common_config('license', 'sslimage'); + + if (StatusNet::isHTTPS()) { + if (!empty($sslimage)) { + $url = $sslimage; + } else if (preg_match('#^http://i.creativecommons.org/#', $image)) { + // CC support HTTPS on their images + $url = preg_replace('/^http/', 'https', $image); + } else { + // Better to show mixed content than no content + $url = $image; + } + } else { + $url = $image; + } + $this->element('img', array('id' => 'license_cc', - 'src' => common_config('license', 'image'), + 'src' => $url, 'alt' => common_config('license', 'title'), 'width' => '80', 'height' => '15')); $this->text(' '); - // TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. - $notice = _('All content and data are available under the %2$s license.'); + // TRANS: license message in footer. + // TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. + $notice = _('All %1$s content and data are available under the %2$s license.'); $link = "<a class=\"license\" rel=\"external license\" href=\"" . htmlspecialchars(common_config('license', 'url')) . "\">" . @@ -931,7 +1054,6 @@ class Action extends HTMLOutputter // lawsuit * * @return boolean is read only action? */ - function isReadOnly($args) { return false; @@ -978,29 +1100,61 @@ class Action extends HTMLOutputter // lawsuit function handle($argarray=null) { header('Vary: Accept-Encoding,Cookie'); + $lm = $this->lastModified(); $etag = $this->etag(); + if ($etag) { header('ETag: ' . $etag); } + if ($lm) { header('Last-Modified: ' . date(DATE_RFC1123, $lm)); - if (array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) { - $if_modified_since = $_SERVER['HTTP_IF_MODIFIED_SINCE']; - $ims = strtotime($if_modified_since); - if ($lm <= $ims) { - $if_none_match = (array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER)) ? - $_SERVER['HTTP_IF_NONE_MATCH'] : null; - if (!$if_none_match || - !$etag || - $this->_hasEtag($etag, $if_none_match)) { - header('HTTP/1.1 304 Not Modified'); - // Better way to do this? - exit(0); - } + if ($this->isCacheable()) { + header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', 0 ) . ' GMT' ); + header( "Cache-Control: private, must-revalidate, max-age=0" ); + header( "Pragma:"); + } + } + + $checked = false; + if ($etag) { + $if_none_match = (array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER)) ? + $_SERVER['HTTP_IF_NONE_MATCH'] : null; + if ($if_none_match) { + // If this check fails, ignore the if-modified-since below. + $checked = true; + if ($this->_hasEtag($etag, $if_none_match)) { + header('HTTP/1.1 304 Not Modified'); + // Better way to do this? + exit(0); } } } + + if (!$checked && $lm && array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) { + $if_modified_since = $_SERVER['HTTP_IF_MODIFIED_SINCE']; + $ims = strtotime($if_modified_since); + if ($lm <= $ims) { + header('HTTP/1.1 304 Not Modified'); + // Better way to do this? + exit(0); + } + } + } + + /** + * Is this action cacheable? + * + * If the action returns a last-modified + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return boolean is read only action? + */ + function isCacheable() + { + return true; } /** @@ -1011,7 +1165,6 @@ class Action extends HTMLOutputter // lawsuit * * @return boolean */ - function _hasEtag($etag, $if_none_match) { $etags = explode(',', $if_none_match); @@ -1051,7 +1204,6 @@ class Action extends HTMLOutputter // lawsuit * * @return integer integer value */ - function int($key, $defValue=null, $maxValue=null, $minValue=null) { $arg = strtolower($this->trimmed($key)); @@ -1079,7 +1231,6 @@ class Action extends HTMLOutputter // lawsuit * * @return nothing */ - function serverError($msg, $code=500) { $action = $this->trimmed('action'); @@ -1095,7 +1246,6 @@ class Action extends HTMLOutputter // lawsuit * * @return nothing */ - function clientError($msg, $code=400) { $action = $this->trimmed('action'); @@ -1108,7 +1258,6 @@ class Action extends HTMLOutputter // lawsuit * * @return string current URL */ - function selfUrl() { list($action, $args) = $this->returnToArgs(); @@ -1120,7 +1269,6 @@ class Action extends HTMLOutputter // lawsuit * * @return array two elements: action, other args */ - function returnToArgs() { $action = $this->trimmed('action'); @@ -1227,7 +1375,6 @@ class Action extends HTMLOutputter // lawsuit * * @return array Feed object to show in head and links */ - function getFeeds() { return null; @@ -1238,7 +1385,6 @@ class Action extends HTMLOutputter // lawsuit * * @return Design a design object to use */ - function getDesign() { return Design::siteDesign(); @@ -1252,7 +1398,6 @@ class Action extends HTMLOutputter // lawsuit * * @return void */ - // XXX: Finding this type of check with the same message about 50 times. // Possible to refactor? function checkSessionToken() @@ -1260,7 +1405,19 @@ class Action extends HTMLOutputter // lawsuit // CSRF protection $token = $this->trimmed('token'); if (empty($token) || $token != common_session_token()) { + // TRANS: Client error text when there is a problem with the session token. $this->clientError(_('There was a problem with your session token.')); } } + + /** + * Check if the current request is a POST + * + * @return boolean true if POST; otherwise false. + */ + + function isPost() + { + return ($_SERVER['REQUEST_METHOD'] == 'POST'); + } } diff --git a/lib/activity.php b/lib/activity.php index 8e2da99bb3..c3a984a7b9 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -48,7 +48,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class Activity { const SPEC = 'http://activitystrea.ms/spec/1.0/'; @@ -102,13 +101,17 @@ class Activity public $categories = array(); // list of AtomCategory objects public $enclosures = array(); // list of enclosure URL references + public $extra = array(); // extra elements as array(tag, attrs, content) + public $source; // ActivitySource object representing 'home feed' + public $selfLink; // <link rel='self' type='application/atom+xml'> + public $editLink; // <link rel='edit' type='application/atom+xml'> + /** * Turns a regular old Atom <entry> into a magical activity * * @param DOMElement $entry Atom entry to poke at * @param DOMElement $feed Atom feed, for context */ - function __construct($entry = null, $feed = null) { if (is_null($entry)) { @@ -133,6 +136,7 @@ class Activity $entry->localName == 'item') { $this->_fromRssItem($entry, $feed); } else { + // Low level exception. No need for i18n. throw new Exception("Unknown DOM element: {$entry->namespaceURI} {$entry->localName}"); } } @@ -236,6 +240,11 @@ class Activity foreach (ActivityUtils::getLinks($entry, 'enclosure') as $link) { $this->enclosures[] = $link->getAttribute('href'); } + + // From APP. Might be useful. + + $this->selfLink = ActivityUtils::getLink($entry, 'self', 'application/atom+xml'); + $this->editLink = ActivityUtils::getLink($entry, 'edit', 'application/atom+xml'); } function _fromRssItem($item, $channel) @@ -313,62 +322,150 @@ class Activity * * @return DOMElement Atom entry */ - function toAtomEntry() { return null; } - function asString($namespace=false) + function asString($namespace=false, $author=true, $source=false) { $xs = new XMLStringer(true); if ($namespace) { $attrs = array('xmlns' => 'http://www.w3.org/2005/Atom', + 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0', 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', 'xmlns:georss' => 'http://www.georss.org/georss', 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0', - 'xmlns:media' => 'http://purl.org/syndication/atommedia'); + 'xmlns:media' => 'http://purl.org/syndication/atommedia', + 'xmlns:statusnet' => 'http://status.net/schema/api/1/'); } else { $attrs = array(); } $xs->elementStart('entry', $attrs); - $xs->element('id', null, $this->id); - $xs->element('title', null, $this->title); - $xs->element('published', null, common_date_iso8601($this->time)); - $xs->element('content', array('type' => 'html'), $this->content); + if ($this->verb == ActivityVerb::POST && count($this->objects) == 1) { + + $obj = $this->objects[0]; + + $xs->element('id', null, $obj->id); + $xs->element('activity:object-type', null, $obj->type); + + if (!empty($obj->title)) { + $xs->element('title', null, $obj->title); + } else { + // XXX need a better default title + $xs->element('title', null, _('Post')); + } + + if (!empty($obj->content)) { + $xs->element('content', array('type' => 'html'), $obj->content); + } + + if (!empty($obj->summary)) { + $xs->element('summary', null, $obj->summary); + } + + if (!empty($obj->link)) { + $xs->element('link', array('rel' => 'alternate', + 'type' => 'text/html'), + $obj->link); + } + + // XXX: some object types might have other values here. + + } else { + $xs->element('id', null, $this->id); + $xs->element('title', null, $this->title); + + $xs->element('content', array('type' => 'html'), $this->content); + + if (!empty($this->summary)) { + $xs->element('summary', null, $this->summary); + } + + if (!empty($this->link)) { + $xs->element('link', array('rel' => 'alternate', + 'type' => 'text/html'), + $this->link); + } - if (!empty($this->summary)) { - $xs->element('summary', null, $this->summary); } - if (!empty($this->link)) { - $xs->element('link', array('rel' => 'alternate', - 'type' => 'text/html'), - $this->link); - } - - // XXX: add context - - $xs->elementStart('author'); - $xs->element('uri', array(), $this->actor->id); - if ($this->actor->title) { - $xs->element('name', array(), $this->actor->title); - } - $xs->elementEnd('author'); - $xs->raw($this->actor->asString('activity:actor')); - $xs->element('activity:verb', null, $this->verb); - if (!empty($this->objects)) { + $published = self::iso8601Date($this->time); + + $xs->element('published', null, $published); + $xs->element('updated', null, $published); + + if ($author) { + $xs->elementStart('author'); + $xs->element('uri', array(), $this->actor->id); + if ($this->actor->title) { + $xs->element('name', array(), $this->actor->title); + } + $xs->elementEnd('author'); + $xs->raw($this->actor->asString('activity:actor')); + } + + if ($this->verb != ActivityVerb::POST || count($this->objects) != 1) { foreach($this->objects as $object) { $xs->raw($object->asString()); } } + if (!empty($this->context)) { + + if (!empty($this->context->replyToID)) { + if (!empty($this->context->replyToUrl)) { + $xs->element('thr:in-reply-to', + array('ref' => $this->context->replyToID, + 'href' => $this->context->replyToUrl)); + } else { + $xs->element('thr:in-reply-to', + array('ref' => $this->context->replyToID)); + } + } + + if (!empty($this->context->replyToUrl)) { + $xs->element('link', array('rel' => 'related', + 'href' => $this->context->replyToUrl)); + } + + if (!empty($this->context->conversation)) { + $xs->element('link', array('rel' => 'ostatus:conversation', + 'href' => $this->context->conversation)); + } + + foreach ($this->context->attention as $attnURI) { + $xs->element('link', array('rel' => 'ostatus:attention', + 'href' => $attnURI)); + $xs->element('link', array('rel' => 'mentioned', + 'href' => $attnURI)); + } + + // XXX: shoulda used ActivityVerb::SHARE + + if (!empty($this->context->forwardID)) { + if (!empty($this->context->forwardUrl)) { + $xs->element('ostatus:forward', + array('ref' => $this->context->forwardID, + 'href' => $this->context->forwardUrl)); + } else { + $xs->element('ostatus:forward', + array('ref' => $this->context->forwardID)); + } + } + + if (!empty($this->context->location)) { + $loc = $this->context->location; + $xs->element('georss:point', null, $loc->lat . ' ' . $loc->lon); + } + } + if ($this->target) { $xs->raw($this->target->asString('activity:target')); } @@ -377,14 +474,96 @@ class Activity $xs->raw($cat->asString()); } + // can be either URLs or enclosure objects + + foreach ($this->enclosures as $enclosure) { + if (is_string($enclosure)) { + $xs->element('link', array('rel' => 'enclosure', + 'href' => $enclosure)); + } else { + $attributes = array('rel' => 'enclosure', + 'href' => $enclosure->url, + 'type' => $enclosure->mimetype, + 'length' => $enclosure->size); + if ($enclosure->title) { + $attributes['title'] = $enclosure->title; + } + $xs->element('link', $attributes); + } + } + + // Info on the source feed + + if ($source && !empty($this->source)) { + $xs->elementStart('source'); + + $xs->element('id', null, $this->source->id); + $xs->element('title', null, $this->source->title); + + if (array_key_exists('alternate', $this->source->links)) { + $xs->element('link', array('rel' => 'alternate', + 'type' => 'text/html', + 'href' => $this->source->links['alternate'])); + } + + if (array_key_exists('self', $this->source->links)) { + $xs->element('link', array('rel' => 'self', + 'type' => 'application/atom+xml', + 'href' => $this->source->links['self'])); + } + + if (array_key_exists('license', $this->source->links)) { + $xs->element('link', array('rel' => 'license', + 'href' => $this->source->links['license'])); + } + + if (!empty($this->source->icon)) { + $xs->element('icon', null, $this->source->icon); + } + + if (!empty($this->source->updated)) { + $xs->element('updated', null, $this->source->updated); + } + + $xs->elementEnd('source'); + } + + if (!empty($this->selfLink)) { + $xs->element('link', array('rel' => 'self', + 'type' => 'application/atom+xml', + 'href' => $this->selfLink)); + } + + if (!empty($this->editLink)) { + $xs->element('link', array('rel' => 'edit', + 'type' => 'application/atom+xml', + 'href' => $this->editLink)); + } + + // For throwing in extra elements; used for statusnet:notice_info + + foreach ($this->extra as $el) { + list($tag, $attrs, $content) = $el; + $xs->element($tag, $attrs, $content); + } + $xs->elementEnd('entry'); - return $xs->getString(); + $str = $xs->getString(); + + return $str; } private function _child($element, $tag, $namespace=self::SPEC) { return ActivityUtils::child($element, $tag, $namespace); } -} + static function iso8601Date($tm) + { + $dateStr = date('d F Y H:i:s', $tm); + $d = new DateTime($dateStr, new DateTimeZone('UTC')); + $d->setTimezone(new DateTimeZone(common_timezone())); + return $d->format('c'); + } +} diff --git a/lib/activitycontext.php b/lib/activitycontext.php index 09a4579249..fd0dfe06c1 100644 --- a/lib/activitycontext.php +++ b/lib/activitycontext.php @@ -39,6 +39,8 @@ class ActivityContext public $location; public $attention = array(); public $conversation; + public $forwardID; // deprecated, use ActivityVerb::SHARE instead + public $forwardUrl; // deprecated, use ActivityVerb::SHARE instead const THR = 'http://purl.org/syndication/thread/1.0'; const GEORSS = 'http://www.georss.org/georss'; @@ -54,8 +56,12 @@ class ActivityContext const MENTIONED = 'mentioned'; const CONVERSATION = 'ostatus:conversation'; - function __construct($element) + function __construct($element = null) { + if (empty($element)) { + return; + } + $replyToEl = ActivityUtils::child($element, self::INREPLYTO, self::THR); if (!empty($replyToEl)) { @@ -73,7 +79,6 @@ class ActivityContext $attention = array(); for ($i = 0; $i < $links->length; $i++) { - $link = $links->item($i); $linkRel = $link->getAttribute(ActivityUtils::REL); diff --git a/lib/activityobject.php b/lib/activityobject.php index 677a48197f..e89c8db4e9 100644 --- a/lib/activityobject.php +++ b/lib/activityobject.php @@ -49,7 +49,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class ActivityObject { const ARTICLE = 'http://activitystrea.ms/schema/1.0/article'; @@ -116,7 +115,6 @@ class ActivityObject * * @param DOMElement $element DOM thing to turn into an Activity thing */ - function __construct($element = null) { if (empty($element)) { @@ -168,7 +166,6 @@ class ActivityObject ActivityObject::MEDIA_DESCRIPTION, Activity::MEDIA ); - } } @@ -204,7 +201,7 @@ class ActivityObject $title = ActivityUtils::childHtmlContent($element, self::TITLE); - $this->title = html_entity_decode(strip_tags($title)); + $this->title = html_entity_decode(strip_tags($title), ENT_QUOTES, 'UTF-8'); $this->source = $this->_getSource($element); @@ -217,8 +214,7 @@ class ActivityObject } } - // @fixme rationalize with Activity::_fromRssItem() - + // @todo FIXME: rationalize with Activity::_fromRssItem() private function _fromRssItem($item) { $this->title = ActivityUtils::childContent($item, ActivityObject::TITLE, Activity::RSS); @@ -418,7 +414,6 @@ class ActivityObject ); foreach ($sizes as $size) { - $alink = null; $avatar = $profile->getAvatar($size); @@ -430,6 +425,17 @@ class ActivityObject $alink->height = $size; $alink->width = $size; $alink->url = Avatar::defaultImage($size); + + if ($size == AVATAR_PROFILE_SIZE) { + // Hack for Twitter import: we don't have a 96x96 image, + // but we do have a 73x73 image. For now, fake it with that. + $avatar = $profile->getAvatar(73); + if ($avatar) { + $alink = AvatarLink::fromAvatar($avatar); + $alink->height= $size; + $alink->width = $size; + } + } } $object->avatarLinks[] = $alink; diff --git a/lib/activitysource.php b/lib/activitysource.php new file mode 100644 index 0000000000..56266057f6 --- /dev/null +++ b/lib/activitysource.php @@ -0,0 +1,56 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Activity source, to save in <atom:source> + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Feed + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Feed data to store in the <atom:source> element + * + * I wanted to use Atom10Feed but it seems more heavyweight than what's + * needed here. + * + * @category OStatus + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class ActivitySource +{ + public $id; + public $title; + public $icon; + public $updated; + public $links; +} diff --git a/lib/activityutils.php b/lib/activityutils.php index dd38d4e142..c462514c49 100644 --- a/lib/activityutils.php +++ b/lib/activityutils.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class ActivityUtils { const ATOM = 'http://www.w3.org/2005/Atom'; @@ -66,7 +65,6 @@ class ActivityUtils * * @return string related link, if any */ - static function getPermalink($element) { return self::getLink($element, 'alternate', 'text/html'); @@ -79,19 +77,16 @@ class ActivityUtils * * @return string related link, if any */ - static function getLink(DOMNode $element, $rel, $type=null) { $els = $element->childNodes; foreach ($els as $link) { - if (!($link instanceof DOMElement)) { continue; } if ($link->localName == self::LINK && $link->namespaceURI == self::ATOM) { - $linkRel = $link->getAttribute(self::REL); $linkType = $link->getAttribute(self::TYPE); @@ -112,7 +107,6 @@ class ActivityUtils foreach ($els as $link) { if ($link->localName == self::LINK && $link->namespaceURI == self::ATOM) { - $linkRel = $link->getAttribute(self::REL); $linkType = $link->getAttribute(self::TYPE); @@ -135,7 +129,6 @@ class ActivityUtils * * @return DOMElement found element or null */ - static function child(DOMNode $element, $tag, $namespace=self::ATOM) { $els = $element->childNodes; @@ -160,7 +153,6 @@ class ActivityUtils * * @return string content of the child */ - static function childContent(DOMNode $element, $tag, $namespace=self::ATOM) { $el = self::child($element, $tag, $namespace); @@ -194,7 +186,6 @@ class ActivityUtils * @todo handle embedded XML mime types * @todo handle base64-encoded non-XML and non-text mime types */ - static function getContent($element) { return self::childHtmlContent($element, self::CONTENT, self::ATOM); @@ -205,6 +196,7 @@ class ActivityUtils $src = $el->getAttribute(self::SRC); if (!empty($src)) { + // TRANS: Client exception thrown when there is no source attribute. throw new ClientException(_("Can't handle remote content yet.")); } @@ -241,10 +233,12 @@ class ActivityUtils return trim($text); } else if (in_array($type, array('text/xml', 'application/xml')) || preg_match('#(+|/)xml$#', $type)) { + // TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. throw new ClientException(_("Can't handle embedded XML content yet.")); } else if (strncasecmp($type, 'text/', 5)) { return $el->textContent; } else { + // TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. throw new ClientException(_("Can't handle embedded Base64 content yet.")); } } diff --git a/lib/activityverb.php b/lib/activityverb.php index 76f2b84e9c..264351308b 100644 --- a/lib/activityverb.php +++ b/lib/activityverb.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class ActivityVerb { const POST = 'http://activitystrea.ms/schema/1.0/post'; diff --git a/lib/adminform.php b/lib/adminform.php index 3934f63515..1ecb024357 100644 --- a/lib/adminform.php +++ b/lib/adminform.php @@ -45,7 +45,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * * @see Form */ - class AdminForm extends Form { /** @@ -59,7 +58,6 @@ class AdminForm extends Form * * @return void */ - function input($setting, $title, $instructions, $section='site') { $this->out->input($setting, $title, $this->value($setting, $section), $instructions); @@ -73,7 +71,6 @@ class AdminForm extends Form * * @return string param value if posted, or current config value */ - function value($setting, $main='site') { $value = $this->out->trimmed($setting); @@ -82,5 +79,4 @@ class AdminForm extends Form } return $value; } - } diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index 9e0b2d041b..8dd16e9d0c 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET')) { * * @todo Find some commonalities with SettingsAction and combine */ - class AdminPanelAction extends Action { var $success = true; @@ -61,7 +60,6 @@ class AdminPanelAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -124,7 +122,6 @@ class AdminPanelAction extends Action * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -155,7 +152,6 @@ class AdminPanelAction extends Action * @return void * @see AdminPanelNav */ - function showLocalNav() { $nav = new AdminPanelNav($this); @@ -169,7 +165,6 @@ class AdminPanelAction extends Action * * @return void. */ - function showContent() { $this->showForm(); @@ -199,7 +194,6 @@ class AdminPanelAction extends Action * * @return void */ - function showPageNotice() { if ($this->msg) { @@ -222,7 +216,6 @@ class AdminPanelAction extends Action * * @return void */ - function showForm() { // TRANS: Client error message. @@ -239,7 +232,6 @@ class AdminPanelAction extends Action * * @return void */ - function getInstructions() { return ''; @@ -252,7 +244,6 @@ class AdminPanelAction extends Action * * @return void */ - function saveSettings() { // TRANS: Client error message @@ -267,7 +258,6 @@ class AdminPanelAction extends Action * * @return mixed $result false if something didn't work */ - function deleteSetting($section, $setting) { $config = new Config(); @@ -314,7 +304,6 @@ class AdminPanelAction extends Action * * @see Widget */ - class AdminPanelNav extends Widget { var $action = null; @@ -324,7 +313,6 @@ class AdminPanelNav extends Widget * * @param Action $action current action, used for output */ - function __construct($action=null) { parent::__construct($action); @@ -336,7 +324,6 @@ class AdminPanelNav extends Widget * * @return void */ - function show() { $action_name = $this->action->trimmed('action'); @@ -409,6 +396,14 @@ class AdminPanelNav extends Widget $menu_title, $action_name == 'snapshotadminpanel', 'nav_snapshot_admin_panel'); } + if (AdminPanelAction::canAdmin('license')) { + // TRANS: Menu item title/tooltip + $menu_title = _('Set site license'); + // TRANS: Menu item for site administration + $this->out->menuItem(common_local_url('licenseadminpanel'), _('License'), + $menu_title, $action_name == 'licenseadminpanel', 'nav_license_admin_panel'); + } + if (AdminPanelAction::canAdmin('plugins')) { // TRANS: Menu item title/tooltip $menu_title = _('Plugins configuration'); @@ -421,5 +416,4 @@ class AdminPanelNav extends Widget } $this->action->elementEnd('ul'); } - } diff --git a/lib/apiaction.php b/lib/apiaction.php index 432b324532..7eba1b3b8d 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -114,7 +114,6 @@ class ApiValidationException extends Exception { } * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAction extends Action { const READ_ONLY = 1; @@ -141,7 +140,6 @@ class ApiAction extends Action * * @return boolean false if user doesn't exist */ - function prepare($args) { StatusNet::setApi(true); // reduce exception reports to aid in debugging @@ -174,7 +172,6 @@ class ApiAction extends Action * * @return void */ - function handle($args) { header('Access-Control-Allow-Origin: *'); @@ -303,7 +300,7 @@ class ApiAction extends Action // StatusNet-specific - $twitter_user['statusnet:profile_url'] = $profile->profileurl; + $twitter_user['statusnet_profile_url'] = $profile->profileurl; return $twitter_user; } @@ -408,7 +405,7 @@ class ApiAction extends Action // StatusNet-specific - $twitter_status['statusnet:html'] = $notice->rendered; + $twitter_status['statusnet_html'] = $notice->rendered; return $twitter_status; } @@ -464,66 +461,70 @@ class ApiAction extends Action function twitterRssEntryArray($notice) { - $profile = $notice->getProfile(); - $entry = array(); - // We trim() to avoid extraneous whitespace in the output + if (Event::handle('StartRssEntryArray', array($notice, &$entry))) { + $profile = $notice->getProfile(); - $entry['content'] = common_xml_safe_str(trim($notice->rendered)); - $entry['title'] = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content)); - $entry['link'] = common_local_url('shownotice', array('notice' => $notice->id)); - $entry['published'] = common_date_iso8601($notice->created); + // We trim() to avoid extraneous whitespace in the output - $taguribase = TagURI::base(); - $entry['id'] = "tag:$taguribase:$entry[link]"; + $entry['content'] = common_xml_safe_str(trim($notice->rendered)); + $entry['title'] = $profile->nickname . ': ' . common_xml_safe_str(trim($notice->content)); + $entry['link'] = common_local_url('shownotice', array('notice' => $notice->id)); + $entry['published'] = common_date_iso8601($notice->created); - $entry['updated'] = $entry['published']; - $entry['author'] = $profile->getBestName(); + $taguribase = TagURI::base(); + $entry['id'] = "tag:$taguribase:$entry[link]"; - // Enclosures - $attachments = $notice->attachments(); - $enclosures = array(); + $entry['updated'] = $entry['published']; + $entry['author'] = $profile->getBestName(); - foreach ($attachments as $attachment) { - $enclosure_o=$attachment->getEnclosure(); - if ($enclosure_o) { - $enclosure = array(); - $enclosure['url'] = $enclosure_o->url; - $enclosure['mimetype'] = $enclosure_o->mimetype; - $enclosure['size'] = $enclosure_o->size; - $enclosures[] = $enclosure; + // Enclosures + $attachments = $notice->attachments(); + $enclosures = array(); + + foreach ($attachments as $attachment) { + $enclosure_o=$attachment->getEnclosure(); + if ($enclosure_o) { + $enclosure = array(); + $enclosure['url'] = $enclosure_o->url; + $enclosure['mimetype'] = $enclosure_o->mimetype; + $enclosure['size'] = $enclosure_o->size; + $enclosures[] = $enclosure; + } } - } - if (!empty($enclosures)) { - $entry['enclosures'] = $enclosures; - } - - // Tags/Categories - $tag = new Notice_tag(); - $tag->notice_id = $notice->id; - if ($tag->find()) { - $entry['tags']=array(); - while ($tag->fetch()) { - $entry['tags'][]=$tag->tag; + if (!empty($enclosures)) { + $entry['enclosures'] = $enclosures; } - } - $tag->free(); - // RSS Item specific - $entry['description'] = $entry['content']; - $entry['pubDate'] = common_date_rfc2822($notice->created); - $entry['guid'] = $entry['link']; + // Tags/Categories + $tag = new Notice_tag(); + $tag->notice_id = $notice->id; + if ($tag->find()) { + $entry['tags']=array(); + while ($tag->fetch()) { + $entry['tags'][]=$tag->tag; + } + } + $tag->free(); - if (isset($notice->lat) && isset($notice->lon)) { - // This is the format that GeoJSON expects stuff to be in. - // showGeoRSS() below uses it for XML output, so we reuse it - $entry['geo'] = array('type' => 'Point', - 'coordinates' => array((float) $notice->lat, - (float) $notice->lon)); - } else { - $entry['geo'] = null; + // RSS Item specific + $entry['description'] = $entry['content']; + $entry['pubDate'] = common_date_rfc2822($notice->created); + $entry['guid'] = $entry['link']; + + if (isset($notice->lat) && isset($notice->lon)) { + // This is the format that GeoJSON expects stuff to be in. + // showGeoRSS() below uses it for XML output, so we reuse it + $entry['geo'] = array('type' => 'Point', + 'coordinates' => array((float) $notice->lat, + (float) $notice->lon)); + } else { + $entry['geo'] = null; + } + + Event::handle('EndRssEntryArray', array($notice, &$entry)); } return $entry; @@ -552,7 +553,6 @@ class ApiAction extends Action $notifications = false; if ($source->isSubscribed($target)) { - $sub = Subscription::pkeyGet(array('subscriber' => $source->id, 'subscribed' => $target->id)); @@ -615,7 +615,11 @@ class ApiAction extends Action $this->showTwitterXmlStatus($value, 'retweeted_status'); break; default: - $this->element($element, null, $value); + if (strncmp($element, 'statusnet_', 10) == 0) { + $this->element('statusnet:'.substr($element, 10), null, $value); + } else { + $this->element($element, null, $value); + } } } $this->elementEnd($tag); @@ -640,6 +644,8 @@ class ApiAction extends Action foreach($twitter_user as $element => $value) { if ($element == 'status') { $this->showTwitterXmlStatus($twitter_user['status']); + } else if (strncmp($element, 'statusnet_', 10) == 0) { + $this->element('statusnet:'.substr($element, 10), null, $value); } else { $this->element($element, null, $value); } @@ -722,6 +728,12 @@ class ApiAction extends Action $this->endDocument('xml'); } + function showSingleAtomStatus($notice) + { + header('Content-Type: application/atom+xml; charset=utf-8'); + print $notice->asAtomEntry(true, true, true, $this->auth_user); + } + function show_single_json_status($notice) { $this->initDocument('json'); @@ -732,7 +744,6 @@ class ApiAction extends Action function showXmlTimeline($notice) { - $this->initDocument('xml'); $this->elementStart('statuses', array('type' => 'array', 'xmlns:statusnet' => 'http://status.net/schema/api/1/')); @@ -757,7 +768,6 @@ class ApiAction extends Action function showRssTimeline($notice, $title, $link, $subtitle, $suplink = null, $logo = null, $self = null) { - $this->initDocument('rss'); $this->element('title', null, $title); @@ -813,7 +823,6 @@ class ApiAction extends Action function showAtomTimeline($notice, $title, $id, $link, $subtitle=null, $suplink=null, $selfuri=null, $logo=null) { - $this->initDocument('atom'); $this->element('title', null, $title); @@ -853,12 +862,10 @@ class ApiAction extends Action } $this->endDocument('atom'); - } function showRssGroups($group, $title, $link, $subtitle) { - $this->initDocument('rss'); $this->element('title', null, $title); @@ -1006,7 +1013,6 @@ class ApiAction extends Action function showAtomGroups($group, $title, $id, $link, $subtitle=null, $selfuri=null) { - $this->initDocument('atom'); $this->element('title', null, common_xml_safe_str($title)); @@ -1037,7 +1043,6 @@ class ApiAction extends Action function showJsonTimeline($notice) { - $this->initDocument('json'); $statuses = array(); @@ -1063,7 +1068,6 @@ class ApiAction extends Action function showJsonGroups($group) { - $this->initDocument('json'); $groups = array(); @@ -1109,7 +1113,6 @@ class ApiAction extends Action function showTwitterXmlUsers($user) { - $this->initDocument('xml'); $this->elementStart('users', array('type' => 'array', 'xmlns:statusnet' => 'http://status.net/schema/api/1/')); @@ -1132,7 +1135,6 @@ class ApiAction extends Action function showJsonUsers($user) { - $this->initDocument('json'); $users = array(); @@ -1217,7 +1219,6 @@ class ApiAction extends Action $this->endXML(); break; case 'json': - // Check for JSONP callback if (isset($this->callback)) { print ')'; @@ -1251,23 +1252,29 @@ class ApiAction extends Action // Do not emit error header for JSONP if (!isset($this->callback)) { - header('HTTP/1.1 '.$code.' '.$status_string); + header('HTTP/1.1 ' . $code . ' ' . $status_string); } - if ($format == 'xml') { + switch($format) { + case 'xml': $this->initDocument('xml'); $this->elementStart('hash'); $this->element('error', null, $msg); $this->element('request', null, $_SERVER['REQUEST_URI']); $this->elementEnd('hash'); $this->endDocument('xml'); - } elseif ($format == 'json'){ + break; + case 'json': $this->initDocument('json'); $error_array = array('error' => $msg, 'request' => $_SERVER['REQUEST_URI']); print(json_encode($error_array)); $this->endDocument('json'); - } else { - + break; + case 'text': + header('Content-Type: text/plain; charset=utf-8'); + print $msg; + break; + default: // If user didn't request a useful format, throw a regular client error throw new ClientException($msg, $code); } @@ -1360,12 +1367,16 @@ class ApiAction extends Action return; } + private static function is_decimal($str) + { + return preg_match('/^[0-9]+$/', $str); + } + function getTargetUser($id) { if (empty($id)) { - // Twitter supports these other ways of passing the user ID - if (is_numeric($this->arg('id'))) { + if (self::is_decimal($this->arg('id'))) { return User::staticGet($this->arg('id')); } else if ($this->arg('id')) { $nickname = common_canonical_nickname($this->arg('id')); @@ -1373,7 +1384,7 @@ class ApiAction extends Action } else if ($this->arg('user_id')) { // This is to ensure that a non-numeric user_id still // overrides screen_name even if it doesn't get used - if (is_numeric($this->arg('user_id'))) { + if (self::is_decimal($this->arg('user_id'))) { return User::staticGet('id', $this->arg('user_id')); } } else if ($this->arg('screen_name')) { @@ -1384,7 +1395,7 @@ class ApiAction extends Action return $this->auth_user; } - } else if (is_numeric($id)) { + } else if (self::is_decimal($id)) { return User::staticGet($id); } else { $nickname = common_canonical_nickname($id); @@ -1397,33 +1408,37 @@ class ApiAction extends Action if (empty($id)) { // Twitter supports these other ways of passing the user ID - if (is_numeric($this->arg('id'))) { + if (self::is_decimal($this->arg('id'))) { return Profile::staticGet($this->arg('id')); } else if ($this->arg('id')) { + // Screen names currently can only uniquely identify a local user. $nickname = common_canonical_nickname($this->arg('id')); - return Profile::staticGet('nickname', $nickname); + $user = User::staticGet('nickname', $nickname); + return $user ? $user->getProfile() : null; } else if ($this->arg('user_id')) { // This is to ensure that a non-numeric user_id still // overrides screen_name even if it doesn't get used - if (is_numeric($this->arg('user_id'))) { + if (self::is_decimal($this->arg('user_id'))) { return Profile::staticGet('id', $this->arg('user_id')); } } else if ($this->arg('screen_name')) { $nickname = common_canonical_nickname($this->arg('screen_name')); - return Profile::staticGet('nickname', $nickname); + $user = User::staticGet('nickname', $nickname); + return $user ? $user->getProfile() : null; } - } else if (is_numeric($id)) { + } else if (self::is_decimal($id)) { return Profile::staticGet($id); } else { $nickname = common_canonical_nickname($id); - return Profile::staticGet('nickname', $nickname); + $user = User::staticGet('nickname', $nickname); + return $user ? $user->getProfile() : null; } } function getTargetGroup($id) { if (empty($id)) { - if (is_numeric($this->arg('id'))) { + if (self::is_decimal($this->arg('id'))) { return User_group::staticGet($this->arg('id')); } else if ($this->arg('id')) { $nickname = common_canonical_nickname($this->arg('id')); @@ -1436,7 +1451,7 @@ class ApiAction extends Action } else if ($this->arg('group_id')) { // This is to ensure that a non-numeric user_id still // overrides screen_name even if it doesn't get used - if (is_numeric($this->arg('group_id'))) { + if (self::is_decimal($this->arg('group_id'))) { return User_group::staticGet('id', $this->arg('group_id')); } } else if ($this->arg('group_name')) { @@ -1449,7 +1464,7 @@ class ApiAction extends Action } } - } else if (is_numeric($id)) { + } else if (self::is_decimal($id)) { return User_group::staticGet($id); } else { $nickname = common_canonical_nickname($id); @@ -1474,7 +1489,6 @@ class ApiAction extends Action */ function arg($key, $def=null) { - // XXX: Do even more input validation/scrubbing? if (array_key_exists($key, $this->args)) { @@ -1541,5 +1555,4 @@ class ApiAction extends Action return $uri; } - } diff --git a/lib/apiauth.php b/lib/apiauth.php index cf7a2692ca..1dacf1409b 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -68,7 +68,6 @@ require_once INSTALLDIR . '/lib/apioauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiAuthAction extends ApiAction { var $auth_user_nickname = null; @@ -83,7 +82,6 @@ class ApiAuthAction extends ApiAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -126,7 +124,6 @@ class ApiAuthAction extends ApiAction * * @return mixed the OAuthRequest or false */ - function getOAuthRequest() { ApiOauthAction::cleanRequest(); @@ -154,7 +151,6 @@ class ApiAuthAction extends ApiAction * * @return nothing */ - function checkOAuthRequest($request) { $datastore = new ApiStatusNetOAuthDataStore(); @@ -164,7 +160,6 @@ class ApiAuthAction extends ApiAction $server->add_signature_method($hmac_method); try { - $server->verify_request($request); $consumer = $request->get_parameter('oauth_consumer_key'); @@ -173,59 +168,64 @@ class ApiAuthAction extends ApiAction $app = Oauth_application::getByConsumerKey($consumer); if (empty($app)) { - common_log(LOG_WARNING, - 'Couldn\'t find the OAuth app for consumer key: ' . - $consumer); - throw new OAuthException('No application for that consumer key.'); + common_log( + LOG_WARNING, + 'API OAuth - Couldn\'t find the OAuth app for consumer key: ' . + $consumer + ); + // TRANS: OAuth exception thrown when no application is found for a given consumer key. + throw new OAuthException(_('No application for that consumer key.')); } // set the source attr + if ($app->name != 'anonymous') { + $this->source = $app->name; + } - $this->source = $app->name; $appUser = Oauth_application_user::staticGet('token', $access_token); if (!empty($appUser)) { - // If access_type == 0 we have either a request token // or a bad / revoked access token if ($appUser->access_type != 0) { - // Set the access level for the api call - $this->access = ($appUser->access_type & Oauth_application::$writeAccess) ? self::READ_WRITE : self::READ_ONLY; // Set the auth user - if (Event::handle('StartSetApiUser', array(&$user))) { $this->auth_user = User::staticGet('id', $appUser->profile_id); Event::handle('EndSetApiUser', array($user)); } $msg = "API OAuth authentication for user '%s' (id: %d) on behalf of " . - "application '%s' (id: %d) with %s access."; + "application '%s' (id: %d) with %s access."; - common_log(LOG_INFO, sprintf($msg, - $this->auth_user->nickname, - $this->auth_user->id, - $app->name, - $app->id, - ($this->access = self::READ_WRITE) ? - 'read-write' : 'read-only' - )); + common_log( + LOG_INFO, + sprintf( + $msg, + $this->auth_user->nickname, + $this->auth_user->id, + $app->name, + $app->id, + ($this->access = self::READ_WRITE) ? 'read-write' : 'read-only' + ) + ); } else { - throw new OAuthException('Bad access token.'); + // TRANS: OAuth exception given when an incorrect access token was given for a user. + throw new OAuthException(_('Bad access token.')); } } else { - // Also should not happen - - throw new OAuthException('No user for that token.'); + // TRANS: OAuth exception given when no user was found for a given token (no token was found). + throw new OAuthException(_('No user for that token.')); } } catch (OAuthException $e) { + $this->logAuthFailure($e->getMessage()); common_log(LOG_WARNING, 'API OAuthException - ' . $e->getMessage()); $this->clientError($e->getMessage(), 401, $this->format); exit; @@ -237,7 +237,6 @@ class ApiAuthAction extends ApiAction * * @return boolean true */ - function requiresAuth() { return true; @@ -249,7 +248,6 @@ class ApiAuthAction extends ApiAction * * @return boolean true or false */ - function checkBasicAuthUser($required = true) { $this->basicAuthProcessHeader(); @@ -264,8 +262,8 @@ class ApiAuthAction extends ApiAction header('WWW-Authenticate: Basic realm="' . $realm . '"'); // show error if the user clicks 'cancel' - - $this->clientError("Could not authenticate you.", 401, $this->format); + // TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". + $this->clientError(_('Could not authenticate you.'), 401, $this->format); exit; } else { @@ -283,22 +281,16 @@ class ApiAuthAction extends ApiAction } // By default, basic auth users have rw access - $this->access = self::READ_WRITE; if (empty($this->auth_user) && ($required || isset($_SERVER['PHP_AUTH_USER']))) { - - // basic authentication failed - - list($proxy, $ip) = common_client_ip(); - - $msg = sprintf( 'Failed API auth attempt, nickname = %1$s, ' . - 'proxy = %2$s, ip = %3$s', - $this->auth_user_nickname, - $proxy, - $ip); - common_log(LOG_WARNING, $msg); - $this->clientError("Could not authenticate you.", 401, $this->format); + $msg = sprintf( + "basic auth nickname = %s", + $this->auth_user_nickname + ); + $this->logAuthFailure($msg); + // TRANS: Client error thrown when authentication fails. + $this->clientError(_('Could not authenticate you.'), 401, $this->format); exit; } } @@ -310,7 +302,6 @@ class ApiAuthAction extends ApiAction * * @return void */ - function basicAuthProcessHeader() { $authHeaders = array('AUTHORIZATION', @@ -332,7 +323,6 @@ class ApiAuthAction extends ApiAction // Decode the HTTP_AUTHORIZATION header on php-cgi server self // on fcgid server the header name is AUTHORIZATION - $auth_hash = base64_decode(substr($authorization_header, 6)); list($this->auth_user_nickname, $this->auth_user_password) = explode(':', $auth_hash); @@ -345,4 +335,23 @@ class ApiAuthAction extends ApiAction } } } + + /** + * Log an API authentication failer. Collect the proxy and IP + * and log them + * + * @param string $logMsg additional log message + */ + function logAuthFailure($logMsg) + { + list($proxy, $ip) = common_client_ip(); + + $msg = sprintf( + 'API auth failure (proxy = %1$s, ip = %2$s) - ', + $proxy, + $ip + ); + + common_log(LOG_WARNING, $msg . $logMsg); + } } diff --git a/lib/apibareauth.php b/lib/apibareauth.php index da7af12614..043181b07a 100644 --- a/lib/apibareauth.php +++ b/lib/apibareauth.php @@ -30,7 +30,7 @@ * @author Evan Prodromou <evan@status.net> * @author mEDI <medi@milaro.net> * @author Sarven Capadisli <csarven@status.net> - * @author Zach Copley <zach@status.net> + * @author Zach Copley <zach@status.net> * @copyright 2009 StatusNet, Inc. * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 @@ -60,10 +60,8 @@ require_once INSTALLDIR.'/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiBareAuthAction extends ApiAuthAction { - /** * Take arguments for running * @@ -72,7 +70,6 @@ class ApiBareAuthAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -84,18 +81,15 @@ class ApiBareAuthAction extends ApiAuthAction * * @return boolean true or false */ - function requiresAuth() { // If the site is "private", all API methods except statusnet/config // need authentication - if (common_config('site', 'private')) { return true; } // check whether a user has been specified somehow - $id = $this->arg('id'); $user_id = $this->arg('user_id'); $screen_name = $this->arg('screen_name'); @@ -106,5 +100,4 @@ class ApiBareAuthAction extends ApiAuthAction return false; } - } diff --git a/lib/apioauth.php b/lib/apioauth.php index 4cb8a67754..54cecf92a8 100644 --- a/lib/apioauth.php +++ b/lib/apioauth.php @@ -30,13 +30,12 @@ if (!defined('STATUSNET')) { exit(1); } - +require_once INSTALLDIR . '/lib/apiaction.php'; require_once INSTALLDIR . '/lib/apioauthstore.php'; /** - * Base action for API OAuth enpoints. Clean up the - * the request, and possibly some other common things - * here. + * Base action for API OAuth enpoints. Clean up the + * request. Some other common functions. * * @category API * @package StatusNet @@ -44,15 +43,13 @@ require_once INSTALLDIR . '/lib/apioauthstore.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - -class ApiOauthAction extends Action +class ApiOauthAction extends ApiAction { /** * Is this a read-only action? * * @return boolean false */ - function isReadOnly($args) { return false; @@ -73,50 +70,40 @@ class ApiOauthAction extends Action * * @return void */ - function handle($args) { parent::handle($args); self::cleanRequest(); } + /* + * Clean up the request so the OAuth library doesn't find + * any extra parameters or anything else it's not expecting. + * I'm looking at you, p parameter. + */ + static function cleanRequest() { // kill evil effects of magical slashing - if (get_magic_quotes_gpc() == 1) { $_POST = array_map('stripslashes', $_POST); $_GET = array_map('stripslashes', $_GET); } // strip out the p param added in index.php - - // XXX: should we strip anything else? Or alternatively - // only allow a known list of params? - unset($_GET['p']); unset($_POST['p']); - } + unset($_REQUEST['p']); - function getCallback($url, $params) - { - foreach ($params as $k => $v) { - $url = $this->appendQueryVar($url, - OAuthUtil::urlencode_rfc3986($k), - OAuthUtil::urlencode_rfc3986($v)); + $queryArray = explode('&', $_SERVER['QUERY_STRING']); + + for ($i = 0; $i < sizeof($queryArray); $i++) { + if (substr($queryArray[$i], 0, 2) == 'p=') { + unset($queryArray[$i]); + } } - return $url; - } - - function appendQueryVar($url, $k, $v) { - $url = preg_replace('/(.*)(\?|&)' . $k . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); - $url = substr($url, 0, -1); - if (strpos($url, '?') === false) { - return ($url . '?' . $k . '=' . $v); - } else { - return ($url . '&' . $k . '=' . $v); - } + $_SERVER['QUERY_STRING'] = implode('&', $queryArray); } } diff --git a/lib/apioauthstore.php b/lib/apioauthstore.php index 1bb11cbca5..2a65fffc4b 100644 --- a/lib/apioauthstore.php +++ b/lib/apioauthstore.php @@ -23,26 +23,71 @@ require_once INSTALLDIR . '/lib/oauthstore.php'; class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore { - - function lookup_consumer($consumer_key) + function lookup_consumer($consumerKey) { - $con = Consumer::staticGet('consumer_key', $consumer_key); + $con = Consumer::staticGet('consumer_key', $consumerKey); if (!$con) { - return null; + + // Create an anon consumer and anon application if one + // doesn't exist already + if ($consumerKey == 'anonymous') { + + common_debug("API OAuth - creating anonymous consumer"); + $con = new Consumer(); + $con->consumer_key = $consumerKey; + $con->consumer_secret = $consumerKey; + $con->created = common_sql_now(); + + $result = $con->insert(); + if (!$result) { + // TRANS: Server error displayed when trying to create an anynymous OAuth consumer. + $this->serverError(_('Could not create anonymous consumer.')); + } + + $app = Oauth_application::getByConsumerKey('anonymous'); + + if (!$app) { + common_debug("API OAuth - creating anonymous application"); + $app = new OAuth_application(); + $app->owner = 1; // XXX: What to do here? + $app->consumer_key = $con->consumer_key; + $app->name = 'anonymous'; + $app->icon = 'default-avatar-stream.png'; // XXX: Fix this! + $app->description = "An anonymous application"; + // XXX: allow the user to set the access type when + // authorizing? Currently we default to r+w for anonymous + // OAuth client applications + $app->access_type = 3; // read + write + $app->type = 2; // desktop + $app->created = common_sql_now(); + + $id = $app->insert(); + + if (!$id) { + // TRANS: Server error displayed when trying to create an anynymous OAuth application. + $this->serverError(_("Could not create anonymous OAuth application.")); + } + } + } else { + return null; + } } - return new OAuthConsumer($con->consumer_key, - $con->consumer_secret); + return new OAuthConsumer( + $con->consumer_key, + $con->consumer_secret + ); } function getAppByRequestToken($token_key) { - // Look up the full req tokenx - - $req_token = $this->lookup_token(null, - 'request', - $token_key); + // Look up the full req token + $req_token = $this->lookup_token( + null, + 'request', + $token_key + ); if (empty($req_token)) { common_debug("couldn't get request token from oauth datastore"); @@ -50,7 +95,6 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore } // Look up the full Token - $token = new Token(); $token->tok = $req_token->key; $result = $token->find(true); @@ -61,7 +105,6 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore } // Look up the app - $app = new Oauth_application(); $app->consumer_key = $token->consumer_key; $result = $app->find(true); @@ -74,87 +117,146 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore } } - function new_access_token($token, $consumer) + function new_access_token($token, $consumer, $verifier) { - common_debug('new_access_token("'.$token->key.'","'.$consumer->key.'")', __FILE__); + common_debug( + sprintf( + "New access token from request token %s, consumer %s and verifier %s ", + $token, + $consumer, + $verifier + ), + __FILE__ + ); $rt = new Token(); + $rt->consumer_key = $consumer->key; - $rt->tok = $token->key; - $rt->type = 0; // request + $rt->tok = $token->key; + $rt->type = 0; // request $app = Oauth_application::getByConsumerKey($consumer->key); + assert(!empty($app)); - if (empty($app)) { - common_debug("empty app!"); - } + if ($rt->find(true) && $rt->state == 1 && $rt->verifier == $verifier) { // authorized - if ($rt->find(true) && $rt->state == 1) { // authorized - common_debug('request token found.', __FILE__); + common_debug('Request token found.', __FILE__); - // find the associated user of the app + // find the app and profile associated with this token + $tokenAssoc = Oauth_token_association::staticGet('token', $rt->tok); + + if (!$tokenAssoc) { + throw new Exception( + // TRANS: Exception thrown when no token association could be found. + _('Could not find a profile and application associated with the request token.') + ); + } + + // check to see if we have previously issued an access token for this application + // and profile $appUser = new Oauth_application_user(); + $appUser->application_id = $app->id; - $appUser->token = $rt->tok; + $appUser->profile_id = $tokenAssoc->profile_id; + $result = $appUser->find(true); if (!empty($result)) { - common_debug("Oath app user found."); - } else { - common_debug("Oauth app user not found. app id $app->id token $rt->tok"); - return null; - } - // go ahead and make the access token + common_log(LOG_INFO, + sprintf( + "Existing access token found for application %s, profile %s.", + $app->id, + $tokenAssoc->profile_id + ) + ); - $at = new Token(); - $at->consumer_key = $consumer->key; - $at->tok = common_good_rand(16); - $at->secret = common_good_rand(16); - $at->type = 1; // access - $at->created = DB_DataObject_Cast::dateTime(); + $at = new Token(); - if (!$at->insert()) { - $e = $at->_lastError; - common_debug('access token "'.$at->tok.'" not inserted: "'.$e->message.'"', __FILE__); - return null; - } else { - common_debug('access token "'.$at->tok.'" inserted', __FILE__); - // burn the old one - $orig_rt = clone($rt); - $rt->state = 2; // used - if (!$rt->update($orig_rt)) { - return null; + // fetch the full access token + $at->consumer_key = $consumer->key; + $at->tok = $appUser->token; + + $result = $at->find(true); + + if (!$result) { + throw new Exception( + // TRANS: Exception thrown when no access token can be issued. + _('Could not issue access token.') + ); } - common_debug('request token "'.$rt->tok.'" updated', __FILE__); - // update the token from req to access for the user + // Yay, we can re-issue the access token + return new OAuthToken($at->tok, $at->secret); - $orig = clone($appUser); - $appUser->token = $at->tok; + } else { - // It's at this point that we change the access type - // to whatever the application's access is. Request - // tokens should always have an access type of 0, and - // therefore be unuseable for making requests for - // protected resources. + common_log(LOG_INFO, + sprintf( + "Creating new access token for application %s, profile %s.", + $app->id, + $tokenAssoc->profile_id + ) + ); - $appUser->access_type = $app->access_type; + // make a brand new access token + $at = new Token(); - $result = $appUser->update($orig); + $at->consumer_key = $consumer->key; + $at->tok = common_good_rand(16); + $at->secret = common_good_rand(16); + $at->type = 1; // access + $at->verifier = $verifier; + $at->verified_callback = $rt->verified_callback; // 1.0a + $at->created = common_sql_now(); - if (empty($result)) { - common_debug('couldn\'t update OAuth app user.'); + if (!$at->insert()) { + $e = $at->_lastError; + common_debug('access token "' . $at->tok . '" not inserted: "' . $e->message . '"', __FILE__); return null; + } else { + common_debug('access token "' . $at->tok . '" inserted', __FILE__); + // burn the old one + $orig_rt = clone($rt); + $rt->state = 2; // used + if (!$rt->update($orig_rt)) { + return null; + } + common_debug('request token "' . $rt->tok . '" updated', __FILE__); + } + + // insert a new Oauth_application_user record w/access token + $appUser = new Oauth_application_user(); + + $appUser->profile_id = $tokenAssoc->profile_id;; + $appUser->application_id = $app->id; + $appUser->access_type = $app->access_type; + $appUser->token = $at->tok; + $appUser->created = common_sql_now(); + + $result = $appUser->insert(); + + if (!$result) { + common_log_db_error($appUser, 'INSERT', __FILE__); + // TRANS: Server error displayed when a database error occurs. + $this->serverError(_('Database error inserting OAuth application user.')); } // Okay, good - return new OAuthToken($at->tok, $at->secret); } } else { + + // the token was not authorized or not verfied + common_log( + LOG_INFO, + sprintf( + "API OAuth - Attempt to exchange unauthorized or unverified request token %s for an access token.", + $rt->tok + ) + ); return null; } } @@ -172,19 +274,53 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore * * @return void */ - public function revoke_token($token_key, $type = 0) { - $rt = new Token(); - $rt->tok = $token_key; - $rt->type = $type; + $rt = new Token(); + $rt->tok = $token_key; + $rt->type = $type; $rt->state = 0; + if (!$rt->find(true)) { - throw new Exception('Tried to revoke unknown token'); + // TRANS: Exception thrown when an attempt is made to revoke an unknown token. + throw new Exception(_('Tried to revoke unknown token.')); } + if (!$rt->delete()) { - throw new Exception('Failed to delete revoked token'); + // TRANS: Exception thrown when an attempt is made to remove a revoked token. + throw new Exception(_('Failed to delete revoked token.')); } } -} + /* + * Create a new request token. Overrided to support OAuth 1.0a callback + * + * @param OAuthConsumer $consumer the OAuth Consumer for this token + * @param string $callback the verified OAuth callback URL + * + * @return OAuthToken $token a new unauthorized OAuth request token + */ + function new_request_token($consumer, $callback) + { + $t = new Token(); + $t->consumer_key = $consumer->key; + $t->tok = common_good_rand(16); + $t->secret = common_good_rand(16); + $t->type = 0; // request + $t->state = 0; // unauthorized + $t->verified_callback = $callback; + if ($callback === 'oob') { + // six digit pin + $t->verifier = mt_rand(0, 9999999); + } else { + $t->verifier = common_good_rand(8); + } + + $t->created = DB_DataObject_Cast::dateTime(); + if (!$t->insert()) { + return null; + } else { + return new OAuthToken($t->tok, $t->secret); + } + } +} diff --git a/lib/apiprivateauth.php b/lib/apiprivateauth.php index 5e78c65a19..df401c382e 100644 --- a/lib/apiprivateauth.php +++ b/lib/apiprivateauth.php @@ -29,7 +29,7 @@ * @author Evan Prodromou <evan@status.net> * @author mEDI <medi@milaro.net> * @author Sarven Capadisli <csarven@status.net> - * @author Zach Copley <zach@status.net> + * @author Zach Copley <zach@status.net> * @copyright 2009 StatusNet, Inc. * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 @@ -58,26 +58,21 @@ require_once INSTALLDIR.'/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiPrivateAuthAction extends ApiAuthAction { - /** * Does this API resource require authentication? * * @return boolean true or false */ - function requiresAuth() { // If the site is "private", all API methods except statusnet/config // need authentication - if (common_config('site', 'private')) { return true; } return false; } - } diff --git a/lib/applicationeditform.php b/lib/applicationeditform.php index 81c8fb0181..f53c31feb4 100644 --- a/lib/applicationeditform.php +++ b/lib/applicationeditform.php @@ -43,13 +43,11 @@ require_once INSTALLDIR . '/lib/form.php'; * @link http://status.net/ * */ - class ApplicationEditForm extends Form { /** * group for user to join */ - var $application = null; /** @@ -58,7 +56,6 @@ class ApplicationEditForm extends Form * @param Action $out output channel * @param User_group $group group to join */ - function __construct($out=null, $application=null) { parent::__construct($out); @@ -71,7 +68,6 @@ class ApplicationEditForm extends Form * * @return string ID of the form */ - function id() { if ($this->application) { @@ -89,7 +85,6 @@ class ApplicationEditForm extends Form * * @return string the method to use for submitting */ - function method() { $this->enctype = 'multipart/form-data'; @@ -101,7 +96,6 @@ class ApplicationEditForm extends Form * * @return string of the form class */ - function formClass() { return 'form_settings'; @@ -112,7 +106,6 @@ class ApplicationEditForm extends Form * * @return string URL of the action */ - function action() { $cur = common_current_user(); @@ -130,7 +123,6 @@ class ApplicationEditForm extends Form * * @return void */ - function formLegend() { // TRANS: Form legend. @@ -142,7 +134,6 @@ class ApplicationEditForm extends Form * * @return void */ - function formData() { if ($this->application) { @@ -206,7 +197,8 @@ class ApplicationEditForm extends Form $maxDesc = Oauth_application::maxDesc(); if ($maxDesc > 0) { // TRANS: Form input field instructions. - $descInstr = sprintf(_('Describe your application in %d characters'), + // TRANS: %d is the number of available characters for the description. + $descInstr = sprintf(ngettext('Describe your application in %d character','Describe your application in %d characters',$maxDesc), $maxDesc); } else { // TRANS: Form input field instructions. @@ -265,8 +257,9 @@ class ApplicationEditForm extends Form // Default to Browser - if ($this->application->type == Oauth_application::$browser - || empty($this->application->type)) { + if (empty($this->application) + || empty($this->application->type) + || $this->application->type == Oauth_application::$browser) { $attrs['checked'] = 'checked'; } @@ -283,7 +276,7 @@ class ApplicationEditForm extends Form 'class' => 'radio', 'value' => Oauth_application::$desktop); - if ($this->application->type == Oauth_application::$desktop) { + if (!empty($this->application) && $this->application->type == Oauth_application::$desktop) { $attrs['checked'] = 'checked'; } @@ -307,8 +300,9 @@ class ApplicationEditForm extends Form // default to read-only access - if ($this->application->access_type & Oauth_application::$readAccess - || empty($this->application->access_type)) { + if (empty($this->application) + || empty($this->application->access_type) + || $this->application->access_type & Oauth_application::$readAccess) { $attrs['checked'] = 'checked'; } @@ -325,7 +319,8 @@ class ApplicationEditForm extends Form 'class' => 'radio', 'value' => 'rw'); - if ($this->application->access_type & Oauth_application::$readAccess + if (!empty($this->application) + && $this->application->access_type & Oauth_application::$readAccess && $this->application->access_type & Oauth_application::$writeAccess ) { $attrs['checked'] = 'checked'; @@ -350,16 +345,15 @@ class ApplicationEditForm extends Form * * @return void */ - function formActions() { - // TRANS: Button label + // TRANS: Button label in the "Edit application" form. $this->out->submit('cancel', _m('BUTTON','Cancel'), 'submit form_action-primary', - // TRANS: Submit button title + // TRANS: Submit button title. 'cancel', _('Cancel')); - // TRANS: Button label + // TRANS: Button label in the "Edit application" form. $this->out->submit('save', _m('BUTTON','Save'), 'submit form_action-secondary', - // TRANS: Submit button title + // TRANS: Submit button title. 'save', _('Save')); } } diff --git a/lib/applicationlist.php b/lib/applicationlist.php index 904f8981d1..3f50f110ba 100644 --- a/lib/applicationlist.php +++ b/lib/applicationlist.php @@ -1,5 +1,4 @@ <?php - /** * StatusNet, the distributed open-source microblogging tool * @@ -23,7 +22,7 @@ * @category Application * @package StatusNet * @author Zach Copley <zach@status.net> - * @copyright 2008-2009 StatusNet, Inc. + * @copyright 2008-2010 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/ */ @@ -45,7 +44,6 @@ define('APPS_PER_PAGE', 20); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApplicationList extends Widget { /** Current application, application query */ @@ -57,14 +55,13 @@ class ApplicationList extends Widget /** Action object using us. */ var $action = null; - function __construct($application, $owner=null, $action=null, $connections = false) + function __construct($application, $owner=null, $action=null) { parent::__construct($action); $this->application = $application; $this->owner = $owner; $this->action = $action; - $this->connections = $connections; } function show() @@ -90,24 +87,34 @@ class ApplicationList extends Widget { $user = common_current_user(); - $this->out->elementStart('li', array('class' => 'application', - 'id' => 'oauthclient-' . $this->application->id)); + $this->out->elementStart( + 'li', + array( + 'class' => 'application', + 'id' => 'oauthclient-' . $this->application->id + ) + ); $this->out->elementStart('span', 'vcard author'); - if (!$this->connections) { - $this->out->elementStart('a', - array('href' => common_local_url('showapplication', - array('id' => $this->application->id)), - 'class' => 'url')); - } else { - $this->out->elementStart('a', array('href' => $this->application->source_url, - 'class' => 'url')); - } + $this->out->elementStart( + 'a', + array( + 'href' => common_local_url( + 'showapplication', + array('id' => $this->application->id)), + 'class' => 'url' + ) + ); if (!empty($this->application->icon)) { - $this->out->element('img', array('src' => $this->application->icon, - 'class' => 'photo avatar')); + $this->out->element( + 'img', + array( + 'src' => $this->application->icon, + 'class' => 'photo avatar' + ) + ); } $this->out->element('span', 'fn', $this->application->name); @@ -116,58 +123,182 @@ class ApplicationList extends Widget $this->out->raw(' by '); - $this->out->element('a', array('href' => $this->application->homepage, - 'class' => 'url'), - $this->application->organization); + $this->out->element( + 'a', + array( + 'href' => $this->application->homepage, + 'class' => 'url' + ), + $this->application->organization + ); $this->out->element('p', 'note', $this->application->description); $this->out->elementEnd('li'); - if ($this->connections) { - $appUser = Oauth_application_user::getByKeys($this->owner, $this->application); - - if (empty($appUser)) { - common_debug("empty appUser!"); - } - - $this->out->elementStart('li'); - - // TRANS: Application access type - $readWriteText = _('read-write'); - // TRANS: Application access type - $readOnlyText = _('read-only'); - - $access = ($this->application->access_type & Oauth_application::$writeAccess) - ? $readWriteText : $readOnlyText; - $modifiedDate = common_date_string($appUser->modified); - // TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) - $txt = sprintf(_('Approved %1$s - "%2$s" access.'),$modifiedDate,$access); - - $this->out->raw($txt); - $this->out->elementEnd('li'); - - $this->out->elementStart('li', 'entity_revoke'); - $this->out->elementStart('form', array('id' => 'form_revoke_app', - 'class' => 'form_revoke_app', - 'method' => 'POST', - 'action' => - common_local_url('oauthconnectionssettings'))); - $this->out->elementStart('fieldset'); - $this->out->hidden('id', $this->application->id); - $this->out->hidden('token', common_session_token()); - // TRANS: Button label - $this->out->submit('revoke', _m('BUTTON','Revoke')); - $this->out->elementEnd('fieldset'); - $this->out->elementEnd('form'); - $this->out->elementEnd('li'); - } } /* Override this in subclasses. */ + function showOwnerControls() + { + return; + } +} +/** + * Widget to show a list of connected OAuth clients + * + * @category Application + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class ConnectedAppsList extends Widget +{ + /** Current connected application query */ + var $connection = null; + + /** Owner of this list */ + var $owner = null; + + /** Action object using us. */ + var $action = null; + + function __construct($connection, $owner=null, $action=null) + { + parent::__construct($action); + + common_debug("ConnectedAppsList constructor"); + + $this->connection = $connection; + $this->owner = $owner; + $this->action = $action; + } + + /* Override this in subclasses. */ function showOwnerControls() { return; } + function show() + { + $this->out->elementStart('ul', 'applications'); + + $cnt = 0; + + while ($this->connection->fetch()) { + $cnt++; + if($cnt > APPS_PER_PAGE) { + break; + } + $this->showConnection(); + } + + $this->out->elementEnd('ul'); + + return $cnt; + } + + function showConnection() + { + $app = Oauth_application::staticGet('id', $this->connection->application_id); + + $this->out->elementStart( + 'li', + array( + 'class' => 'application', + 'id' => 'oauthclient-' . $app->id + ) + ); + + $this->out->elementStart('span', 'vcard author'); + + $this->out->elementStart( + 'a', + array( + 'href' => $app->source_url, + 'class' => 'url' + ) + ); + + if (!empty($app->icon)) { + $this->out->element( + 'img', + array( + 'src' => $app->icon, + 'class' => 'photo avatar' + ) + ); + } + if ($app->name != 'anonymous') { + $this->out->element('span', 'fn', $app->name); + } + $this->out->elementEnd('a'); + + if ($app->name == 'anonymous') { + $this->out->element('span', 'fn', "Unknown application"); + } + + $this->out->elementEnd('span'); + + if ($app->name != 'anonymous') { + // @todo FIXME: i18n trouble. + $this->out->raw(_(' by ')); + + $this->out->element( + 'a', + array( + 'href' => $app->homepage, + 'class' => 'url' + ), + $app->organization + ); + } + + // TRANS: Application access type + $readWriteText = _('read-write'); + // TRANS: Application access type + $readOnlyText = _('read-only'); + + $access = ($this->connection->access_type & Oauth_application::$writeAccess) + ? $readWriteText : $readOnlyText; + $modifiedDate = common_date_string($this->connection->modified); + // TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") + $txt = sprintf(_('Approved %1$s - "%2$s" access.'), $modifiedDate, $access); + + $this->out->raw(" - $txt"); + if (!empty($app->description)) { + $this->out->element( + 'p', array('class' => 'application_description'), + $app->description + ); + } + $this->out->element( + 'p', array( + 'class' => 'access_token'), + // TRANS: Access token in the application list. + // TRANS: %s are the first 7 characters of the access token. + sprintf(_('Access token starting with: %s'), substr($this->connection->token, 0, 7)) + ); + + $this->out->elementStart( + 'form', + array( + 'id' => 'form_revoke_app', + 'class' => 'form_revoke_app', + 'method' => 'POST', + 'action' => common_local_url('oauthconnectionssettings') + ) + ); + $this->out->elementStart('fieldset'); + $this->out->hidden('oauth_token', $this->connection->token); + $this->out->hidden('token', common_session_token()); + // TRANS: Button label + $this->out->submit('revoke', _m('BUTTON','Revoke')); + $this->out->elementEnd('fieldset'); + $this->out->elementEnd('form'); + + $this->out->elementEnd('li'); + } } diff --git a/lib/atom10feed.php b/lib/atom10feed.php index a46d49f350..3ae9dc81be 100644 --- a/lib/atom10feed.php +++ b/lib/atom10feed.php @@ -109,7 +109,7 @@ class Atom10Feed extends XMLStringer $xs->element('name', null, $name); } else { throw new Atom10FeedException( - 'author element must contain a name element.' + _('author element must contain a name element.') ); } @@ -323,5 +323,4 @@ class Atom10Feed extends XMLStringer array_push($this->links, $attrs); } - } diff --git a/lib/atomcategory.php b/lib/atomcategory.php index 4cc3b4f4d4..9763023f75 100644 --- a/lib/atomcategory.php +++ b/lib/atomcategory.php @@ -72,6 +72,6 @@ class AtomCategory } $xs = new XMLStringer(); $xs->element('category', $attribs); - return $xs->asString(); + return $xs->getString(); } } diff --git a/lib/atomusernoticefeed.php b/lib/atomusernoticefeed.php index 785db4915b..ec368f5ca1 100644 --- a/lib/atomusernoticefeed.php +++ b/lib/atomusernoticefeed.php @@ -44,7 +44,7 @@ if (!defined('STATUSNET')) */ class AtomUserNoticeFeed extends AtomNoticeFeed { - private $user; + protected $user; /** * Constructor @@ -55,7 +55,6 @@ class AtomUserNoticeFeed extends AtomNoticeFeed * * @return void */ - function __construct($user, $cur = null, $indent = true) { parent::__construct($cur, $indent); $this->user = $user; @@ -90,7 +89,7 @@ class AtomUserNoticeFeed extends AtomNoticeFeed array('nickname' => $user->nickname) ) ); - + $self = common_local_url('ApiTimelineUser', array('id' => $user->id, 'format' => 'atom')); diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index 59cab9532c..7e536925bf 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -49,7 +49,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @see NoticeListItem * @see ProfileNoticeList */ - class AttachmentList extends Widget { /** the current stream of notices being displayed. */ @@ -61,7 +60,6 @@ class AttachmentList extends Widget * * @param Notice $notice stream of notices from DB_DataObject */ - function __construct($notice, $out=null) { parent::__construct($out); @@ -76,29 +74,38 @@ class AttachmentList extends Widget * * @return int count of notices listed. */ - function show() { $atts = new File; $att = $atts->getAttachments($this->notice->id); if (empty($att)) return 0; - $this->out->elementStart('dl', array('id' =>'attachments', - 'class' => 'entry-content')); - // TRANS: DT element label in attachment list. - $this->out->element('dt', null, _('Attachments')); - $this->out->elementStart('dd'); - $this->out->elementStart('ol', array('class' => 'attachments')); + $this->showListStart(); foreach ($att as $n=>$attachment) { $item = $this->newListItem($attachment); $item->show(); } + $this->showListEnd(); + + return count($att); + } + + function showListStart() + { + $this->out->elementStart('dl', array('id' =>'attachments', + 'class' => 'entry-content')); + // TRANS: DT element label in attachment list. + $this->out->element('dt', null, _('Attachments')); + $this->out->elementStart('dd'); + $this->out->elementStart('ol', array('class' => 'attachments')); + } + + function showListEnd() + { $this->out->elementEnd('dd'); $this->out->elementEnd('ol'); $this->out->elementEnd('dl'); - - return count($att); } /** @@ -111,7 +118,6 @@ class AttachmentList extends Widget * * @return NoticeListItem a list item for displaying the notice */ - function newListItem($attachment) { return new AttachmentListItem($attachment, $this->out); @@ -135,7 +141,6 @@ class AttachmentList extends Widget * @see NoticeList * @see ProfileNoticeListItem */ - class AttachmentListItem extends Widget { /** The attachment this item will show. */ @@ -151,7 +156,6 @@ class AttachmentListItem extends Widget * * @param Notice $notice The notice we'll display */ - function __construct($attachment, $out=null) { parent::__construct($out); @@ -185,7 +189,6 @@ class AttachmentListItem extends Widget * * @return void */ - function show() { $this->showStart(); @@ -194,7 +197,10 @@ class AttachmentListItem extends Widget } function linkAttr() { - return array('class' => 'attachment', 'href' => $this->attachment->url, 'id' => 'attachment-' . $this->attachment->id); + return array('class' => 'attachment', + 'href' => $this->attachment->url, + 'id' => 'attachment-' . $this->attachment->id, + 'title' => $this->title()); } function showLink() { @@ -210,18 +216,39 @@ class AttachmentListItem extends Widget } function showRepresentation() { - $thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id); - if (!empty($thumbnail)) { - $this->out->element('img', array('alt' => '', 'src' => $thumbnail->url, 'width' => $thumbnail->width, 'height' => $thumbnail->height)); + $thumb = $this->getThumbInfo(); + if ($thumb) { + $this->out->element('img', array('alt' => '', 'src' => $thumb->url, 'width' => $thumb->width, 'height' => $thumb->height)); } } + /** + * Pull a thumbnail image reference for the given file, and if necessary + * resize it to match currently thumbnail size settings. + * + * @return File_Thumbnail or false/null + */ + function getThumbInfo() + { + $thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id); + if ($thumbnail) { + $maxWidth = common_config('attachments', 'thumb_width'); + $maxHeight = common_config('attachments', 'thumb_height'); + if ($thumbnail->width > $maxWidth) { + $thumb = clone($thumbnail); + $thumb->width = $maxWidth; + $thumb->height = intval($thumbnail->height * $maxWidth / $thumbnail->width); + return $thumb; + } + } + return $thumbnail; + } + /** * start a single notice. * * @return void */ - function showStart() { // XXX: RDFa @@ -236,13 +263,15 @@ class AttachmentListItem extends Widget * * @return void */ - function showEnd() { $this->out->elementEnd('li'); } } +/** + * used for one-off attachment action + */ class Attachment extends AttachmentListItem { function showLink() { @@ -257,7 +286,7 @@ class Attachment extends AttachmentListItem $this->out->elementEnd('div'); if (!empty($this->oembed->author_name) || !empty($this->oembed->provider)) { - $this->out->elementStart('div', array('id' => 'oembed_info', + $this->out->elementStart('div', array('id' => 'oembed_info', 'class' => 'entry-content')); if (!empty($this->oembed->author_name)) { $this->out->elementStart('dl', 'vcard author'); @@ -426,16 +455,6 @@ class Attachment extends AttachmentListItem function showFallback() { - // If we don't know how to display an attachment inline, we probably - // shouldn't have gotten to this point. - // - // But, here we are... displaying details on a file or remote URL - // either on the main view or in an ajax-loaded lightbox. As a lesser - // of several evils, we'll try redirecting to the actual target via - // client-side JS. - - common_log(LOG_ERR, "Empty or unknown type for file id {$this->attachment->id}; falling back to client-side redirect."); - $this->out->raw('<script>window.location = ' . json_encode($this->attachment->url) . ';</script>'); + // still needed: should show a link? } } - diff --git a/lib/attachmentnoticesection.php b/lib/attachmentnoticesection.php index 578c171ff5..25e64adf9e 100644 --- a/lib/attachmentnoticesection.php +++ b/lib/attachmentnoticesection.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AttachmentNoticeSection extends NoticeSection { function showContent() { @@ -59,11 +58,12 @@ class AttachmentNoticeSection extends NoticeSection $notice->orderBy('created desc'); $notice->selectAdd('post_id as id'); $notice->find(); - return $notice; + return $notice; } function title() { + // TRANS: Title. return _('Notices where this attachment appears'); } @@ -72,4 +72,3 @@ class AttachmentNoticeSection extends NoticeSection return 'popular_notices'; } } - diff --git a/lib/attachmenttagcloudsection.php b/lib/attachmenttagcloudsection.php index e2f85ae025..2c8fc5ee1a 100644 --- a/lib/attachmenttagcloudsection.php +++ b/lib/attachmenttagcloudsection.php @@ -40,11 +40,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AttachmentTagCloudSection extends TagCloudSection { function title() { + // TRANS: Title. return _('Tags for this attachment'); } @@ -80,4 +80,3 @@ class AttachmentTagCloudSection extends TagCloudSection return $notice_tag; } } - diff --git a/lib/authenticationplugin.php b/lib/authenticationplugin.php index dbdf206298..5e878c155b 100644 --- a/lib/authenticationplugin.php +++ b/lib/authenticationplugin.php @@ -40,12 +40,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @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; @@ -218,12 +217,14 @@ abstract class AuthenticationPlugin extends Plugin //stop handling of other handlers, because what was requested was done return false; }else{ - throw new Exception(_('Password changing failed')); + // TRANS: Exception thrown when a password change fails. + 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')); + // TRANS: Exception thrown when a password change fails. + throw new Exception(_('Password changing failed.')); }else{ //let another handler try return null; @@ -233,7 +234,8 @@ abstract class AuthenticationPlugin extends Plugin }else{ if($this->authoritative){ //since we're authoritative, no other plugin could do this - throw new Exception(_('Password changing is not allowed')); + // TRANS: Exception thrown when a password change attempt fails because it is not allowed. + throw new Exception(_('Password changing is not allowed.')); } } } @@ -267,4 +269,3 @@ abstract class AuthenticationPlugin extends Plugin return true; } } - diff --git a/lib/authorizationplugin.php b/lib/authorizationplugin.php index d71f772435..dda604addd 100644 --- a/lib/authorizationplugin.php +++ b/lib/authorizationplugin.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @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? @@ -103,4 +102,3 @@ abstract class AuthorizationPlugin extends Plugin } } } - diff --git a/lib/blockform.php b/lib/blockform.php index b6652b1f69..1af5e8cfd0 100644 --- a/lib/blockform.php +++ b/lib/blockform.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * * @see UnblockForm */ - class BlockForm extends ProfileActionForm { /** @@ -63,9 +62,9 @@ class BlockForm extends ProfileActionForm * * @return string Title of the form, internationalized */ - function title() { + // TRANS: Title for the form to block a user. return _('Block'); } @@ -74,9 +73,9 @@ class BlockForm extends ProfileActionForm * * @return string description of the form, internationalized */ - function description() { + // TRANS: Description of the form to block a user. return _('Block this user'); } } diff --git a/lib/cache.php b/lib/cache.php index c09a1dd9f2..8dc97a6428 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -41,7 +41,6 @@ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class Cache { var $_items = array(); @@ -56,7 +55,6 @@ class Cache * * @return Cache cache object */ - static function instance() { if (is_null(self::$_inst)) { @@ -77,18 +75,66 @@ class Cache * * @return string full key */ - static function key($extra) { $base_key = common_config('cache', 'base'); if (empty($base_key)) { - $base_key = common_keyize(common_config('site', 'name')); + $base_key = self::keyize(common_config('site', 'name')); } return 'statusnet:' . $base_key . ':' . $extra; } + /** + * Create a cache key for data dependent on code + * + * For cache elements that are dependent on changes in code, this creates + * a more-or-less fingerprint of the current running code and adds it to + * the cache key. In the case of an upgrade of core, or addition or + * removal of plugins, a new unique fingerprint is generated and used. + * + * There can still be problems with a) differences in versions of the + * plugins and b) people running code between official versions. This is + * usually a problem only for experienced users like developers, who know + * how to clear their cache. + * + * For sites that run code between versions (like the status.net cloud), + * there's an additional build number configuration setting. + * + * @param string $extra the real part of the key + * + * @return string full key + */ + + static function codeKey($extra) + { + static $prefix = null; + + if (empty($prefix)) { + + $plugins = StatusNet::getActivePlugins(); + $names = array(); + + foreach ($plugins as $plugin) { + $names[] = $plugin[0]; + } + + $names = array_unique($names); + asort($names); + + // Unique enough. + + $uniq = crc32(implode(',', $names)); + + $build = common_config('site', 'build'); + + $prefix = STATUSNET_VERSION.':'.$build.':'.$uniq; + } + + return Cache::key($prefix.':'.$extra); + } + /** * Make a string suitable for use as a key * @@ -98,7 +144,6 @@ class Cache * * @return string keyized string */ - static function keyize($str) { $str = strtolower($str); @@ -115,7 +160,6 @@ class Cache * * @return string retrieved value or null if unfound */ - function get($key) { $value = false; @@ -140,7 +184,6 @@ class Cache * * @return boolean success flag */ - function set($key, $value, $flag=null, $expiry=null) { $success = false; @@ -192,7 +235,6 @@ class Cache * * @return boolean success flag */ - function delete($key) { $success = false; @@ -214,7 +256,6 @@ class Cache * * @return boolean success flag */ - function reconnect() { $success = false; diff --git a/lib/channel.php b/lib/channel.php index e83960ac54..ae9b2d214f 100644 --- a/lib/channel.php +++ b/lib/channel.php @@ -19,6 +19,9 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +/** + * @todo Needs documentation. + */ class Channel { function on($user) @@ -97,6 +100,7 @@ class WebChannel extends Channel # depending on what command was run $this->out->startHTML(); $this->out->elementStart('head'); + // TRANS: Title for command results. $this->out->element('title', null, _('Command results')); $this->out->elementEnd('head'); $this->out->elementStart('body'); @@ -117,6 +121,7 @@ class AjaxWebChannel extends WebChannel { $this->out->startHTML('text/xml;charset=utf-8'); $this->out->elementStart('head'); + // TRANS: Title for command results. $this->out->element('title', null, _('Command results')); $this->out->elementEnd('head'); $this->out->elementStart('body'); @@ -129,7 +134,8 @@ class AjaxWebChannel extends WebChannel { $this->out->startHTML('text/xml;charset=utf-8'); $this->out->elementStart('head'); - $this->out->element('title', null, _('Ajax Error')); + // TRANS: Title for command results. + $this->out->element('title', null, _('AJAX error')); $this->out->elementEnd('head'); $this->out->elementStart('body'); $this->out->element('p', array('id' => 'error'), $text); @@ -140,7 +146,6 @@ class AjaxWebChannel extends WebChannel class MailChannel extends Channel { - var $addr = null; function source() @@ -155,20 +160,20 @@ class MailChannel extends Channel function on($user) { - return $this->set_notify($user, 1); + return $this->setNotify($user, 1); } function off($user) { - return $this->set_notify($user, 0); + return $this->setNotify($user, 0); } function output($user, $text) { - $headers['From'] = $user->incomingemail; $headers['To'] = $this->addr; + // TRANS: E-mail subject when a command has completed. $headers['Subject'] = _('Command complete'); return mail_send(array($this->addr), $headers, $text); @@ -176,16 +181,16 @@ class MailChannel extends Channel function error($user, $text) { - $headers['From'] = $user->incomingemail; $headers['To'] = $this->addr; + // TRANS: E-mail subject when a command has failed. $headers['Subject'] = _('Command failed'); return mail_send(array($this->addr), $headers, $text); } - function set_notify($user, $value) + function setNotify($user, $value) { $orig = clone($user); $user->smsnotify = $value; diff --git a/lib/clienterroraction.php b/lib/clienterroraction.php index 1b98a10645..9233c9bde6 100644 --- a/lib/clienterroraction.php +++ b/lib/clienterroraction.php @@ -1,5 +1,4 @@ <?php - /** * Client error action. * @@ -13,7 +12,7 @@ * @link http://status.net/ * * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010 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 @@ -33,7 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/lib/error.php'; +require_once INSTALLDIR . '/lib/error.php'; /** * Class for displaying HTTP client errors @@ -91,4 +90,26 @@ class ClientErrorAction extends ErrorAction $this->showPage(); } + + /** + * To specify additional HTTP headers for the action + * + * @return void + */ + function extraHeaders() + { + $status_string = @self::$status[$this->code]; + header('HTTP/1.1 '.$this->code.' '.$status_string); + } + + /** + * Page title. + * + * @return page title + */ + + function title() + { + return @self::$status[$this->code]; + } } diff --git a/lib/clientexception.php b/lib/clientexception.php index 01c013a011..a74cab4a5f 100644 --- a/lib/clientexception.php +++ b/lib/clientexception.php @@ -42,7 +42,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ClientException extends Exception { public function __construct($message = null, $code = 400) { diff --git a/lib/columndef.php b/lib/columndef.php index ac2fcd23ea..b21b30e0d0 100644 --- a/lib/columndef.php +++ b/lib/columndef.php @@ -40,7 +40,6 @@ 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 ColumnDef { /** name of the column. */ @@ -76,7 +75,6 @@ class ColumnDef * @param value $extra unused * @param boolean $auto_increment */ - function __construct($name=null, $type=null, $size=null, $nullable=true, $key=null, $default=null, $extra=null, $auto_increment=false) @@ -99,7 +97,6 @@ class ColumnDef * * @return boolean true if equivalent, otherwise false. */ - function equals($other) { return ($this->name == $other->name && @@ -122,7 +119,6 @@ class ColumnDef * * @return boolean true if they're about equivalent */ - private function _typeMatch($other) { switch ($this->type) { @@ -145,7 +141,6 @@ class ColumnDef * * @return boolean true if defaults are effectively the same. */ - private function _defaultMatch($other) { return ((is_null($this->default) && is_null($other->default)) || @@ -160,7 +155,6 @@ class ColumnDef * * @return boolean true if these columns 'null' the same. */ - private function _nullMatch($other) { return ((!is_null($this->default) && !is_null($other->default) && diff --git a/lib/command.php b/lib/command.php index 30db9d0691..852d0a8f7c 100644 --- a/lib/command.php +++ b/lib/command.php @@ -23,7 +23,6 @@ require_once(INSTALLDIR.'/lib/channel.php'); class Command { - var $user = null; function __construct($user=null) @@ -49,7 +48,6 @@ class Command } } - /** * Override this with the meat! * @@ -80,15 +78,16 @@ class Command $notice = Notice::staticGet(substr($arg,1)); if (!$notice) { - throw new CommandException(_('Notice with that id does not exist')); + // TRANS: Command exception text shown when a notice ID is requested that does not exist. + throw new CommandException(_('Notice with that id does not exist.')); } } - + if (Validate::uri($this->other)) { // A specific notice by URI lookup $notice = Notice::staticGet('uri', $arg); } - + if (!$notice) { // Local or remote profile name to get their last notice. // May throw an exception and report 'no such user' @@ -96,13 +95,15 @@ class Command $notice = $recipient->getCurrentNotice(); if (!$notice) { - throw new CommandException(_('User has no last notice')); + // TRANS: Command exception text shown when a last user notice is requested and it does not exist. + throw new CommandException(_('User has no last notice.')); } } } Event::handle('EndCommandGetNotice', array($this, $arg, &$notice)); if (!$notice) { - throw new CommandException(_('Notice with that id does not exist')); + // TRANS: Command exception text shown when a notice ID is requested that does not exist. + throw new CommandException(_('Notice with that id does not exist.')); } return $notice; } @@ -124,7 +125,7 @@ class Command if (!$profile) { // TRANS: Message given requesting a profile for a non-existing user. // TRANS: %s is the nickname of the user for which the profile could not be found. - throw new CommandException(sprintf(_('Could not find a user with nickname %s'), $arg)); + throw new CommandException(sprintf(_('Could not find a user with nickname %s.'), $arg)); } return $profile; } @@ -138,13 +139,13 @@ class Command { $user = null; if (Event::handle('StartCommandGetUser', array($this, $arg, &$user))) { - $user = User::staticGet('nickname', $arg); + $user = User::staticGet('nickname', Nickname::normalize($arg)); } Event::handle('EndCommandGetUser', array($this, $arg, &$user)); if (!$user){ // TRANS: Message given getting a non-existing user. // TRANS: %s is the nickname of the user that could not be found. - throw new CommandException(sprintf(_('Could not find a local user with nickname %s'), + throw new CommandException(sprintf(_('Could not find a local user with nickname %s.'), $arg)); } return $user; @@ -163,6 +164,7 @@ class Command } Event::handle('EndCommandGetGroup', array($this, $arg, &$group)); if (!$group) { + // TRANS: Command exception text shown when a group is requested that does not exist. throw new CommandException(_('No such group.')); } return $group; @@ -177,6 +179,7 @@ class UnimplementedCommand extends Command { function handle($channel) { + // TRANS: Error text shown when an unimplemented command is given. $channel->error($this->user, _("Sorry, this command is not yet implemented.")); } } @@ -222,6 +225,7 @@ class NudgeCommand extends Command { $recipient = $this->getUser($this->other); if ($recipient->id == $this->user->id) { + // TRANS: Command exception text shown when a user tries to nudge themselves. throw new CommandException(_('It does not make a lot of sense to nudge yourself!')); } else { if ($recipient->email && $recipient->emailnotifynudge) { @@ -231,7 +235,7 @@ class NudgeCommand extends Command // XXX: notify by SMS // TRANS: Message given having nudged another user. // TRANS: %s is the nickname of the user that was nudged. - $channel->output($this->user, sprintf(_('Nudge sent to %s'), + $channel->output($this->user, sprintf(_('Nudge sent to %s.'), $recipient->nickname)); } } @@ -257,6 +261,10 @@ class StatsCommand extends Command $subbed_count = $profile->subscriberCount(); $notice_count = $profile->noticeCount(); + // TRANS: User statistics text. + // TRANS: %1$s is the number of other user the user is subscribed to. + // TRANS: %2$s is the number of users that are subscribed to the user. + // TRANS: %3$s is the number of notices the user has sent. $channel->output($this->user, sprintf(_("Subscriptions: %1\$s\n". "Subscribers: %2\$s\n". "Notices: %3\$s"), @@ -282,6 +290,7 @@ class FavCommand extends Command $fave = Fave::addNew($this->user->getProfile(), $notice); if (!$fave) { + // TRANS: Error message text shown when a favorite could not be set. $channel->error($this->user, _('Could not create favorite.')); return; } @@ -299,9 +308,9 @@ class FavCommand extends Command $this->user->blowFavesCache(); + // TRANS: Text shown when a notice has been marked as favourite successfully. $channel->output($this->user, _('Notice marked as fave.')); } - } class JoinCommand extends Command @@ -320,10 +329,12 @@ class JoinCommand extends Command $cur = $this->user; if ($cur->isMember($group)) { - $channel->error($cur, _('You are already a member of that group')); + // TRANS: Error text shown a user tries to join a group they already are a member of. + $channel->error($cur, _('You are already a member of that group.')); return; } if (Group_block::isBlocked($group, $cur->getProfile())) { + // TRANS: Error text shown when a user tries to join a group they are blocked from joining. $channel->error($cur, _('You have been blocked from that group by the admin.')); return; } @@ -336,19 +347,19 @@ class JoinCommand extends Command } catch (Exception $e) { // TRANS: Message given having failed to add a user to a group. // TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. - $channel->error($cur, sprintf(_('Could not join user %1$s to group %2$s'), + $channel->error($cur, sprintf(_('Could not join user %1$s to group %2$s.'), $cur->nickname, $group->nickname)); return; } // TRANS: Message given having added a user to a group. // TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. - $channel->output($cur, sprintf(_('%1$s joined group %2$s'), + $channel->output($cur, sprintf(_('%1$s joined group %2$s.'), $cur->nickname, $group->nickname)); } - } + class DropCommand extends Command { var $other = null; @@ -365,11 +376,13 @@ class DropCommand extends Command $cur = $this->user; if (!$group) { + // TRANS: Error text shown when trying to leave a group that does not exist. $channel->error($cur, _('No such group.')); return; } if (!$cur->isMember($group)) { + // TRANS: Error text shown when trying to leave an existing group the user is not a member of. $channel->error($cur, _('You are not a member of that group.')); return; } @@ -382,18 +395,17 @@ class DropCommand extends Command } catch (Exception $e) { // TRANS: Message given having failed to remove a user from a group. // TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. - $channel->error($cur, sprintf(_('Could not remove user %1$s from group %2$s'), + $channel->error($cur, sprintf(_('Could not remove user %1$s from group %2$s.'), $cur->nickname, $group->nickname)); return; } // TRANS: Message given having removed a user from a group. // TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. - $channel->output($cur, sprintf(_('%1$s left group %2$s'), + $channel->output($cur, sprintf(_('%1$s left group %2$s.'), $cur->nickname, $group->nickname)); } - } class WhoisCommand extends Command @@ -411,7 +423,7 @@ class WhoisCommand extends Command // TRANS: Whois output. // TRANS: %1$s nickname of the queried user, %2$s is their profile URL. - $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname, + $whois = sprintf(_m('WHOIS',"%1\$s (%2\$s)"), $recipient->nickname, $recipient->profileurl); if ($recipient->fullname) { // TRANS: Whois output. %s is the full name of the queried user. @@ -454,33 +466,42 @@ class MessageCommand extends Command } catch (CommandException $f) { throw $e; } + // TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). + // TRANS: %s is a remote profile. throw new CommandException(sprintf(_('%s is a remote profile; you can only send direct messages to users on the same server.'), $this->other)); } $len = mb_strlen($this->text); if ($len == 0) { + // TRANS: Command exception text shown when trying to send a direct message to another user without content. $channel->error($this->user, _('No content!')); return; } - $this->text = common_shorten_links($this->text); + $this->text = $this->user->shortenLinks($this->text); if (Message::contentTooLong($this->text)) { - // TRANS: Message given if content is too long. + // XXX: i18n. Needs plural support. + // TRANS: Message given if content is too long. %1$sd is used for plural. // TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. - $channel->error($this->user, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d'), + $channel->error($this->user, sprintf(_m('Message too long - maximum is %1$d character, you sent %2$d.', + 'Message too long - maximum is %1$d characters, you sent %2$d.', + Message::maxContent()), Message::maxContent(), mb_strlen($this->text))); return; } if (!$other) { + // TRANS: Error text shown when trying to send a direct message to a user that does not exist. $channel->error($this->user, _('No such user.')); return; } else if (!$this->user->mutuallySubscribed($other)) { + // TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). $channel->error($this->user, _('You can\'t send a message to this user.')); return; } else if ($this->user->id == $other->id) { + // TRANS: Error text shown when trying to send a direct message to self. $channel->error($this->user, _('Don\'t send a message to yourself; just say it to yourself quietly instead.')); return; } @@ -489,8 +510,9 @@ class MessageCommand extends Command $message->notify(); // TRANS: Message given have sent a direct message to another user. // TRANS: %s is the name of the other user. - $channel->output($this->user, sprintf(_('Direct message to %s sent'), $this->other)); + $channel->output($this->user, sprintf(_('Direct message to %s sent.'), $this->other)); } else { + // TRANS: Error text shown sending a direct message fails with an unknown reason. $channel->error($this->user, _('Error sending direct message.')); } } @@ -511,12 +533,14 @@ class RepeatCommand extends Command if($this->user->id == $notice->profile_id) { - $channel->error($this->user, _('Cannot repeat your own notice')); + // TRANS: Error text shown when trying to repeat an own notice. + $channel->error($this->user, _('Cannot repeat your own notice.')); return; } if ($this->user->getProfile()->hasRepeated($notice->id)) { - $channel->error($this->user, _('Already repeated that notice')); + // TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. + $channel->error($this->user, _('Already repeated that notice.')); return; } @@ -526,8 +550,9 @@ class RepeatCommand extends Command // TRANS: Message given having repeated a notice from another user. // TRANS: %s is the name of the user for which the notice was repeated. - $channel->output($this->user, sprintf(_('Notice from %s repeated'), $recipient->nickname)); + $channel->output($this->user, sprintf(_('Notice from %s repeated.'), $recipient->nickname)); } else { + // TRANS: Error text shown when repeating a notice fails with an unknown reason. $channel->error($this->user, _('Error repeating notice.')); } } @@ -552,14 +577,20 @@ class ReplyCommand extends Command $len = mb_strlen($this->text); if ($len == 0) { + // TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. $channel->error($this->user, _('No content!')); return; } - $this->text = common_shorten_links($this->text); + $this->text = $this->user->shortenLinks($this->text); if (Notice::contentTooLong($this->text)) { - $channel->error($this->user, sprintf(_('Notice too long - maximum is %d characters, you sent %d'), + // XXX: i18n. Needs plural support. + // TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. + // TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. + $channel->error($this->user, sprintf(_m('Notice too long - maximum is %1$d character, you sent %2$d.', + 'Notice too long - maximum is %1$d characters, you sent %2$d.', + Notice::maxContent()), Notice::maxContent(), mb_strlen($this->text))); return; } @@ -568,8 +599,11 @@ class ReplyCommand extends Command array('reply_to' => $notice->id)); if ($notice) { - $channel->output($this->user, sprintf(_('Reply to %s sent'), $recipient->nickname)); + // TRANS: Text shown having sent a reply to a notice successfully. + // TRANS: %s is the nickname of the user of the notice the reply was sent to. + $channel->output($this->user, sprintf(_('Reply to %s sent.'), $recipient->nickname)); } else { + // TRANS: Error text shown when a reply to a notice fails with an unknown reason. $channel->error($this->user, _('Error saving notice.')); } @@ -578,7 +612,6 @@ class ReplyCommand extends Command class GetCommand extends Command { - var $other = null; function __construct($user, $other) @@ -593,7 +626,8 @@ class GetCommand extends Command $notice = $target->getCurrentNotice(); if (!$notice) { - $channel->error($this->user, _('User has no last notice')); + // TRANS: Error text shown when a last user notice is requested and it does not exist. + $channel->error($this->user, _('User has no last notice.')); return; } $notice_content = $notice->content; @@ -604,7 +638,6 @@ class GetCommand extends Command class SubCommand extends Command { - var $other = null; function __construct($user, $other) @@ -617,7 +650,8 @@ class SubCommand extends Command { if (!$this->other) { - $channel->error($this->user, _('Specify the name of the user to subscribe to')); + // TRANS: Error text shown when no username was provided when issuing a subscribe command. + $channel->error($this->user, _('Specify the name of the user to subscribe to.')); return; } @@ -625,13 +659,16 @@ class SubCommand extends Command $remote = Remote_profile::staticGet('id', $target->id); if ($remote) { + // TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. throw new CommandException(_("Can't subscribe to OMB profiles by command.")); } try { Subscription::start($this->user->getProfile(), $target); - $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other)); + // TRANS: Text shown after having subscribed to another user successfully. + // TRANS: %s is the name of the user the subscription was requested for. + $channel->output($this->user, sprintf(_('Subscribed to %s.'), $this->other)); } catch (Exception $e) { $channel->error($this->user, $e->getMessage()); } @@ -640,7 +677,6 @@ class SubCommand extends Command class UnsubCommand extends Command { - var $other = null; function __construct($user, $other) @@ -652,7 +688,8 @@ class UnsubCommand extends Command function handle($channel) { if(!$this->other) { - $channel->error($this->user, _('Specify the name of the user to unsubscribe from')); + // TRANS: Error text shown when no username was provided when issuing an unsubscribe command. + $channel->error($this->user, _('Specify the name of the user to unsubscribe from.')); return; } @@ -661,7 +698,9 @@ class UnsubCommand extends Command try { Subscription::cancel($this->user->getProfile(), $target); - $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other)); + // TRANS: Text shown after having unsubscribed from another user successfully. + // TRANS: %s is the name of the user the unsubscription was requested for. + $channel->output($this->user, sprintf(_('Unsubscribed from %s.'), $this->other)); } catch (Exception $e) { $channel->error($this->user, $e->getMessage()); } @@ -671,6 +710,7 @@ class UnsubCommand extends Command class OffCommand extends Command { var $other = null; + function __construct($user, $other=null) { parent::__construct($user); @@ -679,11 +719,14 @@ class OffCommand extends Command function handle($channel) { if ($this->other) { + // TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. $channel->error($this->user, _("Command not yet implemented.")); } else { if ($channel->off($this->user)) { + // TRANS: Text shown when issuing the command "off" successfully. $channel->output($this->user, _('Notification off.')); } else { + // TRANS: Error text shown when the command "off" fails for an unknown reason. $channel->error($this->user, _('Can\'t turn off notification.')); } } @@ -702,11 +745,14 @@ class OnCommand extends Command function handle($channel) { if ($this->other) { + // TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. $channel->error($this->user, _("Command not yet implemented.")); } else { if ($channel->on($this->user)) { + // TRANS: Text shown when issuing the command "on" successfully. $channel->output($this->user, _('Notification on.')); } else { + // TRANS: Error text shown when the command "on" fails for an unknown reason. $channel->error($this->user, _('Can\'t turn on notification.')); } } @@ -720,7 +766,8 @@ class LoginCommand extends Command $disabled = common_config('logincommand','disabled'); $disabled = isset($disabled) && $disabled; if($disabled) { - $channel->error($this->user, _('Login command is disabled')); + // TRANS: Error text shown when issuing the login command while login is disabled. + $channel->error($this->user, _('Login command is disabled.')); return; } @@ -731,7 +778,9 @@ class LoginCommand extends Command } $channel->output($this->user, - sprintf(_('This link is useable only once, and is good for only 2 minutes: %s'), + // TRANS: Text shown after issuing the login command successfully. + // TRANS: %s is a logon link.. + sprintf(_('This link is useable only once and is valid for only 2 minutes: %s.'), common_local_url('otp', array('user_id' => $login_token->user_id, 'token' => $login_token->token)))); } @@ -739,7 +788,6 @@ class LoginCommand extends Command class LoseCommand extends Command { - var $other = null; function __construct($user, $other) @@ -751,14 +799,17 @@ class LoseCommand extends Command function execute($channel) { if(!$this->other) { - $channel->error($this->user, _('Specify the name of the user to unsubscribe from')); + // TRANS: Error text shown when no username was provided when issuing the command. + $channel->error($this->user, _('Specify the name of the user to unsubscribe from.')); return; } $result = Subscription::cancel($this->getProfile($this->other), $this->user->getProfile()); if ($result) { - $channel->output($this->user, sprintf(_('Unsubscribed %s'), $this->other)); + // TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). + // TRANS: %s is the name of the user the unsubscription was requested for. + $channel->output($this->user, sprintf(_('Unsubscribed %s.'), $this->other)); } else { $channel->error($this->user, $result); } @@ -775,8 +826,12 @@ class SubscriptionsCommand extends Command $nicknames[]=$profile->nickname; } if(count($nicknames)==0){ + // TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. $out=_('You are not subscribed to anyone.'); }else{ + // TRANS: Text shown after requesting other users a user is subscribed to. + // TRANS: This message supports plural forms. This message is followed by a + // TRANS: hard coded space and a comma separated list of subscribed users. $out = ngettext('You are subscribed to this person:', 'You are subscribed to these people:', count($nicknames)); @@ -797,8 +852,13 @@ class SubscribersCommand extends Command $nicknames[]=$profile->nickname; } if(count($nicknames)==0){ + // TRANS: Text shown after requesting other users that are subscribed to a user + // TRANS: (followers) without having any subscribers. $out=_('No one is subscribed to you.'); }else{ + // TRANS: Text shown after requesting other users that are subscribed to a user (followers). + // TRANS: This message supports plural forms. This message is followed by a + // TRANS: hard coded space and a comma separated list of subscribing users. $out = ngettext('This person is subscribed to you:', 'These people are subscribed to you:', count($nicknames)); @@ -819,8 +879,13 @@ class GroupsCommand extends Command $groups[]=$group->nickname; } if(count($groups)==0){ + // TRANS: Text shown after requesting groups a user is subscribed to without having + // TRANS: any group subscriptions. $out=_('You are not a member of any groups.'); }else{ + // TRANS: Text shown after requesting groups a user is subscribed to. + // TRANS: This message supports plural forms. This message is followed by a + // TRANS: hard coded space and a comma separated list of subscribed groups. $out = ngettext('You are a member of this group:', 'You are a member of these groups:', count($nicknames)); @@ -835,6 +900,7 @@ class HelpCommand extends Command function handle($channel) { $channel->output($this->user, + // TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. _("Commands:\n". "on - turn on notifications\n". "off - turn off notifications\n". diff --git a/lib/commandinterpreter.php b/lib/commandinterpreter.php index fbc6174bbf..c288c2e5f0 100644 --- a/lib/commandinterpreter.php +++ b/lib/commandinterpreter.php @@ -272,7 +272,7 @@ class CommandInterpreter return false; } } - + /** * Split arguments without triggering a PHP notice warning */ @@ -285,4 +285,3 @@ class CommandInterpreter return $pieces; } } - diff --git a/lib/common.php b/lib/common.php index 570666da79..ca02a3e7fb 100644 --- a/lib/common.php +++ b/lib/common.php @@ -1,7 +1,7 @@ <?php /* * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010, 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 @@ -19,142 +19,30 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// @fixme shouldn't this be in index.php instead? //exit with 200 response, if this is checking fancy from the installer if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } -define('STATUSNET_VERSION', '0.9.4beta2'); -define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility - -define('STATUSNET_CODENAME', 'Orange Crush'); - -define('AVATAR_PROFILE_SIZE', 96); -define('AVATAR_STREAM_SIZE', 48); -define('AVATAR_MINI_SIZE', 24); - -define('NOTICES_PER_PAGE', 20); -define('PROFILES_PER_PAGE', 20); - -define('FOREIGN_NOTICE_SEND', 1); -define('FOREIGN_NOTICE_RECV', 2); -define('FOREIGN_NOTICE_SEND_REPLY', 4); - -define('FOREIGN_FRIEND_SEND', 1); -define('FOREIGN_FRIEND_RECV', 2); - -define('NOTICE_INBOX_SOURCE_SUB', 1); -define('NOTICE_INBOX_SOURCE_GROUP', 2); -define('NOTICE_INBOX_SOURCE_REPLY', 3); -define('NOTICE_INBOX_SOURCE_FORWARD', 4); -define('NOTICE_INBOX_SOURCE_GATEWAY', -1); - -# append our extlib dir as the last-resort place to find libs - -set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib/'); - -// To protect against upstream libraries which haven't updated -// for PHP 5.3 where dl() function may not be present... -if (!function_exists('dl')) { - // function_exists() returns false for things in disable_functions, - // but they still exist and we'll die if we try to redefine them. - // - // Fortunately trying to call the disabled one will only trigger - // a warning, not a fatal, so it's safe to leave it for our case. - // Callers will be suppressing warnings anyway. - $disabled = array_filter(array_map('trim', explode(',', ini_get('disable_functions')))); - if (!in_array('dl', $disabled)) { - function dl($library) { - return false; - } - } -} - -# global configuration object - -require_once('PEAR.php'); -require_once('PEAR/Exception.php'); -require_once('DB/DataObject.php'); -require_once('DB/DataObject/Cast.php'); # for dates - -require_once(INSTALLDIR.'/lib/language.php'); - -// This gets included before the config file, so that admin code and plugins -// can use it - -require_once(INSTALLDIR.'/lib/event.php'); -require_once(INSTALLDIR.'/lib/plugin.php'); - -function addPlugin($name, $attrs = null) -{ - return StatusNet::addPlugin($name, $attrs); -} - -function _have_config() -{ - return StatusNet::haveConfig(); -} - -function __autoload($cls) -{ - if (file_exists(INSTALLDIR.'/classes/' . $cls . '.php')) { - require_once(INSTALLDIR.'/classes/' . $cls . '.php'); - } else if (file_exists(INSTALLDIR.'/lib/' . strtolower($cls) . '.php')) { - require_once(INSTALLDIR.'/lib/' . strtolower($cls) . '.php'); - } else if (mb_substr($cls, -6) == 'Action' && - file_exists(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php')) { - require_once(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); - } else if ($cls == 'OAuthRequest') { - require_once('OAuth.php'); - } else { - Event::handle('Autoload', array(&$cls)); - } -} - -// 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. - -require_once 'Validate.php'; -require_once 'markdown.php'; - -// XXX: other formats here - -define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER); - -require_once INSTALLDIR.'/lib/util.php'; -require_once INSTALLDIR.'/lib/action.php'; -require_once INSTALLDIR.'/lib/mail.php'; -require_once INSTALLDIR.'/lib/subs.php'; - -require_once INSTALLDIR.'/lib/clientexception.php'; -require_once INSTALLDIR.'/lib/serverexception.php'; - - -//set PEAR error handling to use regular PHP exceptions -function PEAR_ErrorToPEAR_Exception($err) -{ - //DB_DataObject throws error when an empty set would be returned - //That behavior is weird, and not how the rest of StatusNet works. - //So just ignore those errors. - if ($err->getCode() == DB_DATAOBJECT_ERROR_NODATA) { - return; - } - if ($err->getCode()) { - throw new PEAR_Exception($err->getMessage(), $err->getCode()); - } - throw new PEAR_Exception($err->getMessage()); -} -PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception'); +// All the fun stuff to actually initialize StatusNet's framework code, +// without loading up a site configuration. +require_once INSTALLDIR . '/lib/framework.php'; try { StatusNet::init(@$server, @$path, @$conffile); } catch (NoConfigException $e) { // XXX: Throw a conniption if database not installed // XXX: Find a way to use htmlwriter for this instead of handcoded markup - echo '<p>'. _('No configuration file found. ') .'</p>'; - echo '<p>'. _('I looked for configuration files in the following places: ') .'<br/> '; - echo implode($e->configFiles, '<br/>'); + // TRANS: Error message displayed when no configuration file was found for a StatusNet installation. + echo '<p>'. _('No configuration file found.') .'</p>'; + // TRANS: Error message displayed when no configuration file was found for a StatusNet installation. + // TRANS: Is followed by a list of directories (separated by HTML breaks). + echo '<p>'. _('I looked for configuration files in the following places:') .'<br /> '; + echo implode($e->configFiles, '<br />'); + // TRANS: Error message displayed when no configuration file was found for a StatusNet installation. echo '<p>'. _('You may wish to run the installer to fix this.') .'</p>'; + // @todo FIXME Link should be in a para? + // TRANS: Error message displayed when no configuration file was found for a StatusNet installation. + // TRANS: The text is link text that leads to the installer page. echo '<a href="install.php">'. _('Go to the installer.') .'</a>'; exit; } - diff --git a/lib/connectsettingsaction.php b/lib/connectsettingsaction.php index 5d62fc56b3..0f64fee8ce 100644 --- a/lib/connectsettingsaction.php +++ b/lib/connectsettingsaction.php @@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/settingsaction.php'; * * @see Widget */ - class ConnectSettingsAction extends SettingsAction { /** @@ -54,7 +53,6 @@ class ConnectSettingsAction extends SettingsAction * * @return void */ - function showLocalNav() { $menu = new ConnectSettingsNav($this); @@ -73,7 +71,6 @@ class ConnectSettingsAction extends SettingsAction * * @see HTMLOutputter */ - class ConnectSettingsNav extends Widget { var $action = null; @@ -83,7 +80,6 @@ class ConnectSettingsNav extends Widget * * @param Action $action current action, used for output */ - function __construct($action=null) { parent::__construct($action); @@ -95,7 +91,6 @@ class ConnectSettingsNav extends Widget * * @return void */ - function show() { $action_name = $this->action->trimmed('action'); @@ -109,17 +104,23 @@ class ConnectSettingsNav extends Widget Event::handle('GetImTransports', array(&$transports)); if ($transports) { $menu['imsettings'] = - array(_('IM'), + // TRANS: Menu item for Instant Messaging settings. + array(_m('MENU','IM'), + // TRANS: Tooltip for Instant Messaging menu item. _('Updates by instant messenger (IM)')); } if (common_config('sms', 'enabled')) { $menu['smssettings'] = - array(_('SMS'), + // TRANS: Menu item for Short Message Service settings. + array(_m('MENU','SMS'), + // TRANS: Tooltip for Short Message Service menu item. _('Updates by SMS')); } - + $menu['oauthconnectionssettings'] = array( - _('Connections'), + // TRANS: Menu item for OuAth connection settings. + _m('MENU','Connections'), + // TRANS: Tooltip for connected applications (Connections through OAuth) menu item. _('Authorized connected applications') ); @@ -135,6 +136,4 @@ class ConnectSettingsNav extends Widget $this->action->elementEnd('ul'); } - } - diff --git a/lib/currentuserdesignaction.php b/lib/currentuserdesignaction.php index c2f38cd00b..e84c777685 100644 --- a/lib/currentuserdesignaction.php +++ b/lib/currentuserdesignaction.php @@ -22,7 +22,7 @@ * @category Action * @package StatusNet * @author Evan Prodromou <evan@status.net> - * @copyright 2009 StatusNet, Inc. + * @copyright 2009-2010 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/ */ @@ -40,13 +40,33 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @category Action * @package StatusNet * @author Evan Prodromou <evan@status.net> + * @author Zach Copley <zach@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ * */ - class CurrentUserDesignAction extends Action { + + protected $cur = null; // The current user + + /** + * For initializing members of the class. Set a the + * current user here. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + function prepare($argarray) + { + parent::prepare($argarray); + + $this->cur = common_current_user(); + + return true; + } + /** * A design for this action * @@ -54,14 +74,11 @@ class CurrentUserDesignAction extends Action * * @return Design a design object to use */ - function getDesign() { - $cur = common_current_user(); + if (!empty($this->cur)) { - if (!empty($cur)) { - - $design = $cur->getDesign(); + $design = $this->cur->getDesign(); if (!empty($design)) { return $design; @@ -70,4 +87,10 @@ class CurrentUserDesignAction extends Action return parent::getDesign(); } + + function getCurrentUser() + { + return $this->cur; + } } + diff --git a/lib/dberroraction.php b/lib/dberroraction.php index 2cb66a022d..0a6fce1005 100644 --- a/lib/dberroraction.php +++ b/lib/dberroraction.php @@ -47,7 +47,6 @@ require_once INSTALLDIR.'/lib/servererroraction.php'; * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class DBErrorAction extends ServerErrorAction { function __construct($message='Error', $code=500) diff --git a/lib/dbqueuemanager.php b/lib/dbqueuemanager.php index 3dda9fd1ac..51553b8999 100644 --- a/lib/dbqueuemanager.php +++ b/lib/dbqueuemanager.php @@ -100,7 +100,7 @@ class DBQueueManager extends QueueManager } } else { $this->_log(LOG_INFO, "[$queue] Got empty/deleted item, discarding"); - $this->_fail($qi); + $this->_done($qi); } return true; } diff --git a/lib/default.php b/lib/default.php index 76e4e44cf2..5c4484121d 100644 --- a/lib/default.php +++ b/lib/default.php @@ -37,6 +37,7 @@ $default = 'path' => $_path, 'logfile' => null, 'logo' => null, + 'ssllogo' => null, 'logdebug' => false, 'fancy' => false, 'locale_path' => INSTALLDIR.'/locale', @@ -58,7 +59,8 @@ $default = 'textlimit' => 140, 'indent' => true, 'use_x_sendfile' => false, - 'notice' => null // site wide notice text + 'notice' => null, // site wide notice text + 'build' => 1, // build number, for code-dependent cache ), 'db' => array('database' => 'YOU HAVE TO SET THIS IN config.php', @@ -74,7 +76,8 @@ $default = 'schemacheck' => 'runtime', // 'runtime' or 'script' 'annotate_queries' => false, // true to add caller comments to queries, eg /* POST Notice::saveNew */ 'log_queries' => false, // true to log all DB queries - 'log_slow_queries' => 0), // if set, log queries taking over N seconds + 'log_slow_queries' => 0, // if set, log queries taking over N seconds + 'mysql_foreign_keys' => false), // if set, enables experimental foreign key support on MySQL 'syslog' => array('appname' => 'statusnet', # for syslog 'priority' => 'debug', # XXX: currently ignored @@ -210,6 +213,8 @@ $default = array('server' => null, 'dir' => INSTALLDIR . '/file/', 'path' => $_path . '/file/', + 'sslserver' => null, + 'sslpath' => null, 'ssl' => null, 'supported' => array('image/png', 'image/jpeg', @@ -247,6 +252,10 @@ $default = 'monthly_quota' => 15000000, 'uploads' => true, 'filecommand' => '/usr/bin/file', + 'show_thumbs' => true, // show thumbnails in notice lists for uploaded images, and photos and videos linked remotely that provide oEmbed info + 'thumb_width' => 100, + 'thumb_height' => 75, + 'process_links' => true, // check linked resources for embeddable photos and videos; this will hit referenced external web sites when processing new messages. ), 'application' => array('desclimit' => null), @@ -298,11 +307,13 @@ $default = 'WikiHashtags' => null, 'RSSCloud' => null, 'ClientSideShorten' => null, + 'StrictTransportSecurity' => null, 'OpenID' => null), + 'locale_path' => false, // Set to a path to use *instead of* each plugin's own locale subdirectories ), 'pluginlist' => array(), 'admin' => - array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice', 'plugins')), + array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice', 'license', 'plugins')), 'singleuser' => array('enabled' => false, 'nickname' => null), @@ -315,7 +326,8 @@ $default = 'nofollow' => array('subscribers' => true, 'members' => true, - 'peopletag' => true), + 'peopletag' => true, + 'external' => 'sometimes'), // Options: 'sometimes', 'never', default = 'sometimes' 'url' => array('shortener' => 'ur1.ca', 'maxlength' => 25, @@ -324,4 +336,6 @@ $default = array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt') 'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.) ), + 'router' => + array('cache' => true), // whether to cache the router object. Defaults to true, turn off for devel ); diff --git a/lib/deletegroupform.php b/lib/deletegroupform.php new file mode 100644 index 0000000000..9d8012d33b --- /dev/null +++ b/lib/deletegroupform.php @@ -0,0 +1,123 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Form for joining a group + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Form + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Sarven Capadisli <csarven@status.net> + * @author Brion Vibber <brion@status.net> + * @copyright 2009, 2010 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); +} + +/** + * Form for deleting a group + * + * @category Form + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Sarven Capadisli <csarven@status.net> + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnsubscribeForm + * @fixme merge a bunch of this stuff with similar form types to reduce boilerplate + */ + +class DeleteGroupForm extends Form +{ + /** + * group for user to delete + */ + + var $group = null; + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param group $group group to join + */ + + function __construct($out=null, $group=null) + { + parent::__construct($out); + + $this->group = $group; + } + + /** + * ID of the form + * + * @return string ID of the form + */ + + function id() + { + return 'group-delete-' . $this->group->id; + } + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_group_delete'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('deletegroup', + array('id' => $this->group->id)); + } + + function formData() + { + $this->out->hidden($this->id() . '-returnto-action', 'groupbyid', 'returnto-action'); + $this->out->hidden($this->id() . '-returnto-id', $this->group->id, 'returnto-id'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Delete')); + } +} diff --git a/lib/designform.php b/lib/designform.php index b22d77f312..7702b873fe 100644 --- a/lib/designform.php +++ b/lib/designform.php @@ -121,14 +121,45 @@ class DesignForm extends Form */ function formData() + { + $this->backgroundData(); + + $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset', array('id' => 'settings_design_color')); + // TRANS: Fieldset legend on profile design page to change profile page colours. + $this->out->element('legend', null, _('Change colours')); + $this->colourData(); + $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset'); + + // TRANS: Button text on profile design page to immediately reset all colour settings to default. + $this->out->submit('defaults', _('Use defaults'), 'submit form_action-default', + // TRANS: Title for button on profile design page to reset all colour settings to default. + 'defaults', _('Restore default designs')); + + $this->out->element('input', array('id' => 'settings_design_reset', + 'type' => 'reset', + // TRANS: Button text on profile design page to reset all colour settings to default without saving. + 'value' => _m('BUTTON', 'Reset'), + 'class' => 'submit form_action-primary', + // TRANS: Title for button on profile design page to reset all colour settings to default without saving. + 'title' => _('Reset back to default'))); + } + + function backgroundData() { $this->out->elementStart('ul', 'form_data'); $this->out->elementStart('li'); $this->out->element('label', array('for' => 'design_background-image_file'), + // TRANS: Label in form on profile design page. + // TRANS: Field contains file name on user's computer that could be that user's custom profile background image. _('Upload file')); $this->out->element('input', array('name' => 'design_background-image_file', 'type' => 'file', 'id' => 'design_background-image_file')); + // TRANS: Instructions for form on profile design page. $this->out->element('p', 'form_guide', _('You can upload your personal ' . 'background image. The maximum file size is 2Mb.')); $this->out->element('input', array('name' => 'MAX_FILE_SIZE', @@ -137,13 +168,13 @@ class DesignForm extends Form 'value' => ImageFile::maxFileSizeInt())); $this->out->elementEnd('li'); - if (!empty($design->backgroundimage)) { + if (!empty($this->design->backgroundimage)) { $this->out->elementStart('li', array('id' => 'design_background-image_onoff')); $this->out->element('img', array('src' => - Design::url($design->backgroundimage))); + Design::url($this->design->backgroundimage))); $attrs = array('name' => 'design_background-image_onoff', 'type' => 'radio', @@ -151,7 +182,7 @@ class DesignForm extends Form 'class' => 'radio', 'value' => 'on'); - if ($design->disposition & BACKGROUND_ON) { + if ($this->design->disposition & BACKGROUND_ON) { $attrs['checked'] = 'checked'; } @@ -159,7 +190,8 @@ class DesignForm extends Form $this->out->element('label', array('for' => 'design_background-image_on', 'class' => 'radio'), - _('On')); + // TRANS: Radio button on profile design page that will enable use of the uploaded profile image. + _m('RADIO', 'On')); $attrs = array('name' => 'design_background-image_onoff', 'type' => 'radio', @@ -167,7 +199,7 @@ class DesignForm extends Form 'class' => 'radio', 'value' => 'off'); - if ($design->disposition & BACKGROUND_OFF) { + if ($this->design->disposition & BACKGROUND_OFF) { $attrs['checked'] = 'checked'; } @@ -175,29 +207,34 @@ class DesignForm extends Form $this->out->element('label', array('for' => 'design_background-image_off', 'class' => 'radio'), - _('Off')); + // TRANS: Radio button on profile design page that will disable use of the uploaded profile image. + _m('RADIO', 'Off')); + // TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable + // TRANS: use of the uploaded profile image. $this->out->element('p', 'form_guide', _('Turn background image on or off.')); $this->out->elementEnd('li'); $this->out->elementStart('li'); $this->out->checkbox('design_background-image_repeat', + // TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. _('Tile background image'), - ($design->disposition & BACKGROUND_TILE) ? true : false); + ($this->design->disposition & BACKGROUND_TILE) ? true : false); $this->out->elementEnd('li'); } $this->out->elementEnd('ul'); - $this->out->elementEnd('fieldset'); + } - $this->out->elementStart('fieldset', array('id' => 'settings_design_color')); - $this->out->element('legend', null, _('Change colours')); + function colourData() + { $this->out->elementStart('ul', 'form_data'); try { - $bgcolor = new WebColor($design->backgroundcolor); + $bgcolor = new WebColor($this->design->backgroundcolor); $this->out->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page background colour. $this->out->element('label', array('for' => 'swatch-1'), _('Background')); $this->out->element('input', array('name' => 'design_background', 'type' => 'text', @@ -208,9 +245,10 @@ class DesignForm extends Form 'value' => '')); $this->out->elementEnd('li'); - $ccolor = new WebColor($design->contentcolor); + $ccolor = new WebColor($this->design->contentcolor); $this->out->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page content colour. $this->out->element('label', array('for' => 'swatch-2'), _('Content')); $this->out->element('input', array('name' => 'design_content', 'type' => 'text', @@ -221,9 +259,10 @@ class DesignForm extends Form 'value' => '')); $this->out->elementEnd('li'); - $sbcolor = new WebColor($design->sidebarcolor); + $sbcolor = new WebColor($this->design->sidebarcolor); $this->out->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page sidebar colour. $this->out->element('label', array('for' => 'swatch-3'), _('Sidebar')); $this->out->element('input', array('name' => 'design_sidebar', 'type' => 'text', @@ -234,9 +273,10 @@ class DesignForm extends Form 'value' => '')); $this->out->elementEnd('li'); - $tcolor = new WebColor($design->textcolor); + $tcolor = new WebColor($this->design->textcolor); $this->out->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page text colour. $this->out->element('label', array('for' => 'swatch-4'), _('Text')); $this->out->element('input', array('name' => 'design_text', 'type' => 'text', @@ -247,9 +287,10 @@ class DesignForm extends Form 'value' => '')); $this->out->elementEnd('li'); - $lcolor = new WebColor($design->linkcolor); + $lcolor = new WebColor($this->design->linkcolor); $this->out->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page links colour. $this->out->element('label', array('for' => 'swatch-5'), _('Links')); $this->out->element('input', array('name' => 'design_links', 'type' => 'text', @@ -261,22 +302,10 @@ class DesignForm extends Form $this->out->elementEnd('li'); } catch (WebColorException $e) { - common_log(LOG_ERR, 'Bad color values in design ID: ' .$design->id); + common_log(LOG_ERR, 'Bad color values in design ID: ' .$this->design->id); } $this->out->elementEnd('ul'); - $this->out->elementEnd('fieldset'); - - $this->out->elementStart('fieldset'); - - $this->out->submit('defaults', _('Use defaults'), 'submit form_action-default', - 'defaults', _('Restore default designs')); - - $this->out->element('input', array('id' => 'settings_design_reset', - 'type' => 'reset', - 'value' => 'Reset', - 'class' => 'submit form_action-primary', - 'title' => _('Reset back to default'))); } /** @@ -287,7 +316,9 @@ class DesignForm extends Form function formActions() { - $this->out->submit('save', _('Save'), 'submit form_action-secondary', + // TRANS: Button text on profile design page to save settings. + $this->out->submit('save', _m('BUTTON','Save'), 'submit form_action-secondary', + // TRANS: Title for button on profile design page to save settings. 'save', _('Save design')); } } diff --git a/lib/designsettings.php b/lib/designsettings.php index 98ef8256cd..d0601c5530 100644 --- a/lib/designsettings.php +++ b/lib/designsettings.php @@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/webcolor.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class DesignSettingsAction extends AccountSettingsAction { - var $submitaction = null; /** @@ -59,9 +57,9 @@ class DesignSettingsAction extends AccountSettingsAction * * @return string Title of the page */ - function title() { + // TRANS: Page title for profile design page. return _('Profile design'); } @@ -70,9 +68,9 @@ class DesignSettingsAction extends AccountSettingsAction * * @return instructions for use */ - function getInstructions() { + // TRANS: Instructions for profile design page. return _('Customize the way your profile looks ' . 'with a background image and a colour palette of your choice.'); } @@ -84,11 +82,11 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function showDesignForm($design) { $form = new DesignForm($this, $design, $this->selfUrl()); $form->show(); + } /** @@ -99,7 +97,6 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -111,8 +108,10 @@ class DesignSettingsAction extends AccountSettingsAction && empty($_POST) && ($_SERVER['CONTENT_LENGTH'] > 0) ) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // TRANS: Form validation error in design settings form. POST should remain untranslated. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->showForm(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); return; @@ -132,6 +131,7 @@ class DesignSettingsAction extends AccountSettingsAction } else if ($this->arg('defaults')) { $this->restoreDefaults(); } else { + // TRANS: Unknown form validation error in design settings form. $this->showForm(_('Unexpected form submission.')); } } @@ -141,7 +141,6 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function showStylesheets() { parent::showStylesheets(); @@ -153,7 +152,6 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function showScripts() { parent::showScripts(); @@ -171,31 +169,28 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function saveBackgroundImage($design) { - // Now that we have a Design ID we can add a file to the design. // XXX: This is an additional DB hit, but figured having the image // associated with the Design rather than the User was worth // it. -- Zach - if ($_FILES['design_background-image_file']['error'] == - UPLOAD_ERR_OK) { + if (array_key_exists('design_background-image_file', $_FILES) && + $_FILES['design_background-image_file']['error'] == UPLOAD_ERR_OK) { $filepath = null; try { - $imagefile = - ImageFile::fromUpload('design_background-image_file'); + $imagefile = ImageFile::fromUpload('design_background-image_file'); } catch (Exception $e) { $this->showForm($e->getMessage()); return; } $filename = Design::filename($design->id, - image_type_to_extension($imagefile->type), - common_timestamp()); + image_type_to_extension($imagefile->type), + common_timestamp()); $filepath = Design::path($filename); @@ -219,6 +214,7 @@ class DesignSettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); + // TRANS: Error message displayed if design settings could not be saved. $this->showForm(_('Couldn\'t update your design.')); return; } @@ -230,7 +226,6 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function restoreDefaults() { $design = $this->getWorkingDesign(); @@ -241,12 +236,13 @@ class DesignSettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($design, 'DELETE', __FILE__); + // TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". $this->showForm(_('Couldn\'t update your design.')); return; } } + // TRANS: Success message displayed if design settings were saved after clicking "Use defaults". $this->showForm(_('Design defaults restored.'), true); } - } diff --git a/lib/disfavorform.php b/lib/disfavorform.php index 5b135b38ad..6023766d7b 100644 --- a/lib/disfavorform.php +++ b/lib/disfavorform.php @@ -123,9 +123,13 @@ class DisfavorForm extends Form function formData() { - $this->out->hidden('notice-n'.$this->notice->id, - $this->notice->id, - 'notice'); + if (Event::handle('StartDisFavorNoticeForm', array($this, $this->notice))) { + $this->out->hidden('notice-n'.$this->notice->id, + $this->notice->id, + 'notice'); + Event::handle('EndDisFavorNoticeForm', array($this, $this->notice)); + } + } /** diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php index 8f4b72d5c3..a7519c1d50 100644 --- a/lib/distribqueuehandler.php +++ b/lib/distribqueuehandler.php @@ -78,13 +78,19 @@ class DistribQueueHandler } try { - Event::handle('EndNoticeSave', array($notice)); - // Enqueue for other handlers + Event::handle('EndNoticeDistribute', array($notice)); } catch (Exception $e) { $this->logit($notice, $e); } try { + Event::handle('EndNoticeSave', array($notice)); + } catch (Exception $e) { + $this->logit($notice, $e); + } + + try { + // Enqueue for other handlers common_enqueue_notice($notice); } catch (Exception $e) { $this->logit($notice, $e); diff --git a/lib/dofollowlistitem.php b/lib/dofollowlistitem.php new file mode 100644 index 0000000000..80e2d0b0a7 --- /dev/null +++ b/lib/dofollowlistitem.php @@ -0,0 +1,88 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * widget for displaying a list of notices + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category UI + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/noticelist.php'; + +/** + * StatusNet, the distributed open-source microblogging tool + * + * Widget superclass for notice list items that remove rel=nofollow + * + * When nofollow|external = 'sometimes', notices get rendered and saved + * with rel=nofollow for external links. We want to remove that relationship + * on some pages (profile, single notice, faves). This superclass for + * some noticelistitems will strip that bit of code out when showing + * notice content + * + * @category UI + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class DoFollowListItem extends NoticeListItem +{ + /** + * show the content of the notice + * + * Trims out the rel=nofollow for external links + * if nofollow|external = 'sometimes' + * + * @return void + */ + + function showContent() + { + // FIXME: URL, image, video, audio + $this->out->elementStart('p', array('class' => 'entry-content')); + + if (!empty($this->notice->rendered)) { + $html = $this->notice->rendered; + } else { + $html = common_render_content($this->notice->content, $this->notice); + } + + if (common_config('nofollow', 'external') == 'sometimes') { + // remove the nofollow part + // XXX: cache the results here + + $html = preg_replace('/rel="(.*)nofollow ?/', 'rel="\1', $html); + } + + $this->out->raw($html); + + $this->out->elementEnd('p'); + } +} \ No newline at end of file diff --git a/lib/error.php b/lib/error.php index a6a29119f7..762425dc44 100644 --- a/lib/error.php +++ b/lib/error.php @@ -33,6 +33,8 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +require_once INSTALLDIR . '/lib/info.php'; + /** * Base class for displaying HTTP errors * @@ -42,7 +44,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ -class ErrorAction extends Action +class ErrorAction extends InfoAction { static $status = array(); @@ -52,7 +54,7 @@ class ErrorAction extends Action function __construct($message, $code, $output='php://output', $indent=null) { - parent::__construct($output, $indent); + parent::__construct(null, $message, $output, $indent); $this->code = $code; $this->message = $message; @@ -64,43 +66,6 @@ class ErrorAction extends Action $this->prepare($_REQUEST); } - /** - * To specify additional HTTP headers for the action - * - * @return void - */ - function extraHeaders() - { - $status_string = @self::$status[$this->code]; - header('HTTP/1.1 '.$this->code.' '.$status_string); - } - - /** - * Display content. - * - * @return nothing - */ - function showContent() - { - $this->element('div', array('class' => 'error'), $this->message); - } - - /** - * Page title. - * - * @return page title - */ - - function title() - { - return @self::$status[$this->code]; - } - - function isReadOnly($args) - { - return true; - } - function showPage() { if ($this->minimal) { @@ -116,32 +81,16 @@ class ErrorAction extends Action exit(); } - // Overload a bunch of stuff so the page isn't too bloated - - function showBody() + /** + * Display content. + * + * @return nothing + */ + function showContent() { - $this->elementStart('body', array('id' => 'error')); - $this->elementStart('div', array('id' => 'wrap')); - $this->showHeader(); - $this->showCore(); - $this->showFooter(); - $this->elementEnd('div'); - $this->elementEnd('body'); + $this->element('div', array('class' => 'error'), $this->message); } - function showCore() - { - $this->elementStart('div', array('id' => 'core')); - $this->showContentBlock(); - $this->elementEnd('div'); - } - function showHeader() - { - $this->elementStart('div', array('id' => 'header')); - $this->showLogo(); - $this->showPrimaryNav(); - $this->elementEnd('div'); - } } diff --git a/lib/favorform.php b/lib/favorform.php index 625df7c8b5..4e2891ffd5 100644 --- a/lib/favorform.php +++ b/lib/favorform.php @@ -123,9 +123,12 @@ class FavorForm extends Form function formData() { - $this->out->hidden('notice-n'.$this->notice->id, - $this->notice->id, - 'notice'); + if (Event::handle('StartFavorNoticeForm', array($this, $this->notice))) { + $this->out->hidden('notice-n'.$this->notice->id, + $this->notice->id, + 'notice'); + Event::handle('EndFavorNoticeForm', array($this, $this->notice)); + } } /** diff --git a/lib/feed.php b/lib/feed.php index e9fb6fdff3..5902653679 100644 --- a/lib/feed.php +++ b/lib/feed.php @@ -43,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Feed { const RSS1 = 1; diff --git a/lib/feedlist.php b/lib/feedlist.php index 9ae83f5e88..bbe66b2e74 100644 --- a/lib/feedlist.php +++ b/lib/feedlist.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * * @see Action::showExportList() */ - class FeedList extends Widget { var $action = null; @@ -59,42 +58,51 @@ class FeedList extends Widget function show($feeds) { - $this->out->elementStart('div', array('id' => 'export_data', - 'class' => 'section')); - $this->out->element('h2', null, _('Export data')); - $this->out->elementStart('ul', array('class' => 'xoxo')); + if (Event::handle('StartShowFeedLinkList', array($this->action, &$feeds))) { + if (!empty($feeds)) { + $this->out->elementStart('div', array('id' => 'export_data', + 'class' => 'section')); + // TRANS: Header for feed links (h2). + $this->out->element('h2', null, _('Feeds')); + $this->out->elementStart('ul', array('class' => 'xoxo')); - foreach ($feeds as $feed) { - $this->feedItem($feed); + foreach ($feeds as $feed) { + $this->feedItem($feed); + } + + $this->out->elementEnd('ul'); + $this->out->elementEnd('div'); + } + Event::handle('EndShowFeedLinkList', array($this->action, &$feeds)); } - - $this->out->elementEnd('ul'); - $this->out->elementEnd('div'); } function feedItem($feed) { - $classname = null; + if (Event::handle('StartShowFeedLink', array($this->action, &$feed))) { + $classname = null; - switch ($feed->type) { - case Feed::RSS1: - case Feed::RSS2: - $classname = 'rss'; - break; - case Feed::ATOM: - $classname = 'atom'; - break; - case Feed::FOAF: - $classname = 'foaf'; - break; + switch ($feed->type) { + case Feed::RSS1: + case Feed::RSS2: + $classname = 'rss'; + break; + case Feed::ATOM: + $classname = 'atom'; + break; + case Feed::FOAF: + $classname = 'foaf'; + break; + } + + $this->out->elementStart('li'); + $this->out->element('a', array('href' => $feed->url, + 'class' => $classname, + 'type' => $feed->mimeType(), + 'title' => $feed->title), + $feed->typeName()); + $this->out->elementEnd('li'); + Event::handle('EndShowFeedLink', array($this->action, $feed)); } - - $this->out->elementStart('li'); - $this->out->element('a', array('href' => $feed->url, - 'class' => $classname, - 'type' => $feed->mimeType(), - 'title' => $feed->title), - $feed->typeName()); - $this->out->elementEnd('li'); } } diff --git a/lib/framework.php b/lib/framework.php new file mode 100644 index 0000000000..70987e086c --- /dev/null +++ b/lib/framework.php @@ -0,0 +1,154 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008-2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +define('STATUSNET_VERSION', '0.9.6'); +define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility + +define('STATUSNET_CODENAME', 'Man on the Moon'); + +define('AVATAR_PROFILE_SIZE', 96); +define('AVATAR_STREAM_SIZE', 48); +define('AVATAR_MINI_SIZE', 24); + +define('NOTICES_PER_PAGE', 20); +define('PROFILES_PER_PAGE', 20); + +define('FOREIGN_NOTICE_SEND', 1); +define('FOREIGN_NOTICE_RECV', 2); +define('FOREIGN_NOTICE_SEND_REPLY', 4); + +define('FOREIGN_FRIEND_SEND', 1); +define('FOREIGN_FRIEND_RECV', 2); + +define('NOTICE_INBOX_SOURCE_SUB', 1); +define('NOTICE_INBOX_SOURCE_GROUP', 2); +define('NOTICE_INBOX_SOURCE_REPLY', 3); +define('NOTICE_INBOX_SOURCE_FORWARD', 4); +define('NOTICE_INBOX_SOURCE_GATEWAY', -1); + +# append our extlib dir as the last-resort place to find libs + +set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/extlib/'); + +// To protect against upstream libraries which haven't updated +// for PHP 5.3 where dl() function may not be present... +if (!function_exists('dl')) { + // function_exists() returns false for things in disable_functions, + // but they still exist and we'll die if we try to redefine them. + // + // Fortunately trying to call the disabled one will only trigger + // a warning, not a fatal, so it's safe to leave it for our case. + // Callers will be suppressing warnings anyway. + $disabled = array_filter(array_map('trim', explode(',', ini_get('disable_functions')))); + if (!in_array('dl', $disabled)) { + function dl($library) { + return false; + } + } +} + +# global configuration object + +require_once('PEAR.php'); +require_once('PEAR/Exception.php'); +require_once('DB/DataObject.php'); +require_once('DB/DataObject/Cast.php'); # for dates + +require_once(INSTALLDIR.'/lib/language.php'); + +// This gets included before the config file, so that admin code and plugins +// can use it + +require_once(INSTALLDIR.'/lib/event.php'); +require_once(INSTALLDIR.'/lib/plugin.php'); + +function addPlugin($name, $attrs = null) +{ + return StatusNet::addPlugin($name, $attrs); +} + +function _have_config() +{ + return StatusNet::haveConfig(); +} + +function __autoload($cls) +{ + if (file_exists(INSTALLDIR.'/classes/' . $cls . '.php')) { + require_once(INSTALLDIR.'/classes/' . $cls . '.php'); + } else if (file_exists(INSTALLDIR.'/lib/' . strtolower($cls) . '.php')) { + require_once(INSTALLDIR.'/lib/' . strtolower($cls) . '.php'); + } else if (mb_substr($cls, -6) == 'Action' && + file_exists(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php')) { + require_once(INSTALLDIR.'/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); + } else if ($cls == 'OAuthRequest') { + require_once('OAuth.php'); + } else { + Event::handle('Autoload', array(&$cls)); + } +} + +// 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. + +require_once 'Validate.php'; +require_once 'markdown.php'; + +// XXX: other formats here + +/** + * Avoid the NICKNAME_FMT constant; use the Nickname class instead. + * + * Nickname::DISPLAY_FMT is more suitable for inserting into regexes; + * note that it includes the [] and repeating bits, so should be wrapped + * directly in a capture paren usually. + * + * For validation, use Nickname::normalize(), Nickname::isValid() etc. + * + * @deprecated + */ +define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER); + +require_once INSTALLDIR.'/lib/util.php'; +require_once INSTALLDIR.'/lib/action.php'; +require_once INSTALLDIR.'/lib/mail.php'; +require_once INSTALLDIR.'/lib/subs.php'; + +require_once INSTALLDIR.'/lib/clientexception.php'; +require_once INSTALLDIR.'/lib/serverexception.php'; + + +//set PEAR error handling to use regular PHP exceptions +function PEAR_ErrorToPEAR_Exception($err) +{ + //DB_DataObject throws error when an empty set would be returned + //That behavior is weird, and not how the rest of StatusNet works. + //So just ignore those errors. + if ($err->getCode() == DB_DATAOBJECT_ERROR_NODATA) { + return; + } + if ($err->getCode()) { + throw new PEAR_Exception($err->getMessage(), $err->getCode()); + } + throw new PEAR_Exception($err->getMessage()); +} +PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception'); diff --git a/lib/groupeditform.php b/lib/groupeditform.php index 433f6a1387..cc25f06886 100644 --- a/lib/groupeditform.php +++ b/lib/groupeditform.php @@ -160,14 +160,17 @@ class GroupEditForm extends Form $this->out->elementStart('li'); $this->out->input('homepage', _('Homepage'), ($this->out->arg('homepage')) ? $this->out->arg('homepage') : $homepage, - _('URL of the homepage or blog of the group or topic')); + _('URL of the homepage or blog of the group or topic.')); $this->out->elementEnd('li'); $this->out->elementStart('li'); $desclimit = User_group::maxDescription(); if ($desclimit == 0) { $descinstr = _('Describe the group or topic'); } else { - $descinstr = sprintf(_('Describe the group or topic in %d characters'), $desclimit); + $descinstr = sprintf(_m('Describe the group or topic in %d character or less', + 'Describe the group or topic in %d characters or less', + $desclimit), + $desclimit); } $this->out->textarea('description', _('Description'), ($this->out->arg('description')) ? $this->out->arg('description') : $description, @@ -176,7 +179,7 @@ class GroupEditForm extends Form $this->out->elementStart('li'); $this->out->input('location', _('Location'), ($this->out->arg('location')) ? $this->out->arg('location') : $location, - _('Location for the group, if any, like "City, State (or Region), Country"')); + _('Location for the group, if any, like "City, State (or Region), Country".')); $this->out->elementEnd('li'); if (common_config('group', 'maxaliases') > 0) { $aliases = (empty($this->group)) ? array() : $this->group->getAliases(); @@ -184,7 +187,9 @@ class GroupEditForm extends Form $this->out->input('aliases', _('Aliases'), ($this->out->arg('aliases')) ? $this->out->arg('aliases') : (!empty($aliases)) ? implode(' ', $aliases) : '', - sprintf(_('Extra nicknames for the group, comma- or space- separated, max %d'), + sprintf(_m('Extra nicknames for the group, separated with commas or spaces. Maximum %d alias allowed.', + 'Extra nicknames for the group, separated with commas or spaces. Maximum %d aliases allowed.', + common_config('group', 'maxaliases')), common_config('group', 'maxaliases')));; $this->out->elementEnd('li'); } @@ -199,6 +204,6 @@ class GroupEditForm extends Form function formActions() { - $this->out->submit('submit', _('Save')); + $this->out->submit('submit', _m('BUTTON','Save')); } } diff --git a/lib/groupnav.php b/lib/groupnav.php index 131b38fa27..ee988d0a98 100644 --- a/lib/groupnav.php +++ b/lib/groupnav.php @@ -82,14 +82,20 @@ class GroupNav extends Widget if (Event::handle('StartGroupGroupNav', array($this))) { $this->out->menuItem(common_local_url('showgroup', array('nickname' => $nickname)), - _('Group'), - sprintf(_('%s group'), $nickname), + // TRANS: Menu item in the group navigation page. + _m('MENU','Group'), + // TRANS: Tooltip for menu item in the group navigation page. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','%s group'), $nickname), $action_name == 'showgroup', 'nav_group_group'); $this->out->menuItem(common_local_url('groupmembers', array('nickname' => $nickname)), - _('Members'), - sprintf(_('%s group members'), $nickname), + // TRANS: Menu item in the group navigation page. + _m('MENU','Members'), + // TRANS: Tooltip for menu item in the group navigation page. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','%s group members'), $nickname), $action_name == 'groupmembers', 'nav_group_members'); @@ -98,26 +104,38 @@ class GroupNav extends Widget if ($cur && $cur->isAdmin($this->group)) { $this->out->menuItem(common_local_url('blockedfromgroup', array('nickname' => $nickname)), - _('Blocked'), - sprintf(_('%s blocked users'), $nickname), + // TRANS: Menu item in the group navigation page. Only shown for group administrators. + _m('MENU','Blocked'), + // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','%s blocked users'), $nickname), $action_name == 'blockedfromgroup', 'nav_group_blocked'); $this->out->menuItem(common_local_url('editgroup', array('nickname' => $nickname)), - _('Admin'), - sprintf(_('Edit %s group properties'), $nickname), + // TRANS: Menu item in the group navigation page. Only shown for group administrators. + _m('MENU','Admin'), + // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','Edit %s group properties'), $nickname), $action_name == 'editgroup', 'nav_group_admin'); $this->out->menuItem(common_local_url('grouplogo', array('nickname' => $nickname)), - _('Logo'), - sprintf(_('Add or edit %s logo'), $nickname), + // TRANS: Menu item in the group navigation page. Only shown for group administrators. + _m('MENU','Logo'), + // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','Add or edit %s logo'), $nickname), $action_name == 'grouplogo', 'nav_group_logo'); $this->out->menuItem(common_local_url('groupdesignsettings', array('nickname' => $nickname)), - _('Design'), - sprintf(_('Add or edit %s design'), $nickname), + // TRANS: Menu item in the group navigation page. Only shown for group administrators. + _m('MENU','Design'), + // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','Add or edit %s design'), $nickname), $action_name == 'groupdesignsettings', 'nav_group_design'); } diff --git a/lib/groupsbymemberssection.php b/lib/groupsbymemberssection.php index 19b35eddb8..5cf1a563c0 100644 --- a/lib/groupsbymemberssection.php +++ b/lib/groupsbymemberssection.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class GroupsByMembersSection extends GroupSection { function getGroups() @@ -68,6 +67,7 @@ class GroupsByMembersSection extends GroupSection function title() { + // TRANS: Title for groups with the most members section. return _('Groups with most members'); } diff --git a/lib/groupsbypostssection.php b/lib/groupsbypostssection.php index 45d49aba66..50d60e87cb 100644 --- a/lib/groupsbypostssection.php +++ b/lib/groupsbypostssection.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class GroupsByPostsSection extends GroupSection { function getGroups() @@ -68,6 +67,7 @@ class GroupsByPostsSection extends GroupSection function title() { + // TRANS: Title for groups with the most posts section. return _('Groups with most posts'); } diff --git a/lib/groupsection.php b/lib/groupsection.php index 3b0b3029dd..019b131354 100644 --- a/lib/groupsection.php +++ b/lib/groupsection.php @@ -45,7 +45,6 @@ define('GROUPS_PER_SECTION', 6); * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class GroupSection extends Section { function showContent() diff --git a/lib/grouptagcloudsection.php b/lib/grouptagcloudsection.php index f1106cc7bf..5b914c0073 100644 --- a/lib/grouptagcloudsection.php +++ b/lib/grouptagcloudsection.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class GroupTagCloudSection extends TagCloudSection { var $group = null; @@ -53,6 +52,8 @@ class GroupTagCloudSection extends TagCloudSection function title() { + // TRANS: Title for group tag cloud section. + // TRANS: %s is a group name. return sprintf(_('Tags in %s group\'s notices'), $this->group->nickname); } diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 7eccd6cc0e..fdb693f92c 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -119,9 +119,16 @@ class HTMLOutputter extends XMLOutputter $language = $this->getLanguage(); - $this->elementStart('html', array('xmlns' => 'http://www.w3.org/1999/xhtml', - 'xml:lang' => $language, - 'lang' => $language)); + $attrs = array( + 'xmlns' => 'http://www.w3.org/1999/xhtml', + 'xml:lang' => $language, + 'lang' => $language + ); + + if (Event::handle('StartHtmlElement', array($this, &$attrs))) { + $this->elementStart('html', $attrs); + Event::handle('EndHtmlElement', array($this, &$attrs)); + } } function getLanguage() @@ -325,6 +332,7 @@ class HTMLOutputter extends XMLOutputter * @param string $label text of the button * @param string $cls class of the button, default 'submit' * @param string $name name, if different than ID + * @param string $title title text for the submit button * * @return void * @@ -351,22 +359,57 @@ class HTMLOutputter extends XMLOutputter */ function script($src, $type='text/javascript') { - if(Event::handle('StartScriptElement', array($this,&$src,&$type))) { + 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'])) { + + // XXX: this seems like a big assumption + if (strpos($src, 'plugins/') === 0 || strpos($src, 'local/') === 0) { - $src = common_path($src) . '?version=' . STATUSNET_VERSION; + $src = common_path($src, StatusNet::isHTTPS()) . '?version=' . STATUSNET_VERSION; - }else{ + } else { - $path = common_config('javascript', 'path'); + if (StatusNet::isHTTPS()) { - if (empty($path)) { - $path = common_config('site', 'path') . '/js/'; + $sslserver = common_config('javascript', 'sslserver'); + + if (empty($sslserver)) { + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/js/'; + } else { + $server = $sslserver; + $path = common_config('javascript', 'sslpath'); + if (empty($path)) { + $path = common_config('javascript', 'path'); + } + } + + $protocol = 'https'; + + } else { + + $path = common_config('javascript', 'path'); + + if (empty($path)) { + $path = common_config('site', 'path') . '/js/'; + } + + $server = common_config('javascript', 'server'); + + if (empty($server)) { + $server = common_config('site', 'server'); + } + + $protocol = 'http'; } if ($path[strlen($path)-1] != '/') { @@ -377,32 +420,13 @@ class HTMLOutputter extends XMLOutputter $path = '/'.$path; } - $server = common_config('javascript', 'server'); - - if (empty($server)) { - $server = common_config('site', 'server'); - } - - $ssl = common_config('javascript', 'ssl'); - - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config('javascript', 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - - $protocol = ($ssl) ? 'https' : 'http'; - $src = $protocol.'://'.$server.$path.$src . '?version=' . STATUSNET_VERSION; } } $this->element('script', array('type' => $type, - 'src' => $src), - ' '); + 'src' => $src), + ' '); Event::handle('EndScriptElement', array($this,$src,$type)); } @@ -452,7 +476,7 @@ class HTMLOutputter extends XMLOutputter if(file_exists(Theme::file($src,$theme))){ $src = Theme::path($src, $theme); }else{ - $src = common_path($src); + $src = common_path($src, StatusNet::isHTTPS()); } $src.= '?version=' . STATUSNET_VERSION; } diff --git a/lib/imagefile.php b/lib/imagefile.php index e472877410..159deead61 100644 --- a/lib/imagefile.php +++ b/lib/imagefile.php @@ -85,6 +85,8 @@ class ImageFile break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: + // TRANS: Exception thrown when too large a file is uploaded. + // TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". throw new Exception(sprintf(_('That file is too big. The maximum file size is %s.'), ImageFile::maxFileSize())); return; @@ -113,10 +115,46 @@ class ImageFile return new ImageFile(null, $_FILES[$param]['tmp_name']); } + /** + * Compat interface for old code generating avatar thumbnails... + * Saves the scaled file directly into the avatar area. + * + * @param int $size target width & height -- must be square + * @param int $x (default 0) upper-left corner to crop from + * @param int $y (default 0) upper-left corner to crop from + * @param int $w (default full) width of image area to crop + * @param int $h (default full) height of image area to crop + * @return string filename + */ function resize($size, $x = 0, $y = 0, $w = null, $h = null) + { + $targetType = $this->preferredType($this->type); + $outname = Avatar::filename($this->id, + image_type_to_extension($targetType), + $size, + common_timestamp()); + $outpath = Avatar::path($outname); + $this->resizeTo($outpath, $size, $size, $x, $y, $w, $h); + return $outname; + } + + /** + * Create and save a thumbnail image. + * + * @param string $outpath + * @param int $width target width + * @param int $height target height + * @param int $x (default 0) upper-left corner to crop from + * @param int $y (default 0) upper-left corner to crop from + * @param int $w (default full) width of image area to crop + * @param int $h (default full) height of image area to crop + * @return string full local filesystem filename + */ + function resizeTo($outpath, $width, $height, $x=0, $y=0, $w=null, $h=null) { $w = ($w === null) ? $this->width:$w; $h = ($h === null) ? $this->height:$h; + $targetType = $this->preferredType($this->type); if (!file_exists($this->filepath)) { throw new Exception(_('Lost our file.')); @@ -124,20 +162,16 @@ class ImageFile } // Don't crop/scale if it isn't necessary - if ($size === $this->width - && $size === $this->height + if ($width === $this->width + && $height === $this->height && $x === 0 && $y === 0 && $w === $this->width - && $h === $this->height) { + && $h === $this->height + && $this->type == $targetType) { - $outname = Avatar::filename($this->id, - image_type_to_extension($this->type), - $size, - common_timestamp()); - $outpath = Avatar::path($outname); @copy($this->filepath, $outpath); - return $outname; + return $outpath; } switch ($this->type) { @@ -164,7 +198,7 @@ class ImageFile return; } - $image_dest = imagecreatetruecolor($size, $size); + $image_dest = imagecreatetruecolor($width, $height); if ($this->type == IMAGETYPE_GIF || $this->type == IMAGETYPE_PNG || $this->type == IMAGETYPE_BMP) { @@ -187,30 +221,9 @@ class ImageFile } } - imagecopyresampled($image_dest, $image_src, 0, 0, $x, $y, $size, $size, $w, $h); + imagecopyresampled($image_dest, $image_src, 0, 0, $x, $y, $width, $height, $w, $h); - if($this->type == IMAGETYPE_BMP) { - //we don't want to save BMP... it's an inefficient, rare, antiquated format - //save png instead - $this->type = IMAGETYPE_PNG; - } else if($this->type == IMAGETYPE_WBMP) { - //we don't want to save WBMP... it's a rare format that we can't guarantee clients will support - //save png instead - $this->type = IMAGETYPE_PNG; - } else if($this->type == IMAGETYPE_XBM) { - //we don't want to save XBM... it's a rare format that we can't guarantee clients will support - //save png instead - $this->type = IMAGETYPE_PNG; - } - - $outname = Avatar::filename($this->id, - image_type_to_extension($this->type), - $size, - common_timestamp()); - - $outpath = Avatar::path($outname); - - switch ($this->type) { + switch ($targetType) { case IMAGETYPE_GIF: imagegif($image_dest, $outpath); break; @@ -228,7 +241,31 @@ class ImageFile imagedestroy($image_src); imagedestroy($image_dest); - return $outname; + return $outpath; + } + + /** + * Several obscure file types should be normalized to PNG on resize. + * + * @param int $type + * @return int + */ + function preferredType($type) + { + if($type == IMAGETYPE_BMP) { + //we don't want to save BMP... it's an inefficient, rare, antiquated format + //save png instead + return IMAGETYPE_PNG; + } else if($type == IMAGETYPE_WBMP) { + //we don't want to save WBMP... it's a rare format that we can't guarantee clients will support + //save png instead + return IMAGETYPE_PNG; + } else if($type == IMAGETYPE_XBM) { + //we don't want to save XBM... it's a rare format that we can't guarantee clients will support + //save png instead + return IMAGETYPE_PNG; + } + return $type; } function unlink() @@ -241,11 +278,16 @@ class ImageFile $value = ImageFile::maxFileSizeInt(); if ($value > 1024 * 1024) { - return ($value/(1024*1024)) . _('MB'); + $value = $value/(1024*1024); + // TRANS: Number of megabytes. %d is the number. + return sprintf(_m('%dMB','%dMB',$value),$value); } else if ($value > 1024) { - return ($value/(1024)) . _('kB'); + $value = $value/1024; + // TRANS: Number of kilobytes. %d is the number. + return sprintf(_m('%dkB','%dkB',$value),$value); } else { - return $value; + // TRANS: Number of bytes. %d is the number. + return sprintf(_m('%dB','%dB',$value),$value); } } diff --git a/lib/imchannel.php b/lib/imchannel.php index 12354ce4b0..61355a429c 100644 --- a/lib/imchannel.php +++ b/lib/imchannel.php @@ -36,27 +36,27 @@ class IMChannel extends Channel function on($user) { - return $this->set_notify($user, 1); + return $this->setNotify($user, 1); } function off($user) { - return $this->set_notify($user, 0); + return $this->setNotify($user, 0); } function output($user, $text) { $text = '['.common_config('site', 'name') . '] ' . $text; - $this->imPlugin->send_message($this->imPlugin->get_screenname($user), $text); + $this->imPlugin->sendMessage($this->imPlugin->getScreenname($user), $text); } function error($user, $text) { $text = '['.common_config('site', 'name') . '] ' . $text; - $screenname = $this->imPlugin->get_screenname($user); + $screenname = $this->imPlugin->getScreenname($user); if($screenname){ - $this->imPlugin->send_message($screenname, $text); + $this->imPlugin->sendMessage($screenname, $text); return true; }else{ common_log(LOG_ERR, @@ -66,7 +66,7 @@ class IMChannel extends Channel } } - function set_notify($user, $notify) + function setNotify($user, $notify) { $user_im_prefs = new User_im_prefs(); $user_im_prefs->transport = $this->imPlugin->transport; diff --git a/lib/immanager.php b/lib/immanager.php index da80b74b7f..9563a53262 100644 --- a/lib/immanager.php +++ b/lib/immanager.php @@ -31,7 +31,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } * 2) override handleInput() with what to do when data is waiting on * one of the sockets * 3) override idle($timeout) to do keepalives (if necessary) - * 4) implement send_raw_message() to send raw data that ImPlugin::enqueue_outgoing_raw + * 4) implement send_raw_message() to send raw data that ImPlugin::enqueueOutgoingRaw * enqueued */ diff --git a/lib/implugin.php b/lib/implugin.php index dafb8a416b..2811e7d644 100644 --- a/lib/implugin.php +++ b/lib/implugin.php @@ -59,7 +59,6 @@ abstract class ImPlugin extends Plugin */ abstract function normalize($screenname); - /** * validate (ensure the validity of) a screenname * @@ -79,35 +78,35 @@ abstract class ImPlugin extends Plugin /** * send a single notice to a given screenname * The implementation should put raw data, ready to send, into the outgoing - * queue using enqueue_outgoing_raw() + * queue using enqueueOutgoingRaw() * * @param string $screenname screenname to send to * @param Notice $notice notice to send * * @return boolean success value */ - function send_notice($screenname, $notice) + function sendNotice($screenname, $notice) { - return $this->send_message($screenname, $this->format_notice($notice)); + return $this->sendMessage($screenname, $this->formatNotice($notice)); } /** * send a message (text) to a given screenname * The implementation should put raw data, ready to send, into the outgoing - * queue using enqueue_outgoing_raw() + * queue using enqueueOutgoingRaw() * * @param string $screenname screenname to send to * @param Notice $body text to send * * @return boolean success value */ - abstract function send_message($screenname, $body); + abstract function sendMessage($screenname, $body); /** * receive a raw message * Raw IM data is taken from the incoming queue, and passed to this function. - * It should parse the raw message and call handle_incoming() - * + * It should parse the raw message and call handleIncoming() + * * Returning false may CAUSE REPROCESSING OF THE QUEUE ITEM, and should * be used for temporary failures only. For permanent failures such as * unrecognized addresses, return true to indicate your processing has @@ -117,14 +116,14 @@ abstract class ImPlugin extends Plugin * * @return boolean true if processing completed, false for temporary failures */ - abstract function receive_raw_message($data); + abstract function receiveRawMessage($data); /** * get the screenname of the daemon that sends and receives message for this service * * @return string screenname of this plugin */ - abstract function daemon_screenname(); + abstract function daemonScreenname(); /** * get the microid uri of a given screenname @@ -135,7 +134,7 @@ abstract class ImPlugin extends Plugin */ function microiduri($screenname) { - return $this->transport . ':' . $screenname; + return $this->transport . ':' . $screenname; } //========================UTILITY FUNCTIONS USEFUL TO IMPLEMENTATIONS - MISC ========================\ @@ -144,7 +143,7 @@ abstract class ImPlugin extends Plugin * * @param object $data */ - function enqueue_outgoing_raw($data) + function enqueueOutgoingRaw($data) { $qm = QueueManager::get(); $qm->enqueue($data, $this->transport . '-out'); @@ -155,7 +154,7 @@ abstract class ImPlugin extends Plugin * * @param object $data */ - function enqueue_incoming_raw($data) + function enqueueIncomingRaw($data) { $qm = QueueManager::get(); $qm->enqueue($data, $this->transport . '-in'); @@ -168,9 +167,9 @@ abstract class ImPlugin extends Plugin * * @return User user */ - function get_user($screenname) + function getUser($screenname) { - $user_im_prefs = $this->get_user_im_prefs_from_screenname($screenname); + $user_im_prefs = $this->getUserImPrefsFromScreenname($screenname); if($user_im_prefs){ $user = User::staticGet('id', $user_im_prefs->user_id); $user_im_prefs->free(); @@ -180,7 +179,6 @@ abstract class ImPlugin extends Plugin } } - /** * given a screenname, get the User_im_prefs object for this transport * @@ -188,7 +186,7 @@ abstract class ImPlugin extends Plugin * * @return User_im_prefs user_im_prefs */ - function get_user_im_prefs_from_screenname($screenname) + function getUserImPrefsFromScreenname($screenname) { $user_im_prefs = User_im_prefs::pkeyGet( array('transport' => $this->transport, @@ -200,7 +198,6 @@ abstract class ImPlugin extends Plugin } } - /** * given a User, get their screenname * @@ -208,9 +205,9 @@ abstract class ImPlugin extends Plugin * * @return string screenname of that user */ - function get_screenname($user) + function getScreenname($user) { - $user_im_prefs = $this->get_user_im_prefs_from_user($user); + $user_im_prefs = $this->getUserImPrefsFromUser($user); if ($user_im_prefs) { return $user_im_prefs->screenname; } else { @@ -218,7 +215,6 @@ abstract class ImPlugin extends Plugin } } - /** * given a User, get their User_im_prefs * @@ -226,7 +222,7 @@ abstract class ImPlugin extends Plugin * * @return User_im_prefs user_im_prefs of that user */ - function get_user_im_prefs_from_user($user) + function getUserImPrefsFromUser($user) { $user_im_prefs = User_im_prefs::pkeyGet( array('transport' => $this->transport, @@ -246,10 +242,10 @@ abstract class ImPlugin extends Plugin * * @param boolean success */ - protected function send_from_site($screenname, $msg) + protected function sendFromSite($screenname, $msg) { $text = '['.common_config('site', 'name') . '] ' . $msg; - $this->send_message($screenname, $text); + $this->sendMessage($screenname, $text); } /** @@ -261,7 +257,7 @@ abstract class ImPlugin extends Plugin * * @return boolean success value */ - function send_confirmation_code($screenname, $code, $user) + function sendConfirmationCode($screenname, $code, $user) { $body = sprintf(_('User "%s" on %s has said that your %s screenname belongs to them. ' . 'If that\'s true, you can confirm by clicking on this URL: ' . @@ -271,7 +267,7 @@ abstract class ImPlugin extends Plugin 'or if you didn\'t request this confirmation, just ignore this message.'), $user->nickname, common_config('site', 'name'), $this->getDisplayName(), common_local_url('confirmaddress', array('code' => $code))); - return $this->send_message($screenname, $body); + return $this->sendMessage($screenname, $body); } /** @@ -285,7 +281,7 @@ abstract class ImPlugin extends Plugin * @return boolean success flag */ - function public_notice($notice) + function publicNotice($notice) { // Now, users who want everything @@ -298,7 +294,7 @@ abstract class ImPlugin extends Plugin 'Sending notice ' . $notice->id . ' to public listener ' . $screenname, __FILE__); - $this->send_notice($screenname, $notice); + $this->sendNotice($screenname, $notice); } return true; @@ -318,7 +314,7 @@ abstract class ImPlugin extends Plugin * @return boolean success flag */ - function broadcast_notice($notice) + function broadcastNotice($notice) { $ni = $notice->whoGets(); @@ -329,7 +325,7 @@ abstract class ImPlugin extends Plugin // either not a local user, or just not found continue; } - $user_im_prefs = $this->get_user_im_prefs_from_user($user); + $user_im_prefs = $this->getUserImPrefsFromUser($user); if(!$user_im_prefs || !$user_im_prefs->notify){ continue; } @@ -356,7 +352,7 @@ abstract class ImPlugin extends Plugin common_log(LOG_INFO, 'Sending notice ' . $notice->id . ' to ' . $user_im_prefs->screenname, __FILE__); - $this->send_notice($user_im_prefs->screenname, $notice); + $this->sendNotice($user_im_prefs->screenname, $notice); $user_im_prefs->free(); } @@ -371,7 +367,7 @@ abstract class ImPlugin extends Plugin * @return string plain-text version of the notice, with user nickname prefixed */ - function format_notice($notice) + function formatNotice($notice) { $profile = $notice->getProfile(); return $profile->nickname . ': ' . $notice->content . ' [' . $notice->id . ']'; @@ -384,7 +380,7 @@ abstract class ImPlugin extends Plugin * @param string $body message text * @return boolean true if the message was a command and was executed, false if it was not a command */ - protected function handle_command($user, $body) + protected function handleCommand($user, $body) { $inter = new CommandInterpreter(); $cmd = $inter->handle_command($user, $body); @@ -402,7 +398,7 @@ abstract class ImPlugin extends Plugin * @param string $txt message text * @return boolean true if autoreply */ - protected function is_autoreply($txt) + protected function isAutoreply($txt) { if (preg_match('/[\[\(]?[Aa]uto[-\s]?[Rr]e(ply|sponse)[\]\)]/', $txt)) { return true; @@ -418,7 +414,7 @@ abstract class ImPlugin extends Plugin * @param string $txt message text * @return boolean true if OTR */ - protected function is_otr($txt) + protected function isOtr($txt) { if (preg_match('/^\?OTR/', $txt)) { return true; @@ -436,34 +432,34 @@ abstract class ImPlugin extends Plugin * * @param boolean success */ - protected function handle_incoming($from, $notice_text) + protected function handleIncoming($from, $notice_text) { - $user = $this->get_user($from); + $user = $this->getUser($from); // For common_current_user to work global $_cur; $_cur = $user; if (!$user) { - $this->send_from_site($from, 'Unknown user; go to ' . + $this->sendFromSite($from, 'Unknown user; go to ' . common_local_url('imsettings') . ' to add your address to your account'); common_log(LOG_WARNING, 'Message from unknown user ' . $from); return; } - if ($this->handle_command($user, $notice_text)) { + if ($this->handleCommand($user, $notice_text)) { common_log(LOG_INFO, "Command message by $from handled."); return; - } else if ($this->is_autoreply($notice_text)) { + } else if ($this->isAutoreply($notice_text)) { common_log(LOG_INFO, 'Ignoring auto reply from ' . $from); return; - } else if ($this->is_otr($notice_text)) { + } else if ($this->isOtr($notice_text)) { common_log(LOG_INFO, 'Ignoring OTR from ' . $from); return; } else { common_log(LOG_INFO, 'Posting a notice from ' . $user->nickname); - $this->add_notice($from, $user, $notice_text); + $this->addNotice($from, $user, $notice_text); } $user->free(); @@ -481,12 +477,12 @@ abstract class ImPlugin extends Plugin * * @param boolean success */ - protected function add_notice($screenname, $user, $body) + protected function addNotice($screenname, $user, $body) { $body = trim(strip_tags($body)); $content_shortened = common_shorten_links($body); if (Notice::contentTooLong($content_shortened)) { - $this->send_from_site($screenname, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d.'), + $this->sendFromSite($screenname, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d.'), Notice::maxContent(), mb_strlen($content_shortened))); return; @@ -496,11 +492,10 @@ abstract class ImPlugin extends Plugin $notice = Notice::saveNew($user->id, $content_shortened, $this->transport); } catch (Exception $e) { common_log(LOG_ERR, $e->getMessage()); - $this->send_from_site($from, $e->getMessage()); + $this->sendFromSite($from, $e->getMessage()); return; } - common_broadcast_notice($notice); common_log(LOG_INFO, 'Added notice ' . $notice->id . ' from user ' . $user->nickname); $notice->free(); @@ -508,7 +503,7 @@ abstract class ImPlugin extends Plugin } //========================EVENT HANDLERS========================\ - + /** * Register notice queue handler * @@ -599,14 +594,14 @@ abstract class ImPlugin extends Plugin { $transports[$this->transport] = array( 'display' => $this->getDisplayName(), - 'daemon_screenname' => $this->daemon_screenname()); + 'daemonScreenname' => $this->daemonScreenname()); } function onSendImConfirmationCode($transport, $screenname, $code, $user) { if($transport == $this->transport) { - $this->send_confirmation_code($screenname, $code, $user); + $this->sendConfirmationCode($screenname, $code, $user); return false; } } diff --git a/lib/imqueuehandler.php b/lib/imqueuehandler.php index b42d8e7c0b..9c35890c62 100644 --- a/lib/imqueuehandler.php +++ b/lib/imqueuehandler.php @@ -37,10 +37,10 @@ class ImQueueHandler extends QueueHandler */ function handle($notice) { - $this->plugin->broadcast_notice($notice); + $this->plugin->broadcastNotice($notice); if ($notice->is_local == Notice::LOCAL_PUBLIC || $notice->is_local == Notice::LOCAL_NONPUBLIC) { - $this->plugin->public_notice($notice); + $this->plugin->publicNotice($notice); } return true; } diff --git a/lib/imreceiverqueuehandler.php b/lib/imreceiverqueuehandler.php index 269c7db918..aa4a663b7a 100644 --- a/lib/imreceiverqueuehandler.php +++ b/lib/imreceiverqueuehandler.php @@ -37,6 +37,6 @@ class ImReceiverQueueHandler extends QueueHandler */ function handle($data) { - return $this->plugin->receive_raw_message($data); + return $this->plugin->receiveRawMessage($data); } } diff --git a/lib/info.php b/lib/info.php new file mode 100644 index 0000000000..395c6522ec --- /dev/null +++ b/lib/info.php @@ -0,0 +1,118 @@ +<?php + +/** + * Information action + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Base class for displaying dialog box like messages to the user + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see ErrorAction + */ + +class InfoAction extends Action +{ + var $message = null; + + function __construct($title, $message, $output='php://output', $indent=null) + { + parent::__construct($output, $indent); + + $this->message = $message; + $this->title = $title; + + // XXX: hack alert: usually we aren't going to + // call this page directly, but because it's + // an action it needs an args array anyway + $this->prepare($_REQUEST); + } + + /** + * Page title. + * + * @return page title + */ + + function title() + { + return empty($this->title) ? '' : $this->title; + } + + function isReadOnly($args) + { + return true; + } + + // Overload a bunch of stuff so the page isn't too bloated + + function showBody() + { + $this->elementStart('body', array('id' => 'error')); + $this->elementStart('div', array('id' => 'wrap')); + $this->showHeader(); + $this->showCore(); + $this->showFooter(); + $this->elementEnd('div'); + $this->elementEnd('body'); + } + + function showCore() + { + $this->elementStart('div', array('id' => 'core')); + $this->showContentBlock(); + $this->elementEnd('div'); + } + + function showHeader() + { + $this->elementStart('div', array('id' => 'header')); + $this->showLogo(); + $this->showPrimaryNav(); + $this->elementEnd('div'); + } + + /** + * Display content. + * + * @return nothing + */ + function showContent() + { + $this->element('div', array('class' => 'info'), $this->message); + } + +} diff --git a/lib/inlineattachmentlist.php b/lib/inlineattachmentlist.php new file mode 100644 index 0000000000..de5008e87b --- /dev/null +++ b/lib/inlineattachmentlist.php @@ -0,0 +1,108 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * widget for displaying notice attachments thumbnails + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category UI + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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 InlineAttachmentList extends AttachmentList +{ + function showListStart() + { + $this->out->elementStart('div', array('class' => 'entry-content thumbnails')); + } + + function showListEnd() + { + $this->out->elementEnd('div'); + } + + /** + * returns a new list item for the current attachment + * + * @param File $notice the current attachment + * + * @return ListItem a list item for displaying the attachment + */ + function newListItem($attachment) + { + return new InlineAttachmentListItem($attachment, $this->out); + } +} + +class InlineAttachmentListItem extends AttachmentListItem +{ + function show() + { + if ($this->attachment->isEnclosure()) { + parent::show(); + } + } + + function showLink() { + $this->out->elementStart('a', $this->linkAttr()); + $this->showRepresentation(); + $this->out->elementEnd('a'); + } + + /** + * Build HTML attributes for the link + * @return array + */ + function linkAttr() + { + $attr = parent::linkAttr(); + $attr['class'] = 'attachment-thumbnail'; + return $attr; + } + + /** + * start a single notice. + * + * @return void + */ + function showStart() + { + // XXX: RDFa + // TODO: add notice_type class e.g., notice_video, notice_image + $this->out->elementStart('span', array('class' => 'inline-attachment')); + } + + /** + * finish the notice + * + * Close the last elements in the notice list item + * + * @return void + */ + function showEnd() + { + $this->out->elementEnd('span'); + } +} diff --git a/lib/installer.php b/lib/installer.php index ff2bed1403..ad1989f4eb 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -2,7 +2,7 @@ /** * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2009, StatusNet, Inc. + * Copyright (C) 2009-2010, 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 @@ -32,9 +32,10 @@ * @author Sarven Capadisli <csarven@status.net> * @author Tom Adams <tom@holizz.com> * @author Zach Copley <zach@status.net> + * @copyright 2009-2010 StatusNet, Inc http://status.net * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license GNU Affero General Public License http://www.gnu.org/licenses/ - * @version 0.9.x + * @version 1.0.x * @link http://status.net */ @@ -53,12 +54,12 @@ abstract class Installer 'mysql' => array( 'name' => 'MySQL', 'check_module' => 'mysqli', - 'installer' => 'mysql_db_installer', + 'scheme' => 'mysqli', // DSN prefix for PEAR::DB ), 'pgsql' => array( 'name' => 'PostgreSQL', 'check_module' => 'pgsql', - 'installer' => 'pgsql_db_installer', + 'scheme' => 'pgsql', // DSN prefix for PEAR::DB ), ); @@ -85,7 +86,11 @@ abstract class Installer $config = INSTALLDIR.'/config.php'; if (file_exists($config)) { if (!is_writable($config) || filesize($config) > 0) { - $this->warning('Config file "config.php" already exists.'); + if (filesize($config) == 0) { + $this->warning('Config file "config.php" already exists and is empty, but is not writable.'); + } else { + $this->warning('Config file "config.php" already exists.'); + } $pass = false; } } @@ -250,6 +255,7 @@ abstract class Installer * Set up the database with the appropriate function for the selected type... * Saves database info into $this->db. * + * @fixme escape things in the connection string in case we have a funny pass etc * @return mixed array of database connection params on success, false on failure */ function setupDatabase() @@ -257,119 +263,39 @@ abstract class Installer if ($this->db) { throw new Exception("Bad order of operations: DB already set up."); } - $method = self::$dbModules[$this->dbtype]['installer']; - $db = call_user_func(array($this, $method), - $this->host, - $this->database, - $this->username, - $this->password); - $this->db = $db; - return $this->db; - } - - /** - * Set up a database on PostgreSQL. - * Will output status updates during the operation. - * - * @param string $host - * @param string $database - * @param string $username - * @param string $password - * @return mixed array of database connection params on success, false on failure - * - * @fixme escape things in the connection string in case we have a funny pass etc - */ - function Pgsql_Db_installer($host, $database, $username, $password) - { - $connstring = "dbname=$database host=$host user=$username"; - - //No password would mean trust authentication used. - if (!empty($password)) { - $connstring .= " password=$password"; - } $this->updateStatus("Starting installation..."); + + if (empty($this->password)) { + $auth = ''; + } else { + $auth = ":$this->password"; + } + $scheme = self::$dbModules[$this->dbtype]['scheme']; + $dsn = "{$scheme}://{$this->username}{$auth}@{$this->host}/{$this->database}"; + $this->updateStatus("Checking database..."); - $conn = pg_connect($connstring); + $conn = $this->connectDatabase($dsn); - if ($conn ===false) { - $this->updateStatus("Failed to connect to database: $connstring"); - return false; - } - - //ensure database encoding is UTF8 - $record = pg_fetch_object(pg_query($conn, 'SHOW server_encoding')); - if ($record->server_encoding != 'UTF8') { - $this->updateStatus("StatusNet requires UTF8 character encoding. Your database is ". htmlentities($record->server_encoding)); - return false; - } - - $this->updateStatus("Running database script..."); - //wrap in transaction; - pg_query($conn, 'BEGIN'); - $res = $this->runDbScript('statusnet_pg.sql', $conn, 'pgsql'); - - if ($res === false) { - $this->updateStatus("Can't run database script.", true); - return false; - } - foreach (array('sms_carrier' => 'SMS carrier', - 'notice_source' => 'notice source', - 'foreign_services' => 'foreign service') - as $scr => $name) { - $this->updateStatus(sprintf("Adding %s data to database...", $name)); - $res = $this->runDbScript($scr.'.sql', $conn, 'pgsql'); - if ($res === false) { - $this->updateStatus(sprintf("Can't run %d script.", $name), true); + // ensure database encoding is UTF8 + if ($this->dbtype == 'mysql') { + // @fixme utf8m4 support for mysql 5.5? + // Force the comms charset to utf8 for sanity + // This doesn't currently work. :P + //$conn->executes('set names utf8'); + } else if ($this->dbtype == 'pgsql') { + $record = $conn->getRow('SHOW server_encoding'); + if ($record->server_encoding != 'UTF8') { + $this->updateStatus("StatusNet requires UTF8 character encoding. Your database is ". htmlentities($record->server_encoding)); return false; } } - pg_query($conn, 'COMMIT'); - if (empty($password)) { - $sqlUrl = "pgsql://$username@$host/$database"; - } else { - $sqlUrl = "pgsql://$username:$password@$host/$database"; - } - - $db = array('type' => 'pgsql', 'database' => $sqlUrl); - - return $db; - } - - /** - * Set up a database on MySQL. - * Will output status updates during the operation. - * - * @param string $host - * @param string $database - * @param string $username - * @param string $password - * @return mixed array of database connection params on success, false on failure - * - * @fixme escape things in the connection string in case we have a funny pass etc - */ - function Mysql_Db_installer($host, $database, $username, $password) - { - $this->updateStatus("Starting installation..."); - $this->updateStatus("Checking database..."); - - $conn = mysqli_init(); - if (!$conn->real_connect($host, $username, $password)) { - $this->updateStatus("Can't connect to server '$host' as '$username'.", true); - return false; - } - $this->updateStatus("Changing to database..."); - if (!$conn->select_db($database)) { - $this->updateStatus("Can't change to database.", true); + $res = $this->updateStatus("Creating database tables..."); + if (!$this->createCoreTables($conn)) { + $this->updateStatus("Error creating tables.", true); return false; } - $this->updateStatus("Running database script..."); - $res = $this->runDbScript('statusnet.sql', $conn); - if ($res === false) { - $this->updateStatus("Can't run database script.", true); - return false; - } foreach (array('sms_carrier' => 'SMS carrier', 'notice_source' => 'notice source', 'foreign_services' => 'foreign service') @@ -382,11 +308,78 @@ abstract class Installer } } - $sqlUrl = "mysqli://$username:$password@$host/$database"; - $db = array('type' => 'mysql', 'database' => $sqlUrl); + $db = array('type' => $this->dbtype, 'database' => $dsn); return $db; } + /** + * Open a connection to the database. + * + * @param <type> $dsn + * @return <type> + */ + function connectDatabase($dsn) + { + // @fixme move this someplace more sensible + //set_include_path(INSTALLDIR . '/extlib' . PATH_SEPARATOR . get_include_path()); + require_once 'DB.php'; + return DB::connect($dsn); + } + + /** + * Create core tables on the given database connection. + * + * @param DB_common $conn + */ + function createCoreTables(DB_common $conn) + { + $schema = Schema::get($conn); + $tableDefs = $this->getCoreSchema(); + foreach ($tableDefs as $name => $def) { + if (defined('DEBUG_INSTALLER')) { + echo " $name "; + } + $schema->ensureTable($name, $def); + } + return true; + } + + /** + * Fetch the core table schema definitions. + * + * @return array of table names => table def arrays + */ + function getCoreSchema() + { + $schema = array(); + include INSTALLDIR . '/db/core.php'; + return $schema; + } + + /** + * Return a parseable PHP literal for the given value. + * This will include quotes for strings, etc. + * + * @param mixed $val + * @return string + */ + function phpVal($val) + { + return var_export($val, true); + } + + /** + * Return an array of parseable PHP literal for the given values. + * These will include quotes for strings, etc. + * + * @param mixed $val + * @return array + */ + function phpVals($map) + { + return array_map(array($this, 'phpVal'), $map); + } + /** * Write a stock configuration file. * @@ -396,24 +389,32 @@ abstract class Installer */ function writeConf() { + $vals = $this->phpVals(array( + 'sitename' => $this->sitename, + 'server' => $this->server, + 'path' => $this->path, + 'db_database' => $this->db['database'], + 'db_type' => $this->db['type'], + )); + // assemble configuration file in a string $cfg = "<?php\n". "if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }\n\n". // site name - "\$config['site']['name'] = '{$this->sitename}';\n\n". + "\$config['site']['name'] = {$vals['sitename']};\n\n". // site location - "\$config['site']['server'] = '{$this->server}';\n". - "\$config['site']['path'] = '{$this->path}'; \n\n". + "\$config['site']['server'] = {$vals['server']};\n". + "\$config['site']['path'] = {$vals['path']}; \n\n". // checks if fancy URLs are enabled ($this->fancy ? "\$config['site']['fancy'] = true;\n\n":''). // database - "\$config['db']['database'] = '{$this->db['database']}';\n\n". + "\$config['db']['database'] = {$vals['db_database']};\n\n". ($this->db['type'] == 'pgsql' ? "\$config['db']['quote_identifiers'] = true;\n\n":''). - "\$config['db']['type'] = '{$this->db['type']}';\n\n"; + "\$config['db']['type'] = {$vals['db_type']};\n\n"; // Normalize line endings for Windows servers $cfg = str_replace("\n", PHP_EOL, $cfg); @@ -427,13 +428,12 @@ abstract class Installer /** * Install schema into the database * - * @param string $filename location of database schema file - * @param dbconn $conn connection to database - * @param string $type type of database, currently mysql or pgsql + * @param string $filename location of database schema file + * @param DB_common $conn connection to database * * @return boolean - indicating success or failure */ - function runDbScript($filename, $conn, $type = 'mysqli') + function runDbScript($filename, DB_common $conn) { $sql = trim(file_get_contents(INSTALLDIR . '/db/' . $filename)); $stmts = explode(';', $sql); @@ -442,26 +442,12 @@ abstract class Installer if (!mb_strlen($stmt)) { continue; } - // FIXME: use PEAR::DB or PDO instead of our own switch - switch ($type) { - case 'mysqli': - $res = $conn->query($stmt); - if ($res === false) { - $error = $conn->error; - } - break; - case 'pgsql': - $res = pg_query($conn, $stmt); - if ($res === false) { - $error = pg_last_error(); - } - break; - default: - $this->updateStatus("runDbScript() error: unknown database type ". $type ." provided."); - } - if ($res === false) { + try { + $res = $conn->simpleQuery($stmt); + } catch (Exception $e) { + $error = $e->getMessage(); $this->updateStatus("ERROR ($error) for SQL '$stmt'"); - return $res; + return false; } } return true; @@ -474,9 +460,6 @@ abstract class Installer */ function registerInitialUser() { - define('STATUSNET', true); - define('LACONICA', true); // compatibility - require_once INSTALLDIR . '/lib/common.php'; $data = array('nickname' => $this->adminNick, @@ -523,10 +506,22 @@ abstract class Installer */ function doInstall() { - $this->db = $this->setupDatabase(); + $this->updateStatus("Initializing..."); + ini_set('display_errors', 1); + error_reporting(E_ALL); + define('STATUSNET', 1); + require_once INSTALLDIR . '/lib/framework.php'; + StatusNet::initDefaults($this->server, $this->path); - if (!$this->db) { - // database connection failed, do not move on to create config file. + try { + $this->db = $this->setupDatabase(); + if (!$this->db) { + // database connection failed, do not move on to create config file. + return false; + } + } catch (Exception $e) { + // Lower-level DB error! + $this->updateStatus("Database error: " . $e->getMessage(), true); return false; } diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php index 0d72ddf7ab..80d4036aad 100644 --- a/lib/jsonsearchresultslist.php +++ b/lib/jsonsearchresultslist.php @@ -101,6 +101,10 @@ class JSONSearchResultsList $this->max_id = (int)$this->notice->id; } + if ($this->since_id && $this->notice->id <= $this->since_id) { + break; + } + if ($cnt > $this->rpp) { break; } diff --git a/lib/language.php b/lib/language.php index 80d2568074..86896cff9d 100644 --- a/lib/language.php +++ b/lib/language.php @@ -322,10 +322,12 @@ function get_all_languages() { 'gl' => array('q' => 0.8, 'lang' => 'gl', 'name' => 'Galician', 'direction' => 'ltr'), 'he' => array('q' => 0.5, 'lang' => 'he', 'name' => 'Hebrew', 'direction' => 'rtl'), 'hsb' => array('q' => 0.8, 'lang' => 'hsb', 'name' => 'Upper Sorbian', 'direction' => 'ltr'), + 'hu' => array('q' => 0.8, 'lang' => 'hu', 'name' => 'Hungarian', 'direction' => 'ltr'), 'ia' => array('q' => 0.8, 'lang' => 'ia', 'name' => 'Interlingua', 'direction' => 'ltr'), 'is' => array('q' => 0.1, 'lang' => 'is', 'name' => 'Icelandic', 'direction' => 'ltr'), 'it' => array('q' => 1, 'lang' => 'it', 'name' => 'Italian', 'direction' => 'ltr'), 'jp' => array('q' => 0.5, 'lang' => 'ja', 'name' => 'Japanese', 'direction' => 'ltr'), + 'ka' => array('q' => 0.8, 'lang' => 'ka', 'name' => 'Georgian', 'direction' => 'ltr'), 'ko' => array('q' => 0.9, 'lang' => 'ko', 'name' => 'Korean', 'direction' => 'ltr'), 'mk' => array('q' => 0.5, 'lang' => 'mk', 'name' => 'Macedonian', 'direction' => 'ltr'), 'nb' => array('q' => 0.1, 'lang' => 'nb', 'name' => 'Norwegian (Bokmål)', 'direction' => 'ltr'), diff --git a/lib/mail.php b/lib/mail.php index ab5742e33d..dd6a1a366e 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -170,19 +170,21 @@ function mail_to_user(&$user, $subject, $body, $headers=array(), $address=null) function mail_confirm_address($user, $code, $nickname, $address) { - // TRANS: Subject for address confirmation email + // TRANS: Subject for address confirmation email. $subject = _('Email address confirmation'); // TRANS: Body for address confirmation email. - $body = sprintf(_("Hey, %s.\n\n". - "Someone just entered this email address on %s.\n\n" . + // TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, + // TRANS: %3$s is the URL to confirm at. + $body = sprintf(_("Hey, %1\$s.\n\n". + "Someone just entered this email address on %2\$s.\n\n" . "If it was you, and you want to confirm your entry, ". - "use the URL below:\n\n\t%s\n\n" . + "use the URL below:\n\n\t%3\$s\n\n" . "If not, just ignore this message.\n\n". - "Thanks for your time, \n%s\n"), - $nickname, common_config('site', 'name'), - common_local_url('confirmaddress', array('code' => $code)), - common_config('site', 'name')); + "Thanks for your time, \n%2\$s\n"), + $nickname, + common_config('site', 'name'), + common_local_url('confirmaddress', array('code' => $code))); $headers = array(); return mail_to_user($user, $subject, $body, $headers, $address); @@ -239,41 +241,50 @@ function mail_subscribe_notify_profile($listenee, $other) $headers = _mail_prepare_headers('subscribe', $listenee->nickname, $other->nickname); $headers['From'] = mail_notify_from(); $headers['To'] = $name . ' <' . $listenee->email . '>'; - // TRANS: Subject of new-subscriber notification e-mail + // TRANS: Subject of new-subscriber notification e-mail. + // TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. $headers['Subject'] = sprintf(_('%1$s is now listening to '. 'your notices on %2$s.'), $other->getBestName(), common_config('site', 'name')); + // TRANS: This is a paragraph in a new-subscriber e-mail. + // TRANS: %s is a URL where the subscriber can be reported as abusive. $blocklink = sprintf(_("If you believe this account is being used abusively, " . "you can block them from your subscribers list and " . "report as spam to site administrators at %s"), common_local_url('block', array('profileid' => $other->id))); - // TRANS: Main body of new-subscriber notification e-mail + // TRANS: Main body of new-subscriber notification e-mail. + // TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, + // TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) + // TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) + // TRANS: %7$s is a link to the addressed user's e-mail settings. $body = sprintf(_('%1$s is now listening to your notices on %2$s.'."\n\n". "\t".'%3$s'."\n\n". '%4$s'. '%5$s'. '%6$s'. - "\n".'Faithfully yours,'."\n".'%7$s.'."\n\n". + "\n".'Faithfully yours,'."\n".'%2$s.'."\n\n". "----\n". "Change your email address or ". - "notification options at ".'%8$s' ."\n"), + "notification options at ".'%7$s' ."\n"), $long_name, common_config('site', 'name'), $other->profileurl, ($other->location) ? - // TRANS: Profile info line in new-subscriber notification e-mail + // TRANS: Profile info line in new-subscriber notification e-mail. + // TRANS: %s is a location. sprintf(_("Location: %s"), $other->location) . "\n" : '', ($other->homepage) ? - // TRANS: Profile info line in new-subscriber notification e-mail + // TRANS: Profile info line in new-subscriber notification e-mail. + // TRANS: %s is a homepage. sprintf(_("Homepage: %s"), $other->homepage) . "\n" : '', (($other->bio) ? - // TRANS: Profile info line in new-subscriber notification e-mail + // TRANS: Profile info line in new-subscriber notification e-mail. + // TRANS: %s is biographical information. sprintf(_("Bio: %s"), $other->bio) . "\n" : '') . "\n\n" . $blocklink . "\n", - common_config('site', 'name'), common_local_url('emailsettings')); // reset localization @@ -291,7 +302,6 @@ function mail_subscribe_notify_profile($listenee, $other) * * @return void */ - function mail_new_incoming_notify($user) { $profile = $user->getProfile(); @@ -300,19 +310,21 @@ function mail_new_incoming_notify($user) $headers['From'] = $user->incomingemail; $headers['To'] = $name . ' <' . $user->email . '>'; - // TRANS: Subject of notification mail for new posting email address + // TRANS: Subject of notification mail for new posting email address. + // TRANS: %s is the StatusNet sitename. $headers['Subject'] = sprintf(_('New email address for posting to %s'), common_config('site', 'name')); - // TRANS: Body of notification mail for new posting email address + // TRANS: Body of notification mail for new posting email address. + // TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send + // TRANS: to to post by e-mail, %3$s is a URL to more instructions. $body = sprintf(_("You have a new posting address on %1\$s.\n\n". "Send email to %2\$s to post new messages.\n\n". "More email instructions at %3\$s.\n\n". - "Faithfully yours,\n%4\$s"), + "Faithfully yours,\n%1\$s"), common_config('site', 'name'), $user->incomingemail, - common_local_url('doc', array('title' => 'email')), - common_config('site', 'name')); + common_local_url('doc', array('title' => 'email'))); mail_send($user->email, $headers, $body); } @@ -324,7 +336,6 @@ function mail_new_incoming_notify($user) * * @return string new email address for incoming messages */ - function mail_new_incoming_address() { $prefix = common_confirmation_code(64); @@ -343,7 +354,6 @@ function mail_new_incoming_address() * * @return success flag */ - function mail_broadcast_notice_sms($notice) { // Now, get users subscribed to this profile @@ -395,7 +405,6 @@ function mail_broadcast_notice_sms($notice) * * @return boolean success flag */ - function mail_send_sms_notice($notice, $user) { return mail_send_sms_notice_address($notice, @@ -415,7 +424,6 @@ function mail_send_sms_notice($notice, $user) * * @return boolean success flag */ - function mail_send_sms_notice_address($notice, $smsemail, $incomingemail) { $to = $nickname . ' <' . $smsemail . '>'; @@ -429,7 +437,8 @@ function mail_send_sms_notice_address($notice, $smsemail, $incomingemail) $headers['From'] = ($incomingemail) ? $incomingemail : mail_notify_from(); $headers['To'] = $to; - // TRANS: Subject line for SMS-by-email notification messages + // TRANS: Subject line for SMS-by-email notification messages. + // TRANS: %s is the posting user's nickname. $headers['Subject'] = sprintf(_('%s status'), $other->getBestName()); @@ -449,17 +458,17 @@ function mail_send_sms_notice_address($notice, $smsemail, $incomingemail) * * @return void */ - function mail_confirm_sms($code, $nickname, $address) { $recipients = $address; $headers['From'] = mail_notify_from(); $headers['To'] = $nickname . ' <' . $address . '>'; - // TRANS: Subject line for SMS-by-email address confirmation message + // TRANS: Subject line for SMS-by-email address confirmation message. $headers['Subject'] = _('SMS confirmation'); - // TRANS: Main body heading for SMS-by-email address confirmation message + // TRANS: Main body heading for SMS-by-email address confirmation message. + // TRANS: %s is the addressed user's nickname. $body = sprintf(_("%s: confirm you own this phone number with this code:"), $nickname); $body .= "\n\n"; $body .= $code; @@ -476,16 +485,18 @@ function mail_confirm_sms($code, $nickname, $address) * * @return boolean success flag */ - function mail_notify_nudge($from, $to) { common_switch_locale($to->language); - // TRANS: Subject for 'nudge' notification email + // TRANS: Subject for 'nudge' notification email. + // TRANS: %s is the nudging user. $subject = sprintf(_('You\'ve been nudged by %s'), $from->nickname); $from_profile = $from->getProfile(); - // TRANS: Body for 'nudge' notification email + // TRANS: Body for 'nudge' notification email. + // TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, + // TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. $body = sprintf(_("%1\$s (%2\$s) is wondering what you are up to ". "these days and is inviting you to post some news.\n\n". "So let's hear from you :)\n\n". @@ -516,7 +527,6 @@ function mail_notify_nudge($from, $to) * * @return boolean success code */ - function mail_notify_message($message, $from=null, $to=null) { if (is_null($from)) { @@ -532,12 +542,16 @@ function mail_notify_message($message, $from=null, $to=null) } common_switch_locale($to->language); - // TRANS: Subject for direct-message notification email + // TRANS: Subject for direct-message notification email. + // TRANS: %s is the sending user's nickname. $subject = sprintf(_('New private message from %s'), $from->nickname); $from_profile = $from->getProfile(); - // TRANS: Body for direct-message notification email + // TRANS: Body for direct-message notification email. + // TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, + // TRANS: %3$s is the message content, %4$s a URL to the message, + // TRANS: %5$s is the StatusNet sitename. $body = sprintf(_("%1\$s (%2\$s) sent you a private message:\n\n". "------------------------------------------------------\n". "%3\$s\n". @@ -572,7 +586,6 @@ function mail_notify_message($message, $from=null, $to=null) * * @return void */ - function mail_notify_fave($other, $user, $notice) { if (!$user->hasRight(Right::EMAILONFAVE)) { @@ -580,15 +593,24 @@ function mail_notify_fave($other, $user, $notice) } $profile = $user->getProfile(); + if ($other->hasBlocked($profile)) { + // If the author has blocked us, don't spam them with a notification. + return; + } $bestname = $profile->getBestName(); common_switch_locale($other->language); - // TRANS: Subject for favorite notification email - $subject = sprintf(_('%s (@%s) added your notice as a favorite'), $bestname, $user->nickname); + // TRANS: Subject for favorite notification e-mail. + // TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. + $subject = sprintf(_('%1$s (@%2$s) added your notice as a favorite'), $bestname, $user->nickname); - // TRANS: Body for favorite notification email + // TRANS: Body for favorite notification e-mail. + // TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, + // TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, + // TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, + // TRANS: %7$s is the adding user's nickname. $body = sprintf(_("%1\$s (@%7\$s) just added your notice from %2\$s". " as one of their favorites.\n\n" . "The URL of your notice is:\n\n" . @@ -623,7 +645,6 @@ function mail_notify_fave($other, $user, $notice) * * @return void */ - function mail_notify_attn($user, $notice) { if (!$user->email || !$user->emailnotifyattn) { @@ -654,9 +675,16 @@ function mail_notify_attn($user, $notice) $conversationEmailText = ''; } - $subject = sprintf(_('%s (@%s) sent a notice to your attention'), $bestname, $sender->nickname); + // TRANS: E-mail subject for notice notification. + // TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. + $subject = sprintf(_('%1$s (@%2$s) sent a notice to your attention'), $bestname, $sender->nickname); // TRANS: Body of @-reply notification e-mail. + // TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, + // TRANS: %3$s is a URL to the notice, %4$s is the notice text, + // TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), + // TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, + // TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. $body = sprintf(_("%1\$s (@%9\$s) just sent a notice to your attention (an '@-reply') on %2\$s.\n\n". "The notice is here:\n\n". "\t%3\$s\n\n" . @@ -709,4 +737,3 @@ function _mail_prepare_headers($msg_type, $to, $from) return $headers; } - diff --git a/lib/mailhandler.php b/lib/mailhandler.php index e9ba418399..459657ffe0 100644 --- a/lib/mailhandler.php +++ b/lib/mailhandler.php @@ -55,10 +55,11 @@ class MailHandler return true; } $msg = $this->cleanup_msg($msg); - $msg = common_shorten_links($msg); + $msg = $user->shortenLinks($msg); if (Notice::contentTooLong($msg)) { - $this->error($from, sprintf(_('That\'s too long. '. - 'Max notice size is %d chars.'), + $this->error($from, sprintf(_('That\'s too long. Maximum notice size is %d character.', + 'That\'s too long. Maximum notice size is %d characters.', + Notice::maxContent()), Notice::maxContent())); } diff --git a/lib/mediafile.php b/lib/mediafile.php index c96c78ab5d..a41d7c76b5 100644 --- a/lib/mediafile.php +++ b/lib/mediafile.php @@ -48,11 +48,14 @@ class MediaFile { if ($user == null) { $this->user = common_current_user(); + } else { + $this->user = $user; } $this->filename = $filename; $this->mimetype = $mimetype; $this->fileRecord = $this->storeFile(); + $this->thumbnailRecord = $this->storeThumbnail(); $this->fileurl = common_local_url('attachment', array('attachment' => $this->fileRecord->id)); @@ -95,12 +98,59 @@ class MediaFile if (!$file_id) { common_log_db_error($file, "INSERT", __FILE__); + // TRANS: Client exception thrown when a database error was thrown during a file upload operation. throw new ClientException(_('There was a database error while saving your file. Please try again.')); } return $file; } + /** + * Generate and store a thumbnail image for the uploaded file, if applicable. + * + * @return File_thumbnail or null + */ + function storeThumbnail() + { + if (substr($this->mimetype, 0, strlen('image/')) != 'image/') { + // @fixme video thumbs would be nice! + return null; + } + try { + $image = new ImageFile($this->fileRecord->id, + File::path($this->filename)); + } catch (Exception $e) { + // Unsupported image type. + return null; + } + + $outname = File::filename($this->user->getProfile(), 'thumb-' . $this->filename, $this->mimetype); + $outpath = File::path($outname); + + $maxWidth = common_config('attachments', 'thumb_width'); + $maxHeight = common_config('attachments', 'thumb_height'); + list($width, $height) = $this->scaleToFit($image->width, $image->height, $maxWidth, $maxHeight); + + $image->resizeTo($outpath, $width, $height); + File_thumbnail::saveThumbnail($this->fileRecord->id, + File::url($outname), + $width, + $height); + } + + function scaleToFit($width, $height, $maxWidth, $maxHeight) + { + $aspect = $maxWidth / $maxHeight; + $w1 = $maxWidth; + $h1 = intval($height * $maxWidth / $width); + if ($h1 > $maxHeight) { + $w2 = intval($width * $maxHeight / $height); + $h2 = $maxHeight; + return array($w2, $h2); + } + return array($w1, $h1); + } + function rememberFile($file, $short) { $this->maybeAddRedir($file->id, $short); @@ -120,6 +170,7 @@ class MediaFile if (!$result) { common_log_db_error($file_redir, "INSERT", __FILE__); + // TRANS: Client exception thrown when a database error was thrown during a file upload operation. throw new ClientException(_('There was a database error while saving your file. Please try again.')); } } @@ -139,16 +190,19 @@ class MediaFile case UPLOAD_ERR_OK: // success, jump out break; case UPLOAD_ERR_INI_SIZE: + // TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. throw new ClientException(_('The uploaded file exceeds the ' . 'upload_max_filesize directive in php.ini.')); return; case UPLOAD_ERR_FORM_SIZE: throw new ClientException( + // TRANS: Client exception. _('The uploaded file exceeds the MAX_FILE_SIZE directive' . ' that was specified in the HTML form.')); return; case UPLOAD_ERR_PARTIAL: @unlink($_FILES[$param]['tmp_name']); + // TRANS: Client exception. throw new ClientException(_('The uploaded file was only' . ' partially uploaded.')); return; @@ -156,17 +210,21 @@ class MediaFile // No file; probably just a non-AJAX submission. return; case UPLOAD_ERR_NO_TMP_DIR: + // TRANS: Client exception thrown when a temporary folder is not present to store a file upload. throw new ClientException(_('Missing a temporary folder.')); return; case UPLOAD_ERR_CANT_WRITE: + // TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. throw new ClientException(_('Failed to write file to disk.')); return; case UPLOAD_ERR_EXTENSION: + // TRANS: Client exception thrown when a file upload operation has been stopped by an extension. throw new ClientException(_('File upload stopped by extension.')); return; default: common_log(LOG_ERR, __METHOD__ . ": Unknown upload error " . $_FILES[$param]['error']); + // TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. throw new ClientException(_('System error uploading file.')); return; } @@ -176,6 +234,7 @@ class MediaFile // Should never actually get here @unlink($_FILES[$param]['tmp_name']); + // TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. throw new ClientException(_('File exceeds user\'s quota.')); return; } @@ -194,11 +253,15 @@ class MediaFile $result = move_uploaded_file($_FILES[$param]['tmp_name'], $filepath); if (!$result) { + // TRANS: Client exception thrown when a file upload operation fails because the file could + // TRANS: not be moved from the temporary folder to the permanent file location. throw new ClientException(_('File could not be moved to destination directory.')); return; } } else { + // TRANS: Client exception thrown when a file upload operation has been stopped because the MIME + // TRANS: type of the uploaded file could not be determined. throw new ClientException(_('Could not determine file\'s MIME type.')); return; } @@ -214,6 +277,7 @@ class MediaFile // Should never actually get here + // TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. throw new ClientException(_('File exceeds user\'s quota.')); return; } @@ -231,10 +295,14 @@ class MediaFile $result = copy($stream['uri'], $filepath) && chmod($filepath, 0664); if (!$result) { + // TRANS: Client exception thrown when a file upload operation fails because the file could + // TRANS: not be moved from the temporary folder to the permanent file location. throw new ClientException(_('File could not be moved to destination directory.' . $stream['uri'] . ' ' . $filepath)); } } else { + // TRANS: Client exception thrown when a file upload operation has been stopped because the MIME + // TRANS: type of the uploaded file could not be determined. throw new ClientException(_('Could not determine file\'s MIME type.')); return; } @@ -259,6 +327,9 @@ class MediaFile static function getUploadedFileType($f, $originalFilename=false) { require_once 'MIME/Type.php'; require_once 'MIME/Type/Extension.php'; + + // We have to disable auto handling of PEAR errors + PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN); $mte = new MIME_Type_Extension(); $cmd = &PEAR::getStaticProperty('MIME_Type', 'fileCmd'); @@ -311,16 +382,25 @@ class MediaFile } } if ($supported === true || in_array($filetype, $supported)) { + // Restore PEAR error handlers for our DB code... + PEAR::staticPopErrorHandling(); return $filetype; } $media = MIME_Type::getMedia($filetype); if ('application' !== $media) { - $hint = sprintf(_(' Try using another %s format.'), $media); + // TRANS: Client exception thrown trying to upload a forbidden MIME type. + // TRANS: %1$s is the file type that was denied, %2$s is the application part of + // TRANS: the MIME type that was denied. + $hint = sprintf(_('"%1$s" is not a supported file type on this server. ' . + 'Try using another %2$s format.'), $filetype, $media); } else { - $hint = ''; + // TRANS: Client exception thrown trying to upload a forbidden MIME type. + // TRANS: %s is the file type that was denied. + $hint = sprintf(_('"%s" is not a supported file type on this server.'), $filetype); } - throw new ClientException(sprintf( - _('%s is not a supported file type on this server.'), $filetype) . $hint); + // Restore PEAR error handlers for our DB code... + PEAR::staticPopErrorHandling(); + throw new ClientException($hint); } static function respectsQuota($user, $filesize) diff --git a/lib/messageform.php b/lib/messageform.php index b116964da9..9d3f955a81 100644 --- a/lib/messageform.php +++ b/lib/messageform.php @@ -133,6 +133,8 @@ class MessageForm extends Form $mutual_users = $user->mutuallySubscribedUsers(); $mutual = array(); + // TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. + $mutual[0] = _('Select recipient:'); while ($mutual_users->fetch()) { if ($mutual_users->id != $user->id) { @@ -143,6 +145,11 @@ class MessageForm extends Form $mutual_users->free(); unset($mutual_users); + if (count($mutual) == 1) { + // TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. + $mutual[0] = _('No mutual subscribers.'); + } + $this->out->dropdown('to', _('To'), $mutual, null, false, ($this->to) ? $this->to->id : null); diff --git a/lib/mysqlschema.php b/lib/mysqlschema.php index f9552c1dcd..c3d3501c74 100644 --- a/lib/mysqlschema.php +++ b/lib/mysqlschema.php @@ -72,72 +72,127 @@ class MysqlSchema extends Schema * * Throws an exception if the table is not found. * - * @param string $name Name of the table to get + * @param string $table Name of the table to get * * @return TableDef tabledef for that table. * @throws SchemaTableMissingException */ - public function getTableDef($name) + public function getTableDef($table) { - $query = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS " . - "WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s'"; - $schema = $this->conn->dsn['database']; - $sql = sprintf($query, $schema, $name); - $res = $this->conn->query($sql); + $def = array(); + $hasKeys = false; - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - if ($res->numRows() == 0) { - $res->free(); - throw new SchemaTableMissingException("No such table: $name"); + // Pull column data from INFORMATION_SCHEMA + $columns = $this->fetchMetaInfo($table, 'COLUMNS', 'ORDINAL_POSITION'); + if (count($columns) == 0) { + throw new SchemaTableMissingException("No such table: $table"); } - $td = new TableDef(); + foreach ($columns as $row) { - $td->name = $name; - $td->columns = array(); + $name = $row['COLUMN_NAME']; + $field = array(); - $row = array(); + // warning -- 'unsigned' attr on numbers isn't given in DATA_TYPE and friends. + // It is stuck in on COLUMN_TYPE though (eg 'bigint(20) unsigned') + $field['type'] = $type = $row['DATA_TYPE']; - while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { - - $cd = new ColumnDef(); - - $cd->name = $row['COLUMN_NAME']; - - $packed = $row['COLUMN_TYPE']; - - if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { - $cd->type = $match[1]; - $cd->size = $match[2]; - } else { - $cd->type = $packed; + if ($type == 'char' || $type == 'varchar') { + if ($row['CHARACTER_MAXIMUM_LENGTH'] !== null) { + $field['length'] = intval($row['CHARACTER_MAXIMUM_LENGTH']); + } + } + if ($type == 'decimal') { + // Other int types may report these values, but they're irrelevant. + // Just ignore them! + if ($row['NUMERIC_PRECISION'] !== null) { + $field['precision'] = intval($row['NUMERIC_PRECISION']); + } + if ($row['NUMERIC_SCALE'] !== null) { + $field['scale'] = intval($row['NUMERIC_SCALE']); + } + } + if ($row['IS_NULLABLE'] == 'NO') { + $field['not null'] = true; + } + if ($row['COLUMN_DEFAULT'] !== null) { + // Hack for timestamp cols + if ($type == 'timestamp' && $row['COLUMN_DEFAULT'] == 'CURRENT_TIMESTAMP') { + // skip + } else { + $field['default'] = $row['COLUMN_DEFAULT']; + if ($this->isNumericType($type)) { + $field['default'] = intval($field['default']); + } + } + } + if ($row['COLUMN_KEY'] !== null) { + // We'll need to look up key info... + $hasKeys = true; + } + if ($row['COLUMN_COMMENT'] !== null && $row['COLUMN_COMMENT'] != '') { + $field['description'] = $row['COLUMN_COMMENT']; } - $cd->nullable = ($row['IS_NULLABLE'] == 'YES') ? true : false; - $cd->key = $row['COLUMN_KEY']; - $cd->default = $row['COLUMN_DEFAULT']; - $cd->extra = $row['EXTRA']; - - // Autoincrement is stuck into the extra column. - // Pull it out so we don't accidentally mod it every time... - $extra = preg_replace('/(^|\s)auto_increment(\s|$)/i', '$1$2', $cd->extra); - if ($extra != $cd->extra) { - $cd->extra = trim($extra); - $cd->auto_increment = true; + $extra = $row['EXTRA']; + if ($extra) { + if (preg_match('/(^|\s)auto_increment(\s|$)/i', $extra)) { + $field['auto_increment'] = true; + } + // $row['EXTRA'] may contain 'on update CURRENT_TIMESTAMP' + // ^ ...... how to specify? } - // mysql extensions -- not (yet) used by base class - $cd->charset = $row['CHARACTER_SET_NAME']; - $cd->collate = $row['COLLATION_NAME']; + if ($row['CHARACTER_SET_NAME'] !== null) { + // @fixme check against defaults? + //$def['charset'] = $row['CHARACTER_SET_NAME']; + //$def['collate'] = $row['COLLATION_NAME']; + } - $td->columns[] = $cd; + $def['fields'][$name] = $field; } - $res->free(); - return $td; + if ($hasKeys) { + // INFORMATION_SCHEMA's CONSTRAINTS and KEY_COLUMN_USAGE tables give + // good info on primary and unique keys but don't list ANY info on + // multi-value keys, which is lame-o. Sigh. + // + // Let's go old school and use SHOW INDEX :D + // + $keyInfo = $this->fetchIndexInfo($table); + $keys = array(); + foreach ($keyInfo as $row) { + $name = $row['Key_name']; + $column = $row['Column_name']; + + if (!isset($keys[$name])) { + $keys[$name] = array(); + } + $keys[$name][] = $column; + + if ($name == 'PRIMARY') { + $type = 'primary key'; + } else if ($row['Non_unique'] == 0) { + $type = 'unique keys'; + } else if ($row['Index_type'] == 'FULLTEXT') { + $type = 'fulltext indexes'; + } else { + $type = 'indexes'; + } + $keyTypes[$name] = $type; + } + + foreach ($keyTypes as $name => $type) { + if ($type == 'primary key') { + // there can be only one + $def[$type] = $keys[$name]; + } else { + $def[$type][$name] = $keys[$name]; + } + } + } + return $def; } /** @@ -150,127 +205,81 @@ class MysqlSchema extends Schema function getTableProperties($table, $props) { - $query = "SELECT %s FROM INFORMATION_SCHEMA.TABLES " . - "WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s'"; - $schema = $this->conn->dsn['database']; - $sql = sprintf($query, implode(',', $props), $schema, $table); - $res = $this->conn->query($sql); - - $row = array(); - $ok = $res->fetchInto($row, DB_FETCHMODE_ASSOC); - $res->free(); - - if ($ok) { - return $row; + $data = $this->fetchMetaInfo($table, 'TABLES'); + if ($data) { + return $data[0]; } else { throw new SchemaTableMissingException("No such table: $table"); } } /** - * Gets a ColumnDef object for a single column. + * Pull some INFORMATION.SCHEMA data for the given table. * - * Throws an exception if the table is not found. - * - * @param string $table name of the table - * @param string $column name of the column - * - * @return ColumnDef definition of the column or null - * if not found. + * @param string $table + * @return array of arrays */ - - public function getColumnDef($table, $column) + function fetchMetaInfo($table, $infoTable, $orderBy=null) { - $td = $this->getTableDef($table); - - foreach ($td->columns as $cd) { - if ($cd->name == $column) { - return $cd; - } + $query = "SELECT * FROM INFORMATION_SCHEMA.%s " . + "WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s'"; + $schema = $this->conn->dsn['database']; + $sql = sprintf($query, $infoTable, $schema, $table); + if ($orderBy) { + $sql .= ' ORDER BY ' . $orderBy; } - - return null; + return $this->fetchQueryData($sql); } /** - * Creates a table with the given names and columns. + * Pull 'SHOW INDEX' data for the given table. * - * @param string $name Name of the table - * @param array $columns Array of ColumnDef objects - * for new table. - * - * @return boolean success flag + * @param string $table + * @return array of arrays */ - - public function createTable($name, $columns) + function fetchIndexInfo($table) { - $uniques = array(); - $primary = array(); - $indices = array(); - - $sql = "CREATE TABLE $name (\n"; - - for ($i = 0; $i < count($columns); $i++) { - - $cd =& $columns[$i]; - - if ($i > 0) { - $sql .= ",\n"; - } - - $sql .= $this->_columnSql($cd); - } - - $idx = $this->_indexList($columns); - - if ($idx['primary']) { - $sql .= ",\nconstraint primary key (" . implode(',', $idx['primary']) . ")"; - } - - foreach ($idx['uniques'] as $u) { - $key = $this->_uniqueKey($name, $u); - $sql .= ",\nunique index $key ($u)"; - } - - foreach ($idx['indices'] as $i) { - $key = $this->_key($name, $i); - $sql .= ",\nindex $key ($i)"; - } - - $sql .= ") ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; "; - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; + $query = "SHOW INDEX FROM `%s`"; + $sql = sprintf($query, $table); + return $this->fetchQueryData($sql); } /** - * Look over a list of column definitions and list up which - * indices will be present + * Append an SQL statement with an index definition for a full-text search + * index over one or more columns on a table. + * + * @param array $statements + * @param string $table + * @param string $name + * @param array $def */ - private function _indexList(array $columns) + function appendCreateFulltextIndex(array &$statements, $table, $name, array $def) { - $list = array('uniques' => array(), - 'primary' => array(), - 'indices' => array()); - foreach ($columns as $cd) { - switch ($cd->key) { - case 'UNI': - $list['uniques'][] = $cd->name; - break; - case 'PRI': - $list['primary'][] = $cd->name; - break; - case 'MUL': - $list['indices'][] = $cd->name; - break; - } + $statements[] = "CREATE FULLTEXT INDEX $name ON $table " . $this->buildIndexList($def); + } + + /** + * Close out a 'create table' SQL statement. + * + * @param string $name + * @param array $def + * @return string; + * + * @fixme ENGINE may need to be set differently in some cases, + * such as to support fulltext index. + */ + function endCreateTable($name, array $def) + { + $engine = $this->preferredEngine($def); + return ") ENGINE=$engine CHARACTER SET utf8 COLLATE utf8_bin"; + } + + function preferredEngine($def) + { + if (!empty($def['fulltext indexes'])) { + return 'MyISAM'; } - return $list; + return 'InnoDB'; } /** @@ -289,344 +298,46 @@ class MysqlSchema extends Schema return "{$tableName}_{$columnName}_idx"; } + /** - * Drops a table from the schema + * MySQL doesn't take 'DROP CONSTRAINT', need to treat unique keys as + * if they were indexes here. * - * Throws an exception if the table is not found. - * - * @param string $name Name of the table to drop - * - * @return boolean success flag + * @param array $phrase + * @param <type> $keyName MySQL */ - - public function dropTable($name) + function appendAlterDropUnique(array &$phrase, $keyName) { - $res = $this->conn->query("DROP TABLE $name"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; + $phrase[] = 'DROP INDEX ' . $keyName; } /** - * Adds an index to a table. - * - * If no name is provided, a name will be made up based - * on the table name and column names. - * - * Throws an exception on database error, esp. if the table - * does not exist. - * - * @param string $table Name of the table - * @param array $columnNames Name of columns to index - * @param string $name (Optional) name of the index - * - * @return boolean success flag + * Throw some table metadata onto the ALTER TABLE if we have a mismatch + * in expected type, collation. */ - - public function createIndex($table, $columnNames, $name=null) + function appendAlterExtras(array &$phrase, $tableName, array $def) { - if (!is_array($columnNames)) { - $columnNames = array($columnNames); - } - - if (empty($name)) { - $name = "{$table}_".implode("_", $columnNames)."_idx"; - } - - $res = $this->conn->query("ALTER TABLE $table ". - "ADD INDEX $name (". - implode(",", $columnNames).")"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Drops a named index from a table. - * - * @param string $table name of the table the index is on. - * @param string $name name of the index - * - * @return boolean success flag - */ - - public function dropIndex($table, $name) - { - $res = $this->conn->query("ALTER TABLE $table DROP INDEX $name"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Adds a column to a table - * - * @param string $table name of the table - * @param ColumnDef $columndef Definition of the new - * column. - * - * @return boolean success flag - */ - - public function addColumn($table, $columndef) - { - $sql = "ALTER TABLE $table ADD COLUMN " . $this->_columnSql($columndef); - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Modifies a column in the schema. - * - * The name must match an existing column and table. - * - * @param string $table name of the table - * @param ColumnDef $columndef new definition of the column. - * - * @return boolean success flag - */ - - public function modifyColumn($table, $columndef) - { - $sql = "ALTER TABLE $table MODIFY COLUMN " . - $this->_columnSql($columndef); - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Drops a column from a table - * - * The name must match an existing column. - * - * @param string $table name of the table - * @param string $columnName name of the column to drop - * - * @return boolean success flag - */ - - public function dropColumn($table, $columnName) - { - $sql = "ALTER TABLE $table DROP COLUMN $columnName"; - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Ensures that a table exists with the given - * name and the given column definitions. - * - * If the table does not yet exist, it will - * create the table. If it does exist, it will - * alter the table to match the column definitions. - * - * @param string $tableName name of the table - * @param array $columns array of ColumnDef - * objects for the table - * - * @return boolean success flag - */ - - public function ensureTable($tableName, $columns) - { - // XXX: DB engine portability -> toilet - - try { - $td = $this->getTableDef($tableName); - } catch (SchemaTableMissingException $e) { - return $this->createTable($tableName, $columns); - } - - $cur = $this->_names($td->columns); - $new = $this->_names($columns); - - $dropIndex = array(); - $toadd = array_diff($new, $cur); - $todrop = array_diff($cur, $new); - $same = array_intersect($new, $cur); - $tomod = array(); - $addIndex = array(); - $tableProps = array(); - - foreach ($same as $m) { - $curCol = $this->_byName($td->columns, $m); - $newCol = $this->_byName($columns, $m); - - if (!$newCol->equals($curCol)) { - $tomod[] = $newCol->name; - continue; - } - - // Earlier versions may have accidentally left tables at default - // charsets which might be latin1 or other freakish things. - if ($this->_isString($curCol)) { - if ($curCol->charset != 'utf8') { - $tomod[] = $newCol->name; - continue; - } - } - } - - // Find any indices we have to change... - $curIdx = $this->_indexList($td->columns); - $newIdx = $this->_indexList($columns); - - if ($curIdx['primary'] != $newIdx['primary']) { - if ($curIdx['primary']) { - $dropIndex[] = 'drop primary key'; - } - if ($newIdx['primary']) { - $keys = implode(',', $newIdx['primary']); - $addIndex[] = "add constraint primary key ($keys)"; - } - } - - $dropUnique = array_diff($curIdx['uniques'], $newIdx['uniques']); - $addUnique = array_diff($newIdx['uniques'], $curIdx['uniques']); - foreach ($dropUnique as $columnName) { - $dropIndex[] = 'drop key ' . $this->_uniqueKey($tableName, $columnName); - } - foreach ($addUnique as $columnName) { - $addIndex[] = 'add constraint unique key ' . $this->_uniqueKey($tableName, $columnName) . " ($columnName)";; - } - - $dropMultiple = array_diff($curIdx['indices'], $newIdx['indices']); - $addMultiple = array_diff($newIdx['indices'], $curIdx['indices']); - foreach ($dropMultiple as $columnName) { - $dropIndex[] = 'drop key ' . $this->_key($tableName, $columnName); - } - foreach ($addMultiple as $columnName) { - $addIndex[] = 'add key ' . $this->_key($tableName, $columnName) . " ($columnName)"; - } - // Check for table properties: make sure we're using a sane // engine type and charset/collation. // @fixme make the default engine configurable? $oldProps = $this->getTableProperties($tableName, array('ENGINE', 'TABLE_COLLATION')); - if (strtolower($oldProps['ENGINE']) != 'innodb') { - $tableProps['ENGINE'] = 'InnoDB'; + $engine = $this->preferredEngine($def); + if (strtolower($oldProps['ENGINE']) != strtolower($engine)) { + $phrase[] = "ENGINE=$engine"; } if (strtolower($oldProps['TABLE_COLLATION']) != 'utf8_bin') { - $tableProps['DEFAULT CHARSET'] = 'utf8'; - $tableProps['COLLATE'] = 'utf8_bin'; + $phrase[] = 'DEFAULT CHARSET=utf8'; + $phrase[] = 'COLLATE=utf8_bin'; } - - if (count($dropIndex) + count($toadd) + count($todrop) + count($tomod) + count($addIndex) + count($tableProps) == 0) { - // nothing to do - return true; - } - - // For efficiency, we want this all in one - // query, instead of using our methods. - - $phrase = array(); - - foreach ($dropIndex as $indexSql) { - $phrase[] = $indexSql; - } - - foreach ($toadd as $columnName) { - $cd = $this->_byName($columns, $columnName); - - $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); - } - - foreach ($todrop as $columnName) { - $phrase[] = 'DROP COLUMN ' . $columnName; - } - - foreach ($tomod as $columnName) { - $cd = $this->_byName($columns, $columnName); - - $phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); - } - - foreach ($addIndex as $indexSql) { - $phrase[] = $indexSql; - } - - foreach ($tableProps as $key => $val) { - $phrase[] = "$key=$val"; - } - - $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); - - common_log(LOG_DEBUG, __METHOD__ . ': ' . $sql); - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; } /** - * Returns the array of names from an array of - * ColumnDef objects. - * - * @param array $cds array of ColumnDef objects - * - * @return array strings for name values + * Is this column a string type? */ - - private function _names($cds) + private function _isString(array $cd) { - $names = array(); - - foreach ($cds as $cd) { - $names[] = $cd->name; - } - - return $names; - } - - /** - * Get a ColumnDef from an array matching - * name. - * - * @param array $cds Array of ColumnDef objects - * @param string $name Name of the column - * - * @return ColumnDef matching item or null if no match. - */ - - private function _byName($cds, $name) - { - foreach ($cds as $cd) { - if ($cd->name == $name) { - return $cd; - } - } - - return null; + $strings = array('char', 'varchar', 'text'); + return in_array(strtolower($cd['type']), $strings); } /** @@ -641,43 +352,93 @@ class MysqlSchema extends Schema * @return string correct SQL for that column */ - private function _columnSql($cd) + function columnSql(array $cd) { - $sql = "{$cd->name} "; + $line = array(); + $line[] = parent::columnSql($cd); - if (!empty($cd->size)) { - $sql .= "{$cd->type}({$cd->size}) "; - } else { - $sql .= "{$cd->type} "; + // This'll have been added from our transform of 'serial' type + if (!empty($cd['auto_increment'])) { + $line[] = 'auto_increment'; } - if ($this->_isString($cd)) { - $sql .= " CHARACTER SET utf8 "; + if (!empty($cd['description'])) { + $line[] = 'comment'; + $line[] = $this->quoteValue($cd['description']); } - if (!empty($cd->default)) { - $sql .= "default {$cd->default} "; - } else { - $sql .= ($cd->nullable) ? "null " : "not null "; - } + return implode(' ', $line); + } + + function mapType($column) + { + $map = array('serial' => 'int', + 'integer' => 'int', + 'numeric' => 'decimal'); - if (!empty($cd->auto_increment)) { - $sql .= " auto_increment "; + $type = $column['type']; + if (isset($map[$type])) { + $type = $map[$type]; } - if (!empty($cd->extra)) { - $sql .= "{$cd->extra} "; + if (!empty($column['size'])) { + $size = $column['size']; + if ($type == 'int' && + in_array($size, array('tiny', 'small', 'medium', 'big'))) { + $type = $size . $type; + } else if (in_array($type, array('blob', 'text')) && + in_array($size, array('tiny', 'medium', 'long'))) { + $type = $size . $type; + } } - return $sql; + return $type; + } + + function typeAndSize($column) + { + if ($column['type'] == 'enum') { + $vals = array_map(array($this, 'quote'), $column['enum']); + return 'enum(' . implode(',', $vals) . ')'; + } else if ($this->_isString($column)) { + $col = parent::typeAndSize($column); + if (!empty($column['charset'])) { + $col .= ' CHARSET ' . $column['charset']; + } + if (!empty($column['collate'])) { + $col .= ' COLLATE ' . $column['collate']; + } + return $col; + } else { + return parent::typeAndSize($column); + } } /** - * Is this column a string type? + * Filter the given table definition array to match features available + * in this database. + * + * This lets us strip out unsupported things like comments, foreign keys, + * or type variants that we wouldn't get back from getTableDef(). + * + * @param array $tableDef */ - private function _isString(ColumnDef $cd) + function filterDef(array $tableDef) { - $strings = array('char', 'varchar', 'text'); - return in_array(strtolower($cd->type), $strings); + foreach ($tableDef['fields'] as $name => &$col) { + if ($col['type'] == 'serial') { + $col['type'] = 'int'; + $col['auto_increment'] = true; + } + if ($col['type'] == 'datetime' && isset($col['default']) && $col['default'] == 'CURRENT_TIMESTAMP') { + $col['type'] = 'timestamp'; + } + $col['type'] = $this->mapType($col); + unset($col['size']); + } + if (!common_config('db', 'mysql_foreign_keys')) { + unset($tableDef['foreign keys']); + } + return $tableDef; } } diff --git a/lib/nickname.php b/lib/nickname.php new file mode 100644 index 0000000000..562f1e2052 --- /dev/null +++ b/lib/nickname.php @@ -0,0 +1,194 @@ +<?php +/* + * 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 <http://www.gnu.org/licenses/>. + */ + +class Nickname +{ + /** + * Regex fragment for pulling a formated nickname *OR* ID number. + * Suitable for router def of 'id' parameters on API actions. + * + * Not guaranteed to be valid after normalization; run the string through + * Nickname::normalize() to get the canonical form, or Nickname::isValid() + * if you just need to check if it's properly formatted. + * + * This, DISPLAY_FMT, and CANONICAL_FMT replace the old NICKNAME_FMT, + * but be aware that these should not be enclosed in []s. + * + * @fixme would prefer to define in reference to the other constants + */ + const INPUT_FMT = '(?:[0-9]+|[0-9a-zA-Z_]{1,64})'; + + /** + * Regex fragment for acceptable user-formatted variant of a nickname. + * This includes some chars such as underscore which will be removed + * from the normalized canonical form, but still must fit within + * field length limits. + * + * Not guaranteed to be valid after normalization; run the string through + * Nickname::normalize() to get the canonical form, or Nickname::isValid() + * if you just need to check if it's properly formatted. + * + * This and CANONICAL_FMT replace the old NICKNAME_FMT, but be aware + * that these should not be enclosed in []s. + */ + const DISPLAY_FMT = '[0-9a-zA-Z_]{1,64}'; + + /** + * Regex fragment for checking a canonical nickname. + * + * Any non-matching string is not a valid canonical/normalized nickname. + * Matching strings are valid and canonical form, but may still be + * unavailable for registration due to blacklisting et. + * + * Only the canonical forms should be stored as keys in the database; + * there are multiple possible denormalized forms for each valid + * canonical-form name. + * + * This and DISPLAY_FMT replace the old NICKNAME_FMT, but be aware + * that these should not be enclosed in []s. + */ + const CANONICAL_FMT = '[0-9a-z]{1,64}'; + + /** + * Maximum number of characters in a canonical-form nickname. + */ + const MAX_LEN = 64; + + /** + * Nice simple check of whether the given string is a valid input nickname, + * which can be normalized into an internally canonical form. + * + * Note that valid nicknames may be in use or reserved. + * + * @param string $str + * @return boolean + */ + public static function isValid($str) + { + try { + self::normalize($str); + return true; + } catch (NicknameException $e) { + return false; + } + } + + /** + * Validate an input nickname string, and normalize it to its canonical form. + * The canonical form will be returned, or an exception thrown if invalid. + * + * @param string $str + * @return string Normalized canonical form of $str + * + * @throws NicknameException (base class) + * @throws NicknameInvalidException + * @throws NicknameEmptyException + * @throws NicknameTooLongException + */ + public static function normalize($str) + { + $str = trim($str); + $str = str_replace('_', '', $str); + $str = mb_strtolower($str); + + $len = mb_strlen($str); + if ($len < 1) { + throw new NicknameEmptyException(); + } else if ($len > self::MAX_LEN) { + throw new NicknameTooLongException(); + } + if (!self::isCanonical($str)) { + throw new NicknameInvalidException(); + } + + return $str; + } + + /** + * Is the given string a valid canonical nickname form? + * + * @param string $str + * @return boolean + */ + public static function isCanonical($str) + { + return preg_match('/^(?:' . self::CANONICAL_FMT . ')$/', $str); + } +} + +class NicknameException extends ClientException +{ + function __construct($msg=null, $code=400) + { + if ($msg === null) { + $msg = $this->defaultMessage(); + } + parent::__construct($msg, $code); + } + + /** + * Default localized message for this type of exception. + * @return string + */ + protected function defaultMessage() + { + return null; + } +} + +class NicknameInvalidException extends NicknameException { + /** + * Default localized message for this type of exception. + * @return string + */ + protected function defaultMessage() + { + // TRANS: Validation error in form for registration, profile and group settings, etc. + return _('Nickname must have only lowercase letters and numbers and no spaces.'); + } +} + +class NicknameEmptyException extends NicknameException +{ + /** + * Default localized message for this type of exception. + * @return string + */ + protected function defaultMessage() + { + // TRANS: Validation error in form for registration, profile and group settings, etc. + return _('Nickname cannot be empty.'); + } +} + +class NicknameTooLongException extends NicknameInvalidException +{ + /** + * Default localized message for this type of exception. + * @return string + */ + protected function defaultMessage() + { + // TRANS: Validation error in form for registration, profile and group settings, etc. + return sprintf(_m('Nickname cannot be more than %d character long.', + 'Nickname cannot be more than %d characters long.', + Nickname::MAX_LEN), + Nickname::MAX_LEN); + } +} diff --git a/lib/noticeform.php b/lib/noticeform.php index 84c20a5b3f..5140663569 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -169,7 +169,8 @@ class NoticeForm extends Form function formData() { if (Event::handle('StartShowNoticeFormData', array($this))) { - $this->out->element('label', array('for' => 'notice_data-text'), + $this->out->element('label', array('for' => 'notice_data-text', + 'id' => 'notice_data-text-label'), sprintf(_('What\'s up, %s?'), $this->user->nickname)); // XXX: vary by defined max size $this->out->element('textarea', array('id' => 'notice_data-text', diff --git a/lib/noticelist.php b/lib/noticelist.php index 529d6a3f90..c6f964662f 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -208,6 +208,7 @@ class NoticeListItem extends Widget $this->showStart(); if (Event::handle('StartShowNoticeItem', array($this))) { $this->showNotice(); + $this->showNoticeAttachments(); $this->showNoticeInfo(); $this->showNoticeOptions(); Event::handle('EndShowNoticeItem', array($this)); @@ -226,24 +227,31 @@ class NoticeListItem extends Widget function showNoticeInfo() { $this->out->elementStart('div', 'entry-content'); - $this->showNoticeLink(); - $this->showNoticeSource(); - $this->showNoticeLocation(); - $this->showContext(); - $this->showRepeat(); + if (Event::handle('StartShowNoticeInfo', array($this))) { + $this->showNoticeLink(); + $this->showNoticeSource(); + $this->showNoticeLocation(); + $this->showContext(); + $this->showRepeat(); + Event::handle('EndShowNoticeInfo', array($this)); + } + $this->out->elementEnd('div'); } function showNoticeOptions() { - $user = common_current_user(); - if ($user) { - $this->out->elementStart('div', 'notice-options'); - $this->showFaveForm(); - $this->showReplyLink(); - $this->showRepeatForm(); - $this->showDeleteLink(); - $this->out->elementEnd('div'); + if (Event::handle('StartShowNoticeOptions', array($this))) { + $user = common_current_user(); + if ($user) { + $this->out->elementStart('div', 'notice-options'); + $this->showFaveForm(); + $this->showReplyLink(); + $this->showRepeatForm(); + $this->showDeleteLink(); + $this->out->elementEnd('div'); + } + Event::handle('EndShowNoticeOptions', array($this)); } } @@ -270,15 +278,18 @@ class NoticeListItem extends Widget function showFaveForm() { - $user = common_current_user(); - if ($user) { - if ($user->hasFave($this->notice)) { - $disfavor = new DisfavorForm($this->out, $this->notice); - $disfavor->show(); - } else { - $favor = new FavorForm($this->out, $this->notice); - $favor->show(); + if (Event::handle('StartShowFaveForm', array($this))) { + $user = common_current_user(); + if ($user) { + if ($user->hasFave($this->notice)) { + $disfavor = new DisfavorForm($this->out, $this->notice); + $disfavor->show(); + } else { + $favor = new FavorForm($this->out, $this->notice); + $favor->show(); + } } + Event::handle('EndShowFaveForm', array($this)); } } @@ -296,7 +307,7 @@ class NoticeListItem extends Widget $attrs = array('href' => $this->profile->profileurl, 'class' => 'url'); if (!empty($this->profile->fullname)) { - $attrs['title'] = $this->profile->fullname . ' (' . $this->profile->nickname . ')'; + $attrs['title'] = $this->profile->getFancyName(); } $this->out->elementStart('a', $attrs); $this->showAvatar(); @@ -317,11 +328,8 @@ class NoticeListItem extends Widget function showAvatar() { - if ('shownotice' === $this->out->trimmed('action')) { - $avatar_size = AVATAR_PROFILE_SIZE; - } else { - $avatar_size = AVATAR_STREAM_SIZE; - } + $avatar_size = AVATAR_STREAM_SIZE; + $avatar = $this->profile->getAvatar($avatar_size); $this->out->element('img', array('src' => ($avatar) ? @@ -376,6 +384,13 @@ class NoticeListItem extends Widget $this->out->elementEnd('p'); } + function showNoticeAttachments() { + if (common_config('attachments', 'show_thumbs')) { + $al = new InlineAttachmentList($this->notice, $this->out); + $al->show(); + } + } + /** * show the link to the main page for the notice * diff --git a/lib/oauthstore.php b/lib/oauthstore.php index a6a6de7505..1c8e725009 100644 --- a/lib/oauthstore.php +++ b/lib/oauthstore.php @@ -55,6 +55,17 @@ class StatusNetOAuthDataStore extends OAuthDataStore } } + function getTokenByKey($token_key) + { + $t = new Token(); + $t->tok = $token_key; + if ($t->find(true)) { + return $t; + } else { + return null; + } + } + // http://oauth.net/core/1.0/#nonce // "The Consumer SHALL then generate a Nonce value that is unique for // all requests with that timestamp." @@ -280,7 +291,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore $profile->created = DB_DataObject_Cast::dateTime(); # current time $id = $profile->insert(); if (!$id) { - throw new Exception(_('Error inserting new profile')); + throw new Exception(_('Error inserting new profile.')); } $remote->id = $id; } @@ -288,7 +299,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore $avatar_url = $omb_profile->getAvatarURL(); if ($avatar_url) { if (!$this->add_avatar($profile, $avatar_url)) { - throw new Exception(_('Error inserting avatar')); + throw new Exception(_('Error inserting avatar.')); } } else { $avatar = $profile->getOriginalAvatar(); @@ -303,12 +314,12 @@ class StatusNetOAuthDataStore extends OAuthDataStore if ($exists) { if (!$remote->update($orig_remote)) { - throw new Exception(_('Error updating remote profile')); + throw new Exception(_('Error updating remote profile.')); } } else { $remote->created = DB_DataObject_Cast::dateTime(); # current time if (!$remote->insert()) { - throw new Exception(_('Error inserting remote profile')); + throw new Exception(_('Error inserting remote profile.')); } } } @@ -317,13 +328,18 @@ class StatusNetOAuthDataStore extends OAuthDataStore function add_avatar($profile, $url) { $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar'); - copy($url, $temp_filename); - $imagefile = new ImageFile($profile->id, $temp_filename); - $filename = Avatar::filename($profile->id, - image_type_to_extension($imagefile->type), - null, - common_timestamp()); - rename($temp_filename, Avatar::path($filename)); + try { + copy($url, $temp_filename); + $imagefile = new ImageFile($profile->id, $temp_filename); + $filename = Avatar::filename($profile->id, + image_type_to_extension($imagefile->type), + null, + common_timestamp()); + rename($temp_filename, Avatar::path($filename)); + } catch (Exception $e) { + unlink($temp_filename); + throw $e; + } return $profile->setOriginal($filename); } @@ -342,7 +358,8 @@ class StatusNetOAuthDataStore extends OAuthDataStore **/ public function saveNotice(&$omb_notice) { if (Notice::staticGet('uri', $omb_notice->getIdentifierURI())) { - throw new Exception(_('Duplicate notice')); + // TRANS: Exception thrown when a notice is denied because it has been sent before. + throw new Exception(_('Duplicate notice.')); } $author_uri = $omb_notice->getAuthor()->getIdentifierURI(); common_log(LOG_DEBUG, $author_uri, __FILE__); diff --git a/lib/oembedhelper.php b/lib/oembedhelper.php new file mode 100644 index 0000000000..84cf105867 --- /dev/null +++ b/lib/oembedhelper.php @@ -0,0 +1,318 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008-2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + + +/** + * Utility class to wrap basic oEmbed lookups. + * + * Blacklisted hosts will use an alternate lookup method: + * - Twitpic + * + * Whitelisted hosts will use known oEmbed API endpoints: + * - Flickr, YFrog + * + * Sites that provide discovery links will use them directly; a bug + * in use of discovery links with query strings is worked around. + * + * Others will fall back to oohembed (unless disabled). + * The API endpoint can be configured or disabled through config + * as 'oohembed'/'endpoint'. + */ +class oEmbedHelper +{ + protected static $apiMap = array( + 'flickr.com' => 'http://www.flickr.com/services/oembed/', + 'yfrog.com' => 'http://www.yfrog.com/api/oembed', + ); + protected static $functionMap = array( + 'twitpic.com' => 'oEmbedHelper::twitPic', + ); + + /** + * Perform or fake an oEmbed lookup for the given resource. + * + * Some known hosts are whitelisted with API endpoints where we + * know they exist but autodiscovery data isn't available. + * If autodiscovery links are missing and we don't recognize the + * host, we'll pass it to oohembed.com's public service which + * will either proxy or fake info on a lot of sites. + * + * A few hosts are blacklisted due to known problems with oohembed, + * in which case we'll look up the info another way and return + * equivalent data. + * + * Throws exceptions on failure. + * + * @param string $url + * @param array $params + * @return object + */ + public static function getObject($url, $params=array()) + { + $host = parse_url($url, PHP_URL_HOST); + if (substr($host, 0, 4) == 'www.') { + $host = substr($host, 4); + } + + // Blacklist: systems with no oEmbed API of their own, which are + // either missing from or broken on oohembed.com's proxy. + // we know how to look data up in another way... + if (array_key_exists($host, self::$functionMap)) { + $func = self::$functionMap[$host]; + return call_user_func($func, $url, $params); + } + + // Whitelist: known API endpoints for sites that don't provide discovery... + if (array_key_exists($host, self::$apiMap)) { + $api = self::$apiMap[$host]; + } else { + try { + $api = self::discover($url); + } catch (Exception $e) { + // Discovery failed... fall back to oohembed if enabled. + $oohembed = common_config('oohembed', 'endpoint'); + if ($oohembed) { + $api = $oohembed; + } else { + throw $e; + } + } + } + return self::getObjectFrom($api, $url, $params); + } + + /** + * Perform basic discovery. + * @return string + */ + static function discover($url) + { + // @fixme ideally skip this for non-HTML stuff! + $body = self::http($url); + return self::discoverFromHTML($url, $body); + } + + /** + * Partially ripped from OStatus' FeedDiscovery class. + * + * @param string $url source URL, used to resolve relative links + * @param string $body HTML body text + * @return mixed string with URL or false if no target found + */ + static function discoverFromHTML($url, $body) + { + // DOMDocument::loadHTML may throw warnings on unrecognized elements, + // and notices on unrecognized namespaces. + $old = error_reporting(error_reporting() & ~(E_WARNING | E_NOTICE)); + $dom = new DOMDocument(); + $ok = $dom->loadHTML($body); + error_reporting($old); + + if (!$ok) { + throw new oEmbedHelper_BadHtmlException(); + } + + // Ok... now on to the links! + $feeds = array( + 'application/json+oembed' => false, + ); + + $nodes = $dom->getElementsByTagName('link'); + for ($i = 0; $i < $nodes->length; $i++) { + $node = $nodes->item($i); + if ($node->hasAttributes()) { + $rel = $node->attributes->getNamedItem('rel'); + $type = $node->attributes->getNamedItem('type'); + $href = $node->attributes->getNamedItem('href'); + if ($rel && $type && $href) { + $rel = array_filter(explode(" ", $rel->value)); + $type = trim($type->value); + $href = trim($href->value); + + if (in_array('alternate', $rel) && array_key_exists($type, $feeds) && empty($feeds[$type])) { + // Save the first feed found of each type... + $feeds[$type] = $href; + } + } + } + } + + // Return the highest-priority feed found + foreach ($feeds as $type => $url) { + if ($url) { + return $url; + } + } + + throw new oEmbedHelper_DiscoveryException(); + } + + /** + * Actually do an oEmbed lookup to a particular API endpoint. + * + * @param string $api oEmbed API endpoint URL + * @param string $url target URL to look up info about + * @param array $params + * @return object + */ + static function getObjectFrom($api, $url, $params=array()) + { + $params['url'] = $url; + $params['format'] = 'json'; + $data = self::json($api, $params); + return self::normalize($data); + } + + /** + * Normalize oEmbed format. + * + * @param object $orig + * @return object + */ + static function normalize($orig) + { + $data = clone($orig); + + if (empty($data->type)) { + throw new Exception('Invalid oEmbed data: no type field.'); + } + + if ($data->type == 'image') { + // YFrog does this. + $data->type = 'photo'; + } + + if (isset($data->thumbnail_url)) { + if (!isset($data->thumbnail_width)) { + // !?!?! + $data->thumbnail_width = common_config('attachments', 'thumb_width'); + $data->thumbnail_height = common_config('attachments', 'thumb_height'); + } + } + + return $data; + } + + /** + * Using a local function for twitpic lookups, as oohembed's adapter + * doesn't return a valid result: + * http://code.google.com/p/oohembed/issues/detail?id=19 + * + * This code fetches metadata from Twitpic's own API, and attempts + * to guess proper thumbnail size from the original's size. + * + * @todo respect maxwidth and maxheight params + * + * @param string $url + * @param array $params + * @return object + */ + static function twitPic($url, $params=array()) + { + $matches = array(); + if (preg_match('!twitpic\.com/(\w+)!', $url, $matches)) { + $id = $matches[1]; + } else { + throw new Exception("Invalid twitpic URL"); + } + + // Grab metadata from twitpic's API... + // http://dev.twitpic.com/docs/2/media_show + $data = self::json('http://api.twitpic.com/2/media/show.json', + array('id' => $id)); + $oembed = (object)array('type' => 'photo', + 'url' => 'http://twitpic.com/show/full/' . $data->short_id, + 'width' => $data->width, + 'height' => $data->height); + if (!empty($data->message)) { + $oembed->title = $data->message; + } + + // Thumbnail is cropped and scaled to 150x150 box: + // http://dev.twitpic.com/docs/thumbnails/ + $thumbSize = 150; + $oembed->thumbnail_url = 'http://twitpic.com/show/thumb/' . $data->short_id; + $oembed->thumbnail_width = $thumbSize; + $oembed->thumbnail_height = $thumbSize; + + return $oembed; + } + + /** + * Fetch some URL and return JSON data. + * + * @param string $url + * @param array $params query-string params + * @return object + */ + static protected function json($url, $params=array()) + { + $data = self::http($url, $params); + return json_decode($data); + } + + /** + * Hit some web API and return data on success. + * @param string $url + * @param array $params + * @return string + */ + static protected function http($url, $params=array()) + { + $client = HTTPClient::start(); + if ($params) { + $query = http_build_query($params, null, '&'); + if (strpos($url, '?') === false) { + $url .= '?' . $query; + } else { + $url .= '&' . $query; + } + } + $response = $client->get($url); + if ($response->isOk()) { + return $response->getBody(); + } else { + throw new Exception('Bad HTTP response code: ' . $response->getStatus()); + } + } +} + +class oEmbedHelper_Exception extends Exception +{ +} + +class oEmbedHelper_BadHtmlException extends oEmbedHelper_Exception +{ + function __construct($previous=null) + { + return parent::__construct('Bad HTML in discovery data.', 0, $previous); + } +} + +class oEmbedHelper_DiscoveryException extends oEmbedHelper_Exception +{ + function __construct($previous=null) + { + return parent::__construct('No oEmbed discovery data.', 0, $previous); + } +} diff --git a/lib/personalgroupnav.php b/lib/personalgroupnav.php index 25db5baa92..1f543b8974 100644 --- a/lib/personalgroupnav.php +++ b/lib/personalgroupnav.php @@ -87,8 +87,11 @@ class PersonalGroupNav extends Widget if ($nickname) { $user = User::staticGet('nickname', $nickname); $user_profile = $user->getProfile(); + $name = $user_profile->getBestName(); } else { + // @fixme can this happen? is this valid? $user_profile = false; + $name = $nickname; } $this->out->elementStart('ul', array('class' => 'nav')); @@ -97,22 +100,22 @@ class PersonalGroupNav extends Widget $this->out->menuItem(common_local_url('all', array('nickname' => $nickname)), _('Personal'), - sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)), + sprintf(_('%s and friends'), $name), $action == 'all', 'nav_timeline_personal'); $this->out->menuItem(common_local_url('replies', array('nickname' => $nickname)), _('Replies'), - sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)), + sprintf(_('Replies to %s'), $name), $action == 'replies', 'nav_timeline_replies'); $this->out->menuItem(common_local_url('showstream', array('nickname' => $nickname)), _('Profile'), - ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname, + $name, $action == 'showstream', 'nav_profile'); $this->out->menuItem(common_local_url('showfavorites', array('nickname' => $nickname)), _('Favorites'), - sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')), + sprintf(_('%s\'s favorite notices'), ($user_profile) ? $name : _('User')), $action == 'showfavorites', 'nav_timeline_favorites'); $cur = common_current_user(); diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index 272f7eff68..d50e35f660 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -42,6 +42,7 @@ if (!defined('STATUSNET')) { * @package StatusNet * @author Evan Prodromou <evan@status.net> * @author Brenda Wallace <shiny@cpan.org> + * @author Brion Vibber <brion@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -50,167 +51,209 @@ class PgsqlSchema extends Schema { /** - * Returns a TableDef object for the table + * Returns a table definition array for the table * in the schema with the given name. * * Throws an exception if the table is not found. * - * @param string $name Name of the table to get + * @param string $table Name of the table to get * - * @return TableDef tabledef for that table. + * @return array tabledef for that table. */ - public function getTableDef($name) + public function getTableDef($table) { - $res = $this->conn->query("SELECT *, column_default as default, is_nullable as Null, - udt_name as Type, column_name AS Field from INFORMATION_SCHEMA.COLUMNS where table_name = '$name'"); + $def = array(); + $hasKeys = false; - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); + // Pull column data from INFORMATION_SCHEMA + $columns = $this->fetchMetaInfo($table, 'columns', 'ordinal_position'); + if (count($columns) == 0) { + throw new SchemaTableMissingException("No such table: $table"); } - $td = new TableDef(); + // We'll need to match up fields by ordinal reference + $orderedFields = array(); - $td->name = $name; - $td->columns = array(); + foreach ($columns as $row) { - if ($res->numRows() == 0 ) { - throw new Exception('no such table'); //pretend to be the msyql error. yeah, this sucks. + $name = $row['column_name']; + $orderedFields[$row['ordinal_position']] = $name; + + $field = array(); + $field['type'] = $row['udt_name']; + + if ($type == 'char' || $type == 'varchar') { + if ($row['character_maximum_length'] !== null) { + $field['length'] = intval($row['character_maximum_length']); + } + } + if ($type == 'numeric') { + // Other int types may report these values, but they're irrelevant. + // Just ignore them! + if ($row['numeric_precision'] !== null) { + $field['precision'] = intval($row['numeric_precision']); + } + if ($row['numeric_scale'] !== null) { + $field['scale'] = intval($row['numeric_scale']); + } + } + if ($row['is_nullable'] == 'NO') { + $field['not null'] = true; + } + if ($row['column_default'] !== null) { + $field['default'] = $row['column_default']; + if ($this->isNumericType($type)) { + $field['default'] = intval($field['default']); + } + } + + $def['fields'][$name] = $field; } - $row = array(); - while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { - $cd = new ColumnDef(); + // Pulling index info from pg_class & pg_index + // This can give us primary & unique key info, but not foreign key constraints + // so we exclude them and pick them up later. + $indexInfo = $this->getIndexInfo($table); + foreach ($indexInfo as $row) { + $keyName = $row['key_name']; - $cd->name = $row['field']; + // Dig the column references out! + // + // These are inconvenient arrays with partial references to the + // pg_att table, but since we've already fetched up the column + // info on the current table, we can look those up locally. + $cols = array(); + $colPositions = explode(' ', $row['indkey']); + foreach ($colPositions as $ord) { + if ($ord == 0) { + $cols[] = 'FUNCTION'; // @fixme + } else { + $cols[] = $orderedFields[$ord]; + } + } - $packed = $row['type']; + $def['indexes'][$keyName] = $cols; + } - if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { - $cd->type = $match[1]; - $cd->size = $match[2]; + // Pull constraint data from INFORMATION_SCHEMA: + // Primary key, unique keys, foreign keys + $keyColumns = $this->fetchMetaInfo($table, 'key_column_usage', 'constraint_name,ordinal_position'); + $keys = array(); + + foreach ($keyColumns as $row) { + $keyName = $row['constraint_name']; + $keyCol = $row['column_name']; + if (!isset($keys[$keyName])) { + $keys[$keyName] = array(); + } + $keys[$keyName][] = $keyCol; + } + + foreach ($keys as $keyName => $cols) { + // name hack -- is this reliable? + if ($keyName == "{$table}_pkey") { + $def['primary key'] = $cols; + } else if (preg_match("/^{$table}_(.*)_fkey$/", $keyName, $matches)) { + $fkey = $this->getForeignKeyInfo($table, $keyName); + $colMap = array_combine($cols, $fkey['col_names']); + $def['foreign keys'][$keyName] = array($fkey['table_name'], $colMap); } else { - $cd->type = $packed; + $def['unique keys'][$keyName] = $cols; } - - $cd->nullable = ($row['null'] == 'YES') ? true : false; - $cd->key = $row['Key']; - $cd->default = $row['default']; - $cd->extra = $row['Extra']; - - $td->columns[] = $cd; } - return $td; + return $def; } /** - * Gets a ColumnDef object for a single column. + * Pull some INFORMATION.SCHEMA data for the given table. * - * Throws an exception if the table is not found. - * - * @param string $table name of the table - * @param string $column name of the column - * - * @return ColumnDef definition of the column or null - * if not found. + * @param string $table + * @return array of arrays */ - - public function getColumnDef($table, $column) + function fetchMetaInfo($table, $infoTable, $orderBy=null) { - $td = $this->getTableDef($table); - - foreach ($td->columns as $cd) { - if ($cd->name == $column) { - return $cd; - } + $query = "SELECT * FROM information_schema.%s " . + "WHERE table_name='%s'"; + $sql = sprintf($query, $infoTable, $table); + if ($orderBy) { + $sql .= ' ORDER BY ' . $orderBy; } - - return null; + return $this->fetchQueryData($sql); } /** - * Creates a table with the given names and columns. - * - * @param string $name Name of the table - * @param array $columns Array of ColumnDef objects - * for new table. - * - * @return boolean success flag + * Pull some PG-specific index info + * @param string $table + * @return array of arrays */ - - public function createTable($name, $columns) + function getIndexInfo($table) { - $uniques = array(); - $primary = array(); - $indices = array(); - $onupdate = array(); - - $sql = "CREATE TABLE $name (\n"; - - for ($i = 0; $i < count($columns); $i++) { - - $cd =& $columns[$i]; - - if ($i > 0) { - $sql .= ",\n"; - } - - $sql .= $this->_columnSql($cd); - switch ($cd->key) { - case 'UNI': - $uniques[] = $cd->name; - break; - case 'PRI': - $primary[] = $cd->name; - break; - case 'MUL': - $indices[] = $cd->name; - break; - } - } - - if (count($primary) > 0) { // it really should be... - $sql .= ",\n PRIMARY KEY (" . implode(',', $primary) . ")"; - } - - $sql .= "); "; - - - foreach ($uniques as $u) { - $sql .= "\n CREATE index {$name}_{$u}_idx ON {$name} ($u); "; - } - - foreach ($indices as $i) { - $sql .= "CREATE index {$name}_{$i}_idx ON {$name} ($i)"; - } - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage(). ' SQL was '. $sql); - } - - return true; + $query = 'SELECT ' . + '(SELECT relname FROM pg_class WHERE oid=indexrelid) AS key_name, ' . + '* FROM pg_index ' . + 'WHERE indrelid=(SELECT oid FROM pg_class WHERE relname=\'%s\') ' . + 'AND indisprimary=\'f\' AND indisunique=\'f\' ' . + 'ORDER BY indrelid, indexrelid'; + $sql = sprintf($query, $table); + return $this->fetchQueryData($sql); } /** - * Drops a table from the schema - * - * Throws an exception if the table is not found. - * - * @param string $name Name of the table to drop - * - * @return boolean success flag + * Column names from the foreign table can be resolved with a call to getTableColumnNames() + * @param <type> $table + * @return array array of rows with keys: fkey_name, table_name, table_id, col_names (array of strings) */ - - public function dropTable($name) + function getForeignKeyInfo($table, $constraint_name) { - $res = $this->conn->query("DROP TABLE $name"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); + // In a sane world, it'd be easier to query the column names directly. + // But it's pretty hard to work with arrays such as col_indexes in direct SQL here. + $query = 'SELECT ' . + '(SELECT relname FROM pg_class WHERE oid=confrelid) AS table_name, ' . + 'confrelid AS table_id, ' . + '(SELECT indkey FROM pg_index WHERE indexrelid=conindid) AS col_indexes ' . + 'FROM pg_constraint ' . + 'WHERE conrelid=(SELECT oid FROM pg_class WHERE relname=\'%s\') ' . + 'AND conname=\'%s\' ' . + 'AND contype=\'f\''; + $sql = sprintf($query, $table, $constraint_name); + $data = $this->fetchQueryData($sql); + if (count($data) < 1) { + throw new Exception("Could not find foreign key " . $constraint_name . " on table " . $table); } - return true; + $row = $data[0]; + return array( + 'table_name' => $row['table_name'], + 'col_names' => $this->getTableColumnNames($row['table_id'], $row['col_indexes']) + ); + } + + /** + * + * @param int $table_id + * @param array $col_indexes + * @return array of strings + */ + function getTableColumnNames($table_id, $col_indexes) + { + $indexes = array_map('intval', explode(' ', $col_indexes)); + $query = 'SELECT attnum AS col_index, attname AS col_name ' . + 'FROM pg_attribute where attrelid=%d ' . + 'AND attnum IN (%s)'; + $sql = sprintf($query, $table_id, implode(',', $indexes)); + $data = $this->fetchQueryData($sql); + + $byId = array(); + foreach ($data as $row) { + $byId[$row['col_index']] = $row['col_name']; + } + + $out = array(); + foreach ($indexes as $id) { + $out[] = $byId[$id]; + } + return $out; } /** @@ -229,262 +272,6 @@ class PgsqlSchema extends Schema return $type; } - /** - * Adds an index to a table. - * - * If no name is provided, a name will be made up based - * on the table name and column names. - * - * Throws an exception on database error, esp. if the table - * does not exist. - * - * @param string $table Name of the table - * @param array $columnNames Name of columns to index - * @param string $name (Optional) name of the index - * - * @return boolean success flag - */ - - public function createIndex($table, $columnNames, $name=null) - { - if (!is_array($columnNames)) { - $columnNames = array($columnNames); - } - - if (empty($name)) { - $name = "$table_".implode("_", $columnNames)."_idx"; - } - - $res = $this->conn->query("ALTER TABLE $table ". - "ADD INDEX $name (". - implode(",", $columnNames).")"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Drops a named index from a table. - * - * @param string $table name of the table the index is on. - * @param string $name name of the index - * - * @return boolean success flag - */ - - public function dropIndex($table, $name) - { - $res = $this->conn->query("ALTER TABLE $table DROP INDEX $name"); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Adds a column to a table - * - * @param string $table name of the table - * @param ColumnDef $columndef Definition of the new - * column. - * - * @return boolean success flag - */ - - public function addColumn($table, $columndef) - { - $sql = "ALTER TABLE $table ADD COLUMN " . $this->_columnSql($columndef); - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Modifies a column in the schema. - * - * The name must match an existing column and table. - * - * @param string $table name of the table - * @param ColumnDef $columndef new definition of the column. - * - * @return boolean success flag - */ - - public function modifyColumn($table, $columndef) - { - $sql = "ALTER TABLE $table ALTER COLUMN TYPE " . - $this->_columnSql($columndef); - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Drops a column from a table - * - * The name must match an existing column. - * - * @param string $table name of the table - * @param string $columnName name of the column to drop - * - * @return boolean success flag - */ - - public function dropColumn($table, $columnName) - { - $sql = "ALTER TABLE $table DROP COLUMN $columnName"; - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Ensures that a table exists with the given - * name and the given column definitions. - * - * If the table does not yet exist, it will - * create the table. If it does exist, it will - * alter the table to match the column definitions. - * - * @param string $tableName name of the table - * @param array $columns array of ColumnDef - * objects for the table - * - * @return boolean success flag - */ - - public function ensureTable($tableName, $columns) - { - // XXX: DB engine portability -> toilet - - try { - $td = $this->getTableDef($tableName); - - } catch (Exception $e) { - if (preg_match('/no such table/', $e->getMessage())) { - return $this->createTable($tableName, $columns); - } else { - throw $e; - } - } - - $cur = $this->_names($td->columns); - $new = $this->_names($columns); - - $toadd = array_diff($new, $cur); - $todrop = array_diff($cur, $new); - $same = array_intersect($new, $cur); - $tomod = array(); - foreach ($same as $m) { - $curCol = $this->_byName($td->columns, $m); - $newCol = $this->_byName($columns, $m); - - - if (!$newCol->equals($curCol)) { - // BIG GIANT TODO! - // stop it detecting different types and trying to modify on every page request -// $tomod[] = $newCol->name; - } - } - if (count($toadd) + count($todrop) + count($tomod) == 0) { - // nothing to do - return true; - } - - // For efficiency, we want this all in one - // query, instead of using our methods. - - $phrase = array(); - - foreach ($toadd as $columnName) { - $cd = $this->_byName($columns, $columnName); - - $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); - } - - foreach ($todrop as $columnName) { - $phrase[] = 'DROP COLUMN ' . $columnName; - } - - foreach ($tomod as $columnName) { - $cd = $this->_byName($columns, $columnName); - - /* brute force */ - $phrase[] = 'DROP COLUMN ' . $columnName; - $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); - } - - $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); - } - - return true; - } - - /** - * Returns the array of names from an array of - * ColumnDef objects. - * - * @param array $cds array of ColumnDef objects - * - * @return array strings for name values - */ - - private function _names($cds) - { - $names = array(); - - foreach ($cds as $cd) { - $names[] = $cd->name; - } - - return $names; - } - - /** - * Get a ColumnDef from an array matching - * name. - * - * @param array $cds Array of ColumnDef objects - * @param string $name Name of the column - * - * @return ColumnDef matching item or null if no match. - */ - - private function _byName($cds, $name) - { - foreach ($cds as $cd) { - if ($cd->name == $name) { - return $cd; - } - } - - return null; - } - /** * Return the proper SQL for creating or * altering a column. @@ -492,41 +279,177 @@ class PgsqlSchema extends Schema * Appropriate for use in CREATE TABLE or * ALTER TABLE statements. * - * @param ColumnDef $cd column to create + * @param array $cd column to create * * @return string correct SQL for that column */ - private function _columnSql($cd) + + function columnSql(array $cd) { - $sql = "{$cd->name} "; - $type = $this->_columnTypeTranslation($cd->type); + $line = array(); + $line[] = parent::columnSql($cd); - //handle those mysql enum fields that postgres doesn't support - if (preg_match('!^enum!', $type)) { - $allowed_values = preg_replace('!^enum!', '', $type); - $sql .= " text check ({$cd->name} in $allowed_values)"; - return $sql; + /* + if ($table['foreign keys'][$name]) { + foreach ($table['foreign keys'][$name] as $foreignTable => $foreignColumn) { + $line[] = 'references'; + $line[] = $this->quoteIdentifier($foreignTable); + $line[] = '(' . $this->quoteIdentifier($foreignColumn) . ')'; + } } - if (!empty($cd->auto_increment)) { - $type = "bigserial"; // FIXME: creates the wrong name for the sequence for some internal sequence-lookup function, so better fix this to do the real 'create sequence' dance. + */ + + return implode(' ', $line); + } + + /** + * Append phrase(s) to an array of partial ALTER TABLE chunks in order + * to alter the given column from its old state to a new one. + * + * @param array $phrase + * @param string $columnName + * @param array $old previous column definition as found in DB + * @param array $cd current column definition + */ + function appendAlterModifyColumn(array &$phrase, $columnName, array $old, array $cd) + { + $prefix = 'ALTER COLUMN ' . $this->quoteIdentifier($columnName) . ' '; + + $oldType = $this->mapType($old); + $newType = $this->mapType($cd); + if ($oldType != $newType) { + $phrase[] = $prefix . 'TYPE ' . $newType; } - if (!empty($cd->size)) { - $sql .= "{$type}({$cd->size}) "; + if (!empty($old['not null']) && empty($cd['not null'])) { + $phrase[] = $prefix . 'DROP NOT NULL'; + } else if (empty($old['not null']) && !empty($cd['not null'])) { + $phrase[] = $prefix . 'SET NOT NULL'; + } + + if (isset($old['default']) && !isset($cd['default'])) { + $phrase[] = $prefix . 'DROP DEFAULT'; + } else if (!isset($old['default']) && isset($cd['default'])) { + $phrase[] = $prefix . 'SET DEFAULT ' . $this->quoteDefaultValue($cd); + } + } + + /** + * Append an SQL statement to drop an index from a table. + * Note that in PostgreSQL, index names are DB-unique. + * + * @param array $statements + * @param string $table + * @param string $name + * @param array $def + */ + function appendDropIndex(array &$statements, $table, $name) + { + $statements[] = "DROP INDEX $name"; + } + + /** + * Quote a db/table/column identifier if necessary. + * + * @param string $name + * @return string + */ + function quoteIdentifier($name) + { + return $this->conn->quoteIdentifier($name); + } + + function mapType($column) + { + $map = array('serial' => 'bigserial', // FIXME: creates the wrong name for the sequence for some internal sequence-lookup function, so better fix this to do the real 'create sequence' dance. + 'numeric' => 'decimal', + 'datetime' => 'timestamp', + 'blob' => 'bytea'); + + $type = $column['type']; + if (isset($map[$type])) { + $type = $map[$type]; + } + + if ($type == 'int') { + if (!empty($column['size'])) { + $size = $column['size']; + if ($size == 'small') { + return 'int2'; + } else if ($size == 'big') { + return 'int8'; + } + } + return 'int4'; + } + + return $type; + } + + // @fixme need name... :P + function typeAndSize($column) + { + if ($column['type'] == 'enum') { + $vals = array_map(array($this, 'quote'), $column['enum']); + return "text check ($name in " . implode(',', $vals) . ')'; } else { - $sql .= "{$type} "; + return parent::typeAndSize($column); } + } - if (!empty($cd->default)) { - $sql .= "default {$cd->default} "; - } else { - $sql .= ($cd->nullable) ? "null " : "not null "; + /** + * Filter the given table definition array to match features available + * in this database. + * + * This lets us strip out unsupported things like comments, foreign keys, + * or type variants that we wouldn't get back from getTableDef(). + * + * @param array $tableDef + */ + function filterDef(array $tableDef) + { + foreach ($tableDef['fields'] as $name => &$col) { + // No convenient support for field descriptions + unset($col['description']); + + /* + if (isset($col['size'])) { + // Don't distinguish between tinyint and int. + if ($col['size'] == 'tiny' && $col['type'] == 'int') { + unset($col['size']); + } + } + */ + $col['type'] = $this->mapType($col); + unset($col['size']); } + if (!empty($tableDef['primary key'])) { + $tableDef['primary key'] = $this->filterKeyDef($tableDef['primary key']); + } + if (!empty($tableDef['unique keys'])) { + foreach ($tableDef['unique keys'] as $i => $def) { + $tableDef['unique keys'][$i] = $this->filterKeyDef($def); + } + } + return $tableDef; + } -// if (!empty($cd->extra)) { -// $sql .= "{$cd->extra} "; -// } - - return $sql; + /** + * Filter the given key/index definition to match features available + * in this database. + * + * @param array $def + * @return array + */ + function filterKeyDef(array $def) + { + // PostgreSQL doesn't like prefix lengths specified on keys...? + foreach ($def as $i => $item) + { + if (is_array($item)) { + $def[$i] = $item[0]; + } + } + return $def; } } diff --git a/lib/ping.php b/lib/ping.php index be2933ae34..e1c7c748e2 100644 --- a/lib/ping.php +++ b/lib/ping.php @@ -20,29 +20,35 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } function ping_broadcast_notice($notice) { + if ($notice->is_local != Notice::LOCAL_PUBLIC && $notice->is_local != Notice::LOCAL_NONPUBLIC) { + return true; + } - if ($notice->is_local != Notice::LOCAL_PUBLIC && $notice->is_local != Notice::LOCAL_NONPUBLIC) { - return true; - } + # Array of servers, URL => type + $notify = common_config('ping', 'notify'); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + // @todo: distinguish the 'broken notice/profile' case from more general + // transitory errors. + common_log(LOG_ERR, "Exception getting notice profile: " . $e->getMessage()); + return true; + } + $tags = ping_notice_tags($notice); - # Array of servers, URL => type - $notify = common_config('ping', 'notify'); - $profile = $notice->getProfile(); - $tags = ping_notice_tags($notice); - - foreach ($notify as $notify_url => $type) { - switch ($type) { - case 'xmlrpc': - case 'extended': - $req = xmlrpc_encode_request('weblogUpdates.ping', - array($profile->nickname, # site name - common_local_url('showstream', - array('nickname' => $profile->nickname)), - common_local_url('shownotice', - array('notice' => $notice->id)), - common_local_url('userrss', - array('nickname' => $profile->nickname)), - $tags)); + foreach ($notify as $notify_url => $type) { + switch ($type) { + case 'xmlrpc': + case 'extended': + $req = xmlrpc_encode_request('weblogUpdates.ping', + array($profile->nickname, # site name + common_local_url('showstream', + array('nickname' => $profile->nickname)), + common_local_url('shownotice', + array('notice' => $notice->id)), + common_local_url('userrss', + array('nickname' => $profile->nickname)), + $tags)); $request = HTTPClient::start(); $request->setConfig('connect_timeout', common_config('ping', 'timeout')); @@ -72,9 +78,8 @@ function ping_broadcast_notice($notice) { "Ping success for $notify_url $notice->id"); } break; - - case 'get': - case 'post': + case 'get': + case 'post': $args = array('name' => $profile->nickname, 'url' => common_local_url('showstream', array('nickname' => $profile->nickname)), @@ -101,26 +106,25 @@ function ping_broadcast_notice($notice) { "'$result->body'"); } break; - - default: - common_log(LOG_WARNING, 'Unknown notify type for ' . $notify_url . ': ' . $type); + default: + common_log(LOG_WARNING, 'Unknown notify type for ' . $notify_url . ': ' . $type); } - } + } return true; } function ping_notice_tags($notice) { - $tag = new Notice_tag(); - $tag->notice_id = $notice->id; - $tags = array(); - if ($tag->find()) { - while ($tag->fetch()) { - $tags[] = $tag->tag; - } - $tag->free(); - unset($tag); - return implode('|', $tags); - } - return NULL; + $tag = new Notice_tag(); + $tag->notice_id = $notice->id; + $tags = array(); + if ($tag->find()) { + while ($tag->fetch()) { + $tags[] = $tag->tag; + } + $tag->free(); + unset($tag); + return implode('|', $tags); + } + return NULL; } diff --git a/lib/plugin.php b/lib/plugin.php index f63bdf3093..3f84afa27e 100644 --- a/lib/plugin.php +++ b/lib/plugin.php @@ -88,7 +88,12 @@ class Plugin $class = get_class($this); if (substr($class, -6) == 'Plugin') { $name = substr($class, 0, -6); - $path = INSTALLDIR . "/plugins/$name/locale"; + $path = common_config('plugins', 'locale_path'); + if (!$path) { + // @fixme this will fail for things installed in local/plugins + // ... but then so will web links so far. + $path = INSTALLDIR . "/plugins/$name/locale"; + } if (file_exists($path) && is_dir($path)) { bindtextdomain($name, $path); bind_textdomain_codeset($name, 'UTF-8'); @@ -112,9 +117,9 @@ class Plugin $name = mb_substr($cls, 0, -6); $versions[] = array('name' => $name, + // TRANS: Displayed as version information for a plugin if no version information was found. 'version' => _('Unknown')); return true; } } - diff --git a/lib/popularity.php b/lib/popularity.php new file mode 100644 index 0000000000..7ab259a391 --- /dev/null +++ b/lib/popularity.php @@ -0,0 +1,92 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Wrapper for fetching lists of popular notices. + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Widget + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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); +} + +/** + * Wrapper for fetching notices ranked according to popularity, + * broken out so it can be called from multiple actions with + * less code duplication. + */ +class Popularity +{ + public $limit = NOTICES_PER_PAGE; + public $offset = 0; + public $tag = false; + public $expiry = 600; + + /** + * Run a cached query to fetch notices, whee! + * + * @return Notice + */ + function getNotices() + { + // @fixme there should be a common func for this + if (common_config('db', 'type') == 'pgsql') { + if (!empty($this->tag)) { + $tag = pg_escape_string($this->tag); + } + } else { + if (!empty($this->tag)) { + $tag = mysql_escape_string($this->tag); + } + } + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); + $cutoff = sprintf("fave.modified > '%s'", + common_sql_date(time() - common_config('popular', 'cutoff'))); + $qry = "SELECT notice.*, $weightexpr as weight "; + if(isset($tag)) { + $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . + "WHERE $cutoff and notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag"; + } else { + $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . + "WHERE $cutoff"; + } + $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . + 'notice.rendered,notice.url,notice.created,notice.modified,' . + 'notice.reply_to,notice.is_local,notice.source,notice.conversation, ' . + 'notice.lat,notice.lon,location_id,location_ns,notice.repeat_of'; + $qry .= ' HAVING \'silenced\' NOT IN (SELECT role FROM profile_role WHERE profile_id=notice.profile_id)'; + $qry .= ' ORDER BY weight DESC'; + + $offset = $this->offset; + $limit = $this->limit + 1; + + $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; + + $notice = Memcached_DataObject::cachedQuery('Notice', + $qry, + 1200); + return $notice; + } +} \ No newline at end of file diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index f70a972efe..a4f038b246 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -48,42 +48,13 @@ class PopularNoticeSection extends NoticeSection { function getNotices() { - // @fixme there should be a common func for this - if (common_config('db', 'type') == 'pgsql') { - if (!empty($this->out->tag)) { - $tag = pg_escape_string($this->out->tag); - } - } else { - if (!empty($this->out->tag)) { - $tag = mysql_escape_string($this->out->tag); - } + $pop = new Popularity(); + if (!empty($this->out->tag)) { + $pop->tag = $this->out->tag; } - $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); - $cutoff = sprintf("fave.modified > '%s'", - common_sql_date(time() - common_config('popular', 'cutoff'))); - $qry = "SELECT notice.*, $weightexpr as weight "; - if(isset($tag)) { - $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . - "WHERE $cutoff and notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag"; - } else { - $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - "WHERE $cutoff"; - } - $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . - 'notice.rendered,notice.url,notice.created,notice.modified,' . - 'notice.reply_to,notice.is_local,notice.source,notice.conversation, ' . - 'notice.lat,notice.lon,location_id,location_ns,notice.repeat_of' . - ' ORDER BY weight DESC'; - - $offset = 0; - $limit = NOTICES_PER_SECTION + 1; - - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - - $notice = Memcached_DataObject::cachedQuery('Notice', - $qry, - 1200); - return $notice; + $pop->limit = NOTICES_PER_SECTION; + $pop->expiry = 1200; + return $pop->getNotices(); } function title() diff --git a/lib/profileaction.php b/lib/profileaction.php index 504b775669..4bfc4d48d9 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -101,7 +101,7 @@ class ProfileAction extends OwnerDesignAction function showSubscriptions() { - $profile = $this->user->getSubscriptions(0, PROFILES_PER_MINILIST + 1); + $profile = $this->profile->getSubscriptions(0, PROFILES_PER_MINILIST + 1); $this->elementStart('div', array('id' => 'entity_subscriptions', 'class' => 'section')); @@ -134,7 +134,7 @@ class ProfileAction extends OwnerDesignAction function showSubscribers() { - $profile = $this->user->getSubscribers(0, PROFILES_PER_MINILIST + 1); + $profile = $this->profile->getSubscribers(0, PROFILES_PER_MINILIST + 1); $this->elementStart('div', array('id' => 'entity_subscribers', 'class' => 'section')); @@ -173,7 +173,7 @@ class ProfileAction extends OwnerDesignAction $subs_count = $this->profile->subscriptionCount(); $subbed_count = $this->profile->subscriberCount(); $notice_count = $this->profile->noticeCount(); - $group_count = $this->user->getGroups()->N; + $group_count = $this->profile->getGroups()->N; $age_days = (time() - strtotime($this->profile->created)) / 86400; if ($age_days < 1) { // Rather than extrapolating out to a bajillion... @@ -241,7 +241,7 @@ class ProfileAction extends OwnerDesignAction function showGroups() { - $groups = $this->user->getGroups(0, GROUPS_PER_MINILIST + 1); + $groups = $this->profile->getGroups(0, GROUPS_PER_MINILIST + 1); $this->elementStart('div', array('id' => 'entity_groups', 'class' => 'section')); @@ -249,7 +249,7 @@ class ProfileAction extends OwnerDesignAction $this->element('h2', null, _('Groups')); if ($groups) { - $gml = new GroupMiniList($groups, $this->user, $this); + $gml = new GroupMiniList($groups, $this->profile, $this); $cnt = $gml->show(); if ($cnt == 0) { $this->element('p', null, _('(None)')); diff --git a/lib/right.php b/lib/right.php index deb451fde9..bacbea5f29 100644 --- a/lib/right.php +++ b/lib/right.php @@ -60,5 +60,6 @@ class Right const MAKEGROUPADMIN = 'makegroupadmin'; const GRANTROLE = 'grantrole'; const REVOKEROLE = 'revokerole'; + const DELETEGROUP = 'deletegroup'; } diff --git a/lib/router.php b/lib/router.php index ca3c2e880c..b7159e6130 100644 --- a/lib/router.php +++ b/lib/router.php @@ -33,14 +33,15 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { require_once 'Net/URL/Mapper.php'; -class StatusNet_URL_Mapper extends Net_URL_Mapper { - +class StatusNet_URL_Mapper extends Net_URL_Mapper +{ private static $_singleton = null; + private $_actionToPath = array(); private function __construct() { } - + public static function getInstance($id = '__default__') { if (empty(self::$_singleton)) { @@ -54,10 +55,47 @@ class StatusNet_URL_Mapper extends Net_URL_Mapper { $result = null; if (Event::handle('StartConnectPath', array(&$path, &$defaults, &$rules, &$result))) { $result = parent::connect($path, $defaults, $rules); + if (array_key_exists('action', $defaults)) { + $action = $defaults['action']; + } elseif (array_key_exists('action', $rules)) { + $action = $rules['action']; + } else { + $action = null; + } + $this->_mapAction($action, $result); Event::handle('EndConnectPath', array($path, $defaults, $rules, $result)); } return $result; } + + protected function _mapAction($action, $path) + { + if (!array_key_exists($action, $this->_actionToPath)) { + $this->_actionToPath[$action] = array(); + } + $this->_actionToPath[$action][] = $path; + return; + } + + public function generate($values = array(), $qstring = array(), $anchor = '') + { + if (!array_key_exists('action', $values)) { + return parent::generate($values, $qstring, $anchor); + } + + $action = $values['action']; + + if (!array_key_exists($action, $this->_actionToPath)) { + return parent::generate($values, $qstring, $anchor); + } + + $oldPaths = $this->paths; + $this->paths = $this->_actionToPath[$action]; + $result = parent::generate($values, $qstring, $anchor); + $this->paths = $oldPaths; + + return $result; + } } /** @@ -71,7 +109,6 @@ class StatusNet_URL_Mapper extends Net_URL_Mapper { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Router { var $m = null; @@ -89,11 +126,52 @@ class Router function __construct() { - if (!$this->m) { - $this->m = $this->initialize(); + if (empty($this->m)) { + if (!common_config('router', 'cache')) { + $this->m = $this->initialize(); + } else { + $k = self::cacheKey(); + $c = Cache::instance(); + $m = $c->get($k); + if (!empty($m)) { + $this->m = $m; + } else { + $this->m = $this->initialize(); + $c->set($k, $this->m); + } + } } } + /** + * Create a unique hashkey for the router. + * + * The router's url map can change based on the version of the software + * you're running and the plugins that are enabled. To avoid having bad routes + * get stuck in the cache, the key includes a list of plugins and the software + * version. + * + * There can still be problems with a) differences in versions of the plugins and + * b) people running code between official versions, but these tend to be more + * sophisticated users who can grok what's going on and clear their caches. + * + * @return string cache key string that should uniquely identify a router + */ + + static function cacheKey() + { + $parts = array('router'); + + // Many router paths depend on this setting. + if (common_config('singleuser', 'enabled')) { + $parts[] = '1user'; + } else { + $parts[] = 'multi'; + } + + return Cache::codeKey(implode(':', $parts)); + } + function initialize() { $m = StatusNet_URL_Mapper::getInstance(); @@ -130,7 +208,7 @@ class Router 'deleteuser', 'geocode', 'version', - ); + ); foreach ($main as $a) { $m->connect('main/'.$a, array('action' => $a)); @@ -151,6 +229,10 @@ class Router $m->connect('main/xrds', array('action' => 'publicxrds')); + $m->connect('.well-known/host-meta', + array('action' => 'hostmeta')); + $m->connect('main/xrd', + array('action' => 'userxrd')); // these take a code @@ -170,24 +252,24 @@ class Router // settings foreach (array('profile', 'avatar', 'password', 'im', 'oauthconnections', - 'oauthapps', 'email', 'sms', 'userdesign', 'other') as $s) { + 'oauthapps', 'email', 'sms', 'userdesign', 'url') as $s) { $m->connect('settings/'.$s, array('action' => $s.'settings')); } $m->connect('settings/oauthapps/show/:id', - array('action' => 'showapplication'), - array('id' => '[0-9]+') + array('action' => 'showapplication'), + array('id' => '[0-9]+') ); $m->connect('settings/oauthapps/new', - array('action' => 'newapplication') + array('action' => 'newapplication') ); $m->connect('settings/oauthapps/edit/:id', - array('action' => 'editapplication'), - array('id' => '[0-9]+') + array('action' => 'editapplication'), + array('id' => '[0-9]+') ); $m->connect('settings/oauthapps/delete/:id', - array('action' => 'deleteapplication'), - array('id' => '[0-9]+') + array('action' => 'deleteapplication'), + array('id' => '[0-9]+') ); // search @@ -221,10 +303,10 @@ class Router $m->connect('notice/new', array('action' => 'newnotice')); $m->connect('notice/new?replyto=:replyto', array('action' => 'newnotice'), - array('replyto' => '[A-Za-z0-9_-]+')); + array('replyto' => Nickname::DISPLAY_FMT)); $m->connect('notice/new?replyto=:replyto&inreplyto=:inreplyto', array('action' => 'newnotice'), - array('replyto' => '[A-Za-z0-9_-]+'), + array('replyto' => Nickname::DISPLAY_FMT), array('inreplyto' => '[0-9]+')); $m->connect('notice/:notice/file', @@ -248,7 +330,7 @@ class Router array('id' => '[0-9]+')); $m->connect('message/new', array('action' => 'newmessage')); - $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => '[A-Za-z0-9_-]+')); + $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => Nickname::DISPLAY_FMT)); $m->connect('message/:message', array('action' => 'showmessage'), array('message' => '[0-9]+')); @@ -276,10 +358,10 @@ class Router $m->connect('group/new', array('action' => 'newgroup')); - foreach (array('edit', 'join', 'leave') as $v) { + foreach (array('edit', 'join', 'leave', 'delete') as $v) { $m->connect('group/:nickname/'.$v, array('action' => $v.'group'), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect('group/:id/id/'.$v, array('action' => $v.'group'), array('id' => '[0-9]+')); @@ -288,20 +370,20 @@ class Router foreach (array('members', 'logo', 'rss', 'designsettings') as $n) { $m->connect('group/:nickname/'.$n, array('action' => 'group'.$n), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); } $m->connect('group/:nickname/foaf', array('action' => 'foafgroup'), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect('group/:nickname/blocked', array('action' => 'blockedfromgroup'), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect('group/:nickname/makeadmin', array('action' => 'makeadmin'), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect('group/:id/id', array('action' => 'groupbyid'), @@ -309,7 +391,7 @@ class Router $m->connect('group/:nickname', array('action' => 'showgroup'), - array('nickname' => '[a-zA-Z0-9]+')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect('group/', array('action' => 'groups')); $m->connect('group', array('action' => 'groups')); @@ -320,6 +402,11 @@ class Router // statuses API + $m->connect('api', + array('action' => 'Redirect', + 'nextAction' => 'doc', + 'args' => array('title' => 'api'))); + $m->connect('api/statuses/public_timeline.:format', array('action' => 'ApiTimelinePublic', 'format' => '(xml|json|rss|atom)')); @@ -330,7 +417,7 @@ class Router $m->connect('api/statuses/friends_timeline/:id.:format', array('action' => 'ApiTimelineFriends', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statuses/home_timeline.:format', @@ -339,7 +426,7 @@ class Router $m->connect('api/statuses/home_timeline/:id.:format', array('action' => 'ApiTimelineHome', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statuses/user_timeline.:format', @@ -348,7 +435,7 @@ class Router $m->connect('api/statuses/user_timeline/:id.:format', array('action' => 'ApiTimelineUser', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statuses/mentions.:format', @@ -357,7 +444,7 @@ class Router $m->connect('api/statuses/mentions/:id.:format', array('action' => 'ApiTimelineMentions', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statuses/replies.:format', @@ -366,7 +453,7 @@ class Router $m->connect('api/statuses/replies/:id.:format', array('action' => 'ApiTimelineMentions', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statuses/retweeted_by_me.:format', @@ -387,7 +474,7 @@ class Router $m->connect('api/statuses/friends/:id.:format', array('action' => 'ApiUserFriends', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statuses/followers.:format', @@ -396,17 +483,17 @@ class Router $m->connect('api/statuses/followers/:id.:format', array('action' => 'ApiUserFollowers', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statuses/show.:format', array('action' => 'ApiStatusesShow', - 'format' => '(xml|json)')); + 'format' => '(xml|json|atom)')); $m->connect('api/statuses/show/:id.:format', array('action' => 'ApiStatusesShow', 'id' => '[0-9]+', - 'format' => '(xml|json)')); + 'format' => '(xml|json|atom)')); $m->connect('api/statuses/update.:format', array('action' => 'ApiStatusesUpdate', @@ -439,7 +526,12 @@ class Router $m->connect('api/users/show/:id.:format', array('action' => 'ApiUserShow', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, + 'format' => '(xml|json)')); + + $m->connect('api/users/profile_image/:screen_name.:format', + array('action' => 'ApiUserProfileImage', + 'screen_name' => Nickname::DISPLAY_FMT, 'format' => '(xml|json)')); // direct messages @@ -477,30 +569,30 @@ class Router $m->connect('api/friendships/create/:id.:format', array('action' => 'ApiFriendshipsCreate', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/friendships/destroy/:id.:format', array('action' => 'ApiFriendshipsDestroy', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); // Social graph $m->connect('api/friends/ids/:id.:format', - array('action' => 'apiuserfriends', + array('action' => 'ApiUserFriends', 'ids_only' => true)); $m->connect('api/followers/ids/:id.:format', - array('action' => 'apiuserfollowers', + array('action' => 'ApiUserFollowers', 'ids_only' => true)); $m->connect('api/friends/ids.:format', - array('action' => 'apiuserfriends', + array('action' => 'ApiUserFriends', 'ids_only' => true)); $m->connect('api/followers/ids.:format', - array('action' => 'apiuserfollowers', + array('action' => 'ApiUserFollowers', 'ids_only' => true)); // account @@ -539,28 +631,36 @@ class Router $m->connect('api/favorites/:id.:format', array('action' => 'ApiTimelineFavorites', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/favorites/create/:id.:format', array('action' => 'ApiFavoriteCreate', - 'id' => '[a-zA-Z0-9]+', + 'id' => '[0-9]+', 'format' => '(xml|json)')); $m->connect('api/favorites/destroy/:id.:format', array('action' => 'ApiFavoriteDestroy', - 'id' => '[a-zA-Z0-9]+', + 'id' => '[0-9]+', 'format' => '(xml|json)')); // blocks + $m->connect('api/blocks/create.:format', + array('action' => 'ApiBlockCreate', + 'format' => '(xml|json)')); + $m->connect('api/blocks/create/:id.:format', array('action' => 'ApiBlockCreate', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, + 'format' => '(xml|json)')); + + $m->connect('api/blocks/destroy.:format', + array('action' => 'ApiBlockDestroy', 'format' => '(xml|json)')); $m->connect('api/blocks/destroy/:id.:format', array('action' => 'ApiBlockDestroy', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); // help @@ -596,7 +696,7 @@ class Router $m->connect('api/statusnet/groups/timeline/:id.:format', array('action' => 'ApiTimelineGroup', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statusnet/groups/show.:format', @@ -605,12 +705,12 @@ class Router $m->connect('api/statusnet/groups/show/:id.:format', array('action' => 'ApiGroupShow', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/join.:format', array('action' => 'ApiGroupJoin', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/join/:id.:format', @@ -619,7 +719,7 @@ class Router $m->connect('api/statusnet/groups/leave.:format', array('action' => 'ApiGroupLeave', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/leave/:id.:format', @@ -636,7 +736,7 @@ class Router $m->connect('api/statusnet/groups/list/:id.:format', array('action' => 'ApiGroupList', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statusnet/groups/list_all.:format', @@ -649,7 +749,7 @@ class Router $m->connect('api/statusnet/groups/membership/:id.:format', array('action' => 'ApiGroupMembership', - 'id' => '[a-zA-Z0-9]+', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/create.:format', @@ -678,13 +778,13 @@ class Router $m->connect('api/trends.json', array('action' => 'ApiTrends')); $m->connect('api/oauth/request_token', - array('action' => 'apioauthrequesttoken')); + array('action' => 'ApiOauthRequestToken')); $m->connect('api/oauth/access_token', - array('action' => 'apioauthaccesstoken')); + array('action' => 'ApiOauthAccessToken')); $m->connect('api/oauth/authorize', - array('action' => 'apioauthauthorize')); + array('action' => 'ApiOauthAuthorize')); // Admin @@ -696,6 +796,8 @@ class Router $m->connect('admin/sessions', array('action' => 'sessionsadminpanel')); $m->connect('admin/sitenotice', array('action' => 'sitenoticeadminpanel')); $m->connect('admin/snapshot', array('action' => 'snapshotadminpanel')); + $m->connect('admin/license', array('action' => 'licenseadminpanel')); + $m->connect('admin/plugins', array('action' => 'pluginsadminpanel')); $m->connect('admin/plugins/enable/:plugin', array('action' => 'pluginenable'), @@ -712,16 +814,7 @@ class Router if (common_config('singleuser', 'enabled')) { - $user = User::siteOwner(); - - if (!empty($user)) { - $nickname = $user->nickname; - } else { - $nickname = common_config('singleuser', 'nickname'); - if (empty($nickname)) { - throw new ServerException(_("No single user defined for single-user mode.")); - } - } + $nickname = User::singleUserNickname(); foreach (array('subscriptions', 'subscribers', 'all', 'foaf', 'xrds', @@ -776,9 +869,7 @@ class Router $m->connect('', array('action' => 'showstream', 'nickname' => $nickname)); - } else { - $m->connect('', array('action' => 'public')); $m->connect('rss', array('action' => 'publicrss')); $m->connect('featuredrss', array('action' => 'featuredrss')); @@ -794,56 +885,92 @@ class Router 'replies', 'inbox', 'outbox', 'microsummary', 'hcard') as $a) { $m->connect(':nickname/'.$a, array('action' => $a), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); } foreach (array('subscriptions', 'subscribers') as $a) { $m->connect(':nickname/'.$a.'/:tag', array('action' => $a), array('tag' => '[a-zA-Z0-9]+', - 'nickname' => '[a-zA-Z0-9]{1,64}')); + 'nickname' => Nickname::DISPLAY_FMT)); } foreach (array('rss', 'groups') as $a) { $m->connect(':nickname/'.$a, array('action' => 'user'.$a), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); } foreach (array('all', 'replies', 'favorites') as $a) { $m->connect(':nickname/'.$a.'/rss', array('action' => $a.'rss'), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); } $m->connect(':nickname/favorites', array('action' => 'showfavorites'), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname/avatar/:size', array('action' => 'avatarbynickname'), array('size' => '(original|96|48|24)', - 'nickname' => '[a-zA-Z0-9]{1,64}')); + 'nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname/tag/:tag/rss', array('action' => 'userrss'), - array('nickname' => '[a-zA-Z0-9]{1,64}'), + array('nickname' => Nickname::DISPLAY_FMT), array('tag' => '[\pL\pN_\-\.]{1,64}')); $m->connect(':nickname/tag/:tag', array('action' => 'showstream'), - array('nickname' => '[a-zA-Z0-9]{1,64}'), + array('nickname' => Nickname::DISPLAY_FMT), array('tag' => '[\pL\pN_\-\.]{1,64}')); $m->connect(':nickname/rsd.xml', array('action' => 'rsd'), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname', array('action' => 'showstream'), - array('nickname' => '[a-zA-Z0-9]{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); } + // AtomPub API + + $m->connect('api/statusnet/app/service/:id.xml', + array('action' => 'ApiAtomService'), + array('id' => Nickname::DISPLAY_FMT)); + + $m->connect('api/statusnet/app/service.xml', + array('action' => 'ApiAtomService')); + + $m->connect('api/statusnet/app/subscriptions/:subscriber/:subscribed.atom', + array('action' => 'AtomPubShowSubscription'), + array('subscriber' => '[0-9]+', + 'subscribed' => '[0-9]+')); + + $m->connect('api/statusnet/app/subscriptions/:subscriber.atom', + array('action' => 'AtomPubSubscriptionFeed'), + array('subscriber' => '[0-9]+')); + + $m->connect('api/statusnet/app/favorites/:profile/:notice.atom', + array('action' => 'AtomPubShowFavorite'), + array('profile' => '[0-9]+', + 'notice' => '[0-9]+')); + + $m->connect('api/statusnet/app/favorites/:profile.atom', + array('action' => 'AtomPubFavoriteFeed'), + array('profile' => '[0-9]+')); + + $m->connect('api/statusnet/app/memberships/:profile/:group.atom', + array('action' => 'AtomPubShowMembership'), + array('profile' => '[0-9]+', + 'group' => '[0-9]+')); + + $m->connect('api/statusnet/app/memberships/:profile.atom', + array('action' => 'AtomPubMembershipFeed'), + array('profile' => '[0-9]+')); + // user stuff Event::handle('RouterInitialized', array($m)); @@ -859,7 +986,8 @@ class Router } catch (Net_URL_Mapper_InvalidException $e) { common_log(LOG_ERR, "Problem getting route for $path - " . $e->getMessage()); - $cac = new ClientErrorAction("Page not found.", 404); + // TRANS: Client error on action trying to visit a non-existing page. + $cac = new ClientErrorAction(_('Page not found.'), 404); $cac->showPage(); } @@ -885,8 +1013,17 @@ class Router $qpos = strpos($url, '?'); if ($qpos !== false) { $url = substr($url, 0, $qpos+1) . - str_replace('?', '&', substr($url, $qpos+1)); + str_replace('?', '&', substr($url, $qpos+1)); + + // @fixme this is a hacky workaround for http_build_query in the + // lower-level code and bad configs that set the default separator + // to & instead of &. Encoded &s in parameters will not be + // affected. + $url = substr($url, 0, $qpos+1) . + str_replace('&', '&', substr($url, $qpos+1)); + } + return $url; } } diff --git a/lib/schema.php b/lib/schema.php index e5def514e3..2e27955881 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -41,6 +41,7 @@ if (!defined('STATUSNET')) { * @category Database * @package StatusNet * @author Evan Prodromou <evan@status.net> + * @author Brion Vibber <brion@status.net> * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -118,65 +119,216 @@ class Schema /** * Creates a table with the given names and columns. * - * @param string $name Name of the table - * @param array $columns Array of ColumnDef objects - * for new table. + * @param string $tableName Name of the table + * @param array $def Table definition array listing fields and indexes. * * @return boolean success flag */ - public function createTable($name, $columns) + public function createTable($tableName, $def) { - $uniques = array(); - $primary = array(); - $indices = array(); + $statements = $this->buildCreateTable($tableName, $def); + return $this->runSqlSet($statements); + } - $sql = "CREATE TABLE $name (\n"; + /** + * Build a set of SQL statements to create a table with the given + * name and columns. + * + * @param string $name Name of the table + * @param array $def Table definition array + * + * @return boolean success flag + */ + public function buildCreateTable($name, $def) + { + $def = $this->validateDef($name, $def); + $def = $this->filterDef($def); + $sql = array(); - for ($i = 0; $i < count($columns); $i++) { + foreach ($def['fields'] as $col => $colDef) { + $this->appendColumnDef($sql, $col, $colDef); + } - $cd =& $columns[$i]; + // Primary, unique, and foreign keys are constraints, so go within + // the CREATE TABLE statement normally. + if (!empty($def['primary key'])) { + $this->appendPrimaryKeyDef($sql, $def['primary key']); + } - if ($i > 0) { - $sql .= ",\n"; - } - - $sql .= $this->_columnSql($cd); - - switch ($cd->key) { - case 'UNI': - $uniques[] = $cd->name; - break; - case 'PRI': - $primary[] = $cd->name; - break; - case 'MUL': - $indices[] = $cd->name; - break; + if (!empty($def['unique keys'])) { + foreach ($def['unique keys'] as $col => $colDef) { + $this->appendUniqueKeyDef($sql, $col, $colDef); } } - if (count($primary) > 0) { // it really should be... - $sql .= ",\nconstraint primary key (" . implode(',', $primary) . ")"; + if (!empty($def['foreign keys'])) { + foreach ($def['foreign keys'] as $keyName => $keyDef) { + $this->appendForeignKeyDef($sql, $keyName, $keyDef); + } } - foreach ($uniques as $u) { - $sql .= ",\nunique index {$name}_{$u}_idx ($u)"; + // Wrap the CREATE TABLE around the main body chunks... + $statements = array(); + $statements[] = $this->startCreateTable($name, $def) . "\n" . + implode($sql, ",\n") . "\n" . + $this->endCreateTable($name, $def); + + // Multi-value indexes are advisory and for best portability + // should be created as separate statements. + if (!empty($def['indexes'])) { + foreach ($def['indexes'] as $col => $colDef) { + $this->appendCreateIndex($statements, $name, $col, $colDef); + } + } + if (!empty($def['fulltext indexes'])) { + foreach ($def['fulltext indexes'] as $col => $colDef) { + $this->appendCreateFulltextIndex($statements, $name, $col, $colDef); + } } - foreach ($indices as $i) { - $sql .= ",\nindex {$name}_{$i}_idx ($i)"; + return $statements; + } + + /** + * Set up a 'create table' SQL statement. + * + * @param string $name table name + * @param array $def table definition + * @param $string + */ + function startCreateTable($name, array $def) + { + return 'CREATE TABLE ' . $this->quoteIdentifier($name) . ' ('; + } + + /** + * Close out a 'create table' SQL statement. + * + * @param string $name table name + * @param array $def table definition + * @return string + */ + function endCreateTable($name, array $def) + { + return ')'; + } + + /** + * Append an SQL fragment with a column definition in a CREATE TABLE statement. + * + * @param array $sql + * @param string $name + * @param array $def + */ + function appendColumnDef(array &$sql, $name, array $def) + { + $sql[] = "$name " . $this->columnSql($def); + } + + /** + * Append an SQL fragment with a constraint definition for a primary + * key in a CREATE TABLE statement. + * + * @param array $sql + * @param array $def + */ + function appendPrimaryKeyDef(array &$sql, array $def) + { + $sql[] = "PRIMARY KEY " . $this->buildIndexList($def); + } + + /** + * Append an SQL fragment with a constraint definition for a unique + * key in a CREATE TABLE statement. + * + * @param array $sql + * @param string $name + * @param array $def + */ + function appendUniqueKeyDef(array &$sql, $name, array $def) + { + $sql[] = "CONSTRAINT $name UNIQUE " . $this->buildIndexList($def); + } + + /** + * Append an SQL fragment with a constraint definition for a foreign + * key in a CREATE TABLE statement. + * + * @param array $sql + * @param string $name + * @param array $def + */ + function appendForeignKeyDef(array &$sql, $name, array $def) + { + if (count($def) != 2) { + throw new Exception("Invalid foreign key def for $name: " . var_export($def, true)); } + list($refTable, $map) = $def; + $srcCols = array_keys($map); + $refCols = array_values($map); + $sql[] = "CONSTRAINT $name FOREIGN KEY " . + $this->buildIndexList($srcCols) . + " REFERENCES " . + $this->quoteIdentifier($refTable) . + " " . + $this->buildIndexList($refCols); + } - $sql .= "); "; + /** + * Append an SQL statement with an index definition for an advisory + * index over one or more columns on a table. + * + * @param array $statements + * @param string $table + * @param string $name + * @param array $def + */ + function appendCreateIndex(array &$statements, $table, $name, array $def) + { + $statements[] = "CREATE INDEX $name ON $table " . $this->buildIndexList($def); + } - $res = $this->conn->query($sql); + /** + * Append an SQL statement with an index definition for a full-text search + * index over one or more columns on a table. + * + * @param array $statements + * @param string $table + * @param string $name + * @param array $def + */ + function appendCreateFulltextIndex(array &$statements, $table, $name, array $def) + { + throw new Exception("Fulltext index not supported in this database"); + } - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); + /** + * Append an SQL statement to drop an index from a table. + * + * @param array $statements + * @param string $table + * @param string $name + * @param array $def + */ + function appendDropIndex(array &$statements, $table, $name) + { + $statements[] = "DROP INDEX $name ON " . $this->quoteIdentifier($table); + } + + function buildIndexList(array $def) + { + // @fixme + return '(' . implode(',', array_map(array($this, 'buildIndexItem'), $def)) . ')'; + } + + function buildIndexItem($def) + { + if (is_array($def)) { + list($name, $size) = $def; + return $this->quoteIdentifier($name) . '(' . intval($size) . ')'; } - - return true; + return $this->quoteIdentifier($def); } /** @@ -223,7 +375,7 @@ class Schema } if (empty($name)) { - $name = "$table_".implode("_", $columnNames)."_idx"; + $name = "{$table}_".implode("_", $columnNames)."_idx"; } $res = $this->conn->query("ALTER TABLE $table ". @@ -338,46 +490,80 @@ class Schema * alter the table to match the column definitions. * * @param string $tableName name of the table - * @param array $columns array of ColumnDef - * objects for the table + * @param array $def Table definition array * * @return boolean success flag */ - public function ensureTable($tableName, $columns) + public function ensureTable($tableName, $def) { - // XXX: DB engine portability -> toilet + $statements = $this->buildEnsureTable($tableName, $def); + return $this->runSqlSet($statements); + } + /** + * Run a given set of SQL commands on the connection in sequence. + * Empty input is ok. + * + * @fixme if multiple statements, wrap in a transaction? + * @param array $statements + * @return boolean success flag + */ + function runSqlSet(array $statements) + { + $ok = true; + foreach ($statements as $sql) { + if (defined('DEBUG_INSTALLER')) { + echo "<tt>" . htmlspecialchars($sql) . "</tt><br/>\n"; + } + $res = $this->conn->query($sql); + + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + } + return $ok; + } + + /** + * Check a table's status, and if needed build a set + * of SQL statements which change it to be consistent + * with the given table definition. + * + * If the table does not yet exist, statements will + * be returned to create the table. If it does exist, + * statements will be returned to alter the table to + * match the column definitions. + * + * @param string $tableName name of the table + * @param array $columns array of ColumnDef + * objects for the table + * + * @return array of SQL statements + */ + + function buildEnsureTable($tableName, array $def) + { try { - $td = $this->getTableDef($tableName); - } catch (Exception $e) { - if (preg_match('/no such table/', $e->getMessage())) { - return $this->createTable($tableName, $columns); - } else { - throw $e; - } + $old = $this->getTableDef($tableName); + } catch (SchemaTableMissingException $e) { + return $this->buildCreateTable($tableName, $def); } - $cur = $this->_names($td->columns); - $new = $this->_names($columns); + // Filter the DB-independent table definition to match the current + // database engine's features and limitations. + $def = $this->validateDef($tableName, $def); + $def = $this->filterDef($def); - $toadd = array_diff($new, $cur); - $todrop = array_diff($cur, $new); - $same = array_intersect($new, $cur); - $tomod = array(); + $statements = array(); + $fields = $this->diffArrays($old, $def, 'fields', array($this, 'columnsEqual')); + $uniques = $this->diffArrays($old, $def, 'unique keys'); + $indexes = $this->diffArrays($old, $def, 'indexes'); + $foreign = $this->diffArrays($old, $def, 'foreign keys'); - foreach ($same as $m) { - $curCol = $this->_byName($td->columns, $m); - $newCol = $this->_byName($columns, $m); - - if (!$newCol->equals($curCol)) { - $tomod[] = $newCol->name; - } - } - - if (count($toadd) + count($todrop) + count($tomod) == 0) { - // nothing to do - return true; + // Drop any obsolete or modified indexes ahead... + foreach ($indexes['del'] + $indexes['mod'] as $indexName) { + $this->appendDropIndex($statements, $tableName, $indexName); } // For efficiency, we want this all in one @@ -385,31 +571,200 @@ class Schema $phrase = array(); - foreach ($toadd as $columnName) { - $cd = $this->_byName($columns, $columnName); - - $phrase[] = 'ADD COLUMN ' . $this->_columnSql($cd); + foreach ($foreign['del'] + $foreign['mod'] as $keyName) { + $this->appendAlterDropForeign($phrase, $keyName); } - foreach ($todrop as $columnName) { - $phrase[] = 'DROP COLUMN ' . $columnName; + foreach ($uniques['del'] + $uniques['mod'] as $keyName) { + $this->appendAlterDropUnique($phrase, $keyName); } - foreach ($tomod as $columnName) { - $cd = $this->_byName($columns, $columnName); - - $phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); + foreach ($fields['add'] as $columnName) { + $this->appendAlterAddColumn($phrase, $columnName, + $def['fields'][$columnName]); } - $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); - - $res = $this->conn->query($sql); - - if (PEAR::isError($res)) { - throw new Exception($res->getMessage()); + foreach ($fields['mod'] as $columnName) { + $this->appendAlterModifyColumn($phrase, $columnName, + $old['fields'][$columnName], + $def['fields'][$columnName]); } - return true; + foreach ($fields['del'] as $columnName) { + $this->appendAlterDropColumn($phrase, $columnName); + } + + foreach ($uniques['mod'] + $uniques['add'] as $keyName) { + $this->appendAlterAddUnique($phrase, $keyName, $def['unique keys'][$keyName]); + } + + foreach ($foreign['mod'] + $foreign['add'] as $keyName) { + $this->appendAlterAddForeign($phrase, $keyName, $def['foreign keys'][$keyName]); + } + + $this->appendAlterExtras($phrase, $tableName, $def); + + if (count($phrase) > 0) { + $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(",\n", $phrase); + $statements[] = $sql; + } + + // Now create any indexes... + foreach ($indexes['mod'] + $indexes['add'] as $indexName) { + $this->appendCreateIndex($statements, $tableName, $indexName, $def['indexes'][$indexName]); + } + + return $statements; + } + + function diffArrays($oldDef, $newDef, $section, $compareCallback=null) + { + $old = isset($oldDef[$section]) ? $oldDef[$section] : array(); + $new = isset($newDef[$section]) ? $newDef[$section] : array(); + + $oldKeys = array_keys($old); + $newKeys = array_keys($new); + + $toadd = array_diff($newKeys, $oldKeys); + $todrop = array_diff($oldKeys, $newKeys); + $same = array_intersect($newKeys, $oldKeys); + $tomod = array(); + $tokeep = array(); + + // Find which fields have actually changed definition + // in a way that we need to tweak them for this DB type. + foreach ($same as $name) { + if ($compareCallback) { + $same = call_user_func($compareCallback, $old[$name], $new[$name]); + } else { + $same = ($old[$name] == $new[$name]); + } + if ($same) { + $tokeep[] = $name; + continue; + } + $tomod[] = $name; + } + return array('add' => $toadd, + 'del' => $todrop, + 'mod' => $tomod, + 'keep' => $tokeep, + 'count' => count($toadd) + count($todrop) + count($tomod)); + } + + /** + * Append phrase(s) to an array of partial ALTER TABLE chunks in order + * to add the given column definition to the table. + * + * @param array $phrase + * @param string $columnName + * @param array $cd + */ + function appendAlterAddColumn(array &$phrase, $columnName, array $cd) + { + $phrase[] = 'ADD COLUMN ' . + $this->quoteIdentifier($columnName) . + ' ' . + $this->columnSql($cd); + } + + /** + * Append phrase(s) to an array of partial ALTER TABLE chunks in order + * to alter the given column from its old state to a new one. + * + * @param array $phrase + * @param string $columnName + * @param array $old previous column definition as found in DB + * @param array $cd current column definition + */ + function appendAlterModifyColumn(array &$phrase, $columnName, array $old, array $cd) + { + $phrase[] = 'MODIFY COLUMN ' . + $this->quoteIdentifier($columnName) . + ' ' . + $this->columnSql($cd); + } + + /** + * Append phrase(s) to an array of partial ALTER TABLE chunks in order + * to drop the given column definition from the table. + * + * @param array $phrase + * @param string $columnName + */ + function appendAlterDropColumn(array &$phrase, $columnName) + { + $phrase[] = 'DROP COLUMN ' . $this->quoteIdentifier($columnName); + } + + function appendAlterAddUnique(array &$phrase, $keyName, array $def) + { + $sql = array(); + $sql[] = 'ADD'; + $this->appendUniqueKeyDef($sql, $keyName, $def); + $phrase[] = implode(' ', $sql); + } + + function appendAlterAddForeign(array &$phrase, $keyName, array $def) + { + $sql = array(); + $sql[] = 'ADD'; + $this->appendForeignKeyDef($sql, $keyName, $def); + $phrase[] = implode(' ', $sql); + } + + function appendAlterDropUnique(array &$phrase, $keyName) + { + $phrase[] = 'DROP CONSTRAINT ' . $keyName; + } + + function appendAlterDropForeign(array &$phrase, $keyName) + { + $phrase[] = 'DROP FOREIGN KEY ' . $keyName; + } + + function appendAlterExtras(array &$phrase, $tableName, array $def) + { + // no-op + } + + /** + * Quote a db/table/column identifier if necessary. + * + * @param string $name + * @return string + */ + function quoteIdentifier($name) + { + return $name; + } + + function quoteDefaultValue($cd) + { + if ($cd['type'] == 'datetime' && $cd['default'] == 'CURRENT_TIMESTAMP') { + return $cd['default']; + } else { + return $this->quoteValue($cd['default']); + } + } + + function quoteValue($val) + { + return $this->conn->quoteSmart($val); + } + + /** + * Check if two column definitions are equivalent. + * The default implementation checks _everything_ but in many cases + * you may be able to discard a bunch of equivalencies. + * + * @param array $a + * @param array $b + * @return boolean + */ + function columnsEqual(array $a, array $b) + { + return !array_diff_assoc($a, $b) && !array_diff_assoc($b, $a); } /** @@ -421,7 +776,7 @@ class Schema * @return array strings for name values */ - private function _names($cds) + protected function _names($cds) { $names = array(); @@ -442,7 +797,7 @@ class Schema * @return ColumnDef matching item or null if no match. */ - private function _byName($cds, $name) + protected function _byName($cds, $name) { foreach ($cds as $cd) { if ($cd->name == $name) { @@ -465,32 +820,194 @@ class Schema * @return string correct SQL for that column */ - private function _columnSql($cd) + function columnSql(array $cd) { - $sql = "{$cd->name} "; + $line = array(); + $line[] = $this->typeAndSize($cd); - if (!empty($cd->size)) { - $sql .= "{$cd->type}({$cd->size}) "; - } else { - $sql .= "{$cd->type} "; + if (isset($cd['default'])) { + $line[] = 'default'; + $line[] = $this->quoteDefaultValue($cd); + } else if (!empty($cd['not null'])) { + // Can't have both not null AND default! + $line[] = 'not null'; } - if (!empty($cd->default)) { - $sql .= "default {$cd->default} "; - } else { - $sql .= ($cd->nullable) ? "null " : "not null "; - } - - if (!empty($cd->auto_increment)) { - $sql .= " auto_increment "; - } - - if (!empty($cd->extra)) { - $sql .= "{$cd->extra} "; - } - - return $sql; + return implode(' ', $line); } + + /** + * + * @param string $column canonical type name in defs + * @return string native DB type name + */ + function mapType($column) + { + return $column; + } + + function typeAndSize($column) + { + //$type = $this->mapType($column); + $type = $column['type']; + if (isset($column['size'])) { + $type = $column['size'] . $type; + } + $lengths = array(); + + if (isset($column['precision'])) { + $lengths[] = $column['precision']; + if (isset($column['scale'])) { + $lengths[] = $column['scale']; + } + } else if (isset($column['length'])) { + $lengths[] = $column['length']; + } + + if ($lengths) { + return $type . '(' . implode(',', $lengths) . ')'; + } else { + return $type; + } + } + + /** + * Convert an old-style set of ColumnDef objects into the current + * Drupal-style schema definition array, for backwards compatibility + * with plugins written for 0.9.x. + * + * @param string $tableName + * @param array $defs: array of ColumnDef objects + * @return array + */ + protected function oldToNew($tableName, array $defs) + { + $table = array(); + $prefixes = array( + 'tiny', + 'small', + 'medium', + 'big', + ); + foreach ($defs as $cd) { + $column = array(); + $column['type'] = $cd->type; + foreach ($prefixes as $prefix) { + if (substr($cd->type, 0, strlen($prefix)) == $prefix) { + $column['type'] = substr($cd->type, strlen($prefix)); + $column['size'] = $prefix; + break; + } + } + + if ($cd->size) { + if ($cd->type == 'varchar' || $cd->type == 'char') { + $column['length'] = $cd->size; + } + } + if (!$cd->nullable) { + $column['not null'] = true; + } + if ($cd->auto_increment) { + $column['type'] = 'serial'; + } + if ($cd->default) { + $column['default'] = $cd->default; + } + $table['fields'][$cd->name] = $column; + + if ($cd->key == 'PRI') { + // If multiple columns are defined as primary key, + // we'll pile them on in sequence. + if (!isset($table['primary key'])) { + $table['primary key'] = array(); + } + $table['primary key'][] = $cd->name; + } else if ($cd->key == 'MUL') { + // Individual multiple-value indexes are only per-column + // using the old ColumnDef syntax. + $idx = "{$tableName}_{$cd->name}_idx"; + $table['indexes'][$idx] = array($cd->name); + } else if ($cd->key == 'UNI') { + // Individual unique-value indexes are only per-column + // using the old ColumnDef syntax. + $idx = "{$tableName}_{$cd->name}_idx"; + $table['unique keys'][$idx] = array($cd->name); + } + } + + return $table; + } + + /** + * Filter the given table definition array to match features available + * in this database. + * + * This lets us strip out unsupported things like comments, foreign keys, + * or type variants that we wouldn't get back from getTableDef(). + * + * @param array $tableDef + */ + function filterDef(array $tableDef) + { + return $tableDef; + } + + /** + * Validate a table definition array, checking for basic structure. + * + * If necessary, converts from an old-style array of ColumnDef objects. + * + * @param string $tableName + * @param array $def: table definition array + * @return array validated table definition array + * + * @throws Exception on wildly invalid input + */ + function validateDef($tableName, array $def) + { + if (isset($def[0]) && $def[0] instanceof ColumnDef) { + $def = $this->oldToNew($tableName, $def); + } + + // A few quick checks :D + if (!isset($def['fields'])) { + throw new Exception("Invalid table definition for $tableName: no fields."); + } + + return $def; + } + + function isNumericType($type) + { + $type = strtolower($type); + $known = array('int', 'serial', 'numeric'); + return in_array($type, $known); + } + + /** + * Pull info from the query into a fun-fun array of dooooom + * + * @param string $sql + * @return array of arrays + */ + protected function fetchQueryData($sql) + { + $res = $this->conn->query($sql); + if (PEAR::isError($res)) { + throw new Exception($res->getMessage()); + } + + $out = array(); + $row = array(); + while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { + $out[] = $row; + } + $res->free(); + + return $out; + } + } class SchemaTableMissingException extends Exception diff --git a/lib/schemaupdater.php b/lib/schemaupdater.php new file mode 100644 index 0000000000..64f7c596d4 --- /dev/null +++ b/lib/schemaupdater.php @@ -0,0 +1,126 @@ +<?php + +/** + * StatusNet, the distributed open-source microblogging tool + * + * Database schema utilities + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Database + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @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 SchemaUpdater +{ + public function __construct($schema) + { + $this->schema = $schema; + $this->checksums = $this->getChecksums(); + } + + /** + * @param string $tableName + * @param array $tableDef + */ + public function register($tableName, array $tableDef) + { + $this->tables[$tableName] = $tableDef; + } + + /** + * Go ping em! + * + * @fixme handle tables that belong on different database servers...? + */ + public function checkSchema() + { + $checksums = $this->checksums; + foreach ($this->tables as $table => $def) { + $checksum = $this->checksum($def); + if (empty($checksums[$table])) { + common_log(LOG_DEBUG, "No previous schema_version for $table: updating to $checksum"); + } else if ($checksums[$table] == $checksum) { + common_log(LOG_DEBUG, "Last schema_version for $table up to date: $checksum"); + continue; + } else { + common_log(LOG_DEBUG, "Last schema_version for $table is {$checksums[$table]}: updating to $checksum"); + } + //$this->conn->query('BEGIN'); + $this->schema->ensureTable($table, $def); + $this->saveChecksum($table, $checksum); + //$this->conn->commit(); + } + } + + /** + * Calculate a checksum for this table definition array. + * + * @param array $def + * @return string + */ + public function checksum(array $def) + { + $flat = serialize($def); + return sha1($flat); + } + + /** + * Pull all known table checksums into an array for easy lookup. + * + * @return array: associative array of table names to checksum strings + */ + protected function getChecksums() + { + $checksums = array(); + + $sv = new Schema_version(); + $sv->find(); + while ($sv->fetch()) { + $checksums[$sv->table_name] = $sv->checksum; + } + + return $checksums; + } + + /** + * Save or update current available checksums. + * + * @param string $table + * @param string $checksum + */ + protected function saveChecksum($table, $checksum) + { + $sv = new Schema_version(); + $sv->table_name = $table; + $sv->checksum = $checksum; + $sv->modified = common_sql_now(); + if (isset($this->checksums[$table])) { + $sv->update(); + } else { + $sv->insert(); + } + $this->checksums[$table] = $checksum; + } +} diff --git a/lib/search_engines.php b/lib/search_engines.php index 332db3f89a..19703e03fd 100644 --- a/lib/search_engines.php +++ b/lib/search_engines.php @@ -52,10 +52,10 @@ class MySQLSearch extends SearchEngine { if ('profile' === $this->table) { $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' . - 'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)'); + 'AGAINST (\''.$this->target->escape($q).'\' IN BOOLEAN MODE)'); if (strtolower($q) != $q) { $this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' . - 'AGAINST (\''.addslashes(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR'); + 'AGAINST (\''.$this->target->escape(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR'); } return true; } else if ('notice' === $this->table) { @@ -64,13 +64,13 @@ class MySQLSearch extends SearchEngine $this->target->whereAdd('notice.is_local != ' . Notice::GATEWAY); if (strtolower($q) != $q) { - $this->target->whereAdd("( MATCH(content) AGAINST ('" . addslashes($q) . + $this->target->whereAdd("( MATCH(content) AGAINST ('" . $this->target->escape($q) . "' IN BOOLEAN MODE)) OR ( MATCH(content) " . - "AGAINST ('" . addslashes(strtolower($q)) . + "AGAINST ('" . $this->target->escape(strtolower($q)) . "' IN BOOLEAN MODE))"); } else { $this->target->whereAdd('MATCH(content) ' . - 'AGAINST (\''.addslashes($q).'\' IN BOOLEAN MODE)'); + 'AGAINST (\''.$this->target->escape($q).'\' IN BOOLEAN MODE)'); } return true; @@ -89,9 +89,9 @@ class MySQLLikeSearch extends SearchEngine ' fullname LIKE "%%%1$s%%" OR '. ' location LIKE "%%%1$s%%" OR '. ' bio LIKE "%%%1$s%%" OR '. - ' homepage LIKE "%%%1$s%%")', addslashes($q)); + ' homepage LIKE "%%%1$s%%")', $this->target->escape($q, true)); } else if ('notice' === $this->table) { - $qry = sprintf('content LIKE "%%%1$s%%"', addslashes($q)); + $qry = sprintf('content LIKE "%%%1$s%%"', $this->target->escape($q, true)); } else { throw new ServerException('Unknown table: ' . $this->table); } @@ -107,12 +107,12 @@ class PGSearch extends SearchEngine function query($q) { if ('profile' === $this->table) { - return $this->target->whereAdd('textsearch @@ plainto_tsquery(\''.addslashes($q).'\')'); + return $this->target->whereAdd('textsearch @@ plainto_tsquery(\''.$this->target->escape($q).'\')'); } else if ('notice' === $this->table) { // XXX: We need to filter out gateway notices (notice.is_local = -2) --Zach - return $this->target->whereAdd('to_tsvector(\'english\', content) @@ plainto_tsquery(\''.addslashes($q).'\')'); + return $this->target->whereAdd('to_tsvector(\'english\', content) @@ plainto_tsquery(\''.$this->target->escape($q).'\')'); } else { throw new ServerException('Unknown table: ' . $this->table); } diff --git a/lib/searchaction.php b/lib/searchaction.php index bb71a2ba15..6d7f46cd6e 100644 --- a/lib/searchaction.php +++ b/lib/searchaction.php @@ -70,7 +70,6 @@ class SearchAction extends Action * @return void * @see SearchGroupNav */ - function showLocalNav() { $nav = new SearchGroupNav($this, $this->trimmed('q')); @@ -117,14 +116,18 @@ class SearchAction extends Action 'class' => 'form_settings', 'action' => common_local_url($this->trimmed('action')))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend for the search form. $this->element('legend', null, _('Search site')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); if (!common_config('site', 'fancy')) { $this->hidden('action', $this->trimmed('action')); } + // TRANS: Used as a field label for the field where one or more keywords + // TRANS: for searching can be entered. $this->input('q', _('Keyword(s)'), $q); - $this->submit('search', _('Search')); + // TRANS: Button text for searching site. + $this->submit('search', _m('BUTTON','Search')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('fieldset'); @@ -135,6 +138,8 @@ class SearchAction extends Action } function searchSuggestions($q) { + // @todo FIXME: i18n issue: This formatting does not make this string get picked up by gettext. + // TRANS: Standard search suggestions shown when a search does not give any results. $message = _(<<<E_O_T * Make sure all words are spelled correctly. * Try different keywords. @@ -145,6 +150,8 @@ E_O_T ); if (!common_config('site', 'private')) { $qe = urlencode($q); + // @todo FIXME: i18n issue: This formatting does not make this string get picked up by gettext. + // TRANS: Standard search suggestions shown when a search does not give any results. $message .= sprintf(_(<<<E_O_T You can also try your search on other engines: @@ -159,6 +166,7 @@ E_O_T ), $qe, $qe, $qe, $qe, $qe); } $this->elementStart('dl', array('id' => 'help_search', 'class' => 'help')); + // TRANS: Definition list item with instructions on how to get (better) search results. $this->element('dt', null, _('Search help')); $this->elementStart('dd', 'instructions'); $this->raw(common_markup_to_html($message)); @@ -166,4 +174,3 @@ E_O_T $this->elementEnd('div'); } } - diff --git a/lib/servererroraction.php b/lib/servererroraction.php index 9b5a553dc6..54cc99099a 100644 --- a/lib/servererroraction.php +++ b/lib/servererroraction.php @@ -96,4 +96,27 @@ class ServerErrorAction extends ErrorAction $this->showPage(); } + + /** + * To specify additional HTTP headers for the action + * + * @return void + */ + function extraHeaders() + { + $status_string = @self::$status[$this->code]; + header('HTTP/1.1 '.$this->code.' '.$status_string); + } + + /** + * Page title. + * + * @return page title + */ + + function title() + { + return @self::$status[$this->code]; + } + } diff --git a/lib/serverexception.php b/lib/serverexception.php index 7dc9765ad6..0dfbd04ffd 100644 --- a/lib/serverexception.php +++ b/lib/serverexception.php @@ -22,7 +22,7 @@ * @category Exception * @package StatusNet * @author Evan Prodromou <evan@status.net> - * @copyright 2008 StatusNet, Inc. + * @copyright 2008-2010 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/ */ diff --git a/lib/spawningdaemon.php b/lib/spawningdaemon.php index 2f9f6e32e3..ea09b6fb2f 100644 --- a/lib/spawningdaemon.php +++ b/lib/spawningdaemon.php @@ -204,7 +204,7 @@ abstract class SpawningDaemon extends Daemon // Reconnect main memcached, or threads will stomp on // each other and corrupt their requests. - $cache = common_memcache(); + $cache = Cache::instance(); if ($cache) { $cache->reconnect(); } diff --git a/lib/statusnet.php b/lib/statusnet.php index ff0502915a..4c2aacd8f7 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -169,7 +169,6 @@ class StatusNet return $sites; } - /** * Fire initialization events for all instantiated plugins. */ @@ -225,7 +224,7 @@ class StatusNet { return self::$is_api; } - + public function setApi($mode) { self::$is_api = $mode; @@ -246,7 +245,7 @@ class StatusNet * Establish default configuration based on given or default server and path * Sets global $_server, $_path, and $config */ - protected static function initDefaults($server, $path) + public static function initDefaults($server, $path) { global $_server, $_path, $config; @@ -341,8 +340,11 @@ class StatusNet foreach ($config_files as $_config_file) { if (@file_exists($_config_file)) { - include($_config_file); - self::$have_config = true; + // Ignore 0-byte config files + if (filesize($_config_file) > 0) { + include($_config_file); + self::$have_config = true; + } } } @@ -384,6 +386,22 @@ class StatusNet } } } + + /** + * Are we running from the web with HTTPS? + * + * @return boolean true if we're running with HTTPS; else false + */ + + static function isHTTPS() + { + // There are some exceptions to this; add them here! + if(empty($_SERVER['HTTPS'])) { + return false; + } else { + return $_SERVER['HTTPS'] !== 'off'; + } + } } class NoConfigException extends Exception diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php index fc98c77d40..1d9a5ad207 100644 --- a/lib/stompqueuemanager.php +++ b/lib/stompqueuemanager.php @@ -578,7 +578,7 @@ class StompQueueManager extends QueueManager function incDeliveryCount($msgId) { $count = 0; - $cache = common_memcache(); + $cache = Cache::instance(); if ($cache) { $key = 'statusnet:stomp:message-retries:' . $msgId; $count = $cache->increment($key); diff --git a/lib/theme.php b/lib/theme.php index a9d0cbc84d..5caa046c20 100644 --- a/lib/theme.php +++ b/lib/theme.php @@ -38,7 +38,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * Themes are directories with some expected sub-directories and files * in them. They're found in either local/theme (for locally-installed themes) * or theme/ subdir of installation dir. - * + * * Note that the 'local' directory can be overridden as $config['local']['path'] * and $config['local']['dir'] etc. * @@ -51,9 +51,9 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class Theme { + var $name = null; var $dir = null; var $path = null; @@ -64,12 +64,16 @@ class Theme * * @param string $name Name of the theme; defaults to config value */ - function __construct($name=null) { if (empty($name)) { $name = common_config('site', 'theme'); } + if (!self::validName($name)) { + // TRANS: Server exception displayed if a theme name was invalid. + throw new ServerException(_('Invalid theme name.')); + } + $this->name = $name; // Check to see if it's in the local dir @@ -90,7 +94,6 @@ class Theme $fulldir = $instroot.'/'.$name; if (file_exists($fulldir) && is_dir($fulldir)) { - $this->dir = $fulldir; $this->path = $this->relativeThemePath('theme', 'theme', $name); } @@ -99,25 +102,57 @@ class Theme /** * Build a full URL to the given theme's base directory, possibly * using an offsite theme server path. - * + * * @param string $group configuration section name to pull paths from * @param string $fallbackSubdir default subdirectory under INSTALLDIR * @param string $name theme name - * + * * @return string URL - * + * * @todo consolidate code with that for other customizable paths */ - protected function relativeThemePath($group, $fallbackSubdir, $name) { - $path = common_config($group, 'path'); + if (StatusNet::isHTTPS()) { + $sslserver = common_config($group, 'sslserver'); - if (empty($path)) { - $path = common_config('site', 'path') . '/'; - if ($fallbackSubdir) { - $path .= $fallbackSubdir . '/'; + if (empty($sslserver)) { + if (is_string(common_config('site', 'sslserver')) && + mb_strlen(common_config('site', 'sslserver')) > 0) { + $server = common_config('site', 'sslserver'); + } else if (common_config('site', 'server')) { + $server = common_config('site', 'server'); + } + $path = common_config('site', 'path') . '/'; + if ($fallbackSubdir) { + $path .= $fallbackSubdir . '/'; + } + } else { + $server = $sslserver; + $path = common_config($group, 'sslpath'); + if (empty($path)) { + $path = common_config($group, 'path'); + } } + + $protocol = 'https'; + } else { + $path = common_config($group, 'path'); + + if (empty($path)) { + $path = common_config('site', 'path') . '/'; + if ($fallbackSubdir) { + $path .= $fallbackSubdir . '/'; + } + } + + $server = common_config($group, 'server'); + + if (empty($server)) { + $server = common_config('site', 'server'); + } + + $protocol = 'http'; } if ($path[strlen($path)-1] != '/') { @@ -128,27 +163,7 @@ class Theme $path = '/'.$path; } - $server = common_config($group, 'server'); - - if (empty($server)) { - $server = common_config('site', 'server'); - } - - $ssl = common_config($group, 'ssl'); - - if (is_null($ssl)) { // null -> guess - if (common_config('site', 'ssl') == 'always' && - !common_config($group, 'server')) { - $ssl = true; - } else { - $ssl = false; - } - } - - $protocol = ($ssl) ? 'https' : 'http'; - - $path = $protocol . '://'.$server.$path.$name; - return $path; + return $protocol.'://'.$server.$path.$name; } /** @@ -158,7 +173,6 @@ class Theme * * @return string full pathname, like /var/www/mublog/theme/default/logo.png */ - function getFile($relative) { return $this->dir.'/'.$relative; @@ -171,12 +185,63 @@ class Theme * * @return string full URL, like 'http://example.com/theme/default/logo.png' */ - function getPath($relative) { return $this->path.'/'.$relative; } + /** + * Fetch a list of other themes whose CSS needs to be pulled in before + * this theme's, based on following the theme.ini 'include' settings. + * (May be empty if this theme has no include dependencies.) + * + * @return array of strings with theme names + */ + function getDeps() + { + $chain = $this->doGetDeps(array($this->name)); + array_pop($chain); // Drop us back off + return $chain; + } + + protected function doGetDeps($chain) + { + $data = $this->getMetadata(); + if (!empty($data['include'])) { + $include = $data['include']; + + // Protect against cycles! + if (!in_array($include, $chain)) { + try { + $theme = new Theme($include); + array_unshift($chain, $include); + return $theme->doGetDeps($chain); + } catch (Exception $e) { + common_log(LOG_ERR, + "Exception while fetching theme dependencies " . + "for $this->name: " . $e->getMessage()); + } + } + } + return $chain; + } + + /** + * Pull data from the theme's theme.ini file. + * @fixme calling getFile will fall back to default theme, this may be unsafe. + * + * @return associative array of strings + */ + function getMetadata() + { + $iniFile = $this->getFile('theme.ini'); + if (file_exists($iniFile)) { + return parse_ini_file($iniFile); + } else { + return array(); + } + } + /** * Gets the full path of a file in a theme dir based on its relative name * @@ -185,7 +250,6 @@ class Theme * * @return string File path to the theme file */ - static function file($relative, $name=null) { $theme = new Theme($name); @@ -200,7 +264,6 @@ class Theme * * @return string URL of the file */ - static function path($relative, $name=null) { $theme = new Theme($name); @@ -212,7 +275,6 @@ class Theme * * @return array list of available theme names */ - static function listAvailable() { $local = self::subdirsOf(self::localRoot()); @@ -232,7 +294,6 @@ class Theme * * @return array relative filenames of subdirs, or empty array */ - protected static function subdirsOf($dir) { $subdirs = array(); @@ -257,7 +318,6 @@ class Theme * * @return string local root dir for themes */ - protected static function localRoot() { $basedir = common_config('local', 'dir'); @@ -274,7 +334,6 @@ class Theme * * @return string root dir for StatusNet themes */ - protected static function installRoot() { $instroot = common_config('theme', 'dir'); @@ -285,4 +344,9 @@ class Theme return $instroot; } + + static function validName($name) + { + return preg_match('/^[a-z0-9][a-z0-9_-]*$/i', $name); + } } diff --git a/lib/themeuploader.php b/lib/themeuploader.php index 370965db08..b7b14d7b9e 100644 --- a/lib/themeuploader.php +++ b/lib/themeuploader.php @@ -128,8 +128,16 @@ class ThemeUploader continue; } - // Check the directory structure... + // Is this a safe or skippable file? $path = pathinfo($name); + if ($this->skippable($path['filename'], $path['extension'])) { + // Documentation and such... booooring + continue; + } else { + $this->validateFile($path['filename'], $path['extension']); + } + + // Check the directory structure... $dirs = explode('/', $path['dirname']); $baseDir = array_shift($dirs); if ($commonBaseDir === false) { @@ -144,14 +152,6 @@ class ThemeUploader $this->validateFileOrFolder($dir); } - // Is this a safe or skippable file? - if ($this->skippable($path['filename'], $path['extension'])) { - // Documentation and such... booooring - continue; - } else { - $this->validateFile($path['filename'], $path['extension']); - } - $fullPath = $dirs; $fullPath[] = $path['basename']; $localFile = implode('/', $fullPath); @@ -163,9 +163,10 @@ class ThemeUploader $estSize = $blockSize * max(1, intval(ceil($size / $blockSize))); $totalSize += $estSize; if ($totalSize > $sizeLimit) { - $msg = sprintf(_("Uploaded theme is too large; " . - "must be less than %d bytes uncompressed."), - $sizeLimit); + $msg = sprintf(_m('Uploaded theme is too large; must be less than %d byte uncompressed.', + 'Uploaded theme is too large; must be less than %d bytes uncompressed.', + $sizeLimit), + $sizeLimit); throw new ClientException($msg); } @@ -180,39 +181,64 @@ class ThemeUploader } } + /** + * @fixme Probably most unrecognized files should just be skipped... + */ protected function skippable($filename, $ext) { - $skip = array('txt', 'rtf', 'doc', 'docx', 'odt'); + $skip = array('txt', 'html', 'rtf', 'doc', 'docx', 'odt', 'xcf'); if (strtolower($filename) == 'readme') { return true; } if (in_array(strtolower($ext), $skip)) { return true; } + if ($filename == '' || substr($filename, 0, 1) == '.') { + // Skip Unix-style hidden files + return true; + } + if ($filename == '__MACOSX') { + // Skip awful metadata files Mac OS X slips in for you. + // Thanks Apple! + return true; + } return false; } protected function validateFile($filename, $ext) { $this->validateFileOrFolder($filename); - $this->validateExtension($ext); + $this->validateExtension($filename, $ext); // @fixme validate content } protected function validateFileOrFolder($name) { - if (!preg_match('/^[a-z0-9_-]+$/i', $name)) { + if (!preg_match('/^[a-z0-9_\.-]+$/i', $name)) { + common_log(LOG_ERR, "Bad theme filename: $name"); $msg = _("Theme contains invalid file or folder name. " . "Stick with ASCII letters, digits, underscore, and minus sign."); throw new ClientException($msg); } + if (preg_match('/\.(php|cgi|asp|aspx|js|vb)\w/i', $name)) { + common_log(LOG_ERR, "Unsafe theme filename: $name"); + $msg = _("Theme contains unsafe file extension names; may be unsafe."); + throw new ClientException($msg); + } return true; } - protected function validateExtension($ext) + protected function validateExtension($base, $ext) { - $allowed = array('css', 'png', 'gif', 'jpg', 'jpeg'); + $allowed = array('css', // CSS may need validation + 'png', 'gif', 'jpg', 'jpeg', + 'svg', // SVG images/fonts may need validation + 'ttf', 'eot', 'woff'); if (!in_array(strtolower($ext), $allowed)) { + if ($ext == 'ini' && $base == 'theme') { + // theme.ini exception + return true; + } $msg = sprintf(_("Theme contains file of type '.%s', " . "which is not allowed."), $ext); diff --git a/lib/uapplugin.php b/lib/uapplugin.php index ef35bafbfb..26d6a72d89 100644 --- a/lib/uapplugin.php +++ b/lib/uapplugin.php @@ -51,7 +51,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @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 UAPPlugin extends Plugin { public $mediumRectangle = null; @@ -66,7 +65,6 @@ abstract class UAPPlugin extends Plugin * * @return boolean hook flag */ - function onEndShowStatusNetStyles($action) { // XXX: allow override by theme @@ -81,7 +79,6 @@ abstract class UAPPlugin extends Plugin * * @return boolean hook flag */ - function onStartShowAside($action) { if (!is_null($this->mediumRectangle)) { @@ -95,6 +92,24 @@ abstract class UAPPlugin extends Plugin $action->elementEnd('div'); } + // XXX: Hack to force ads to show on single-notice pages + + if (!is_null($this->rectangle) && + $action->trimmed('action') == 'shownotice') { + + $action->elementStart('div', array('id' => 'aside_primary', + 'class' => 'aside')); + + if (Event::handle('StartShowSections', array($action))) { + $action->showSections(); + Event::handle('EndShowSections', array($action)); + } + + $action->elementEnd('div'); + + return false; + } + return true; } @@ -126,7 +141,6 @@ abstract class UAPPlugin extends Plugin * * @return boolean hook flag */ - function onStartShowSections($action) { if (!is_null($this->rectangle)) { @@ -147,7 +161,6 @@ abstract class UAPPlugin extends Plugin * * @return boolean hook flag */ - function onEndShowAside($action) { if (!is_null($this->wideSkyscraper)) { @@ -169,7 +182,6 @@ abstract class UAPPlugin extends Plugin * * @return void */ - abstract protected function showMediumRectangle($action); /** @@ -179,7 +191,6 @@ abstract class UAPPlugin extends Plugin * * @return void */ - abstract protected function showRectangle($action); /** @@ -189,7 +200,6 @@ abstract class UAPPlugin extends Plugin * * @return void */ - abstract protected function showWideSkyscraper($action); /** @@ -199,6 +209,5 @@ abstract class UAPPlugin extends Plugin * * @return void */ - abstract protected function showLeaderboard($action); } diff --git a/lib/unblockform.php b/lib/unblockform.php index 2a444f7cd0..8daad3c92b 100644 --- a/lib/unblockform.php +++ b/lib/unblockform.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET')) { * * @see BlockForm */ - class UnblockForm extends ProfileActionForm { /** @@ -52,7 +51,6 @@ class UnblockForm extends ProfileActionForm * * @return string Name of the action, lowercased. */ - function target() { return 'unblock'; @@ -63,10 +61,10 @@ class UnblockForm extends ProfileActionForm * * @return string Title of the form, internationalized */ - function title() { - return _('Unblock'); + // TRANS: Title for the form to unblock a user. + return _m('TITLE','Unblock'); } /** @@ -74,9 +72,9 @@ class UnblockForm extends ProfileActionForm * * @return string description of the form, internationalized */ - function description() { + // TRANS: Description of the form to unblock a user. return _('Unblock this user'); } } diff --git a/lib/useractivitystream.php b/lib/useractivitystream.php new file mode 100644 index 0000000000..0fc315e26e --- /dev/null +++ b/lib/useractivitystream.php @@ -0,0 +1,151 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010 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 <http://www.gnu.org/licenses/>. + */ + +/** + * Class for activity streams + * + * Includes faves, notices, and subscriptions. + * + * We extend atomusernoticefeed since it does some nice setup for us. + * + */ + +class UserActivityStream extends AtomUserNoticeFeed +{ + function __construct($user, $indent = true) + { + parent::__construct($user, null, $indent); + + $subscriptions = $this->getSubscriptions(); + $subscribers = $this->getSubscribers(); + $groups = $this->getGroups(); + $faves = $this->getFaves(); + $notices = $this->getNotices(); + + $objs = array_merge($subscriptions, $subscribers, $groups, $faves, $notices); + + // Sort by create date + + usort($objs, 'UserActivityStream::compareObject'); + + foreach ($objs as $obj) { + $act = $obj->asActivity(); + // Only show the author sub-element if it's different from default user + $str = $act->asString(false, ($act->actor->id != $this->user->uri)); + $this->addEntryRaw($str); + } + } + + function compareObject($a, $b) + { + $ac = strtotime((empty($a->created)) ? $a->modified : $a->created); + $bc = strtotime((empty($b->created)) ? $b->modified : $b->created); + + return (($ac == $bc) ? 0 : (($ac < $bc) ? 1 : -1)); + } + + function getSubscriptions() + { + $subs = array(); + + $sub = new Subscription(); + + $sub->subscriber = $this->user->id; + + if ($sub->find()) { + while ($sub->fetch()) { + if ($sub->subscribed != $this->user->id) { + $subs[] = clone($sub); + } + } + } + + return $subs; + } + + function getSubscribers() + { + $subs = array(); + + $sub = new Subscription(); + + $sub->subscribed = $this->user->id; + + if ($sub->find()) { + while ($sub->fetch()) { + if ($sub->subscriber != $this->user->id) { + $subs[] = clone($sub); + } + } + } + + return $subs; + } + + function getFaves() + { + $faves = array(); + + $fave = new Fave(); + + $fave->user_id = $this->user->id; + + if ($fave->find()) { + while ($fave->fetch()) { + $faves[] = clone($fave); + } + } + + return $faves; + } + + function getNotices() + { + $notices = array(); + + $notice = new Notice(); + + $notice->profile_id = $this->user->id; + + if ($notice->find()) { + while ($notice->fetch()) { + $notices[] = clone($notice); + } + } + + return $notices; + } + + function getGroups() + { + $groups = array(); + + $gm = new Group_member(); + + $gm->profile_id = $this->user->id; + + if ($gm->find()) { + while ($gm->fetch()) { + $groups[] = clone($gm); + } + } + + return $groups; + } +} diff --git a/lib/usernoprofileexception.php b/lib/usernoprofileexception.php index 6744d2529d..954d31b0d1 100644 --- a/lib/usernoprofileexception.php +++ b/lib/usernoprofileexception.php @@ -55,7 +55,9 @@ class UserNoProfileException extends ServerException { $this->user = $user; - $message = sprintf(_("User %s (%d) has no profile record."), + // TRANS: Exception text shown when no profile can be found for a user. + // TRANS: %1$s is a user nickname, $2$d is a user ID (number). + $message = sprintf(_('User %1$s (%2$d) has no profile record.'), $user->nickname, $user->id); parent::__construct($message); diff --git a/lib/userprofile.php b/lib/userprofile.php index ca060842b6..2813f735ea 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -98,6 +98,10 @@ class UserProfile extends Widget if (Event::handle('StartProfilePageAvatar', array($this->out, $this->profile))) { $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); + if (!$avatar) { + // hack for remote Twitter users: no 96px, but large Twitter size is 73px + $avatar = $this->profile->getAvatar(73); + } $this->out->elementStart('dl', 'entity_depiction'); $this->out->element('dt', null, _('Photo')); @@ -109,10 +113,8 @@ class UserProfile extends Widget 'alt' => $this->profile->nickname)); $this->out->elementEnd('dd'); - $user = User::staticGet('id', $this->profile->id); - $cur = common_current_user(); - if ($cur && $cur->id == $user->id) { + if ($cur && $cur->id == $this->profile->id) { $this->out->elementStart('dd'); $this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar')); $this->out->elementEnd('dd'); @@ -278,7 +280,7 @@ class UserProfile extends Widget } $this->out->elementEnd('li'); - if ($cur->mutuallySubscribed($this->user)) { + if ($cur->mutuallySubscribed($this->profile)) { // message @@ -290,7 +292,7 @@ class UserProfile extends Widget // nudge - if ($this->user->email && $this->user->emailnotifynudge) { + if ($this->user && $this->user->email && $this->user->emailnotifynudge) { $this->out->elementStart('li', 'entity_nudge'); $nf = new NudgeForm($this->out, $this->user); $nf->show(); @@ -319,6 +321,9 @@ class UserProfile extends Widget } $this->out->elementEnd('li'); + // Some actions won't be applicable to non-local users. + $isLocal = !empty($this->user); + if ($cur->hasRight(Right::SANDBOXUSER) || $cur->hasRight(Right::SILENCEUSER) || $cur->hasRight(Right::DELETEUSER)) { @@ -327,7 +332,7 @@ class UserProfile extends Widget $this->out->elementStart('ul'); if ($cur->hasRight(Right::SANDBOXUSER)) { $this->out->elementStart('li', 'entity_sandbox'); - if ($this->user->isSandboxed()) { + if ($this->profile->isSandboxed()) { $usf = new UnSandboxForm($this->out, $this->profile, $r2args); $usf->show(); } else { @@ -339,7 +344,7 @@ class UserProfile extends Widget if ($cur->hasRight(Right::SILENCEUSER)) { $this->out->elementStart('li', 'entity_silence'); - if ($this->user->isSilenced()) { + if ($this->profile->isSilenced()) { $usf = new UnSilenceForm($this->out, $this->profile, $r2args); $usf->show(); } else { @@ -349,7 +354,7 @@ class UserProfile extends Widget $this->out->elementEnd('li'); } - if ($cur->hasRight(Right::DELETEUSER)) { + if ($isLocal && $cur->hasRight(Right::DELETEUSER)) { $this->out->elementStart('li', 'entity_delete'); $df = new DeleteUserForm($this->out, $this->profile, $r2args); $df->show(); @@ -359,7 +364,7 @@ class UserProfile extends Widget $this->out->elementEnd('li'); } - if ($cur->hasRight(Right::GRANTROLE)) { + if ($isLocal && $cur->hasRight(Right::GRANTROLE)) { $this->out->elementStart('li', 'entity_role'); $this->out->element('p', null, _('User role')); $this->out->elementStart('ul'); @@ -387,7 +392,7 @@ class UserProfile extends Widget $r2args['action'] = $action; $this->out->elementStart('li', "entity_role_$role"); - if ($this->user->hasRole($role)) { + if ($this->profile->hasRole($role)) { $rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args); $rf->show(); } else { diff --git a/lib/util.php b/lib/util.php index f187926b59..3d4adcf4bf 100644 --- a/lib/util.php +++ b/lib/util.php @@ -19,15 +19,18 @@ /* XXX: break up into separate modules (HTTP, user, files) */ -// Show a server error - +/** + * Show a server error. + */ function common_server_error($msg, $code=500) { $err = new ServerErrorAction($msg, $code); $err->showPage(); } -// Show a user error +/** + * Show a user error. + */ function common_user_error($msg, $code=400) { $err = new ClientErrorAction($msg, $code); @@ -37,7 +40,7 @@ function common_user_error($msg, $code=400) /** * This should only be used at setup; processes switching languages * to send text to other users should use common_switch_locale(). - * + * * @param string $language Locale language code (optional; empty uses * current user's preference or site default) * @return mixed success @@ -61,10 +64,10 @@ function common_init_locale($language=null) /** * Initialize locale and charset settings and gettext with our message catalog, * using the current user's language preference or the site default. - * + * * This should generally only be run at framework initialization; code switching * languages at runtime should call common_switch_language(). - * + * * @access private */ function common_init_language() @@ -142,7 +145,6 @@ function common_switch_locale($language=null) textdomain("statusnet"); } - function common_timezone() { if (common_logged_in()) { @@ -204,8 +206,10 @@ function common_language() // Finally, if none of the above worked, use the site's default... return common_config('site', 'language'); } -// salted, hashed passwords are stored in the DB +/** + * Salted, hashed passwords are stored in the DB. + */ function common_munge_password($password, $id) { if (is_object($id) || is_object($password)) { @@ -216,8 +220,9 @@ function common_munge_password($password, $id) return md5($password . $id); } -// check if a username exists and has matching password - +/** + * Check if a username exists and has matching password. + */ function common_check_user($nickname, $password) { // empty nickname always unacceptable @@ -244,7 +249,9 @@ function common_check_user($nickname, $password) return $authenticatedUser; } -// is the current user logged in? +/** + * Is the current user logged in? + */ function common_logged_in() { return (!is_null(common_current_user())); @@ -290,12 +297,10 @@ function common_ensure_session() // 3) null to clear // Initialize to false; set to null if none found - $_cur = false; function common_set_user($user) { - global $_cur; if (is_null($user) && common_have_session()) { @@ -337,7 +342,8 @@ function common_set_cookie($key, $value, $expiration=0) $value, $expiration, $cookiepath, - $server); + $server, + common_config('site', 'ssl')=='always'); } define('REMEMBERME', 'rememberme'); @@ -381,7 +387,6 @@ function common_rememberme($user=null) function common_remembered_user() { - $user = null; $packed = isset($_COOKIE[REMEMBERME]) ? $_COOKIE[REMEMBERME] : null; @@ -443,14 +448,17 @@ function common_remembered_user() return $user; } -// must be called with a valid user! - +/** + * must be called with a valid user! + */ function common_forgetme() { common_set_cookie(REMEMBERME, '', 0); } -// who is the current user? +/** + * Who is the current user? + */ function common_current_user() { global $_cur; @@ -486,10 +494,11 @@ function common_current_user() return $_cur; } -// Logins that are 'remembered' aren't 'real' -- they're subject to -// cookie-stealing. So, we don't let them do certain things. New reg, -// OpenID, and password logins _are_ real. - +/** + * Logins that are 'remembered' aren't 'real' -- they're subject to + * cookie-stealing. So, we don't let them do certain things. New reg, + * OpenID, and password logins _are_ real. + */ function common_real_login($real=true) { common_ensure_session(); @@ -501,14 +510,52 @@ function common_is_real_login() return common_logged_in() && $_SESSION['real_login']; } -// get canonical version of nickname for comparison -function common_canonical_nickname($nickname) +/** + * Get a hash portion for HTTP caching Etags and such including + * info on the current user's session. If login/logout state changes, + * or we've changed accounts, or we've renamed the current user, + * we'll get a new hash value. + * + * This should not be considered secure information. + * + * @param User $user (optional; uses common_current_user() if left out) + * @return string + */ +function common_user_cache_hash($user=false) { - // XXX: UTF-8 canonicalization (like combining chars) - return strtolower($nickname); + if ($user === false) { + $user = common_current_user(); + } + if ($user) { + return crc32($user->id . ':' . $user->nickname); + } else { + return '0'; + } } -// get canonical version of email for comparison +/** + * get canonical version of nickname for comparison + * + * @param string $nickname + * @return string + * + * @throws NicknameException on invalid input + * @deprecated call Nickname::normalize() directly. + */ +function common_canonical_nickname($nickname) +{ + return Nickname::normalize($nickname); +} + +/** + * get canonical version of email for comparison + * + * @fixme actually normalize + * @fixme reject invalid input + * + * @param string $email + * @return string + */ function common_canonical_email($email) { // XXX: canonicalize UTF-8 @@ -516,15 +563,33 @@ function common_canonical_email($email) return $email; } +/** + * Partial notice markup rendering step: build links to !group references. + * + * @param string $text partially rendered HTML + * @param Notice $notice in whose context we're working + * @return string partially rendered HTML + */ function common_render_content($text, $notice) { $r = common_render_text($text); $id = $notice->profile_id; $r = common_linkify_mentions($r, $notice); - $r = preg_replace('/(^|[\s\.\,\:\;]+)!([A-Za-z0-9]{1,64})/e', "'\\1!'.common_group_link($id, '\\2')", $r); + $r = preg_replace('/(^|[\s\.\,\:\;]+)!(' . Nickname::DISPLAY_FMT . ')/e', + "'\\1!'.common_group_link($id, '\\2')", $r); return $r; } +/** + * Finds @-mentions within the partially-rendered text section and + * turns them into live links. + * + * Should generally not be called except from common_render_content(). + * + * @param string $text partially-rendered HTML + * @param Notice $notice in-progress or complete Notice object for context + * @return string partially-rendered HTML + */ function common_linkify_mentions($text, $notice) { $mentions = common_find_mentions($text, $notice); @@ -581,6 +646,21 @@ function common_linkify_mention($mention) return $output; } +/** + * Find @-mentions in the given text, using the given notice object as context. + * References will be resolved with common_relative_profile() against the user + * who posted the notice. + * + * Note the return data format is internal, to be used for building links and + * such. Should not be used directly; rather, call common_linkify_mentions(). + * + * @param string $text + * @param Notice $notice notice in whose context we're building links + * + * @return array + * + * @access private + */ function common_find_mentions($text, $notice) { $mentions = array(); @@ -592,9 +672,7 @@ function common_find_mentions($text, $notice) } if (Event::handle('StartFindMentions', array($sender, $text, &$mentions))) { - // Get the context of the original notice, if any - $originalAuthor = null; $originalNotice = null; $originalMentions = array(); @@ -617,40 +695,30 @@ function common_find_mentions($text, $notice) } } - preg_match_all('/^T ([A-Z0-9]{1,64}) /', - $text, - $tmatches, - PREG_OFFSET_CAPTURE); - - preg_match_all('/(?:^|\s+)@(['.NICKNAME_FMT.']{1,64})/', - $text, - $atmatches, - PREG_OFFSET_CAPTURE); - - $matches = array_merge($tmatches[1], $atmatches[1]); + $matches = common_find_mentions_raw($text); foreach ($matches as $match) { - - $nickname = common_canonical_nickname($match[0]); + try { + $nickname = Nickname::normalize($match[0]); + } catch (NicknameException $e) { + // Bogus match? Drop it. + continue; + } // Try to get a profile for this nickname. // Start with conversation context, then go to // sender context. if (!empty($originalAuthor) && $originalAuthor->nickname == $nickname) { - $mentioned = $originalAuthor; - } else if (!empty($originalMentions) && array_key_exists($nickname, $originalMentions)) { - $mentioned = $originalMentions[$nickname]; } else { $mentioned = common_relative_profile($sender, $nickname); } if (!empty($mentioned)) { - $user = User::staticGet('id', $mentioned->id); if ($user) { @@ -701,6 +769,31 @@ function common_find_mentions($text, $notice) return $mentions; } +/** + * Does the actual regex pulls to find @-mentions in text. + * Should generally not be called directly; for use in common_find_mentions. + * + * @param string $text + * @return array of PCRE match arrays + */ +function common_find_mentions_raw($text) +{ + $tmatches = array(); + preg_match_all('/^T (' . Nickname::DISPLAY_FMT . ') /', + $text, + $tmatches, + PREG_OFFSET_CAPTURE); + + $atmatches = array(); + preg_match_all('/(?:^|\s+)@(' . Nickname::DISPLAY_FMT . ')\b/', + $text, + $atmatches, + PREG_OFFSET_CAPTURE); + + $matches = array_merge($tmatches[1], $atmatches[1]); + return $matches; +} + function common_render_text($text) { $r = htmlspecialchars($text); @@ -712,7 +805,14 @@ function common_render_text($text) return $r; } -function common_replace_urls_callback($text, $callback, $notice_id = null) { +/** + * Find links in the given text and pass them to the given callback function. + * + * @param string $text + * @param function($text, $arg) $callback: return replacement text + * @param mixed $arg: optional argument will be passed on to the callback + */ +function common_replace_urls_callback($text, $callback, $arg = null) { // Start off with a regex $regex = '#'. '(?:^|[\s\<\>\(\)\[\]\{\}\\\'\\\";]+)(?![\@\!\#])'. @@ -753,10 +853,21 @@ function common_replace_urls_callback($text, $callback, $notice_id = null) { '#ixu'; //preg_match_all($regex,$text,$matches); //print_r($matches); - return preg_replace_callback($regex, curry('callback_helper',$callback,$notice_id) ,$text); + return preg_replace_callback($regex, curry('callback_helper',$callback,$arg) ,$text); } -function callback_helper($matches, $callback, $notice_id) { +/** + * Intermediate callback for common_replace_links(), helps resolve some + * ambiguous link forms before passing on to the final callback. + * + * @param array $matches + * @param callable $callback + * @param mixed $arg optional argument to pass on as second param to callback + * @return string + * + * @access private + */ +function callback_helper($matches, $callback, $arg=null) { $url=$matches[1]; $left = strpos($matches[0],$url); $right = $left+strlen($url); @@ -799,11 +910,7 @@ function callback_helper($matches, $callback, $notice_id) { } }while($original_url!=$url); - if(empty($notice_id)){ - $result = call_user_func_array($callback, array($url)); - }else{ - $result = call_user_func_array($callback, array(array($url,$notice_id)) ); - } + $result = call_user_func_array($callback, array($url, $arg)); return substr($matches[0],0,$left) . $result . substr($matches[0],$right); } @@ -839,7 +946,7 @@ function common_linkify($url) { $canon = File_redirection::_canonUrl($url); - $longurl_data = File_redirection::where($canon); + $longurl_data = File_redirection::where($canon, common_config('attachments', 'process_links')); if (is_array($longurl_data)) { $longurl = $longurl_data['url']; } elseif (is_string($longurl_data)) { @@ -851,7 +958,8 @@ function common_linkify($url) { $longurl = $url; } } - $attrs = array('href' => $canon, 'title' => $longurl, 'rel' => 'external'); + + $attrs = array('href' => $canon, 'title' => $longurl); $is_attachment = false; $attachment_id = null; @@ -862,12 +970,14 @@ function common_linkify($url) { $f = File::staticGet('url', $longurl); if (empty($f)) { - // XXX: this writes to the database. :< - $f = File::processNew($longurl); + if (common_config('attachments', 'process_links')) { + // XXX: this writes to the database. :< + $f = File::processNew($longurl); + } } if (!empty($f)) { - if ($f->getEnclosure() || File_oembed::staticGet('file_id',$f->id)) { + if ($f->getEnclosure()) { $is_attachment = true; $attachment_id = $f->id; @@ -887,10 +997,36 @@ function common_linkify($url) { $attrs['id'] = "attachment-{$attachment_id}"; } + // Whether to nofollow + + $nf = common_config('nofollow', 'external'); + + if ($nf == 'never') { + $attrs['rel'] = 'external'; + } else { + $attrs['rel'] = 'nofollow external'; + } + return XMLStringer::estring('a', $attrs, $url); } -function common_shorten_links($text, $always = false) +/** + * Find and shorten links in a given chunk of text if it's longer than the + * configured notice content limit (or unconditionally). + * + * Side effects: may save file and file_redirection records for referenced URLs. + * + * Pass the $user option or call $user->shortenLinks($text) to ensure the proper + * user's options are used; otherwise the current web session user's setitngs + * will be used or ur1.ca if there is no active web login. + * + * @param string $text + * @param boolean $always (optional) + * @param User $user (optional) + * + * @return string + */ +function common_shorten_links($text, $always = false, User $user=null) { common_debug("common_shorten_links() called"); @@ -902,13 +1038,40 @@ function common_shorten_links($text, $always = false) if ($always || mb_strlen($text) > $maxLength) { common_debug("Forcing shortening"); - return common_replace_urls_callback($text, array('File_redirection', 'forceShort')); + return common_replace_urls_callback($text, array('File_redirection', 'forceShort'), $user); } else { common_debug("Not forcing shortening"); - return common_replace_urls_callback($text, array('File_redirection', 'makeShort')); + return common_replace_urls_callback($text, array('File_redirection', 'makeShort'), $user); } } +/** + * Very basic stripping of invalid UTF-8 input text. + * + * @param string $str + * @return mixed string or null if invalid input + * + * @todo ideally we should drop bad chars, and maybe do some of the checks + * from common_xml_safe_str. But we can't strip newlines, etc. + * @todo Unicode normalization might also be useful, but not needed now. + */ +function common_validate_utf8($str) +{ + // preg_replace will return NULL on invalid UTF-8 input. + // + // Note: empty regex //u also caused NULL return on some + // production machines, but none of our test machines. + // + // This should be replaced with a more reliable check. + return preg_replace('/\x00/u', '', $str); +} + +/** + * Make sure an arbitrary string is safe for output in XML as a single line. + * + * @param string $str + * @return string + */ function common_xml_safe_str($str) { // Replace common eol and extra whitespace input chars @@ -940,8 +1103,9 @@ function common_tag_link($tag) $canonical = common_canonical_tag($tag); if (common_config('singleuser', 'enabled')) { // regular TagAction isn't set up in 1user mode + $nickname = User::singleUserNickname(); $url = common_local_url('showstream', - array('nickname' => common_config('singleuser', 'nickname'), + array('nickname' => $nickname, 'tag' => $canonical)); } else { $url = common_local_url('tag', array('tag' => $canonical)); @@ -966,6 +1130,13 @@ function common_valid_profile_tag($str) return preg_match('/^[A-Za-z0-9_\-\.]{1,64}$/', $str); } +/** + * + * @param <type> $sender_id + * @param <type> $nickname + * @return <type> + * @access private + */ function common_group_link($sender_id, $nickname) { $sender = Profile::staticGet($sender_id); @@ -974,7 +1145,7 @@ function common_group_link($sender_id, $nickname) $attrs = array('href' => $group->permalink(), 'class' => 'url'); if (!empty($group->fullname)) { - $attrs['title'] = $group->fullname . ' (' . $group->nickname . ')'; + $attrs['title'] = $group->getFancyName(); } $xs = new XMLStringer(); $xs->elementStart('span', 'vcard'); @@ -988,13 +1159,37 @@ function common_group_link($sender_id, $nickname) } } +/** + * Resolve an ambiguous profile nickname reference, checking in following order: + * - profiles that $sender subscribes to + * - profiles that subscribe to $sender + * - local user profiles + * + * WARNING: does not validate or normalize $nickname -- MUST BE PRE-VALIDATED + * OR THERE MAY BE A RISK OF SQL INJECTION ATTACKS. THIS FUNCTION DOES NOT + * ESCAPE SQL. + * + * @fixme validate input + * @fixme escape SQL + * @fixme fix or remove mystery third parameter + * @fixme is $sender a User or Profile? + * + * @param <type> $sender the user or profile in whose context we're looking + * @param string $nickname validated nickname of + * @param <type> $dt unused mystery parameter; in Notice reply-to handling a timestamp is passed. + * + * @return Profile or null + */ function common_relative_profile($sender, $nickname, $dt=null) { + // Will throw exception on invalid input. + $nickname = Nickname::normalize($nickname); + // Try to find profiles this profile is subscribed to that have this nickname $recipient = new Profile(); // XXX: use a join instead of a subquery - $recipient->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.$sender->id.' and subscribed = id)', 'AND'); - $recipient->whereAdd("nickname = '" . trim($nickname) . "'", 'AND'); + $recipient->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.intval($sender->id).' and subscribed = id)', 'AND'); + $recipient->whereAdd("nickname = '" . $recipient->escape($nickname) . "'", 'AND'); if ($recipient->find(true)) { // XXX: should probably differentiate between profiles with // the same name by date of most recent update @@ -1003,8 +1198,8 @@ function common_relative_profile($sender, $nickname, $dt=null) // Try to find profiles that listen to this profile and that have this nickname $recipient = new Profile(); // XXX: use a join instead of a subquery - $recipient->whereAdd('EXISTS (SELECT subscriber from subscription where subscribed = '.$sender->id.' and subscriber = id)', 'AND'); - $recipient->whereAdd("nickname = '" . trim($nickname) . "'", 'AND'); + $recipient->whereAdd('EXISTS (SELECT subscriber from subscription where subscribed = '.intval($sender->id).' and subscriber = id)', 'AND'); + $recipient->whereAdd("nickname = '" . $recipient->escape($nickname) . "'", 'AND'); if ($recipient->find(true)) { // XXX: should probably differentiate between profiles with // the same name by date of most recent update @@ -1045,8 +1240,17 @@ function common_local_url($action, $args=null, $params=null, $fragment=null, $ad function common_is_sensitive($action) { - static $sensitive = array('login', 'register', 'passwordsettings', - 'twittersettings', 'api'); + static $sensitive = array( + 'login', + 'register', + 'passwordsettings', + 'api', + 'ApiOauthRequestToken', + 'ApiOauthAccessToken', + 'ApiOauthAuthorize', + 'ApiOauthPin', + 'showapplication' + ); $ssl = null; if (Event::handle('SensitiveAction', array($action, &$ssl))) { @@ -1132,30 +1336,30 @@ function common_date_string($dt) // TRANS: Used in notices to indicate when the notice was made compared to now. return _('about a minute ago'); } else if ($diff < 3300) { - // XXX: should support plural. + $minutes = round($diff/60); // TRANS: Used in notices to indicate when the notice was made compared to now. - return sprintf(_('about %d minutes ago'), round($diff/60)); + return sprintf( ngettext('about one minute ago', 'about %d minutes ago', $minutes), $minutes); } else if ($diff < 5400) { // TRANS: Used in notices to indicate when the notice was made compared to now. return _('about an hour ago'); } else if ($diff < 22 * 3600) { - // XXX: should support plural. + $hours = round($diff/3600); // TRANS: Used in notices to indicate when the notice was made compared to now. - return sprintf(_('about %d hours ago'), round($diff/3600)); + return sprintf( ngettext('about one hour ago', 'about %d hours ago', $hours), $hours); } else if ($diff < 37 * 3600) { // TRANS: Used in notices to indicate when the notice was made compared to now. return _('about a day ago'); } else if ($diff < 24 * 24 * 3600) { - // XXX: should support plural. + $days = round($diff/(24*3600)); // TRANS: Used in notices to indicate when the notice was made compared to now. - return sprintf(_('about %d days ago'), round($diff/(24*3600))); + return sprintf( ngettext('about one day ago', 'about %d days ago', $days), $days); } else if ($diff < 46 * 24 * 3600) { // TRANS: Used in notices to indicate when the notice was made compared to now. return _('about a month ago'); } else if ($diff < 330 * 24 * 3600) { - // XXX: should support plural. + $months = round($diff/(30*24*3600)); // TRANS: Used in notices to indicate when the notice was made compared to now. - return sprintf(_('about %d months ago'), round($diff/(30*24*3600))); + return sprintf( ngettext('about one month ago', 'about %d months ago',$months), $months); } else if ($diff < 480 * 24 * 3600) { // TRANS: Used in notices to indicate when the notice was made compared to now. return _('about a year ago'); @@ -1253,11 +1457,6 @@ function common_redirect($url, $code=307) exit; } -function common_broadcast_notice($notice, $remote=false) -{ - // DO NOTHING! -} - // Stick the notice on the queue function common_enqueue_notice($notice) @@ -1312,8 +1511,9 @@ function common_profile_url($nickname) null, null, false); } -// Should make up a reasonable root URL - +/** + * Should make up a reasonable root URL + */ function common_root_url($ssl=false) { $url = common_path('', $ssl, false); @@ -1324,9 +1524,10 @@ function common_root_url($ssl=false) return $url; } -// returns $bytes bytes of random data as a hexadecimal string -// "good" here is a goal and not a guarantee - +/** + * returns $bytes bytes of random data as a hexadecimal string + * "good" here is a goal and not a guarantee + */ function common_good_rand($bytes) { // XXX: use random.org...? @@ -1362,13 +1563,13 @@ function common_mtrand($bytes) /** * Record the given URL as the return destination for a future * form submission, to be read by common_get_returnto(). - * + * * @param string $url - * + * * @fixme as a session-global setting, this can allow multiple forms * to conflict and overwrite each others' returnto destinations if * the user has multiple tabs or windows open. - * + * * Should refactor to index with a token or otherwise only pass the * data along its intended path. */ @@ -1381,13 +1582,13 @@ function common_set_returnto($url) /** * Fetch a return-destination URL previously recorded by * common_set_returnto(). - * + * * @return mixed URL string or null - * + * * @fixme as a session-global setting, this can allow multiple forms * to conflict and overwrite each others' returnto destinations if * the user has multiple tabs or windows open. - * + * * Should refactor to index with a token or otherwise only pass the * data along its intended path. */ @@ -1442,6 +1643,7 @@ function common_request_id() function common_log($priority, $msg, $filename=null) { if(Event::handle('StartLog', array(&$priority, &$msg, &$filename))){ + $msg = (empty($filename)) ? $msg : basename($filename) . ' - ' . $msg; $msg = '[' . common_request_id() . '] ' . $msg; $logfile = common_config('site', 'logfile'); if ($logfile) { @@ -1472,7 +1674,12 @@ function common_log_db_error(&$object, $verb, $filename=null) { $objstr = common_log_objstring($object); $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError'); - common_log(LOG_ERR, $last_error->message . '(' . $verb . ' on ' . $objstr . ')', $filename); + if (is_object($last_error)) { + $msg = $last_error->message; + } else { + $msg = 'Unknown error (' . var_export($last_error, true) . ')'; + } + common_log(LOG_ERR, $msg . '(' . $verb . ' on ' . $objstr . ')', $filename); } function common_log_objstring(&$object) @@ -1650,19 +1857,25 @@ function common_config($main, $sub) array_key_exists($sub, $config[$main])) ? $config[$main][$sub] : false; } +/** + * Pull arguments from a GET/POST/REQUEST array with first-level input checks: + * strips "magic quotes" slashes if necessary, and kills invalid UTF-8 strings. + * + * @param array $from + * @return array + */ function common_copy_args($from) { $to = array(); $strip = get_magic_quotes_gpc(); foreach ($from as $k => $v) { - if($strip) { - if(is_array($v)) { - $to[$k] = common_copy_args($v); - } else { - $to[$k] = stripslashes($v); - } + if(is_array($v)) { + $to[$k] = common_copy_args($v); } else { - $to[$k] = $v; + if ($strip) { + $v = stripslashes($v); + } + $to[$k] = strval(common_validate_utf8($v)); } } return $to; @@ -1800,21 +2013,6 @@ function common_session_token() return $_SESSION['token']; } -function common_cache_key($extra) -{ - return Cache::key($extra); -} - -function common_keyize($str) -{ - return Cache::keyize($str); -} - -function common_memcache() -{ - return Cache::instance(); -} - function common_license_terms($uri) { if(preg_match('/creativecommons.org\/licenses\/([^\/]+)/', $uri, $matches)) { @@ -1845,7 +2043,6 @@ function common_compatible_license($from, $to) */ function common_database_tablename($tablename) { - if(common_config('db','quote_identifiers')) { $tablename = '"'. $tablename .'"'; } @@ -1858,15 +2055,13 @@ function common_database_tablename($tablename) * or ur1.ca if configured, or not at all if no shortening is set up. * * @param string $long_url original URL + * @param User $user to specify a particular user's options * @param boolean $force Force shortening (used when notice is too long) - * * @return string may return the original URL if shortening failed * * @fixme provide a way to specify a particular shortener - * @fixme provide a way to specify to use a given user's shortening preferences */ - -function common_shorten_url($long_url, $force = false) +function common_shorten_url($long_url, User $user=null, $force = false) { common_debug("Shortening URL '$long_url' (force = $force)"); diff --git a/lib/webcolor.php b/lib/webcolor.php index 6fa603fa2a..7f264c6741 100644 --- a/lib/webcolor.php +++ b/lib/webcolor.php @@ -32,7 +32,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } class WebColor { - // XXX: Maybe make getters and setters for r,g,b values and tuples, // e.g.: to support this kinda CSS representation: rgb(255,0,0) // http://www.w3.org/TR/CSS21/syndata.html#color-units @@ -65,7 +64,6 @@ class WebColor { * * @return nothing */ - function parseColor($color) { if (is_numeric($color)) { @@ -90,13 +88,11 @@ class WebColor { * * @return nothing */ - function setNamedColor($name) { // XXX Implement this } - /** * Sets the RGB color values from a a hex tuple * @@ -104,7 +100,6 @@ class WebColor { * * @return nothing */ - function setHexColor($hexcolor) { if ($hexcolor[0] == '#') { @@ -120,7 +115,9 @@ class WebColor { $hexcolor[1].$hexcolor[1], $hexcolor[2].$hexcolor[2]); } else { - $errmsg = _('%s is not a valid color! Use 3 or 6 hex chars.'); + // TRANS: Validation error for a web colour. + // TRANS: %s is the provided (invalid) text for colour. + $errmsg = _('%s is not a valid color! Use 3 or 6 hex characters.'); throw new WebColorException(sprintf($errmsg, $hexcolor)); } @@ -137,7 +134,6 @@ class WebColor { * * @return nothing */ - function setIntColor($intcolor) { // We could do 32 bit and have an alpha channel because @@ -154,7 +150,6 @@ class WebColor { * * @return string */ - function hexValue() { $hexcolor = (strlen(dechex($this->red)) < 2 ? '0' : '' ) . @@ -165,7 +160,6 @@ class WebColor { dechex($this->blue); return strtoupper($hexcolor); - } /** @@ -176,7 +170,6 @@ class WebColor { * * @return int */ - function intValue() { $intcolor = 256 * 256 * $this->red + 256 * $this->green + $this->blue; @@ -188,5 +181,3 @@ class WebColor { class WebColorException extends Exception { } - -?> \ No newline at end of file diff --git a/plugins/OStatus/lib/xrd.php b/lib/xrd.php similarity index 88% rename from plugins/OStatus/lib/xrd.php rename to lib/xrd.php index a10b9f4272..9c6d9f3ab7 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/lib/xrd.php @@ -27,15 +27,14 @@ * @link http://status.net/ */ - class XRD { const XML_NS = 'http://www.w3.org/2000/xmlns/'; - + const XRD_NS = 'http://docs.oasis-open.org/ns/xri/xrd-1.0'; const HOST_META_NS = 'http://host-meta.net/xrd/1.0'; - + public $expires; public $subject; @@ -43,11 +42,11 @@ class XRD public $host; public $alias = array(); - + public $types = array(); - + public $links = array(); - + public static function parse($xml) { $xrd = new XRD(); @@ -61,11 +60,13 @@ class XRD error_reporting($old); if (!$ok) { - throw new Exception("Invalid XML"); + // TRANS: Exception. + throw new Exception(_m('Invalid XML.')); } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); if (!$xrd_element) { - throw new Exception("Invalid XML, missing XRD root"); + // TRANS: Exception. + throw new Exception(_m('Invalid XML, missing XRD root.')); } // Check for host-meta host @@ -86,7 +87,7 @@ class XRD case 'Subject': $xrd->subject = $node->nodeValue; break; - + case 'Alias': $xrd->alias[] = $node->nodeValue; break; @@ -114,7 +115,7 @@ class XRD if ($this->host) { $xs->element('hm:Host', array('xmlns:hm' => XRD::HOST_META_NS), $this->host); } - + if ($this->expires) { $xs->element('Expires', null, $this->expires); } @@ -129,17 +130,27 @@ class XRD foreach ($this->links as $link) { $titles = array(); + $properties = array(); if (isset($link['title'])) { $titles = $link['title']; unset($link['title']); } + if (isset($link['property'])) { + $properties = $link['property']; + unset($link['property']); + } $xs->elementStart('Link', $link); foreach ($titles as $title) { $xs->element('Title', null, $title); } + foreach ($properties as $property) { + $xs->element('Property', + array('type' => $property['type']), + $property['value']); + } $xs->elementEnd('Link'); } - + $xs->elementEnd('XRD'); return $xs->getString(); @@ -149,7 +160,7 @@ class XRD { return array(); } - + function parseLink($element) { $link = array(); @@ -169,4 +180,3 @@ class XRD return $link; } } - diff --git a/lib/xrdaction.php b/lib/xrdaction.php new file mode 100644 index 0000000000..855ed1ea89 --- /dev/null +++ b/lib/xrdaction.php @@ -0,0 +1,160 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package OStatusPlugin + * @maintainer James Walker <james@status.net> + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class XrdAction extends Action +{ + const PROFILEPAGE = 'http://webfinger.net/rel/profile-page'; + const UPDATESFROM = 'http://schemas.google.com/g/2010#updates-from'; + const HCARD = 'http://microformats.org/profile/hcard'; + + public $uri; + + public $user; + + public $xrd; + + function handle() + { + $nick = $this->user->nickname; + $profile = $this->user->getProfile(); + + if (empty($this->xrd)) { + $xrd = new XRD(); + } else { + $xrd = $this->xrd; + } + + if (empty($xrd->subject)) { + $xrd->subject = self::normalize($this->uri); + } + + if (Event::handle('StartXrdActionAliases', array(&$xrd, $this->user))) { + + // Possible aliases for the user + + $uris = array($this->user->uri, $profile->profileurl); + + // FIXME: Webfinger generation code should live somewhere on its own + + $path = common_config('site', 'path'); + + if (empty($path)) { + $uris[] = sprintf('acct:%s@%s', $nick, common_config('site', 'server')); + } + + foreach ($uris as $uri) { + if ($uri != $xrd->subject) { + $xrd->alias[] = $uri; + } + } + + Event::handle('EndXrdActionAliases', array(&$xrd, $this->user)); + } + + if (Event::handle('StartXrdActionLinks', array(&$xrd, $this->user))) { + + $xrd->links[] = array('rel' => self::PROFILEPAGE, + 'type' => 'text/html', + 'href' => $profile->profileurl); + + // hCard + $xrd->links[] = array('rel' => self::HCARD, + 'type' => 'text/html', + 'href' => common_local_url('hcard', array('nickname' => $nick))); + + // XFN + $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11', + 'type' => 'text/html', + 'href' => $profile->profileurl); + // FOAF + $xrd->links[] = array('rel' => 'describedby', + 'type' => 'application/rdf+xml', + 'href' => common_local_url('foaf', + array('nickname' => $nick))); + + $xrd->links[] = array('rel' => 'http://apinamespace.org/atom', + 'type' => 'application/atomsvc+xml', + 'href' => common_local_url('ApiAtomService', array('id' => $nick))); + + if (common_config('site', 'fancy')) { + $apiRoot = common_path('api/', true); + } else { + $apiRoot = common_path('index.php/api/', true); + } + + $xrd->links[] = array('rel' => 'http://apinamespace.org/twitter', + 'href' => $apiRoot, + 'property' => array(array('type' => 'http://apinamespace.org/twitter/username', + 'value' => $nick))); + + Event::handle('EndXrdActionLinks', array(&$xrd, $this->user)); + } + + header('Content-type: application/xrd+xml'); + print $xrd->toXML(); + } + + /** + * Given a "user id" make sure it's normalized to either a webfinger + * acct: uri or a profile HTTP URL. + */ + + public static function normalize($user_id) + { + if (substr($user_id, 0, 5) == 'http:' || + substr($user_id, 0, 6) == 'https:' || + substr($user_id, 0, 5) == 'acct:') { + return $user_id; + } + + if (strpos($user_id, '@') !== FALSE) { + return 'acct:' . $user_id; + } + + return 'http://' . $user_id; + } + + public static function isWebfinger($user_id) + { + $uri = self::normalize($user_id); + + return (substr($uri, 0, 5) == 'acct:'); + } + + /** + * Is this action read-only? + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } +} diff --git a/locale/af/LC_MESSAGES/statusnet.po b/locale/af/LC_MESSAGES/statusnet.po index cf8caed596..2c4afe8d0b 100644 --- a/locale/af/LC_MESSAGES/statusnet.po +++ b/locale/af/LC_MESSAGES/statusnet.po @@ -1,153 +1,192 @@ -# Translation of StatusNet to Afrikaans +# Translation of StatusNet - Core to Afrikaans (Afrikaans) +# Expored from translatewiki.net # -# Author@translatewiki.net: Naudefj +# Author: Naudefj # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:11:11+0000\n" -"Language-Team: Afrikaans\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:21+0000\n" +"Language-Team: Afrikaans <http://translatewiki.net/wiki/Portal:af>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: af\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Toegang" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Instellings vir toegang tot webwerf" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registratie" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Mag anonieme gebruikers (nie aangeteken nie) die webwerf besigtig?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Geen anonieme toegang" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Registrasie slegs op uitnodiging." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Slegs op uitnodiging" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Deaktiveer nuwe registrasies." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Gesluit" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Stoor toegangsinstellings" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Stoor" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Hierdie bladsy bestaan nie." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Onbekende gebruiker." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s en vriende, bladsy %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s en vriende" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Voer vir vriende van %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Voer vir vriende van %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Voer vir vriende van %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -155,434 +194,637 @@ msgstr "" "Hierdie is die tydslyn vir %s en vriende, maar niemand het nog iets gepos " "nie." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "U en vriende" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Opdaterings van %1$s en vriende op %2$s." -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Die API-funksie is nie gevind nie." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Hierdie metode benodig 'n POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Kon nie die gebruiker opdateer nie." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Hierdie gebruiker het nie 'n profiel nie." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Kon nie die profiel stoor nie." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Dit was nie moontlik om u ontwerp by te werk nie." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tydlyn" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, fuzzy, php-format +msgid "%s subscriptions" +msgstr "Beskrywing" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Gunstelinge" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "lede van die groep %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "U kan nie uself blokkeer nie!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Die blokkering van die gebruiker het gefaal." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Die deblokkering van die gebruiker het gefaal." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direkte boodskappe vanaf %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle direkte boodskappe deur %s gestuur" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direkte boodskappe aan %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle direkte boodskappe gestuur aan %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Die boodskap bevat geen inhoud nie!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Dit is te lank. Die maksimum boodskaplengte is %d karakters." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Dit is te lank. Die maksimum boodskaplengte is %d karakters." +msgstr[1] "Dit is te lank. Die maksimum boodskaplengte is %d karakters." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Die ontvanger kon gevind word nie." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "U kan nie direkte boodskappe aan gebruikers wat nie op u viendelys is stuur " "nie." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Geen status met die ID gevind nie." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Hierdie status is reeds 'n gunsteling." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Dit was nie moontlik om 'n gunsteling te skep nie." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Hierdie status is nie 'n gunsteling nie." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "U kan nie die gebruiker volg nie: die gebruiker bestaan nie." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "U kan nie die gebruiker volg nie: %1 is alreeds op u lys." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "U kan nie die gebruiker van u volglys verwyder nie: die gebruiker bestaan " "nie." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "U kan nie ophou om uself te volg nie." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 #, fuzzy msgid "Could not determine source user." msgstr "Kon nie die gebruiker opdateer nie." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 #, fuzzy msgid "Could not find target user." msgstr "Kon nie die gebruiker opdateer nie." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Die gebruikersnaam mag slegs uit kleinletters en syfers bestaan en mag geen " -"spasies bevat nie." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Die gebruikersnaam is reeds in gebruik. Kies 'n ander een." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Nie 'n geldige gebruikersnaam nie." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Tuisblad is nie 'n geldige URL nie." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Volledige naam is te lang (maksimum 255 karakters)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Die beskrywing is te lank (die maksimum is %d karakters)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Die beskrywing is te lank (die maksimum is %d karakters)." +msgstr[1] "Die beskrywing is te lank (die maksimum is %d karakters)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Ligging is te lank is (maksimum 255 karakters)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Te veel aliasse! Die maksimum aantal is %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Te veel aliasse! Die maksimum aantal is %d." +msgstr[1] "Te veel aliasse! Die maksimum aantal is %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "Ongeldige alias: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Die alias \"%s\" word al reeds gebruik. Probeer 'n ander een." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Die alias kan nie dieselfde as die gebruikersnaam wees nie." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Nie gevind nie." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "U is reeds 'n lid van die groep." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Dit was nie moontlik om die groep by te werk nie." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "U is nie 'n lid van die groep nie." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kon nie die groep skep nie." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s se groepe" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Groepe op %1$s waar %2$s lid van is." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s groepe" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "groepe op %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "Die deblokkering van die gebruiker het gefaal." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Ongeldige token." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Ongeldige token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Ongeldige gebruikersnaam of wagwoord!" -#: actions/apioauthauthorize.php:159 -#, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Moenie die applikasie verwyder nie" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Die vorm is onverwags ingestuur." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "'n Toepassing vra toegang tot u gebruikersinligting" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Toegang toelaat of weier" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -590,242 +832,631 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Gebruiker" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Bynaam" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Wagwoord" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Ontsê" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Kanselleer" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Toestaan" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "Laat toegang tot u gebruikersinligting toe of weier dit." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Geen bevestigingskode." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Dit was nie moontlik om die applikasie te skep nie." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Hierdie metode vereis 'n POST of DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "U mag nie 'n ander gebruiker se status verwyder nie." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Die kennisgewing bestaan nie." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "U kan nie u eie kennisgewings herhaal nie." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "U het reeds die kennisgewing herhaal." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Die API-funksie is nie gevind nie." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Nie-ondersteunde formaat." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Die status is verwyder." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Geen status met die ID gevind nie." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Hierdie kennisgewing kan nie verwyder word nie." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Verwyder kennisgewing" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Die kennisgewing is te lank. Gebruik maksimum %d karakters." +msgstr[1] "Die kennisgewing is te lank. Gebruik maksimum %d karakters." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Die API-funksie is nie gevind nie." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Die kennisgewing is te lank. Gebruik maksimum %d karakters." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Nie gevind nie." - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" - -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Nie-ondersteunde formaat." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Gunstelinge van %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s / Gunstelinge van %2$s" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Dit was nie moontlik om die groep by te werk nie." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Gunstelinge van %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, fuzzy, php-format msgid "%s public timeline" msgstr "%s tydlyn" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Opdrag voltooi" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Na %s herhaal" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Herhalings van %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, fuzzy, php-format msgid "Notices tagged with %s" msgstr "met die etiket %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Opdaterings van %1$s op %2$s." -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "U kan nie u eie kennisgewings herhaal nie." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 #, fuzzy msgid "API method under construction." msgstr "Die API-funksie is nie gevind nie." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Die API-funksie is nie gevind nie." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Die lêer bestaan nie." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kon nie e-posbevestiging verwyder nie." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Onbekend" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Voeg by gunstelinge" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Die lêer bestaan nie." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "lede van die groep %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Groepe waarvan %s lid is" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Onbekend" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alle lede" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Die lêer bestaan nie." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "" +"Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Die groep bestaan nie." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alle lede" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Die API-funksie is nie gevind nie." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Die lêer bestaan nie." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "U volg hierdie gebruiker:" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "" +"Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "U volg hierdie gebruiker:" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Onbekende lêertipe" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Die aanhangsel bestaan nie." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Geen gebruikersnaam nie." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Geen grootte nie." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ongeldige grootte." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 #, fuzzy msgid "User without matching profile." msgstr "Hierdie gebruiker het nie 'n profiel nie." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar-instellings" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Oorspronklik" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Voorskou" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Skrap" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Oplaai" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Uitsny" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Geen lêer opgelaai nie." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Die avatar is opgedateer." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Die opdatering van die avatar het gefaal." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Die avatar is verwyder." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "U het reeds die gebruiker geblokkeer." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blokkeer gebruiker" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -834,179 +1465,225 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nee" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Moenie hierdie gebruiker blokkeer nie" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blokkeer hierdie gebruiker" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Die groep bestaan nie." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "%s geblokkeerde gebruikers" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s en vriende, bladsy %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "Blok hierdie gebruiker van hierdie groep" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Gee gebruiker weer toegang tot die groep" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Deblokkeer" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Deblokkeer hierdie gebruiker" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" msgstr "groepe op %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Geen bevestigingskode." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 #, fuzzy msgid "Confirmation code not found." msgstr "Geen bevestigingskode." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 #, fuzzy msgid "That confirmation code is not for you!" msgstr "Geen bevestigingskode." -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 #, fuzzy msgid "That address has already been confirmed." msgstr "Die E-posadres bestaan reeds." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Kon nie gebruiker opdateer nie." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Kon nie e-posbevestiging verwyder nie." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Bevestig adres" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Gesprek" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Kennisgewings" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "U moet aangeteken alvorens u 'n aansoek kan skrap." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Die applikasie is nie gevind nie." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "U is nie die eienaar van hierdie applikasie nie." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Skrap applikasie" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1014,51 +1691,113 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Moenie die applikasie verwyder nie" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Skrap hierdie applikasie" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "U moet aanteken alvorens u 'n groep kan verlaat." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Geen gebruikersnaam of ID nie." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "U is nie 'n lid van die groep nie." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Dit was nie moontlik om die groep by te werk nie." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s het die groep %2$s verlaat" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Verwyder gebruiker" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Moenie hierdie kennisgewing verwyder nie" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Verwyder die gebruiker" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Nie aangeteken nie." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Hierdie kennisgewing kan nie verwyder word nie." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Verwyder kennisgewing" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Is u seker u wil hierdie kennisgewing verwyder?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Moenie hierdie kennisgewing verwyder nie" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Verwyder hierdie kennisgewing" @@ -1087,63 +1826,74 @@ msgstr "Verwyder die gebruiker" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Ontwerp" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Die logo-URL is ongeldig." -#: actions/designadminpanel.php:322 -#, fuzzy, php-format +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Die logo-URL is ongeldig." + +#: actions/designadminpanel.php:344 +#, php-format msgid "Theme not available: %s." msgstr "IM is nie beskikbaar nie." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Verander logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Webwerf-logo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Webwerf-logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Verander tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Werf se tema" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema vir die werf." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Werf se tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Verander die agtergrond-prent" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Agtergrond" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1151,78 +1901,87 @@ msgid "" msgstr "" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Aan" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Af" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 #, fuzzy msgid "Turn background image on or off." msgstr "Verander die agtergrond-prent" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 #, fuzzy msgid "Tile background image" msgstr "Verander die agtergrond-prent" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Verander kleure" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Inhoud" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Kantstrook" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Skakels" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Gevorderd" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Gebruik verstekwaardes" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 #, fuzzy msgid "Restore default designs" msgstr "Gebruik verstekwaardes" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Stel terug na standaard" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Stoor" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Stoor ontwerp" @@ -1239,109 +1998,132 @@ msgstr "Voeg by gunstelinge" msgid "No such document \"%s\"" msgstr "Onbekende dokument \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +#, fuzzy +msgid "Edit application" msgstr "Wysig applikasie" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "U moet aangeteken wees alvorens u 'n applikasie kan wysig." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Die applikasie bestaan nie." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Gebruik die vorm om u applikasie te wysig." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "'n Naam is verpligtend." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Die naam is te lank (maksimum 255 karakters)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Die naam is reeds in gebruik. Kies 'n ander een." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Beskrywing word vereis." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Die bron-URL is te lank." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Die bron-URL is nie geldig nie." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisasie is verpligtend." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Die organisasienaam is te lang (maksimum 255 karakters)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Die tuisblad vir die organisasie is verpligtend." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Die \"callback\" is te lank." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Die \"callback\"-URL is nie geldig nie." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Dit was nie moontlik om die applikasie by te werk nie." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Groep %s wysig" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "U moet aangeteken wees alvorens u 'n groep kan skep." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "U moet 'n administrateur wees alvorens u 'n groep kan wysig." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Gebruik hierdie vorm om die groep te wysig." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Die beskrywing is te lank (die maksimum is %d karakters)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ongeldige alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Dit was nie moontlik om die groep by te werk nie." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Dit was nie moontlik om die aliasse te skep nie." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Opsies is gestoor." @@ -1359,12 +2141,12 @@ msgstr "" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-posadres" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Huidige bevestigde e-posadres." @@ -1373,38 +2155,32 @@ msgstr "Huidige bevestigde e-posadres." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Verwyder" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Kanselleer" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-posadres, soos \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1412,101 +2188,106 @@ msgstr "Voeg by" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Inkomende e-pos" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "" + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nuut" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-posadresse" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 #, fuzzy msgid "Publish a MicroID for my email address." msgstr "Dit is nie u e-posadres nie." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "Voorkeure is gestoor." +msgstr "E-posadresse" #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Geen e-posadres." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 #, fuzzy msgid "Cannot normalize that email address" msgstr "Dit was nie moontlik om die Jabber-ID te normaliseer nie" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Nie 'n geldige e-posadres nie." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Dit is al reeds u e-posadres." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 #, fuzzy msgid "That email address already belongs to another user." msgstr "Die Jabber-ID word reeds deur 'n ander gebruiker gebruik." @@ -1514,14 +2295,13 @@ msgstr "Die Jabber-ID word reeds deur 'n ander gebruiker gebruik." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 -#, fuzzy msgid "Couldn't insert confirmation code." -msgstr "Geen bevestigingskode." +msgstr "Kon nie e-posbevestiging verwyder nie." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1530,54 +2310,58 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 #, fuzzy msgid "No pending confirmation to cancel." msgstr "Geen bevestigingskode." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Dit is die verkeerde IM-adres." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kon nie e-posbevestiging verwyder nie." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Geen bevestigingskode." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Dit is nie u e-posadres nie." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Inkomende e-posadres is verwyder." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Geen inkomende e-posadres." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kon nie gebruikersdata opdateer nie." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Inkomende e-posadres is verwyder." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 #, fuzzy msgid "New incoming email address added." msgstr "Geen inkomende e-posadres." @@ -1587,12 +2371,12 @@ msgstr "Geen inkomende e-posadres." msgid "This notice is already a favorite!" msgstr "Hierdie kennisgewing is nie 'n gunsteling nie!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 #, fuzzy msgid "Disfavor favorite" msgstr "Voeg by gunstelinge" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populêre kennisgewings" @@ -1624,7 +2408,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s se gunsteling kennisgewings" @@ -1695,7 +2479,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Kon nie die profiel stoor nie." @@ -1726,19 +2510,23 @@ msgstr "Jy kan nie gebruikers op hierdie webwerf stilmaak nie." msgid "User already has this role." msgstr "Hierdie gebruiker is reeds stilgemaak." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Geen profiel verskaf nie." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Daar is geen profiel met daardie ID nie." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Geen groep verskaf nie." @@ -1757,7 +2545,7 @@ msgstr "Hierdie gebruiker is reeds stilgemaak." msgid "User is not a member of group." msgstr "U is nie 'n lid van die groep nie." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Blok gebruiker toegang tot die groep" @@ -1805,8 +2593,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Dit was nie moontlik om u ontwerp by te werk nie." @@ -1826,6 +2616,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Oplaai" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Uitsny" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" @@ -1838,50 +2636,57 @@ msgstr "Logo opgedateer." msgid "Failed updating logo." msgstr "Die opdatering van die logo het gefaal." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "lede van die groep %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s groepe, bladsy %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 #, fuzzy msgid "A list of the users in this group." msgstr "Blok hierdie gebruiker van hierdie groep" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrateur" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Blokkeer" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 #, fuzzy msgid "Make user an admin of the group" msgstr "U moet 'n administrateur wees alvorens u 'n groep kan wysig." -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Maak Admin" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Maak hierdie gebruiker 'n administrateur" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s tydlyn" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1944,16 +2749,19 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 #, fuzzy msgid "User is not blocked from group." msgstr "Gee gebruiker weer toegang tot die groep" -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1999,7 +2807,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2007,64 +2818,63 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Voorkeure is gestoor." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Voorkeure is gestoor." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Geen Jabber-ID nie." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Dit was nie moontlik om die Jabber-ID te normaliseer nie" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Nie 'n geldige Jabber-ID nie" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Dit is al reeds u Jabber-ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Die Jabber-ID word reeds deur 'n ander gebruiker gebruik." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2072,31 +2882,28 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Dit is die verkeerde IM-adres." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Kon nie e-posbevestiging verwyder nie." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Geen bevestigingskode." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Dit is nie u Jabber-ID nie." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Inkomende e-posadres is verwyder." @@ -2114,91 +2921,128 @@ msgstr "Vriend van 'n vriend (FOAF) vir %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, fuzzy, php-format msgid "You must be logged in to invite other users to use %s." msgstr "U moet aanteken alvorens u by groep kan aansluit." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Ongeldige e-posadres: %s" -#: actions/invite.php:110 +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 #, fuzzy -msgid "Invitation(s) sent" +msgid "Invitations sent" msgstr "Uitnodigings" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Nooi nuwe gebruikers" -#: actions/invite.php:128 +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 #, fuzzy -msgid "You are already subscribed to these users:" -msgstr "U volg hierdie gebruiker:" +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "U volg hierdie gebruiker:" +msgstr[1] "U volg hierdie gebruiker:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-posadresse" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Persoonlike boodskap" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Stuur" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2233,13 +3077,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "U moet aanteken alvorens u by groep kan aansluit." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Geen gebruikersnaam of ID nie." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s het by groep %2$s aangesluit" @@ -2248,17 +3086,121 @@ msgstr "%1$s het by groep %2$s aangesluit" msgid "You must be logged in to leave a group." msgstr "U moet aanteken alvorens u 'n groep kan verlaat." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "U is nie 'n lid van daardie groep nie." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s het die groep %2$s verlaat" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Ligging is te lank is (maksimum 255 karakters)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privaat" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "U is reeds aangeteken." @@ -2279,11 +3221,11 @@ msgstr "Aanteken" msgid "Login to site" msgstr "Teken aan" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Onthou my" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" @@ -2328,73 +3270,83 @@ msgid "Can't make %1$s an admin for group %2$s." msgstr "" #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." msgstr "Geen resultate nie." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Nuwe appplikasie" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "U moet aangeteken wees alvorens u 'n applikasie kan wysig." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "Gebruik die vorm om u applikasie te wysig." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "'n Bron-URL is verpligtend." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Dit was nie moontlik om die applikasie te skep nie." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nuwe groep" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 #, fuzzy msgid "Use this form to create a new group." msgstr "Gebruik hierdie vorm om die groep te wysig." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nuwe boodskap" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "U kan nie 'n boodskap aan hierdie gebruiker stuur nie." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Geen inhoud nie!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Geen ontvanger gespesifiseer nie." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Boodskap is gestuur." -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Direkte boodskappe aan %s" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax-fout" @@ -2403,7 +3355,7 @@ msgstr "Ajax-fout" msgid "New notice" msgstr "Geen kennisgewing." -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 #, fuzzy msgid "Notice posted" msgstr "Hierdie kennisgewing is verwyder." @@ -2450,7 +3402,8 @@ msgstr "Opdaterings van %1$s op %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2461,50 +3414,75 @@ msgstr "Die por is gestuur" msgid "Nudge sent!" msgstr "Die por is gestuur!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 #, fuzzy msgid "You must be logged in to list your applications." msgstr "U moet aangeteken wees alvorens u 'n applikasie kan wysig." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 #, fuzzy msgid "OAuth applications" msgstr "Die applikasie bestaan nie." -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, fuzzy, php-format msgid "You have not registered any applications yet." msgstr "Dit was nie moontlik om die applikasie te skep nie." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 #, fuzzy msgid "Connected applications" msgstr "Skrap applikasie" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "U is nie die eienaar van hierdie applikasie nie." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Gebruik die vorm om u applikasie te wysig." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 @@ -2512,26 +3490,26 @@ msgstr "" msgid "Notice has no profile." msgstr "Hierdie gebruiker het nie 'n profiel nie." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Status van %1$s op %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 #, fuzzy msgid "Not a supported data format." msgstr "Nie-ondersteunde formaat." @@ -2545,39 +3523,48 @@ msgstr "Mense soek" msgid "Notice Search" msgstr "Mense soek" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 #, fuzzy msgid "Other settings" msgstr "Avatar-instellings" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "(gratis diens)" +msgstr " (gratis diens)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 #, fuzzy msgid "View profile designs" msgstr "Wysig profiel-instellings" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 #, fuzzy -msgid "URL shortening service is too long (max 50 chars)." +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Ligging is te lank is (maksimum 255 karakters)." #: actions/otp.php:69 @@ -2643,7 +3630,7 @@ msgid "6 or more characters" msgstr "6 of meer karakters" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Bevestig" @@ -2655,11 +3642,11 @@ msgstr "Dieselfde as wagwoord hierbo" msgid "Change" msgstr "Wysig" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Wagwoord moet 6 of meer karakters bevat." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Wagwoorde is nie dieselfde nie." @@ -2679,157 +3666,285 @@ msgstr "Kon nie nuwe wagwoord stoor nie." msgid "Password saved." msgstr "Wagwoord gestoor." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Paaie" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." msgstr "Tema-gids" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format -msgid "Avatar directory not writable: %s." -msgstr "Avatar-gids" - -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format -msgid "Background directory not writable: %s." -msgstr "Agtergrond-gids" - -#: actions/pathsadminpanel.php:177 #, php-format -msgid "Locales directory not readable: %s." -msgstr "" +msgid "Avatar directory not writable: %s." +msgstr "Tema-gids" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format +msgid "Background directory not writable: %s." +msgstr "Tema-gids" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, fuzzy, php-format +msgid "Locales directory not readable: %s." +msgstr "Tema-gids" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Webtuiste" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Bediener" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Pad" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" +msgid "Site path." msgstr "Werf se tema" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Tema-gids" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Tema-bediener" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Tema vir die werf." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Tema-pad" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Tema-gids" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatars" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatar-bediener" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avatar-pad" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatar-gids" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Agtergronde" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Agtergrond-bediener" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Agtergrond-pad" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Agtergrond-gids" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nooit" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Soms" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Altyd" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Gebruik SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Wanneer SSL gebruik moet word" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-bediener" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Werf se tema" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Tema-gids" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatars" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatar-bediener" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Tema vir die werf." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avatar-pad" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Die opdatering van die avatar het gefaal." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatar-gids" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Agtergronde" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Tema vir die werf." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Aanhangsels" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Tema vir die werf." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Geen aanhangsels." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Tema vir die werf." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nooit" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Soms" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Altyd" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Gebruik SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Wanneer SSL gebruik moet word" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Tema-pad" @@ -2865,144 +3980,186 @@ msgstr "Ongeldige token." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 #, fuzzy msgid "Profile settings" msgstr "Wysig profiel-instellings" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 #, fuzzy -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "Die gebruikersnaam mag slegs uit kleinletters en syfers bestaan en mag geen " "spasies bevat nie." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Volledige naam" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Tuisblad" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." msgstr "" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Skrap applikasie" +msgstr[1] "Skrap applikasie" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Bio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Ligging" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etikette" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Taal" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tydsone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Die beskrywing is te lank (die maksimum is %d karakters)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Die beskrywing is te lank (die maksimum is %d karakters)." +msgstr[1] "Die beskrywing is te lank (die maksimum is %d karakters)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:241 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 #, fuzzy -msgid "Language is too long (max 50 chars)." +msgid "Language is too long (maximum 50 characters)." msgstr "Die naam is te lank (maksimum 255 karakters)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ongeldige etiket: \"$s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 #, fuzzy msgid "Couldn't update user for autosubscribe." msgstr "Kon nie gebruikersdata opdateer nie." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Dit was nie moontlik om die applikasie by te werk nie." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 #, fuzzy msgid "Couldn't save profile." msgstr "Kon nie die profiel stoor nie." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 #, fuzzy msgid "Couldn't save tags." msgstr "Kon nie gebruiker opdateer nie." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Voorkeure is gestoor." @@ -3074,33 +4231,46 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 #, fuzzy msgid "Be the first to post one!" msgstr "U kan die eerste een wees om 'n boodskap te plaas!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 #, fuzzy msgid "Tag cloud" msgstr "Verander kleure" @@ -3168,14 +4338,12 @@ msgid "Recover" msgstr "Verwyder" #: actions/recoverpassword.php:208 -#, fuzzy msgid "Reset password" -msgstr "Nuwe wagwoord" +msgstr "Herstel wagwoord" #: actions/recoverpassword.php:209 -#, fuzzy msgid "Recover password" -msgstr "Nuwe wagwoord" +msgstr "Herstel wagwoord" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" @@ -3225,7 +4393,7 @@ msgstr "Die vorm is onverwags ingestuur." #: actions/recoverpassword.php:365 #, fuzzy -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Wagwoord moet 6 of meer karakters bevat." #: actions/recoverpassword.php:369 @@ -3233,7 +4401,7 @@ msgstr "Wagwoord moet 6 of meer karakters bevat." msgid "Password and confirmation do not match." msgstr "Wagwoorde is nie dieselfde nie." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 #, fuzzy msgid "Error setting user." msgstr "Fout tydens stoor van gebruiker; ongeldig." @@ -3242,7 +4410,7 @@ msgstr "Fout tydens stoor van gebruiker; ongeldig." msgid "New password successfully saved. You are now logged in." msgstr "" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3254,7 +4422,7 @@ msgstr "" msgid "Registration successful" msgstr "Die registrasie is voltooi" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registreer" @@ -3262,82 +4430,86 @@ msgstr "Registreer" msgid "Registration not allowed." msgstr "Registrasie nie toegelaat nie." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Die E-posadres bestaan reeds." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Ongeldige gebruikersnaam of wagwoord." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -#: actions/register.php:437 +#: actions/register.php:438 #, fuzzy msgid "6 or more characters. Required." msgstr "6 of meer karakters" -#: actions/register.php:441 +#: actions/register.php:442 #, fuzzy msgid "Same as password above. Required." msgstr "Dieselfde as wagwoord hierbo" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-pos" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3356,7 +4528,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3397,7 +4569,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "" @@ -3436,7 +4608,7 @@ msgstr "U kan nie u eie kennisgewings herhaal nie." msgid "You already repeated that notice." msgstr "U het reeds die kennisgewing herhaal." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Herhalend" @@ -3445,7 +4617,7 @@ msgid "Repeated!" msgstr "Herhaal!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, fuzzy, php-format msgid "Replies to %s" msgstr "Herhalings van %s" @@ -3523,12 +4695,12 @@ msgstr "Hierdie gebruiker is reeds stilgemaak." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessies" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3549,7 +4721,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Stoor toegangsinstellings" @@ -3565,28 +4736,29 @@ msgid "Application profile" msgstr "Die applikasie is nie gevind nie." #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ikoon" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Naam" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisasie" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beskrywing" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistieke" @@ -3605,6 +4777,11 @@ msgstr "Die applikasie is nie gevind nie." msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Skrap" + #: actions/showapplication.php:261 #, fuzzy msgid "Application info" @@ -3692,77 +4869,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s groep" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Groep %1$s, bladsy %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Groepsprofiel" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliasse" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Groepsaksies" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Voer vir vriende van %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Voer vir vriende van %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Voer vir vriende van %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Vriend van 'n vriend vir die groep %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Lede" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alle lede" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Geskep" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Lede" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3772,7 +4978,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3781,24 +4990,31 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administrateurs" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Die boodskap bestaan nie." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, fuzzy, php-format msgid "Message to %1$s on %2$s" msgstr "Opdaterings van %1$s op %2$s." -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, fuzzy, php-format msgid "Message from %1$s on %2$s" msgstr "Opdaterings van %1$s op %2$s." @@ -3807,62 +5023,86 @@ msgstr "Opdaterings van %1$s op %2$s." msgid "Notice deleted." msgstr "Hierdie kennisgewing is verwyder." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "met die etiket %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, bladsy %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s, bladsy %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, bladsy %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, fuzzy, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Voer vir vriende van %s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, fuzzy, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Voer vir vriende van %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, fuzzy, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Voer vir vriende van %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, fuzzy, php-format msgid "Notice feed for %s (Atom)" msgstr "Voer vir vriende van %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "Vriend van 'n vriend (FOAF) vir %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" "Hierdie is die tydslyn vir %s en vriende, maar niemand het nog iets gepos " "nie." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3871,7 +5111,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3879,7 +5121,8 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Herhaling van %s" @@ -3993,35 +5236,42 @@ msgstr "Duplikaatlimiet" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "Kennisgewings" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Nuwe boodskap" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "Verwyder kennisgewing" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "Verwyder kennisgewing" @@ -4091,7 +5341,6 @@ msgstr "" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" msgstr "Voorkeure is gestoor." @@ -4146,7 +5395,6 @@ msgstr "Dit is die verkeerde IM-adres." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." msgstr "SMS-bevestiging" @@ -4159,9 +5407,8 @@ msgstr "Dit is nie u Jabber-ID nie." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 -#, fuzzy msgid "The SMS phone number was removed." -msgstr "SMS-nommer" +msgstr "Inkomende e-posadres is verwyder." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 @@ -4190,7 +5437,7 @@ msgstr "Geen inhoud nie!" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4249,13 +5496,15 @@ msgstr "" msgid "Save snapshot settings" msgstr "Stoor toegangsinstellings" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 #, fuzzy msgid "You are not subscribed to that profile." msgstr "U volg hierdie gebruiker:" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 #, fuzzy msgid "Could not save subscription." msgstr "Kon nie die profiel stoor nie." @@ -4264,11 +5513,6 @@ msgstr "Kon nie die profiel stoor nie." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Die lêer bestaan nie." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4277,63 +5521,84 @@ msgstr "" msgid "Subscribed" msgstr "" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, fuzzy, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s en vriende, bladsy %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Beskrywing" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s groepe, bladsy %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4343,16 +5608,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s volg niemand nie." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Voer vir vriende van %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4390,7 +5666,7 @@ msgid "User profile" msgstr "Gebruikersprofiel" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4410,9 +5686,8 @@ msgid "" msgstr "" #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." -msgstr "Kon nie die profiel stoor nie." +msgstr "Kon nie die etikette stoor nie." #: actions/tagother.php:236 #, fuzzy @@ -4454,79 +5729,99 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Gebruiker" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profiel" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Profiellimiet" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nuwe gebruikers" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 #, fuzzy msgid "New user welcome" msgstr "Nuwe gebruikers" -#: actions/useradminpanel.php:236 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 #, fuzzy -msgid "Welcome text for new users (Max 255 chars)." +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Die naam is te lank (maksimum 255 karakters)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Beskrywing" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Jy kan nie gebruikers op hierdie webwerf stilmaak nie." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Uitnodigings" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Uitnodigings" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 #, fuzzy msgid "Authorize subscription" @@ -4539,7 +5834,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Lisensie" @@ -4624,12 +5921,14 @@ msgstr "Kan nie die avatar-URL \"%s\" lees nie." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Kan nie die avatar-URL \"%s\" lees nie." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Profiel" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4665,7 +5964,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Opdaterings van %1$s op %2$s." @@ -4714,7 +6013,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Weergawe" @@ -4722,63 +6021,111 @@ msgstr "Weergawe" msgid "Author(s)" msgstr "Outeur(s)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +#, fuzzy +msgid "Favor" +msgstr "Gunstelinge" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Hierdie kennisgewing is nie 'n gunsteling nie!" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Ongeldige grootte." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Groepsprofiel" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Nie lid van die groep nie." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Groepsprofiel" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Fout tydens stoor van gebruiker; ongeldig." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Aansluit" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4798,19 +6145,19 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "U inkomende boodskappe" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 #, fuzzy msgid "Could not insert message." msgstr "Kan nie boodskap verwerk nie." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 #, fuzzy msgid "Could not update message with new URI." msgstr "Kan nie boodskap verwerk nie." @@ -4823,73 +6170,87 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 #, fuzzy msgid "You are banned from posting notices on this site." msgstr "Jy kan nie gebruikers op hierdie webwerf stilmaak nie." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "" +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Kon nie die profiel stoor nie." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4901,319 +6262,361 @@ msgid "Missing profile." msgstr "Hierdie gebruiker het nie 'n profiel nie." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 #, fuzzy msgid "Unable to save tag." msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 #, fuzzy msgid "User has blocked you." msgstr "Hierdie gebruiker het nie 'n profiel nie." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 #, fuzzy msgid "Could not delete self-subscription." msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 #, fuzzy msgid "Could not delete subscription OMB token." msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 #, fuzzy msgid "Could not delete subscription." msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%s volg niemand nie." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom by %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Kon nie die groep skep nie." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not set group URI." msgstr "Kon nie die groep skep nie." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 #, fuzzy msgid "Could not set group membership." msgstr "Kon nie die groep skep nie." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "Kon nie die profiel stoor nie." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Verander u profiel gegewens" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 #, fuzzy msgid "Upload an avatar" msgstr "Die opdatering van die avatar het gefaal." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Verander u wagwoord" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Ontwerp u profiel" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Ander opsies" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Ander" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Persoonlik" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Verander u wagwoord" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Gebruiker" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Konnekteer" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Beheer" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Uitnodig" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Meld by die webwerf aan" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Teken uit" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Skep 'n gebruiker" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registreer" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Meld by die webwerf aan" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Teken in" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help my!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Help" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Soek na mense of teks" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Soek" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 #, fuzzy msgid "Site notice" msgstr "Verwyder kennisgewing" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 #, fuzzy msgid "Local views" msgstr "Lokaal" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 #, fuzzy msgid "Page notice" msgstr "Populêre kennisgewings" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Help" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Aangaande" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Gewilde vrae" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Gebruiksvoorwaardes" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privaatheid" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Bron" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontak" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 #, fuzzy msgid "Badge" msgstr "Aanpor" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5221,13 +6624,16 @@ msgid "" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5236,365 +6642,474 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 #, fuzzy msgid "Pagination" msgstr "Registratie" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Na" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Voor" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Jy kan nie gebruikers op hierdie webwerf stilmaak nie." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registrasie nie toegelaat nie." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Webtuiste" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Ontwerp" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Gebruiker" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "SMS-bevestiging" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "Verwyder kennisgewing" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "SMS-bevestiging" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 #, fuzzy -msgid "Edit application" -msgstr "Wysig applikasie" +msgid "Could not create anonymous consumer." +msgstr "Dit was nie moontlik om die aliasse te skep nie." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Dit was nie moontlik om die applikasie te skep nie." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Kan nie boodskap verwerk nie." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 #, fuzzy msgid "Icon for this application" msgstr "Moenie die applikasie verwyder nie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Skrap applikasie" +msgstr[1] "Skrap applikasie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 #, fuzzy msgid "Describe your application" msgstr "Skrap applikasie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "U is nie die eienaar van hierdie applikasie nie." #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Bron" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 #, fuzzy msgid "Organization responsible for this application" msgstr "U is nie die eienaar van hierdie applikasie nie." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Webblaaier" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Lees-alleen" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lees-skryf" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Kanselleer" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 #, fuzzy msgid "read-write" msgstr "Lees-skryf" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 #, fuzzy msgid "read-only" msgstr "Lees-alleen" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Verwyder" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Aanhangsels" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Outeur" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Verskaffer" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 #, fuzzy msgid "Notices where this attachment appears" msgstr "Etikette vir hierdie aanhangsel" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etikette vir hierdie aanhangsel" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Wagwoord wysiging het misluk" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "Wagwoord verandering word nie toegelaat nie" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokkeer" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Opdragresultate" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax-fout" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Opdrag voltooi" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 #, fuzzy msgid "Command failed" msgstr "Opdrag voltooi" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:99 lib/command.php:596 -#, fuzzy -msgid "User has no last notice" -msgstr "Hierdie gebruiker het nie 'n profiel nie." +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" +msgid "Could not find a local user with nickname %s." msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "Die por is gestuur" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5602,214 +7117,254 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "U is reeds 'n lid van die groep." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" +msgid "%1$s joined group %2$s." msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" +msgid "%1$s left group %2$s." msgstr "" +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Volle naam: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Ligging: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Tuisblad: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Oor: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " +"gestuur." +msgstr[1] "" "Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " "gestuur." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, fuzzy, php-format -msgid "Direct message to %s sent" -msgstr "Direkte boodskappe aan %s" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "" -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "U kan nie u eie kennisgewings herhaal nie." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "U het reeds die kennisgewing herhaal." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "Hierdie kennisgewing is verwyder." +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 #, fuzzy msgid "Error repeating notice." msgstr "U kan nie u eie kennisgewings herhaal nie." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " +"gestuur." +msgstr[1] "" "Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " "gestuur." -#: lib/command.php:571 -#, fuzzy, php-format -msgid "Reply to %s sent" -msgstr "Na %s herhaal" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Fout tydens stoor van gebruiker; ongeldig." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 #, fuzzy msgid "Command not yet implemented." msgstr "Opdrag voltooi" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 #, fuzzy msgid "Notification off." msgstr "Geen bevestigingskode." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 #, fuzzy msgid "Notification on." msgstr "Geen bevestigingskode." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 #, fuzzy msgid "Can't turn on notification." msgstr "U kan nie u eie kennisgewings herhaal nie." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" +msgid "Unsubscribed %s." msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "U volg hierdie gebruiker:" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "U volg hierdie gebruiker:" msgstr[1] "U volg hierdie gebruikers:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Hierdie gebruiker volg u:" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Hierdie gebruiker volg u:" msgstr[1] "Hierdie gebruikers volg u:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "U is nie 'n lid van enige groep nie." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "U is 'n lid van hierdie groep:" msgstr[1] "U is 'n lid van hierdie groepe:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5851,96 +7406,138 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Geen bevestigingskode." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Gaan na die installeerder." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Konnekteer" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 #, fuzzy msgid "Authorized connected applications" msgstr "Skrap applikasie" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Databasisfout" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 #, fuzzy msgid "Upload file" msgstr "Oplaai" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Aan" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Af" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Herstel" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 #, fuzzy msgid "Disfavor this notice" msgstr "Verwyder hierdie kennisgewing" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 #, fuzzy msgid "Favor this notice" msgstr "Verwyder hierdie kennisgewing" -#: lib/favorform.php:140 -#, fuzzy -msgid "Favor" -msgstr "Gunstelinge" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Vriende van vriende (FOAF)" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -5972,74 +7569,134 @@ msgstr "OK" msgid "Grant this user the \"%s\" role" msgstr "" -#: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#: lib/groupeditform.php:154 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" +"Die gebruikersnaam mag slegs uit kleinletters en syfers bestaan en mag geen " +"spasies bevat nie." + +#: lib/groupeditform.php:163 +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." +msgstr "U is nie die eienaar van hierdie applikasie nie." #: lib/groupeditform.php:168 msgid "Describe the group or topic" msgstr "" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" - -#: lib/groupeditform.php:179 -msgid "" -"Location for the group, if any, like \"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 "" - -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Groep" - -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Geblokkeer" - -#: lib/groupnav.php:102 -#, php-format -msgid "%s blocked users" -msgstr "%s geblokkeerde gebruikers" - -#: lib/groupnav.php:108 #, fuzzy, php-format -msgid "Edit %s group properties" -msgstr "Groep %s wysig" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Skrap applikasie" +msgstr[1] "Skrap applikasie" -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Logo" +#: lib/groupeditform.php:182 +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "" -#: lib/groupnav.php:114 +#: lib/groupeditform.php:190 #, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 #, fuzzy msgid "Groups with most members" msgstr "Groepe waarvan %s lid is" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Etikette in groepsaankondigings van %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6051,40 +7708,59 @@ msgstr "" msgid "Unsupported image file format." msgstr "Nie-ondersteunde formaat." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Die kennisgewing is te lank. Gebruik maksimum %d karakters." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 #, fuzzy msgid "Partial upload." msgstr "Geen lêer opgelaai nie." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 #, fuzzy msgid "Lost our file." msgstr "Die lêer bestaan nie." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Onbekende lêertipe" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6096,10 +7772,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Onbekende taal \"%s\"." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Aansluit" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Verlaat" @@ -6113,45 +7785,54 @@ msgstr "Ongeldige gebruikersnaam of wagwoord." msgid "Sign up for a new account" msgstr "" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 #, fuzzy msgid "Email address confirmation" msgstr "E-posadres" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, fuzzy, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%s volg niemand nie." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6160,26 +7841,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Beskrywing: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6189,34 +7874,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-bevestiging" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6232,14 +7922,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nuwe privaat boodskap vanaf %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6258,14 +7952,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "Hierdie kennisgewing is nie 'n gunsteling nie!" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6287,7 +7986,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6295,13 +7994,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6338,7 +8044,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "van" @@ -6358,63 +8064,82 @@ msgstr "Jammer, dit is nie u inkomende e-posadres nie." msgid "Sorry, no incoming email allowed." msgstr "Jammer, inkomende e-pos word nie toegelaat nie." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Nie-ondersteunde formaat." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 #, fuzzy msgid "Could not determine file's MIME type." msgstr "" "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 @@ -6422,99 +8147,134 @@ msgstr "" msgid "Send a direct notice" msgstr "Stuur 'n direkte boodskap aan hierdie gebruiker" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Alle lede" + +#: lib/messageform.php:153 msgid "To" msgstr "Aan" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Beskikbare karakters" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Stuur" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Die gebruikersnaam mag slegs uit kleinletters en syfers bestaan en mag geen " +"spasies bevat nie." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Verwyder kennisgewing" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Hallo, %s." -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Aanheg" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Heg 'n lêer aan" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Moenie die applikasie verwyder nie" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "op" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "in konteks" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Herhaal deur" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 #, fuzzy msgid "Reply to this notice" msgstr "Verwyder hierdie kennisgewing" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Antwoord" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Hierdie kennisgewing is verwyder." @@ -6533,58 +8293,53 @@ msgstr "Aanpor" msgid "Send a nudge to this user" msgstr "Stuur 'n direkte boodskap aan hierdie gebruiker" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:291 -#, fuzzy -msgid "Error inserting avatar" -msgstr "Fout tydens stoor van gebruiker; ongeldig." - -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Verwyder kennisgewing" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 #, fuzzy msgid "Couldn't insert new subscription." msgstr "Kon nie e-posbevestiging verwyder nie." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persoonlik" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Antwoorde" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Gunstelinge" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "U inkomende boodskappe" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 #, fuzzy msgid "Your sent messages" msgstr "U inkomende boodskappe" @@ -6592,9 +8347,10 @@ msgstr "U inkomende boodskappe" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Etikette in die aankondigings van %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Onbekend" @@ -6682,9 +8438,11 @@ msgstr "Verwyder hierdie kennisgewing" msgid "Revoke the \"%s\" role from this user" msgstr "Blok hierdie gebruiker van hierdie groep" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Die API-funksie is nie gevind nie." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6695,20 +8453,26 @@ msgstr "" msgid "Sandbox this user" msgstr "Deblokkeer hierdie gebruiker" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Soek" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Term(e)" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Soek" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Soek" @@ -6784,6 +8548,12 @@ msgstr "" msgid "None" msgstr "Geen" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ongeldige grootte." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6793,44 +8563,59 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Die opdatering van die avatar het gefaal." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 +#, fuzzy msgid "Error opening theme archive." -msgstr "" +msgstr "Kon nie die profiel stoor nie." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Mees aktiewe gebruikers" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Deblokkeer" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6859,125 +8644,180 @@ msgstr "Deblokkeer hierdie gebruiker" msgid "Unsubscribe" msgstr "" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Hierdie gebruiker het nie 'n profiel nie." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Wysig Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Gebruikershandelinge" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Wysig profiel-instellings" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Wysig" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Stuur 'n direkte boodskap aan hierdie gebruiker" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Boodskap" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Modereer" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Gebruikersrol" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrateur" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "'n paar sekondes gelede" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "ongeveer 'n minuut gelede" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "ongeveer %d minute gelede" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "ongeveer 'n uur gelede" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "ongeveer %d uur gelede" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "ongeveer een dag gelede" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "ongeveer %d dae gelede" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "ongeveer een maand gelede" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "ongeveer %d maande gelede" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "ongeveer een jaar gelede" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s is nie 'n geldige kleur nie!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" "%s is nie 'n geldige kleur nie. Gebruik drie of ses heksadesimale karakters." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " "gestuur." +msgstr[1] "" +"Boodskap is te lank. Die maksimum is %1$d karakters. U het %2$d karakters " +"gestuur." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ongeldige grootte." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Geen groep verskaf nie." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index e0d4701a3a..2eb7e3f32d 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -1,177 +1,224 @@ -# Translation of StatusNet to Arabic +# Translation of StatusNet - Core to Arabic (العربية) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Meno25 -# Author@translatewiki.net: OsamaK +# Author: Brion +# Author: Meno25 +# Author: OsamaK # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:01+0000\n" -"Language-Team: Arabic\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:23+0000\n" +"Language-Team: Arabic <http://translatewiki.net/wiki/Portal:ar>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " -"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == " +"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " +"99) ? 4 : 5 ) ) ) );\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "نفاذ" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "إعدادات الوصول إلى الموقع" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "تسجيل" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "خاص" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "اجعل التسجيل عبر الدعوة فقط." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "بالدعوة فقط" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "عطّل التسجيل الجديد." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "مُغلق" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "حفظ إعدادت الوصول" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "احفظ" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "لا صفحة كهذه." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s والأصدقاء, الصفحة %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s والأصدقاء" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "" +msgstr "تغذية أصدقاء %s (آرإس​إس 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "" +msgstr "تغذية أصدقاء %s (آرإس​إس 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" -msgstr "" +msgstr "تغذية أصدقاء %s (أتوم)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -180,404 +227,624 @@ msgstr "" "%s لم يضف أي إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "أنت والأصدقاء" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 -#, php-format +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 +#, fuzzy, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "لم يتم العثور على وسيلة API." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "تتطلب هذه الطريقة POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "تعذّر تحديث المستخدم." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصي." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "لم يمكن حفظ الملف." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "" +msgstr "تعذّر حذف إعدادات التصميم." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "تعذّر تحديث تصميمك." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "مسار %s الزمني" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "اشتراكات %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "المفضلات" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "أعضاء مجموعة %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "لا يمكنك منع نفسك!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "فشل منع المستخدم." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "فشل إلغاء منع المستخدم." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "رسائل مباشرة من %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "جميع الرسائل المرسلة من %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "رسالة مباشرة %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "كل الرسائل المباشرة التي أرسلت إلى %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "لا نص في الرسالة!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[1] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[2] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[3] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[4] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[5] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "لم يُعثر على المستخدم المستلم." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 -#: actions/apistatusesdestroy.php:121 -msgid "No status found with that ID." +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." msgstr "" +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 +#: actions/apistatusesdestroy.php:121 +msgid "No status found with that ID." +msgstr "لا حالة وُجدت بهذا المُعرّف." + +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "هذه الحالة مفضلة بالفعل." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "تعذّر إنشاء مفضلة." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "تلك الحالة ليست مفضلة." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "تعذّر حذف المفضلة." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 #, fuzzy msgid "Could not follow user: profile not found." msgstr "لم يمكن حفظ الملف." -#: actions/apifriendshipscreate.php:118 -#, php-format +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 +#, fuzzy, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 +#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "" +msgstr "لا يمكنك عدم متابعة نفسك." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "لا يمكنك عدم متابعة نفسك." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "تعذّر تحديد المستخدم المصدر." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "الاسم المستعار مستخدم بالفعل. جرّب اسمًا آخرًا." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "الصفحة الرئيسية ليست عنونًا صالحًا." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "المنظمة طويلة جدا (الأقصى %d حرفا)." +msgstr[1] "المنظمة طويلة جدا (الأقصى %d حرفا)." +msgstr[2] "المنظمة طويلة جدا (الأقصى %d حرفا)." +msgstr[3] "المنظمة طويلة جدا (الأقصى %d حرفا)." +msgstr[4] "المنظمة طويلة جدا (الأقصى %d حرفا)." +msgstr[5] "المنظمة طويلة جدا (الأقصى %d حرفا)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "" +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." +msgstr "المنظمة طويلة جدا (الأقصى 255 حرفا)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "كنيات كيرة! العدد الأقصى هو %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "كنيات كيرة! العدد الأقصى هو %d." +msgstr[1] "كنيات كيرة! العدد الأقصى هو %d." +msgstr[2] "كنيات كيرة! العدد الأقصى هو %d." +msgstr[3] "كنيات كيرة! العدد الأقصى هو %d." +msgstr[4] "كنيات كيرة! العدد الأقصى هو %d." +msgstr[5] "كنيات كيرة! العدد الأقصى هو %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "كنية غير صالحة: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, php-format +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "" +msgstr "الاسم المستعار مستخدم بالفعل. جرّب اسمًا آخرًا." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "المجموعة غير موجودة." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 +#, fuzzy msgid "You are already a member of that group." -msgstr "" +msgstr "أنت بالفعل عضو في هذه المجموعة" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +#, fuzzy msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "لم تمنع هذا المستخدم." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "لست عضوًا في هذه المجموعة" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "لم يمكن إزالة المستخدم %1$s من المجموعة %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "مجموعات %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "مجموعات %1$s التي %2$s عضو فيها." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "مجموعات %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "مجموعات %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "ارفع ملفًا" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "توكن دخول غير صحيح محدد." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "حجم غير صالح." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "لا تملك تصريحًا." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "اسم/كلمة سر غير صحيحة!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "خطأ في قاعدة البيانات أثناء حذف مستخدم تطبيق OAuth." -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "خطأ قاعدة البيانات أثناء إدخال المستخدم OAuth app" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "اسمح أو امنع الوصول" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -585,240 +852,636 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "الحساب" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "الاسم المستعار" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "كلمة السر" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "ارفض" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "ألغِ" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "اسمح" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "أُلغي تأكيد المراسلة الفورية." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "لا تملك تصريحًا." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "لا تملك تصريحًا." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 +#, fuzzy msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "تتطلب هذه الطريقة POST." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 +#, fuzzy 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 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "لا إشعار كهذا." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "لا يمكنك تكرار ملحوظتك الخاصة." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "كرر بالفعل هذه الملاحظة." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "لم يتم العثور على وسيلة API." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "نسق غير مدعوم." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "حُذِفت الحالة." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "لا حالة وُجدت بهذه الهوية." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "تعذّر حذف هذا الإشعار." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "احذف الإشعار" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[1] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[2] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[3] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[4] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[5] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "لم يتم العثور على وسيلة API." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "لم يوجد." - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" - -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "نسق غير مدعوم." -#: actions/apitimelinefavorites.php:110 -#, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, fuzzy, php-format msgid "%1$s / Favorites from %2$s" -msgstr "" +msgstr "%1$s انضم للمجموعة %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "الإشعارات التي فضلها %1$s في %2$s!" -#: actions/apitimelinementions.php:118 -#, php-format +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "تعذر تحديث المجموعة." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "" +msgstr "حالة %1$s في يوم %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "مسار %s الزمني العام" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "الأمر لم يُجهزّ بعد." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "كرر إلى %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومة ب%s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "يستطيع المستخدمون الوالجون وحدهم تكرار الإشعارات." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." msgstr "" -#: actions/apitrends.php:87 +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "ابحث عن محتويات في الإشعارات" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "لا ملف بهذه الهوية." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +#, fuzzy msgid "API method under construction." +msgstr "لم يتم العثور على وسيلة API." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "لم يُعثرعلى المستخدم." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "لا ملف كهذا." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" msgstr "" +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "تعذّر إدراج اشتراك جديد." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "ابحث عن محتويات في الإشعارات" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "غير معروفة" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "أضف إلى المفضلات" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "لا ملف كهذا." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "أعضاء مجموعة %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "المجموعات التي %s عضو فيها" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "غير معروفة" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "جميع الأعضاء" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "لا ملف كهذا." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "تعذّر حذف المفضلة." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "لا مجموعة كهذه." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "جميع الأعضاء" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "لم يتم العثور على وسيلة API." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "لا ملف كهذا." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "لست مُشتركًا بأي أحد." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "تعذّر حفظ الاشتراك." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "الأشخاص المشتركون ب%s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "نوع ملف غير معروف" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "لا مرفق كهذا." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "لا اسم مستعار." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "لا حجم." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "حجم غير صالح." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "أفتار" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "بإمكانك رفع أفتارك الشخصي. أقصى حجم للملف هو %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "المستخدم بدون ملف مطابق." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "إعدادات الأفتار" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "الأصل" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "معاينة" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "احذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "ارفع" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" -msgstr "" +msgstr "مجموعات" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "لم يُرفع ملف." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "رُفع الأفتار." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "فشل تحديث الأفتار." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "حُذف الأفتار." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "لقد منعت مسبقا هذا المستخدم." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "امنع المستخدم" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -827,175 +1490,222 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "لا" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "نعم" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "امنع هذا المستخدم" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "لا مجموعة كهذه." -#: actions/blockedfromgroup.php:97 -#, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, fuzzy, php-format msgid "%s blocked profiles" -msgstr "" +msgstr "%1$s ملفات ممنوعة, الصفحة %2$d" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s ملفات ممنوعة, الصفحة %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 +#, fuzzy msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "قائمة بمستخدمي هذه المجموعة." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "ألغ منع المستخدم من المجموعة" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "ألغِ المنع" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "ألغِ منع هذا المستخدم" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "أرسل إلى %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "لا رمز تأكيد." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "لم يوجد رمز التأكيد." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "رمز التأكيد ليس لك!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 +#, fuzzy msgid "That address has already been confirmed." -msgstr "" +msgstr "هذا البريد الإلكتروني ملك مستخدم آخر بالفعل." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "تعذّر تحديث المستخدم." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "تعذّر حذف تأكيد البريد الإلكتروني." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "تعذّر حذف تأكيد البريد المراسلة الفورية." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "أكد العنوان" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "محادثة" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "يجب أن تسجل الدخول لتحذف تطبيقا." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "لم يوجد التطبيق." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "أنت لست مالك هذا التطبيق." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "احذف هذا التطبيق" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1003,51 +1713,114 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "لا تحذف هذا التطبيق" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "احذف هذا التطبيق" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "يجب أن تلج لتغادر مجموعة." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "لا اسم مستعار." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "لست عضوًا في هذه المجموعة" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "تعذر تحديث المجموعة." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s ترك المجموعة %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "احذف المستخدم" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "لا تحذف هذا الإشعار" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "احذف هذا المستخدم" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "لست والجًا." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "تعذّر حذف هذا الإشعار." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "احذف الإشعار" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1076,62 +1849,73 @@ msgstr "احذف هذا المستخدم" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "التصميم" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "مسار شعار غير صالح." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "مسار شعار غير صالح." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "السمة غير متوفرة: %s" -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "غيّر الشعار" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "شعار الموقع" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "شعار الموقع" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "غيّر السمة" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "سمة الموقع" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "سمة الموقع." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "سمة مخصصة" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "تغيير صورة الخلفية" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "الخلفية" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1139,75 +1923,85 @@ msgid "" msgstr "بإمكانك رفع صورة خلفية للموقع. أقصى حجم للملف هو %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "مكّن" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "عطّل" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "مكّن صورة الخلفية أو عطّلها." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +#, fuzzy msgid "Tile background image" -msgstr "" +msgstr "تغيير صورة الخلفية" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "تغيير الألوان" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "المحتوى" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "الشريط الجانبي" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "النص" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "وصلات" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "متقدم" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS مخصصة" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "استخدم المبدئيات" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "استعد التصميمات المبدئية" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "ارجع إلى المبدئي" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "أرسل" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "احفظ التصميم" @@ -1224,109 +2018,134 @@ msgstr "أضف إلى المفضلات" msgid "No such document \"%s\"" msgstr "لا مستند باسم \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "عدّل التطبيق" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "لا تطبيق كهذا." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "استخدم هذا النموذج لتعدل تطبيقك." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "الاسم مطلوب." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "الاسم طويل جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 +#, fuzzy msgid "Name already in use. Try another one." -msgstr "" +msgstr "الاسم المستعار مستخدم بالفعل. جرّب اسمًا آخرًا." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "الوصف مطلوب." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "المسار المصدر طويل جدًا." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "مسار المصدر ليس صحيحا." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "المنظمة مطلوبة." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "المنظمة طويلة جدا (الأقصى 255 حرفا)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "صفحة المنظمة الرئيسية مطلوبة." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 +#, fuzzy msgid "Callback is too long." -msgstr "" +msgstr "المسار المصدر طويل جدًا." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 +#, fuzzy msgid "Callback URL is not valid." -msgstr "" +msgstr "مسار المصدر ليس صحيحا." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "لم يمكن تحديث التطبيق." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "عدّل مجموعة %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "يجب أن تكون والجًا لتنشئ مجموعة." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "يجب أن تكون إداريا لتعدل المجموعة." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "استخدم هذا النموذج لتعديل المجموعة." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "كنية غير صالحة: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "تعذر تحديث المجموعة." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "حُفظت الخيارات." @@ -1344,12 +2163,12 @@ msgstr "أدر كيف تستلم البريد الإلكتروني من %%site.n #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "عنوان البريد الإلكتروني" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "عنوان البريد الإلكتروني المُؤكد الحالي." @@ -1358,38 +2177,32 @@ msgstr "عنوان البريد الإلكتروني المُؤكد الحالي #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "أزل" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "ألغِ" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "عنوان البريد الإلكتروني، مثل \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1397,110 +2210,118 @@ msgstr "أضف" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "البريد الإلكتروني الوارد" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكتروني." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "أرسل بريدًا إلكترونيًا إلى هذا العنوان لترسل إشعارات جديدة." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "أنشئ عنوان بريد إلكتروني لترسل إليه؛ ألغِ القديم." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "جديد" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "تفضيلات البريد الإلكتروني" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "أرسل لي إشعارات بالاشتراكات الجديدة عبر البريد الإلكتروني." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "أرسل لي بريدًا إلكرتونيًا عندما يضيف أحدهم إشعاري مفضلة." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد رسالة خاصة." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد \"@-رد\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "اسمح لأصدقائي بتنبيهي ومراسلتي عبر البريد الإلكتروني." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكتروني." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "انشر هوية مصغّرة لعنوان بريدي الإلكتروني." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "حُفظت تفضيلات البريد الإلكرتوني." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "لا عنوان بريد إلكتروني." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 +#, fuzzy msgid "Cannot normalize that email address" -msgstr "" +msgstr "عنوان البريد الإلكتروني المُؤكد الحالي." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "ليس عنوان بريد صالح." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "هذا هو عنوان بريدك الإكتروني سابقًا." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "هذا البريد الإلكتروني ملك مستخدم آخر بالفعل." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "تعذّر إدراج رمز التأكيد." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1509,62 +2330,71 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 +#, fuzzy msgid "No pending confirmation to cancel." -msgstr "" +msgstr "أُلغي تأكيد المراسلة الفورية." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "هذا عنوان بريد إلكتروني خطأ." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "تعذّر حذف تأكيد البريد الإلكتروني." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "أُلغي تأكيد البريد الإلكتروني." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "هذا ليس عنوان بريدك الإلكتروني." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "أزيل عنوان البريد الإلكتروني." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "لا عنوان بريد إلكتروني وارد." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "تعذّر تحديث سجل المستخدم." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 +#, fuzzy msgid "Incoming email address removed." -msgstr "" +msgstr "لا عنوان بريد إلكتروني وارد." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 +#, fuzzy msgid "New incoming email address added." -msgstr "" +msgstr "لا عنوان بريد إلكتروني وارد." #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "هذا الإشعار مفضلة مسبقًا!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "ألغِ تفضيل المفضلة" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "إشعارات محبوبة" @@ -1596,7 +2426,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "إشعارات %s المُفضلة" @@ -1650,8 +2480,9 @@ msgid "You can use the local subscription!" msgstr "تستطيع استخدام الاشتراك المحلي!" #: actions/finishremotesubscribe.php:99 +#, fuzzy msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "لقد منعك المستخدم." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." @@ -1665,7 +2496,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "خطأ أثناء تحديث الملف الشخصي البعيد." @@ -1687,27 +2518,30 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." +msgstr "لا يمكنك سحب أدوار المستخدمين على هذا الموقع." #: actions/grantrole.php:82 msgid "User already has this role." msgstr "لدى المستخدم هذا الدور من قبل." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "لا ملف شخصي مُحدّد." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "لا ملف شخصي بهذه الهوية." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "لا مجموعة مُحدّدة." @@ -1717,14 +2551,15 @@ 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 msgid "User is not a member of group." msgstr "المستخدم ليس عضوًا في المجموعة." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "امنع المستخدم من المجموعة" @@ -1763,13 +2598,16 @@ msgid "Group design" msgstr "تصميم المجموعة" #: actions/groupdesignsettings.php:155 +#, fuzzy msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "خصّص أسلوب عرض ملفك بصورة خلفية ومخطط ألوان من اختيارك." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "تعذّر تحديث تصميمك." @@ -1787,6 +2625,15 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "بإمكانك رفع صورة شعار مجموعتك. أقصى حجم للملف هو %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "ارفع" + +#: actions/grouplogo.php:289 +#, fuzzy +msgid "Crop" +msgstr "مجموعات" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" @@ -1799,54 +2646,61 @@ msgstr "حُدّث الشعار." msgid "Failed updating logo." msgstr "فشل رفع الشعار." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "أعضاء مجموعة %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحة %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "قائمة بمستخدمي هذه المجموعة." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "إداري" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "امنع" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "اجعل المستخدم إداريًا في المجموعة" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "اجعله إداريًا" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "اجعل هذا المستخدم إداريًا" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "مسار %s الزمني" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 -#, php-format +#, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1908,15 +2762,18 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "المستخدم ليس ممنوعًا من المجموعة." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "خطأ أثناء منع الحجب." @@ -1961,7 +2818,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1969,63 +2829,68 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "تفضيلات المحادثة الفورية" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 +#, fuzzy msgid "Send me notices through Jabber/GTalk." -msgstr "" +msgstr "أرسل لي إشعارات بالاشتراكات الجديدة عبر البريد الإلكتروني." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 +#, fuzzy msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "انشر هوية مصغّرة لعنوان بريدي الإلكتروني." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "حُفِظت التفضيلات." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "لا هوية جابر." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 +#, fuzzy msgid "Cannot normalize that Jabber ID" -msgstr "" +msgstr "ليست هوية جابر صالحة" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "ليست هوية جابر صالحة" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 +#, fuzzy msgid "That is already your Jabber ID." -msgstr "" +msgstr "هذه ليست هويتك في جابر." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 +#, fuzzy msgid "Jabber ID already belongs to another user." -msgstr "" +msgstr "هذا البريد الإلكتروني ملك مستخدم آخر بالفعل." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2033,28 +2898,28 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "هذا عنوان محادثة فورية خاطئ." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "تعذّر حذف تأكيد البريد المراسلة الفورية." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "أُلغي تأكيد المراسلة الفورية." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "هذه ليست هويتك في جابر." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "أزيل عنوان المراسلة الفورية هذا." @@ -2072,89 +2937,140 @@ msgstr "صندوق %s الوارد" msgid "This is your inbox, which lists your incoming private messages." msgstr "هذا صندوق بريدك الوارد، والذي يسرد رسائلك الخاصة الواردة." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "تم تعطيل الدعوات." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, fuzzy, php-format msgid "You must be logged in to invite other users to use %s." msgstr "يجب أن تلج لتُعدّل المجموعات." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "عنوان بريد إلكتروني غير صالح: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "أُرسلت الدعوة" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "دعوة مستخدمين جدد" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "لست مشتركًا بأحد." +msgstr[1] "لست مشتركًا بأحد." +msgstr[2] "لست مشتركًا بأحد." +msgstr[3] "لست مشتركًا بأحد." +msgstr[4] "لست مشتركًا بأحد." +msgstr[5] "لست مشتركًا بأحد." -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "استخدم هذا النموذج لدعوة أصدقائك وزملائك لاستخدام هذه الخدمة." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "عناوين البريد الإلكتروني" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "رسالة شخصية" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "أرسل" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 -#, php-format +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 +#, fuzzy, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s يستمع الآن إلى إشعاراتك على %2$s." -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2189,14 +3105,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "يجب أن تلج لتنضم إلى مجموعة." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "لا اسم مستعار." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s انضم للمجموعة %2$s" @@ -2205,17 +3114,121 @@ msgstr "%1$s انضم للمجموعة %2$s" msgid "You must be logged in to leave a group." msgstr "يجب أن تلج لتغادر مجموعة." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "لست عضوا في تلك المجموعة." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ترك المجموعة %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "رسالة ترحيب غير صالحة. أقصى طول هو 255 حرف." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "خاص" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "والج بالفعل." @@ -2236,11 +3249,11 @@ msgstr "لُج" msgid "Login to site" msgstr "لُج إلى الموقع" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "تذكّرني" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "لُج تلقائيًا في المستقبل؛ هذا الخيار ليس مُعدًا للحواسيب المشتركة!" @@ -2271,9 +3284,9 @@ msgid "Only an admin can make another user an admin." msgstr "" #: actions/makeadmin.php:96 -#, php-format +#, fuzzy, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "لم يمكن جعل %1$s إداريا للمجموعة %2$s." #: actions/makeadmin.php:133 #, php-format @@ -2289,66 +3302,77 @@ msgstr "لم يمكن جعل %1$s إداريا للمجموعة %2$s." msgid "No current status." msgstr "لا حالة جارية." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "تطبيق جديد" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "يجب أن تكون مسجل الدخول لتسجل تطبيقا." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "استخدم هذا النموذج لتسجل تطبيقا جديدا." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 +#, fuzzy msgid "Source URL is required." -msgstr "" +msgstr "مسار المصدر ليس صحيحا." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "لم يمكن إنشاء التطبيق." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "مجموعة جديدة" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "استخدم هذا النموذج لإنشاء مجموعة جديدة." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "رسالة جديدة" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "لا يمكنك إرسال رسائل إلى هذا المستخدم." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "لا محتوى!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "لا مستلم حُدّد." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "أُرسلت الرسالة" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "رسالة مباشرة ل%s تم إرسالها." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -2356,7 +3380,7 @@ msgstr "خطأ أجاكس" msgid "New notice" msgstr "إشعار جديد" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "أُرسل الإشعار" @@ -2398,13 +3422,14 @@ msgid "Updates with \"%s\"" msgstr "" #: actions/noticesearchrss.php:98 -#, php-format +#, fuzzy, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2415,46 +3440,72 @@ msgstr "أرسل التنبيه" msgid "Nudge sent!" msgstr "أُرسل التنبيه!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "يجب أن تكون مسجل الدخول لعرض تطبيقاتك." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "تطبيقات OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 -#, php-format +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 +#, fuzzy, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "يجب أن تكون مسجل الدخول لتسجل تطبيقا." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 +#, fuzzy msgid "Connected applications" -msgstr "" +msgstr "احذف هذا التطبيق" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "لست مستخدما لهذا التطبيق." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "استخدم هذا النموذج لتعدل تطبيقك." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 @@ -2462,26 +3513,26 @@ msgstr "" msgid "Notice has no profile." msgstr "ليس للمستخدم ملف شخصي." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "حالة %1$s في يوم %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "نوع المحتوى " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -2493,37 +3544,47 @@ msgstr "بحث في الأشخاص" msgid "Notice Search" msgstr "بحث الإشعارات" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "إعدادات أخرى" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "أدر خيارات أخرى عديدة." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (خدمة حرة)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "قصّر المسارات بـ" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "خدمة التقصير المطلوب استخدامها." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "اعرض تصاميم الملف الشخصي" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "أظهر أو أخفِ تصاميم الملفات الشخصية." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "" +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" #: actions/otp.php:69 msgid "No user ID specified." @@ -2584,7 +3645,7 @@ msgid "6 or more characters" msgstr "6 أحرف أو أكثر" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "أكّد" @@ -2596,11 +3657,11 @@ msgstr "نفس كلمة السر أعلاه" msgid "Change" msgstr "غيّر" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "يجب أن تكون كلمة السر 6 حروف أو أكثر." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "كلمتا السر غير متطابقتين." @@ -2620,156 +3681,290 @@ msgstr "تعذّر حفظ كلمة السر الجديدة." msgid "Password saved." msgstr "حُفظت كلمة السر." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "المسارات" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "لا يمكن قراءة دليل السمات: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "لا يمكن الكتابة في دليل الأفتارات: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "لا يمكن الكتابة في دليل الخلفيات: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "لا يمكن قراءة دليل المحليات: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 +#, fuzzy msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "رسالة ترحيب غير صالحة. أقصى طول هو 255 حرف." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "الموقع" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "خادوم" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "اسم مضيف خادوم الموقع." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "المسار" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "مسار الموقع" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "مسار المحليات" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "دليل السمات" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "مسار دليل المحليات" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "مسارات فاخرة" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "أأستخدم مسارات فاخرة (يمكن قراءتها وتذكرها بسهولة أكبر)؟" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "السمة" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "خادوم السمات" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "سمة الموقع." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "مسار السمات" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "دليل السمات" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "أفتارات" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "خادوم الأفتارات" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "مسار الأفتارات" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "دليل الأفتار." - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "خلفيات" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "خادوم الخلفيات" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "مسار الخلفيات" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "دليل الخلفيات" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "مطلقا" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "أحيانًا" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "دائمًا" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "استخدم SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "خادم SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "مسار الموقع" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "دليل السمات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "أفتارات" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "خادوم الأفتارات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "سمة الموقع." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "مسار الأفتارات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "فشل تحديث الأفتار." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "دليل الأفتار." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "خلفيات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "سمة الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "مرفقات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "سمة الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "لا مرفقات." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "سمة الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "مطلقا" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "أحيانًا" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "دائمًا" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "استخدم SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "احفظ المسارات" @@ -2805,136 +4000,190 @@ msgstr "محتوى إشعار غير صالح." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "إعدادات الملف الشخصي" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "بإمكانك تحديث بيانات ملفك الشخصي ليعرف عنك الناس أكثر." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "معلومات الملف الشخصي" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "الاسم الكامل" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "الصفحة الرئيسية" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "مسار صفحتك الرئيسية أو مدونتك أو ملفك الشخصي على موقع آخر" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "تكلم عن نفسك واهتمامتك في %d حرف" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "تكلم عن نفسك واهتمامتك في %d حرف" +msgstr[1] "تكلم عن نفسك واهتمامتك في %d حرف" +msgstr[2] "تكلم عن نفسك واهتمامتك في %d حرف" +msgstr[3] "تكلم عن نفسك واهتمامتك في %d حرف" +msgstr[4] "تكلم عن نفسك واهتمامتك في %d حرف" +msgstr[5] "تكلم عن نفسك واهتمامتك في %d حرف" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "صِف نفسك واهتماماتك" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "السيرة" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "الموقع" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "مكان تواجدك، على سبيل المثال \"المدينة، الولاية (أو المنطقة)، الدولة\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "شارك مكاني الحالي عند إرسال إشعارات" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "الوسوم" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "سِم نفسك (حروف وأرقام و \"-\" و \".\" و \"_\")، افصلها بفاصلة (',') أو مسافة." -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "اللغة" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "اللغة المفضلة" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "المنطقة الزمنية" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "ما المنطقة الزمنية التي تتواجد فيها عادة؟" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "اشترك تلقائيًا بأي شخص يشترك بي (يفضل أن يستخدم لغير البشر)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "الاسم طويل جدا (الأقصى %d حرفا)." +msgstr[1] "الاسم طويل جدا (الأقصى %d حرفا)." +msgstr[2] "الاسم طويل جدا (الأقصى %d حرفا)." +msgstr[3] "الاسم طويل جدا (الأقصى %d حرفا)." +msgstr[4] "الاسم طويل جدا (الأقصى %d حرفا)." +msgstr[5] "الاسم طويل جدا (الأقصى %d حرفا)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "لم تُختر المنطقة الزمنية." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "" +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "الاسم طويل جدا (الأقصى 255 حرفا)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "وسم غير صالح: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "تعذّر تحديث سجل المستخدم." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "لم يمكن حفظ تفضيلات الموقع." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "تعذّر حفظ الملف الشخصي." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2944,8 +4193,9 @@ msgid "Beyond the page limit (%s)." msgstr "بعد حد الصفحة (%s)." #: actions/public.php:92 +#, fuzzy msgid "Could not retrieve public stream." -msgstr "" +msgstr "تعذّر إنشاء الكنى." #: actions/public.php:130 #, php-format @@ -3008,32 +4258,45 @@ msgstr "" "هنا %%site.name%%، خدمة [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" "blogging) المبنية على البرنامج الحر [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "سحابة الوسوم العمومية" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "هذه هي أكثر الوسوم شهرة على %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "كن أول من يُرسل!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "سحابة الوسوم" @@ -3062,8 +4325,9 @@ msgid "This confirmation code is too old. Please start again." msgstr "رمز التأكيد هذا قديم جدًا. من فضلك ابدأ من جديد." #: actions/recoverpassword.php:111 +#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "عنوان البريد الإلكتروني المُؤكد الحالي." #: actions/recoverpassword.php:152 msgid "" @@ -3108,8 +4372,9 @@ msgid "Unknown action" msgstr "إجراء غير معروف" #: actions/recoverpassword.php:236 +#, fuzzy msgid "6 or more characters, and don't forget it!" -msgstr "" +msgstr "6 أحرف أو أكثر" #: actions/recoverpassword.php:243 msgid "Reset" @@ -3120,8 +4385,9 @@ msgid "Enter a nickname or email address." msgstr "أدخل اسمًا مستعارًا أو عنوان بريد إلكتروني." #: actions/recoverpassword.php:282 +#, fuzzy msgid "No user with that email address or username." -msgstr "" +msgstr "لا يوجد عنوان بريد إلكتروني مُسجّل لهذا المستخدم." #: actions/recoverpassword.php:299 msgid "No registered email address for that user." @@ -3138,18 +4404,21 @@ msgid "" msgstr "" #: actions/recoverpassword.php:357 +#, fuzzy msgid "Unexpected password reset." -msgstr "" +msgstr "أعد ضبط كلمة السر" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "يجب أن تكون كلمة السر 6 محارف أو أكثر." #: actions/recoverpassword.php:369 +#, fuzzy msgid "Password and confirmation do not match." -msgstr "" +msgstr "كلمتا السر غير متطابقتين." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "خطأ أثناء ضبط المستخدم." @@ -3157,7 +4426,7 @@ msgstr "خطأ أثناء ضبط المستخدم." msgid "New password successfully saved. You are now logged in." msgstr "" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "عذرًا، الأشخاص المدعوون وحدهم يستطيعون التسجيل." @@ -3169,7 +4438,7 @@ msgstr "عذرا، رمز دعوة غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3177,80 +4446,86 @@ msgstr "سجّل" msgid "Registration not allowed." msgstr "لا يُسمح بالتسجيل." -#: actions/register.php:205 +#: actions/register.php:209 +#, fuzzy msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "لا يمكنك تكرار ملاحظتك الشخصية." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "عنوان البريد الإلكتروني موجود مسبقًا." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "اسم مستخدم أو كلمة سر غير صالحة." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 +#, fuzzy msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "" +msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 حروف أو أكثر. مطلوب." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "نفس كلمة السر أعلاه. مطلوب." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "البريد الإلكتروني" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "مسار صفحتك الرئيسية أو مدونتك أو ملفك الشخصي على موقع آخر" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "جميع الحقوق محفوظة." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3269,7 +4544,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3308,7 +4583,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "اشترك" @@ -3344,7 +4619,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "مكرر" @@ -3353,7 +4628,7 @@ msgid "Repeated!" msgstr "مكرر!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "الردود على %s" @@ -3374,9 +4649,9 @@ msgid "Replies feed for %s (RSS 2.0)" msgstr "" #: actions/replies.php:159 -#, php-format +#, fuzzy, php-format msgid "Replies feed for %s (Atom)" -msgstr "" +msgstr "الردود على %s" #: actions/replies.php:199 #, php-format @@ -3400,9 +4675,9 @@ msgid "" msgstr "" #: actions/repliesrss.php:72 -#, php-format +#, fuzzy, php-format msgid "Replies to %1$s on %2$s!" -msgstr "" +msgstr "الردود على %1$s، الصفحة %2$d" #: actions/revokerole.php:75 msgid "You cannot revoke user roles on this site." @@ -3417,26 +4692,29 @@ msgid "StatusNet" msgstr "ستاتس نت" #: 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 "المستخدم مسكت من قبل." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "الجلسات" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "إعدادات جلسة موقع StatusNet هذا." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 +#, fuzzy msgid "Handle sessions" -msgstr "" +msgstr "الجلسات" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." @@ -3451,7 +4729,6 @@ msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسة." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3460,32 +4737,34 @@ msgid "You must be logged in to view an application." msgstr "يجب أن تكون مسجل الدخول لرؤية تطبيق." #: actions/showapplication.php:157 +#, fuzzy msgid "Application profile" -msgstr "" +msgstr "معلومات التطبيق" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "أيقونة" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "الاسم" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "المنظمة" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "إحصاءات" @@ -3496,13 +4775,19 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 +#, fuzzy msgid "Application actions" -msgstr "" +msgstr "معلومات التطبيق" #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "احذف" + #: actions/showapplication.php:261 msgid "Application info" msgstr "معلومات التطبيق" @@ -3543,8 +4828,9 @@ msgid "%1$s's favorite notices, page %2$d" msgstr "إشعارات %1$s المُفضلة، الصفحة %2$d" #: actions/showfavorites.php:132 +#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "تعذّر إنشاء مفضلة." #: actions/showfavorites.php:171 #, php-format @@ -3590,77 +4876,107 @@ msgstr "" msgid "This is a way to share what you like." msgstr "إنها إحدى وسائل مشاركة ما تحب." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "مجموعة %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "مجموعة %1$s، الصفحة %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "ملف المجموعة الشخصي" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +#, fuzzy msgid "Group actions" -msgstr "" +msgstr "تصرفات المستخدم" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:355 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, fuzzy, php-format msgid "FOAF for %s group" -msgstr "" +msgstr "مجموعة %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "أنشئت" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "الأعضاء" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3675,7 +4991,10 @@ msgstr "" "[انضم الآن](%%%%action.register%%%%) لتصبح عضوًا في هذه المجموعة ومجموعات " "أخرى عديدة! ([اقرأ المزيد](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3687,86 +5006,117 @@ msgstr "" "en.wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" "(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "الإداريون" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "لا رسالة كهذه." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "يحق للمُرسل والمستلم فقط قراءة هذه الرسالة." -#: actions/showmessage.php:108 -#, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, fuzzy, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" -#: actions/showmessage.php:113 -#, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, fuzzy, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "نتائج البحث ل\"%1$s\" على %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." msgstr "حُذف الإشعار." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s، الصفحة %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "الإشعارات الموسومة ب%s، الصفحة %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s، الصفحة %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "" -#: actions/showstream.php:148 -#, php-format +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, fuzzy, php-format msgid "FOAF for %s" -msgstr "" +msgstr "صندوق %s الصادر" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3780,7 +5130,9 @@ msgstr "" "[انضم الآن](%%%%action.register%%%%) لتتابع إشعارت **%s** وغيره! ([اقرأ " "المزيد](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3791,7 +5143,8 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "تكرار ل%s" @@ -3894,38 +5247,47 @@ msgid "Maximum number of characters for notices." msgstr "أقصى عدد للحروف في الإشعارات." #: actions/siteadminpanel.php:278 +#, fuzzy msgid "Dupe limit" -msgstr "" +msgstr "حد النص" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "إشعار الموقع" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "عدّل رسالة الموقع العامة" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "تعذّر حفظ إشعار الموقع." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "نص إشعار الموقع" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "نص إشعار عام للموقع (255 حرف كحد أقصى؛ يسمح بHTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "احفظ إشعار الموقع" @@ -3953,13 +5315,15 @@ msgstr "عنوان الرسائل القصيرة" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 +#, fuzzy msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "عنوان البريد الإلكتروني المُؤكد الحالي." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 +#, fuzzy msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "إن رقم التأكيد هذا خاطئ." #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 @@ -4011,18 +5375,21 @@ msgstr "لا رقم هاتف." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 +#, fuzzy msgid "No carrier selected." -msgstr "" +msgstr "حُذف الإشعار." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 +#, fuzzy msgid "That is already your phone number." -msgstr "" +msgstr "هذا ليس رقم هاتفك." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 +#, fuzzy msgid "That phone number already belongs to another user." -msgstr "" +msgstr "هذا البريد الإلكتروني ملك مستخدم آخر بالفعل." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 @@ -4059,8 +5426,9 @@ msgstr "" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 +#, fuzzy msgid "Select a carrier" -msgstr "" +msgstr "اختر وسمًا لترشيحه" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -4078,7 +5446,7 @@ msgstr "لم تدخل رمزًا" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4088,16 +5456,18 @@ msgid "Manage snapshot configuration" msgstr "غيّر ضبط الموقع" #: actions/snapshotadminpanel.php:127 +#, fuzzy msgid "Invalid snapshot run value." -msgstr "" +msgstr "محتوى إشعار غير صالح." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 +#, fuzzy msgid "Invalid snapshot report URL." -msgstr "" +msgstr "مسار شعار غير صالح." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4136,12 +5506,15 @@ msgstr "" msgid "Save snapshot settings" msgstr "اذف إعدادت الموقع" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 +#, fuzzy msgid "You are not subscribed to that profile." -msgstr "" +msgstr "لست مُشتركًا بأي أحد." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4149,10 +5522,6 @@ msgstr "تعذّر حفظ الاشتراك." msgid "This action only accepts POST requests." msgstr "هذا الإجراء يقبل طلبات POST فقط." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "لا ملف كهذا." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4161,63 +5530,84 @@ msgstr "" msgid "Subscribed" msgstr "مُشترك" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "مشتركو %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "مشتركو %1$s, الصفحة %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." -#: actions/subscribers.php:67 -#, php-format +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 +#, fuzzy, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "اشتراكات %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "اشتراكات%1$s, الصفحة %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "هؤلاء الأشخاص الذي تستمع إليهم." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "هؤلاء الأشخاص الذي يستمع %s إليهم." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4227,16 +5617,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, fuzzy, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "%1$s يستمع الآن إلى إشعاراتك على %2$s." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "الردود على %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "جابر" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "رسائل قصيرة" @@ -4265,16 +5666,16 @@ msgid "No ID argument." msgstr "لا مدخل هوية." #: actions/tagother.php:65 -#, php-format +#, fuzzy, php-format msgid "Tag %s" -msgstr "" +msgstr "الوسوم" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "ملف المستخدم الشخصي" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "صورة" @@ -4283,10 +5684,12 @@ msgid "Tag user" msgstr "اوسم المستخدم" #: actions/tagother.php:151 +#, fuzzy msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"سِم نفسك (حروف وأرقام و \"-\" و \".\" و \"_\")، افصلها بفاصلة (',') أو مسافة." #: actions/tagother.php:193 msgid "" @@ -4298,8 +5701,9 @@ msgid "Could not save tags." msgstr "تعذّر حفظ الوسوم." #: actions/tagother.php:236 +#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "استخدم هذا النموذج لتعدل تطبيقك." #: actions/tagrss.php:35 msgid "No such tag." @@ -4333,78 +5737,101 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "المستخدم" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "رسالة ترحيب غير صالحة. أقصى طول هو 255 حرف." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "الملف الشخصي" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "حد السيرة" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "مستخدمون جدد" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "ترحيب المستخدمين الجدد" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "نص الترحيب بالمستخدمين الجدد (255 حرفًا كحد أقصى)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "الاشتراك المبدئي" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "أشرك المستخدمين الجدد بهذا المستخدم تلقائيًا." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "الدعوات" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "الدعوات مُفعلة" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" -#: actions/userauthorization.php:105 -msgid "Authorize subscription" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" msgstr "" +#: actions/userauthorization.php:105 +#, fuzzy +msgid "Authorize subscription" +msgstr "جميع الاشتراكات" + #: actions/userauthorization.php:110 msgid "" "Please check these details to make sure that you want to subscribe to this " @@ -4412,7 +5839,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "الرخصة" @@ -4438,8 +5867,9 @@ msgid "No authorization request!" msgstr "لا طلب استيثاق!" #: actions/userauthorization.php:254 +#, fuzzy msgid "Subscription authorized" -msgstr "" +msgstr "رُفض الاشتراك" #: actions/userauthorization.php:256 msgid "" @@ -4480,9 +5910,9 @@ msgid "Profile URL ‘%s’ is for a local user." msgstr "" #: actions/userauthorization.php:345 -#, php-format +#, fuzzy, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "مسار المصدر ليس صحيحا." #: actions/userauthorization.php:350 #, php-format @@ -4494,11 +5924,13 @@ msgstr "" msgid "Wrong image type for avatar URL ‘%s’." msgstr "" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "تصميم الملف الشخصي" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4534,10 +5966,10 @@ msgstr "جرّب [البحث عن مجموعات](%%action.groupsearch%%) وال #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, php-format +#: lib/atomusernoticefeed.php:75 +#, fuzzy, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" #: actions/version.php:75 #, php-format @@ -4585,7 +6017,7 @@ msgid "Plugins" msgstr "الملحقات" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "النسخة" @@ -4593,61 +6025,120 @@ msgstr "النسخة" msgid "Author(s)" msgstr "المؤلف(ون)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "فضّل" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "لقد أضاف %s (@%s) إشعارك إلى مفضلاته" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "حجم غير صالح." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "الانضمام للمجموعة فشل." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "ليس جزءا من المجموعة." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "ترك المجموعة فشل." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "خطأ أثناء حفظ المستخدم؛ غير صالح." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "انضم" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4666,19 +6157,20 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "أنت ممنوع من إرسال رسائل مباشرة." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "تعذّر إدراج الرسالة." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "تعذّر تحليل الرسالة." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4688,73 +6180,88 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "خطأ قاعدة البيانات أثناء إدخال المستخدم OAuth app" +msgstr "خطأ في قاعدة البيانات أثناء حذف مستخدم تطبيق OAuth." #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "مشكلة في حفظ الإشعار. طويل جدًا." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "مشكلة في حفظ الإشعار. مستخدم غير معروف." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 +#, fuzzy msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "أنت ممنوع من إرسال رسائل مباشرة." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "تعذر تحديث المجموعة المحلية." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" -msgstr "آر تي @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4766,307 +6273,346 @@ msgid "Missing profile." msgstr "ليس للمستخدم ملف شخصي." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 #, fuzzy msgid "Unable to save tag." msgstr "تعذّر حفظ إشعار الموقع." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "مُشترك أصلا!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "لقد منعك المستخدم." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "غير مشترك!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "لم يمكن حذف اشتراك ذاتي." +msgstr "تعذّر حفظ الاشتراك." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "تعذّر حذف الاشتراك." +msgstr "تعذّر حفظ الاشتراك." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "تعذّر حذف الاشتراك." +msgstr "تعذّر حفظ الاشتراك." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s يستمع الآن إلى إشعاراتك على %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعة." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "تعذّر ضبط عضوية المجموعة." +msgstr "تعذّر إنشاء المجموعة." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "تعذّر ضبط عضوية المجموعة." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "تعذّر حفظ الاشتراك." +msgstr "تعذر تحديث المجموعة المحلية." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "غيّر إعدادات ملفك الشخصي" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "ارفع أفتارًا" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "غير كلمة سرّك" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "غير أسلوب التعامل مع البريد الإلكتروني" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "صمّم ملفك الشخصي" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "خيارات أخرى" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "أخرى" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "صفحة غير مُعنونة" -#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 -msgid "Primary site navigation" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +#, fuzzy +msgid "Primary site navigation" +msgstr "ضبط الموقع الأساسي" + #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصي ومسار الأصدقاء الزمني" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "الصفحة الشخصية" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "غير بريدك الإلكتروني وكلمة سرّك وأفتارك وملفك الشخصي" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "الحساب" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "اتصل بالخدمات" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "اتصل" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "إداري" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "ادعُ أصدقائك وزملائك للانضمام إليك في %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "ادعُ" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "اخرج" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "سجّل" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "لُج" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "مساعدة" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نصوص" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "ابحث" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "إشعار الموقع" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "المشاهدات المحلية" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "إشعار الصفحة" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 +#, fuzzy msgid "Secondary site navigation" -msgstr "" +msgstr "ضبط الموقع الأساسي" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "مساعدة" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "عن" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "الأسئلة المكررة" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "الشروط" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "خصوصية" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "المصدر" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "اتصل" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "الجسر" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "رخصة برنامج StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5076,13 +6622,16 @@ msgstr "" "broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5094,343 +6643,467 @@ msgstr "" "agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "رخصة محتوى الموقع" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 +#, fuzzy msgid "Pagination" -msgstr "" +msgstr "تسجيل" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "بعد" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "قبل" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "صورة" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "لا يمكنك إجراء تغييرات على هذا الموقع." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "التغييرات لهذه اللوحة غير مسموح بها." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 +#, fuzzy msgid "showForm() not implemented." -msgstr "" +msgstr "الأمر لم يُجهزّ بعد." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 +#, fuzzy msgid "saveSettings() not implemented." -msgstr "" +msgstr "الأمر لم يُجهزّ بعد." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "ضبط التصميم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "ضبط المستخدم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "المستخدم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "ضبط الحساب" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "ضبط المسارات" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "ضبط الجلسات" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "عدّل إشعار الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "ضبط المسارات" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "عدّل التطبيق" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "تعذّر إنشاء الكنى." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "لم يمكن إنشاء التطبيق." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "تعذّر إدراج الرسالة." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "خطأ في قاعدة البيانات أثناء حذف مستخدم تطبيق OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "أيقونة لهذا التطبيق" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "صف تطبيقك" +msgstr[1] "صف تطبيقك" +msgstr[2] "صف تطبيقك" +msgstr[3] "صف تطبيقك" +msgstr[4] "صف تطبيقك" +msgstr[5] "صف تطبيقك" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "صف تطبيقك" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "مسار صفحة هذا التطبيق" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "مسار المصدر" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "أيقونة لهذا التطبيق" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 +#, fuzzy msgid "URL for the homepage of the organization" -msgstr "" +msgstr "مسار صفحة هذا التطبيق" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "متصفح" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "ألغِ" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "اسحب" +msgstr "أزل" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "مرفقات" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "المؤلف" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "المزود" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 +#, fuzzy msgid "Notices where this attachment appears" -msgstr "" +msgstr "وسوم هذا المرفق" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "تغيير كلمة السر فشل" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "تغيير كلمة السر غير مسموح به" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "امنع" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "نتائج الأمر" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "خطأ أجاكس" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "اكتمل الأمر" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "فشل الأمر" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "الملاحظة بهذا الرقم غير موجودة" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +#, fuzzy +msgid "Notice with that id does not exist." +msgstr "لا ملف بهذه الهوية." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "ليس للمستخدم إشعار أخير" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" -msgstr "لم يمكن إيجاد مستخدم بالاسم %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." +msgstr "تعذّر إيجاد المستخدم الهدف." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "لم يمكن إيجاد مستخدم بالاسم %s" - -#: lib/command.php:180 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." msgstr "" -#: lib/command.php:225 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 +#, fuzzy +msgid "Sorry, this command is not yet implemented." +msgstr "الأمر لم يُجهزّ بعد." + +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, php-format -msgid "Nudge sent to %s" -msgstr "التنبيه تم إرساله إلى %s" +#: lib/command.php:238 +#, fuzzy, php-format +msgid "Nudge sent to %s." +msgstr "أرسل التنبيه" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5441,173 +7114,211 @@ msgstr "" "المشتركون: %2$s\n" "الإشعارات: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 +#, fuzzy msgid "Notice marked as fave." +msgstr "هذا الإشعار مفضلة مسبقًا!" + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." msgstr "" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "أنت بالفعل عضو في هذه المجموعة" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:405 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s." +msgid "%1$s left group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "لم يمكن إزالة المستخدم %1$s من المجموعة %2$s." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "الاسم الكامل: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "الموقع: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "الصفحة الرئيسية: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "عن: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[1] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[2] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[3] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[4] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[5] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "رسالة مباشرة إلى %s تم إرسالها" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +#, fuzzy msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "لا يمكنك تكرار ملاحظتك الخاصة" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "كرر بالفعل هذا الإشعار" +msgstr "أنت ممنوع من إرسال رسائل مباشرة." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, php-format -msgid "Notice from %s repeated" +#: lib/command.php:553 +#, fuzzy, php-format +msgid "Notice from %s repeated." msgstr "الإشعار من %s مكرر" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "خطأ تكرار الإشعار." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[1] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[2] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[3] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[4] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[5] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "رُد على رسالة %s" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "خطأ أثناء حفظ الإشعار." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "مُشترك ب%s" - -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:664 -#, php-format -msgid "Unsubscribed from %s" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "" + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "الأمر لم يُجهزّ بعد." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "الإشعار مُطفأ." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "تعذّر إطفاء الإشعارات." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "الإشعار يعمل." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "تعذّر تشغيل الإشعار." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "ألغِ الاشتراك" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "لست مُشتركًا بأي أحد." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "لست مشتركًا بأحد." @@ -5617,11 +7328,16 @@ msgstr[3] "أنت مشترك بهؤلاء الأشخاص:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "لا أحد مشترك بك." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "لا أحد مشترك بك." @@ -5631,11 +7347,16 @@ msgstr[3] "هؤلاء الأشخاص مشتركون بك:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "لست عضوًا في أي مجموعة." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "لست عضوًا في أي مجموعة." @@ -5645,7 +7366,8 @@ msgstr[3] "أنت عضو في هذه المجموعات:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5725,90 +7447,136 @@ msgstr "" "tracks - لم يطبق بعد.\n" "tracking - لم يطبق بعد.\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "لا رمز تأكيد." + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" - -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "محادثة فورية" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "رسائل قصيرة" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "تحديثات عبر الرسائل القصيرة" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "اتصالات" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +#, fuzzy msgid "Authorized connected applications" -msgstr "" +msgstr "تطبيقات OAuth" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "خطأ قاعدة بيانات" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "ارفع ملفًا" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "تستطيع رفع صورتك الشخصية. أقصى حجم للملف هو 2 م.ب." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "مكّن" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "عطّل" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "أعد الضبط" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "استعيدت مبدئيات التصميم." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "ألغِ تفضيل هذا الإشعار" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "فضّل هذا الإشعار" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "فضّل" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "آرإس​إس 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "آرإس​إس 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "أتوم" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "تصدير البيانات" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5839,70 +7607,136 @@ msgstr "اذهب" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." +msgstr "مسار صفحة هذا التطبيق" #: lib/groupeditform.php:168 msgid "Describe the group or topic" msgstr "صِف المجموعة أو الموضوع" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "صِف المجموعة أو الموضوع" +msgstr[1] "صِف المجموعة أو الموضوع" +msgstr[2] "صِف المجموعة أو الموضوع" +msgstr[3] "صِف المجموعة أو الموضوع" +msgstr[4] "صِف المجموعة أو الموضوع" +msgstr[5] "صِف المجموعة أو الموضوع" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "مكان تواجدك، على سبيل المثال \"المدينة، الولاية (أو المنطقة)، الدولة\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "مجموعات" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "ممنوع" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 -#, php-format -msgid "Edit %s group properties" -msgstr "عدّل خصائص مجموعة %s" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "الشعار" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "أضف أو عدّل شعار %s" - +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format -msgid "Add or edit %s design" -msgstr "أضف أو عدل تصميم %s" +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "المجموعات الأكثر أعضاءً" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "المجموعات الأكثر مرسلات" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "وسوم في إشعارات مجموعة %s" @@ -5913,41 +7747,75 @@ msgid "This page is not available in a media type you accept" msgstr "" #: lib/imagefile.php:72 +#, fuzzy msgid "Unsupported image file format." -msgstr "" +msgstr "نسق غير مدعوم." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 +#, fuzzy msgid "Partial upload." -msgstr "" +msgstr "لم يُرفع ملف." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 +#, fuzzy msgid "Lost our file." -msgstr "" +msgstr "لا ملف كهذا." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "ميجابايت" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "ميجابايت" +msgstr[1] "ميجابايت" +msgstr[2] "ميجابايت" +msgstr[3] "ميجابايت" +msgstr[4] "ميجابايت" +msgstr[5] "ميجابايت" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "كيلوبايت" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "كيلوبايت" +msgstr[1] "كيلوبايت" +msgstr[2] "كيلوبايت" +msgstr[3] "كيلوبايت" +msgstr[4] "كيلوبايت" +msgstr[5] "كيلوبايت" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #: lib/jabber.php:387 #, php-format @@ -5959,10 +7827,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "مصدر صندوق وارد غير معروف %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "انضم" - #: lib/leaveform.php:114 msgid "Leave" msgstr "غادر" @@ -5975,27 +7839,29 @@ msgstr "لُج باسم مستخدم وكلمة سر" msgid "Sign up for a new account" msgstr "سجّل حسابًا جديدًا" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "تأكيد عنوان البريد الإلكتروني" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "مرحبًا، %s.\n" "\n" @@ -6010,22 +7876,29 @@ msgstr "" "شكرًا على الوقت الذي أمضيته، \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s يستمع الآن إلى إشعاراتك على %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6033,10 +7906,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s يستمع الآن إلى إشعاراتك على %2$s.\n" "\n" @@ -6049,20 +7922,24 @@ msgstr "" "----\n" "غيّر خيارات البريد الإلكتروني والإشعار في %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "السيرة: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "عنوان بريد إلكتروني جديد للإرسال إلى %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6072,34 +7949,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "حالة %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "تأكيد الرسالة القصيرة" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "لقد نبهك %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6115,14 +7997,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "رسالة خاصة جديدة من %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6141,14 +8027,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "لقد أضاف %s (@%s) إشعارك إلى مفضلاته" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6170,7 +8061,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6178,13 +8069,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "لقد أرسل %s (@%s) إشعارًا إليك" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6212,8 +8110,9 @@ msgid "" msgstr "" #: lib/mailbox.php:89 +#, fuzzy msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "يستطيع المستخدمون الوالجون وحدهم تكرار الإشعارات." #: lib/mailbox.php:139 msgid "" @@ -6221,7 +8120,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "من" @@ -6234,164 +8133,224 @@ msgid "Not a registered user." msgstr "ليس مستخدمًا مسجلًا." #: lib/mailhandler.php:46 +#, fuzzy msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "هذا ليس عنوان بريدك الإلكتروني." #: lib/mailhandler.php:50 +#, fuzzy msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "لا عنوان بريد إلكتروني وارد." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "نوع رسالة غير مدعوم: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "فشل في كتابة الملف إلى القرص." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "أوقفت إضافة رفع الملف." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "لم يمكن تحديد نوع MIME للملف." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "أرسل إشعارًا مباشرًا" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "اختر وسمًا لترشيحه" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "غير مشترك!" + +#: lib/messageform.php:153 msgid "To" msgstr "إلى" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "المحارف المتوفرة" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "أرسل" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +#, fuzzy +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "ما الأخبار يا %s؟" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "أرفق" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "شارك موقعي" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "لا تشارك موقعي" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "ش" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "ج" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "ر" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "غ" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "في" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6404,58 +8363,56 @@ msgid "Nudge" msgstr "نبّه" #: lib/nudgeform.php:128 +#, fuzzy msgid "Send a nudge to this user" +msgstr "أرسل رسالة مباشرة إلى هذا المستخدم" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "خطأ أثناء إدراج الملف الشخصي الجديد" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "خطأ في إدراج الأفتار" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "خطأ أثناء تحديث الملف الشخصي البعيد" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "خطأ أثناء إدراج الملف الشخصي البعيد" - -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "ضاعف الإشعار" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "تعذّر إدراج اشتراك جديد." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "شخصية" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "الردود" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "المفضلات" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "صندوق الوارد" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "رسائلك الواردة" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "صندوق الصادر" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "رسائلك المُرسلة" @@ -6464,7 +8421,8 @@ msgstr "رسائلك المُرسلة" msgid "Tags in %s's notices" msgstr "وسوم في إشعارات %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "غير معروفة" @@ -6546,9 +8504,11 @@ msgstr "كرّر هذا الإشعار" msgid "Revoke the \"%s\" role from this user" msgstr "امنع هذا المستخدم من هذه المجموعة" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "لم يتم العثور على وسيلة API." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6558,19 +8518,25 @@ msgstr "" msgid "Sandbox this user" msgstr "أضف هذا المستخدم إلى صندوق الرمل" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "ابحث في الموقع" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "الكلمات المفتاحية" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "ابحث" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "ابحث في المساعدة" @@ -6626,9 +8592,9 @@ msgid "Invite" msgstr "ادعُ" #: lib/subgroupnav.php:106 -#, php-format +#, fuzzy, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "ادعُ أصدقائك وزملائك للانضمام إليك في %s" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6644,6 +8610,12 @@ msgstr "" msgid "None" msgstr "لا شيء" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "حجم غير صالح." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6653,48 +8625,66 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "فشل تحديث الأفتار." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "خطأ أثناء تحديث الملف الشخصي البعيد" +msgstr "خطأ أثناء تحديث الملف الشخصي البعيد." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "أعلى المرسلين" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "ألغِ المنع" + #: lib/unsandboxform.php:69 +#, fuzzy msgid "Unsandbox" -msgstr "" +msgstr "أزل هذا المستخدم من صندوق الرمل" #: lib/unsandboxform.php:80 msgid "Unsandbox this user" @@ -6716,122 +8706,199 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "ليس للمستخدم ملف شخصي." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "عدّل الأفتار" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "تصرفات المستخدم" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "حذف المستخدم قيد التنفيذ..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "عدّل إعدادات الملف الشخصي" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "عدّل" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "أرسل رسالة مباشرة إلى هذا المستخدم" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "رسالة" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "راقب" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "دور المستخدم" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "إداري" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "مراقب" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "قبل دقيقة تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "قبل ساعة تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "قبل يوم تقريبا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "قبل شهر تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "قبل سنة تقريبًا" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s ليس لونًا صحيحًا!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s ليس لونًا صحيحًا!" + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[1] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[2] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[3] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[4] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." +msgstr[5] "هذه طويلة جدًا. أطول حجم للإشعار %d حرفًا." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "حجم غير صالح." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "لا هوية مستخدم محددة." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 0b06f2817f..4f56fcd5de 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -1,183 +1,228 @@ -# Translation of StatusNet to Egyptian Spoken Arabic +# Translation of StatusNet - Core to Egyptian Spoken Arabic (مصرى) +# Expored from translatewiki.net # -# Author@translatewiki.net: Dudi -# Author@translatewiki.net: Ghaly -# Author@translatewiki.net: Meno25 +# Author: Dudi +# Author: Ghaly +# Author: Meno25 # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:02+0000\n" -"Language-Team: Egyptian Spoken Arabic\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:25+0000\n" +"Language-Team: Egyptian Spoken Arabic <http://translatewiki.net/wiki/Portal:" +"arz>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "نفاذ" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 #, fuzzy msgid "Site access settings" msgstr "اذف إعدادت الموقع" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 #, fuzzy msgid "Registration" msgstr "سجّل" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "خاص" +msgstr "خصوصية" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "بالدعوه فقط" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "عطّل التسجيل الجديد." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "مُغلق" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "اذف إعدادت الموقع" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 #, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "أرسل" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "لا صفحه كهذه" +msgstr "لا وسم كهذا." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s و الصحاب, صفحه %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s والأصدقاء" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -186,406 +231,627 @@ msgstr "" "%s لم يضف أى إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "أنت والأصدقاء" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 -#, php-format +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 +#, fuzzy, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "%1$s و الصحاب, صفحه %2$d" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "الـ API method مش موجوده." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "تتطلب هذه الطريقه POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "تعذّر تحديث المستخدم." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصى." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "لم يمكن حفظ الملف." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "" +msgstr "تعذّر حذف إعدادات التصميم." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "تعذّر تحديث تصميمك." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "مسار %s الزمني" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "اشتراكات %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "المفضلات" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "أعضاء مجموعه %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "ما ينفعش تمنع نفسك!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "فشل منع المستخدم." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "فشل إلغاء منع المستخدم." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "رسائل مباشره من %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 -#, php-format +#, fuzzy, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "رسائل مباشره من %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "رساله مباشره %s" -#: actions/apidirectmessage.php:105 -#, php-format +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 +#, fuzzy, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "رساله مباشره %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "لا نص فى الرسالة!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[1] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[2] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[3] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[4] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[5] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "لم يُعثر على المستخدم المستلم." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 -#: actions/apistatusesdestroy.php:121 -msgid "No status found with that ID." +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." msgstr "" +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 +#: actions/apistatusesdestroy.php:121 +#, fuzzy +msgid "No status found with that ID." +msgstr "لا ملف شخصى بهذه الهويه." + +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "الحاله دى موجوده فعلا فى التفضيلات." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "تعذّر إنشاء مفضله." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "الحاله دى مش محطوطه فى التفضيلات." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "تعذّر حذف المفضله." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 #, fuzzy msgid "Could not follow user: profile not found." msgstr "لم يمكن حفظ الملف." -#: actions/apifriendshipscreate.php:118 -#, php-format +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 +#, fuzzy, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "ما نفعش يضم %1$s للجروپ %2$s." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 +#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "" +msgstr "ما ينفعش عدم متابعة نفسك." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "ما ينفعش عدم متابعة نفسك." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 +#, fuzzy msgid "Could not determine source user." -msgstr "" +msgstr "تعذّر إيجاد المستخدم الهدف." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "الصفحه الرئيسيه ليست عنونًا صالحًا." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "المنظمه طويله جدا (اكتر حاجه %d رمز)." +msgstr[1] "المنظمه طويله جدا (اكتر حاجه %d رمز)." +msgstr[2] "المنظمه طويله جدا (اكتر حاجه %d رمز)." +msgstr[3] "المنظمه طويله جدا (اكتر حاجه %d رمز)." +msgstr[4] "المنظمه طويله جدا (اكتر حاجه %d رمز)." +msgstr[5] "المنظمه طويله جدا (اكتر حاجه %d رمز)." + +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." +msgstr "المنظمه طويله جدا (اكتر حاجه 255 رمز)." + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "" - -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" - -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "كنيه غير صالحة: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "لم توجد المجموعة!" +msgstr "لم يوجد." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 +#, fuzzy msgid "You are already a member of that group." -msgstr "" +msgstr "انت اصلا عضو فى الجروپ ده" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +#, fuzzy msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "لم تمنع هذا المستخدم." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "ما نفعش يضم %1$s للجروپ %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 +#, fuzzy msgid "You are not a member of this group." -msgstr "" +msgstr "لست عضوا فى تلك المجموعه." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "ما نفعش يتشال اليوزر %1$s من الجروپ %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "مجموعات %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "المجموعات التى %s عضو فيها" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "مجموعات %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "مجموعات %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "ارفع ملفًا" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "امارة تسجيل الدخول اللى اتحطت مش موجوده." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "حجم غير صالح." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "لا تملك تصريحًا." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "نيكنيم / پاسوورد مش مظبوطه!" -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "خطأ قاعده البيانات أثناء حذف المستخدم OAuth app" - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "خطأ قاعده البيانات أثناء إدخال المستخدم OAuth app" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -593,241 +859,641 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "الحساب" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "الاسم المستعار" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "كلمه السر" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "ارفض" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +#, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "ألغِ" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "اسمح" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "لا رمز تأكيد." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "لا تملك تصريحًا." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "لا تملك تصريحًا." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 +#, fuzzy msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "تتطلب هذه الطريقه POST." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 +#, fuzzy 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 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "لا إشعار كهذا." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "مش نافعه تتكرر الملاحظتك بتاعتك." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "الملاحظه اتكررت فعلا." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "الـ API method مش موجوده." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "نسق غير مدعوم." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "حُذِفت الحاله." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 +#, fuzzy msgid "No status with that ID found." +msgstr "لا ملف شخصى بهذه الهويه." + +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." msgstr "" +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "تعذّر حذف هذا الإشعار." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "احذف الإشعار" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[1] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[2] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[3] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[4] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[5] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "الـ API method مش موجوده." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "لم يوجد." - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" - -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "نسق غير مدعوم." -#: actions/apitimelinefavorites.php:110 -#, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, fuzzy, php-format msgid "%1$s / Favorites from %2$s" -msgstr "" +msgstr "%1$s دخل جروپ %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "نتايج التدوير لـ\"%1$s\" على %2$s" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "تعذر تحديث المجموعه." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "مسار %s الزمنى العام" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "اكتمل الأمر" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "كرر إلى %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومه ب%s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" +msgstr "الإشعارات الموسومه ب%s" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "يحق للمُرسل والمستلم فقط قراءه هذه الرساله." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." msgstr "" -#: actions/apitrends.php:87 +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "ابحث عن محتويات فى الإشعارات" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "لا ملف بهذه الهويه." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +#, fuzzy msgid "API method under construction." +msgstr "الـ API method مش موجوده." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "الـ API method مش موجوده." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "لا ملف كهذا." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" msgstr "" +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "تعذّر إدراج اشتراك جديد." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "ابحث عن محتويات فى الإشعارات" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "مش معروف" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "أضف إلى المفضلات" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "لا ملف كهذا." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "أعضاء مجموعه %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "المجموعات التى %s عضو فيها" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "مش معروف" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "جميع الأعضاء" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "لا ملف كهذا." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "تعذّر حذف المفضله." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "لا مجموعه كهذه." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "جميع الأعضاء" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "الـ API method مش موجوده." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "لا ملف كهذا." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "لست مُشتركًا بأى أحد." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "تعذّر حفظ الاشتراك." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "الأشخاص المشتركون ب%s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "نوع ملف غير معروف" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "لا مرفق كهذا." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "لا اسم مستعار." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "لا حجم." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "حجم غير صالح." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "أفتار" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 -#, php-format +#, fuzzy, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" +msgstr "تستطيع رفع صورتك الشخصيه. أقصى حجم للملف هو 2 م.ب." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "يوزر من-غير پروفايل زيّه." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "إعدادات الأفتار" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "الأصلي" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "عاين" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "احذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "ارفع" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" -msgstr "" +msgstr "مجموعات" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "لا ملف شخصى مُحدّد." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "رُفع الأفتار." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "فشل تحديث الأفتار." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "حُذف الأفتار." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "لقد منعت مسبقا هذا المستخدم." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "امنع المستخدم" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -836,180 +1502,225 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "لا" +msgstr "ملاحظة" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "نعم" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "امنع هذا المستخدم" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "لا مجموعه كهذه." -#: actions/blockedfromgroup.php:97 -#, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, fuzzy, php-format msgid "%s blocked profiles" -msgstr "" +msgstr "%1$s فايلات معمول ليها بلوك, الصفحه %2$d" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s فايلات معمول ليها بلوك, الصفحه %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 +#, fuzzy msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "قائمه بمستخدمى هذه المجموعه." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "ألغ منع المستخدم من المجموعة" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "ألغِ المنع" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "ألغِ منع هذا المستخدم" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, fuzzy, php-format msgid "Post to %s" msgstr "مجموعات %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "لا رمز تأكيد." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "لم يوجد رمز التأكيد." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "رمز التأكيد ليس لك!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 +#, fuzzy msgid "That address has already been confirmed." -msgstr "" +msgstr "هذا البريد الإلكترونى ملك مستخدم آخر بالفعل." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "تعذّر تحديث المستخدم." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "تعذّر حذف تأكيد البريد الإلكترونى." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "اكد العنوان" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "محادثة" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." +msgstr "لازم يكون متسجل دخولك علشان تعدّل application." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 #, fuzzy msgid "Application not found." msgstr "لم يوجد رمز التأكيد." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "انت مش بتملك الapplication دى." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" -msgstr "لا تطبيق كهذا." +msgstr "OAuth applications" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1017,53 +1728,116 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 #, fuzzy msgid "Do not delete this application" msgstr "لا تحذف هذا الإشعار" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "احذف هذا الإشعار" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "يجب أن تكون والجًا لتنشئ مجموعه." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "لا اسم مستعار." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "لست عضوا فى تلك المجموعه." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "تعذر تحديث المجموعه." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s ساب جروپ %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "احذف المستخدم" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "لا تحذف هذا الإشعار" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "احذف هذا المستخدم" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "لست والجًا." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "تعذّر حذف هذا الإشعار." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "احذف الإشعار" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1092,139 +1866,160 @@ msgstr "احذف هذا المستخدم" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "التصميم" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "مسار شعار غير صالح." -#: actions/designadminpanel.php:322 -#, fuzzy, php-format -msgid "Theme not available: %s." -msgstr "السمه غير متوفرة: %s" +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "مسار شعار غير صالح." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:344 +#, php-format +msgid "Theme not available: %s." +msgstr "المراسله الفوريه غير متوفره." + +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "غيّر الشعار" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "شعار الموقع" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "شعار الموقع" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "غيّر السمة" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "سمه الموقع" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "سمه الموقع." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "سمه الموقع" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "تغيير صوره الخلفية" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "الخلفية" -#: actions/designadminpanel.php:496 -#, php-format +#: actions/designadminpanel.php:522 +#, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "" +msgstr "تستطيع رفع صورتك الشخصيه. أقصى حجم للملف هو 2 م.ب." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "مكّن" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "عطّل" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "مكّن صوره الخلفيه أو عطّلها." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +#, fuzzy msgid "Tile background image" -msgstr "" +msgstr "تغيير صوره الخلفية" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "تغيير الألوان" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "المحتوى" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "الشريط الجانبي" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "النص" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "وصلات" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "استخدم المبدئيات" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "استعد التصميمات المبدئية" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "ارجع إلى المبدئي" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "أرسل" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "احفظ التصميم" @@ -1237,114 +2032,140 @@ msgid "Add to favorites" msgstr "أضف إلى المفضلات" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "لا مستند كهذا." +msgstr "لا مرفق كهذا." -#: actions/editapplication.php:54 +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 #, fuzzy -msgid "Edit Application" -msgstr "تطبيقات OAuth" +msgid "Edit application" +msgstr "OAuth applications" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "لازم يكون متسجل دخولك علشان تعدّل application." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "ما فيش application زى كده." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "استعمل الفورمه دى علشان تعدّل الapplication بتاعتك." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "الاسم مطلوب." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "الاسم طويل جدا (اكتر حاجه 255 رمز)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "" -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "الوصف مطلوب." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 +#, fuzzy msgid "Source URL is too long." -msgstr "" +msgstr "الSource URL مش مظبوط." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "الSource URL مش مظبوط." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 +#, fuzzy msgid "Organization is required." -msgstr "" +msgstr "الوصف مطلوب." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "المنظمه طويله جدا (اكتر حاجه 255 رمز)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 +#, fuzzy msgid "Organization homepage is required." -msgstr "" +msgstr "الوصف مطلوب." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 +#, fuzzy msgid "Callback URL is not valid." -msgstr "" +msgstr "الSource URL مش مظبوط." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "ما نفعش تحديث الapplication." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "عدّل مجموعه %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "يجب أن تكون والجًا لتنشئ مجموعه." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "لازم تكون ادارى علشان تعدّل الجروپ." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "استخدم هذا النموذج لتعديل المجموعه." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "كنيه غير صالحة: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "تعذر تحديث المجموعه." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "حُفظت الخيارات." @@ -1362,12 +2183,12 @@ msgstr "أدر كيف تستلم البريد الإلكترونى من %%site.n #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "عنوان الايميل" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "عنوان البريد الإلكترونى المُؤكد الحالى." @@ -1376,40 +2197,32 @@ msgstr "عنوان البريد الإلكترونى المُؤكد الحالى #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "أزل" +msgstr "استرجع" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "ألغِ" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "عنوان البريد الإلكترونى، مثل \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1418,113 +2231,122 @@ msgstr "أضف" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "البريد الإلكترونى الوارد" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكترونى." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "أرسل بريدًا إلكترونيًا إلى هذا العنوان لترسل إشعارات جديده." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "أنشئ عنوان بريد إلكترونى لترسل إليه؛ ألغِ القديم." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "جديد" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "التفضيلات" +msgstr "عناوين البريد الإلكتروني" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "أرسل لى إشعارات بالاشتراكات الجديده عبر البريد الإلكترونى." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "أرسل لى بريدًا إلكرتونيًا عندما يضيف أحدهم إشعارى مفضله." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 +#, fuzzy msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "أرسل لى بريدًا إلكترونيًا عندما يرسل لى أحدهم \"@-رد\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "أرسل لى بريدًا إلكترونيًا عندما يرسل لى أحدهم \"@-رد\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكترونى." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 +#, fuzzy msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "هذا ليس عنوان بريدك الإلكترونى." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "حُفِظت التفضيلات." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "لا عنوان بريد إلكترونى." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 +#, fuzzy msgid "Cannot normalize that email address" -msgstr "" +msgstr "عنوان البريد الإلكترونى المُؤكد الحالى." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "ليس عنوان بريد صالح." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "هذا هو عنوان بريدك الإكترونى سابقًا." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "هذا البريد الإلكترونى ملك مستخدم آخر بالفعل." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "تعذّر إدراج رمز التأكيد." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1533,65 +2355,74 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 +#, fuzzy msgid "No pending confirmation to cancel." -msgstr "" +msgstr "لا رمز تأكيد." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "هذا عنوان محادثه فوريه خاطئ." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "تعذّر حذف تأكيد البريد الإلكترونى." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "أُلغى التأكيد." +msgstr "لا رمز تأكيد." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "هذا ليس عنوان بريدك الإلكترونى." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "أزيل هذا العنوان." +msgstr "لا عنوان بريد إلكترونى." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 +#, fuzzy msgid "No incoming email address." -msgstr "" +msgstr "لا عنوان بريد إلكترونى." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 +#, fuzzy msgid "Couldn't update user record." -msgstr "" +msgstr "تعذّر تحديث المستخدم." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 +#, fuzzy msgid "Incoming email address removed." -msgstr "" +msgstr "لا عنوان بريد إلكترونى." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 +#, fuzzy msgid "New incoming email address added." -msgstr "" +msgstr "لا عنوان بريد إلكترونى." #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "هذا الإشعار مفضله مسبقًا!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "ألغِ تفضيل المفضلة" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "إشعارات مشهورة" @@ -1623,15 +2454,15 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "إشعارات %s المُفضلة" #: actions/favoritesrss.php:115 -#, php-format +#, fuzzy, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "" +msgstr "نتايج التدوير لـ\"%1$s\" على %2$s" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1673,12 +2504,14 @@ msgid "User being listened to does not exist." msgstr "المستخدم الذى تستمع إليه غير موجود." #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 +#, fuzzy msgid "You can use the local subscription!" -msgstr "" +msgstr "تعذّر حفظ الاشتراك." #: actions/finishremotesubscribe.php:99 +#, fuzzy msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "لقد منعك المستخدم." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." @@ -1692,7 +2525,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "خطأ أثناء تحديث الملف الشخصى البعيد" @@ -1724,19 +2557,23 @@ msgstr "لا يمكنك إسكات المستخدمين على هذا الموق msgid "User already has this role." msgstr "المستخدم مسكت من قبل." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "لا ملف شخصى مُحدّد." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "لا ملف شخصى بهذه الهويه." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "لا مجموعه مُحدّده." @@ -1746,14 +2583,15 @@ 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 msgid "User is not a member of group." msgstr "المستخدم ليس عضوًا فى المجموعه." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "امنع المستخدم من المجموعة" @@ -1797,24 +2635,36 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "تعذّر تحديث تصميمك." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +#, fuzzy msgid "Design preferences saved." -msgstr "" +msgstr "حُفِظت التفضيلات." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "شعار المجموعة" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "" +msgstr "تستطيع رفع صورتك الشخصيه. أقصى حجم للملف هو 2 م.ب." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "ارفع" + +#: actions/grouplogo.php:289 +#, fuzzy +msgid "Crop" +msgstr "مجموعات" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." @@ -1828,48 +2678,56 @@ msgstr "حُدّث الشعار." msgid "Failed updating logo." msgstr "فشل رفع الشعار." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "أعضاء مجموعه %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s اعضاء الجروپ, صفحه %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "قائمه بمستخدمى هذه المجموعه." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "إداري" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "امنع" - -#: actions/groupmembers.php:487 -msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 +#, fuzzy +msgid "Make user an admin of the group" +msgstr "لازم تكون ادارى علشان تعدّل الجروپ." + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "اجعل هذا المستخدم إداريًا" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "مسار %s الزمني" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1931,15 +2789,18 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "المستخدم ليس ممنوعًا من المجموعه." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "خطأ أثناء منع الحجب." @@ -1970,8 +2831,9 @@ msgid "IM address" msgstr "عنوان الرساله الفوريه" #: actions/imsettings.php:113 +#, fuzzy msgid "Current confirmed Jabber/GTalk address." -msgstr "" +msgstr "عنوان البريد الإلكترونى المُؤكد الحالى." #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -1984,7 +2846,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1992,64 +2857,67 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "التفضيلات" +msgstr "حُفِظت التفضيلات." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 +#, fuzzy msgid "Send me notices through Jabber/GTalk." -msgstr "" +msgstr "أرسل لى إشعارات بالاشتراكات الجديده عبر البريد الإلكترونى." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "حُفِظت التفضيلات." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "لا هويه جابر." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 +#, fuzzy msgid "Cannot normalize that Jabber ID" -msgstr "" +msgstr "ليست هويه جابر صالحة" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "ليست هويه جابر صالحة" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 +#, fuzzy msgid "That is already your Jabber ID." -msgstr "" +msgstr "هذه ليست هويتك فى جابر." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 +#, fuzzy msgid "Jabber ID already belongs to another user." -msgstr "" +msgstr "هذا البريد الإلكترونى ملك مستخدم آخر بالفعل." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2057,30 +2925,29 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "هذا عنوان محادثه فوريه خاطئ." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "تعذّر حذف تأكيد البريد الإلكترونى." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "أُلغى التأكيد." +msgstr "لا رمز تأكيد." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "هذه ليست هويتك فى جابر." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 #, fuzzy msgid "The IM address was removed." msgstr "أزيل هذا العنوان." @@ -2099,90 +2966,142 @@ msgstr "" msgid "This is your inbox, which lists your incoming private messages." msgstr "" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 +#, fuzzy msgid "Invites have been disabled." -msgstr "" +msgstr "الدعوات مُفعلة" -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, fuzzy, php-format msgid "You must be logged in to invite other users to use %s." msgstr "يجب أن تلج لتُعدّل المجموعات." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "عنوان بريد إلكترونى غير صالح: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "أُرسلت الدعوة" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "دعوه مستخدمين جدد" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "لست مشتركًا بأحد." +msgstr[1] "لست مشتركًا بأحد." +msgstr[2] "لست مشتركًا بأحد." +msgstr[3] "لست مشتركًا بأحد." +msgstr[4] "لست مشتركًا بأحد." +msgstr[5] "لست مشتركًا بأحد." -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "عناوين البريد الإلكتروني" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "رساله شخصية" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "أرسل" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2214,36 +3133,135 @@ msgid "" msgstr "" #: actions/joingroup.php:60 -msgid "You must be logged in to join a group." -msgstr "" - -#: actions/joingroup.php:88 actions/leavegroup.php:88 #, fuzzy -msgid "No nickname or ID." -msgstr "لا اسم مستعار." +msgid "You must be logged in to join a group." +msgstr "يجب أن تلج لتُعدّل المجموعات." -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s دخل جروپ %2$s" #: actions/leavegroup.php:60 +#, fuzzy msgid "You must be logged in to leave a group." -msgstr "" +msgstr "يجب أن تكون والجًا لتنشئ مجموعه." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "لست عضوا فى تلك المجموعه." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ساب جروپ %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "رساله ترحيب غير صالحه. أقصى طول هو 255 حرف." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "خاص" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "والج بالفعل." @@ -2264,11 +3282,11 @@ msgstr "لُج" msgid "Login to site" msgstr "لُج إلى الموقع" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "تذكّرني" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" @@ -2298,9 +3316,9 @@ msgid "Only an admin can make another user an admin." msgstr "" #: actions/makeadmin.php:96 -#, php-format +#, fuzzy, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "%1$s مش نافع يبقى ادارى لجروپ %2$s." #: actions/makeadmin.php:133 #, php-format @@ -2313,71 +3331,82 @@ msgid "Can't make %1$s an admin for group %2$s." msgstr "%1$s مش نافع يبقى ادارى لجروپ %2$s." #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." -msgstr "لا حاله حالية" +msgstr "لا نتائج." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" -msgstr "لا تطبيق كهذا." +msgid "New application" +msgstr "ما فيش application زى كده." -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "لازم تكون مسجل دخوللك علشان تسجل application." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "استعمل الفورمه دى علشان تسجل application جديد." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 +#, fuzzy msgid "Source URL is required." -msgstr "" +msgstr "الSource URL مش مظبوط." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "مش ممكن إنشاء الapplication." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "مجموعه جديدة" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "استخدم هذا النموذج لإنشاء مجموعه جديده." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "رساله جديدة" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 +#, fuzzy msgid "You can't send a message to this user." -msgstr "" +msgstr "أرسل رساله مباشره إلى هذا المستخدم" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "لا محتوى!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "لا مستلم حُدّد." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "أُرسلت الرسالة" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "رساله مباشره اتبعتت لـ%s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -2385,7 +3414,7 @@ msgstr "خطأ أجاكس" msgid "New notice" msgstr "إشعار جديد" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "أُرسل الإشعار" @@ -2431,7 +3460,8 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2442,46 +3472,72 @@ msgstr "أرسل التنبيه" msgid "Nudge sent!" msgstr "أُرسل التنبيه!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "لازم تكون مسجل دخولك علشان تشوف ليستة الapplications بتاعتك." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth applications" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 -#, php-format +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 +#, fuzzy, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "لازم تكون مسجل دخوللك علشان تسجل application." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 +#, fuzzy msgid "Connected applications" -msgstr "" +msgstr "مش ممكن إنشاء الapplication." +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "انت مش يوزر للapplication دى." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "استعمل الفورمه دى علشان تعدّل الapplication بتاعتك." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 @@ -2489,26 +3545,26 @@ msgstr "" msgid "Notice has no profile." msgstr "ليس للمستخدم ملف شخصى." -#: actions/oembed.php:87 actions/shownotice.php:175 -#, php-format +#: actions/oembed.php:83 actions/shownotice.php:172 +#, fuzzy, php-format msgid "%1$s's status on %2$s" -msgstr "" +msgstr "%1$s ساب جروپ %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "نوع المحتوى " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -2520,37 +3576,47 @@ msgstr "تدوير فى الأشخاص" msgid "Notice Search" msgstr "بحث الإشعارات" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "تظبيطات تانيه" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "أدر خيارات أخرى عديده." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (خدمه حرة)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "قصّر المسارات بـ" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "خدمه التقصير المطلوب استخدامها." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "اعرض تصاميم الملف الشخصي" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "أظهر أو أخفِ تصاميم الملفات الشخصيه." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "" +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" #: actions/otp.php:69 msgid "No user ID specified." @@ -2578,9 +3644,9 @@ msgid "Outbox for %1$s - page %2$d" msgstr "" #: actions/outbox.php:61 -#, php-format +#, fuzzy, php-format msgid "Outbox for %s" -msgstr "" +msgstr "صندوق الصادر" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." @@ -2607,11 +3673,12 @@ msgid "New password" msgstr "كلمه سر جديدة" #: actions/passwordsettings.php:109 +#, fuzzy msgid "6 or more characters" -msgstr "" +msgstr "6 حروف أو أكثر. مطلوب." #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "أكّد" @@ -2623,11 +3690,11 @@ msgstr "نفس كلمه السر أعلاه" msgid "Change" msgstr "غيّر" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "يجب أن تكون كلمه السر 6 حروف أو أكثر." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "كلمتا السر غير متطابقتين." @@ -2647,156 +3714,290 @@ msgstr "تعذّر حفظ كلمه السر الجديده." msgid "Password saved." msgstr "حُفظت كلمه السر." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "المسارات" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." -msgstr "لا يمكن قراءه دليل السمات: %s" +msgstr "دليل السمات" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "لا يمكن الكتابه فى دليل الأفتارات: %s" +msgstr "دليل الأفتار." -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format msgid "Background directory not writable: %s." -msgstr "لا يمكن الكتابه فى دليل الخلفيات: %s" +msgstr "دليل الخلفيات" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "لا يمكن قراءه دليل المحليات: %s" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 +#, fuzzy msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "رساله ترحيب غير صالحه. أقصى طول هو 255 حرف." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "الموقع" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "خادوم" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "اسم مضيف خادوم الموقع." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "المسار" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "مسار الموقع" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "مسار المحليات" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "دليل السمات" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "مسار دليل المحليات" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "مسارات فاخرة" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "أأستخدم مسارات فاخره (يمكن قراءتها وتذكرها بسهوله أكبر)؟" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "السمة" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "خادوم السمات" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "سمه الموقع." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "مسار السمات" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "دليل السمات" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "أفتارات" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "خادوم الأفتارات" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "مسار الأفتارات" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "دليل الأفتار." - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "خلفيات" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "خادوم الخلفيات" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "مسار الخلفيات" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "دليل الخلفيات" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "مطلقا" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "أحيانًا" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "دائمًا" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "استخدم SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL server" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "مسار الموقع" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "دليل السمات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "أفتارات" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "خادوم الأفتارات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "سمه الموقع." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "مسار الأفتارات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "فشل تحديث الأفتار." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "دليل الأفتار." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "خلفيات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "سمه الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "مرفقات" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "سمه الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "لا مرفقات." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "سمه الموقع." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "مسار دليل المحليات" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "مطلقا" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "أحيانًا" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "دائمًا" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "استخدم SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "احفظ المسارات" @@ -2812,9 +4013,9 @@ msgid "People search" msgstr "بحث فى الأشخاص" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "ليس وسم أشخاص صالح: %s" +msgstr "ليس عنوان بريد صالح." #: actions/peopletag.php:142 #, php-format @@ -2822,144 +4023,196 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "محتوى إشعار غير صالح" +msgstr "حجم غير صالح." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "إعدادات الملف الشخصي" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "معلومات الملف الشخصي" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "الاسم الكامل" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "الصفحه الرئيسية" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." msgstr "" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "صِف نفسك واهتماماتك" +msgstr[1] "صِف نفسك واهتماماتك" +msgstr[2] "صِف نفسك واهتماماتك" +msgstr[3] "صِف نفسك واهتماماتك" +msgstr[4] "صِف نفسك واهتماماتك" +msgstr[5] "صِف نفسك واهتماماتك" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "صِف نفسك واهتماماتك" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "السيرة" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "الموقع" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "الوسوم" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "اللغة" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "اللغه المفضلة" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "المنطقه الزمنية" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "ما المنطقه الزمنيه التى تتواجد فيها عادة؟" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 +#, fuzzy msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "" +msgstr "أشرك المستخدمين الجدد بهذا المستخدم تلقائيًا." -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "الاسم طويل جدا (اكتر حاجه %d رمز)." +msgstr[1] "الاسم طويل جدا (اكتر حاجه %d رمز)." +msgstr[2] "الاسم طويل جدا (اكتر حاجه %d رمز)." +msgstr[3] "الاسم طويل جدا (اكتر حاجه %d رمز)." +msgstr[4] "الاسم طويل جدا (اكتر حاجه %d رمز)." +msgstr[5] "الاسم طويل جدا (اكتر حاجه %d رمز)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "لم تُختر المنطقه الزمنيه." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "" +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "الاسم طويل جدا (اكتر حاجه 255 رمز)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "وسم غير صالح: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "تعذّر تحديث المستخدم." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "لم يمكن حفظ تفضيلات الموقع." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "تعذّر حفظ الملف الشخصى." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2969,8 +4222,9 @@ msgid "Beyond the page limit (%s)." msgstr "وراء حد الصفحه (%s)" #: actions/public.php:92 +#, fuzzy msgid "Could not retrieve public stream." -msgstr "" +msgstr "تعذّر إنشاء الكنى." #: actions/public.php:130 #, php-format @@ -3033,32 +4287,45 @@ msgstr "" "هنا %%site.name%%، خدمه [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" "blogging) المبنيه على البرنامج الحر [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "سحابه الوسوم العمومية" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "هذه هى أكثر الوسوم شهره على %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "كن أول من يُرسل!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "سحابه الوسوم" @@ -3087,8 +4354,9 @@ msgid "This confirmation code is too old. Please start again." msgstr "رمز التأكيد هذا قديم جدًا. من فضلك ابدأ من جديد." #: actions/recoverpassword.php:111 +#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "عنوان البريد الإلكترونى المُؤكد الحالى." #: actions/recoverpassword.php:152 msgid "" @@ -3133,8 +4401,9 @@ msgid "Unknown action" msgstr "إجراء غير معروف" #: actions/recoverpassword.php:236 +#, fuzzy msgid "6 or more characters, and don't forget it!" -msgstr "" +msgstr "6 حروف أو أكثر. مطلوب." #: actions/recoverpassword.php:243 msgid "Reset" @@ -3145,12 +4414,14 @@ msgid "Enter a nickname or email address." msgstr "أدخل اسمًا مستعارًا أو عنوان بريد إلكترونى." #: actions/recoverpassword.php:282 +#, fuzzy msgid "No user with that email address or username." -msgstr "" +msgstr "عنوان البريد الإلكترونى للاتصال بموقعك" #: actions/recoverpassword.php:299 +#, fuzzy msgid "No registered email address for that user." -msgstr "" +msgstr "عنوان البريد الإلكترونى للاتصال بموقعك" #: actions/recoverpassword.php:313 msgid "Error saving address confirmation." @@ -3163,18 +4434,21 @@ msgid "" msgstr "" #: actions/recoverpassword.php:357 +#, fuzzy msgid "Unexpected password reset." -msgstr "" +msgstr "أعد ضبط كلمه السر" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "يجب أن تكون كلمه السر 6 محارف أو أكثر." #: actions/recoverpassword.php:369 +#, fuzzy msgid "Password and confirmation do not match." -msgstr "" +msgstr "كلمتا السر غير متطابقتين." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "خطأ أثناء ضبط المستخدم." @@ -3182,7 +4456,7 @@ msgstr "خطأ أثناء ضبط المستخدم." msgid "New password successfully saved. You are now logged in." msgstr "" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "عذرًا، الأشخاص المدعوون وحدهم يستطيعون التسجيل." @@ -3194,7 +4468,7 @@ msgstr "عذرا، رمز دعوه غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3202,80 +4476,85 @@ msgstr "سجّل" msgid "Registration not allowed." msgstr "لا يُسمح بالتسجيل." -#: actions/register.php:205 +#: actions/register.php:209 +#, fuzzy msgid "You can't register if you don't agree to the license." -msgstr "" +msgstr "ما ينفعش تكرر الملاحظه بتاعتك." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "عنوان البريد الإلكترونى موجود مسبقًا." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "اسم مستخدم أو كلمه سر غير صالحه." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 حروف أو أكثر. مطلوب." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "نفس كلمه السر أعلاه. مطلوب." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "البريد الإلكتروني" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3294,7 +4573,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3333,7 +4612,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "اشترك" @@ -3369,7 +4648,7 @@ msgstr "ما ينفعش تكرر الملاحظه بتاعتك." msgid "You already repeated that notice." msgstr "انت عيدت الملاحظه دى فعلا." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "مكرر" @@ -3378,7 +4657,7 @@ msgid "Repeated!" msgstr "مكرر!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "الردود على %s" @@ -3399,9 +4678,9 @@ msgid "Replies feed for %s (RSS 2.0)" msgstr "" #: actions/replies.php:159 -#, php-format +#, fuzzy, php-format msgid "Replies feed for %s (Atom)" -msgstr "" +msgstr "الردود على %s" #: actions/replies.php:199 #, php-format @@ -3425,9 +4704,9 @@ msgid "" msgstr "" #: actions/repliesrss.php:72 -#, php-format +#, fuzzy, php-format msgid "Replies to %1$s on %2$s!" -msgstr "" +msgstr "أهلا بكم فى %1$s يا @%2$s!" #: actions/revokerole.php:75 #, fuzzy @@ -3444,27 +4723,29 @@ msgid "StatusNet" msgstr "StatusNet" #: 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 "المستخدم مسكت من قبل." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "الجلسات" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "الإعدادات الأساسيه لموقع StatusNet هذا." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 +#, fuzzy msgid "Handle sessions" -msgstr "" +msgstr "الجلسات" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." @@ -3479,7 +4760,6 @@ msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسه." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3492,28 +4772,29 @@ msgid "Application profile" msgstr "" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "الاسم" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "المنظمه" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "إحصاءات" @@ -3524,16 +4805,23 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 +#, fuzzy msgid "Application actions" -msgstr "" +msgstr "OAuth applications" #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "احذف" + #: actions/showapplication.php:261 +#, fuzzy msgid "Application info" -msgstr "" +msgstr "OAuth applications" #: actions/showapplication.php:263 msgid "Consumer key" @@ -3572,8 +4860,9 @@ msgid "%1$s's favorite notices, page %2$d" msgstr "إشعارات %s المُفضلة" #: actions/showfavorites.php:132 +#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "تعذّر إنشاء مفضله." #: actions/showfavorites.php:171 #, php-format @@ -3619,78 +4908,108 @@ msgstr "" msgid "This is a way to share what you like." msgstr "إنها إحدى وسائل مشاركه ما تحب." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "مجموعه %s" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "%1$s أعضاء المجموعة, الصفحه %2$d" +msgstr "%1$s اعضاء الجروپ, صفحه %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "ملف المجموعه الشخصي" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +#, fuzzy msgid "Group actions" -msgstr "" +msgstr "تصرفات المستخدم" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:355 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, fuzzy, php-format msgid "FOAF for %s group" -msgstr "" +msgstr "مجموعه %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:455 -#, php-format +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "الأعضاء" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 +#, fuzzy, 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 " @@ -3698,113 +5017,162 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"هنا %%site.name%%، خدمه [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" +"blogging) المبنيه على البرنامج الحر [StatusNet](http://status.net/). [انضم " +"الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " +"([اقرأ المزيد](%%doc.help%%))" -#: actions/showgroup.php:461 -#, php-format +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, fuzzy, 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 "" +"هنا %%site.name%%، خدمه [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" +"blogging) المبنيه على البرنامج الحر [StatusNet](http://status.net/)." -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "الإداريون" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "لا رساله كهذه." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "يحق للمُرسل والمستلم فقط قراءه هذه الرساله." -#: actions/showmessage.php:108 -#, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, fuzzy, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "أهلا بكم فى %1$s يا @%2$s!" -#: actions/showmessage.php:113 -#, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, fuzzy, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "نتايج التدوير لـ\"%1$s\" على %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." msgstr "حُذف الإشعار." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "" - -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid "%1$s, page %2$d" -msgstr "%1$s والأصدقاء, الصفحه %2$d" +msgid "%1$s tagged %2$s" +msgstr "%1$s و الصحاب, صفحه %2$d" -#: actions/showstream.php:122 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "الإشعارات الموسومه ب%s" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format +msgid "%1$s, page %2$d" +msgstr "%1$s و الصحاب, صفحه %2$d" + +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 -#, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, fuzzy, 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. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"هنا %%site.name%%، خدمه [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" +"blogging) المبنيه على البرنامج الحر [StatusNet](http://status.net/). [انضم " +"الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " +"([اقرأ المزيد](%%doc.help%%))" -#: actions/showstream.php:248 -#, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, fuzzy, 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 "" +"هنا %%site.name%%، خدمه [التدوين المُصغّر](http://en.wikipedia.org/wiki/Micro-" +"blogging) المبنيه على البرنامج الحر [StatusNet](http://status.net/)." -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "تكرارات %s" @@ -3889,9 +5257,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "المنطقه الزمنيه المبدئيه للموقع؛ ت‌ع‌م عاده." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "لغه الموقع المبدئية" +msgstr "اللغه المفضلة" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -3910,42 +5277,50 @@ msgid "Maximum number of characters for notices." msgstr "أقصى عدد للحروف فى الإشعارات." #: actions/siteadminpanel.php:278 +#, fuzzy msgid "Dupe limit" -msgstr "" +msgstr "حد النص" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "إشعار الموقع" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "رساله جديدة" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "مشكله أثناء حفظ الإشعار." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "إشعار الموقع" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "إشعار الموقع" @@ -3975,13 +5350,15 @@ msgstr "عنوان الرساله الفوريه" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 +#, fuzzy msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "عنوان البريد الإلكترونى المُؤكد الحالى." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 +#, fuzzy msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "هذا ليس رقم هاتفك." #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 @@ -4012,9 +5389,8 @@ msgstr "" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "التفضيلات" +msgstr "حُفِظت التفضيلات." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4036,18 +5412,21 @@ msgstr "لا رقم هاتف." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 +#, fuzzy msgid "No carrier selected." -msgstr "" +msgstr "حُذف الإشعار." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 +#, fuzzy msgid "That is already your phone number." -msgstr "" +msgstr "هذا ليس رقم هاتفك." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 +#, fuzzy msgid "That phone number already belongs to another user." -msgstr "" +msgstr "هذا البريد الإلكترونى ملك مستخدم آخر بالفعل." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 @@ -4058,14 +5437,14 @@ msgstr "" #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 +#, fuzzy msgid "That is the wrong confirmation number." -msgstr "" +msgstr "هذا ليس رقم هاتفك." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "أُلغى التأكيد." +msgstr "لا رمز تأكيد." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4086,8 +5465,9 @@ msgstr "" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 +#, fuzzy msgid "Select a carrier" -msgstr "" +msgstr "اختر وسمًا لترشيحه" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -4100,19 +5480,19 @@ msgstr "" #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 +#, fuzzy msgid "No code entered" -msgstr "" +msgstr "لا محتوى!" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "غيّر ضبط الموقع" +msgstr "ضبط التصميم" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4123,8 +5503,9 @@ msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 +#, fuzzy msgid "Invalid snapshot report URL." -msgstr "" +msgstr "مسار شعار غير صالح." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4163,12 +5544,15 @@ msgstr "" msgid "Save snapshot settings" msgstr "اذف إعدادت الموقع" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 +#, fuzzy msgid "You are not subscribed to that profile." -msgstr "" +msgstr "لست مُشتركًا بأى أحد." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4176,11 +5560,6 @@ msgstr "تعذّر حفظ الاشتراك." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "لا ملف كهذا." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4189,63 +5568,84 @@ msgstr "" msgid "Subscribed" msgstr "مُشترك" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "مشتركو %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s مشتركين, صفحه %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." -#: actions/subscribers.php:67 -#, php-format +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 +#, fuzzy, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "اشتراكات %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s اشتراكات, صفحه %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "هؤلاء الأشخاص الذى تستمع إليهم." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "هؤلاء الأشخاص الذى يستمع %s إليهم." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4255,16 +5655,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, fuzzy, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "لست مُشتركًا بأى أحد." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "الردود على %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "جابر" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "رسائل قصيرة" @@ -4293,16 +5704,16 @@ msgid "No ID argument." msgstr "لا مدخل هويه." #: actions/tagother.php:65 -#, php-format +#, fuzzy, php-format msgid "Tag %s" -msgstr "" +msgstr "الوسوم" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "ملف المستخدم الشخصي" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "صورة" @@ -4326,8 +5737,9 @@ msgid "Could not save tags." msgstr "تعذّر حفظ الوسوم." #: actions/tagother.php:236 +#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "استعمل الفورمه دى علشان تعدّل الapplication بتاعتك." #: actions/tagrss.php:35 msgid "No such tag." @@ -4351,8 +5763,9 @@ msgid "No profile ID in request." msgstr "ما فيش طلب تسجيل دخول مطلوب." #: actions/unsubscribe.php:98 +#, fuzzy msgid "Unsubscribed" -msgstr "" +msgstr "ألغِ الاشتراك" #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format @@ -4361,79 +5774,102 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "المستخدم" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "رساله ترحيب غير صالحه. أقصى طول هو 255 حرف." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "الملف الشخصي" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "حد السيرة" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "مستخدمون جدد" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "ترحيب المستخدمين الجدد" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "نص الترحيب بالمستخدمين الجدد (255 حرفًا كحد أقصى)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "الاشتراك المبدئي" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "أشرك المستخدمين الجدد بهذا المستخدم تلقائيًا." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "الدعوات" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "الدعوات مُفعلة" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" -#: actions/userauthorization.php:105 -msgid "Authorize subscription" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" msgstr "" +#: actions/userauthorization.php:105 +#, fuzzy +msgid "Authorize subscription" +msgstr "جميع الاشتراكات" + #: actions/userauthorization.php:110 msgid "" "Please check these details to make sure that you want to subscribe to this " @@ -4441,7 +5877,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "الرخصة" @@ -4467,8 +5905,9 @@ msgid "No authorization request!" msgstr "لا طلب استيثاق!" #: actions/userauthorization.php:254 +#, fuzzy msgid "Subscription authorized" -msgstr "" +msgstr "رُفض الاشتراك" #: actions/userauthorization.php:256 msgid "" @@ -4509,9 +5948,9 @@ msgid "Profile URL ‘%s’ is for a local user." msgstr "" #: actions/userauthorization.php:345 -#, php-format +#, fuzzy, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "الSource URL مش مظبوط." #: actions/userauthorization.php:350 #, php-format @@ -4523,11 +5962,13 @@ msgstr "" msgid "Wrong image type for avatar URL ‘%s’." msgstr "" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "تصميم الملف الشخصي" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4539,18 +5980,18 @@ msgstr "استمتع بالنقانق!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%1$s أعضاء المجموعة, الصفحه %2$d" +msgstr "%1$s اعضاء الجروپ, صفحه %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" #: actions/usergroups.php:159 -#, php-format +#, fuzzy, php-format msgid "%s is not a member of any group." -msgstr "" +msgstr "المستخدم ليس عضوًا فى المجموعه." #: actions/usergroups.php:164 #, php-format @@ -4563,10 +6004,10 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, php-format +#: lib/atomusernoticefeed.php:75 +#, fuzzy, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "نتايج التدوير لـ\"%1$s\" على %2$s" #: actions/version.php:75 #, php-format @@ -4581,8 +6022,9 @@ msgid "" msgstr "" #: actions/version.php:163 +#, fuzzy msgid "Contributors" -msgstr "" +msgstr "كونيكشونات (Connections)" #: actions/version.php:170 msgid "" @@ -4612,7 +6054,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "النسخه" @@ -4620,61 +6062,120 @@ msgstr "النسخه" msgid "Author(s)" msgstr "المؤلف/ين" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "فضّل" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "أرسل لى بريدًا إلكرتونيًا عندما يضيف أحدهم إشعارى مفضله." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "حجم غير صالح." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "دخول الجروپ فشل." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "مش جزء من الجروپ." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "الخروج من الجروپ فشل." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "خطأ أثناء حفظ المستخدم؛ غير صالح." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "انضم" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4694,19 +6195,20 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "أنت ممنوع من إرسال رسائل مباشره." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "تعذّر إدراج الرساله." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "تعذّر تحليل الرساله." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4716,73 +6218,88 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "خطأ قاعده البيانات أثناء إدخال المستخدم OAuth app" +msgstr "خطأ فى إدراج الأفتار" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "مشكله فى حفظ الإشعار. طويل جدًا." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "مشكله فى حفظ الإشعار. مستخدم غير معروف." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 +#, fuzzy msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "أنت ممنوع من إرسال رسائل مباشره." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "تعذّر حفظ الاشتراك." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4794,252 +6311,280 @@ msgid "Missing profile." msgstr "ليس للمستخدم ملف شخصى." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "مشكله أثناء حفظ الإشعار." +msgstr "تعذّر حفظ الوسوم." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "مُشترك أصلا!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "لقد منعك المستخدم." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "غير مشترك!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "ما نفعش يمسح الاشتراك الشخصى." +msgstr "تعذّر حفظ الاشتراك." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "تعذّر حذف الاشتراك." +msgstr "تعذّر حفظ الاشتراك." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "تعذّر حذف الاشتراك." +msgstr "تعذّر حفظ الاشتراك." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعه." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "تعذّر ضبط عضويه المجموعه." +msgstr "تعذّر إنشاء المجموعه." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "تعذّر ضبط عضويه المجموعه." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "غيّر إعدادات ملفك الشخصي" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "ارفع أفتارًا" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "غير كلمه سرّك" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "غير أسلوب التعامل مع البريد الإلكتروني" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "صمّم ملفك الشخصي" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "خيارات أخرى" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "أخرى" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "صفحه غير مُعنونة" -#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 -msgid "Primary site navigation" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +#, fuzzy +msgid "Primary site navigation" +msgstr "ضبط الموقع الأساسي" + #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصى ومسار الأصدقاء الزمني" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "شخصية" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "غير كلمه سرّك" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "الحساب" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "كونيكشونات (Connections)" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "اتصل" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "غيّر ضبط الموقع" +msgstr "ضبط الموقع الأساسي" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "إداري" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "ادعُ" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "اخرج من الموقع" +msgstr "سمه الموقع." #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "اخرج" +msgstr "الشعار" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "أنشئ حسابًا" +msgstr "أنشئ مجموعه جديدة" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "سجّل" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "لُج" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "ساعدني!" +msgstr "مساعدة" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "مساعدة" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5047,71 +6592,79 @@ msgstr "ابحث" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "إشعار الموقع" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "المشاهدات المحلية" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "إشعار الصفحة" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 +#, fuzzy msgid "Secondary site navigation" -msgstr "" +msgstr "ضبط الموقع الأساسي" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "مساعدة" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "عن" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "الأسئله المكررة" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "الشروط" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "خصوصية" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "المصدر" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "اتصل" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 +#, fuzzy msgid "Badge" -msgstr "" +msgstr "نبّه" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 +#, fuzzy msgid "StatusNet software license" -msgstr "" +msgstr "رخصه محتوى الموقع" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5121,13 +6674,16 @@ msgstr "" "broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5139,349 +6695,474 @@ msgstr "" "agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "رخصه محتوى الموقع" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 +#, fuzzy msgid "Pagination" -msgstr "" +msgstr "المنظمه" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "بعد" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "قبل" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "صورة" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 +#, fuzzy msgid "You cannot make changes to this site." -msgstr "" +msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "التغييرات مش مسموحه للـ لوحه دى." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 +#, fuzzy msgid "saveSettings() not implemented." -msgstr "" +msgstr "المستخدم ليس مُسكتًا." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "ضبط التصميم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "ضبط المسارات" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "المستخدم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "ضبط التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "ضبط المسارات" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "ضبط التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "إشعار الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "ضبط المسارات" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "تعذّر إنشاء الكنى." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "مش ممكن إنشاء الapplication." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "تعذّر إدراج الرساله." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "خطأ قاعده البيانات أثناء إدخال المستخدم OAuth app" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 +#, fuzzy msgid "Icon for this application" -msgstr "" +msgstr "ما فيش application زى كده." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "اوصف الapplication بتاعتك" +msgstr[1] "اوصف الapplication بتاعتك" +msgstr[2] "اوصف الapplication بتاعتك" +msgstr[3] "اوصف الapplication بتاعتك" +msgstr[4] "اوصف الapplication بتاعتك" +msgstr[5] "اوصف الapplication بتاعتك" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "اوصف الapplication بتاعتك" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 +#, fuzzy msgid "URL of the homepage of this application" -msgstr "" +msgstr "انت مش بتملك الapplication دى." #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Source URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "انت مش بتملك الapplication دى." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "ألغِ" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "بطّل" +msgstr "استرجع" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "مرفقات" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "المؤلف" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "المزود" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 +#, fuzzy msgid "Notices where this attachment appears" -msgstr "" +msgstr "وسوم هذا المرفق" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "تغيير الپاسوورد فشل" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "تغيير الپاسوورد مش مسموح" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "امنع" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "نتائج الأمر" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "خطأ أجاكس" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "اكتمل الأمر" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "فشل الأمر" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "الملاحظه بالـID ده مالهاش وجود" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +#, fuzzy +msgid "Notice with that id does not exist." +msgstr "لا ملف بهذه الهويه." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "ليس للمستخدم إشعار أخير" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" -msgstr "ما نفعش يلاقى يوزر بإسم %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." +msgstr "تعذّر إيجاد المستخدم الهدف." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "ما نفعش يلاقى يوزر بإسم %s" +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, php-format -msgid "Nudge sent to %s" -msgstr "Nudge اتبعتت لـ %s" +#: lib/command.php:238 +#, fuzzy, php-format +msgid "Nudge sent to %s." +msgstr "أرسل التنبيه" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5492,173 +7173,215 @@ msgstr "" "المشتركون: %2$s\n" "الإشعارات: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 +#, fuzzy msgid "Notice marked as fave." +msgstr "هذا الإشعار مفضله مسبقًا!" + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." msgstr "" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "انت اصلا عضو فى الجروپ ده" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:405 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "ما نفعش يضم %1$s للجروپ %2$s." +msgid "%1$s left group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "ما نفعش يتشال اليوزر %1$s من الجروپ %2$s." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "الاسم الكامل: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "الموقع: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "الصفحه الرئيسية: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "عن: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[1] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[2] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[3] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[4] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[5] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "رساله مباشره اتبعتت لـ %s" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +#, fuzzy msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "الملاحظه بتاعتك مش نافعه تتكرر" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "كرر بالفعل هذا الإشعار" +msgstr "أنت ممنوع من إرسال رسائل مباشره." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, php-format -msgid "Notice from %s repeated" +#: lib/command.php:553 +#, fuzzy, php-format +msgid "Notice from %s repeated." msgstr "الإشعار من %s مكرر" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "خطأ تكرار الإشعار." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[1] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[2] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[3] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[4] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[5] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "رُد على رساله %s" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "خطأ أثناء حفظ الإشعار." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "مُشترك ب%s" - -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:664 -#, php-format -msgid "Unsubscribed from %s" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "" + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +#, fuzzy msgid "Command not yet implemented." -msgstr "" +msgstr "اكتمل الأمر" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +#, fuzzy msgid "Notification off." -msgstr "" +msgstr "لا رمز تأكيد." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +#, fuzzy msgid "Notification on." -msgstr "" +msgstr "لا رمز تأكيد." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +#, fuzzy msgid "Can't turn on notification." +msgstr "مش نافعه تتكرر الملاحظتك بتاعتك." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" - -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "ألغِ الاشتراك" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "لست مُشتركًا بأى أحد." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "لست مشتركًا بأحد." @@ -5668,11 +7391,16 @@ msgstr[3] "أنت مشترك بهؤلاء الأشخاص:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "لا أحد مشترك بك." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "لا أحد مشترك بك." @@ -5682,11 +7410,16 @@ msgstr[3] "هؤلاء الأشخاص مشتركون بك:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "لست عضوًا فى أى مجموعه." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "لست عضوًا فى أى مجموعه." @@ -5696,7 +7429,8 @@ msgstr[3] "أنت عضو فى هذه المجموعات:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5738,90 +7472,136 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "لا رمز تأكيد." + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" - -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "محادثه فورية" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "رسائل قصيرة" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "كونيكشونات (Connections)" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +#, fuzzy msgid "Authorized connected applications" -msgstr "" +msgstr "OAuth applications" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "خطأ قاعده بيانات" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "ارفع ملفًا" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "تستطيع رفع صورتك الشخصيه. أقصى حجم للملف هو 2 م.ب." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "مكّن" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "عطّل" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "أعد الضبط" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "استعيدت مبدئيات التصميم." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "ألغِ تفضيل هذا الإشعار" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "فضّل هذا الإشعار" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "فضّل" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "آرإس​إس 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "آرإس​إس 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "أتوم" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "تصدير البيانات" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5852,73 +7632,139 @@ msgstr "اذهب" msgid "Grant this user the \"%s\" role" msgstr "" -#: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" +#: lib/groupeditform.php:163 +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." +msgstr "انت مش بتملك الapplication دى." + #: lib/groupeditform.php:168 +#, fuzzy msgid "Describe the group or topic" -msgstr "" +msgstr "اوصف الapplication بتاعتك" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "اوصف الapplication بتاعتك" +msgstr[1] "اوصف الapplication بتاعتك" +msgstr[2] "اوصف الapplication بتاعتك" +msgstr[3] "اوصف الapplication بتاعتك" +msgstr[4] "اوصف الapplication بتاعتك" +msgstr[5] "اوصف الapplication بتاعتك" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "مجموعات" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "ممنوع" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 -#, php-format -msgid "Edit %s group properties" -msgstr "عدّل خصائص مجموعه %s" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "الشعار" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "أضف أو عدّل شعار %s" - +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "المجموعات الأكثر أعضاءً" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "المجموعات الأكثر مرسلات" -#: lib/grouptagcloudsection.php:56 -#, php-format +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 +#, fuzzy, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "عدّل خصائص مجموعه %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -5926,41 +7772,75 @@ msgid "This page is not available in a media type you accept" msgstr "" #: lib/imagefile.php:72 +#, fuzzy msgid "Unsupported image file format." -msgstr "" +msgstr "نسق غير مدعوم." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 +#, fuzzy msgid "Partial upload." -msgstr "" +msgstr "رُفع الأفتار." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 +#, fuzzy msgid "Lost our file." -msgstr "" +msgstr "لا ملف كهذا." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "ميجابايت" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "ميجابايت" +msgstr[1] "ميجابايت" +msgstr[2] "ميجابايت" +msgstr[3] "ميجابايت" +msgstr[4] "ميجابايت" +msgstr[5] "ميجابايت" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "كيلوبايت" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "كيلوبايت" +msgstr[1] "كيلوبايت" +msgstr[2] "كيلوبايت" +msgstr[3] "كيلوبايت" +msgstr[4] "كيلوبايت" +msgstr[5] "كيلوبايت" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #: lib/jabber.php:387 #, php-format @@ -5972,60 +7852,66 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "مصدر الـinbox مش معروف %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "انضم" - #: lib/leaveform.php:114 msgid "Leave" msgstr "غادر" #: lib/logingroupnav.php:80 +#, fuzzy msgid "Login with a username and password" -msgstr "" +msgstr "اسم مستخدم أو كلمه سر غير صالحه." #: lib/logingroupnav.php:86 msgid "Sign up for a new account" msgstr "" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "تأكيد عنوان البريد الإلكتروني" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 -#, php-format +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 +#, fuzzy, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "" +msgstr "هؤلاء هم الأشخاص الذين يستمعون إلى إشعاراتك." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6034,26 +7920,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "عن نفسك: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 -#, php-format +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, fuzzy, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "أنشئ عنوان بريد إلكترونى لترسل إليه؛ ألغِ القديم." -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6063,34 +7953,40 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "حاله %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 +#, fuzzy msgid "SMS confirmation" -msgstr "" +msgstr "لا رمز تأكيد." -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6106,14 +8002,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "رساله خاصه جديده من %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6132,14 +8032,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "أرسل لى بريدًا إلكرتونيًا عندما يضيف أحدهم إشعارى مفضله." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6161,7 +8066,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6169,13 +8074,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6203,8 +8115,9 @@ msgid "" msgstr "" #: lib/mailbox.php:89 +#, fuzzy msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "يحق للمُرسل والمستلم فقط قراءه هذه الرساله." #: lib/mailbox.php:139 msgid "" @@ -6212,7 +8125,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "من" @@ -6225,165 +8138,223 @@ msgid "Not a registered user." msgstr "ليس مستخدمًا مسجلًا." #: lib/mailhandler.php:46 +#, fuzzy msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "هذا ليس عنوان بريدك الإلكترونى." #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." msgstr "" -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "نوع رساله مش مدعوم: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "فشل فى كتابه الملف إلى القرص." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "مش نافع يتحدد نوع الـMIME بتاع الفايل." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "أرسل إشعارًا مباشرًا" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "اختر وسمًا لترشيحه" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "غير مشترك!" + +#: lib/messageform.php:153 msgid "To" msgstr "إلى" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "المحارف المتوفرة" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "أرسل" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "ما الأخبار يا %s؟" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "أرفق" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "اعمل مشاركه لمكانى" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "ما تعملش مشاركه لمكانى" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "ش" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "ج" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "ر" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "غ" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "في" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "متكرر من" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6396,67 +8367,66 @@ msgid "Nudge" msgstr "نبّه" #: lib/nudgeform.php:128 +#, fuzzy msgid "Send a nudge to this user" +msgstr "أرسل رساله مباشره إلى هذا المستخدم" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "خطأ أثناء إدراج الملف الشخصى الجديد" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "خطأ فى إدراج الأفتار" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "خطأ أثناء تحديث الملف الشخصى البعيد" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "خطأ أثناء إدراج الملف الشخصى البعيد" - -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "ضاعف الإشعار" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "تعذّر إدراج اشتراك جديد." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "شخصية" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "الردود" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "المفضلات" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "صندوق الوارد" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "رسائلك الواردة" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "صندوق الصادر" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "رسائلك المُرسلة" #: lib/personaltagcloudsection.php:56 -#, php-format +#, fuzzy, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "ليس للمستخدم إشعار أخير" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "مش معروف" @@ -6538,31 +8508,40 @@ msgstr "كرر هذا الإشعار" msgid "Revoke the \"%s\" role from this user" msgstr "امنع هذا المستخدم من هذه المجموعة" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "الـ API method مش موجوده." #: lib/sandboxform.php:67 +#, fuzzy msgid "Sandbox" -msgstr "" +msgstr "صندوق الوارد" #: lib/sandboxform.php:78 msgid "Sandbox this user" msgstr "أضف هذا المستخدم إلى صندوق الرمل" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "ابحث فى الموقع" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "الكلمات المفتاحية" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "ابحث" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "ابحث فى المساعدة" @@ -6636,6 +8615,12 @@ msgstr "" msgid "None" msgstr "لا شيء" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "حجم غير صالح." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6645,48 +8630,66 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "فشل تحديث الأفتار." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "خطأ أثناء تحديث الملف الشخصى البعيد" +msgstr "خطأ أثناء منع الحجب." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "أعلى المرسلين" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "ألغِ المنع" + #: lib/unsandboxform.php:69 +#, fuzzy msgid "Unsandbox" -msgstr "" +msgstr "أزل هذا المستخدم من صندوق الرمل" #: lib/unsandboxform.php:80 msgid "Unsandbox this user" @@ -6708,124 +8711,201 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "ليس للمستخدم ملف شخصى." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "عدّل الأفتار" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "تصرفات المستخدم" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "عدّل إعدادات الملف الشخصي" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "عدّل" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "أرسل رساله مباشره إلى هذا المستخدم" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "رسالة" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "ملف المستخدم الشخصي" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "الإداريون" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "قبل دقيقه تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "قبل ساعه تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "قبل يوم تقريبا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "قبل شهر تقريبًا" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "قبل سنه تقريبًا" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s ليس لونًا صحيحًا!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s ليس لونًا صحيحًا!" + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[1] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[2] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[3] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[4] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." +msgstr[5] "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "حجم غير صالح." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "ما فيش ID متحدد لليوزر." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 3b78847b5b..bb1f0c3e0f 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -1,274 +1,359 @@ -# Translation of StatusNet to Bulgarian +# Translation of StatusNet - Core to Bulgarian (Български) +# Expored from translatewiki.net # -# Author@translatewiki.net: DCLXVI -# Author@translatewiki.net: Turin +# Author: DCLXVI +# Author: Turin # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:08+0000\n" -"Language-Team: Bulgarian\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:26+0000\n" +"Language-Team: Bulgarian <http://translatewiki.net/wiki/Portal:bg>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Достъп" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Настройки за достъп до сайта" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Регистриране" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "Частен" +msgstr "Поверителност" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Новите регистрации да са само с покани." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Само с покани" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Изключване на новите регистрации." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Затворен" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Запазване настройките за достъп" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Запазване" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Няма такака страница." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Няма такъв потребител" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и приятели, страница %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s и приятели" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Емисия с приятелите на %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Емисия с приятелите на %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Емисия с приятелите на %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Вие и приятелите" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Бележки от %1$s и приятели в %2$s." -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Не е открит методът в API." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Този метод изисква заявка POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Грешка при обновяване на потребителя." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Потребителят няма профил." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Грешка при запазване на профила." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 @@ -276,314 +361,473 @@ msgstr "" msgid "Unable to save your design settings." msgstr "Грешка при записване настройките за Twitter" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Грешка при обновяване на потребителя." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Поток на %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Абонаменти на %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Любими" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Членове на групата %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Не можете да блокирате себе си!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Грешка при блокиране на потребителя." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Грешка при разблокиране на потребителя." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Преки съобщения от %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Всички преки съобщения, изпратени от %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Преки съобщения до %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Всички преки съобщения, изпратени до %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Липсва текст на съобщението" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Твърде дълго. Може да е най-много %d знака." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Твърде дълго. Може да е най-много %d знака." +msgstr[1] "Твърде дълго. Може да е най-много %d знака." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Получателят не е открит" -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Не може да изпращате преки съобщения до хора, които не са в списъка ви с " "приятели." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Не може да изпращате съобщения до себе си. По-добре си го кажете на себе си " +"тихичко." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Не е открита бележка с такъв идентификатор." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Тази бележка вече е отбелязана като любима." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Грешка при отбелязване като любима." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Тази бележка не е отбелязана като любима." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Грешка при изтриване на любима бележка." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Грешка при проследяване — потребителят не е намерен." +msgstr "Грешка при спиране на проследяването — потребителят не е намерен." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Грешка при проследяване на потребител: %s вече е в списъка ви." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Грешка при спиране на проследяването — потребителят не е намерен." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Не можете да спрете да следите себе си." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "Трябва да се дадат два идентификатора или имена на потребители." -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Грешка при изтегляне на общия поток" +msgstr "Целевият потребител не беше открит." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Целевият потребител не беше открит." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Псевдонимът може да съдържа само малки букви, числа и никакво разстояние " -"между тях." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Опитайте друг псевдоним, този вече е зает." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Неправилен псевдоним." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Адресът на личната страница не е правилен URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Описанието е твърде дълго (до %d символа)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Описанието е твърде дълго (до %d символа)." +msgstr[1] "Описанието е твърде дълго (до %d символа)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Името на местоположението е твърде дълго (макс. 255 знака)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Неправилен псевдоним: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Псевдонимът \"%s\" вече е зает. Опитайте друг." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Групата не е открита." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Вече членувате в тази група." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +#, fuzzy msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "Не сте блокирали този потребител." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Грешка при проследяване — потребителят не е намерен." +msgstr "Грешка при обновяване на групата." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Не членувате в тази група." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Грешка при проследяване — потребителят не е намерен." +msgstr "Грешка при създаване на групата." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Групи на %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "Групи, в които участва %s" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Групи на %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "групи в %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "Качване на файл" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Не е указана бележка." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "Неправилен размер." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Не сте абонирани за никого." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Имаше проблем със сесията ви в сайта. Моля, опитайте отново!" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Неправилно име или парола!" -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Грешка в настройките на потребителя." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "Грешка в базата от данни — отговор при вмъкването: %s" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Неочаквано изпращане на форма." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Разрешение или забрана на достъпа" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -591,243 +835,626 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Сметка" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Псевдоним" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Парола" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Забрана" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Отказ" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Разрешение" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Няма код за потвърждение." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Не сте абонирани за никого." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Не сте абонирани за никого." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Този метод изисква заявка POST или DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Не може да изтривате бележки на друг потребител." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Няма такава бележка." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Не можете да повтаряте собствени бележки." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Не е открит методът в API." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Неподдържан формат." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Бележката е изтрита." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Не е открита бележка с такъв идентификатор." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Грешка при изтриване на бележката." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Изтриване на бележката" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Твърде дълга бележка. Трябва да е най-много 140 знака." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Твърде дълго. Може да е най-много %d знака." +msgstr[1] "Твърде дълго. Може да е най-много %d знака." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Не е открито." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Не е открит методът в API." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Неподдържан формат." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%s / Отбелязани като любими от %s" +msgstr "Бележка на %1$s от %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s бележки отбелязани като любими от %s / %s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s реплики на съобщения от %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Грешка при обновяване на групата." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Реплики на %2$s" +msgstr "Бележка на %1$s от %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s реплики на съобщения от %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Общ поток на %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Командата все още не се поддържа." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Повторено за %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Повторения на %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Бележки с етикет %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Само потребителят може да отваря собствената си кутия." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Търсене в съдържанието на бележките" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Не е открита бележка с такъв идентификатор." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Методът в API все още се разработва." -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Няма такъв документ." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Не е открит методът в API." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Няма такъв профил." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Грешка при добавяне на нов абонамент." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Търсене в съдържанието на бележките" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Непознато" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Добавяне към любимите" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Няма такъв профил." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Членове на групата %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Групи, в които участва %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Непознато" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Всички членове" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Няма такъв файл." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Грешка при изтриване на любима бележка." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Няма такава група" + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Всички членове" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Не е открит методът в API." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Няма такъв профил." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Не сте абонирани за този профил" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Грешка при добавяне на нов абонамент." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Абонирани за %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Неподдържан вид файл" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Няма прикачени файлове." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Няма псевдоним." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Няма размер." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Неправилен размер." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Аватар" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Можете да качите личен аватар тук. Максималната големина на файла е %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Потребител без съответстващ профил" +msgstr "Потребителят няма профил." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Настройки за аватар" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Преглед" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Изтриване" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Качване" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Изрязване" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Няма качен файл." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Изберете квадратна област от изображението за аватар" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Аватарът е обновен." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Неуспешно обновяване на аватара." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Аватарът е изтрит." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Вече сте блокирали този потребител." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Блокиране на потребителя" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -836,176 +1463,222 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Не" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Да не се блокира този потребител" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Да" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Блокиране на потребителя" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Грешка при записване данните за блокирането." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Няма такава група" -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "Блокирани за %s" -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "Блокирани за %s, страница %d" +msgstr "%1$s и приятели, страница %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "Списък с потребителите в тази група." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Разблокиране на потребителя от групата" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Разблокиране" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Разблокиране на този потребител" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Снимка" +msgstr "групи в %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Няма код за потвърждение." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Кодът за потвърждение не е открит." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Този код за потвърждение не е за вас!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Неразпознат вид адрес %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Този адрес е вече потвърден." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Грешка при обновяване на потребителя." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Грешка при изтриване потвърждението по е-поща." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Потвърждаване на адрес" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Адресът \"%s\" е потвърден за сметката ви." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Разговор" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Бележки" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "За да изтриете приложение, трябва да сте влезли." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Приложението не е открито." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Не сте собственик на това приложение." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Имаше проблем със сесията ви в сайта." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Изтриване на приложението" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1013,51 +1686,114 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Да не се изтрива приложението" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Изтриване на това приложение" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "За напуснете група, трябва да сте влезли." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Няма псевдоним." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Не членувате в тази група." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Грешка при обновяване на групата." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s напусна групата %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Изтриване на потребител" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Да не се изтрива бележката" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Изтриване на този потребител" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не сте влезли в системата." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Грешка при изтриване на бележката." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Изтриване на бележката" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Наистина ли искате да изтриете тази бележка?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1086,146 +1822,170 @@ msgstr "Изтриване на този потребител" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 +#, fuzzy msgid "Design" -msgstr "" +msgstr "Версия" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Неправилен размер." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Неправилен размер." + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Страницата не е достъпна във вида медия, който приемате" -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Смяна на логото" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Лого на сайта" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Лого на сайта" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Промяна" -#: actions/designadminpanel.php:460 -#, fuzzy +#: actions/designadminpanel.php:486 msgid "Site theme" -msgstr "Нова бележка" +msgstr "Път до сайта" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 #, fuzzy msgid "Theme for the site." msgstr "Излизане от сайта" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Нова бележка" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Смяна на изображението за фон" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Фон" -#: actions/designadminpanel.php:496 -#, fuzzy, php-format +#: actions/designadminpanel.php:522 +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "Може да качите лого за групата ви." +msgstr "" +"Можете да качите лично изображение за фон. Максималната големина на файла е " +"2MB." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Вкл." #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Изкл." -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 +#, fuzzy msgid "Turn background image on or off." -msgstr "" +msgstr "Смяна на изображението за фон" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +#, fuzzy msgid "Tile background image" -msgstr "" +msgstr "Смяна на изображението за фон" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Смяна на цветовете" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Съдържание" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Страничен панел" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Текст" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" -msgstr "Списък" +msgstr "Лиценз" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Запазване" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 +#, fuzzy msgid "Save design" -msgstr "" +msgstr "Запазване настройките на сайта" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" @@ -1236,120 +1996,144 @@ msgid "Add to favorites" msgstr "Добавяне към любимите" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Няма такъв документ." +msgstr "Няма такава бележка." -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +#, fuzzy +msgid "Edit application" msgstr "Редактиране на приложението" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "За да редактирате приложение, трябва да сте влезли." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Няма такова приложение." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "Използвайте тази бланка за създаване на нова група." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Името е задължително." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "Опитайте друг псевдоним, този вече е зает." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Описанието е задължително." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." -msgstr "" +msgstr "Изходният адрес е твърде дълъг." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "Адресът на личната страница не е правилен URL." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 +#, fuzzy msgid "Organization is required." -msgstr "" +msgstr "Описанието е задължително." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Името на организацията е твърде дълго (макс. 255 знака)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 +#, fuzzy msgid "Organization homepage is required." -msgstr "" +msgstr "Описанието е задължително." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Грешка при обновяване на групата." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Редактиране на групата %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "За да създавате група, трябва да сте влезли." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "За да редактирате групата, трябва да сте й администратор." +msgstr "За да редактирате група, трябва да сте влезли." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 +#, fuzzy msgid "Use this form to edit the group." -msgstr "" +msgstr "Използвайте тази бланка за създаване на нова група." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Описанието е твърде дълго (до %d символа)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неправилен псевдоним: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Грешка при обновяване на групата." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 #, fuzzy msgid "Could not create aliases." msgstr "Грешка при отбелязване като любима." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Настройките са запазени." @@ -1367,12 +2151,12 @@ msgstr "Управление на пощата, идваща от %%site.name%%. #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Адрес на е-поща" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Текущ потвърден адрес на е-поща." @@ -1381,14 +2165,14 @@ msgstr "Текущ потвърден адрес на е-поща." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Премахване" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1396,25 +2180,19 @@ msgstr "" "Очаква се потвърждение за този адрес. Проверете кутията си (или папката за " "спам) за съобщение с указания." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Отказ" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Адрес на е-поща, като \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1422,112 +2200,119 @@ msgstr "Добавяне" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Входяща поща" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Искам да изпращам бележки по пощата." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Изпратете писмо до този адрес за публикуване като бележка." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Задаване на нова е-поща, от която да се публикува. Отменя предишната." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Ново" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Настройки на е-поща" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Изпращане на уведомления за нови абонаменти по пощата." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Изпращане на писмо при отбелязване на моя бележка като любима." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Изпращане на писмо при ново лично съобщение." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 #, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Изпращане на писмо при ново лично съобщение." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Искам да изпращам бележки по пощата." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Публикуване на MicroID за адреса на е-пощата." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Настройките на е-поща са запазени." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Не е въведена е-поща." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Грешка при нормализиране адреса на е-пощата" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неправилен адрес на е-поща." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Това и сега е адресът на е-пощата ви." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Тази е-поща вече се използва от друг потребител." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Не може да се вмъкне код за потвърждение." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1539,53 +2324,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Няма потвърждения, очакващи да бъдат отказани." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Грешен IM адрес." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Грешка при изтриване потвърждението по е-поща." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Потвърждаването е прекъснато." +msgstr "Няма потвърждения, очакващи да бъдат отказани." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Това не е вашият адрес на е-поща." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Адресът е премахнат." +msgstr "Входящият адрес на е-поща е премахнат." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Няма входящ адрес на е-поща." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Грешка при обновяване записа на потребител." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Входящият адрес на е-поща е премахнат." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Добавен е нов входящ адрес на е-поща." @@ -1593,12 +2382,11 @@ msgstr "Добавен е нов входящ адрес на е-поща." msgid "This notice is already a favorite!" msgstr "Тази бележка вече е отбелязана като любима!" -#: actions/favor.php:92 lib/disfavorform.php:140 -#, fuzzy +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "Нелюбимо" +msgstr "Добавяне към любимите" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Популярни бележки" @@ -1630,7 +2418,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Любими бележки на %s" @@ -1668,9 +2456,8 @@ msgid "No attachments." msgstr "Няма прикачени файлове." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Няма такъв документ." +msgstr "Няма прикачени файлове." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1690,9 +2477,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 @@ -1704,7 +2490,7 @@ msgstr "Грешка при преобразуване на tokens за одоб msgid "Remote service uses unknown version of OMB protocol." msgstr "Непозната версия на протокола OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Грешка при обновяване на отдалечен профил" @@ -1727,28 +2513,31 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Не може да изпращате съобщения до този потребител." +msgstr "Не можете да заглушавате потребители на този сайт." #: actions/grantrole.php:82 #, fuzzy msgid "User already has this role." msgstr "Потребителят вече е заглушен." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Не е указан профил." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Не е открит профил с такъв идентификатор." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Не е указана група." @@ -1765,10 +2554,9 @@ msgstr "Потребителят вече е блокиран за групат msgid "User is not a member of group." msgstr "Потребителят не членува в групата." -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "Блокиране на потребителя" +msgstr "Разблокиране на потребителя от групата" #: actions/groupblock.php:160 #, php-format @@ -1780,19 +2568,18 @@ msgstr "" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 -#, fuzzy msgid "Do not block this user from this group" -msgstr "Списък с потребителите в тази група." +msgstr "Да не се блокира този потребител" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 -#, fuzzy msgid "Block this user from this group" -msgstr "Списък с потребителите в тази група." +msgstr "Разблокиране на потребителя от групата" #: actions/groupblock.php:206 +#, fuzzy msgid "Database error blocking user from group." -msgstr "" +msgstr "Разблокиране на потребителя от групата" #: actions/groupbyid.php:74 actions/userbyid.php:70 msgid "No ID." @@ -1813,26 +2600,36 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Грешка при обновяване на потребителя." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "Настройките са запазени." +msgstr "Настройките на е-поща са запазени." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Лого на групата" #: actions/grouplogo.php:153 -#, fuzzy, php-format +#, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "Може да качите лого за групата ви." +msgstr "" +"Можете да качите личен аватар тук. Максималната големина на файла е %s." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Качване" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Изрязване" #: actions/grouplogo.php:365 #, fuzzy @@ -1847,50 +2644,57 @@ msgstr "Лотого е обновено." msgid "Failed updating logo." msgstr "Неуспешно обновяване на логото." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Членове на групата %s" -#: actions/groupmembers.php:103 -#, fuzzy, php-format +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format msgid "%1$s group members, page %2$d" -msgstr "Членове на групата %s, страница %d" +msgstr "Абонати на %1$s, страница %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Списък с потребителите в тази група." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Настройки" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Блокиране" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Блокиране на този потребител" + +#: actions/groupmembers.php:498 #, fuzzy msgid "Make user an admin of the group" msgstr "За да редактирате групата, трябва да сте й администратор." -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Поток на %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, fuzzy, php-format @@ -1953,25 +2757,26 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 +#, fuzzy msgid "Only an admin can unblock group members." -msgstr "" +msgstr "Само администратор може да блокира членове от групата." -#: actions/groupunblock.php:95 -#, fuzzy +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "Потребителят ви е блокирал." +msgstr "Потребителят вече е блокиран за групата." -#: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." -msgstr "Грешка при запазване на потребител." +msgstr "Грешка при повтаряне на бележката." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "IM настройки" +msgstr "Настройки за SMS" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -1994,9 +2799,8 @@ msgstr "Страницата не е достъпна във вида медия #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "IM адрес" +msgstr "Адрес на е-поща" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2015,7 +2819,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2025,64 +2832,63 @@ msgstr "" "сте добавили %s в списъка си с приятели в IM или GTalk клиента си." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Настройки" +msgstr "Настройки на е-поща" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Изпращане на бележките по Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Публикуване промяната на състоянието ми в Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Изпращане по Jabber/GTalk на отговори от хора, " #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Публикуване на MicroID за адреса в Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Настройките са запазени." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Няма Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Грешка при нормализация на този Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Неправилен Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Това вече е вашият Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Този Jabber ID принадлежи на друг потребител." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2092,38 +2898,36 @@ msgstr "" "от %s, трябва да го одобрите." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Грешен IM адрес." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Грешка при изтриване потвърждението по е-поща." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Потвърждаването е прекъснато." +msgstr "Няма код за потвърждение." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Това не е вашият Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Адресът е премахнат." +msgstr "Входящият адрес на е-поща е премахнат." #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "Входяща кутия за %s" +msgstr "%1$s, страница %2$d" #: actions/inbox.php:62 #, php-format @@ -2134,49 +2938,79 @@ msgstr "Входяща кутия за %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "Това е входящата ви кутия с лични съобщения от други потребители." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Поканите са изключени." -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "За да каните хора в %s, трябва да сте влезли." - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" +msgid "You must be logged in to invite other users to use %s." +msgstr "За да редактирате група, трябва да сте влезли." + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Неправилен адрес на е-поща: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Поканите са изпратени." -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Покани за нови потребители" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Вече сте абонирани за следните потребители:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Вече сте абонирани за следните потребители:" +msgstr[1] "Вече сте абонирани за следните потребители:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Тези хора са потребители тук и автоматично сте абонирани за тях:" +msgstr[0] "Тези хора са потребители тук и автоматично сте абонирани за тях:" +msgstr[1] "Тези хора са потребители тук и автоматично сте абонирани за тях:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Изпратени са покани до следните хора:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Изпратени са покани до следните хора:" +msgstr[1] "Изпратени са покани до следните хора:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2184,44 +3018,55 @@ msgstr "" "Ще ви уведомим при приемане на покана и записване в сайта. Благодарим ви за " "увеличаването на общността тук!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Използвайте това поле, за да поканите приятели и колеги да използват " "услугата на сайта." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Адреси на е-поща" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Адреси на приятели, които каните (по един на ред)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Лично съобщение" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Може да добавите и лично съобщение към поканата." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Прати" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s ви кани да ползвате заедно %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2282,33 +3127,130 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "За да се присъедините към група, трябва да сте влезли." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Няма псевдоним." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 -#, fuzzy, php-format +#: actions/joingroup.php:141 +#, php-format msgid "%1$s joined group %2$s" -msgstr "%s се присъедини към групата %s" +msgstr "%1$s напусна групата %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." msgstr "За напуснете група, трябва да сте влезли." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Не членувате в тази група." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s напусна групата %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Лиценз" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Името на местоположението е твърде дълго (макс. 255 знака)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Частен" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Всички права запазени" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Вече сте влезли." @@ -2330,11 +3272,11 @@ msgstr "Вход" msgid "Login to site" msgstr "Вход в сайта" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Запомни ме" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Автоматично влизане занапред. Да не се ползва на общи компютри!" @@ -2364,8 +3306,9 @@ msgstr "" "нова сметка или опитайте с [OpenID](%%action.openidlogin%%). " #: actions/makeadmin.php:92 +#, fuzzy msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "Само администратор може да блокира членове от групата." #: actions/makeadmin.php:96 #, fuzzy, php-format @@ -2387,71 +3330,82 @@ msgstr "За да редактирате групата, трябва да ст msgid "No current status." msgstr "Няма резултати." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Ново приложение" -#: actions/newapplication.php:64 -#, fuzzy +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." -msgstr "За да създавате група, трябва да сте влезли." +msgstr "За да редактирате приложение, трябва да сте влезли." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "Използвайте тази бланка за създаване на нова група." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 +#, fuzzy msgid "Source URL is required." -msgstr "" +msgstr "Името е задължително." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Грешка при отбелязване като любима." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Нова група" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Използвайте тази бланка за създаване на нова група." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Ново съобщение" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Не може да изпращате съобщения до този потребител." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Няма съдържание!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Не е указан получател." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Не може да изпращате съобщения до себе си. По-добре си го кажете на себе си " "тихичко." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Съобщението е изпратено" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Прякото съобщение до %s е изпратено." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Грешка в Ajax" @@ -2459,7 +3413,7 @@ msgstr "Грешка в Ajax" msgid "New notice" msgstr "Нова бележка" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Бележката е публикувана" @@ -2477,9 +3431,9 @@ msgid "Text search" msgstr "Търсене на текст" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " Търсене на \"%s\" в потока" +msgstr "Съобщение от %1$s в %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2507,7 +3461,8 @@ msgstr "Бележки, съдържащи търсеното \"%1$s\" в %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2518,76 +3473,98 @@ msgstr "Побутването е изпратено" msgid "Nudge sent!" msgstr "Побутването е изпратено!" -#: actions/oauthappssettings.php:59 -#, fuzzy +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "За да редактирате група, трябва да сте влезли." +msgstr "За да редактирате приложение, трябва да сте влезли." -#: actions/oauthappssettings.php:74 -#, fuzzy +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" -msgstr "Други настройки" +msgstr "Няма такова приложение." -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 -#, php-format +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 +#, fuzzy, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "Не сте собственик на това приложение." -#: actions/oauthconnectionssettings.php:72 -msgid "Connected applications" -msgstr "" - -#: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "" - -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 #, fuzzy -msgid "You are not a user of that application." -msgstr "Не членувате в тази група." +msgid "Connected applications" +msgstr "Изтриване на приложението" -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Instructions for OAuth connection settings. +#: actions/oauthconnectionssettings.php:83 +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 +msgid "You are not a user of that application." +msgstr "Не сте собственик на това приложение." + +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Използвайте тази бланка за създаване на нова група." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Бележката няма профил" +msgstr "Потребителят няма профил." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Бележка на %1$s от %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "вид съдържание " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -2599,37 +3576,46 @@ msgstr "Търсене на хора" msgid "Notice Search" msgstr "Търсене на бележки" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Други настройки" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Управление на различни други настройки." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (безплатна услуга)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Съкращаване на адресите с" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Услуга за автоматично съкращаване, която да се ползва." -#: actions/othersettings.php:122 -#, fuzzy +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "Настройки на профила" +msgstr "Редактиране на профила" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Услугата за съкращаване е твърде дълга (може да е до 50 знака)." #: actions/otp.php:69 @@ -2643,24 +3629,21 @@ msgid "No login token specified." msgstr "Не е указана бележка." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Сървърът не е върнал адрес на профила." +msgstr "Няма заявка за одобрение." #: actions/otp.php:95 -#, fuzzy msgid "Invalid login token specified." -msgstr "Невалидно съдържание на бележка" +msgstr "Не е указана бележка." #: actions/otp.php:104 -#, fuzzy msgid "Login token expired." -msgstr "Влизане в сайта" +msgstr "Вход в сайта" #: actions/outbox.php:58 -#, fuzzy, php-format +#, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "Изходяща кутия за %s" +msgstr "%1$s, страница %2$d" #: actions/outbox.php:61 #, php-format @@ -2697,7 +3680,7 @@ msgid "6 or more characters" msgstr "6 или повече знака" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Потвърждаване" @@ -2709,11 +3692,11 @@ msgstr "Също като паролата по-горе" msgid "Change" msgstr "Промяна" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Паролата трябва да е 6 или повече знака." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Паролите не съвпадат." @@ -2733,156 +3716,286 @@ msgstr "Грешка при запазване на новата парола." msgid "Password saved." msgstr "Паролата е записана." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Пътища" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Пътища и сървърни настройки за тази инсталация на StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Страницата не е достъпна във вида медия, който приемате" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "Страницата не е достъпна във вида медия, който приемате" +msgstr "Директория на аватара" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Директория на фона" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Страницата не е достъпна във вида медия, който приемате" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Сайт" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Сървър" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Път" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Път до сайта" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Директория на аватара" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Кратки URL-адреси" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Излизане от сайта" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Аватари" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Сървър на аватара" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Път до аватара" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Директория на аватара" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Фонове" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Сървър на фона" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Път до фона" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Директория на фона" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Никога" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Понякога" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Винаги" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Използване на SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Кога да се използва SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-сървър" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Път до сайта" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Директория на аватара" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Аватари" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Сървър на аватара" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Излизане от сайта" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Път до аватара" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Неуспешно обновяване на аватара." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Директория на аватара" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Фонове" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Излизане от сайта" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +#, fuzzy +msgid "Attachments" +msgstr "Няма прикачени файлове." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Излизане от сайта" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Няма прикачени файлове." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Излизане от сайта" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Никога" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Понякога" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Винаги" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Използване на SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Кога да се използва SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Запазване на пътищата" @@ -2900,9 +4013,9 @@ msgid "People search" msgstr "Търсене на хора" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "Това не е правилен адрес на е-поща." +msgstr "Неправилен адрес на е-поща." #: actions/peopletag.php:142 #, fuzzy, php-format @@ -2910,147 +4023,192 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Бележки с етикет %s, страница %d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Невалидно съдържание на бележка" +msgstr "Неправилен размер." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Настройки на профила" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "Можете да обновите личния си профил, за да знаят хората повече за вас." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Данни на профила" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "От 1 до 64 малки букви или цифри, без пунктоация и интервали" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Пълно име" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Лична страница" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "Адрес на личната ви страница, блог или профил в друг сайт" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Опишете себе си и интересите си в до %d букви" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Опишете себе си и интересите си в до %d букви" +msgstr[1] "Опишете себе си и интересите си в до %d букви" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Опишете себе си и интересите си" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "За мен" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Местоположение" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Къде се намирате (град, община, държава и т.н.)" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Етикети" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Език" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Предпочитан език" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Часови пояс" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "В кой часови пояс сте обикновено?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Автоматично абониране за всеки, който се абонира за мен (подходящо за " "ботове)." -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Биографията е твърде дълга (до %d символа)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Биографията е твърде дълга (до %d символа)." +msgstr[1] "Биографията е твърде дълга (до %d символа)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Не е избран часови пояс" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Името на езика е твърде дълго (може да е до 50 знака)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Неправилен етикет: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Грешка при обновяване записа на потребител." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Грешка при запазване етикетите." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Грешка при запазване на профила." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Грешка при запазване етикетите." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Настройките са запазени." @@ -3118,35 +4276,48 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Емисия на общия поток" +msgstr "Общ поток, страница %d" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 +#, fuzzy msgid "Tag cloud" -msgstr "" +msgstr "Смяна на цветовете" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -3177,10 +4348,13 @@ msgid "Could not update user with confirmed email address." msgstr "Грешка при обновяване на потребител с потвърден email адрес." #: actions/recoverpassword.php:152 +#, fuzzy 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. " @@ -3255,14 +4429,15 @@ msgid "Unexpected password reset." msgstr "Неочаквано подновяване на паролата." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Паролата трябва да е от поне 6 знака." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Паролата и потвърждението й не съвпадат." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Грешка в настройките на потребителя." @@ -3270,7 +4445,7 @@ msgstr "Грешка в настройките на потребителя." msgid "New password successfully saved. You are now logged in." msgstr "Новата парола е запазена. Влязохте успешно." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3283,7 +4458,7 @@ msgstr "Грешка в кода за потвърждение." msgid "Registration successful" msgstr "Записването е успешно." -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистриране" @@ -3291,82 +4466,86 @@ msgstr "Регистриране" msgid "Registration not allowed." msgstr "Записването не е позволено." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Не можете да се регистрате, ако не сте съгласни с лиценза." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Адресът на е-поща вече се използва." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Неправилно име или парола." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "От 1 до 64 малки букви или цифри, без пунктоация и интервали. Задължително " "поле." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 или повече знака. Задължително поле." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Същото като паролата по-горе. Задължително поле." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Е-поща" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Използва се само за промени, обяви или възстановяване на паролата" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "По-дълго име, за предпочитане \"истинското\" ви име." -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Адрес на личната ви страница, блог или профил в друг сайт" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "Всички права запазени." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr " освен тези лични данни: парола, е-поща, месинджър, телефон." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3399,7 +4578,7 @@ msgstr "" "Благодарим, че се включихте в сайта и дано ползването на услугата ви носи " "само приятни мигове!" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3444,7 +4623,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес на профила ви в друга, съвместима услуга за микроблогване" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Абониране" @@ -3482,7 +4661,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Повторено" @@ -3491,7 +4670,7 @@ msgid "Repeated!" msgstr "Повторено!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Отговори на %s" @@ -3557,25 +4736,22 @@ msgid "StatusNet" msgstr "StatusNet" #: 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 "Потребителят вече е заглушен." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Сесии" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "Основни настройки на тази инсталация на StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3594,7 +4770,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Запазване настройките на сайта" @@ -3607,28 +4782,29 @@ msgid "Application profile" msgstr "Профил на приложението" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Икона" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Име" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Организация" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистики" @@ -3639,13 +4815,19 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 +#, fuzzy msgid "Application actions" -msgstr "" +msgstr "Данни за приложението" #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Изтриване" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Данни за приложението" @@ -3731,77 +4913,107 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Така можете да споделите какво харесвате." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Група %s" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "Членове на групата %s, страница %d" +msgstr "%1$s, страница %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Профил на групата" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Бележка" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Псевдоними" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +#, fuzzy msgid "Group actions" -msgstr "" +msgstr "Потребителски действия" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (RSS 1.0)" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (RSS 2.0)" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Изходяща кутия за %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Членове" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Без)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Всички членове" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Създадена на" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Членове" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3811,7 +5023,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3820,24 +5035,31 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Администратори" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Няма такова съобщение" -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Само подателят и получателят могат да четат това съобщение." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Съобщение до %1$s в %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Съобщение от %1$s в %2$s" @@ -3846,60 +5068,84 @@ msgstr "Съобщение от %1$s в %2$s" msgid "Notice deleted." msgstr "Бележката е изтрита." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s, страница %2$d" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" msgstr "Бележки с етикет %s" -#: actions/showstream.php:79 +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, страница %2$d" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Емисия с бележки на %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Емисия с бележки на %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Емисия с бележки на %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF за %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3908,7 +5154,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3916,10 +5164,11 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 -#, fuzzy, php-format +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, 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." @@ -3930,18 +5179,16 @@ msgid "User is already silenced." msgstr "Потребителят вече е заглушен." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Основни настройки на тази инсталация на StatusNet." +msgstr "Пътища и сървърни настройки за тази инсталация на StatusNet." #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Името на сайта е задължително." #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Адресът на е-поща за контакт е задължителен" +msgstr "Неправилен адрес на е-поща." #: actions/siteadminpanel.php:159 #, php-format @@ -4030,38 +5277,42 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Нова бележка" +msgstr "Бележки" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Ново съобщение" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Грешка при записване настройките за Twitter" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Нова бележка" +msgstr "Изтриване на бележката" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Нова бележка" +msgstr "Запазване настройките на сайта" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 @@ -4083,9 +5334,8 @@ msgstr "Страницата не е достъпна във вида медия #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "IM адрес" +msgstr "Адрес на е-поща" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4126,9 +5376,8 @@ msgstr "Телефонен номер — с код, без пунктоация #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Настройки" +msgstr "Настройки на е-поща" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4167,14 +5416,13 @@ msgstr "Този телефонен номер вече се използва о #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"На телефонния номер, който сте въвели, беше изпратен код за потвърждение. " -"Проверете съобщенията (или папката за спам) за кода и указанията за " -"използването му." +"На адреса на е-поща, който сте въвели, беше изпратен код за потвърждение. " +"Проверете кутията (или папката за спам) за кода и указанията за използването " +"му." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4183,9 +5431,8 @@ msgstr "Този код за потвърждение е грешен." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Потвърждаването е прекъснато." +msgstr "Потвърждение за SMS" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4227,7 +5474,7 @@ msgstr "Не е въведен код." #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4285,24 +5532,21 @@ msgstr "" msgid "Save snapshot settings" msgstr "Запазване настройките на сайта" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Не сте абонирани за този профил" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Грешка при създаване на нов абонамент." +msgstr "Грешка при добавяне на нов абонамент." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Няма такъв профил." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4313,63 +5557,84 @@ msgstr "Не сте абонирани за този профил" msgid "Subscribed" msgstr "Абониране" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s абоната" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Абонати на %1$s, страница %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Tова са хората, които четат бележките ви." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Това са хората, които четат бележките на %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Абонаменти на %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Абонаменти на %1$s, страница %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Няма хора, чийто бележки четете." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Хора, чийто бележки %s чете." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4379,43 +5644,53 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s не получава ничии бележки." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Емисия с бележки на %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Бележки с етикет %s, страница %d" +msgstr "Бележки с етикет %s" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Емисия с бележки на %s" +msgstr "Емисия с бележки на %s (RSS 2.0)" #: actions/tag.php:99 -#, 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 "Липсват аргументи return-to." #: actions/tagother.php:65 #, fuzzy, php-format @@ -4427,7 +5702,7 @@ msgid "User profile" msgstr "Потребителски профил" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Снимка" @@ -4464,18 +5739,16 @@ 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." msgstr "Потребителят не е заглушен." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Сървърът не е върнал адрес на профила." +msgstr "Не е открит профил с такъв идентификатор." #: actions/unsubscribe.php:98 #, fuzzy @@ -4489,78 +5762,101 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Потребител" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Профил" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 +#, fuzzy msgid "Bio Limit" -msgstr "" +msgstr "Ограничения" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Нови потребители" -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" - +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#, fuzzy +msgid "New user welcome" +msgstr "Нови потребители" -#: actions/useradminpanel.php:241 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Пълното име е твърде дълго (макс. 255 знака)" + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Всички абонаменти" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Автоматично абониране за всеки, който се абонира за мен (подходящо за " "ботове)." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Покани" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Поканите са включени" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Одобряване на абонамента" @@ -4575,7 +5871,9 @@ msgstr "" "Проверете тези детайли и се уверете, че искате да се абонирате за бележките " "на този потребител. Ако не искате абонамента, натиснете \"Cancel\" (Отказ)." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Лиценз" @@ -4664,12 +5962,14 @@ msgstr "Грешка при четене адреса на аватара '%s'" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Грешен вид изображение за '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Настройки на профила" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4681,9 +5981,9 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Членове на групата %s, страница %d" +msgstr "%1$s, страница %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" @@ -4705,7 +6005,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." @@ -4754,7 +6054,7 @@ msgid "Plugins" msgstr "Приставки" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Версия" @@ -4762,64 +6062,111 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(и)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Любимо" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) отбеляза бележката ви като любима" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Неправилен размер." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Профил на групата" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Грешка при обновяване на групата." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Профил на групата" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Грешка при запазване на потребител — невалидност." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Присъединяване" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4839,18 +6186,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Грешка при изпращане на прякото съобщение" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Грешка при вмъкване на съобщението." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Грешка при обновяване на бележката с нов URL-адрес." @@ -4862,24 +6209,24 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Грешка в базата от данни — отговор при вмъкването: %s" +msgstr "Грешка при вмъкване на аватар" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Проблем при записване на бележката." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Грешка при записване на бележката. Непознат потребител." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4887,7 +6234,7 @@ msgstr "" "отново след няколко минути." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4897,44 +6244,58 @@ msgstr "" "отново след няколко минути." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Забранено ви е да публикувате бележки в този сайт." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Проблем при записване на бележката." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Грешка при запазване на етикетите." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4946,317 +6307,353 @@ msgid "Missing profile." msgstr "Потребителят няма профил." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Грешка при записване настройките за Twitter" +msgstr "Грешка при запазване на етикетите." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 #, fuzzy msgid "You have been banned from subscribing." msgstr "Потребителят е забранил да се абонирате за него." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Не сте абонирани!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Потребителят ви е блокирал." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Не сте абонирани!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Грешка при изтриване на абонамента." +msgstr "Грешка при добавяне на нов абонамент." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Грешка при изтриване на абонамента." +msgstr "Грешка при добавяне на нов абонамент." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Грешка при изтриване на абонамента." +msgstr "Грешка при добавяне на нов абонамент." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s вече получава бележките ви в %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Грешка при създаване на групата." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Грешка при създаване на нов абонамент." +msgstr "Грешка при създаване на групата." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "Грешка при създаване на нов абонамент." +msgstr "Грешка при създаване на групата." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Грешка при създаване на нов абонамент." +msgstr "Грешка при запазване на етикетите." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Промяна настройките на профила" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Качване на аватар" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Смяна на паролата" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Промяна обработката на писмата" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 #, fuzzy msgid "Design your profile" msgstr "Потребителски профил" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Други настройки" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Друго" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Неозаглавена страница" -#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 -msgid "Primary site navigation" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +#, fuzzy +msgid "Primary site navigation" +msgstr "Основна настройка на сайта" + #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Лично" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промяна на поща, аватар, парола, профил" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Сметка" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Свързване към услуги" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Свързване" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Промяна настройките на сайта" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Настройки" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете приятели и колеги да се присъединят към вас в %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Покани" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Излизане от сайта" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Изход" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Създаване на нова сметка" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Регистриране" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Влизане в сайта" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Вход" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощ" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Помощ" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Търсене за хора или бележки" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Търсене" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 #, fuzzy msgid "Site notice" msgstr "Нова бележка" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 #, fuzzy msgid "Page notice" msgstr "Нова бележка" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 -#, fuzzy +#: lib/action.php:858 msgid "Secondary site navigation" -msgstr "Абонаменти" +msgstr "Основна настройка на сайта" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Помощ" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Относно" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Въпроси" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Условия" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Поверителност" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Изходен код" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Контакт" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Табелка" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Лиценз на програмата StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5266,13 +6663,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** е услуга за микроблогване." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5284,359 +6684,471 @@ msgstr "" "licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Лиценз на съдържанието" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Страниране" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "След" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Преди" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Снимка" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Не можете да променяте този сайт." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Записването не е позволено." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "Командата все още не се поддържа." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "Командата все още не се поддържа." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Грешка при записване настройките за Twitter" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Основна настройка на сайта" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Настройка на оформлението" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Версия" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "Настройка на пътищата" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Потребител" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "Настройка на оформлението" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Настройка на пътищата" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "Настройка на оформлението" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Нова бележка" +msgstr "Изтриване на бележката" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "Настройка на пътищата" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Грешка при отбелязване като любима." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Грешка при отбелязване като любима." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Грешка при вмъкване на съобщението." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "Грешка в базата от данни — отговор при вмъкването: %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 +#, fuzzy msgid "Icon for this application" -msgstr "" +msgstr "Да не се изтрива приложението" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Опишете групата или темата в до %d букви" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Опишете групата или темата в до %d букви" +msgstr[1] "Опишете групата или темата в до %d букви" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Опишете групата или темата" +msgstr "Изтриване на приложението" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 -#, fuzzy +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" -msgstr "Адрес на страница, блог или профил в друг сайт на групата" +msgstr "Не сте собственик на това приложение." #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Изходен код" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "Не сте собственик на това приложение." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "Адрес на страница, блог или профил в друг сайт на групата" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Отказ" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 #, fuzzy msgctxt "BUTTON" msgid "Revoke" msgstr "Премахване" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Автор" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Доставчик" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 +#, fuzzy msgid "Tags for this attachment" -msgstr "" +msgstr "Няма прикачени файлове." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Паролата е записана." -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Паролата е записана." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Блокиране" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Резултат от командата" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Грешка в Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Командата е изпълнена" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Грешка при изпълнение на командата" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Не е открита бележка с такъв идентификатор." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "Потребителят няма последна бележка" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Грешка при обновяване на потребител с потвърден email адрес." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Грешка при обновяване на потребител с потвърден email адрес." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "За съжаление тази команда все още не се поддържа." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, php-format -msgid "Nudge sent to %s" +#: lib/command.php:238 +#, fuzzy, php-format +msgid "Nudge sent to %s." msgstr "Изпратено е побутване на %s" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5647,203 +7159,247 @@ msgstr "" "Абонати: %2$s\n" "Бележки: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Бележката е отбелязана като любима." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Вече членувате в тази група." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Грешка при проследяване — потребителят не е намерен." +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Грешка при проследяване — потребителят не е намерен." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Пълно име: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Местоположение: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Относно: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Съобщението е твърде дълго. Най-много може да е %1$d знака, а сте въвели %2" +"$d." +msgstr[1] "" "Съобщението е твърде дълго. Най-много може да е %1$d знака, а сте въвели %2" "$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Прякото съобщение до %s е изпратено." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Грешка при изпращане на прякото съобщение" -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Не можете да повтаряте собствена бележка" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Вече сте повторили тази бележка." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, php-format -msgid "Notice from %s repeated" +#: lib/command.php:553 +#, fuzzy, php-format +msgid "Notice from %s repeated." msgstr "Бележката от %s е повторена" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Грешка при повтаряне на бележката." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Съобщението е твърде дълго. Най-много може да е 140 знака, а сте въвели %d." +msgstr[1] "" "Съобщението е твърде дълго. Най-много може да е 140 знака, а сте въвели %d." -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "Отговорът до %s е изпратен" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Грешка при записване на бележката." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "Уточнете името на потребителя, за когото се абонирате." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Не сте абонирани за този профил" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Абонирани сте за %s." +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "Уточнете името на потребителя, от когото се отписвате." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Отписани сте от %s." +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Командата все още не се поддържа." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Уведомлението е изключено." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Грешка при изключване на уведомлението." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Уведомлението е включено." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Грешка при включване на уведомлението." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Отписани сте от %s." +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Не сте абонирани за никого." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Вече сте абонирани за следните потребители:" msgstr[1] "Вече сте абонирани за следните потребители:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Никой не е абониран за вас." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Грешка при абониране на друг потребител за вас." msgstr[1] "Грешка при абониране на друг потребител за вас." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Не членувате в нито една група." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Не членувате в тази група." msgstr[1] "Не членувате в тази група." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5885,52 +7441,79 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Не е открит файл с настройки. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Изпратени са покани до следните хора:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 #, fuzzy msgid "Go to the installer." msgstr "Влизане в сайта" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Бележки през месинджър (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Бележки през SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Свързване" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +#, fuzzy msgid "Authorized connected applications" -msgstr "" +msgstr "Изтриване на приложението" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Грешка в базата от данни" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Качване на файл" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5938,42 +7521,60 @@ msgstr "" "Можете да качите лично изображение за фон. Максималната големина на файла е " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Вкл." + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Изкл." + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Обновяване" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "%s любими бележки" +msgstr "Отбелязване като любимо" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Отбелязване като любимо" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Любимо" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Изнасяне на данните" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6004,8 +7605,13 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "От 1 до 64 малки букви или цифри, без пунктоация и интервали" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "Адрес на страница, блог или профил в друг сайт на групата" #: lib/groupeditform.php:168 @@ -6013,62 +7619,115 @@ msgid "Describe the group or topic" msgstr "Опишете групата или темата" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Опишете групата или темата в до %d букви" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Опишете групата или темата в до %d букви" +msgstr[1] "Опишете групата или темата в до %d букви" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Къде се намира групата — град, община, държава и т.н. (ако е приложимо)" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Група" - -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Блокирани" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s блокирани потребителя" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "Редактиране настройките на групата %s" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Лого" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Добавяне или редактиране логото на %s" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 -#, fuzzy, php-format -msgid "Add or edit %s design" -msgstr "Добавяне или редактиране логото на %s" +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Групи с най-много членове" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Групи с най-много бележки" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Етикети в бележките към групата %s" @@ -6082,39 +7741,57 @@ msgstr "Страницата не е достъпна във вида медия msgid "Unsupported image file format." msgstr "Форматът на файла с изображението не се поддържа." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Може да качите лого за групата ви." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Частично качване на файла." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Системна грешка при качване на файл." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Файлът не е изображение или е повреден." -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." -msgstr "Няма такава бележка." +msgstr "Няма такъв файл." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Неподдържан вид файл" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6122,13 +7799,9 @@ msgid "[%s]" msgstr "[%s]" #: lib/jabber.php:567 -#, fuzzy, php-format +#, php-format msgid "Unknown inbox source %d." -msgstr "Непознат език \"%s\"" - -#: lib/joinform.php:114 -msgid "Join" -msgstr "Присъединяване" +msgstr "Непознат език \"%s\"." #: lib/leaveform.php:114 msgid "Leave" @@ -6142,45 +7815,54 @@ msgstr "Вход с име и парола" msgid "Sign up for a new account" msgstr "Създаване на нова сметка" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Потвърждаване адреса на е-поща" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s вече получава бележките ви в %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6188,10 +7870,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s вече получава бележките ви в %2$s.\n" "\n" @@ -6204,20 +7886,24 @@ msgstr "" "----\n" "Може да смените адреса и настройките за уведомяване по е-поща на %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Биография: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Нов адрес на е-поща за публикщуване в %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6227,34 +7913,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Състояние на %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Потвърждение за SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Очаква се потвърждение за този телефонен номер." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Побутнати сте от %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6270,14 +7961,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Ново лично съобщение от %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6296,14 +7991,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) отбеляза бележката ви като любима" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6325,7 +8025,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6333,13 +8033,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s (@%s) отбеляза бележката ви като любима" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6376,7 +8083,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "от" @@ -6396,159 +8103,214 @@ msgstr "Това не е вашият входящ адрес." msgid "Sorry, no incoming email allowed." msgstr "Входящата поща не е разрешена." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Форматът на файла с изображението не се поддържа." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Липсва временна папка." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Грешка при записване файла на диска." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Грешка при изтегляне на общия поток" +msgstr "Грешка при изтриване на любима бележка." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Изпращане на пряко съобщеие" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Изберете оператор" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Не сте абонирани!" + +#: lib/messageform.php:153 msgid "To" msgstr "До" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Налични знаци" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Прати" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Псевдонимът може да съдържа само малки букви, числа и никакво разстояние " +"между тях." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Изпращане на бележка" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Какво става, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Прикрепяне" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Прикрепяне на файл" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Споделяне на местоположението ми" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Без споделяне на местоположението ми" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "С" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "Ю" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "И" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "З" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 +#, fuzzy msgid "at" +msgstr "Път" + +#: lib/noticelist.php:517 +msgid "web" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:583 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -6564,56 +8326,52 @@ msgstr "Побутване" msgid "Send a nudge to this user" msgstr "Побутване на този потребител" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Грешка при вмъкване на нов профил" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Грешка при вмъкване на аватар" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Грешка при обновяване на отдалечен профил" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Грешка при вмъкване на отдалечен профил" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Изтриване на бележката" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Грешка при добавяне на нов абонамент." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Лично" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Отговори" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Любими" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Входящи" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Получените от вас съобщения" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Изходящи" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Изпратените от вас съобщения" @@ -6622,7 +8380,8 @@ msgstr "Изпратените от вас съобщения" msgid "Tags in %s's notices" msgstr "Етикети в бележките на %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Непознато" @@ -6705,9 +8464,11 @@ msgstr "Повтаряне на тази бележка" msgid "Revoke the \"%s\" role from this user" msgstr "Списък с потребителите в тази група." -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Не е открит методът в API." #: lib/sandboxform.php:67 #, fuzzy @@ -6719,19 +8480,25 @@ msgstr "Входящи" msgid "Sandbox this user" msgstr "Разблокиране на този потребител" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Търсене в сайта" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Ключови думи" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Търсене" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Помощ за търсенето" @@ -6805,6 +8572,12 @@ msgstr "" msgid "None" msgstr "Без" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Неправилен размер." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6814,45 +8587,58 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Неуспешно обновяване на аватара." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Грешка при обновяване на отдалечен профил" +msgstr "Грешка при изпращане на прякото съобщение" #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Най-често пишещи" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Разблокиране" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6863,13 +8649,13 @@ msgid "Unsandbox this user" msgstr "Разблокиране на този потребител" #: lib/unsilenceform.php:67 +#, fuzzy 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" @@ -6879,124 +8665,180 @@ msgstr "Отписване от този потребител" msgid "Unsubscribe" msgstr "Отписване" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Потребителят няма профил." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Редактиране на аватара" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Потребителски действия" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Редактиране на профила" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Редактиране" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Изпращате на пряко съобщение до този потребител." -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Съобщение" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 +#, fuzzy msgid "Moderate" -msgstr "" +msgstr "Модератор" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Потребителска роля" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Администратор" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Модератор" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "преди няколко секунди" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "преди около минута" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "преди около %d минути" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "преди около час" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "преди около %d часа" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "преди около ден" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "преди около %d дни" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "преди около месец" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "преди около %d месеца" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "преди около година" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s не е допустим цвят!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s не е допустим цвят! Използвайте 3 или 6 шестнадесетични знака." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Съобщението е твърде дълго. Най-много може да е %1$d знака, а сте въвели %2" "$d." +msgstr[1] "" +"Съобщението е твърде дълго. Най-много може да е %1$d знака, а сте въвели %2" +"$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Неправилен размер." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Не е указана група." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index e4eb8d8545..7a98ba56b9 100644 --- a/locale/br/LC_MESSAGES/statusnet.po +++ b/locale/br/LC_MESSAGES/statusnet.po @@ -1,584 +1,836 @@ -# Translation of StatusNet to Breton +# Translation of StatusNet - Core to Breton (Brezhoneg) +# Expored from translatewiki.net # -# Author@translatewiki.net: Fulup -# Author@translatewiki.net: Gwendal -# Author@translatewiki.net: Y-M D +# Author: Fulup +# Author: Gwendal +# Author: Y-M D # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:11:33+0000\n" -"Language-Team: Dutch\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:27+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Moned" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Arventennoù moned d'al lec'hienn" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Enskrivadur" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "Nac'h ouzh an implijerien dizanv (nann-luget) da welet al lec'hienn ?" +msgstr "" +"Nac'h ouzh an implijerien dizanv (nann-kevreet) da welet al lec'hienn ?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Prevez" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Aotreañ an enskrivadur goude bezañ bet pedet hepken." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Tud pedet hepken" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Diweredekaat an enskrivadurioù nevez." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Serr" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Enrollañ an arventennoù moned" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Enrollañ" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "N'eus ket eus ar bajenn-se." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "N'eus ket eus an implijer-se." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s hag e vignoned, pajenn %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s hag e vignoned" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Gwazh evit mignoned %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Gwazh evit mignoned %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Gwazh evit mignoned %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 -#, fuzzy, php-format +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 +#, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -"Kronologiezh foran %%site.name%% eo, met den n'en deus skrivet tra ebet." +"Hemañ eo al lanvad evit %s hag e vignoned met den n'en deus skrivet tra ebet " +"evit ar mare." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Perak ne [groufec'h ket ur gont](%%action.register%%) ha bezañ an hini " -"gentañ da embann un dra !" +"Perak ne [groufec'h ket ur gont](%%%%action.register%%%%) ha goude-se demata " +"%s pe postañ ur c'hemenn bennak evitañ." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "C'hwi hag o mignoned" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Hizivadennoù %1$s ha mignoned e %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "N'eo ket bet kavet an hentenn API !" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Ezhomm en deus an argerzh-mañ eus ur POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Diposubl eo hizivaat an implijer." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "An implijer-mañ n'eus profil ebet dezhañ." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Diposubl eo enrollañ ar profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Dibosupl eo enrollañ an arventennoù empentiñ." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Diposubl eo hizivat ho design." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Oberezhioù %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Koumanantoù %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Pennrolloù" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Izili ar strollad %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "N'hallit ket en em stankañ hoc'h-unan !" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "N'eus ket bet tu da stankañ an implijer." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "N'eus ket bet tu da zistankañ an implijer." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Kemennadennoù war-eeun kaset gant %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "An holl gemennadennoù war-eeun kaset gant %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Kemennadennoù war-eeun kaset da %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "An holl gemennadennoù war-eeun kaset da %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Kemenadenn hep testenn !" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Re hir eo ! Ment hirañ ar gemenadenn a zo a %d arouezenn." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Re hir eo ! Ment hirañ ar gemenadenn a zo a %d arouezenn." +msgstr[1] "Re hir eo ! Ment hirañ ar gemenadenn a zo a %d arouezenn." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "N'eo ket bet kavet ar resever." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Ne c'helloc'h ket kas kemennadennoù personel d'an implijerien n'int ket ho " "mignoned." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Na gasit ket a gemennadenn deoc'h c'hwi ho unan ; lavarit an traoù-se en ho " +"penn kentoc'h." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "N'eo bet kavet statud ebet gant an ID-mañ." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." -msgstr "Ur pennroll eo dija an ali-mañ." +msgstr "Ur pennroll eo dija ar c'hemenn-mañ." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Diposupl eo krouiñ ar pennroll-mañ." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "N'eo ket ar statud-mañ ur pennroll." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Diposupl eo dilemel ar pennroll-mañ." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Dibosupl eo heuliañ an implijer : n'eo ket bet kavet ar profil." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Diposubl eo heuliañ an implijer : war ho listenn emañ %s dija." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Diposupl eo paouez heuliañ an implijer : N'eo ket bet kavet an implijer." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Ne c'hallit ket chom hep ho heuliañ hoc'h-unan." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." +msgstr "Rankout a reoc'h reiñ daou id pe lesanv." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Diposubl eo termeniñ an implijer mammenn." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Diposubl eo kavout an implijer pal." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -#, fuzzy -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "N'eo ket ul lesanv mat." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "N'eo ket chomlec'h al lec'hienn personel un URL reizh." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Re hir eo an anv klok (255 arouezenn d'ar muiañ)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." +msgstr[1] "Re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Re hir eo al lec'hiadur (255 arouezenn d'ar muiañ)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Re a aliasoù ! %d d'ar muiañ." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Re a aliasoù ! %d d'ar muiañ." +msgstr[1] "Re a aliasoù ! %d d'ar muiañ." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Alias fall : \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Implijet e vez an alias \"%s\" dija. Klaskit gant unan all." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Ne c'hell ket an alias bezañ ar memes hini eget al lesanv." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "N'eo ket bet kavet ar strollad." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Un ezel eus ar strollad-mañ eo dija." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Stanket oc'h bet eus ar strollad-mañ gant ur merour." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Diposubl eo stagañ an implijer %1$s d'ar strollad %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "N'oc'h ket ezel eus ar strollad-mañ." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Diposubl eo dilemel an implijer %1$s deus ar strollad %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Strollad %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Strolladoù %1s m'eo ezel %2s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Strolladoù %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "strolladoù war %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Enporzhiadenn c'hwitet." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Fichenn direizh." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Arventenn oauth_token nann-roet." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Fichenn direizh." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "N'oc'h ket aotreet." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h. Mar plij adklaskit." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Lesanv / ger tremen direizh !" -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Arabat eo dilemel ar poellad-mañ" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +msgid "Database error inserting oauth_token_association." +msgstr "Ur fazi 'zo bet en ur ensoc'hañ an avatar" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Kinnig ar furmskrid dic'hortoz." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "C'hoant 'zo gant ur poellad kevreañ gant ho kont" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Aotreañ pe nac'h ar moned" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -586,240 +838,619 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Kont" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Lesanv" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Ger-tremen" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Nac'hañ" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Nullañ" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Aotreañ" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Aotreañ pe nac'hañ ar moned da ditouroù ho kont." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Aotreañ ar moned da ditouroù ho kont." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Nullet eo bet aotre." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Aotreet ho peus ar poellad." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Aotreet ho peus %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Ezhomm en deus an argerzh-mañ ur POST pe un DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Ne c'helloc'h ket dilemel statud un implijer all." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "N'eus ket eus an ali-se." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Ne c'helloc'h ket adlavar ho alioù." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Adlavaret o peus dija an ali-mañ." +msgstr "Kemenn bet adkemeret dija." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "N'eo ket bet kavet an hentenn API !" + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Diembreget eo ar furmad-se." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Statud diverket." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "N'eo ket bet kavet a statud evit an ID-mañ" +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Dibosupl eo dilemel ar c'hemenn-mañ." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Dilemel un ali" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." +msgstr[1] "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "N'eo ket bet kavet an hentenn API !" + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "N'eo ket bet kavet." - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" - -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Diembreget eo ar furmad-se." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Pennroll %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s statud pennroll da %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Diposubl eo hizivaat ar strollad." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Hizivadennoù a veneg %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, fuzzy, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s statud pennroll da %2$s / %2$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Oberezhioù publik %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s statud an holl !" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "N'eo ket bet emplementet showForm()." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Adkemeret evit %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Adkemeret eus %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Alioù merket gant %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Hizivadennoù merket gant %1$s e %2$s !" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "N'eus nemet an implijerien kevreet hag a c'hell adkemer alioù." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Klask alioù en danvez" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Hentenn API war sevel." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "N'eo ket bet kavet an hentenn API !" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "N'eus ket eus ar profil-se." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Dibosupl eo dilemel ar c'houmanant." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Klask alioù en danvez" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Dianav" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Ouzhpennañ d'ar pennrolloù" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "N'eus ket eus ar profil-se." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Izili ar strollad %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Ezel eo %s eus ar strolladoù" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Dianav" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "An holl izili" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Restr ezvezant." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Diposupl eo dilemel ar pennroll-mañ." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "N'eus ket eus ar strollad-se." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "An holl izili" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "N'eo ket bet kavet an hentenn API !" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "N'eus ket eus ar profil-se." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "N'oc'h ket koumanantet d'ar profil-se." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Dibosupl eo dilemel ar c'houmanant." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Koumanantet da %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Dizanv eo seurt ar restr" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "N'eo ket bet kavet ar restr stag." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Lesanv ebet." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ment ebet." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ment direizh." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Implijer hep profil klotus." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Arventennoù an avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Orin" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Rakwelet" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "Diverkañ" +msgstr "Dilemel" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Enporzhiañ" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Adframmañ" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "N'eus bet enporzhiet restr ebet." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Diuzit ur zonenn gant ur stumm karrez evit tremeniñ ho avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Kollet eo bet roadennoù." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Hizivaet eo bet an avatar." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Ur gudenn 'zo bet e-pad hizivadenn an avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Dilammet eo bet an Avatar." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Stanket o peus dija an implijer-mañ." +msgstr "Stanket ho peus dija an implijer-mañ." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Stankañ an implijer-mañ" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -828,176 +1459,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Nann" +msgstr "Ket" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Arabat stankañ an implijer-mañ" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ya" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Stankañ an implijer-mañ" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Diposubl eo enrollañ an titouroù stankañ." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "N'eus ket eus ar strollad-se." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s profil stanket" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profil stanket, pajenn %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" "Ur roll eus an implijerien evit pere eo stanket an enskrivadur d'ar strollad." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Distankañ implijer ar strollad" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Distankañ" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Distankañ an implijer-mañ" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Postañ war %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Kod kadarnaat ebet." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "N'eo ket bet kavet ar c'hod kadarnaat." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "N'eo ket ar c'hod-se evidoc'h !" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Doare chomlec'h dianav %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Kadarnaet eo bet dija ar chomlec'h-mañ." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Diposubl eo hizivaat an implijer." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Diposubl eo dilemel ar postel kadarnadur." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Chomlec'h kadarnaet" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Kadarnaet eo bet ar chomlec'h \"%s\" evit ho kont." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Kaozeadenn" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Ali" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Rankout a reoc'h bezañ kevreet evit dilemel ur poellad." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "N'eo ket bet kavet ar poellad" -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "N'oc'h ket perc'henn ar poellad-se." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Dilemel ar poelad" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1005,53 +1681,114 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Arabat eo dilemel ar poellad-mañ" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Dilemel ar poelad-se" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Ret eo deoc'h bezañ kevreet evit kuitaat ur strollad" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Lesanv pe ID ebet." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "N'oc'h ket ezel eus ar strollad-mañ." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Diposubl eo hizivaat ar strollad." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s en deus kuitaet ar strollad %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Dilemel ar strollad" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Arabat dilemel ar c'hemenn-mañ" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Diverkañ an implijer-mañ" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Nann-luget." +msgstr "Nann-kevreet." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Diposupl eo dilemel an ali-mañ." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Dilemel un ali" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" -msgstr "Ha sur oc'h ho peus c'hoant dilemel an ali-mañ ?" +msgstr "Ha sur oc'h ho peus c'hoant dilemel ar c'hemenn-mañ ?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" -msgstr "Arabat dilemel an ali-mañ" +msgstr "Arabat dilemel ar c'hemenn-mañ" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" -msgstr "Dilemel an ali-mañ" +msgstr "Dilemel ar c'hemenn-mañ" #: actions/deleteuser.php:67 msgid "You cannot delete users." @@ -1078,62 +1815,72 @@ msgstr "Diverkañ an implijer-mañ" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Design" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Arventennoù design evit al lec'hienn StatusNet-mañ." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL fall evit al logo." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL fall evit al logo." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "N'eus ket eus ar gaoz-se : %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Cheñch al logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo al lec'hienn" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logo SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Lakaat un dodenn all" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Dodenn al lec'hienn" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Dodenn evit al lec'hienn." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Dodenn personelaet" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Kemmañ ar skeudenn foñs" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Background" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1141,81 +1888,90 @@ msgid "" msgstr "" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Gweredekaet" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Diweredekaet" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Gweredekaat pe diweredekaat ar skeudenn foñs." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Adober gant ar skeudenn drekleur" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Kemmañ al livioù" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Endalc'h" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barenn kostez" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Testenn" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Liammoù" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Araokaet" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personelaet" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Implijout an talvoudoù dre ziouer" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Adlakaat an neuz dre ziouer." -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Adlakaat an arventennoù dre ziouer" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Enrollañ" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Enrollañ an design" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "N'eo ket an ali-mañ ur pennroll !" +msgstr "N'eo ket ar c'hemenn-mañ ur pennroll !" #: actions/disfavor.php:94 msgid "Add to favorites" @@ -1226,109 +1982,131 @@ msgstr "Ouzhpennañ d'ar pennrolloù" msgid "No such document \"%s\"" msgstr "N'eo ket bet kavet ar restr \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Kemmañ ar poellad" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Kemmañ an arload" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Ret eo bezañ kevreet evit kemmañ ur poellad." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "N'eus ket eus an arload-mañ." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Implijit ar furmskrid-mañ evit kemmañ ho poellad." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Ret eo lakaat un anv." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Re hir eo an anv (255 arouezenn d'ar muiañ)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Implijet eo dija an anv-mañ. Klaskit unan all." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Ezhomm 'zo un deskrivadur." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Mammenn URL re hir." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "N'eo ket mat an URL mammenn." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Ezhomm 'zo eus an aozadur." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Re hir eo an aozadur (255 arouezenn d'ar muiañ)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Ret eo kaout pajenn degemer an aozadur." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Rez hir eo ar c'hounadur (Callback)." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "N'eo ket mat an URL kounadur (Callback)." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Diposubl eo hizivaat ar poellad" -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Kemmañ ar strollad %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Rankout a reoc'h bezañ luget evit krouiñ ur strollad." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Rankout a reer bezañ merour evit kemmañ ar strollad." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Leunit ar furmskrid-mañ evit kemmañ dibarzhioù ar strollad." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias fall : \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Diposubl eo hizivaat ar strollad." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Diposubl eo krouiñ an aliasoù." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Enrollet eo bet ho dibarzhioù." @@ -1346,12 +2124,12 @@ msgstr "Merañ ar posteloù a fell deoc'h resevout a-berzh %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Chomlec'h postel" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Chomlec'h postel gwiriekaet er mare-mañ." @@ -1360,38 +2138,32 @@ msgstr "Chomlec'h postel gwiriekaet er mare-mañ." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Dilemel" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Nullañ" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Chomlec'h postel, evel \"AnvImplijer@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1399,101 +2171,108 @@ msgstr "Ouzhpennañ" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Postel o tont" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "C'hoant am eus kas va alioù dre bostel." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 #, fuzzy msgid "Send email to this address to post new notices." msgstr "Chomlec'h postel nevez evit embann e %s" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 #, fuzzy msgid "Make a new email address for posting to; cancels the old one." msgstr "Chomlec'h postel nevez evit embann e %s" +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nevez" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Penndibaboù ar posteloù" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 #, fuzzy msgid "Send me notices of new subscriptions through email." msgstr "Kas din an alioù dre Jabber/GTalk." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Kas din ur postel pa lak unan bennak unan eus va alioù evel pennroll." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Kas din ur postel pa gas unan bennak ur gemennadenn bersonel din." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Kas din ur postel pa gas unan bennak ur \"@-respont\" din." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "C'hoant am eus kas va alioù dre bostel." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Embann ur MicroID evit ma chomlec'h postel." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Enrollet eo bet an arventennoù postel." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Chomlec'h postel ebet." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 #, fuzzy msgid "Cannot normalize that email address" msgstr "Diposubl eo implijout an ID Jabber-mañ" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "N'eo ket ur chomlec'h postel reizh." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Ho postel eo dija." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 #, fuzzy msgid "That email address already belongs to another user." msgstr "D'un implijer all eo an niverenn-mañ dija." @@ -1501,13 +2280,13 @@ msgstr "D'un implijer all eo an niverenn-mañ dija." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Dibosupl eo ensoc'hañ ar c'hod gwiriekaat." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1516,65 +2295,68 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 -#, fuzzy msgid "No pending confirmation to cancel." -msgstr "Nullet eo bet kadarnadenn ar bostelerezh prim." +msgstr "Kadarnadenn ebet da vezañ nullet." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "N'eo ket mat ar chomlec'h postelerezh prim." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Diposubl eo dilemel ar postel kadarnadur." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Nullet eo bet kadarnadenn ar postel." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "N'eo ket ho postel." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Dilamet eo bet ar chomlec'h postel." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Chomlec'h postel ebet o tont." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Dibosupl eo hizivaat doser an implijer." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 -#, fuzzy +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "Chomlec'h postel ebet o tont." +msgstr "Diverket eo bet ar chomlec'h postel o tont tre." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 -#, fuzzy +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." -msgstr "Chomlec'h postel ebet o tont." +msgstr "Ouzhpennet ez eus bet ur chomlec'h postel nevez o tont tre" #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "Ouzhpennet eo bet an ali-mañ d'ho pennrolloù dija !" +msgstr "Ouzhpennet eo bet ar c'hemenn-mañ d'ho pennrolloù dija !" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Tennañ ar pennroll" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Alioù poblek" @@ -1608,7 +2390,7 @@ msgstr "" "gentañ da embann un dra !" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Alioù pennrollet eus %s" @@ -1681,7 +2463,7 @@ msgstr "Dibosupl eo kaout ur jedaouer reked." msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Fazi en ur hizivaat ar profil a-bell." @@ -1709,19 +2491,23 @@ msgstr "Ne c'helloc'h ket reiñ rolloù d'an implijerien eus al lec'hienn-mañ." msgid "User already has this role." msgstr "An implijer-mañ en deus dija ar roll-mañ." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "N'eo bet resisaet profil ebet" -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "N'eus profil ebet gant an ID-mañ." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "N'eo bet resisaet strollad ebet" @@ -1738,7 +2524,7 @@ msgstr "An implijer-mañ a zo stanket dija eus ar strollad." msgid "User is not a member of group." msgstr "N'eo ket an implijer-mañ ezel eus ur strollad." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Stankañ an implijer-mañ eus ar strollad" @@ -1784,8 +2570,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Diposubl eo hizivaat ho design." @@ -1803,6 +2591,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Enporzhiañ" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Adframmañ" + #: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." @@ -1816,49 +2612,56 @@ msgstr "Logo hizivaet." msgid "Failed updating logo." msgstr "N'eo ket bet kaset da benn an hizivadenn." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Izili ar strollad %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Izili ar strollad %1$s, pajenn %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Roll an implijerien enrollet er strollad-mañ." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Merañ" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Stankañ" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Stankañ an implijer-mañ" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Lakaat an implijer da vezañ ur merour eus ar strollad" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Lakaat ur merour" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Lakaat an implijer-mañ da verour" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Oberezhioù %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1926,15 +2729,18 @@ msgstr "" "Perak ne [groufec'h ket ur gont](%%action.register%%) ha bezañ an hini " "gentañ da embann un dra !" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "N'eus nemet ur merour a c'hell distankañ izili ur strollad." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "N'eo ket stanket an implijer-mañ eus ar strollad." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Ur fazi a zo bet e-pad nulladenn ar stankadenn." @@ -1979,7 +2785,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1987,65 +2796,65 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Penndibaboù ar bostelerezh prim" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Kas din an alioù dre Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 #, fuzzy msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Embann ur MicroID evit ma chomlec'h Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 #, fuzzy msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Kas din an alioù dre Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Embann ur MicroID evit ma chomlec'h Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Penndibaboù enrollet" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "ID Jabber ebet." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Diposubl eo implijout an ID Jabber-mañ" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "N'eo ket un ID Jabber reizh." #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Ho ID Jabber eo dija" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Implijet eo an Jabber ID-mañ gant un implijer all." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2053,31 +2862,31 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "N'eo ket mat ar chomlec'h postelerezh prim." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Diposubl eo dilemel ar postel kadarnadur." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Nullet eo bet kadarnadenn ar bostelerezh prim." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "N'eo ket ho ID Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Ar chomlec'h IM zo bet dilamet." +msgstr "Dilamet eo bet ar chomlec'h IM." #: actions/inbox.php:59 #, php-format @@ -2093,92 +2902,134 @@ msgstr "Bost resevout %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Diweredekaat eo bet ar bedadennoù." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Rankout a reoc'h bezañ luget evit pediñ implijerien all e %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Fall eo ar postel : %s" +msgid "Invalid email address: %s." +msgstr "Fall eo ar postel : %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Pedadenn(où) kaset" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Pedadennoù kaset" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Pediñ implijerien nevez" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Koumanantet oc'h dija d'an implijerien-mañ :" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Koumanantet oc'h dija d'an implijerien-mañ :" +msgstr[1] "Koumanantet oc'h dija d'an implijerien-mañ :" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Implijerien eo dija an dud-mañ ha koumanantet oc'h bet ez emgefre d'an " +"implijerien da-heul :" +msgstr[1] "" "Implijerien eo dija an dud-mañ ha koumanantet oc'h bet ez emgefre d'an " "implijerien da-heul :" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Pedadennoù bet kaset d'an implijerien da-heul :" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Pedadennoù bet kaset d'an implijerien da-heul :" +msgstr[1] "Pedadennoù bet kaset d'an implijerien da-heul :" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 #, fuzzy msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "Pediñ mignoned hag kenseurted da zont ganeoc'h war %s" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Chomlec'hioù postel" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Chomlec'hioù an implijerien da bediñ (unan dre linenn)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Kemennadenn bersonel" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Ouzhpennañ ur gemennadenn bersonel d'ar bedadenn (diret)." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Kas" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s a bed ac'hanoc'h d'en em enskrivañ war %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2213,13 +3064,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Rankout a reoc'h bezañ luget evit mont en ur strollad." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Lesanv pe ID ebet." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s a zo bet er strollad %2$s" @@ -2228,17 +3073,121 @@ msgstr "%1$s a zo bet er strollad %2$s" msgid "You must be logged in to leave a group." msgstr "Ret eo deoc'h bezañ kevreet evit kuitaat ur strollad" -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "N'oc'h ket un ezel eus ar strollad-mañ." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s en deus kuitaet ar strollad %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Aotre-implijout" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Aotre-implijout al lec'hienn StatusNet-mañ" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Diuzadenn aotre-implijout direizh" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Re hir eo al lec'hiadur (255 arouezenn d'ar muiañ)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Direizh eo URL an aotre-implijout" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Direizh eo URL skeudenn an aotre-implijout" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Goullo pe reizh e rank bezañ URL an aotre-implijout" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Goullo pe reizh e rank bezañ URL skeudenn an aotre-implijout" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Diuzadenn un aotre-implijout" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Prevez" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Pep gwir miret strizh." + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Seurt" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Dibab un aotre-implijout" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Munudoù an aotre-implijout" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Perc'henn" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Anv perc'henn danvez la lec'hienn (ma c'heller lakaat e pleustr)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Titl an aotre-implijout" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Titl an aotre-implijout" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL an aotre-implijout" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL lec'h ma c'heller kaout titouroù diwar-benn an aotre-implijout." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL skeudenn an aotre-implijout" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL ur skeudenn da ziskouez gant an aotre-implijout." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Enrollañ arventennoù an aotre-implijout" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Kevreet oc'h dija." @@ -2261,11 +3210,11 @@ msgstr "Kevreañ" msgid "Login to site" msgstr "Kevreañ d'al lec'hienn" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Kaout soñj" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Digeriñ va dalc'h war-eeun ar wechoù o tont ; arabat en ober war " @@ -2273,7 +3222,7 @@ msgstr "" #: actions/login.php:269 msgid "Lost or forgotten password?" -msgstr "Ha kollet o peus ho ker-tremen ?" +msgstr "Ha kollet ho peus ho ker-tremen ?" #: actions/login.php:288 msgid "" @@ -2292,7 +3241,7 @@ msgstr "Kevreit gant ho anv implijer hag ho ker-tremen." msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" -"N'o peus ket a anv implijer evit c'hoazh ? [Krouit](%%action.register%%) ur " +"N'ho peus ket a anv implijer evit c'hoazh ? [Krouit](%%action.register%%) ur " "gont nevez." #: actions/makeadmin.php:92 @@ -2318,68 +3267,78 @@ msgstr "Diposubl eo lakaat %1$s da merour ar strollad %2$s." msgid "No current status." msgstr "Statud ebet er mare-mañ." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" -msgstr "Poellad nevez" +msgid "New application" +msgstr "Arload nevez" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Ret eo deoc'h bezañ luget evit enrollañ ur poellad." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Implijit ar furmskrid-mañ evit enskrivañ ur poellad nevez." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Ezhomm 'zo eus ar vammenn URL." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "N'eo ket posubl krouiñ ar poellad." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Strollad nevez" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Implijit ar furmskrid-mañ a-benn krouiñ ur strollad nevez." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Kemennadenn nevez" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Goullo eo !" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." -msgstr "N'o peus ket lakaet a resever." +msgstr "N'ho peus ket lakaet a resever." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Na gasit ket a gemennadenn deoc'h c'hwi ho unan ; lavarit an traoù-se en ho " "penn kentoc'h." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Kemennadenn kaset" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Kaset eo bet da %s ar gemennadenn war-eeun." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Fazi Ajax" @@ -2387,7 +3346,7 @@ msgstr "Fazi Ajax" msgid "New notice" msgstr "Ali nevez" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Ali embannet" @@ -2438,7 +3397,8 @@ msgstr "Hizivadennoù merket gant %1$s e %2$s !" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2449,73 +3409,97 @@ msgstr "Kaset eo bet ar blinkadenn" msgid "Nudge sent!" msgstr "Kaset eo bet ar blinkadenn !" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Rankout a reoc'h bezañ kevreet evit rollañ ho poelladoù." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Poelladoù OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "Ar poelladoù o peus enrollet" +msgstr "Ar poelladoù ho peus enrollet" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "N'o peus enrollet poellad ebet evit poent." +msgstr "N'ho peus enrollet poellad ebet evit poent." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Poeladoù kevreet." +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "N'oc'h ket un implijer eus ar poellad-mañ." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Dibosupl eo nullañ moned ar poellad : " + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 -#, fuzzy +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "N'o peus enrollet poellad ebet evit poent." +msgstr "N'ho peus aotreet poellad ebet da implijout ho kont." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "N'en deus ket an ali a profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Statud %1$s war %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, php-format +#: actions/oembed.php:168 +#, fuzzy, php-format msgid "Content type %s not supported." -msgstr "" +msgstr "seurt an danvez " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 #, fuzzy msgid "Not a supported data format." msgstr "Diembreget eo ar furmad-se." @@ -2528,38 +3512,47 @@ msgstr "Klask tud" msgid "Notice Search" msgstr "Klask alioù" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Arventennoù all" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Dibarzhioù all da gefluniañ." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (servij digoust)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 #, fuzzy msgid "View profile designs" msgstr "Design ar profil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Diskouez pe kuzhat designoù ar profil." -#: actions/othersettings.php:153 +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 #, fuzzy -msgid "URL shortening service is too long (max 50 chars)." +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Re hir eo ar yezh (255 arouezenn d'ar muiañ)." #: actions/otp.php:69 @@ -2625,7 +3618,7 @@ msgid "6 or more characters" msgstr "6 arouezenn pe muioc'h" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Kadarnaat" @@ -2637,11 +3630,11 @@ msgstr "Memestra eget ar ger tremen a-us" msgid "Change" msgstr "Kemmañ" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Rankout a ra ar ger-tremen bezañ gant 6 arouezenn d'an nebeutañ." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Ne glot ket ar gerioù-tremen." @@ -2661,159 +3654,285 @@ msgstr "Dibosupl eo enrollañ ar ger-tremen nevez." msgid "Password saved." msgstr "Ger-tremen enrollet." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Hentoù" -#: actions/pathsadminpanel.php:70 -#, fuzzy -msgid "Path and server settings for this StatusNet site." -msgstr "Arventennoù diazez evit al lec'hienn StatusNet-mañ." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." msgstr "N'eus ket eus ar gaoz-se : %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "Restroù an avataroù" +msgstr "N'eus ket eus ar gaoz-se : %s." -#: actions/pathsadminpanel.php:169 -#, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, fuzzy, php-format msgid "Background directory not writable: %s." -msgstr "" +msgstr "N'eus ket eus ar gaoz-se : %s." -#: actions/pathsadminpanel.php:177 -#, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, fuzzy, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "N'eus ket eus ar gaoz-se : %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Lec'hienn" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servijer" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Anv ostiz servijer al lec'hienn." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Hent" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Hent al lec'hienn" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Doser an temoù" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URLioù brav" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Danvez" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servijer danvezioù" - -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Hentad an tem" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Doser an temoù" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avataroù" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servijer avatar" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Hent an avataroù" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Restroù an avataroù" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Backgroundoù" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servijer ar backgroundoù" - -#: actions/pathsadminpanel.php:309 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 #, fuzzy -msgid "Background path" -msgstr "Background" +msgid "Server for themes." +msgstr "Dodenn evit al lec'hienn." -#: actions/pathsadminpanel.php:313 -#, fuzzy -msgid "Background directory" -msgstr "Servijer ar backgroundoù" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Morse" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "A-wechoù" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Atav" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Implijout SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Peur implijout SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servijer SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Hent al lec'hienn" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Doser an temoù" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avataroù" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servijer avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Dodenn evit al lec'hienn." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Hent an avataroù" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Ur gudenn 'zo bet e-pad hizivadenn an avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Restroù an avataroù" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Backgroundoù" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Dodenn evit al lec'hienn." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Pezhioù stag" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Dodenn evit al lec'hienn." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "N'eus restr stag ebet." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Dodenn evit al lec'hienn." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Morse" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "A-wechoù" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Atav" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Implijout SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Peur implijout SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Enrollañ an hentadoù." @@ -2852,141 +3971,186 @@ msgstr "" "Aotre-implijout ar menegoù \"%1$s\" ne ya ket gant aotre-implijout al " "lec'hienn \"%2$s\"." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Arventennoù ar profil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Gellout a reoc'h hizivaat titouroù ho profil evit ma ouifemp muioc'h a draoù " "diwar ho penn." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Titouroù ar profil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Anv klok" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Pajenn degemer" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL ho pajenn degemer, ho blog, pe ho profil en ul lec'hienn all" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Deskrivit ac'hanoc'h hag ho interestoù, gant %d arouezenn" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Deskrivit ac'hanoc'h hag ho interestoù, gant %d arouezenn" +msgstr[1] "Deskrivit ac'hanoc'h hag ho interestoù, gant %d arouezenn" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Deskrivit hoc'h-unan hag ar pezh a zedenn ac'hanoc'h" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Buhezskrid" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Lec'hiadur" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "El lec'h m'emaoc'h, da skouer \"Kêr, Stad (pe Rannvro), Bro\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Rannañ va lec'hiadur pa bostan un ali." -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Balizennoù" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Merkoù evidoc'h oc'h unan (lizherennoù, sifroù, -, ., ha _), dispartiet gant " "virgulennoù pe esaouennoù" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Yezh" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Yezh d'ober ganti da gentañ" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Takad eur" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Pehini eo gwerzhid-eur boaz ?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "En em enskrivañ ez emgefre d'an holl re hag en em goumanant din (erbedet " "evit an implijerien nann-denel)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Re hir eo ar bio (%d arouezenn d'ar muiañ)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Re hir eo ar bio (%d arouezenn d'ar muiañ)." +msgstr[1] "Re hir eo ar bio (%d arouezenn d'ar muiañ)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "N'eo bet dibabet gwerzhid-eur ebet." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Re hir eo ar yezh (255 arouezenn d'ar muiañ)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Balizenn direizh : \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Dibosupl eo hizivaat ar c'houmanant ez emgefre." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Dibosupl eo enrollañ an dibaboù lec'hiadur." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Diposubl eo enrollañ ar profil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Diposubl eo enrollañ ar balizennoù." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Enrollet eo bet an arventennoù." @@ -3061,25 +4225,38 @@ msgstr "" "%%site.name%% a zo ur servij [micro-blogging](http://br.wikipedia.org/wiki/" "Microblog) diazezet war ar meziant frank [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Koumoulenn a merkoù foran" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Ar merkoù ziwezhañ evit ar re vrudetañ war %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Bezit an hini gentañ oc'h embann unan !" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3088,7 +4265,7 @@ msgstr "" "Perak ne [groufec'h ket ur gont](%%action.register%%) ha bezañ an hini " "gentañ da embann un dra !" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Koumoulenn merkoù" @@ -3142,7 +4319,8 @@ msgstr "Lesanv pe chomlec'h postel" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." -msgstr "Ho lesanv war ar servijer-mañ, pe ar chomlec'h postel o peus enrollet." +msgstr "" +"Ho lesanv war ar servijer-mañ, pe ar chomlec'h postel ho peus enrollet." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -3162,7 +4340,7 @@ msgstr "Goulennet eo an adtapout gerioù-tremen" #: actions/recoverpassword.php:213 msgid "Unknown action" -msgstr "Ober dianav" +msgstr "Oberiadenn dianav" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" @@ -3201,14 +4379,15 @@ msgid "Unexpected password reset." msgstr "Adderaouekadur dic'hortoz ar ger-tremen." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Rankout a ra ar ger-tremen bezañ 6 arouezenn d'an nebeutañ." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Ne glot ket ar ger-tremen gant ar c'hadarnadur." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Ur fazi 'zo bet e-pad kefluniadur an implijer." @@ -3216,7 +4395,7 @@ msgstr "Ur fazi 'zo bet e-pad kefluniadur an implijer." msgid "New password successfully saved. You are now logged in." msgstr "Krouet eo bet ar ger-tremen nevez. Kevreet oc'h bremañ." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" "Digarezit, met n'eus nemet an implijerien bet pedet hag a c'hell en em " @@ -3230,7 +4409,7 @@ msgstr "Digarezit, kod pedadenn direizh." msgid "Registration successful" msgstr "Krouet eo bet ar gont." -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Krouiñ ur gont" @@ -3238,85 +4417,89 @@ msgstr "Krouiñ ur gont" msgid "Registration not allowed." msgstr "N'eo ket aotreet krouiñ kontoù." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" -"Rankout a reoc'h bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " +"Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " "gont." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Implijet eo dija ar chomlec'h postel-se." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Anv implijer pe ger-tremen direizh." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 #, fuzzy msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 arouezenn pe muioc'h. Rekis." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Memestra hag ar ger-tremen a-us. Rekis." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Postel" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Implijet hepken evit an hizivadennoù, ar c'hemennoù, pe adtapout gerioù-" "tremen" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Anv hiroc'h, ho anv \"gwir\" a zo gwelloc'h" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL ho pajenn degemer, ho blog, pe ho profil en ul lec'hienn all" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "Kompren a ran ez eo prevez danvez ha roadennoù %1$s." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Ma zestenn ha ma restroù a zo gwarezet dre copyright gant %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Ma zestenn ha ma restroù a chom dindan ma gwirioù oberour." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Holl gwrioù miret strizh." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3335,7 +4518,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3365,7 +4548,7 @@ msgstr "Lesanv an implijer" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "Lesanv an implijer o peus c'hoant heuliañ" +msgstr "Lesanv an implijer ho peus c'hoant heuliañ" #: actions/remotesubscribe.php:133 msgid "Profile URL" @@ -3376,7 +4559,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "En em enskrivañ" @@ -3410,9 +4593,9 @@ msgstr "Ne c'helloc'h ket adkemer ho ali deoc'h." #: actions/repeat.php:90 msgid "You already repeated that notice." -msgstr "Adkemeret o peus dija an ali-mañ." +msgstr "Adkemeret ho peus ar c'hemenn-mañ c'hoazh." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Adlavaret" @@ -3421,7 +4604,7 @@ msgid "Repeated!" msgstr "Adlavaret !" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respontoù da %s" @@ -3447,11 +4630,13 @@ msgid "Replies feed for %s (Atom)" msgstr "Gwazh respontoù evit %s (Atom)" #: actions/replies.php:199 -#, php-format +#, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" +"Hemañ eo al lanvad evit %s hag e vignoned met den n'en deus skrivet tra ebet " +"evit ar mare." #: actions/replies.php:204 #, php-format @@ -3473,7 +4658,6 @@ msgid "Replies to %1$s on %2$s!" msgstr "Respontoù da %1$s war %2$s !" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." msgstr "Ne c'helloc'h ket reiñ rolloù d'an implijerien eus al lec'hienn-mañ." @@ -3496,13 +4680,13 @@ msgstr "Er poull-traezh emañ dija an implijer." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Dalc'hoù" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Arventennoù evit al lec'hienn StatusNet-mañ." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3521,7 +4705,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Enrollañ arventennoù al lec'hienn" @@ -3534,28 +4717,29 @@ msgid "Application profile" msgstr "Profil ar poellad" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Arlun" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Anv" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Aozadur" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Deskrivadur" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Stadegoù" @@ -3573,13 +4757,18 @@ msgstr "Obererezhioù ar poellad" msgid "Reset key & secret" msgstr "Adderaouekaat an alc'hwez hag ar sekred" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Diverkañ" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Titouroù ar poelad" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "Alc'hwez an implijer" +msgstr "Alc'hwez implijer" #: actions/showapplication.php:268 msgid "Consumer secret" @@ -3606,7 +4795,7 @@ msgstr "" #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" -"Ha sur oc'h o peus c'hoant adderaouekaat ho alc'hwez bevezer ha sekred ?" +"Ha sur oc'h ho peus c'hoant adderaouekaat ho alc'hwez bevezer ha sekred ?" #: actions/showfavorites.php:79 #, php-format @@ -3614,9 +4803,8 @@ msgid "%1$s's favorite notices, page %2$d" msgstr "Alioù karetañ %1$s, pajenn %2$d" #: actions/showfavorites.php:132 -#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "Diposupl eo krouiñ ar pennroll-mañ." +msgstr "Diposupl eo diskwel ar pennrolloù." #: actions/showfavorites.php:171 #, php-format @@ -3658,77 +4846,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Un doare eo evit kevranañ ar pezh a blij deoc'h." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "strollad %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Strollad %1$s, pajenn %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Profil ar strollad" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Notenn" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliasoù" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Obererezh ar strollad" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Neudenn alioù ar strollad %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Neudenn alioù ar strollad %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Neudenn alioù ar strollad %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Mignon ur mignon evit ar strollad %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Izili" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Hini ebet)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "An holl izili" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Krouet" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Izili" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3740,7 +4955,10 @@ msgstr "" "%%site.name%% a zo ur servij [micro-blogging](http://br.wikipedia.org/wiki/" "Microblog) diazezet war ar meziant frank [StatusNet](http://status.net/)." -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3751,26 +4969,33 @@ msgstr "" "%%site.name%% a zo ur servij [micro-blogging](http://br.wikipedia.org/wiki/" "Microblog) diazezet war ar meziant frank [StatusNet](http://status.net/)." -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Merourien" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "N'eus ket eus ar gemennadenn-se." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" "Ne c'hell bezañ lennet ar gemenadenn-mañ nemet gant ar c'haser hag ar " "resever." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Kemanadenn kaset da %1$s d'an %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Kemenadenn resevet eus %1$s d'an %2$s" @@ -3779,61 +5004,86 @@ msgstr "Kemenadenn resevet eus %1$s d'an %2$s" msgid "Notice deleted." msgstr "Ali dilammet." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " merket %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, pajenn %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Alioù merket gant %1$s, pajenn %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pajenn %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Neudenn an alioù evit %1$s merket %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Neudenn an alioù evit %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Neudenn an alioù evit %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Gwazh alioù %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "mignon ur mignon evit %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Kronologiezh foran %%site.name%% eo, met den n'en deus skrivet tra ebet." +"Hemañ eo al lanvad evit %s hag e vignoned met den n'en deus skrivet tra ebet " +"evit ar mare." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3844,7 +5094,9 @@ msgstr "" "%%site.name%% a zo ur servij [micro-blogging](http://br.wikipedia.org/wiki/" "Microblog) diazezet war ar meziant frank [StatusNet](http://status.net/)." -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3854,7 +5106,8 @@ msgstr "" "%%site.name%% a zo ur servij [micro-blogging](http://br.wikipedia.org/wiki/" "Microblog) diazezet war ar meziant frank [StatusNet](http://status.net/)." -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Adkemeret eus %s" @@ -3967,33 +5220,41 @@ msgstr "Bevenn a doublennoù" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Ali al lec'hienn" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Kemmañ ur gemennadenn hag a zo diwar-benn al lec'hienn a-bezh" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Diposubl eo enrollañ ali al lec'hienn." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Testenn ali al lec'hienn" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" "Testenn an ali diwar-benn al lec'hienn a-bezh (255 arouezenn d'ar muiañ ; " "HTML gweredekaet)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Enrollañ ali ul lec'hienn" @@ -4039,7 +5300,7 @@ msgstr "Kod kadarnaat" #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "Lakait ar c'hod o peus resevet war ho pellgomzer hezoug." +msgstr "Lakait ar c'hod ho peus resevet war ho pellgomzer hezoug." #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 @@ -4150,7 +5411,7 @@ msgstr "N'eo bet lakaet kod ebet" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Prim" @@ -4207,17 +5468,17 @@ msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" msgstr "Enrollañ arventennoù al lec'hienn" -#: actions/subedit.php:70 -#, fuzzy +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." -msgstr "N'hoc'h ket koumanantet da zen ebet." +msgstr "N'oc'h ket koumanantet d'ar profil-se." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 #, fuzzy msgid "Could not save subscription." msgstr "Dibosupl eo dilemel ar c'houmanant." @@ -4226,10 +5487,6 @@ msgstr "Dibosupl eo dilemel ar c'houmanant." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "N'eus ket eus ar profil-se." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4238,39 +5495,56 @@ msgstr "" msgid "Subscribed" msgstr "Koumanantet" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Koumanantet da %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Koumanantet da %1$s, pajenn %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 #, fuzzy msgid "These are the people who listen to your notices." msgstr "Heuliañ a reoc'h alioù an dud-se." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, fuzzy, php-format msgid "These are the people who listen to %s's notices." msgstr "Heuliet eo alioù an den-mañ gant %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -"n'ez eus den ebet koumanantet da %s. Ha c'hoant o peus bezañ an hini gentañ ?" +"n'ez eus den ebet koumanantet da %s. Ha c'hoant ho peus bezañ an hini " +"gentañ ?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, fuzzy, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4279,26 +5553,31 @@ msgstr "" "Perak ne [groufec'h ket ur gont](%%action.register%%) ha bezañ an hini " "gentañ da embann un dra !" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Koumanantoù %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Koumanantoù %1$s, pajenn %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Heuliañ a reoc'h alioù an dud-se." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Heuliet eo alioù an den-mañ gant %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4308,16 +5587,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "Ne heuilh %s den ebet." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Gwazh alioù %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4355,7 +5645,7 @@ msgid "User profile" msgstr "Profil an implijer" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Skeudenn" @@ -4392,7 +5682,7 @@ msgstr "N'eus ket eus ar bajenn-se." #: actions/unblock.php:59 msgid "You haven't blocked that user." -msgstr "N'o peus ket stanket an implijer-mañ." +msgstr "N'ho peus ket stanket an implijer-mañ." #: actions/unsandbox.php:72 #, fuzzy @@ -4421,80 +5711,99 @@ msgstr "" "lec'hienn \"%2$s\"." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Implijer" -#: actions/useradminpanel.php:70 -#, fuzzy -msgid "User settings for this StatusNet site." -msgstr "Arventennoù design evit al lec'hienn StatusNet-mañ." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Bevenn ar bio" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Implijerien nevez" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Degemer an implijerien nevez" -#: actions/useradminpanel.php:236 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 #, fuzzy -msgid "Welcome text for new users (Max 255 chars)." +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Re hir eo an anv (255 arouezenn d'ar muiañ)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Koumanantoù dre ziouer" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "En em enskrivañ ez emgefre d'an holl re hag en em goumanant din (erbedet " "evit an implijerien nann-denel)" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Pedadennoù" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Pedadennoù gweredekaet" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 #, fuzzy msgid "Whether to allow users to invite new users." msgstr "Ma rankomp merañ an dalc'hoù hon unan." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Enrollañ arventennoù an implijer" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Aotreañ ar c'houmanant" @@ -4506,7 +5815,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Aotre implijout" @@ -4588,11 +5899,13 @@ msgstr "Dibosupl eo lenn URL an avatar \"%s\"." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Seurt skeudenn direizh evit URL an avatar \"%s\"." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Design ar profil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4628,7 +5941,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Hizivadennoù eus %1$s e %2$s!" @@ -4677,7 +5990,7 @@ msgid "Plugins" msgstr "Pluginoù" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Stumm" @@ -4685,61 +5998,108 @@ msgstr "Stumm" msgid "Author(s)" msgstr "Aozer(ien)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Pennrolloù" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Kas din ur postel pa lak unan bennak unan eus va alioù evel pennroll." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Ment direizh." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "C'hwitet eo bet an enskrivadur d'ar strollad." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "N'eo ezel eus strollad ebet." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "C'hwitet eo bet an disenskrivadur d'ar strollad." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Ur fazi 'zo bet e-pad enolladenn an implijer ; diwiriek." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Stagañ" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4759,18 +6119,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Ur gudenn 'zo bet pa veze kaset ho kemennadenn." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Diposubl eo ensoc'hañ ur gemenadenn" #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Dibosupl eo hizivaat ar gemennadenn gant un URI nevez." @@ -4782,73 +6142,87 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Ur fazi 'zo bet en ur ensoc'hañ an avatar" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Ur gudenn a zo bet e-pad enrolladenn ar c'hemenn. Re hir." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Ur gudenn a zo bet e-pad enrolladenn ar c'hemenn. Implijer dianav." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 #, fuzzy msgid "You are banned from posting notices on this site." msgstr "Ne c'helloc'h ket reiñ rolloù d'an implijerien eus al lec'hienn-mañ." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Ur gudenn 'zo bet pa veze enrollet an ali." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Ur gudenn 'zo bet pa veze enrollet boest degemer ar strollad." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Dibosupl eo enrollañ titouroù ar strollad lec'hel." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4859,305 +6233,345 @@ msgid "Missing profile." msgstr "Mankout a ra ar profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Dibosupl eo enrollañ an tikedenn." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Nac'het ez eus bet deoc'h en em goumanantiñ." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Koumanantet dija !" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "An implijer-mañ en deus stanket ac'hanoc'h." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Nann-koumanantet !" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Dibosupl eo dilemel ar c'houmanant." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Dibosupl eo dilemel ar c'houmanant." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Dibosupl eo dilemel ar c'houmanant." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Heuliañ" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "Ne heuilh %s den ebet." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Deuet mat da %1$s, @%2$s !" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Dibosupl eo krouiñ ar strollad." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Dibosupl eo termeniñ URI ar strollad." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Dibosupl eo en em enskrivañ d'ar strollad." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Dibosupl eo enrollañ titouroù ar strollad lec'hel." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Kemmañ arventennoù ho profil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Enporzhiañ un avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Cheñch ar ger-tremen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Kemmañ tretadur ar posteloù" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Krouit ho profil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Dibarzhioù all" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "All" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Pajenn hep anv" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Diskouez muioc'h" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 #, fuzzy msgid "Primary site navigation" msgstr "Arventennoù diazez al lec'hienn" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personel" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Kemmañ ho chomlec'h postel, hoc'h avatar, ho ger-tremen, ho profil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Kont" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Liammañ d'ar servijoù" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Kevreañ" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Kemmañ arventennoù al lec'hienn" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Merañ" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Pediñ mignoned hag kenseurted da zont ganeoc'h war %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Pediñ" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Digevreañ diouzh al lec'hienn" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Digevreañ" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Krouiñ ur gont" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "En em enskrivañ" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Kevreañ d'al lec'hienn" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Kevreañ" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Sikour din !" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Skoazell" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Klask tud pe un tamm testenn" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Klask" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Ali al lec'hienn" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Selloù lec'hel" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Ali ar bajenn" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 #, fuzzy msgid "Secondary site navigation" msgstr "Arventennoù diazez al lec'hienn" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Skoazell" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Diwar-benn" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAG" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "AIH" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Prevezded" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Mammenn" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Darempred" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Badj" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Aotre-implijout ar meziant StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5165,13 +6579,16 @@ msgid "" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** a zo ur servij microblogging." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5180,345 +6597,456 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Aotre-implijout diwar-benn danvez al lec'hienn" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, fuzzy, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Kompren a ran ez eo prevez danvez ha roadennoù %1$s." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Pajennadur" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "War-lerc'h" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Kent" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Skeudenn" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Ne c'helloc'h ket reiñ rolloù d'an implijerien eus al lec'hienn-mañ." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "N'eo ket aotreet kemmañ ar panell-se" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "N'eo ket bet emplementet showForm()." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "N'eo ket bet emplementet saveSettings()." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Dibosupl eo dilemel an arventennoù krouiñ." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Arventennoù diazez al lec'hienn" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Lec'hienn" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Kefluniadur ar c'hrouiñ" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Kefluniadur an implijer" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Implijer" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Kefluniadur ar moned" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Kefluniadur an hentoù" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Kefluniadur an dalc'hoù" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Kemmañ ali al lec'hienn" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Kefluniadur ar primoù" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Kemmañ an arload" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Diposubl eo krouiñ an aliasoù." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "N'eo ket posubl krouiñ ar poellad." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Diposubl eo ensoc'hañ ur gemenadenn" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Arlun evit ar poellad-mañ" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Diskrivit ho poellad gant %d arouezenn" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Diskrivit ho poellad gant %d arouezenn" +msgstr[1] "Diskrivit ho poellad gant %d arouezenn" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Deskrivit ho poellad" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL pajenn degemer ar poellad-mañ" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Mammenn URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "An aozadur e karg eus ar poellad-mañ" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL pajenn degemer an aozadur-se" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL davet pehini e o ret adkas goude bezañ kevreet" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Merdeer" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Burev" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Seurt ar poellad, merdeer pe burev" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Lenn hepken" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lenn-skrivañ" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Nullañ" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " gant " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lenn-skrivañ" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "lenn hepken" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprouet d'an %1$s - moned \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Dilemel" +msgstr "Disteuler" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Pezhioù stag" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Aozer" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Pourvezer" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 #, fuzzy msgid "Tags for this attachment" msgstr "N'eo ket bet kavet ar restr stag." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "N'eo ket aet betek penn kemmañ ar ger-tremen" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "N'eo ket aotreet kemmañ ar ger-tremen" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Stankañ" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Disoc'hoù an urzhiad" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Fazi Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Urzhiad bet klokaet" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "C'hwitet en deus an urzhiad" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "N'eus ali ebet gant an id-mañ." +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "N'eus ali nevez evit an implijer-mañ" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Dibosupl eo kavout un implijer gant al lesanv %s" +msgid "Could not find a user with nickname %s." +msgstr "" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Dibosupl eo kavout un implijer lec'hel gant al lesanv %s" +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Digarezit, n'eo ket bet emplementet an urzhiad-mañ c'hoazh." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" "N'eus tamm talvoudegezh ebet ober ur blinkadenn deoc'h c'hwi oc'h unan !" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Blinkadenn kaset da %s" +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5529,209 +7057,252 @@ msgstr "" "Tud koumanantet : %2$s\n" "kemennadennoù : %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "Ali bet ouzhpennet d'ar pennroll." +msgstr "Kemenn bet ouzhpennet d'ar pennroll." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Ezel oc'h eus ar strollad-mañ dija." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Diposubl eo stagañ an implijer %1$s d'ar strollad %2$s." - -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:357 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Diposubl eo dilemel an implijer %1$s deus ar strollad %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s a zo bet er strollad %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s en deus kuitaet ar strollad %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Anv klok : %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Lec'hiadur : %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Lec'hienn Web : %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Diwar-benn : %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " -"arouezenn o peus lakaet" +"arouezenn ho peus lakaet." +msgstr[1] "" +"Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " +"arouezenn ho peus lakaet." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Kaset eo bet ar gemennadenn war eeun da %s." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Ur gudenn 'zo bet pa veze kaset ho kemennadenn." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Ne c'helloc'h ket adkemer ho ali" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Ali bet adkemeret dija" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "Ali adkemeret" +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 #, fuzzy msgid "Error repeating notice." msgstr "Fazi en ur hizivaat ar profil a-bell." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " -"arouezenn o peus lakaet" +"arouezenn ho peus lakaet." +msgstr[1] "" +"Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " +"arouezenn ho peus lakaet." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Respont kaset da %s" +msgid "Reply to %s sent." +msgstr "Respont kaset da %s." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Ur gudenn 'zo bet pa veze enrollet an ali." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Koumanantet da %s" +msgid "Subscribed to %s." +msgstr "Koumanantet da %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Digoumanantiñ da %s" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 #, fuzzy msgid "Command not yet implemented." msgstr "Digarezit, n'eo ket bet emplementet an urzhiad-mañ c'hoazh." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Kemennoù diweredekaet." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Dibosupl eo diweredekaat ar c'hemennoù." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Kemennoù gweredekaet" -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Dibosupl eo gweredekaat ar c'hemennoù." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Diweredekaet eo an urzhiad evit digeriñ un dalc'h" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "Implijadus eo al liamm-se ur wech hepken, hag e-pad 2 vunutenn : %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Digoumanantet eus %s" +msgid "Unsubscribed %s." +msgstr "Digoumanatet %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." -msgstr "N'hoc'h ket koumanantet da zen ebet." +msgstr "N'oc'h ket koumanantet da zen ebet." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 #, fuzzy msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "Koumanantet oc'h dija d'an implijerien-mañ :" -msgstr[1] "Koumanantet oc'h dija d'an implijerien-mañ :" +msgstr[0] "You are subscribed to this person:" +msgstr[1] "You are subscribed to these people:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Den n'eo koumanantet deoc'h." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 #, fuzzy msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Den n'eo koumanantet deoc'h." -msgstr[1] "Den n'eo koumanantet deoc'h." +msgstr[0] "This person is subscribed to you:" +msgstr[1] "These people are subscribed to you:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "N'oc'h ezel eus strollad ebet." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 #, fuzzy msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "N'oc'h ket ezel eus ar strollad-mañ." -msgstr[1] "N'oc'h ket ezel eus ar strollad-mañ." +msgstr[0] "You are a member of this group:" +msgstr[1] "You are a member of these groups:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5773,92 +7344,138 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "N'eo bet kavet restr kefluniadur ebet. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Pedadennoù bet kaset d'an implijerien da-heul :" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Mont d'ar meziant staliañ" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Hizivadennoù dre SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Kevreadennoù" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 #, fuzzy msgid "Authorized connected applications" msgstr "Poeladoù kevreet." -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Fazi bank roadennoù" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Enporzhiañ ar restr" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Gweredekaet" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Diweredekaet" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Adderaouekaat" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 #, fuzzy msgid "Design defaults restored." msgstr "Enrollet eo bet an arventennoù design." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Tennañ eus ar pennrolloù" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Ouzhpennañ d'ar pennrolloù" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Pennrolloù" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Mignon ur mignon (FOAF)" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Lanvioù" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5890,9 +7507,13 @@ msgstr "Mont" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" + #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "URL pajenn degemer ar poellad-mañ" #: lib/groupeditform.php:168 @@ -5902,62 +7523,114 @@ msgstr "Deskrivit ho poellad" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Diskrivit ho poellad gant %d arouezenn" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Diskrivit ho poellad gant %d arouezenn" +msgstr[1] "Diskrivit ho poellad gant %d arouezenn" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 #, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "El lec'h m'emaoc'h, da skouer \"Kêr, Stad (pe Rannvro), Bro\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Strollad" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "strollad %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Izili" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Izili ar strollad %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Stanket" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s implijer stanket" +msgstr "implijerien stanket ar strollad %s" -#: lib/groupnav.php:108 -#, fuzzy, php-format +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Kemmañ ar strollad %s" +msgstr "Kemmañ perzhioù ar strollad %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Ouzhpennañ pe kemmañ logo %s" +msgstr "Ouzhpennañ pe kemmañ logo ar strollad %s" -#: lib/groupnav.php:120 -#, fuzzy, php-format +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Ouzhpennañ pe kemmañ logo %s" +msgstr "Ouzhpennañ pe kemmañ tres ar strollad %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 #, fuzzy msgid "Groups with most members" msgstr "Ezel eo %s eus ar strolladoù" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -5972,39 +7645,57 @@ msgstr "" msgid "Unsupported image file format." msgstr "Diembreget eo ar furmad-se." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." +msgstr "Re vras eo ar restr ! %d eo ar vent vrasañ evit ur restr." -#: lib/imagefile.php:93 -#, fuzzy +#: lib/imagefile.php:95 msgid "Partial upload." -msgstr "N'eus bet enporzhiet restr ebet." +msgstr "Enporzhiadenn diglok." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Restr bet kollet." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Dizanv eo seurt ar restr" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "Mo" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "Mo" +msgstr[1] "Mo" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "Ko" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "Ko" +msgstr[1] "Ko" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d o" +msgstr[1] "%d o" #: lib/jabber.php:387 #, php-format @@ -6016,10 +7707,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Yezh \"%s\" dizanv." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Stagañ" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Kuitaat" @@ -6033,44 +7720,53 @@ msgstr "Kevreit gant ho anv implijer hag ho ker-tremen." msgid "Sign up for a new account" msgstr "Digeriñ ur gont nevez" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Kadarnadur ar chomlec'h postel" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, fuzzy, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "Ne heuilh %s den ebet." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6079,26 +7775,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, fuzzy, php-format msgid "Bio: %s" msgstr "Lec'hiadur : %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Chomlec'h postel nevez evit embann e %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6108,34 +7808,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Statud %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Kadarnadur SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Niverenn pellgomz o c'hortoz bezañ kadarnaet." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6151,14 +7856,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Kemenadenn personel nevez a-berzh %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6177,14 +7886,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "Kas din ur postel pa lak unan bennak unan eus va alioù evel pennroll." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6206,7 +7920,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6217,13 +7931,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) en deus kaset deoc'h ur c'hemenn" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6261,7 +7982,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "eus" @@ -6284,159 +8005,213 @@ msgstr "N'eo ket ho postel." msgid "Sorry, no incoming email allowed." msgstr "Chomlec'h postel ebet o tont." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Diembreget eo ar furmad-se." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Mankout a ra un doser padennek." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Diposubl eo termeniñ an implijer mammenn." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Klaskit implijout ur furmad %s all." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Kas ur gemennadenn war-eeun" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Dibab un aotre-implijout" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Nann-koumanantet !" + +#: lib/messageform.php:153 msgid "To" msgstr "Da" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 #, fuzzy msgid "Available characters" msgstr "6 arouezenn pe muioc'h" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Kas" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +#, fuzzy +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Kas un ali" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Penaos 'mañ kont, %s ?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Stagañ" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Stagañ ur restr" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Rannañ va lec'hiadur." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Chom hep rannañ va lec'hiadur." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "R" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "K" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "e" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "en amdro" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Adkemeret gant" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "Respont d'an ali-mañ" +msgstr "Respont d'ar c'hemenn-mañ" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Respont" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Ali adkemeret" @@ -6452,58 +8227,53 @@ msgstr "Blinkadenn" msgid "Send a nudge to this user" msgstr "Kas ur blinkadenn d'an implijer-mañ" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Ur fazi 'zo bet en ur ensoc'hañ ar profil nevez" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Ur fazi 'zo bet en ur ensoc'hañ an avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -#, fuzzy -msgid "Error updating remote profile" -msgstr "Fazi en ur hizivaat ar profil a-bell." +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -#, fuzzy -msgid "Error inserting remote profile" -msgstr "Ur fazi 'zo bet en ur ensoc'hañ ar profil nevez" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Eilañ an ali" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 #, fuzzy msgid "Couldn't insert new subscription." msgstr "Dibosupl eo dilemel ar c'houmanant." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Hiniennel" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respontoù" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Pennrolloù" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Boest resev" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" -msgstr "ar gemennadennoù o peus resevet" +msgstr "Ar gemennadennoù ho peus resevet" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Boest kas" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Ar c'hemenadennoù kaset ganeoc'h" @@ -6512,7 +8282,8 @@ msgstr "Ar c'hemenadennoù kaset ganeoc'h" msgid "Tags in %s's notices" msgstr "N'eus ali nevez evit an implijer-mañ" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Dianav" @@ -6581,7 +8352,7 @@ msgstr "Arguzenn ID ebet." #: lib/repeatform.php:107 msgid "Repeat this notice?" -msgstr "Adkregiñ gant an ali-mañ ?" +msgstr "Adkregiñ gant ar c'hemenn-mañ ?" #: lib/repeatform.php:132 msgid "Yes" @@ -6589,16 +8360,18 @@ msgstr "Ya" #: lib/repeatform.php:132 msgid "Repeat this notice" -msgstr "Adkregiñ gant an ali-mañ" +msgstr "Adkregiñ gant ar c'hemenn-mañ" #: lib/revokeroleform.php:91 #, fuzzy, php-format msgid "Revoke the \"%s\" role from this user" msgstr "Stankañ an implijer-mañ eus ar strollad-se" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "N'eo ket bet kavet an hentenn API !" #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6609,19 +8382,25 @@ msgstr "Poull-traezh" msgid "Sandbox this user" msgstr "Distankañ an implijer-mañ" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Klask el lec'hienn" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Ger(ioù) alc'hwez" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Klask" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Skoazell diwar-benn ar c'hlask" @@ -6696,6 +8475,12 @@ msgstr "" msgid "None" msgstr "Hini ebet" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ment direizh." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6705,37 +8490,44 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Ur gudenn 'zo bet e-pad hizivadenn an avatar." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 #, fuzzy msgid "Error opening theme archive." msgstr "Fazi en ur hizivaat ar profil a-bell." @@ -6744,6 +8536,12 @@ msgstr "Fazi en ur hizivaat ar profil a-bell." msgid "Top posters" msgstr "An implijerien an efedusañ" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Distankañ" + #: lib/unsandboxform.php:69 #, fuzzy msgid "Unsandbox" @@ -6772,124 +8570,179 @@ msgstr "En em zigoumanantiñ eus an implijer-mañ" msgid "Unsubscribe" msgstr "Digoumanantiñ" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "An implijer-mañ n'eus profil ebet dezhañ." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Kemmañ an Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Obererezh an implijer" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Diverkadenn an implijer o vont war-raok..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Kemmañ arventennoù ar profil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Aozañ" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Kas ur gemennadenn war-eeun d'an implijer-mañ" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Kemennadenn" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Habaskaat" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rol an implijer" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Merour" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Habasker" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "un nebeud eilennoù zo" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "1 vunutenn zo well-wazh" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "%d munutenn zo well-wazh" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "1 eurvezh zo well-wazh" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "%d eurvezh zo well-wazh" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "1 devezh zo well-wazh" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "%d devezh zo well-wazh" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "miz zo well-wazh" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "%d miz zo well-wazh" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "bloaz zo well-wazh" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "n'eo ket %s ul liv reizh !" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "N'eo ket %s ul liv reizh ! Implijit 3 pe 6 arouezenn heksdekvedennel." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " -"arouezenn o peus lakaet." +"arouezenn ho peus lakaet." +msgstr[1] "" +"Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " +"arouezenn ho peus lakaet." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ment direizh." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "N'eus bet diferet ID implijer ebet." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index d7de3b4d6b..93e150107f 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -1,158 +1,200 @@ -# Translation of StatusNet to Catalan +# Translation of StatusNet - Core to Catalan (Català) +# Expored from translatewiki.net # -# Author@translatewiki.net: Aleator -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Paucabot -# Author@translatewiki.net: Toniher +# Author: Aleator +# Author: El libre +# Author: Martorell +# Author: McDutchie +# Author: Paucabot +# Author: SMP +# Author: Toniher # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:12+0000\n" -"Language-Team: Catalan\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:29+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Accés" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Paràmetres d'accés al lloc" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registre" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Voleu prohibir als usuaris anònims (que no han iniciat cap sessió) " "visualitzar el lloc?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privat" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Fes que el registre sigui només amb invitacions." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Només invitació" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Inhabilita els nous registres." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Tancat" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Desa els paràmetres d'accés" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Desa" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "No existeix la pàgina." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No existeix l'usuari." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s i amics, pàgina %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s i amics" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Canal dels amics de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Canal dels amics de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Canal dels amics de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -160,7 +202,9 @@ msgstr "" "Aquesta és la línia temporal de %s i amics, però ningú hi ha publicat res " "encara." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -169,79 +213,104 @@ msgstr "" "Proveu de subscriure més gent, [uniu-vos a un grup](%%action.groups%%) o " "publiqueu quelcom personal." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Podeu provar d'[avisar %1$s](../%2$s) des del seu perfil o [publiqueu " -"quelcom per cridar-li l'atenció](%%%%action.newnotice%%%%?status_textarea=%3" -"$s)." +"Sigueu el primer en [enviar sobre aquest tema](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Per què no [registreu un compte](%%%%action.register%%%%) i aviseu %s o " -"publiqueu un avís a la seva atenció." +"Per què no hi [registreu un compte](%%action.register%%) i sou el primer en " +"escriure'n un!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Un mateix i amics" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Actualitzacions de %1$s i amics a %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "No s'ha trobat el mètode API!" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Aquest mètode requereix POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -249,355 +318,528 @@ msgstr "" "Heu d'especificar un paràmetre anomenat 'device' (dispositiu) amb un valor " "dels següents: sms, im, none (cap)" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "No s'ha pogut actualitzar l'usuari." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "L'usuari no té perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "No s'ha pogut desar el perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"El servidor no ha pogut gestionar tantes dades POST (%s byte) a causa de la " +"configuració actual." +msgstr[1] "" "El servidor no ha pogut gestionar tantes dades POST (%s bytes) a causa de la " "configuració actual." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "No s'han pogut desar els paràmetres de disseny." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "No s'ha pogut actualitzar el vostre disseny." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Principal" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s línia temporal" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Subscripcions de %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Preferits" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s membre/s en el grup" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "No podeu bloquejar-vos a vosaltres mateixos!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Ha fallat el blocatge de l'usuari." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Ha fallat el desblocatge de l'usuari." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Missatges directes de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Tots els missatges directes enviats per %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Missatges directes a %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Tots els missatges directes enviats a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "No hi ha text al missatge!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "És massa llarg. La mida màxima del missatge és %d caràcters." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "És massa llarg. La mida màxima del missatge és %d caràcter." +msgstr[1] "És massa llarg. La mida màxima del missatge és %d caràcters." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "No s'ha trobat l'usuari destinatari." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "No es pot enviar missatges directes a usuaris que no siguin els vostres " "amics." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "No us envieu un missatge a un mateix; simplement comentar-vos-ho." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "No s'ha trobat cap estat amb aquest ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Aquest estat ja és un preferit." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "No es pot crear el preferit." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "L'estat no és un preferit." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "No s'ha pogut eliminar el preferit." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "No s'ha pogut seguir l'usuari: l'usuari no existeix." +msgstr "No es pot deixar de seguir l'usuari: no s'ha trobat l'usuari." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "No s'ha pogut seguir l'usuari: %s ja està a la vostra llista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "No es pot deixar de seguir l'usuari: no s'ha trobat l'usuari." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "No podeu deixar de seguir-vos a un mateix." -#: actions/apifriendshipsexists.php:91 -#, fuzzy -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Cal proporcionar dos ids d'usuari o screen_names." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Cal proporcionar dos identificadors o sobrenoms." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "No s'ha pogut determinar l'usuari d'origen." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "No s'ha pogut trobar l'usuari de destinació." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"El sobrenom ha de tenir només lletres minúscules i números i no pot tenir " -"espais." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Aquest sobrenom ja existeix. Prova un altre. " -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Sobrenom no vàlid." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "La pàgina personal no és un URL vàlid." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "El vostre nom sencer és massa llarg (màx. 255 caràcters)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "La descripció és massa llarga (màx. %d caràcters)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "La descripció és massa llarga (màx. %d caràcter)." +msgstr[1] "La descripció és massa llarga (màx. %d caràcters)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "La ubicació és massa llarga (màx. 255 caràcters)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "La localització és massa llarga (màx. 255 caràcters)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Hi ha massa àlies! Màxim %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Hi ha massa àlies! Es permet %d com a màxim." +msgstr[1] "Hi ha massa àlies! Es permeten %d com a màxim." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "L'àlies no és vàlid: «%s»." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "L'àlies «%s» ja està en ús. Proveu-ne un altre." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "L'àlies no pot ser el mateix que el sobrenom." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "No s'ha trobat el grup." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Ja sou membre del grup." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "L'administrador us ha blocat del grup." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "No s'ha pogut afegir l'usuari %1$s al grup %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "No sou un membre del grup." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "No s'ha pogut eliminar l'usuari %1$s del grup %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grups de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s grups dels que %2$s és membre." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "%s grups" +msgstr "Grups de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grups sobre %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Puja un fitxer" +msgstr "La pujada ha fallat." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "El testimoni de sol·licitud o verificador no és vàlid." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "No s'ha proporcionat cap paràmetre oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "El testimoni no és vàlid." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "El testimoni de sol·licitud no és vàlid." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "El testimoni de sol·licitud ja està autoritzat." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Sembla que hi ha hagut un problema amb la teva sessió. Prova-ho de nou, si " "us plau." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nom d'usuari / contrasenya no vàlid!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Error de la base de dades en esborrar l'usuari de l'aplicació OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Error de la base de dades en inserir l'usuari de l'aplicació OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"S'ha autoritzat el testimoni de sol·licitud %s. Si us plau, canvieu-lo per " -"un testimoni d'accés." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "S'ha denegat i revocat el testimoni de sol·licitud %s." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Error de la base de dades en inserir l'oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Enviament de formulari inesperat." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Una aplicació voldria connectar-se al vostre compte" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permet o denega l'accés" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Una aplicació voldria l'habilitat de <strong>%3$s</strong> les dades del " +"vostre compte %4$s. Només hauríeu de donar accés al compte %4$s a terceres " +"parts en què confieu." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -608,243 +850,629 @@ msgstr "" "l'habilitat de <strong>%3$s</strong> les dades del vostre compte %4$s. Només " "hauríeu de donar accés al compte %4$s a terceres parts en què confieu." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Compte" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Sobrenom" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Contrasenya" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Denega" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancel·la" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Permet" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Permet o denega l'accés a la informació del vostre compte." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autoritza l'accés a la informació del vostre compte." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "S'ha cancel·lat l'autorització." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "S'ha revocat el testimoni de sol·licitud %s." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Heu autoritzat l'aplicació amb èxit." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Torneu a l'aplicació i introduïu el codi de seguretat següent per completar " +"el procés." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Heu autoritzat amb èxit %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Torneu a %s i introduïu el codi de seguretat següent per completar el procés." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Aquest mètode requereix POST o DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "No podeu eliminar l'estat d'un altre usuari." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "No existeix aquest avís." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "No podeu repetir els vostres propis avisos." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Avís duplicat." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "El mètode HTTP no està implementat." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Format no permès: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "S'ha eliminat l'estat." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "No s'ha trobat cap estatus amb la ID trobada." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Només es pot eliminar fent servir el format Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "No es pot eliminar l'avís." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "S'ha eliminat l'avís %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "El client ha de proporcionar un paràmetre 'status' amb un valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Massa llarg. La longitud màxima és de %d caràcters." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "És massa llarg. La longitud màxima de l'avís és de %d caràcter." +msgstr[1] "És massa llarg. La longitud màxima de l'avís és de %d caràcters." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "No s'ha trobat." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "No s'ha trobat l'avís pare." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "La mida màxima de l'avís és %d caràcters, incloent l'URL de l'adjunt." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"La mida màxima de l'avís és %d caràcter, incloent l'URL de l'adjunció." +msgstr[1] "" +"La mida màxima de l'avís és %d caràcters, incloent l'URL de l'adjunció." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." -msgstr "El format no està implementat." +msgstr "El format no està permès." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Preferits de %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s actualitzacions preferides per %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s actualitzacions preferides per %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "No s'ha pogut generar un canal per al grup - %s." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualitzacions que mencionen %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s actualitzacions que responen a avisos de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s línia temporal pública" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s actualitzacions de tothom!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "No implementat." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetit a %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repeticions de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avisos etiquetats amb %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualitzacions etiquetades amb %1$s el %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Només l'usuari pot afegir a la pròpia línia temporal." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Només accepta AtomPub per als canals Atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "L'enviament Atom ha de ser una entrada Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "L'enviament Atom ha de ser una entrada Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "L'enviament Atom ha de ser una entrada Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Només es poden gestionar les activitats enviades." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Només es pot gestionar l'activitat dels tipus d'objecte «%s»" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Cerca el contingut dels avisos" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "L'avís amb URI «%s» amb ja existeix." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Enviament AtomPub amb un URI %s d'atenció desconegut" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Mètode API en construcció." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "No s'ha trobat el mètode API!" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "No existeix el perfil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "No s'ha pogut inserir una nova subscripció." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Només es poden gestionar les activitats enviades." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Només es poden gestionar les activitats enviades." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Desconegut" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Afegeix als preferits" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "No existeix el perfil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s membre/s en el grup" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%s grups són membres de" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Només es poden gestionar les activitats enviades." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Desconegut" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Tots els membres" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "No existeix el fitxer." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "No s'ha pogut eliminar el preferit." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "No s'ha trobat el grup." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Tots els membres" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "El mètode HTTP no està implementat." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "No existeix el perfil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "No estàs subscrit a aquest perfil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "No s'ha pogut eliminar l'autosubscripció." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Gent subscrita a %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Només es poden gestionar les activitats enviades." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tipus de fitxer desconegut" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "No existeix l'adjunció." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Cap sobrenom." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Cap mida." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "La mida no és vàlida." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Podeu pujar el vostre avatar personal. La mida màxima del fitxer és %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "L'usuari que no coincideix amb cap perfil" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuració de l'avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vista prèvia" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Elimina" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Puja" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Retalla" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "No s'ha carregat cap fitxer." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" "Selecciona un quadrat de l'àrea de la imatge que vols que sigui el teu " "avatar." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "S'ha perdut el nostre fitxer de dades." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar actualitzat." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Error en actualitzar avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "S'ha eliminat l'avatar." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Ja heu blocat l'usuari." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloca l'usuari" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -856,175 +1484,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "No bloquis l'usuari" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Sí" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloca aquest usuari" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "No s'ha pogut desar la informació del bloc." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "No s'ha trobat el grup." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s perfils blocats" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s perfils blocats, pàgina %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Una llista d'usuaris que han estat blocats d'afegir-se a aquest grup." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Desbloca l'usuari del grup" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloca" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Desbloca l'usuari" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Publica a %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Cap codi de confirmació." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Codi de confirmació no trobat. " -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Aquest codi de confirmació no és vostre!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Tipus d'adreça desconeguda %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Aquesta adreça ja ha estat confirmada." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "No s'ha pogut actualitzar l'usuari." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "No s'ha pogut eliminar la confirmació de correu electrònic." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "No s'ha pogut eliminar la confirmació de l'adreça." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmeu l'adreça de correu electrònic" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "L'adreça «%s» ha estat confirmada per al vostre compte." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversa" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avisos" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Heu d'haver iniciat una sessió per eliminar una aplicació." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "No s'ha trobat l'aplicació." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "No sou el propietari d'aquesta aplicació." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "S'ha produït un problema amb el testimoni de la vostra sessió." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Elimina l'aplicació" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1035,31 +1707,88 @@ msgstr "" "existents." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "No eliminis l'aplicació" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Elimina aquesta aplicació" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Heu d'haver iniciat una sessió per eliminar un grup." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Cap sobrenom o ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "No teniu permisos per eliminar el grup." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "No s'ha pogut eliminar el grup %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "S'ha eliminat el grup %s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Elimina el grup" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Esteu segur que voleu eliminar el grup? S'esborraran totes les dades del " +"grup a la base de dades, sense cap còpia de seguretat. Els apunts públics al " +"grup encara apareixeran a les línies temporals individuals." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "No eliminis aquest grup" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Elimina aquest grup" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "No heu iniciat una sessió." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "No es pot eliminar l'avís." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1067,21 +1796,24 @@ msgstr "" "Esteu a punt d'eliminar permanentment un avís. Una vegada fet, no es podrà " "desfer." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Elimina l'avís" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Esteu segur que voleu eliminar aquest avís?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "No eliminis aquest avís" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Elimina aquest avís" @@ -1112,62 +1844,71 @@ msgstr "Elimina l'usuari" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Disseny" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "Paràmetres de disseny d'aquest lloc StatusNet." -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "L'URL del logotip no és vàlid." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "L'URL SSL del logotip no és vàlid." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema no disponible: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Canvia el logotip" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logotip del lloc" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logotip SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Canvia el tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema del lloc" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema del lloc." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Tema personalitzat" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Podeu pujar un tema personalitzat de l'StatusNet amb un arxiu ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Canvia la imatge de fons" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fons" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1176,75 +1917,84 @@ msgstr "" "Podeu pujar una imatge de fons per al lloc. La mida màxima de fitxer és %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Activada" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Desactivada" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Activa o desactiva la imatge de fons." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Posa en mosaic la imatge de fons" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Canvia els colors" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contingut" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra lateral" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Enllaços" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avançat" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalitzat" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Utilitza els paràmetres per defecte" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaura els dissenys per defecte" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Torna a restaurar al valor per defecte" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Desa" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Desa el disseny" @@ -1261,109 +2011,129 @@ msgstr "Afegeix als preferits" msgid "No such document \"%s\"" msgstr "No existeix el document «%s»" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Editeu l'aplicació" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Edita l'aplicació" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Heu d'iniciar una sessió per editar una aplicació." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "No hi ha tal aplicació." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Utilitza el formulari per editar la vostra aplicació." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Cal un nom." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "El nom és massa llarg (màx. 255 caràcters)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "El nom ja es troba en ús. Proveu-ne un altre." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Cal una descripció." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "L'URL font és massa llarg." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "La URL d'origen no és vàlida." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Cal una organització." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "El camp organització és massa llarg (màx. 255 caràcters)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Cal una pàgina d'inici de l'organització." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "La crida de retorn és massa llarga." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "L'URL de la crida de retorn no és vàlid." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "No s'ha pogut actualitzar l'aplicació." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Edita el grup %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Heu d'haver iniciat una sessió per crear un grup." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Heu de ser administrador per editar el grup." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Utilitza aquest formulari per editar el grup." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "la descripció és massa llarga (màx. %d caràcters)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "L'àlies no és vàlid «%s»" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "No s'ha pogut actualitzar el grup." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "No s'han pogut crear els àlies." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Configuració guardada." @@ -1381,12 +2151,12 @@ msgstr "Gestioneu com rebeu correu de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Adreça de correu electrònic" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Adreça electrònica confirmada actualment." @@ -1395,14 +2165,14 @@ msgstr "Adreça electrònica confirmada actualment." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Elimina" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1410,25 +2180,19 @@ msgstr "" "Esperant a confirmar aquesta direcció. Revisa la teva safata d'entrada (i la " "carpeta de spam!) per al missatge amb les instruccions." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancel·la" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Adreça electrònica, com ara «nomusuari@example.org»" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1436,112 +2200,119 @@ msgstr "Afegeix" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Correu electrònic entrant" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Vull publicar avisos amb el correu electrònic." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Envia correu electrònic a aquesta adreça per publicar nous avisos." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Estableix una nova adreça electrònica d'enviament; cancel·la l'antiga." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nou" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferències del correu electrònic" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Envia'm avisos per correu electrònic quan algú nou se'm subscrigui." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Envia'm un correu electrònic quan algú afegeixi un avís meu com a preferit." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Envia'm un correu electrònic quan algú m'envii un missatge privat." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Envia'm un correu electrònic quan algú m'enviï una resposta amb @." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" "Permetre que els amics em cridin l'atenció i m'enviïn un correu electrònic." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Vull publicar avisos amb el correu electrònic." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publica una MicroID per al meu correu electrònic." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "S'han desat les preferències del correu electrònic." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "No hi ha cap adreça electrònica." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "No es pot normalitzar l'adreça electrònica." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adreça de correu electrònic no vàlida." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Ja és la vostra adreça electrònica." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "L'adreça electrònica ja pertany a un altre usuari." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "No s'ha pogut inserir el codi de confirmació." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1553,50 +2324,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Cap confirmació pendent per cancel·lar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Aquesta l'adreça de correu electrònic incorrecta." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "No s'ha pogut eliminar la confirmació de correu electrònic." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "S'ha cancel·lat la confirmació de correu electrònic." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Aquest no és el teu correu electrònic" #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "S'ha eliminat l'adreça de correu electrònic." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "No hi ha cap direcció de correu electrònic entrant." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "No s'ha pogut actualitzar el registre de l'usuari." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Eliminat el correu electrònic entrant." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nou correu electrònic entrant afegit." @@ -1604,11 +2381,11 @@ msgstr "Nou correu electrònic entrant afegit." msgid "This notice is already a favorite!" msgstr "Aquest avís ja és un preferit." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Fes que deixi de ser preferit" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Avisos populars" @@ -1646,7 +2423,7 @@ msgstr "" "afegir un avís als vostres preferits!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Avisos preferits de %s" @@ -1715,7 +2492,7 @@ msgstr "No s'ha pogut convertir el testimoni de sol·licitud a un d'accés." msgid "Remote service uses unknown version of OMB protocol." msgstr "El servei remot utilitza una versió desconeguda del protocol OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "S'ha produït un error en actualitzar el perfil remot." @@ -1743,19 +2520,23 @@ msgstr "No podeu establir rols d'usuari en aquest lloc." msgid "User already has this role." msgstr "L'usuari ja té aquest rol." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "No s'ha especificat cap perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "No hi ha cap perfil amb aquesta ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "No s'ha especificat cap grup." @@ -1772,7 +2553,7 @@ msgstr "L'usuari ja està blocat del grup." msgid "User is not a member of group." msgstr "L'usuari no és membre del grup." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloca l'usuari del grup" @@ -1820,8 +2601,10 @@ msgstr "" "Personalitzeu l'aspecte del vostre grup amb una imatge de fons i una paleta " "de colors de la vostra elecció." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "No s'ha pogut actualitzar el vostre disseny." @@ -1841,6 +2624,14 @@ msgstr "" "Podeu pujar una imatge com a logotip del vostre grup. La mida màxima del " "fitxer és %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Puja" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Retalla" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Trieu una àrea quadrada de la imatge perquè en sigui el logotip." @@ -1853,48 +2644,55 @@ msgstr "Logo actualitzat." msgid "Failed updating logo." msgstr "Error en actualitzar logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s membre/s en el grup" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s membres del grup, pàgina %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "La llista dels usuaris d'aquest grup." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloca" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bloca aquest usuari" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Fes l'usuari un administrador del grup" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Fes-lo administrador" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Fes l'usuari administrador" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s línia temporal" +msgstr "Fes aquest usuari administrador" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1967,15 +2765,18 @@ msgstr "" "Per què no [registreu un compte](%%action.register%%) i proveu de [crear-hi " "un grup](%%action.newgroup%%)!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Només un administrador pot desblocar els membres del grup." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "L'usuari no està blocat del grup." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "S'ha produït un error en eliminar el bloc." @@ -2025,7 +2826,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2036,65 +2840,65 @@ msgstr "" "missatgeria instantània o al GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferències de MI" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Envia'm avisos per Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Envia'm un avís quan el meu estat Jabber/GTalk canvii." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Envia'm respostes a través de Jabber/GTalk de la gent a la que no estic " "subscrita." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "Publica una MicroID per a la meva direcció de Jabber/GTalk." +msgstr "Publica una MicroID per al meu compte de Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "S'han desat les preferències." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Cap Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Impossible normalitzar aquest Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Jabber ID no vàlid" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Aquest ja és el teu Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Aquest Jabber ID ja està sent utilitzat per un altre usuari." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2104,28 +2908,28 @@ msgstr "" "heu afegit. Heu d'acceptar que %s us pugui enviar missatges." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Aquesta adreça de missatgeria instantània és incorrecta." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "No s'ha pogut eliminar la confirmació de MI." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "S'ha cancel·lat la confirmació de MI." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Aquest no és el teu Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "S'ha eliminat l'adreça de MI." @@ -2145,50 +2949,77 @@ msgstr "" "Aquesta és la teva safata d'entrada, que et mostrarà els teus missatges " "privats." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "S'han inhabilitat les invitacions." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Heu d'haver iniciat una sessió per convidar altres usuaris a utilitzar %s" -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Correu electrònic invàlid: %s" +msgid "Invalid email address: %s." +msgstr "L'adreça electrònica no és vàlida: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Invitacions envidades" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "S'han enviat les invitacions" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Convida nous usuaris" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Ja estàs subscrit a aquests usuaris:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Ja esteu subscrit a aquests usuari:" +msgstr[1] "Ja esteu subscrit a aquests usuaris:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Aquestes persones ja són usuaris i se us ha subscrit automàticament:" +msgstr[0] "Aquesta persona ja és usuària i us hi heu subscrit automàticament:" +msgstr[1] "" +"Aquestes persones ja són usuàries i us hi heu subscrit automàticament:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitació(ons) enviada(des) a la següent gent:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitació enviada a la persona següent:" +msgstr[1] "Invitacions enviades a les persones següents:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2196,43 +3027,54 @@ msgstr "" "Se us notificarà quan els vostres convidats acceptin la invitació i es " "registrin al lloc. Gràcies per fer créixer la comunitat!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Utilitza aquest formulari per convidar els teus amics i col·legues perquè " "utilitzin aquest servei." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Adreces de correu electrònic" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adreces d'amics per convidar (una per línia)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Missatge personal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Opcionalment pots afegir un missatge a la invitació." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Envia" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s us ha convidat a unir-vos al grup %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2293,13 +3135,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Heu d'haver iniciat una sessió per unir-vos a un grup." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Cap sobrenom o ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s s'ha unit al grup %2$s" @@ -2308,17 +3144,123 @@ msgstr "%1$s s'ha unit al grup %2$s" msgid "You must be logged in to leave a group." msgstr "Heu d'haver iniciat una sessió per deixar un grup." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "No ets membre d'aquest grup." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ha abandonat el grup %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Llicència" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Llicència d'aquest lloc basat en StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "La selecció de la llicència no és vàlida." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Heu d'especificar el propietari del contingut quan utilitzeu la llicència " +"«Tots els drets reservats»." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "" +"El títol de la llicència no és vàlid. La longitud màxima és 255 caràcters." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "L'URL de la llicència no és vàlid." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "L'URL de la imatge de la llicència no és vàlid." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "L'URL de la llicència ha de ser en blanc o bé un URL vàlid." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "La imatge de la llicència ha de ser en blanc o bé un URL vàlid." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Selecció de llicència" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privat" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Tots els drets reservats" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Tipus" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Seleccioneu la llicència" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Detalls de la llicència" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Propietari" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nom del propietari del contingut del lloc (si s'hi aplica)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Títol de la llicència" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "El títol de la llicència." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL de la llicència" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL per a més informació de la llicència." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL de la imatge de la llicència" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL de la imatge que es mostrarà juntament amb la llicència." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Desa els paràmetres de la llicència" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Ja hi heu iniciat una sessió." @@ -2341,11 +3283,11 @@ msgstr "Inici de sessió" msgid "Login to site" msgstr "Accedir al lloc" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Recorda'm" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Inicia la sessió automàticament en el futur; no ho activeu en ordinadors " @@ -2398,66 +3340,76 @@ msgstr "No es pot fer %1$s administrador del grup %2$s." msgid "No current status." msgstr "No hi ha cap estat actual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" -msgstr "Nova Aplicació" +msgid "New application" +msgstr "Aplicació nova" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Heu d'haver iniciat una sessió per registrar-hi una aplicació." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Utilitzeu aquest formulari per crear una nova aplicació." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "URL d'origen requerida." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "No s'ha pogut crear l'aplicació." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nou grup" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Utilitza aquest formulari per crear un nou grup." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nou missatge" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "No podeu enviar un misssatge a aquest usuari." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Cap contingut!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "No has especificat el destinatari." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "No t'enviïs missatges a tu mateix, simplement dir-te això." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "S'ha enviat el missatge" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "S'ha enviat un missatge directe a %s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax Error" @@ -2465,7 +3417,7 @@ msgstr "Ajax Error" msgid "New notice" msgstr "Nou avís" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "S'ha publicat l'avís" @@ -2517,12 +3469,12 @@ msgstr "" "Les actualitzacions que coincideixen amb el terme de cerca «%1$s» el %2$s!" #: actions/nudge.php:85 -#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Aquest usuari no permet que li cridin l'atenció o no ha confirmat encara cap " -"correu electrònic." +"Aquest usuari no permet que li cridin l'atenció o no ha confirmat encara " +"l'adreça electrònica." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2532,74 +3484,101 @@ msgstr "S'ha cridat l'atenció" msgid "Nudge sent!" msgstr "S'ha cridat l'atenció!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Heu d'haver iniciat una sessió per llistar les vostres aplicacions." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplicacions OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplicacions que heu registrat" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "No teniu cap aplicació registrada encara." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Aplicacions connectades" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Heu permès les aplicacions següents accedir al vostre compte." +msgid "The following connections exist for your account." +msgstr "Les connexions següents existeixen per al vostre compte." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "No sou usuari de l'aplicació." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "No s'ha pogut revocar l'accés de l'aplicació: %s" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Heu revocat amb èxit l'accés de %1$s i el testimoni d'accés que comença amb %" +"2$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "No heu autoritzat cap aplicació perquè utilitzi el vostre compte." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Els desenvolupadors poden editar els paràmetres de registre de llurs " -"aplicacions " +"Sou un desenvolupador? [Registreu una aplicació de client OAuth](%s) per " +"utilitzar-la amb una instància de l'StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "L'avís no té cap perfil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "estat de %1$s a %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "El tipus de contingut %s no està permès." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Si us plau, només URL %s sobre HTTP pla." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -2611,38 +3590,47 @@ msgstr "Cerca de gent" msgid "Notice Search" msgstr "Cerca d'avisos" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Altres paràmetres" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Gestiona altres opcions diferents." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (servei gratuït)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Escurça els URL amb" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Servei d'auto-escurçament a utilitzar." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Visualitza els dissenys de perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Mostra o amaga els dissenys de perfil." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "" -"El servei d'auto-escurçament d'URL és massa llarga (màx. 50 caràcters)." +"El servei d'autoescurçament d'URL és massa llarga (màxim 50 caràcters)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2705,7 +3693,7 @@ msgid "6 or more characters" msgstr "6 o més caràcters" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirma" @@ -2717,11 +3705,11 @@ msgstr "Igual a la contrasenya de dalt" msgid "Change" msgstr "Canvia" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "La contrasenya hauria de ser d'entre 6 a més caràcters." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Les contrasenyes no coincideixen." @@ -2741,156 +3729,273 @@ msgstr "No es pot desar la nova contrasenya." msgid "Password saved." msgstr "Contrasenya guardada." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Camins" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Camí i paràmetres del servidor d'aquest lloc StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Camí i paràmetres del servidor d'aquest lloc basat en StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "No es pot llegir el directori de temes: %s" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "No es pot escriure al directori d'avatars: %s" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "No es pot escriure al directori de fons: %s" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "No es pot llegir el directori de les traduccions: %s" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "El servidor SSL no és vàlid. La mida màxima és de 255 caràcters." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Lloc" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servidor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Servidor central del lloc." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Camí" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Camí del lloc" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Camí del lloc." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "El camí a les traduccions" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Directori de les traduccions" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "El camí del directori a les traduccions" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Camí del directori a les traduccions." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URL atractius" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Voleu fer servir URL atractius (més fàcils de llegir i de recordar)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servidor dels temes" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Servidor de temes." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Camí dels temes" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Camí web dels temes." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directori de temes" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatars" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servidor d'avatars" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Camí de l'avatar" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directori d'avatars" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fons" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servidor de fons" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Camí dels fons" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directori de fons" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Mai" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "A vegades" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Utilitza l'SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quan utilitzar l'SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servidor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Servidor on dirigir les sol·licituds SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "Servidor SSL dels temes (per defecte: servidor SSL)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Camí SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "Camí SSL als temes (per defecte: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Directori" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Directori on es troben els temes." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatars" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servidor d'avatars" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Servidor d'avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Camí de l'avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Camí web dels avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directori d'avatars" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Directori on es troben els avatars." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fons" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Servidor de fons." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Camí web de fons." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Servidor de fons a pàgines SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Camí web de fons a pàgines SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Directori on es troben els fons." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Adjuncions" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Servidor d'adjuncions." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Camí web de les adjuncions." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Servidor d'adjuncions a les pàgines SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Camí web de les adjuncions a les pàgines SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Directori on es troben les adjuncions." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Mai" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "A vegades" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Utilitza l'SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Quan utilitzar l'SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Servidor on dirigir les sol·licituds SSL." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Desa els camins" @@ -2928,142 +4033,184 @@ msgstr "" "La llicència ‘%1$s’ de l'avís no és compatible amb la llicència ‘%2$s’ del " "lloc." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configuració del perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Podeu actualitzar la informació del vostre perfil personal perquè la gent us " "pugui conèixer millor." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Informació del perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" -"1-64 lletres en minúscula o números, sense signes de puntuació o espais" +"1-64 lletres en minúscula o nombres, sense signes de puntuació o espais." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nom complet" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Pàgina personal" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL del teu web, blog o perfil en un altre lloc" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "URL del vostre web, blog o perfil en un altre lloc." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descriviu qui sou i els vostres interessos en %d caràcters" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descriviu qui sou i els vostres interessos en %d caràcter" +msgstr[1] "Descriviu qui sou i els vostres interessos en %d caràcters" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Feu una descripció personal i interessos" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografia" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Ubicació" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "On us trobeu, per exemple «ciutat, comarca (o illa), país»" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" -msgstr "Comparteix la meva ubicació actual en enviar avisos" +msgstr "Comparteix la ubicació on estic en enviar avisos" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etiquetes" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquetes pròpies (lletres, nombres, -, ., i _), per comes o separades amb " "espais" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Llengua" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Llengua preferida" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fus horari" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "En quin fus horari us trobeu normalment?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Subscripció automàtica a qualsevol qui em tingui subscrit (ideal per no-" "humans)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "La biografia és massa llarga (màx. %d caràcters)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "La biografia és massa llarga (màx. %d caràcter)." +msgstr[1] "La biografia és massa llarga (màx. %d caràcters)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "No s'ha seleccionat el fus horari." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "La llengua és massa llarga (màx. 50 caràcters)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "La llengua és massa llarga (màxim 50 caràcters)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "L'etiqueta no és vàlida: «%s»" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "No es pot actualitzar l'usuari per autosubscriure." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "No s'han pogut desar les preferències d'ubicació." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "No s'ha pogut desar el perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "No s'han pogut desar les etiquetes." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "S'ha desat la configuració." @@ -3141,27 +4288,40 @@ msgstr "" "Això és %%site.name%%, un servei de [microblogging](http://ca.wikipedia.org/" "wiki/Microblogging) basat en l'eina lliure [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Núvol públic d'etiquetes" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Aquestes són les etiquetes recents més populars a %s " +msgid "These are most popular recent tags on %s" +msgstr "Aquestes són les etiquetes recents més populars a %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "Ningú ha enviat encara cap avís amb una [etiqueta de coixinet (#)](%%doc.tags" "%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Sigueu el primer en escriure'n un!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3170,7 +4330,7 @@ msgstr "" "Per què no hi [registreu un compte](%%action.register%%) i sou el primer en " "escriure'n un!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Núvol d'etiquetes" @@ -3285,14 +4445,14 @@ msgid "Unexpected password reset." msgstr "Restabliment de contrasenya inesperat." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "La contrasenya ha de tenir 6 o més caràcters." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La contrasenya i la confirmació no coincideixen." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Error en configurar l'usuari." @@ -3300,7 +4460,7 @@ msgstr "Error en configurar l'usuari." msgid "New password successfully saved. You are now logged in." msgstr "Nova contrasenya guardada correctament. Has iniciat una sessió." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Ho sentim, però només la gent convidada pot registrar-s'hi." @@ -3312,7 +4472,7 @@ msgstr "El codi d'invitació no és vàlid." msgid "Registration successful" msgstr "Registre satisfactori" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registre" @@ -3320,19 +4480,19 @@ msgstr "Registre" msgid "Registration not allowed." msgstr "Registre no permès." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "No pots registrar-te si no estàs d'acord amb la llicència." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "L'adreça de correu electrònic ja existeix." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "El nom d'usuari o la contrasenya no són vàlids." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3340,58 +4500,62 @@ msgstr "" "Amb aquest formulari, podeu crear un compte nou. Podeu enviar avisos i " "enllaçar a amics i col·legues. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 lletres en minúscula o números, sense puntuacions ni espais. Requerit." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 o més caràcters. Requerit." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Igual a la contrasenya de dalt. Requerit." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Correu electrònic" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Utilitzat només per a actualitzacions, anuncis i recuperació de contrasenya" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nom llarg, preferiblement el vostre nom «real»" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL del teu web, blog o perfil en un altre lloc" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Entenc que el contingut i les dades de %1$s són privades i confidencials." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "El meu text i els meus fitxers són copyright de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "El meu text i els meus fitxers es troben sota el meu propi copyright." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Tots els drets reservats." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3401,7 +4565,7 @@ msgstr "" "les dades privades: contrasenya, adreça de correu electrònic, adreça de " "missatgeria instantània i número de telèfon." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3434,7 +4598,7 @@ msgstr "" "\n" "Gràcies per registrar-vos-hi i esperem que en gaudiu." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3479,7 +4643,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del teu perfil en un altre servei de microblogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscriu-m'hi" @@ -3517,7 +4681,7 @@ msgstr "No podeu repetir el vostre propi avís." msgid "You already repeated that notice." msgstr "Ja havíeu repetit l'avís." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetit" @@ -3526,7 +4690,7 @@ msgid "Repeated!" msgstr "Repetit!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respostes a %s" @@ -3552,13 +4716,12 @@ msgid "Replies feed for %s (Atom)" msgstr "Canal de respostes de %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" -"Aquesta és la línia temporal que mostra les respostes a %1$s, però %2$s " -"encara no ha rebut cap avís a la seva atenció." +"Aquesta és la línia temporal de %1$s, però %2$s no hi ha enviat res encara." #: actions/replies.php:204 #, php-format @@ -3570,13 +4733,13 @@ msgstr "" "[uniu-vos a grups](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Podeu provar d'[avisar %1$s](../%2$s) o [enviar quelcom per cridar-li " -"l'atenció](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Sigueu el primer en [enviar sobre aquest tema](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/repliesrss.php:72 #, php-format @@ -3605,13 +4768,13 @@ msgstr "L'usuari ja es troba en un entorn de proves." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Paràmetres de sessió d'aquest lloc StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Paràmetres de sessió d'aquest lloc basat en StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3630,7 +4793,6 @@ msgid "Turn on debugging output for sessions." msgstr "Activa la sortida de depuració per a les sessions." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Desa els paràmetres del lloc" @@ -3643,28 +4805,29 @@ msgid "Application profile" msgstr "Perfil de l'aplicació" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icona" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nom" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organització" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estadístiques" @@ -3682,6 +4845,11 @@ msgstr "Accions d'aplicació" msgid "Reset key & secret" msgstr "Reinicialitza la clau i la secreta" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Elimina" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informació de l'aplicació" @@ -3752,100 +4920,126 @@ msgstr "" "avisos que us agraden per arxivar-los per a més endavant i fer-los conèixer." #: actions/showfavorites.php:208 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" "%s no ha afegit cap avís als seus preferits encara. Envieu quelcom " -"interessant que pugui afegir-hi." +"interessant que pugui afegir-hi :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s no ha afegit cap avís als seus preferits encara. Per què no [registreu un " -"compte](%%%%action.register%%%%) i llavors envieu quelcom interessant que " -"pugui afegir-hi." +"Per què no [registreu un compte](%%action.register%%) i sou el primer en " +"afegir un avís als vostres preferits!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "És una forma de compartir allò que us agrada." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s grup" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "grup %1$s, pàgina %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Perfil del grup" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Avisos" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Àlies" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Accions del grup" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Canal d'avisos del grup %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Canal d'avisos del grup %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Canal d'avisos del grup %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Safata de sortida per %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Cap)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Tots els membres" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "S'ha creat" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Membres" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3861,7 +5055,10 @@ msgstr "" "%) per formar part del grup i molt més! ([Més informació...](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3874,24 +5071,31 @@ msgstr "" "[StatusNet](http://status.net/). Els seus membre comparteixen missatges " "curts sobre llur vida i interessos. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administradors" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "No existeix el missatge." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Només el remitent i el receptor poden llegir aquest missatge." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Missatge per a %1$s a %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Missatge de %1$s a %2$s" @@ -3900,48 +5104,68 @@ msgstr "Missatge de %1$s a %2$s" msgid "Notice deleted." msgstr "S'ha eliminat l'avís." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " etiquetats amb %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s etiquetats %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s etiquetats %2$s, pàgina %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pàgina %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Canal d'avisos de %1$s etiquetats amb %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Canal d'avisos de %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Canal d'avisos de %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Canal d'avisos de %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF de %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Aquesta és la línia temporal de %1$s, però %2$s no hi ha enviat res encara." +"Aquesta és la línia temporal de %1$s, però %1$s no hi ha enviat encara res." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3949,16 +5173,20 @@ msgstr "" "Heu vist res interessant recentment? No heu enviat cap avís encara, ara " "podria ser un bon moment per començar :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Podeu provar d'avisar %1$s o [enviar quelcom per cridar-li l'atenció](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"Sigueu el primer en [enviar sobre aquest tema](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3973,7 +5201,9 @@ msgstr "" "seguir els avisos de **%s** i molt més! ([Més informació...](%%%%doc.help%%%" "%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3984,7 +5214,8 @@ msgstr "" "ca.wikipedia.org/wiki/Microblogging) basat en l'eina lliure [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetició de %s" @@ -4098,33 +5329,40 @@ msgstr "" "Quant de temps cal que esperin els usuaris (en segons) per enviar el mateix " "de nou." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Avís del lloc" +msgstr "Avís per a tot el lloc" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" -msgstr "Edita el missatge de tot el lloc" +msgstr "Edita el missatge per a tot el lloc" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." -msgstr "No s'ha pogut desar l'avís del lloc." +msgstr "No s'ha pogut desar l'avís per a tot el lloc." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "La mida màxima per als avisos de tot el lloc és de 255 caràcters." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "La mida màxima per als avisos per a tot el lloc és de 255 caràcters." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" -msgstr "Text de l'avís del lloc" +msgstr "Text d'avís per a tot el lloc" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "Text d'avís de tot el lloc (màxim 255 caràcters, es permet l'HTML)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "Text d'avís per a tot el lloc (màxim 255 caràcters; es permet l'HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Desa l'avís del lloc" +msgstr "Desa l'avís per a tot el lloc" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 @@ -4285,7 +5523,7 @@ msgstr "No s'ha introduït cap codi" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Instantànies" @@ -4341,12 +5579,14 @@ msgstr "Les instantànies s'enviaran a aquest URL" msgid "Save snapshot settings" msgstr "Desa els paràmetres de les instantànies" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "No estàs subscrit a aquest perfil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "No s'ha pogut guardar la subscripció." @@ -4354,10 +5594,6 @@ msgstr "No s'ha pogut guardar la subscripció." msgid "This action only accepts POST requests." msgstr "Aquesta acció només accepta sol·licituds POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "No existeix el perfil." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "No podeu subscriure-us a un perfil remot OMB 0.1 amb aquesta acció." @@ -4366,39 +5602,55 @@ msgstr "No podeu subscriure-us a un perfil remot OMB 0.1 amb aquesta acció." msgid "Subscribed" msgstr "Subscrit" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" -msgstr "%s subscriptors" +msgstr "Subscriptors de %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s subscriptors, pàgina %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." -msgstr "Aquestes són les persones que escolten els teus avisos." +msgstr "Aquestes són les persones que escolten els vostres avisos." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Aquestes són les persones que escolten els avisos de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "No teniu cap subscriptor. Proveu de subscriure-us a gent que coneixeu i ells " -"podrien tornar-vos així el favor" +"podrien tornar-vos així el favor." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s no té subscriptors. Voleu ser-ne el primer?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4407,26 +5659,31 @@ msgstr "" "%s no té subscriptors. Per què no us [registreu](%%%%action.register%%%%) i " "en sou el primer?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s subscripcions" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s subscripcions, pàgina %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." -msgstr "Aquestes són les persones que escoltes." +msgstr "Aquestes són les persones que escolteu." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Aquestes són les persones que %s escolta." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4442,16 +5699,27 @@ msgstr "" "twittersettings%%), podeu subscriure-us automàticament a gent que ja seguiu " "allà." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s no escolta a ningú." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Canal d'avisos de %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4489,7 +5757,7 @@ msgid "User profile" msgstr "Perfil de l'usuari" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4555,75 +5823,95 @@ msgstr "" "llicència del lloc, «%2$s»." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Usuari" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Paràmetres d'usuari d'aquest lloc StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Paràmetres d'usuari d'aquest lloc basat en StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "El límit de la biografia no és vàlid. Cal que sigui numèric." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" "El text de benvinguda no és vàlid. La longitud màxima és de 255 caràcters." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "La subscripció per defecte no és vàlida: «%1$s» no és cap usuari." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Límit de la biografia" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Límit màxim de la biografia d'un perfil (en caràcters)." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Usuaris nous" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Benvinguda als usuaris nous" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "Text de benvinguda per a nous usuaris (màx. 255 caràcters)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Text de benvinguda per a nous usuaris (màxim 255 caràcters)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Subscripció per defecte" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Subscriviu automàticament els usuaris nous a aquest usuari." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitacions" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "S'han habilitat les invitacions" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Si es permet als usuaris invitar-ne de nous." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Desa els paràmetres d'usuari" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autoritza la subscripció" @@ -4638,7 +5926,9 @@ msgstr "" "us als avisos d'aquest usuari. Si no heu demanat subscriure-us als avisos de " "ningú, feu clic a «Rebutja»." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Llicència" @@ -4726,11 +6016,13 @@ msgstr "No es pot llegir l'URL de l'avatar «%s»." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipus d'imatge incorrecta per a l'URL de l'avatar «%s»." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Disseny del perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4768,7 +6060,7 @@ msgstr "Proveu de [cercar grups](%%action.groupsearch%%) i unir-vos-hi." #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Actualitzacions de %1$s a %2$s!" @@ -4829,7 +6121,7 @@ msgid "Plugins" msgstr "Connectors" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versió" @@ -4837,65 +6129,115 @@ msgstr "Versió" msgid "Author(s)" msgstr "Autoria" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Preferit" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s ha marcat l'avís %2$s com a preferit" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "No es pot processar l'URL «%s»" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "El Robin pensa que quelcom és impossible." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, fuzzy, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Cap fitxer pot ser major de %d bytes i el fitxer que heu enviat era de %d " +msgstr[0] "" +"Cap fitxer pot ser major de %1$d byte i el fitxer que heu enviat era de %2$d " "bytes. Proveu de pujar una versió de mida menor." +msgstr[1] "" +"Cap fitxer pot ser major de %1$d bytes i el fitxer que heu enviat era de %2" +"$d bytes. Proveu de pujar una versió de mida menor." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Un fitxer d'aquesta mida excediria la vostra quota d'usuari de %d byte." +msgstr[1] "" "Un fitxer d'aquesta mida excediria la vostra quota d'usuari de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Un fitxer d'aquesta mida excediria la vostra quota mensual de %d byte." +msgstr[1] "" "Un fitxer d'aquesta mida excediria la vostra quota mensual de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "La mida no és vàlida." +msgstr "El nom del fitxer no és vàlid." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "No s'ha pogut unir al grup." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "No s'és part del grup." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "La sortida del grup ha fallat." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "L'identificador del perfil %s no és vàlid." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "L'identificador del grup %s no és vàlid." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Inici de sessió" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s s'ha unit al grup %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4911,20 +6253,20 @@ msgstr "No s'ha pogut crear un testimoni d'inici de sessió per a %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "No s'ha trobat el nom de la base de dades o el DSN enlloc." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Se us ha bandejat enviar missatges directes." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "No s'ha pogut inserir el missatge." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "No s'ha pogut inserir el missatge amb la nova URI." @@ -4933,10 +6275,10 @@ msgstr "No s'ha pogut inserir el missatge amb la nova URI." #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "No hi ha cap perfil (%1$d) per a l'avís (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" @@ -4944,24 +6286,24 @@ msgstr "" "coixinet (%): %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "S'ha produït un problema en desar l'avís. És massa llarg." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "S'ha produït un problema en desar l'avís. Usuari desconegut." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Massa avisos massa ràpid; pren un respir i publica de nou en uns minuts." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4970,353 +6312,406 @@ msgstr "" "enviar en uns minuts." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Ha estat bandejat de publicar avisos en aquest lloc." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "S'ha produït un problema en desar l'avís." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "S'ha proporcionat un tipus incorrecte per a saveKnownGroups." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "S'ha produït un problema en desar la safata d'entrada del grup." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "No s'ha pogut desar la resposta de %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "No es pot revocar el rol «%1$s» de l'usuari #%2$d; no existeix." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"No es pot revocar el rol «%1$s» de l'usuari #%2$d; s'ha produït un error en " +"la base de dades." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "L'usuari no té perfil." +msgstr "Manca el perfil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "No s'ha pogut desar l'avís del lloc." +msgstr "No s'ha pogut desar l'etiqueta." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Se us ha banejat la subscripció." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Ja hi esteu subscrit!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Un usuari t'ha bloquejat." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "No hi esteu subscrit!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "No s'ha pogut eliminar l'autosubscripció." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "No s'ha pogut eliminar el testimoni OMB de la subscripció." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "No s'ha pogut eliminar la subscripció." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Segueix" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s ara està seguint %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "No s'ha definit cap usuari únic per al mode d'usuari únic." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "S'ha cridat el codi del mode d'únic usuari quan no està habilitat." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "No s'ha pogut crear el grup." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "No es pot definir l'URI del grup." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "No s'ha pogut establir la pertinença d'aquest grup." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "No s'ha pogut desar la informació del grup local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Canvieu els paràmetres del vostre perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Puja un avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Canvieu la vostra contrasenya" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Canvieu la gestió del correu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Dissenyeu el vostre perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Altres opcions" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Altres" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Pàgina sense titol" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Mostra més" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navegació primària del lloc" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal i línia temporal dels amics" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Canvia l'adreça electrònica, l'avatar, la contrasenya o el perfil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Compte" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connecta als serveis" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Connexió" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Canvia la configuració del lloc" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrador" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convida amics i coneguts perquè participin a %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Convida" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Finalitza la sessió del lloc" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Finalitza la sessió" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un compte" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registre" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Inicia una sessió al lloc" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Inici de sessió" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajuda'm!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca gent o text" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Cerca" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Avís del lloc" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vistes locals" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Avís de pàgina" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navegació del lloc secundària" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Ajuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Quant a" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Preguntes més freqüents" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Termes del servei" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privadesa" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Font" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contacte" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insígnia" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Llicència del programari StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5326,13 +6721,16 @@ msgstr "" "site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** és un servei de microblogging." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5344,34 +6742,35 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Llicència de contingut del lloc" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "El contingut i les dades de %1$s són privades i confidencials." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "El contingut i les dades són copyright de %1$s. Tots els drets reservats." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "El contingut i les dades són copyright dels col·laboradors. Tots els drets " "reservats." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" @@ -5379,316 +6778,423 @@ msgstr "" "llicència %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginació" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Posteriors" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Anteriors" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "S'esperava un element del canal arrel, però se n'ha obtingut tot un document " "XML sencer." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "No es pot gestionar el contingut remot encara." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "No es pot gestionar el contingut XML incrustat encara." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "No es pot gestionar el contingut Base64 incrustat encara." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "No podeu fer canvis al lloc." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "No es permeten canvis a aquell tauler." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "El showForm() no està implementat." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "El saveSettings() no està implementat." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "No s'ha pogut eliminar el paràmetre de disseny." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuració bàsica del lloc" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Lloc" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuració del disseny" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Disseny" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuració de l'usuari" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usuari" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuració de l'accés" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuració dels camins" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuració de les sessions" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Edita l'avís del lloc" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuració de les instantànies" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Defineix la llicència del lloc" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "El recurs API requereix accés de lectura i d'escriptura, però només en teniu " "de lectura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Edita l'aplicació" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "No hi ha cap aplicació per a aquest clau de consumidor." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Testimoni d'accés incorrecte." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "No hi ha cap usuari per aquest testimoni." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "No se us ha pogut autenticar." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "No s'ha pogut crear un consumidor anònim." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "No s'ha pogut crear l'aplicació OAuth anònima." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" +"No s'ha pogut trobar un perfil i una aplicació associada amb el testimoni " +"sol·licitat." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "No s'ha pogut emetre un testimoni d'accés." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Error de la base de dades en inserir l'usuari de l'aplicació OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "S'ha provat de revocar el testimoni desconegut." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "No s'ha pogut suprimir el testimoni revocat." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icona de l'aplicació" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Descriviu la vostra aplicació en %d caràcters" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Descriviu la vostra aplicació en %d caràcter" +msgstr[1] "Descriviu la vostra aplicació en %d caràcters" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Descriviu la vostra aplicació" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL de la pàgina d'inici de l'aplicació" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL d'origen" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organització responsable de l'aplicació" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "L'URL de la pàgina d'inici de l'organització" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL on redirigir-hi després de l'autenticació." #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navegador" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Escriptori" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipus d'aplicació, navegador o escriptori" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Només lectura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lectura i escriptura" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Accés per defecte per a l'aplicació: només lectura, o lectura i escriptura" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancel·la" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " per " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "de lectura i d'escriptura" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "només de lectura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprovat: %1$s - accés «%2$s»." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Testimoni d'accés que comença amb: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revoca" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Adjuncions" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "l'element autor ha de contenir un element nom." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autoria" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Proveïdor" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Avisos on apareix l'adjunt" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etiquetes de l'adjunció" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "El canvi de contrasenya ha fallat" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "El canvi de contrasenya ha fallat." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "No es permet el canvi de contrasenya" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "No es permet el canvi de contrasenya." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloca" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultats de les comandes" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Error de l'AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Comanda completada" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Comanda fallida" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "No existeix cap avís amb aquest identificador." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "L'usuari no té última nota" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "L'usuari no té un darrer avís." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "No s'ha pogut trobar un usuari amb el sobrenom %s" +msgid "Could not find a user with nickname %s." +msgstr "No es pot trobar un usuari amb el sobrenom %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "No s'ha pogut trobar a un usuari local amb el sobrenom %s" +msgid "Could not find a local user with nickname %s." +msgstr "No s'ha pogut trobar un usuari local amb el sobrenom %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Perdona, aquesta comanda no està implementada." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "No té massa sentit avisar-se a un mateix!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "S'ha cridat l'atenció a %s" +msgid "Nudge sent to %s." +msgstr "S'ha cridat l'atenció a %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5699,55 +7205,64 @@ msgstr "" "Subscriptors: %2$s\n" "Avisos: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "L'avís està marcat com a preferit." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Ja sou membre del grup." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "No s'ha pogut afegir l'usuari %1$s al grup %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s s'ha unit al grup %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "No s'ha pogut eliminar l'usuari %1$s del grup %2$s." +msgid "%1$s left group %2$s." +msgstr "%1$s ha deixat el grup %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nom complet: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Localització: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Pàgina web: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Informació personal: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5756,147 +7271,180 @@ msgstr "" "%s és un perfil remot; només podeu enviar missatges directess a usuaris del " "mateix servidor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"El missatge és massa llarg - el màxim és %1$d caràcters, i n'heu enviat %2$d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"El missatge és massa llarg - el màxim és %1$d caràcter, i n'heu enviat %2$d." +msgstr[1] "" +"El missatge és massa llarg - el màxim és %1$d caràcters, i n'heu enviat %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Missatge directe a %s enviat" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "S'ha produït un error en enviar el missatge directe." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "No es pot repetir el vostre propi avís" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Ja s'ha repetit l'avís" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "S'ha repetit l'avís de %s" +msgid "Notice from %s repeated." +msgstr "S'ha repetit l'avís de %s." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "S'ha produït un error en repetir l'avís." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "L'avís és massa llarg - el màxim és %d caràcters, i n'heu enviat %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"L'avís és massa llarg - el màxim és %1$d caràcter, n'heu enviat %2$d." +msgstr[1] "" +"L'avís és massa llarg - el màxim és %1$d caràcters, n'heu enviat %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "S'ha enviat la resposta a %s" +msgid "Reply to %s sent." +msgstr "S'ha enviat la resposta a %s." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "S'ha produït un error en desar l'avís." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Especifiqueu el nom de l'usuari al qual voleu subscriure-us" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Especifiqueu el nom de l'usuari al qual voleu subscriure-us." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "No es pot subscriure a perfils de OMB amb ordres." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subscrit a %s" +msgid "Subscribed to %s." +msgstr "Subscrit a %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Especifiqueu el nom de l'usuari de qui voleu cancel·lar la subscripció" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Especifiqueu el nom de l'usuari del qui voleu deixar la subscripció." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Heu cancel·lat la subscripció a %s" +msgid "Unsubscribed from %s." +msgstr "S'ha deixat d'estar subscrit a %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Comanda encara no implementada." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Avisos desactivats." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "No es poden desactivar els avisos." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Avisos activitats." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "No es poden activar els avisos." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "L'ordre d'inici de sessió està inhabilitada" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "L'ordre d'inici de sessió no està habilitada." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"L'enllaç només es pot fer servir una vegada, i només funciona durant 2 " -"minuts: %s" +"Aquest enllaç només es pot fer servir una vegada i només és vàlid durant 2 " +"minuts: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "S'ha cancel·lat la subscripció de %s" +msgid "Unsubscribed %s." +msgstr "S'ha cancel·lat la subscripció de %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "No esteu subscrit a ningú." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ja estàs subscrit a aquests usuaris:" msgstr[1] "Ja estàs subscrit a aquests usuaris:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Ningú no us ha subscrit." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "No pots subscriure a un altre a tu mateix." msgstr[1] "No pots subscriure a un altre a tu mateix." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "No sou membre de cap grup." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sou un membre d'aquest grup:" msgstr[1] "Sou un membre d'aquests grups:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5976,50 +7524,72 @@ msgstr "" "tracks - no s'ha implementat encara.\n" "tracking - no s'ha implementat encara.\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "No s'ha trobat cap fitxer de configuració. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "S'han cercat fitxers de configuracions en els llocs següents: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Podeu voler executar l'instal·lador per corregir-ho." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Vés a l'instal·lador." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Actualitzacions per missatgeria instantània (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Actualitzacions per SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Connexions" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Aplicacions de connexió autoritzades" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Error de la base de dades" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Puja un fitxer" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6027,41 +7597,57 @@ msgstr "" "Podeu pujar la vostra imatge de fons personal. La mida màxima del fitxer és " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Activada" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Desactivada" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reinicialitza" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "S'han restaurat els paràmetres de disseny per defecte." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Deixa de tenir com a preferit aquest avís" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Fes preferit aquest avís" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Preferit" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportació de les dades" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Canals" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6092,9 +7678,14 @@ msgstr "Vés-hi" msgid "Grant this user the \"%s\" role" msgstr "Atorga a l'usuari el rol «%s»" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 lletres en minúscula o números, sense signes de puntuació o espais" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL del teu web, blog del grup o de la temàtica" +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL de la pàgina o blog del grup o de la temàtica." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6102,61 +7693,117 @@ msgstr "Descriviu el grup o la temàtica" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Descriviu el grup o la temàtica en %d caràcters" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Descriviu el grup o la temàtica en %d caràcter" +msgstr[1] "Descriviu el grup o la temàtica en %d caràcters" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -"Ubicació del grup, si s'hi adiu cap, com ara «ciutat, comarca (o illa), país»" +"Ubicació del grup, si s'hi adiu cap, com ara «ciutat, comarca (o illa), país»." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "Sobrenoms addicionals del grup, separats amb comes o espais, màx. %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Sobrenoms addicionals del grup, separats amb comes o espais. Es permet un " +"màxim de %d àlies." +msgstr[1] "" +"Sobrenoms addicionals del grup, separats amb comes o espais. Es permet un " +"màxim de %d àlies." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grup" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Blocat" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grup %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membres" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membres del grup %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Blocats" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "%s usuaris blocats" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Edita les propietats del grup %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Logo" +msgstr "Logotip" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Afegeix o edita el logo %s" +msgstr "Afegeix o edita el logotip de %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Afegeix o edita el disseny %s" +msgstr "Afegeix o edita el disseny de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grups amb més membres" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grups amb més entrades" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Etiquetes en els avisos del grup %s" @@ -6170,38 +7817,57 @@ msgstr "Aquesta pàgina no està disponible en un tipus de mèdia que acceptis." msgid "Unsupported image file format." msgstr "Format d'imatge no suportat." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "La mida del fitxer és massa gran, La mida màxima és %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Càrrega parcial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Error del sistema en pujar el fitxer." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "No és una imatge o és un fitxer corrupte." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Hem perdut el nostre fitxer." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tipus de fitxer desconegut" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dMB" +msgstr[1] "%dMB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dkB" +msgstr[1] "%dkB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dB" +msgstr[1] "%dB" #: lib/jabber.php:387 #, php-format @@ -6213,10 +7879,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Font %d de la safata d'entrada desconeguda." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Inici de sessió" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Deixa" @@ -6229,49 +7891,54 @@ msgstr "Accedir amb el nom d'usuari i contrasenya" msgid "Sign up for a new account" msgstr "Registreu-vos-hi si voleu un compte nou" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmació de l'adreça de correu electrònic" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Hola, %s.\n" +"Hola, %1$s.\n" "\n" -"Algú ha introduït aquesta adreça electrònica a %s.\n" +"Algú ha introduït aquesta adreça electrònica a %2$s.\n" "\n" "Si sou qui ho ha fet i voleu confirmar-hi la vostra entrada, feu servir " "l'URL a continuació:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" -"Si nou, simplement ignoreu el missatge.\n" +"Si no, simplement ignoreu el missatge.\n" "\n" "Gràcies pel vostre temps, \n" -"%s\n" +"%2$s" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ara està escoltant els teus avisos a %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6281,8 +7948,12 @@ msgstr "" "de la llista dels vostres subscriptors i notificar-lo com a brossa als " "administradors del lloc a %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6291,10 +7962,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s ara està escoltant els vostres avisos a %2$s.\n" "\n" @@ -6302,25 +7973,29 @@ msgstr "" "\n" "%4$s%5$s%6$s\n" "Atentament,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Canvieu la vostra adreça electrònica o les opcions d'avís a %8$s\n" +"Canvieu la vostra adreça electrònica o les opcions d'avís a %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografia: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nou correu electrònic per publicar a %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6330,7 +8005,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Teniu una nova adreça per publicar a %1$s.\n" "\n" @@ -6339,33 +8014,38 @@ msgstr "" "Més instruccions per al correu electrònic a %3$s.\n" "\n" "Atentament,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s estat" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmació SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: confirmeu-ho si teniu aquest número de telèfon amb aquest codi:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s us ha cridat l'atenció" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6391,14 +8071,18 @@ msgstr "" "Ben cordialment,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nou missatge privat de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6431,14 +8115,19 @@ msgstr "" "Ben cordialment,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) ha afegit el vostre avís com a preferit" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) ha afegit el vostre avís com a preferit" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6476,7 +8165,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6487,13 +8176,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) us ha enviat un avís a la vostra atenció" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) us ha enviat un avís a la vostra atenció" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6556,7 +8252,7 @@ msgstr "" "usuaris en la conversa. La gent pot enviar-vos missatges només per als " "vostres ulls." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "de" @@ -6576,24 +8272,27 @@ msgstr "Ho sentim, aquesta no és la vostra adreça electrònica d'entrada." msgid "Sorry, no incoming email allowed." msgstr "Ho sentim, no s'hi permet correu d'entrada." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Tipus de missatge no permès: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "S'ha produït un error a la base de dades mentre es desava el vostre fitxer. " "Torneu-ho a provar." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "El fitxer pujat excedeix la mida de la directiva upload_max_filesize del php." "ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6601,87 +8300,135 @@ msgstr "" "El fitxer pujat excedeix la mida de la directiva MAX_FILE_SIZE especificada " "en el formulari HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "El fitxer pujat només s'ha pujat parcialment." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Manca una carpeta temporal." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "No s'ha pogut escriure el fitxer al disc." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "L'extensió ha aturat la càrrega del fitxer." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "El fitxer excedeix la quota de l'usuari." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "No s'ha pogut moure el fitxer al directori de destinació." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "No s'ha pogut determinar el tipus MIME del fitxer." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Proveu d'emprar un altre format %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"«%1$s« no és un tipus de fitxer compatible en aquest servidor. Proveu " +"d'utilitzar un altre format de %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s no és un tipus de fitxer permès al servidor." +msgid "\"%s\" is not a supported file type on this server." +msgstr "«%s» no és un tipus de fitxer compatible en aquest servidor." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Envia un avís directe" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Seleccioneu el destinatari" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "No teniu subscriptors mutus." + +#: lib/messageform.php:153 msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caràcters disponibles" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Envia" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"El sobrenom ha de tenir només lletres minúscules i números i no pot tenir " +"espais." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "El sobrenom no pot estar en blanc." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "El sobrenom no pot contenir més de %d caràcter." +msgstr[1] "El sobrenom no pot contenir més de %d caràcters." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Envia un avís" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Què tal, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Adjunta" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Adjunta un fitxer" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "Comparteix la meva ubicació" - -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "No comparteixis la meva ubicació" +msgstr "Comparteix la ubicació on estic" #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Amaga la ubicació on estic" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6690,51 +8437,55 @@ msgstr "" "l'esperat; torneu-ho a provar més tard" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "a" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "en context" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Avís repetit" @@ -6750,55 +8501,52 @@ msgstr "Crida l'atenció" msgid "Send a nudge to this user" msgstr "Crida l'atenció a l'usuari" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Error en inserir el nou perfil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "S'ha produït un error en inserir un perfil nou." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Error en inserir avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "S'ha produït un error en inserir un avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Error en actualitzar el perfil remot" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "S'ha produït un error en inserir un perfil remot." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Error en inserir perfil remot" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Avís duplicat." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplica l'avís" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "No s'ha pogut inserir una nova subscripció." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respostes" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Preferits" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Safata d'entrada" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Els teus missatges rebuts" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Safata de sortida" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Els teus missatges enviats" @@ -6807,7 +8555,8 @@ msgstr "Els teus missatges enviats" msgid "Tags in %s's notices" msgstr "Etiquetes en els avisos de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Desconegut" @@ -6889,9 +8638,10 @@ msgstr "Repeteix l'avís" msgid "Revoke the \"%s\" role from this user" msgstr "Revoca el rol «%s» de l'usuari" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "No s'ha definit cap usuari únic per al mode d'usuari únic." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "No s'ha trobat la pàgina." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6901,19 +8651,25 @@ msgstr "Entorn de proves" msgid "Sandbox this user" msgstr "Posa l'usuari a l'entorn de proves" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Cerca al lloc" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Paraules clau" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Cerca" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Ajuda de la cerca" @@ -6987,6 +8743,11 @@ msgstr "Núvol d'etiquetes personals" msgid "None" msgstr "Cap" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "El nom del tema no és vàlid." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "El servidor no pot gestionar la pujada de temes si no pot tractar ZIP." @@ -6996,26 +8757,30 @@ msgid "The theme file is missing or the upload failed." msgstr "Manca el fitxer del tema o la pujada ha fallat." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Ha fallat el desament del tema." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "El tema no és vàlid: l'estructura del directori no és correcta" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"El tema pujat és massa gran; ha de tenir menys de %d byte descomprimit." +msgstr[1] "" "El tema pujat és massa gran; ha de tenir menys de %d bytes descomprimit." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "L'arxiu del tema no és vàlid: manca el fitxer css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7023,12 +8788,16 @@ msgstr "" "El tema conté un fitxer o un nom de carpeta que no és vàlida. Feu servir " "només lletres ASCII, dígits, caràcters de subratllat i el símbol de menys." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "El tema conté uns noms d'extensió de fitxer que no són segurs." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "El tema conté un tipus de fitxer «.%s», que no està permès." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "S'ha produït un error en obrir l'arxiu del tema." @@ -7036,6 +8805,12 @@ msgstr "S'ha produït un error en obrir l'arxiu del tema." msgid "Top posters" msgstr "Qui més publica" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloca" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Treu de l'entorn de proves" @@ -7060,123 +8835,175 @@ msgstr "Cancel·la la subscripció d'aquest usuari" msgid "Unsubscribe" msgstr "Cancel·la la subscripció" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "L'usuari %s (%d) no té un registre de perfil." +msgid "User %1$s (%2$d) has no profile record." +msgstr "L'usuari %1$s (%2$d) no té un registre de perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Edita l'avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Accions de l'usuari" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "S'està eliminant l'usuari..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Edita la configuració del perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Edita" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Envia un missatge directe a aquest usuari" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Missatge" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Modera" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rol de l'usuari" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrador" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderador" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "fa pocs segons" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "fa un minut" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "fa %d minuts" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "aproximadament fa un minut" +msgstr[1] "aproximadament fa %d minuts" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "fa una hora" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "fa %d hores" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "aproximadament fa una hora" +msgstr[1] "aproximadament fa %d hores" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "fa un dia" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "fa %d dies" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "aproximadament fa un dia" +msgstr[1] "aproximadament fa %d dies" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "fa un mes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "fa %d mesos" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "aproximadament fa un mes" +msgstr[1] "aproximadament fa %d mesos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "fa un any" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s no és un color vàlid!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s no és un color vàlid! Feu servir 3 o 6 caràcters hexadecimals." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "Usuari desconegut. Aneu a %s per afegir una adreça al vostre compte" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"El missatge és massa llarg - el màxim és %1$d caràcter, i n'heu enviat %2$d." +msgstr[1] "" "El missatge és massa llarg - el màxim és %1$d caràcters, i n'heu enviat %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "L'XML no és vàlid." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "L'XML no és vàlid, hi manca l'arrel XRD." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Es recupera la còpia de seguretat del fitxer '%s'." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "No s'ha especificat cap usuari; s'utilitza l'usuari de reserva." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d entrada a la còpia de seguretat." +msgstr[1] "%d entrades a la còpia de seguretat." diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 8df43a7890..ea427b9ef7 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -1,1123 +1,1851 @@ -# Translation of StatusNet to Czech +# Translation of StatusNet - Core to Czech (Česky) +# Expored from translatewiki.net # -# Author@translatewiki.net: Kuvaly -# Author@translatewiki.net: McDutchie +# Author: Brion +# Author: Koo6 +# Author: Kuvaly # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:14+0000\n" -"Language-Team: Czech\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:30+0000\n" +"Language-Team: Czech <http://translatewiki.net/wiki/Portal:cs>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n< =4) ? 1 : 2 ;\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n >= 2 && n <= 4) ? 1 : " +"2 );\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" -msgstr "Přijmout" +msgstr "Přístup" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 -#, fuzzy +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" -msgstr "Nastavení" +msgstr "Nastavení přístupu" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 -#, fuzzy +#: actions/accessadminpanel.php:151 msgid "Registration" -msgstr "Registrovat" +msgstr "Registrace" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Zakázat anonymním (nepřihlášeným) uživatelům prohlížet stránky" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "Soukromí" +msgstr "Soukromé" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." -msgstr "" +msgstr "Registrace jen na pozvánku" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" -msgstr "" +msgstr "Pouze na pozvánku" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." -msgstr "" +msgstr "Znemožnit nové registrace" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 -#, fuzzy +#: actions/accessadminpanel.php:175 msgid "Closed" -msgstr "Žádný takový uživatel." +msgstr "Uzavřené" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 -#, fuzzy +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" -msgstr "Nastavení" +msgstr "uložit nastavení přístupu" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 -#, fuzzy +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Uložit" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "Žádné takové oznámení." +msgstr "Tady žádná taková stránka není." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." -msgstr "Žádný takový uživatel." +msgstr "Uživatel neexistuje." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format +#: actions/all.php:91 +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s a přátelé" +msgstr "%1$s a přátelé, strana %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s a přátelé" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:108 +#, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed pro přátele uživatele: %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:117 +#, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed pro přátele uživatele: %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:126 +#, php-format msgid "Feed for friends of %s (Atom)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed pro přátele uživatele: %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" +"Tohle je časová osa pro uživatele %s a jeho(její) přátele ale nikdo zatím " +"nic nenapsal." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"Zkuste začít sledovat víc lidí, [připojte se ke skupině](%%action.groups%%) " +"nebo napište něco o sobě." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Můžete se pokusit uživatele [%1$s postrčit](../%2$s) z jejich profilu nebo " +"[jim něco poslat](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" +"Proč si [nezaregistrovat účet](%%%%action.register%%%%) a pak pošťouchnout " +"uživatele %s nebo jim poslat hlášku." -#. TRANS: H1 text -#: actions/all.php:182 -#, fuzzy +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" -msgstr "%s a přátelé" +msgstr "Vy a přátelé" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Novinky od uživatele %1$s a přátel na %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." -msgstr "Potvrzující kód nebyl nalezen" +msgstr " API metoda nebyla nalezena." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." -msgstr "" +msgstr "Tato metoda vyžaduje POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" +"Je nutné zadat parametr s názvem 'device' s jednou z hodnot: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nepodařilo se aktualizovat nastavení uživatele" -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Uživatel nemá profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "Nelze uložit profil" +msgstr "Nepodařilo se uložit profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Server nebyl schopen zpracovat tolik POST dat (%s bytů) vzhledem k jeho " +"aktuální konfiguraci." +msgstr[1] "" +"Server nebyl schopen zpracovat tolik POST dat (%s bytů) vzhledem k jeho " +"aktuální konfiguraci." +msgstr[2] "" +"Server nebyl schopen zpracovat tolik POST dat (%s bytů) vzhledem k jeho " +"aktuální konfiguraci." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." +msgstr "Nelze uložit vaše nastavení designu." + +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 +msgid "Could not update your design." +msgstr "Nelze uložit design." + +#: actions/apiatomservice.php:86 +msgid "Main" msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy -msgid "Could not update your design." -msgstr "Nelze aktualizovat uživatele" +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "časová osa %s" -#: actions/apiblockcreate.php:105 -#, fuzzy +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Odběry uživatele %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Oblíbené" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "členové skupiny %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" -msgstr "Nelze aktualizovat uživatele" +msgstr "Nemůžete zablokovat sami sebe!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." -msgstr "" +msgstr "Zablokovat uživatele se nezdařilo." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." -msgstr "" +msgstr "Odblokovat uživatele se nezdařilo." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" -msgstr "" +msgstr "Přímá zpráva od %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "Všechny přímé zprávy od uživatele %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "Přímé zprávy uživateli %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "Všechny přímé zprávy odeslané uživateli %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" -msgstr "" +msgstr "zpráva bez textu!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků." +msgstr[1] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků." +msgstr[2] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." -msgstr "" +msgstr "Příjemce nebyl nalezen." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Nelze odesílat zprávy uživatelům, kteří nejsou vašimi přáteli." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Neposílejte si zprávu, potichu si ji pro sebe řekněte." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." -msgstr "" +msgstr "Hláška s tímto ID nenalezena." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 -#, fuzzy msgid "This status is already a favorite." -msgstr "Toto je již vaše Jabber" +msgstr "Tuto hlášku již máte v oblíbených." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." -msgstr "" +msgstr "Nelze vytvořit oblíbenou položku." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." -msgstr "" +msgstr "Tato hláška není oblíbená." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Nelze smazat oblíbenou položku." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Nelze přesměrovat na server: %s" +msgstr "Nemůžu začít sledovat uživatele, profil nenalezen." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "Nemohu začít sledovat uživatele: %s je již na vašem seznamu." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Nelze přesměrovat na server: %s" +msgstr "Nemohu přestat sledovat uživatele, uživatel nebyl nalezen." -#: actions/apifriendshipsdestroy.php:120 -#, fuzzy +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nemůžete přestat sledovat sami sebe." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" - -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy +msgid "Two valid IDs or nick names must be supplied." +msgstr "Dva platné ID nebo screen_names musí být dodány." + +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze určit zdrojového uživatele." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nepodařilo se najít cílového uživatele." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." -msgstr "Přezdívku již někdo používá. Zkuste jinou" +msgstr "Přezdívku již někdo používá. Zkuste jinou." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Není platnou přezdívkou." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." -msgstr "Stránka není platnou URL." +msgstr "Domovská stránka není platná URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." +msgstr "Celé jméno je moc dlouhé (maximální délka je 255 znaků)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Popis je příliš dlouhý (maximálně %d znaků)." +msgstr[1] "Popis je příliš dlouhý (maximálně %d znaků)." +msgstr[2] "Popis je příliš dlouhý (maximálně %d znaků)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." +msgstr "Umístění je příliš dlouhé (maximálně 255 znaků)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Příliš mnoho aliasů! Maximálně %d." +msgstr[1] "Příliš mnoho aliasů! Maximálně %d." +msgstr[2] "Příliš mnoho aliasů! Maximálně %d." + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" - -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format msgid "Invalid alias: \"%s\"." -msgstr "Neplatná adresa '%s'" +msgstr "Neplatný alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "Přezdívku již někdo používá. Zkuste jinou" +msgstr "Alias \"%s\" se již používá. Zkuste jiný." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "Alias nemůže být stejný jako přezdívka." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Žádný požadavek nebyl nalezen!" +msgstr "Skupina nebyla nalezena." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." -msgstr "Již jste přihlášen" +msgstr "Jste již členem této skupiny." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "Z této skupiny jste byl zablokován adminem." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Nelze přesměrovat na server: %s" +msgstr "Nemohu připojit uživatele %1$s do skupiny %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 -#, fuzzy msgid "You are not a member of this group." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste členem této skupiny." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Nelze vytvořit OpenID z: %s" +msgstr "Nelze odebrat uživatele %1$S ze skupiny %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 -#, fuzzy, php-format +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 +#, php-format msgid "%s's groups" -msgstr "Profil" +msgstr "skupiny uživatele %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, fuzzy, php-format +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 +#, php-format msgid "%1$s groups %2$s is a member of." -msgstr "Neodeslal jste nám profil" +msgstr "skupiny na %1$s, kterych je %2$s členem." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "" +msgstr "skupiny uživatele %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" -msgstr "" +msgstr "skupiny na %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Upload" +msgstr "Nahrání se nezdařilo." -#: actions/apioauthauthorize.php:101 -msgid "No oauth_token parameter provided." -msgstr "" - -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 #, fuzzy -msgid "Invalid token." -msgstr "Neplatná velikost" +msgid "Invalid request token or verifier." +msgstr "Neplatný přihlašovací token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 +msgid "No oauth_token parameter provided." +msgstr "nebyl dodán parametr oauth_token" + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." +msgstr "Neplatný token." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Nejste autorizován." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "Nastal problém s vaším session tokenem. Zkuste to znovu, prosím." -#: actions/apioauthauthorize.php:135 -#, fuzzy +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" -msgstr "Neplatné jméno nebo heslo" +msgstr "Neplatné jméno nebo heslo!" -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Chyba nastavení uživatele" - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "Chyba v DB při vkládání odpovědi: %s" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +msgid "Database error inserting oauth_token_association." +msgstr "Chyba databáze při vkládání uživatele aplikace OAuth." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." -msgstr "Nečekaná forma submission." +msgstr "Nečekaný požadavek." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" -msgstr "" +msgstr "Aplikace se chce připojit k vašemu účtu" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" -msgstr "" +msgstr "Povolit nebo zamítnout přístup" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Aplikace <strong>%1$s</strong> od <strong>%2$s</strong> by chtěla \"<strong>%" +"3$s</strong>\" data vašeho účtu na %4$s. Měli byste povolit přístup k datům " +"vašeho účtu na %4$s jen třetím stranám kterým věříte.." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " "the ability to <strong>%3$s</strong> your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" +"Aplikace <strong>%1$s</strong> od <strong>%2$s</strong> by chtěla \"<strong>%" +"3$s</strong>\" data vašeho účtu na %4$s. Měli byste povolit přístup k datům " +"vašeho účtu na %4$s jen třetím stranám kterým věříte.." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 #, fuzzy +msgctxt "LEGEND" msgid "Account" -msgstr "O nás" +msgstr "Účet" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Přezdívka" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Heslo" -#: actions/apioauthauthorize.php:328 +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Zrušit" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 #, fuzzy -msgid "Deny" -msgstr "Vzhled" - -#: actions/apioauthauthorize.php:334 +msgctxt "BUTTON" msgid "Allow" +msgstr "Povolit" + +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." +msgstr "Povolit nebo zakázat přístup k vašemu účtu." + +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "IM potvrzení zrušeno." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "Token žádosti %s byl odepřen a zrušen." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Nejste autorizován." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." msgstr "" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Nejste autorizován." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Tato metoda vyžaduje POST nebo DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." -msgstr "" +msgstr "Nesmíte odstraňovat status jiného uživatele." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Žádné takové oznámení." -#: actions/apistatusesretweet.php:83 -#, fuzzy +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." +msgstr "Nelze opakovat své vlastní oznámení." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Odstranit toto oznámení" +msgstr "Již jste zopakoval toto oznámení." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 #, fuzzy -msgid "Status deleted." -msgstr "Obrázek nahrán" +msgid "HTTP method not supported." +msgstr " API metoda nebyla nalezena." -#: actions/apistatusesshow.php:145 +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Nepodporovaný formát." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 +msgid "Status deleted." +msgstr "Status smazán." + +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." +msgstr "Nenalezen status s tímto ID." + +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." msgstr "" +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Toto oznámení nelze odstranit." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Odstranit oznámení" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "Klient musí poskytnout 'status' parametr s hodnotou." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků" +msgstr[1] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků" +msgstr[2] "Je to příliš dlouhé. Maximální délka sdělení je %d znaků" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 #, fuzzy -msgid "Not found." -msgstr "Žádný požadavek nebyl nalezen!" +msgid "Parent notice not found." +msgstr " API metoda nebyla nalezena." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Maximální délka notice je %d znaků včetně přiložené URL." +msgstr[1] "Maximální délka notice je %d znaků včetně přiložené URL." +msgstr[2] "Maximální délka notice je %d znaků včetně přiložené URL." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 -#, fuzzy +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." -msgstr "Nepodporovaný formát obrázku." +msgstr "Nepodporovaný formát." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1 statusů na %2" +msgstr "%1$s / Oblíbené z %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "Mikroblog od %s" +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Updaty na %1$s od %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Nelze aktualizovat skupinu." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1 statusů na %2" +msgstr "%1$s / Updaty zmiňující %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "updaty na %1$s odpovídající na updaty od %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" -msgstr "" +msgstr "Veřejná časová osa %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "Všechny updaty na %s!" -#: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Neimplementovaná metoda." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 +#, php-format msgid "Repeated to %s" -msgstr "Odpovědi na %s" +msgstr "Opakováno uživatelem %s" -#: actions/apitimelineretweetsofme.php:114 -#, fuzzy, php-format +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 +#, php-format msgid "Repeats of %s" -msgstr "Odpovědi na %s" +msgstr "Opakování %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "Noticy taglé %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, fuzzy, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Mikroblog od %s" +msgstr "Aktualizace označené %1$s na %2$s!" -#: actions/apitrends.php:87 -msgid "API method under construction." +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Pouze uživatel může přečíst své vlastní schránky." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." msgstr "" -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Žádný takový dokument." +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Najít v obsahu oznámení" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Oznámení s tímto id neexistuje." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +msgid "API method under construction." +msgstr "API metoda ve výstavbě." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr " API metoda nebyla nalezena." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Žádný takový profil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Nelze vložit odebírání" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Najít v obsahu oznámení" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Neznámé" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Přidat do oblíbených" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Žádný takový profil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "členové skupiny %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Skupiny kterých je %s členem" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Neznámé" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Všichni členové" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Žádný takový soubor." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Nelze smazat oblíbenou položku." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Žádný takový uživatel." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Všichni členové" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr " API metoda nebyla nalezena." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Žádný takový profil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Nejste přihlášen k tomuto profilu." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Nelze smazat odebírání sebe sama" + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Lidé přihlášení k %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Neznámý typ souboru" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Žádná taková příloha." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Žádná přezdívka." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Žádná velikost" -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Neplatná velikost" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" -msgstr "Obrázek" +msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" +msgstr "Můžete nahrát váš osobní avatar. Maximální velikost souboru je %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Uživatel nemá profil." +msgstr "Uživatel bez odpovídajícího profilu." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 -#, fuzzy msgid "Avatar settings" -msgstr "Nastavení" +msgstr "Nastavené Profilu" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "" +msgstr "Originál" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" -msgstr "" +msgstr "Náhled" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Odstranit" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Upload" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 -msgid "Crop" -msgstr "" - -#: actions/avatarsettings.php:305 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 #, fuzzy +msgctxt "BUTTON" +msgid "Crop" +msgstr "Oříznout" + +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." -msgstr "Částečné náhrání." +msgstr "žádný soubor nebyl nahrán." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Vyberte čtvercovou plochu obrázku, která bude váš avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." -msgstr "" +msgstr "Ztratili jsme údaje souboru." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Obrázek nahrán" -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Nahrávání obrázku selhalo." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar smazán." -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Již jste přihlášen" +msgstr "Jabber ID již patří jinému uživateli" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" -msgstr "Žádný takový uživatel." +msgstr "Zablokovat tohoto uživatele" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 "" +"Jste si jisti, že chcete zablokovat tohoto uživatele? Poté bude odhlášen od " +"vás, nebude se k vám moci v budoucnu přihlásit, a nebudete upozorňováni na " +"jakékoli @-odpovědi od nich." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Ne" +msgstr "Poznámka" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 -#, fuzzy +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" -msgstr "Žádný takový uživatel." +msgstr "Zablokovat tohoto uživatele" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 -#, fuzzy +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ano" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Zablokovat tohoto uživatele" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." -msgstr "" +msgstr "Nepodařilo se uložit blokování." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." -msgstr "Žádné takové oznámení." +msgstr "Žádný takový uživatel." -#: actions/blockedfromgroup.php:97 -#, fuzzy, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format msgid "%s blocked profiles" -msgstr "Uživatel nemá profil." +msgstr "profily blokovány skupinou %s" -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%s a přátelé" +msgstr "blokované profily %1$s, strana %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "Seznam uživatelů blokovaných od připojení k této skupině." -#: actions/blockedfromgroup.php:288 -#, fuzzy +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" -msgstr "Žádný takový uživatel." +msgstr "Odblokovat uživatele ze skupiny" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 -msgid "Unblock" -msgstr "" - -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 #, fuzzy +msgctxt "BUTTON" +msgid "Unblock" +msgstr "Odblokovat" + +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" -msgstr "Žádný takový uživatel." +msgstr "Odblokovat tohoto uživatele" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Odpovědi na %s" +msgstr "Poslat na %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Žádný potvrzující kód." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Potvrzující kód nebyl nalezen" -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Tento potvrzující kód vám nepatří!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 -#, fuzzy, php-format +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 +#, php-format msgid "Unrecognized address type %s." -msgstr "Neznámý typ adresy %s" +msgstr "Neznámý typ adresy %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Adresa již byla potvrzena" +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Nelze aktualizovat uživatele" -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Nelze smazat potvrzení emailu" - -#: actions/confirmaddress.php:146 +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 #, fuzzy -msgid "Confirm address" -msgstr "Potvrď adresu" +msgid "Could not delete address confirmation." +msgstr "Nelze smazat potvrzení IM" -#: actions/confirmaddress.php:161 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 +msgid "Confirm address" +msgstr "Heslo znovu" + +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adresa \"%s\" byla potvrzena pro váš účet" -#: actions/conversation.php:99 -#, fuzzy +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" -msgstr "Umístění" +msgstr "Konverzace" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Sdělení" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "Nelze aktualizovat uživatele" +msgstr "Pro vymazání aplikace musíte být přihlášen." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Sdělení nemá profil" +msgstr "Aplikace nebyla nalezena." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste vlastníkem této aplikace." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." -msgstr "" +msgstr "Nastal problém s vaším session tokenem." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" -msgstr "Žádné takové oznámení." +msgstr "Odstranit aplikaci" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " "connections." msgstr "" +"Jste si jisti, že chcete smazat tuto aplikaci? To vymaže všechny data o " +"aplikace z databáze, včetně všech existujících uživatelských spojení." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy +#: actions/deleteapplication.php:161 msgid "Do not delete this application" -msgstr "Žádné takové oznámení." +msgstr "Neodstraňujte tuto aplikaci" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 -#, fuzzy +#: actions/deleteapplication.php:167 msgid "Delete this application" -msgstr "Odstranit toto oznámení" +msgstr "Odstranit tuto aplikaci" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Musíte být přihlášen abyste mohl opustit skupinu." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Žádná přezdívka nebo ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Nejste členem této skupiny." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Nelze aktualizovat skupinu." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s opustil(a) skupinu %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Smazat uživatele" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Jste si jisti, že chcete smazat tohoto uživatele? To odstraní všechny údaje " +"o uživateli z databáze, bez zálohy." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Neodstraňujte toto oznámení" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Odstranit tohoto uživatele" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Nepřihlášen" +msgstr "Nejste přihlášen(a)." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Toto oznámení nelze odstranit." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Chystáte se trvale odstranit oznámení. Jakmile se tak stane, nemůže se " +"odestát." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" -msgstr "" +msgstr "Odstranit oznámení" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" -msgstr "" +msgstr "Jste si jisti, že chcete smazat tohoto oznámení?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 -#, fuzzy +#: actions/deletenotice.php:159 msgid "Do not delete this notice" -msgstr "Žádné takové oznámení." +msgstr "Neodstraňujte toto oznámení" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Odstranit toto oznámení" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nemůžete odstranit uživatele." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Můžete použít místní odebírání." +msgstr "Můžete smazat pouze místní uživatele." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" -msgstr "" +msgstr "Smazat uživatele" #: actions/deleteuser.php:136 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 "" +"Jste si jisti, že chcete smazat tohoto uživatele? To odstraní všechny údaje " +"o uživateli z databáze, bez zálohy." #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 @@ -1126,546 +1854,576 @@ msgstr "Odstranit tohoto uživatele" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Vzhled" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 -#, fuzzy +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." -msgstr "Neplatná velikost" +msgstr "Neplatná URL loga." -#: actions/designadminpanel.php:322 -#, fuzzy, php-format +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Neplatná URL loga." + +#: actions/designadminpanel.php:344 +#, php-format msgid "Theme not available: %s." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "Téma není k dispozici: %s." -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Změnit heslo" +msgstr "Změňte logo" -#: actions/designadminpanel.php:431 -#, fuzzy +#: actions/designadminpanel.php:453 msgid "Site logo" -msgstr "Nové sdělení" +msgstr "Logo stránek" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 #, fuzzy +msgid "SSL logo" +msgstr "Logo stránek" + +#: actions/designadminpanel.php:469 msgid "Change theme" -msgstr "Změnit" +msgstr "Změnit téma" -#: actions/designadminpanel.php:460 -#, fuzzy +#: actions/designadminpanel.php:486 msgid "Site theme" -msgstr "Nové sdělení" +msgstr "Téma stránek" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." -msgstr "" +msgstr "Téma stránek" -#: actions/designadminpanel.php:467 -#, fuzzy +#: actions/designadminpanel.php:493 msgid "Custom theme" -msgstr "Nové sdělení" +msgstr "Vlastní téma" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Můžete nahrát vlastní StatusNet téma jako .ZIP archiv." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" -msgstr "" +msgstr "Změnit obrázek na pozadí" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Pozadí" -#: actions/designadminpanel.php:496 -#, fuzzy, php-format +#: actions/designadminpanel.php:522 +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" +msgstr "" +"Můžete nahrát obrázek na pozadí stránek. Maximální velikost souboru je %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" -msgstr "" +msgstr "zap." #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" -msgstr "" +msgstr "vyp." -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." -msgstr "" +msgstr "Zapněte nebů vypněte obrázek na pozadí." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" -msgstr "" +msgstr "Dlaždicovat obrázek na pozadí" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Změnit barvy" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Obsah" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" -msgstr "Hledat" +msgstr "Boční panel" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" -msgstr "" +msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Odkazy" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" -msgstr "" +msgstr "Rozšířené" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "" +msgstr "Vlastní CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" -msgstr "" +msgstr "Použít výchozí" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" -msgstr "" +msgstr "Obnovit výchozí vzhledy" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" -msgstr "" +msgstr "Reset zpět do výchozího" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Uložit" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" -msgstr "" +msgstr "Uložit vzhled" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Toto oznámení není oblíbeno!" #: actions/disfavor.php:94 msgid "Add to favorites" msgstr "Přidat do oblíbených" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Žádný takový dokument." +msgstr "Žádný dokument \"%s\" neexistuje" -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Sdělení nemá profil" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Upravit aplikaci" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." -msgstr "" +msgstr "Pro úpravy aplikace musíte být přihlášen." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." -msgstr "Žádné takové oznámení." +msgstr "Aplikace neexistuje." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." -msgstr "" +msgstr "Pomocí tohoto formuláře můžete upravovat svou aplikaci." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." -msgstr "" +msgstr "Název je povinný." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" +msgid "Name is too long (maximum 255 characters)." +msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)." -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." -msgstr "Přezdívku již někdo používá. Zkuste jinou" +msgstr "Název již někdo používá. Zkuste jinou" -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." -msgstr "Odběry" +msgstr "Popis je třeba." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." -msgstr "" +msgstr "URL zdroje je příliš dlouhý." -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." -msgstr "Stránka není platnou URL." +msgstr "URL zdroje není platný." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." -msgstr "" +msgstr "Organizace je nutná." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" +msgid "Organization is too long (maximum 255 characters)." +msgstr "Organizace je příliš dlouhá (max 255 znaků)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." -msgstr "" +msgstr "Homepage organizace je nutná." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." -msgstr "" +msgstr "Callback je příliš dlouhý." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." -msgstr "" +msgstr "Callback URL není platný." -#: actions/editapplication.php:258 -#, fuzzy +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze aktualizovat aplikaci." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" -msgstr "Upravit %s skupinu" +msgstr "Upravit skupinu %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "" +msgstr "K vytvoření skupiny musíte být přihlášen." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." -msgstr "" +msgstr "K úpravě skupiny musíte být admin." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." -msgstr "" +msgstr "Použijte tento formulář k úpravám skupiny." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 -#, fuzzy, php-format +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 +#, php-format msgid "Invalid alias: \"%s\"" -msgstr "Neplatná adresa '%s'" +msgstr "Neplatný alias: \"%s\"" -#: actions/editgroup.php:258 -#, fuzzy +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze aktualizovat skupinu." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." -msgstr "Nelze uložin informace o obrázku" +msgstr "Nelze vytvořit aliasy." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Nastavení uloženo." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Nastavení E-mailu" +msgstr "Nastavení e-mailu" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "Spravovat posílání e-mailů z %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" -msgstr "Potvrzení emailové adresy" +msgstr "E-mailová adresa" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." -msgstr "" +msgstr "Aktuální potvrzená e-mailová adresa." #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" msgstr "Odstranit" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" +"Čakám na potvrzení této adresy. Podívejte se v příchozí poště (a spamu!) po " +"e-mailu s dalšími instrukcemi." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Zrušit" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "E-mailová adresa, ve stylu \"UzivatelskeJmeno@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 -#, fuzzy msgctxt "BUTTON" msgid "Add" msgstr "Přidat" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" -msgstr "" +msgstr "Příchozí e-mail" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Chci posílat oznámení e-mailem." #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "Pošlete e-mail na tuto adresu pro poslání nového oznámení." + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "Vytvoření nové e-mailové adresy pro zasílání, ruší starou." #. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 -#, fuzzy +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" -msgstr "Nový" +msgstr "Nová" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Nastavení" +msgstr "Nastavení e-mailu" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "Pošlete mi oznámení o nových přihlášeních e-mailem." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Pošlete mi e-mail, když někdo přidá moje oznámení mezi oblíbené." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Pošlete mi e-mail, když mi někdo pošle soukromou zprávu." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "Pošlete mi e-mail, když mi někdo pošle \"@-odpověď\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Povolit přátelům mě pošťouchnout a poslat mi email." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "Publikovat MicroID pro mou e-mailovou adresu." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "Nastavení uloženo" +msgstr "Email nastavení uloženo." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." -msgstr "" +msgstr "Chybí e-mailová adresa." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" -msgstr "" +msgstr "Nepodařilo se normalizovat (kanonizovat) e-mailovou adresu." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Není platnou mailovou adresou." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." -msgstr "" +msgstr "To je již vaší e-mailovou adresou." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." -msgstr "" +msgstr "Tato e-mailová adresa již patří jinému uživateli." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "Nelze vložit potvrzující kód" +msgstr "Nelze vložit potvrzující kód." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" +"Potvrzovací kód byl zaslán na e-mailovou adresu, kterou jste přidali. " +"Zkontrolujte vaše e-mailové schránky (a spam box!) pro kód a instrukce, jak " +"jej použít." #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." -msgstr "Nečeká žádné potvrzení na zrušení." +msgstr "Žádné potvrzení ke zrušení." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy +#: actions/emailsettings.php:459 msgid "That is the wrong email address." -msgstr "Toto je špatná IM adresa" +msgstr "Toto je špatná e-mailová adresa." + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Nelze smazat potvrzení emailu" #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Potvrď zrušení" +msgstr "Potvrzení e-mailu zrušeno." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." -msgstr "" +msgstr "To není vaše e-mailová adresa." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Adresa byla odstraněna" +msgstr "E-mailová adresa byla odstraněna." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." -msgstr "" +msgstr "Nemáte příchozí e-mailovou adresu." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." -msgstr "" +msgstr "Nelze aktualizovat záznam uživatele." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "" +msgstr "Příchozí e-mailová adresa odstraněna." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." -msgstr "" +msgstr "Přidána nová příchozí e-mailová adresa." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Tuto hlášku již máte v oblíbených." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "" +msgstr "Znemilostnit oblíbenou" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 -#, fuzzy msgid "Popular notices" -msgstr "Žádné takové oznámení." +msgstr "Populární oznámení" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Žádné takové oznámení." +msgstr "Populární oznámení, strana %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Právě teď nejpopulárnější oznámení na stránkách." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"Oblíbená oznámení se objeví na této stránce, ale nikdo zatím oblíbené ještě " +"nemá." #: 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 "" +"Buďte první, kdo přidá oznámení k oblíbeným kliknutím na tlačítko Oblíbené " +"vedle kteréhokoli oznámení které se vám líbí." #: actions/favorited.php:156 #, php-format @@ -1673,59 +2431,56 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a být první, kdo přidá " +"oznámení k oblíbeným!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "oblíbená oznámení uživatele %s" #: actions/favoritesrss.php:115 -#, fuzzy, php-format +#, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "Mikroblog od %s" +msgstr "Aktualizace oblíbené uživatelem %1$s na %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "" +msgstr "Nejlepší uživatelé" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Nejlepší uživatelé, strana %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "Výběr některých skvělých uživatelů na %s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Žádné oznámení" +msgstr "Chybí ID oznámení." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Žádné oznámení" +msgstr "Žádné takové oznámení." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Žádný takový dokument." +msgstr "Bez příloh." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Žádný takový dokument." +msgstr "Žádné nahrané přílohy." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" -msgstr "Nečekaná odpověď." +msgstr "Nečekaná odpověď!" #: actions/finishremotesubscribe.php:80 -#, fuzzy msgid "User being listened to does not exist." msgstr "Úživatel, kterému nasloucháte neexistuje." @@ -1735,92 +2490,84 @@ msgstr "Můžete použít místní odebírání." #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "Uživatel vaše odebírání zablokoval." #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Neautorizován." +msgstr "Nejste autorizován." #: actions/finishremotesubscribe.php:113 -#, fuzzy msgid "Could not convert request token to access token." -msgstr "Nelze konvertovat řetězec požadavku na přístupový řetězec." +msgstr "Nemohu převést žádost token na přístup token." #: actions/finishremotesubscribe.php:118 -#, fuzzy msgid "Remote service uses unknown version of OMB protocol." -msgstr "Neznámá verze OMB protokolu." +msgstr "Vzdálená služba používá neznámou verzi protokolu OMB." -#: actions/finishremotesubscribe.php:138 -#, fuzzy +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." -msgstr "Chyba při aktualizaci vzdáleného profilu" +msgstr "Chyba při aktualizaci vzdáleného profilu." #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "Žádné takové oznámení." +msgstr "Žádný takový soubor." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Žádné takové oznámení." +msgstr "Nelze přečíst soubor." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Neplatná velikost" +msgstr "Neplatná role." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Tato role je vyhrazena a nelze jí nastavit." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Neodeslal jste nám profil" +msgstr "Nemůžete dávat uživatelské role na této stránce." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Uživatel nemá profil." +msgstr "Uživatel již tuto roli má." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." -msgstr "" +msgstr "Nebyl vybrán profil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." -msgstr "" +msgstr "Neexistuje profil s tímto ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." -msgstr "" +msgstr "Nebyla vybrána skupina." #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "" +msgstr "Pouze admin může blokovat členy skupiny." #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "Uživatel nemá profil." +msgstr "Uživatel již je zablokován ze skupiny." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "Neodeslal jste nám profil" +msgstr "Uživatel není členem skupiny." -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "Žádný takový uživatel." +msgstr "Zablokovat uživatele ze skupiny" #: actions/groupblock.php:160 #, php-format @@ -1829,52 +2576,53 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" +"Jste si jisti, že chcete blokovat uživatele \"%1$s\" ze skupiny \"%2$S\"? " +"Bude odstraněn ze skupiny a nebude moci přispívat nebo se přihlásit k odběru." #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 -#, fuzzy msgid "Do not block this user from this group" -msgstr "Nelze přesměrovat na server: %s" +msgstr "Neblokujte tohoto uživatele z této skupiny" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 -#, fuzzy msgid "Block this user from this group" -msgstr "Žádný takový uživatel." +msgstr "Blokovat tohoto uživatele z této skupiny" #: actions/groupblock.php:206 msgid "Database error blocking user from group." -msgstr "" +msgstr "Chyba databáze při blokování uživatele ze skupiny." #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Žádné id" +msgstr "Chybí ID." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "" +msgstr "K úpravě skupiny musíte být přihlášen." #: actions/groupdesignsettings.php:144 msgid "Group design" -msgstr "" +msgstr "Vzhled skupiny" #: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" +"Přizpůsobit vzhled skupiny obrázkem na pozadí a barevnou paletou vašeho " +"výběru." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze uložit vzhled." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "Nastavení uloženo" +msgstr "Nastavení vzhledu uloženo." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" @@ -1885,69 +2633,84 @@ msgstr "Logo skupiny" msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +"Můžete nahrát obrázek loga pro vaši skupinu. Maximální velikost souboru je %" +"s." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Upload" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Oříznout" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "" +msgstr "Vyberte čtvercovou oblast obrázku, která bude vaše logo." #: actions/grouplogo.php:399 -#, fuzzy msgid "Logo updated." -msgstr "Obrázek nahrán" +msgstr "Logo aktualizováno." #: actions/grouplogo.php:401 -#, fuzzy msgid "Failed updating logo." -msgstr "Nahrávání obrázku selhalo." +msgstr "Nepodařilo se aktualizovat logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" -msgstr "" +msgstr "členové skupiny %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" -msgstr "" +msgstr "členové skupiny %1$s, strana %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." -msgstr "" +msgstr "Seznam uživatelů v této skupině." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" -msgstr "" +msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 -msgid "Make user an admin of the group" +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" msgstr "" -#: actions/groupmembers.php:519 +#: actions/groupmembers.php:498 +msgid "Make user an admin of the group" +msgstr "Uďelat uživatele adminem skupiny" + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "Mikroblog od %s" +msgstr "Novinky od členů %1$s na %2$s!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1957,7 +2720,7 @@ msgstr "Skupiny" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Skupiny, strana %d" #: actions/groups.php:90 #, php-format @@ -1968,29 +2731,31 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"skupiny na %%%%Site.name%%%% vám umožní najít a mluvit s lidmi podobných " +"zájmů. Po připojení skupiny můžete posílat zprávy všem ostatním členům " +"pomocí syntaxe \"!NazevSkupiny\". Nevidíte skupinu která by se vám líbila? " +"Zkuste ji [vyhledat](%%%%action.groupsearch%%%%) nebo [založit!](%%%%action." +"newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 -#, fuzzy msgid "Create a new group" -msgstr "Vytvořit nový účet" +msgstr "Vytvořit novou skupinu" #: 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 "" -"Hledej uživatele na %%site.name%% podle jejich jména, místa, nebo zájmů. " -"Minimální délka musí být alespoň 3 znaky" +"Hledejte skupiny na %%site.name%% podle jejich názvu, místa, nebo popisu. " +"Oddělte slova mezerami; musí být nejméně 3 znaky dlouhá." #: actions/groupsearch.php:58 -#, fuzzy msgid "Group search" -msgstr "Hledání lidí" +msgstr "Hledání skupin" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." msgstr "Žádné výsledky." @@ -2000,6 +2765,8 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" +"Pokud nemůžete najít skupinu, kterou hledáte, můžete ji [vytvořit](%%action." +"newgroup%%) sami." #: actions/groupsearch.php:85 #, php-format @@ -2007,26 +2774,28 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"Proč si ne[zaregistrovat účet](%% action.register%%) a ne[vytvořit skupinu](%" +"%action.newgroup%%) sami!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "Pouze admin může odblokovat členy skupiny." -#: actions/groupunblock.php:95 -#, fuzzy +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "Uživatel nemá profil." +msgstr "Uživatel není blokován ze skupiny." -#: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." -msgstr "Chyba při ukládaní uživatele" +msgstr "Chyba při odstraňování bloku." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "IM nastavení" +msgstr "Nastavení IM" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2037,25 +2806,23 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Můžete odesílat nebo přijámat sdělení pomocí Jabber/GTalk [zpráv](%%doc.im%" -"%).Zadejte svou adresu níže." +"Můžete odesílat nebo přijámat oznámení pomocí Jabber/GTalk [zpráv](%%doc.im%" +"%) .Zadejte svou adresu a nastavení níže." #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. #: actions/imsettings.php:94 -#, fuzzy msgid "IM is not available." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "IM není k dispozici." #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" msgstr "IM adresa" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." -msgstr "Potvrzené Jabber/GTalk adresy" +msgstr "Aktuální potvrzená Jabber / GTalk adresa." #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -2065,214 +2832,262 @@ msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" -"Čakám na potvrzení této adresy. Zkontrolujte zprávy na vašem Jabber/GTalk " -"účtu. (Přidal jste si %s do vašich kontaktů?)" +"Čakám na potvrzení této adresy. Hledejte zprávu s dalšími instrukcemi na " +"vašem Jabber/GTalk účtu. (Přidal jste si %s do vašich kontaktů?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format 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 "" -"Jabber nebo GTalk adresy, například \"jmeno@example.org\". Neprve se " -"ujistěte že jste přidal %s do vašeho seznamu kontaktů." +"Jabber nebo GTalk adresa, například \"jmeno@example.org\". Neprve se " +"ujistěte že jste přidal %s do vašeho seznamu kontaktů ve vašem IM klientu " +"nebo na GTalku." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Nastavení" +msgstr "Nastavení IM" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Zasílat oznámení pomocí Jabber/GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Poslat oznámení, když se změní můj Jabber/Gtalk status." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" +"Pošlete mi odpovědi přes Jabber / GTalk od lidí, ke kterým nejsem přihlášen." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "Publikovat MicroID pro mou Jabber / GTalk adresu." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Nastavení uloženo" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." -msgstr "Žádné Jabber ID." +msgstr "Chybí Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "Nelze normalizovat JabberID" +msgstr "Nelze normalizovat tento JabberID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Není platným Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." -msgstr "Toto je již vaše Jabber" +msgstr "Toto je již vaše Jabber ID" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID již patří jinému uživateli" #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Ověřující kód byl poslán na vloženou IM adresu. Musíte prokázat %s pro " -"posílání zpráv." +"Ověřující kód byl poslán na vloženou IM adresu. Musíte povolit aby vám %s " +"posílal zprávy." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Toto je špatná IM adresa" #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." -msgstr "Nelze smazat potvrzení emailu" +msgstr "Nelze smazat potvrzení IM" #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Potvrď zrušení" +msgstr "IM potvrzení zrušeno." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "Toto není váš Jabber" +msgstr "Toto není váš Jabber ID" #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Adresa byla odstraněna" +msgstr "IM adresa byla odstraněna." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "" +msgstr "Pošta doručená pro %1$s - strana %2$d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Doručená pošta pro %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "To je váš inbox, obsahuje seznam příchozích soukromých zpráv." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." -msgstr "" +msgstr "Pozvánky byly zakázány." -#: actions/invite.php:41 -#, fuzzy, php-format +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 +#, php-format msgid "You must be logged in to invite other users to use %s." -msgstr "Nelze aktualizovat uživatele" +msgstr "Musíte být přihlášen aby jste mohl zvát další uživatele k použití %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" -msgstr "" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." +msgstr "Neplatný e-mail: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" +msgstr "Pozvánka(y) zaslána(y)" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" -msgstr "" +msgstr "Pozvat nové uživatele" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Jste již přihlášeni k těmto uživatelům:" +msgstr[1] "Jste již přihlášeni k těmto uživatelům:" +msgstr[2] "Jste již přihlášeni k těmto uživatelům:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "Tito lidé jsou již uživatelé a jste k nim automaticky přihlášen:" +msgstr[1] "Tito lidé jsou již uživatelé a jste k nim automaticky přihlášen:" +msgstr[2] "Tito lidé jsou již uživatelé a jste k nim automaticky přihlášen:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Pozvánka (y) zaslány následujícím osobám:" +msgstr[1] "Pozvánka (y) zaslány následujícím osobám:" +msgstr[2] "Pozvánka (y) zaslány následujícím osobám:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Budete upozorněni, když vaši pozvaní lidé pozvání přijmout a zaregistrují se " +"na tomto webu. Díky za zvetšení komunity!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"Použijte tento formulář k pozvání svých přátel a kolegů k používání této " +"služby." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" -msgstr "" +msgstr "E-mailové adresy" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" -msgstr "" +msgstr "Adresy přátel k pozvání (jedna na řádek)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" -msgstr "" +msgstr "Osobní zpráva" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "Volitelně přidat osobní zprávu." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 -#, fuzzy +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Odeslat" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s vás pozval, abyste se k nim připojil(a) na %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2302,38 +3117,160 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +" %1$s vás pozval, abyste se k nim připojil(a) na %2$s (%3$s). \n" +"\n" +"%2$s je mikro-blogovací služba, která vám umožní být v kontaktu s lidmi, " +"které znáte, a s lidmi, kteří vás zajímají. \n" +"\n" +"Můžete také sdílet novinky o sobě, své myšlenky, nebo svůj online život s " +"lidmi, kteří o vás vědí. Je to také skvělé pro setkávání s novými lidmi, " +"kteří sdílejí vaše zájmy. \n" +"\n" +"%1$s řekl: \n" +"\n" +"%4$s \n" +"\n" +"Můžete vidět profil uživatele %1$s na %2$s zde: \n" +"\n" +"%5$s \n" +"\n" +"Pokud si chcete službu vyzkoušet, klikněte na odkaz níže k přijmutí " +"pozvání. \n" +"\n" +"%6$s \n" +"\n" +"Pokud ne, můžete tuto zprávu ignorovat. Děkujeme za vaši trpělivost a čas. \n" +"\n" +"S pozdravem, %2$s \n" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Musíte být přihlášen pro vstup do skupiny." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Žádná přezdívka." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "" +msgstr "%1$s se připojil(a) ke skupině %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." +msgstr "Musíte být přihlášen abyste mohl opustit skupinu." + +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 +msgid "You are not a member of that group." +msgstr "Nejste členem této skupiny." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "%1$s opustil(a) skupinu %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 -#, fuzzy -msgid "You are not a member of that group." -msgstr "Neodeslal jste nám profil" +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format -msgid "%1$s left group %2$s" -msgstr "%1 statusů na %2" +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Neplatné uvítací text. Max délka je 255 znaků." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Soukromí" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2344,9 +3281,8 @@ msgid "Incorrect username or password." msgstr "Neplatné jméno nebo heslo" #: actions/login.php:154 actions/otp.php:120 -#, fuzzy msgid "Error setting user. You are probably not authorized." -msgstr "Neautorizován." +msgstr "Chyba při nastavení uživatele. Pravděpodobně nejste autorizován." #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2354,15 +3290,16 @@ msgstr "Přihlásit" #: actions/login.php:249 msgid "Login to site" -msgstr "" +msgstr "Přihlásit se na stránky" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Zapamatuj si mě" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" -msgstr "Příště automaticky přihlásit; ne pro počítače, které používá " +msgstr "" +"Příště automaticky přihlásit; ne pro počítače, které používá více lidí! " #: actions/login.php:269 msgid "Lost or forgotten password?" @@ -2372,119 +3309,126 @@ msgstr "Ztracené nebo zapomenuté heslo?" msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." -msgstr "Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo." +msgstr "" +"Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo než budete " +"měnit svá nastavení." #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." -msgstr "Neplatné jméno nebo heslo" +msgstr "Přihlásit se pomocí svého uživatelského jména a hesla." #: actions/login.php:295 -#, fuzzy, php-format +#, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" -"Přihlaste se pomocí vaší prezdívky a hesla. Zatím nejste zaregistrován? " -"[Registrovat](%%action.register%%) nový účet, nebo vyzkoušejte [OpenID](%%" -"action.openidlogin%%)." +"Zatím nemáte uživatelské jméno? [Registrovat](%%action.register%%) nový účet." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "Pouze admin může udělat adminem dalšího uživatele." #: actions/makeadmin.php:96 -#, fuzzy, php-format +#, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "Uživatel nemá profil." +msgstr "%1$s je již admin pro skupinu \"%2$S\"." #: actions/makeadmin.php:133 -#, fuzzy, php-format +#, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Nelze vytvořit OpenID z: %s" +msgstr "Nelze získat záznam o členství %1$s ve skupině %2$s." #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Uživatel nemá profil." +msgstr "Nelze učinit %1$s adminem skupiny %2$s." #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." -msgstr "Žádné výsledky." +msgstr "V současné době žádný stav." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" -msgstr "Žádné takové oznámení." +msgid "New application" +msgstr "Nová aplikace" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." -msgstr "" +msgstr "Musíte být přihlášen k registraci aplikace." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." -msgstr "" +msgstr "Použijte tento formulář pro registraci nové aplikace." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." -msgstr "" +msgstr "Zdrojové URL je nutné." -#: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." -msgstr "Nelze uložin informace o obrázku" +msgstr "Nelze vytvořit aplikaci." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nová skupina" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "" +msgstr "Použijte tento formulář k vytvoření nové skupiny." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" -msgstr "" +msgstr "Nová zpráva" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "" +"Nemůžete odesílat zprávy tomuto uživateli. (musíte být vzájemně prihlášení)" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" -msgstr "Žádný obsah!" +msgstr "Chybí obsah!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." -msgstr "" +msgstr "Neuveden příjemce." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" +msgstr "Neposílejte si zprávu, potichu si ji pro sebe řekněte." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" -msgstr "" +msgstr "Zpráva odeslána" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." -msgstr "" +msgstr "Přímá zpráva pro %s odeslána." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" -msgstr "" +msgstr "Ajax Chyba" #: actions/newnotice.php:69 msgid "New notice" msgstr "Nové sdělení" -#: actions/newnotice.php:217 -#, fuzzy +#: actions/newnotice.php:230 msgid "Notice posted" -msgstr "Sdělení" +msgstr "Sdělení posláno" #: actions/noticesearch.php:68 #, php-format @@ -2492,17 +3436,17 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -"Hledej sdělení na %%site.name%% podle obsahu. Minimální délka musí být " -"alespoň 3 znaky" +"Hledej sdělení na %%site.name%% podle obsahu. Oddělte výrazy mezerami; musí " +"mít alespoň 3 znaky" #: actions/noticesearch.php:78 msgid "Text search" -msgstr "Vyhledávání textu" +msgstr "Text vyhledávání" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " Hledej \"%s\" ve Streamu" +msgstr "Výsledky hledání \"%1$s\" na %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2510,6 +3454,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Buďte první kdo [příspěje](%%%%action.newnotice%%%%?status_textarea=%s) na " +"toto téma!" #: actions/noticesearch.php:124 #, php-format @@ -2517,195 +3463,227 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Proč si ne [zaregistrovat účet](%%%%action.register%%%%) a být první, kdo " +"[příspěje](%%%%action.newnotice %%%%?status_textarea =%s) na toto téma!" #: actions/noticesearchrss.php:96 -#, fuzzy, php-format +#, php-format msgid "Updates with \"%s\"" -msgstr "Mikroblog od %s" +msgstr "Hlášky s \"%s\"" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Všechny položky obsahující \"%s\"" +msgstr "Aktualizace odpovídající hledanému výrazu \"%1$s\" na %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" +"Tento uživatel neumožňuje pošťouchnutí nebo nepotvrdil(a) nebo nenestavil(a) " +"svůj e-mail." #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Pošťouchnutí posláno" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Pošťouchnutí posláno!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "" +msgstr "Musíte být přihlášen k vypsání seznamu aplikací." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" -msgstr "" +msgstr "OAuth aplikace" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "" +msgstr "Aplikace které jste zaregistrovali" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "Ještě jste nezaregistrovali žádné aplikace." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" -msgstr "" +msgstr "Propojené aplikace" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 -#, fuzzy +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste uživatel této aplikace." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Nelze zrušit přístup aplikace %s." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "" +msgstr "Žádným aplikacím jste nepovolili používat váš účet." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Sdělení nemá profil" +msgstr "Uživatel nemá profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1 statusů na %2" +msgstr "status %1 na %2" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, fuzzy, php-format +#: actions/oembed.php:168 +#, php-format msgid "Content type %s not supported." -msgstr "Připojit" +msgstr "Typ obsahu %s není podporován." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." -msgstr "" +msgstr "Only %s URLs over plain HTTP please." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." -msgstr "" +msgstr "Nepodporovaný formát dat." #: actions/opensearch.php:64 msgid "People Search" -msgstr "" +msgstr "Hledání lidí" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "" +msgstr "Hledání oznámení" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Nastavení" +msgstr "Další nastavení" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "Správa různých dalších možností." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "" +msgstr " (Služba zdarma)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" -msgstr "" - -#: actions/othersettings.php:117 -msgid "Automatic shortening service to use." -msgstr "" +msgstr "Zkrácovat URL s" +#. TRANS: Tooltip for for dropdown with URL shortener services. #: actions/othersettings.php:122 -#, fuzzy +msgid "Automatic shortening service to use." +msgstr "Služba automatického zkracování, kterou použít." + +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "Nastavené Profilu" +msgstr "Zobrazit vzhledy profilu" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." -msgstr "" +msgstr "Zobrazit nebo skrýt vzhledy profilu." -#: actions/othersettings.php:153 +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 #, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "adresa služby zkracování URL je příliš dlouhá (max. 50 znaků)." #: actions/otp.php:69 -#, fuzzy msgid "No user ID specified." -msgstr "Nové sdělení" +msgstr "Nebylo zadáno uživatelské ID." #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "Nové sdělení" +msgstr "Přihlašovací token nezadán." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Nebylo vráceno žádné URL profilu od servu." +msgstr "Nepožadován přihlašovací token." #: actions/otp.php:95 -#, fuzzy msgid "Invalid login token specified." -msgstr "Neplatný obsah sdělení" +msgstr "Neplatný přihlašovací token." #: actions/otp.php:104 msgid "Login token expired." -msgstr "" +msgstr "Přihlašovací token vypršel." #: actions/outbox.php:58 #, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "" +msgstr "Odeslaná pošta uživatele %1$s - strana %2$d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "Odeslané uživatele %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"Toto je váš outbox, který obsahuje seznam soukromých zpráv které jste " +"odeslali." #: actions/passwordsettings.php:58 msgid "Change password" msgstr "Změnit heslo" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Změnit heslo" +msgstr "Změňte své heslo." #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "Heslo uloženo" +msgstr "Změna hesla" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2720,9 +3698,9 @@ msgid "6 or more characters" msgstr "6 a více znaků" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" -msgstr "Heslo znovu" +msgstr "Potvrdit" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" @@ -2732,21 +3710,21 @@ msgstr "Stejné jako heslo výše" msgid "Change" msgstr "Změnit" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Heslo musí být alespoň 6 znaků dlouhé" -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Hesla nesouhlasí" #: actions/passwordsettings.php:165 msgid "Incorrect old password" -msgstr "Neplatné heslo" +msgstr "Nesprávné staré heslo" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." -msgstr "Chyba při ukládaní uživatele; neplatný" +msgstr "Chyba při ukládaní uživatele; neplatný." #: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." @@ -2756,168 +3734,293 @@ msgstr "Nelze uložit nové heslo" msgid "Password saved." msgstr "Heslo uloženo" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" +msgstr "Cesty" + +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "" - -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "Adresář témat není čitelný: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "Nelze zapisovat do adresáře avatarů: %s." -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format msgid "Background directory not writable: %s." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "Nelze zapisovat do adresáře pozadí: %s." -#: actions/pathsadminpanel.php:177 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, php-format msgid "Locales directory not readable: %s." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "Locales adresář není čitelný: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "Neplatný SSL server. Maximální délka je 255 znaků." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" -msgstr "" +msgstr "Stránky" -#: actions/pathsadminpanel.php:238 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" -msgstr "Obnovit" +msgstr "Server" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." -msgstr "" +msgstr "Hostname (jméno) serveru stránek." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" -msgstr "" +msgstr "Cesta" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" -msgstr "Nové sdělení" +msgid "Site path." +msgstr "Cesta ke stránkám (za jménem serveru)" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "adresář tématu" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." +msgstr "Cesta k adresáři locales" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" -msgstr "" +msgstr "Hezké URL" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" - -#: actions/pathsadminpanel.php:259 -msgid "Theme" -msgstr "" - -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "" - -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" +msgstr "Použijte Fancy (více čitelné a zapamatovatelné) URL?" #: actions/pathsadminpanel.php:272 -msgid "Theme directory" +msgid "Theme" +msgstr "Téma" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Téma stránek" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:279 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "SSL server" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 #, fuzzy +msgid "SSL path" +msgstr "Cesta ke stránkám (za jménem serveru)" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "adresář tématu" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Cesta k adresáři locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 msgid "Avatars" -msgstr "Obrázek" +msgstr "Avatary" -#: actions/pathsadminpanel.php:284 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 msgid "Avatar server" -msgstr "Nastavení" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "Obrázek nahrán" - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "Obrázek nahrán" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Obnovit" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "Sdělení" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" +msgstr "Server s avatary" +#. TRANS: Tooltip for field label in Paths admin panel. #: actions/pathsadminpanel.php:335 #, fuzzy -msgid "SSL server" -msgstr "Obnovit" +msgid "Server for avatars." +msgstr "Téma stránek" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Cesta k avatarům" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Nahrávání obrázku selhalo." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Adresář avatarů" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Cesta k adresáři locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Pozadí" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Téma stránek" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 #, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Cesta k adresáři locales" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Přílohy" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Téma stránek" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Bez příloh." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Téma stránek" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Cesta k adresáři locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nikdy" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Někdy" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Vždy" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Použít SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Kdy použít SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." +msgstr "Server kam směrovat SSL žádosti" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" -msgstr "Nové sdělení" +msgstr "Uložit cesty" #: actions/peoplesearch.php:52 #, php-format @@ -2933,194 +4036,236 @@ msgid "People search" msgstr "Hledání lidí" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "Není platnou mailovou adresou." +msgstr "Není platný člověkotag: %s." #: actions/peopletag.php:142 -#, fuzzy, php-format +#, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "Mikroblog od %s" +msgstr "Uživatelé kteří se sami otagovali %1$s - strana %2$d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Neplatný obsah sdělení" +msgstr "Neplatná velikost" #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "Licence hlášky ‘%1$s’ není kompatibilní s licencí webu ‘%2$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Nastavené Profilu" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Zde můžete aktualizovat informace o vašem profilu, aby se lidé o vás mohli " "více dozvědět." -#: actions/profilesettings.php:99 -#, fuzzy +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" -msgstr "Neznámý profil" +msgstr "Nastavené Profilu" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Celé jméno" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Moje stránky" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "Adresa vašich stránek, blogu nebo profilu na jiných stránkách." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Popiš sebe a své zájmy ve 140 znacích" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Popište sebe a své zájmy" +msgstr[1] "Popište sebe a své zájmy" +msgstr[2] "Popište sebe a své zájmy" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Popište sebe a své zájmy" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "O mě" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Umístění" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Místo. Město, stát." -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Sdělit mou aktuální polohu při posílání hlášek" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" -msgstr "" +msgstr "Tagy" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "" +msgstr "Otagujte se (písmena, čísla, -, . a _), oddělené čárkami nebo mezerami" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Jazyk" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" -msgstr "" +msgstr "Preferovaný jazyk" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" -msgstr "" +msgstr "Časové pásmo" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "" +msgstr "V jaké časové zóně se obyčejně nacházíte?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" +"Automaticky se přihlásit k odběru toho kdo se přihlásil ke mně (nejlepší pro " +"ne-lidi)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Umístění příliš dlouhé (maximálně %d znaků)" +msgstr[1] "Umístění příliš dlouhé (maximálně %d znaků)" +msgstr[2] "Umístění příliš dlouhé (maximálně %d znaků)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "" +msgstr "Časové pásmo není vybráno." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "" - -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format -msgid "Invalid tag: \"%s\"" -msgstr "Neplatná adresa '%s'" - -#: actions/profilesettings.php:306 -msgid "Couldn't update user for autosubscribe." -msgstr "" - -#: actions/profilesettings.php:363 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 #, fuzzy -msgid "Couldn't save location prefs." -msgstr "Nelze uložit profil" +msgid "Language is too long (maximum 50 characters)." +msgstr "Jazyk je příliš dlouhý (max. 50 znaků)." -#: actions/profilesettings.php:375 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format +msgid "Invalid tag: \"%s\"" +msgstr "Neplatná velikost" + +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +msgid "Couldn't update user for autosubscribe." +msgstr "Nelze aktualizovat nastavení automatického přihlašování." + +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 +msgid "Couldn't save location prefs." +msgstr "Nelze uložit nastavení umístění." + +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Nelze uložit profil" -#: actions/profilesettings.php:383 -#, fuzzy +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." -msgstr "Nelze uložit profil" +msgstr "Nelze uložit tagy." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Nastavení uloženo" #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)." -msgstr "" +msgstr "Přes limit stránky (%s)." #: actions/public.php:92 msgid "Could not retrieve public stream." -msgstr "" +msgstr "Nepodařilo se získat veřejný proud." #: actions/public.php:130 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Veřejné zprávy" +msgstr "Veřejná časová osa, strana %d" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Veřejné zprávy" #: actions/public.php:160 -#, fuzzy msgid "Public Stream Feed (RSS 1.0)" -msgstr "Veřejný Stream Feed" +msgstr "Veřejný Stream Feed (RSS 1.0)" #: actions/public.php:164 -#, fuzzy msgid "Public Stream Feed (RSS 2.0)" -msgstr "Veřejný Stream Feed" +msgstr "Veřejný Stream Feed (RSS 2.0)" #: actions/public.php:168 -#, fuzzy msgid "Public Stream Feed (Atom)" -msgstr "Veřejný Stream Feed" +msgstr "Veřejný Stream Feed (Atom)" #: actions/public.php:188 #, php-format @@ -3128,16 +4273,18 @@ msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"Tohle je veřejná časová osa %%site.name%%, ale nikdo zatím nic nenapsal." #: actions/public.php:191 msgid "Be the first to post!" -msgstr "" +msgstr "Pošlete něco jako první!" #: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!" #: actions/public.php:242 #, php-format @@ -3147,6 +4294,10 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://" +"status.net/). [Zaregistrujte se](%%action.register%%) a sdílejte hlášky o " +"sobě s přáteli, rodinou a kolegy! ([Čtěte více](%%doc.help%%))" #: actions/public.php:247 #, php-format @@ -3155,36 +4306,52 @@ msgid "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" +"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-" +"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://" +"status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Veřejný Stream Feed" +msgstr "Veřejný tag cloud" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " -msgstr "" +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" +msgstr "Poslední nejpopulárnější značky na %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." -msgstr "" +msgstr "Nikdo ještě neposlal oznámení s [tagem](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" -msgstr "" +msgstr "Pošlete něco jako první!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" -msgstr "" +msgstr "Tag cloud" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -3200,7 +4367,7 @@ msgstr "Není obnovujícím kódem" #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Obnovyt kód pro neznámého uživatele" +msgstr "Obnovovací kód pro neznámého uživatele." #: actions/recoverpassword.php:86 msgid "Error with confirmation code." @@ -3212,25 +4379,27 @@ msgstr "Tento potvrzující kód je příliš starý Prosím zkuste znovu" #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Nemohu aktualizovat uživatele s potvrzenou e-mailovou adresu." #: 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 "" +"Pokud jste zapomněli nebo ztratili své heslo, můžeme zaslat nové na e-" +"mailovou adresu, kterou jste uložili ve vašem účtu." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "Byl jste identifikován. Vložte níže nové heslo. " #: actions/recoverpassword.php:188 msgid "Password recovery" -msgstr "" +msgstr "Obnovení hesla" #: actions/recoverpassword.php:191 msgid "Nickname or email address" -msgstr "" +msgstr "Zadej přezdívku nebo emailovou adresu" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3246,19 +4415,19 @@ msgstr "Resetovat heslo" #: actions/recoverpassword.php:209 msgid "Recover password" -msgstr "Obnovit" +msgstr "Obnovit heslo" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" -msgstr "Žádost o obnovu hesla" +msgstr "Zažádáno o obnovu hesla" #: actions/recoverpassword.php:213 msgid "Unknown action" -msgstr "" +msgstr "Neznámá akce" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" -msgstr "6 a více znaků, a nezapomeňte" +msgstr "6 a více znaků, a nezapomeňte ho!" #: actions/recoverpassword.php:243 msgid "Reset" @@ -3270,7 +4439,7 @@ msgstr "Zadej přezdívku nebo emailovou adresu" #: actions/recoverpassword.php:282 msgid "No user with that email address or username." -msgstr "" +msgstr "Žádný uživatel s touto e-mailovou adresu nebo uživatelským jménem." #: actions/recoverpassword.php:299 msgid "No registered email address for that user." @@ -3285,7 +4454,7 @@ msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" -"Návod jak obnovit heslo byl odeslát na vaší emailovou adresu zaregistrovanou " +"Návod jak obnovit heslo byl odeslán na vaší emailovou adresu zaregistrovanou " "u vašeho účtu." #: actions/recoverpassword.php:357 @@ -3293,14 +4462,15 @@ msgid "Unexpected password reset." msgstr "Nečekané resetování hesla." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Heslo musí být alespoň 6 znaků dlouhé" #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Heslo a potvrzení nesouhlasí" -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Chyba nastavení uživatele" @@ -3308,103 +4478,108 @@ msgstr "Chyba nastavení uživatele" msgid "New password successfully saved. You are now logged in." msgstr "Nové heslo bylo uloženo. Nyní jste přihlášen." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Litujeme, jen pozvaní se mohou registrovat." #: actions/register.php:99 -#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "Chyba v ověřovacím kódu" +msgstr "Litujeme, neplatný kód pozvánky." #: actions/register.php:119 msgid "Registration successful" msgstr "Registrace úspěšná" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrovat" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "" +msgstr "Registrace není povolena." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Emailová adresa již existuje" -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Neplatné jméno nebo heslo" -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"Pomocí tohoto formuláře můžete vytvořit nový účet. Můžete pak posílat " +"oznámení a propojit se s přáteli a kolegy. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "" +msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer. Nutné." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." -msgstr "" +msgstr "6 a více znaků. Nutné." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." -msgstr "" +msgstr "Stejné jako heslo uvedeno výše. Povinné." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Email" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Použije se pouze pro aktualizace, oznámení a obnovu hesla." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "Delší jméno, nejlépe vaše \"skutečné\" jméno" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Adresa vašich stránek, blogu nebo profilu na jiných stránkách." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." -msgstr "" +msgstr "Chápu, že obsah a data %1$S jsou soukromé a důvěrné." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." -msgstr "" +msgstr "Můj text a soubory jsou copyrightovány %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." -msgstr "" +msgstr "Můj text a soubory zůstanou pod mým vlastním copyrightem." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "Všechna práva vyhrazena." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 -#, fuzzy, php-format +#: actions/register.php:546 +#, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -" až na tyto privátní data: heslo, emailová adresa, IM adresa, telefonní " -"číslo." +"Můj text a soubory jsou k dispozici pod %s výjimkou těchto soukromých dat: " +"heslo, e-mailová adresa, IM adresa a telefonní číslo." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3422,12 +4597,28 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"Gratulujeme, %1$s! A Vítejte v %%%%site.name%%%%. Odtud možná budete " +"chtít ...\n" +"\n" +"* Jít na [profil](%2$s) a poslat první zprávu.\n" +"* Přidat [Jabber / GTalk adresu](%%%%action.imsetting %%%%) abyste mohli " +"zasílat oznámení prostřednictvím okamžitých zpráv (IM).\n" +"* [Hledat lidi](%%%%action.peoplesearch%%%%), které znáte, nebo kteří " +"sdílejí vaše zájmy.\n" +"* Aktualizací [nastavení profilu](%%%%action.profilesettings%%%%) o vás více " +"říci ostatním.\n" +"* Pročíst si [online nápovědu](%%%%doc.help%%%%) pro objevení funkcí které " +"jste možná přehlédli.\n" +"\n" +"Díky za registraci a doufáme, že se vám používání této služby bude líbít." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(Měli byste za okamžik obdržet e-mailem zprávu s instrukcemi, jak potvrdit " +"svou e-mailovou adresu.)" #: actions/remotesubscribe.php:98 #, php-format @@ -3438,20 +4629,19 @@ msgid "" msgstr "" "Pro odebírání, se musíte [přihlásit](%%action.login%%), nebo [registrovat](%%" "action.register%%) nový účet. Pokud již máte účet na [kompatibilních " -"mikroblozích](%%doc.openmublog%%), vložte níže asdresu " +"mikroblozích](%%doc.openmublog%%), vložte níže adresu." #: actions/remotesubscribe.php:112 msgid "Remote subscribe" msgstr "Vzdálený odběr" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "Odběr autorizován" +msgstr "Přihlásit se ke vzdálenému uživateli" #: actions/remotesubscribe.php:129 msgid "User nickname" -msgstr "Přezdívka" +msgstr "Přezdívka uživatele" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" @@ -3466,7 +4656,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adresa profilu na jiných kompatibilních mikroblozích." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Odebírat" @@ -3475,73 +4665,68 @@ msgid "Invalid profile URL (bad format)" msgstr "Neplatná adresa profilu (špatný formát)" #: actions/remotesubscribe.php:168 -#, fuzzy msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "Není platnou adresou profilu (není YADIS dokumentem)." +msgstr "" +"Není platnou adresou profilu (není YADIS dokumentem nebo definováno neplatné " +"XRDS)." #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "To je místní profil! Pro přihlášení k odběru se přihlášte." #: actions/remotesubscribe.php:183 -#, fuzzy msgid "Couldn’t get a request token." msgstr "Nelze získat řetězec požadavku." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "Pouze přihlášení uživatelé mohou opakovat oznámení." #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "Nové sdělení" +msgstr "Oznámení neuvedeno." #: actions/repeat.php:76 -#, fuzzy msgid "You can't repeat your own notice." -msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." +msgstr "Nemůžete opakovat své vlastní oznámení." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "Již jste přihlášen" +msgstr "Již jste zopakoval toto oznámení." -#: actions/repeat.php:114 lib/noticelist.php:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "Vytvořit" +msgstr "Opakované" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Vytvořit" +msgstr "Opakované!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Odpovědi na %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Odpovědi na %s" +msgstr "Odpovědi na %1$s, strana %2$d" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed odpovědí pro %s (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed odpovědí pro %s (RSS 2.0)" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Feed sdělení pro %s" +msgstr "Feed odpovědí pro %s (Atom)" #: actions/replies.php:199 #, php-format @@ -3549,6 +4734,8 @@ msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" +"Toto je časová osa ukazující odpovědi na %1$s, ale %2$s, ještě neobdržel " +"žádná oznámení." #: actions/replies.php:204 #, php-format @@ -3556,6 +4743,8 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"Můžete zapojit ostatní uživatele v rozhovoru, přihlaste se k více lidem nebo " +"se [připojit do skupin](%%action.groups%%)." #: actions/replies.php:206 #, php-format @@ -3563,104 +4752,96 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Můžete se pokusit uživatele [%1$s postrčit](../%2$s) nebo [jim něco poslat]" +"(%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "Odpovědi na %s" +msgstr "Odpovědi na %1$s na %2$s!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Neodeslal jste nám profil" +msgstr "Nemůžete rušit uživatelské role na této stránce." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Uživatel nemá profil." +msgstr "Uživatel nemá tuto roli." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Obrázek nahrán" +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "Neodeslal jste nám profil" +msgstr "Nemůžete sandboxovat uživatele na této stránce." #: actions/sandbox.php:72 -#, fuzzy msgid "User is already sandboxed." -msgstr "Uživatel nemá profil." +msgstr "Uživatel je již sandboxován." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" -msgstr "" +msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" -msgstr "" +msgstr "Zpracovávat sessions" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "Máme sami zpracovávat sessions?" #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "Debugování sessions" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "Zapnout výstup pro debugování sessions" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "Nastavení" +msgstr "Uložit Nastavení webu" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." -msgstr "" +msgstr "Musíte být přihlášeni pro zobrazení aplikace." #: actions/showapplication.php:157 -#, fuzzy msgid "Application profile" -msgstr "Sdělení nemá profil" +msgstr "Profil aplikace" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" -msgstr "" +msgstr "Ikona" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 -#, fuzzy +#: lib/applicationeditform.php:190 msgid "Name" -msgstr "Přezdívka" +msgstr "Název" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" -msgstr "Umístění" +msgstr "Organizace" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 -#, fuzzy +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" -msgstr "Odběry" +msgstr "Popis" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiky" @@ -3669,78 +4850,88 @@ msgstr "Statistiky" #, php-format msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" +"Vytvořil %1$s - s \"%2$s\" přístupem ve výchozím nastavení - %3$d uživatelů" #: actions/showapplication.php:213 msgid "Application actions" -msgstr "" +msgstr "Akce aplikace" #: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "Resetovat klíč a tajemství" + +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Odstranit" #: actions/showapplication.php:261 msgid "Application info" -msgstr "" +msgstr "Info o aplikaci" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "" +msgstr "Spotřebitelský klíč" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "" +msgstr "Spotřebitelské tajemství" #: actions/showapplication.php:273 msgid "Request token URL" -msgstr "" +msgstr "Adresa řetězce požadavku" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "" +msgstr "URL Access tokenu" #: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "" +msgstr "Authorizační URL" #: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." -msgstr "" +msgstr "Poznámka: podpora HMAC-SHA1 podpisů. Nepodporujeme plaintext." #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" +"Jste si jisti, že chcete resetovat svůj spotřebitelský klíč a tajemství?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%s a přátelé" +msgstr "Oblíbená oznámení uživatele %1$s, strana %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Nepodařilo se získat oblíbená oznámení." #: actions/showfavorites.php:171 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed oblíbených oznámení uživatele %s (RSS 1.0)" #: actions/showfavorites.php:178 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed oblíbených oznámení uživatele %s (RSS 2.0)" #: actions/showfavorites.php:185 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Feed přítel uživatele: %s" +msgstr "Feed oblíbených oznámení uživatele %s (Atom)" #: actions/showfavorites.php:206 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 "" +"Nemáte dosud vybraná žádná oblíbená oznámení. Abyste si je založili na " +"později nebo na ně upoutali pozornost, klikněte na tlačítko Oblíbené na " +"oznámeních" #: actions/showfavorites.php:208 #, php-format @@ -3748,6 +4939,8 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" +"%s ještě nemá žádná oblíbená oznámení. Napište neco zajímavého co by si " +"přidali do oblíbených :)" #: actions/showfavorites.php:212 #, php-format @@ -3756,85 +4949,113 @@ msgid "" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" +"%s ještě nemá žádná oblíbená oznámení. Proč se ne [zaregistrovat](%%%%action." +"register%%%%) a neposlat neco zajímavého co by si přidali do oblíbených :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." -msgstr "" +msgstr "Toto je způsob, jak sdílet to, co se vám líbí." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" -msgstr "" +msgstr "skupina %s" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "Všechny odběry" +msgstr "skupina %1$s, str. %2$d" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Žádné takové oznámení." +msgstr "Profil skupiny" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" -msgstr "" +msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Poznámka" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" -msgstr "" +msgstr "Aliasy" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" -msgstr "" +msgstr "Akce skupiny" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed sdělení skupiny %s (RSS 1.0" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed sdělení skupiny %s (RSS 2.0)" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Feed sdělení pro %s" +msgstr "Feed sdělení skupiny %s (Atom)" -#: actions/showgroup.php:355 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, php-format msgid "FOAF for %s group" -msgstr "Feed sdělení pro %s" +msgstr "FOAF pro skupinu %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 -#, fuzzy +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" -msgstr "Členem od" +msgstr "Členové" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(nic)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" -msgstr "" +msgstr "Všichni členové" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 #, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "Vytvořit" +msgstr "Vytvořeno" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Členové" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3843,8 +5064,16 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** je skupina uživatelů na %%%%site.name%%%%, [mikro-blogovací](http://" +"drbz.cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji " +"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém " +"životě a zájmech. [Zaregistrujte se](%%%%action.register%%%%) a staňte se " +"členem této skupiny a mnoha dalších! ([Čtěte více](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3852,88 +5081,126 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** je skupina uživatelů na %%%%site.name%%%%, [mikro-blogovací](http://" +"drbz.cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji " +"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém " +"životě a zájmech. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" -msgstr "" +msgstr "Adminové" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." -msgstr "" +msgstr "Žádné takové zprávy." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Pouze odesílatel a příjemce může přečíst tuto zprávu." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Zpráva pro %1$s na %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Zpráva od %1$s na %2$s" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Sdělení" +msgstr "Oznámení smazáno." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, strana %2$d" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Oznámení označená %1$s, strana %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format -msgid " tagged %s" -msgstr "" - -#: actions/showstream.php:79 -#, fuzzy, php-format msgid "%1$s, page %2$d" -msgstr "%s a přátelé" +msgstr "%1$s, strana %2$d" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Feed sdělení pro %s" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení pro %1$s otagovaných %2$s (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Feed oznámení pro %1$s (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení pro %1$s (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení pro %1$s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" -msgstr "" +msgstr "FOAF pro %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "" +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Toto je časová osa pro %1$s, ale %2$s zatím ničím nepřispěli." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" +"Viděli jste v poslední době zajímavého? Nemáte zatím žádné oznámení, teď by " +"byl dobrý čas začít:)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" +"Můžete se pokusit uživatele %1$s postrčit nebo [jim něco poslat](%%%%action." +"newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3941,230 +5208,235 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** má účet na %%%%site.name%%%%, [mikro-blogovací](http://drbz.cz/i/" +"napoveda-faq#mikroblog) službě založené na Free Software nástroji [StatusNet]" +"(http://status.net/). [Zaregistrujte se](%%%%action.register%%%%) a sledujte " +"oznámení od **%s**a mnoha dalších! ([Čtěte více](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" +"**%s** má účet na %%%%site.name%%%%, [mikro-blogovací](http://drbz.cz/i/" +"napoveda-faq#mikroblog) službě založené na Free Software nástroji [StatusNet]" +"(http://status.net/). " -#: actions/showstream.php:305 -#, fuzzy, php-format +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, php-format msgid "Repeat of %s" -msgstr "Odpovědi na %s" +msgstr "Opakování %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "" +msgstr "Na tomto webu nemůžete ztišovat uživatele." #: actions/silence.php:72 -#, fuzzy msgid "User is already silenced." -msgstr "Uživatel nemá profil." +msgstr "Uživatel je už umlčen." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" -msgstr "" +msgstr "Základní nastavení pro tuto stránku StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." -msgstr "" +msgstr "Název webu musí mít nenulovou délku." #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Není platnou mailovou adresou." +msgstr "Musíte mít platnou kontaktní emailovou adresu." #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "Neznámý jazyk \"%s\"." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." -msgstr "" +msgstr "Minimální limit textu je 0 (bez omezení)." #: actions/siteadminpanel.php:171 msgid "Dupe limit must be one or more seconds." -msgstr "" +msgstr "Duplikační limit musí být jedna nebo více sekund." #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "Obecné" #: actions/siteadminpanel.php:224 -#, fuzzy msgid "Site name" -msgstr "Nové sdělení" +msgstr "Název stránky" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "Název vaší stránky, jako \"Mikroblog VašíSpolečnosti\"" #: actions/siteadminpanel.php:229 msgid "Brought by" -msgstr "" +msgstr "Přineseno" #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" -msgstr "" +msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky." #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "Přineseno URL" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" -msgstr "" +msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky." #: actions/siteadminpanel.php:239 -#, fuzzy msgid "Contact email address for your site" -msgstr "Žádný registrovaný email pro tohoto uživatele." +msgstr "Kontaktní e-mailová adresa pro vaše stránky" #: actions/siteadminpanel.php:245 -#, fuzzy msgid "Local" -msgstr "Umístění" +msgstr "Místní" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Výchozí časové pásmo" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Výchozí časové pásmo pro web, obvykle UTC." #: actions/siteadminpanel.php:262 msgid "Default language" -msgstr "" +msgstr "Výchozí jazyk" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" -msgstr "" +msgstr "Jazyk stránky když není k dispozici autodetekce z nastavení prohlížeče" #: actions/siteadminpanel.php:271 msgid "Limits" -msgstr "" +msgstr "Omezení" #: actions/siteadminpanel.php:274 msgid "Text limit" -msgstr "" +msgstr "Omezení textu" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Maximální počet znaků v oznámení." #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "Limit duplikace" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Jak dlouho uživatel musí čekat (v sekundách) než může poslat totéž znovu." -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Nové sdělení" +msgstr "Oznámení stránky" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" -msgstr "" +msgstr "Upravit celo-webovou zprávu" -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." -msgstr "Problém při ukládání sdělení" +msgstr "Problém při ukládání sdělení stránky" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "Max délka pro celo-webové oznámení je 255 znaků." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Nové sdělení" +msgstr "Text sdělení stránky" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" - -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 #, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "Celo-webové sdělení (255 znaků max., s HTML)" + +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Nové sdělení" +msgstr "Uložit oznámení stránky" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "IM nastavení" +msgstr "nastavení SMS" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Z %%site.name%% můžete přijímat SMS e-mailem." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 -#, fuzzy msgid "SMS is not available." -msgstr "Tato stránka není k dispozici v typu média která přijímáte." +msgstr "SMS není k dispozici." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "IM adresa" +msgstr "SMS adresa" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Aktuální potvrzené SMS-schopné telefonní číslo." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Čeká na potvrzení na tomto telefonním čísle." #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 msgid "Confirmation code" -msgstr "" +msgstr "Potvrzovací kód" #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "Zadejte kód, který jste obdrželi na telefonu." #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 -#, fuzzy msgctxt "BUTTON" msgid "Confirm" -msgstr "Heslo znovu" +msgstr "Potvrdit" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "Žádné telefonní číslo." +msgstr "SMS telefonní číslo" #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "Telefonní číslo, Nepoužívej interpunkci nebo mezery, s předčíslím" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Nastavení" +msgstr "Nastavení SMS" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4172,12 +5444,13 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"Posílejte mi oznámení prostřednictvím SMS. Chápu že mi můj telefonní " +"provider může naůčtovat nesmyslně vysoké částky." #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 -#, fuzzy msgid "SMS preferences saved." -msgstr "Nastavení uloženo" +msgstr "Nastavení SMS uloženo." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 @@ -4187,58 +5460,57 @@ msgstr "Žádné telefonní číslo." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 msgid "No carrier selected." -msgstr "" +msgstr "Nevybrán poskytovatel." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 msgid "That is already your phone number." -msgstr "" +msgstr "Toto je již vaše telefonní číslo." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 msgid "That phone number already belongs to another user." -msgstr "" +msgstr "Toto telefonní číslo již patří jinému uživateli" #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "Tento potvrzující kód vám nepatří!" +msgstr "" +"Ověřující kód byl poslán na vložené telefonní číslo, s instrukcemi jak ho " +"použít." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 msgid "That is the wrong confirmation number." -msgstr "" +msgstr "Toto je špatné ověřovací číslo." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Potvrď zrušení" +msgstr "SMS potvrzení zrušeno." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. #: actions/smssettings.php:448 msgid "That is not your phone number." -msgstr "" +msgstr "To není vaše telefonní číslo." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 -#, fuzzy msgid "The SMS phone number was removed." -msgstr "Žádné telefonní číslo." +msgstr "SMS Telefonní číslo bylo odstraněno." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 msgid "Mobile carrier" -msgstr "" +msgstr "Mobilní operátor" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 msgid "Select a carrier" -msgstr "" +msgstr "Vyberte operátora" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -4248,159 +5520,179 @@ 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 "" +"Mobilní operátor vášeho telefonu. Pokud znáte operátora, který přijímá SMS " +"přes e-mail, ale zde není uveden, pošlete e-mail a dejte nám vědět na% s." #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 msgid "No code entered" -msgstr "" +msgstr "Nezadán kód" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" -msgstr "" +msgstr "Snímky (snapshoty)" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Odběry" +msgstr "Konfigurace snímků" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." -msgstr "" +msgstr "Neplatná hodnota run. (kdy provádět snapshoty)" #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "Frekvence snímků musí být číslo." #: actions/snapshotadminpanel.php:144 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "Neplatná URL na reportování snímků" #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" -msgstr "" +msgstr "Náhodně při dodávání stránek" #: actions/snapshotadminpanel.php:201 msgid "In a scheduled job" -msgstr "" +msgstr "V naplánovaném úkolu" #: actions/snapshotadminpanel.php:206 msgid "Data snapshots" -msgstr "" +msgstr "Snímky dat" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Kdy posílat statistická data na status.net servery" #: actions/snapshotadminpanel.php:217 msgid "Frequency" -msgstr "" +msgstr "Frekvence" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "Snímky budou odeslány jednou za N web hitů" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "Reportovací URL" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "Na tuto adresu budou poslány snímky" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Nastavení" +msgstr "Uložit nastavení snímkování" -#: actions/subedit.php:70 -#, fuzzy +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste přihlášen k tomuto profilu." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Nelze vytvořit odebírat" +msgstr "Nelze uložit odebírání" #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" - -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Žádné takové oznámení." +msgstr "Tato akce přijímá pouze POST požadavky." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Neodeslal jste nám profil" +msgstr "" +"Touto akcí se nemůžete se přihlásit k odběru vzdáleného OMB 0.1 profilu." #: actions/subscribe.php:145 -#, fuzzy msgid "Subscribed" -msgstr "Odebírat" +msgstr "Prihlášen" -#: actions/subscribers.php:50 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 +#, php-format msgid "%s subscribers" -msgstr "Odběratelé" +msgstr "Odběratelé %s" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "Všechny odběry" +msgstr "odběratelé %1$s, strana %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." -msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením " +msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "Toto jsou lidé, kteří naslouchají %s sdělením" +msgstr "Toto jsou lidé, kteří naslouchají sdělením od %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" +"Nemáte žádné sledovatele. Zkuste začít sledovat lidi, které znáte, a oni by " +"vám tu laskavost mohli vrátit" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "Uživatele %s nikdo nesleduje. Chcete být první?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"Uživatele %s nikdo nesleduje. Proč ne [zaregistrovat účet](%%action.register%" +"%) a nebýt první?" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Všechny odběry" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "Všechny odběry" +msgstr "Odběry uživatele %1$s, strana %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Toto jsou lidé, jejiž sdělením nasloucháte" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "Toto jsou lidé, jejiž sdělením %s naslouchá" +msgstr "Toto jsou lidé, jejímž sdělením %s naslouchá" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4409,209 +5701,242 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"Momentálně nenasloucháte níčím oznámením, zkuste se přihlásit k lidem které " +"znáte. Zkuste [Vyhledávání lidí](%%action.peoplesearch%%), podívejte se po " +"členech skupin které vás zajímají a do [nejlepších uživatelú](%%action." +"featured%%). Pokud jste uživatelem [Twitteru](%%action.twittersettings%%), " +"můžete se automaticky přihlásit k lidem které už tam sledujete." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format msgid "%s is not listening to anyone." -msgstr "%1 od teď naslouchá tvým sdělením v %2" +msgstr "%s nikoho nesleduje." -#: actions/subscriptions.php:208 -#, fuzzy +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Feed oznámení pro %1$s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" -msgstr "Žádné Jabber ID." +msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" -msgstr "" +msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Mikroblog od %s" +msgstr "Oznámení označená %1$s, strana %2$d" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení označených %s (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení označených %s (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Feed sdělení pro %s" +msgstr "Feed oznámení označených %s (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "Žádný takový dokument." +msgstr "Žádný argument ID." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "Otagujte %s" #: actions/tagother.php:77 lib/userprofile.php:76 -#, fuzzy msgid "User profile" -msgstr "Uživatel nemá profil." +msgstr "Uživatelský profil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" -msgstr "" +msgstr "Fotka" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Otagujte uživatele" #: actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Tagy pro tohoto uživatele (písmena, číslice, -,., a _), oddělené čárkou nebo " +"mezerou" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"Můžete označovat pouze lidi, ke kterým jste přihlášen nebo kteří jsou " +"přihlášeni k vám." #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." -msgstr "Nelze uložin informace o obrázku" +msgstr "Nelze uložit nálepky" #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"Použijte tento formulář k přidání nálepek na vaše posluchače nebo ty které " +"posloucháte." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Žádné takové oznámení." +msgstr "Žádná taková nálepka." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Již jste přihlášen" +msgstr "Nemáte zablokováno tohoto uživatele." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "Uživatel nemá profil." +msgstr "Uživatel není sandboxován." #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "Uživatel nemá profil." +msgstr "Uživatel není umlčen." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Nebylo vráceno žádné URL profilu od servu." +msgstr "CHybí ID profilu v žádosti." #: actions/unsubscribe.php:98 -#, fuzzy msgid "Unsubscribed" -msgstr "Odhlásit" +msgstr "Odhlášeno" #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" +"Licence naslouchaného '%1$s' není kompatibilní s licencí stránky '%2$s'." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" +msgstr "Uživatel" + +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "" - -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "Neplatný bio limit. Musí být číslo." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Neplatné uvítací text. Max délka je 255 znaků." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "Neplatné výchozí přihlášení: '%1$s' není uživatel." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" -msgstr "" +msgstr "Limit Bia" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Maximální počet znaků bia profilu." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" -msgstr "" - -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" +msgstr "Noví uživatelé" +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgid "New user welcome" +msgstr "Uvítání nového uživatele" -#: actions/useradminpanel.php:241 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 #, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Uvítání nových uživatel (Max 255 znaků)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" -msgstr "Všechny odběry" +msgstr "Výchozí odběr" -#: actions/useradminpanel.php:242 -#, fuzzy +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." -msgstr "Odběr autorizován" - -#: actions/useradminpanel.php:251 -#, fuzzy -msgid "Invitations" -msgstr "Umístění" +msgstr "Automaticky přihlásit nové uživatele k tomuto uživateli." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:256 -msgid "Invitations enabled" -msgstr "" +msgid "Invitations" +msgstr "Pozvánky" -#: actions/useradminpanel.php:258 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 +msgid "Invitations enabled" +msgstr "Pozvánky povoleny" + +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." +msgstr "Zda chcete uživatelům umožnit pozvat nové uživatele." + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" msgstr "" #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "Autorizovaný odběr" +msgstr "Autorizujte přihlášení" #: 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 "" "Prosím zkontrolujte tyto detailu, a ujistěte se že opravdu chcete odebírat " -"sdělení tohoto uživatele. Pokud ne, ask to subscribe to somone's notices, " -"klikněte na \"Zrušit\"" +"sdělení tohoto uživatele. Pokud jste právě nepožádali o přihlášení k tomuto " +"uživteli, klikněte na \"Zrušit\"" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licence" @@ -4621,36 +5946,33 @@ msgstr "Přijmout" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Odběr autorizován" +msgstr "Přihlásit se k tomuto uživateli" #: actions/userauthorization.php:219 msgid "Reject" msgstr "Odmítnout" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Všechny odběry" +msgstr "Odmítnout toto přihlášení" #: actions/userauthorization.php:232 msgid "No authorization request!" -msgstr "Žádné potvrení!" +msgstr "Žádná žádost o autorizaci!" #: actions/userauthorization.php:254 msgid "Subscription authorized" msgstr "Odběr autorizován" #: actions/userauthorization.php:256 -#, 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 " "subscription. Your subscription token is:" msgstr "" -"Odběr byl potvrzen, ale neprošla žádná callback adresa. Zkontrolujte v " -"nápovědě jak správně postupovat při potvrzování odběru. Váš řetězec odběru " +"Odběr byl autorizován, ale nepřišla žádná callback adresa. Zkontrolujte v " +"nápovědě jak správně postupovat při autorizování odběru. Váš řetězec odběru " "je:" #: actions/userauthorization.php:266 @@ -4658,84 +5980,87 @@ msgid "Subscription rejected" msgstr "Odběr odmítnut" #: actions/userauthorization.php:268 -#, 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 "" -"Odebírání bylo zamítnuto, ale neprošla žádná callback adresa. Zkontrolujte v " -"nápovědě jak správně postupovat při zamítání odběru" +"Odebírání bylo zamítnuto, ale nepřišla žádná callback adresa. Zkontrolujte v " +"nápovědě jak správně postupovat pro plné zamítnutí odběru." #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "Naslouchací URI ‘%s’ zde nebyl nalezen." #: actions/userauthorization.php:308 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "Naslouchací URI ‘%s’ je příliš dlouhý." #: actions/userauthorization.php:314 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "Naslouchací URI ‘%s’ je místní uživatel." #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "URL profilu '%s' je pro místního uživatele." #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "URL avataru ‘%s’ není platný." #: actions/userauthorization.php:350 -#, fuzzy, php-format +#, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "Nelze přečíst adresu obrázku '%s'" +msgstr "Nelze načíst avatara z URL '%s'" #: actions/userauthorization.php:355 -#, fuzzy, php-format +#, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "Neplatný typ obrázku pro '%s'" +msgstr "Špatný typ obrázku na URL '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" -msgstr "Nastavené Profilu" +msgstr "Vzhled profilu" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Přizpůsobit vzhled vašeho profilu obrázkem na pozadí a barevnou paletou " +"vašeho výběru." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Užijte si svůj párek v rohlíku!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Všechny odběry" +msgstr "skupiny uživatele %1$s, strana %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" -msgstr "" +msgstr "Vyhledat další skupiny" #: actions/usergroups.php:159 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "Neodeslal jste nám profil" +msgstr "%s není členem žádné skupiny." #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +"Zkuste [vyhledávat skupiny](%%action.groupsearch%%) a připojit se k nim." #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -4743,15 +6068,15 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Oznámení od %1$s na %2$s!" #: actions/version.php:75 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "Statistiky" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -4759,10 +6084,12 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"Tato webová stránka je poháněna a běží na programu %1$S verze %2$s, " +"Copyright 2008-2010 StatusNet, Inc a přispěvatelé." #: actions/version.php:163 msgid "Contributors" -msgstr "" +msgstr "Přispěvatelé" #: actions/version.php:170 msgid "" @@ -4771,6 +6098,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet je svobodný software: můžete jej šířit a / nebo modifikovat podle " +"podmínek GNU Affero General Public License, vydávané Free Software " +"Foundation, a to buď ve verzi 3 této licence anebo (podle vašeho uvážení) " +"kterékoli pozdější verze. " #: actions/version.php:176 msgid "" @@ -4779,6 +6110,10 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI " +"ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO " +"URČITÝ ÚČEL. Podívejte se na GNU Affero General Public License pro bližší " +"informace. " #: actions/version.php:182 #, php-format @@ -4786,1118 +6121,1333 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"Měli byste obdržet kopii GNU Affero General Public License spolu s tímto " +"programem. Pokud ne, jděte na %s." #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "Pluginy" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -#, fuzzy +#: actions/version.php:198 lib/action.php:885 msgid "Version" -msgstr "Osobní" +msgstr "Verze" #: actions/version.php:199 msgid "Author(s)" -msgstr "" +msgstr "Autoři" + +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Oblíbit" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) přidal vaše oznámení jako oblíbené" #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "Nemůžu zpracovat URL '%s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "Robin si myslí, že je něco nemožné." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Žádný soubor nesmí být větší než %1$d bajtů a soubor, který jste poslal měl %" +"2$d bajtů. Zkuste nahrát menší verzi." +msgstr[1] "" +"Žádný soubor nesmí být větší než %1$d bajtů a soubor, který jste poslal měl %" +"2$d bajtů. Zkuste nahrát menší verzi." +msgstr[2] "" +"Žádný soubor nesmí být větší než %1$d bajtů a soubor, který jste poslal měl %" +"2$d bajtů. Zkuste nahrát menší verzi." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Takto velký soubor by překročil vaši uživatelskou kvótu %d bajtů." +msgstr[1] "Takto velký soubor by překročil vaši uživatelskou kvótu %d bajtů." +msgstr[2] "Takto velký soubor by překročil vaši uživatelskou kvótu %d bajtů." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Takto velký soubor by překročil vaši měsíční kvótu %d bajtů." +msgstr[1] "Takto velký soubor by překročil vaši měsíční kvótu %d bajtů." +msgstr[2] "Takto velký soubor by překročil vaši měsíční kvótu %d bajtů." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Neplatná velikost" +msgstr "Neplatné jméno souboru." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "Žádné takové oznámení." +msgstr "Nepodařilo se připojit ke skupině." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy +#: classes/Group_member.php:64 msgid "Not part of group." -msgstr "Nelze aktualizovat uživatele" +msgstr "Není součástí skupiny." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy +#: classes/Group_member.php:72 msgid "Group leave failed." -msgstr "Žádné takové oznámení." +msgstr "Nepodařilo se opustit skupinu." + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Chyba při ukládaní uživatele; neplatný." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Připojit se" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze aktualizovat místní skupinu." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Nelze uložin informace o obrázku" +msgstr "Nelze vytvořit přihlašovací token pro %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Nenalezeno jméno databáze ani DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "Nemůžete posílat přímé zprávy (banned)" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." -msgstr "" +msgstr "Nemohu vložit zprávu." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." -msgstr "" +msgstr "Nelze aktualizovat zprávu novým URI." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Nenalezen profil (%1$d) pro oznámení (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Chyba v DB při vkládání odpovědi: %s" +msgstr "Chyba databáze při vkládání nálepky: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 -#, fuzzy +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." -msgstr "Problém při ukládání sdělení" +msgstr "Problém ukládání sdělení. Příliš dlouhé." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 -#, fuzzy +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." -msgstr "Problém při ukládání sdělení" +msgstr "Problém při ukládání sdělení. Neznámý uživatel." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Příliš mnoho oznámení příliš rychle, odpočiňte si a zkuste to znovu za " +"několik minut." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"Příliš mnoho stejných zpráv příliš rychle, odpočiňte si a zkuste to znovu za " +"několik minut." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Máte zakázáno (banned) posílat upozornění na tomto webu." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "saveKnownGroups obdrželo špatný typ." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 -#, fuzzy +#: classes/Notice.php:1012 msgid "Problem saving group inbox." -msgstr "Problém při ukládání sdělení" +msgstr "Problém při ukládání skupinového inboxu" + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Nelze uložit místní info skupiny." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" -msgstr "" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, neexistuje." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." -msgstr "" +msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, chyba databáze." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "Uživatel nemá profil." +msgstr "Chybějící profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Problém při ukládání sdělení" +msgstr "Nelze uložit tag." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." -msgstr "" +msgstr "Byl jste vykázán (banned) z přihlašování se." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" -msgstr "" +msgstr "Již přihlášen!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 -#, fuzzy +#: classes/Subscription.php:87 msgid "User has blocked you." -msgstr "Uživatel nemá profil." +msgstr "Uživatel vás zablokoval." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Nepřihlášen!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Nelze smazat odebírání" +msgstr "Nelze smazat odebírání sebe sama" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Nelze smazat odebírání" +msgstr "Nelze smazat OMB token přihlášení." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Nelze smazat odebírání" +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s od teď naslouchá tvým sdělením na %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" +msgstr "Vítejte na %1$s, @%2$s!" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Nenastaven uživatel pro jednouživatelský mód" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." msgstr "" #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 -#, fuzzy +#: classes/User_group.php:511 msgid "Could not create group." -msgstr "Nelze uložin informace o obrázku" +msgstr "Nelze vytvořit skupinu." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Nelze vytvořit odebírat" +msgstr "Nelze nastavit URI skupiny." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "Nelze vytvořit odebírat" +msgstr "Nelze nastavit členství ve skupině." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Nelze vytvořit odebírat" +msgstr "Nelze uložit místní info skupiny." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" -msgstr "" +msgstr "Změňte nastavení profilu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 -#, fuzzy +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" -msgstr "Nahrávání obrázku selhalo." +msgstr "Nahrát avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" -msgstr "" +msgstr "Změňte své heslo" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" -msgstr "" +msgstr "Změnit manipulaci emailu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "Uživatel nemá profil." +msgstr "Změňte vzhled svého profilu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" -msgstr "" +msgstr "Další možnosti" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" -msgstr "" +msgstr "Jiné" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format +#: lib/action.php:148 +#, php-format msgid "%1$s - %2$s" -msgstr "%1 statusů na %2" +msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" +msgstr "stránka bez názvu" + +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" -msgstr "" +msgstr "Primární navigace na webu" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Osobní profil a časová osa přátel" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -#, fuzzy +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Osobní" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Změnit heslo" +msgstr "Změňte svůj e-mail, avatar, heslo, profil" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Účet" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -#, fuzzy +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Nelze přesměrovat na server: %s" +msgstr "Připojení ke službám" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Připojit" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Odběry" +msgstr "Změna konfigurace webu" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" -msgstr "" +msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -#, fuzzy +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" -msgstr "Neplatná velikost" +msgstr "Pozvat" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "" +msgstr "Odhlášení z webu" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "Odhlásit" +msgstr "Odhlásit se" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Vytvořit nový účet" +msgstr "Zaregistrujte se" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrovat" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Přihlásit se na stránky" -#: lib/action.php:491 -#, fuzzy +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Přihlásit" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Pomoci mi!" +msgstr "Nápověda" -#: lib/action.php:497 -#, fuzzy +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Nápověda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "Vyhledávání osob nebo textu" -#: lib/action.php:503 -#, fuzzy +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Hledat" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -#, fuzzy +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "Nové sdělení" +msgstr "Sdělení" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" -msgstr "" +msgstr "Místní zobrazení" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -#, fuzzy +#: lib/action.php:757 msgid "Page notice" -msgstr "Nové sdělení" +msgstr "Sdělení stránky" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 -#, fuzzy +#: lib/action.php:858 msgid "Secondary site navigation" -msgstr "Odběry" +msgstr "Sekundární navigace na webu" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Nápověda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "O nás" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" -msgstr "" +msgstr "TOS (pravidla použití služby)" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Soukromí" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Zdroj" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" -msgstr "" +msgstr "Odznak" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" -msgstr "" +msgstr "Licence softwaru StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 -#, fuzzy, php-format +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 +#, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" "**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." -"broughtby%%](%%site.broughtbyurl%%). " +"broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** je služba mikroblogů." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Běží na [StatusNet](http://status.net/) mikroblogovací program, verze %s, " -"dostupná pod [GNU Affero General Public License](http://www.fsf.org/" +"Běží na mikroblogovacím programu [StatusNet](http://status.net/), verze %s, " +"dostupném pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy +#: lib/action.php:954 msgid "Site content license" -msgstr "Nové sdělení" +msgstr "Licence k obsahu stránek" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." -msgstr "" +msgstr "Obsah a data z %1$S jsou soukromé a důvěrné." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." -msgstr "" +msgstr "Obsah a data copyright %1$s. Všechna práva vyhrazena." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." -msgstr "" +msgstr "Obsah a data copyright přispěvatelů. Všechna práva vyhrazena." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." -msgstr "" +msgstr "Všechen obsah a data %1$s jsou k dispozici v rámci licence %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" -msgstr "" +msgstr "Stránkování" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 -#, fuzzy +#: lib/action.php:1351 msgid "After" -msgstr "« Novější" +msgstr "Po" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 -#, fuzzy +#: lib/action.php:1361 msgid "Before" -msgstr "Starší »" +msgstr "Před" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." -msgstr "" +msgstr "Očekávám kořenový element feedu, ale dostal jsem celý XML dokument." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Fotka" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Ještě neumí zpracovat vzdálený obsah." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Neumí zacházet s vloženým XML obsahem." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Neumí zacházet s vloženým Base64 obsahem." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "" +msgstr "Nemůžete provádět změny na této stránce." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." -msgstr "" +msgstr "Změny, tohoto panelu nejsou povoleny." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm () není implementována." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings () není implementována." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "" +msgstr "Nelze smazat nastavení vzhledu." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Základní konfigurace webu" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -#, fuzzy +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" -msgstr "Nové sdělení" +msgstr "Stránky" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Nastavení vzhledu" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Vzhled" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Akce uživatele" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" -msgstr "" +msgstr "Uživatel" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Nastavení přístupu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Naastavení cest" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Nastavení sessions" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Nové sdělení" +msgstr "Upravit oznámení stránky" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "Potvrzení emailové adresy" +msgstr "Konfigurace snímků" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" +"API droj vyžaduje přístup pro čtení a zápis, ale vy máte přístup pouze pro " +"čtení." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Nelze vytvořit aliasy." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Nelze vytvořit aplikaci." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Nemohu vložit zprávu." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Chyba databáze při vkládání uživatele aplikace OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" -msgstr "" +msgstr "Ikona pro tuto aplikaci" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Popiš sebe a své zájmy ve 140 znacích" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Popište vaši aplikaci v %d znacích" +msgstr[1] "Popište vaši aplikaci v %d znacích" +msgstr[2] "Popište vaši aplikaci v %d znacích" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Popiš sebe a své zájmy ve 140 znacích" +msgstr "Popište vaši aplikaci" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 -#, fuzzy +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" -msgstr "Adresa vašich stránek, blogu nebo profilu na jiných stránkách." +msgstr "URL domovské stránky této aplikace" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 -#, fuzzy +#: lib/applicationeditform.php:218 msgid "Source URL" -msgstr "Zdroj" +msgstr "Zdrojové URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" -msgstr "" +msgstr "Organizace odpovědná za tuto aplikaci" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 -#, fuzzy +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" -msgstr "Adresa vašich stránek, blogu nebo profilu na jiných stránkách." +msgstr "URL homepage organizace" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" -msgstr "" +msgstr "URL pro přesměrování po autentikaci" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" -msgstr "" +msgstr "Prohlížeč" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" -msgstr "" +msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "Typ aplikace, prohlížeč nebo desktop" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" -msgstr "" +msgstr "pouze pro čtení" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" -msgstr "" +msgstr "čtení a zápis" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" -msgstr "" +msgstr "Výchozí přístup pro tuto aplikaci: pouze pro čtení, nebo číst-psát" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Zrušit" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" -msgstr "" +msgstr "číst-psát" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" -msgstr "" +msgstr "pouze pro čtení" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." +msgstr "Schváleno %1$s - přístup \"%2$s\"" + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Odstranit" +msgstr "Obnovit" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" -msgstr "" +msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Poskytovatel" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "Notices where this attachment appears" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "" +msgstr "Označení této přílohy" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" -msgstr "Heslo uloženo" +msgid "Password changing failed." +msgstr "Změna hesla se nezdařila" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" -msgstr "Heslo uloženo" +msgid "Password changing is not allowed." +msgstr "Změna hesla není povolena" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokovat" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" -msgstr "" +msgstr "Výsledky příkazu" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax Chyba" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" -msgstr "" +msgstr "Příkaz dokončen" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" -msgstr "" +msgstr "Příkaz selhal" -#: lib/command.php:83 lib/command.php:105 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Vzdálený profil s nesouhlasícím profilem" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Oznámení s tímto id neexistuje." -#: lib/command.php:99 lib/command.php:596 -#, fuzzy -msgid "User has no last notice" -msgstr "Uživatel nemá profil." +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Uživatel nemá žádné poslední oznámení" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Nelze aktualizovat uživatele" +msgid "Could not find a user with nickname %s." +msgstr "Nelze nalézt uživatele s přezdívkou %s" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Nelze aktualizovat uživatele" +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "Nelze nalézt místního uživatele s přezdívkou %s" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Je nám líto, ale tento příkaz dosud nebyl implementován." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "To nemá moc smyslu postrkovat sám sebe!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "Odpovědi na %s" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "Šťouchnutí posláno %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Odbírám: %1$s \n" +"Odběratelé: %2$s \n" +"Hlášky: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "" +msgstr "Oznámení označené jako oblíbené." -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Již jste přihlášen" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Nelze přesměrovat na server: %s" +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s se připojil(a) ke skupině %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s opustil(a) skupinu %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Nelze vytvořit OpenID z: %s" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format -msgid "Fullname: %s" -msgstr "Celé jméno" - -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 -#, php-format -msgid "Location: %s" -msgstr "" - -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, php-format -msgid "Homepage: %s" -msgstr "" - -#. TRANS: Whois output. %s is the bio information of the queried user. #: lib/command.php:430 #, php-format -msgid "About: %s" -msgstr "" +msgid "Fullname: %s" +msgstr "Celé jméno %s" -#: lib/command.php:457 +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format +msgid "Location: %s" +msgstr "Poloha: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, php-format +msgid "Homepage: %s" +msgstr "Domovská stránka: %s" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:442 +#, php-format +msgid "About: %s" +msgstr "O uživateli: %s" + +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s je vzdálený profil, přímé zprávy můžete odesílat pouze pro uživatele na " +"stejném serveru." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[1] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[2] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Odstranit toto oznámení" +msgstr "Chyba při odesílání přímé zprávy." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "Sdělení" +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "Oznámení od %s opakováno." -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Problém při ukládání sdělení" +msgstr "Chyba nastavení uživatele" -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" - -#: lib/command.php:571 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Reply to %s sent" -msgstr "Odpovědi na %s" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Oznámení je příliš dlouhé - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[1] "Oznámení je příliš dlouhé - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[2] "Oznámení je příliš dlouhé - maximum je %1$d znaků, poslal jsi %2$d." -#: lib/command.php:573 -#, fuzzy +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "Odpověď %s odeslána." + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "Problém při ukládání sdělení" +msgstr "Problém při ukládání sdělení." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Uveďte jméno uživatele ke kterému se přihlásit." -#: lib/command.php:628 -#, fuzzy +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." -msgstr "Neodeslal jste nám profil" +msgstr "Nelze se přihlásit k odběru OMB profilů příkazem." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "" +msgid "Subscribed to %s." +msgstr "Přihlášeno k %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Uveďte jméno uživatele od kterého se odhlásit." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "" +msgid "Unsubscribed from %s." +msgstr "Odhlášeno od %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." -msgstr "" +msgstr "Příkaz ještě nebyl implementován." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." -msgstr "" +msgstr "Oznámení vypnuta." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." -msgstr "" +msgstr "Nelze vypnout oznámení." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." -msgstr "" +msgstr "Oznámení zapnuta." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." -msgstr "" +msgstr "Nelze zapnout oznámení." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Příkaz login je vypnut." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "Tento odkaz je použitelný pouze jednou a je platný pouze 2 minuty: %s." -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Odhlásit" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "%s odhlášen." -#: lib/command.php:778 -#, fuzzy +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste přihlášen k nikomu." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "Neodeslal jste nám profil" -msgstr[1] "Neodeslal jste nám profil" -msgstr[2] "" +msgstr[0] "Jste přihlášeni k této osobě:" +msgstr[1] "Jste přihlášeni k těmto lidem:" +msgstr[2] "Jste přihlášeni k těmto lidem:" -#: lib/command.php:800 -#, fuzzy +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." -msgstr "Vzdálený odběr" +msgstr "Nikdo k vám není přihlášen." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Vzdálený odběr" -msgstr[1] "Vzdálený odběr" -msgstr[2] "" +msgstr[0] "Tato osoba je k vám přihlášena:" +msgstr[1] "Tito lidé jsou k vám přihlášeni:" +msgstr[2] "Tito lidé jsou k vám přihlášeni:" -#: lib/command.php:822 -#, fuzzy +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." -msgstr "Neodeslal jste nám profil" +msgstr "Nejste členem žádné skupiny." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "Neodeslal jste nám profil" -msgstr[1] "Neodeslal jste nám profil" +msgstr[0] "Jste členem této skupiny:" +msgstr[1] "Jste členem těchto skupin:" msgstr[2] "" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5938,197 +7488,336 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"Příkazy:\n" +"on - zapnout oznámení\n" +"off - vypnout oznámení\n" +"help - zobrazí tuto nápovědu\n" +"follow <nickname> - Přihlásit se k uživatel\n" +"groups - seznam skupin, ke kterým jste připojen\n" +"subscriptions - seznam lidí, které sledujete\n" +"subscribers - seznam osob, které vás sledují\n" +"leave <přezdívka> - Odhlásit se od uživatele\n" +"d <přezdívka> <text> - Přímá zpráva uživateli\n" +"get <přezdívka> - Dostanete poslední upozornění od uživatele\n" +"whois <přezdívka> - Získat informace o profilu uživatele\n" +"lose <přezdívka> - Donutit uživatele přestat vás sledovat\n" +"fav <přezdívka> - Přidejte uživatelovo poslední oznámení jako 'Oblíbené'\n" +"fav #<notice_id> - Přidat upozornění s daným id jako 'Oblíbené'\n" +"repeat #<notice_id> - Opakovat oznámení s daným id\n" +"repeat <přezdívka> - Opakovat poslední oznámení od uživatele\n" +"reply #<notice_id> - Odpověď na oznámení s daným id\n" +"reply <přezdívka> - Odpověď na poslední oznámení od uživatele\n" +"join <skupina> - Připojit se ke skupině\n" +"login - Získat odkaz pro přihlášení k webovému rozhraní\n" +"drop <skupina> - Opustit skupinu\n" +"stats - získejte Vaše statistiky\n" +"stop - stejné jako 'off'\n" +"quit - stejné jako 'off'\n" +"sub <přezdívka> - Stejné jako 'follow'\n" +"unsub <přezdívka> - Stejné jako 'leave'\n" +"last <přezdívka> - Stejné jako 'get'\n" +"on <přezdívka> - Dosud neimplementován.\n" +"off <přezdívka> - Dosud neimplementován.\n" +"nudge <přezdívka> - Připomenout uživateli aby něco poslal.\n" +"invite <telefonní číslo> - Dosud neimplementován.\n" +"track <word> - Dosud neimplementován.\n" +"untrack <word> -Dosud neimplementován.\n" +"track off - Dosud neimplementován.\n" +"untrack all - Dosud neimplementován.\n" +"tracks - Dosud neimplementován.\n" +"tracking - Dosud neimplementován.\n" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " -msgstr "Žádný potvrzující kód." +msgid "No configuration file found." +msgstr "Žádný konfigurační soubor nalezen. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Díval jsem se po konfiguračních souborech na těchto místech: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "Možná budete chtít spustit instalační program abyste to vyřešili." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." -msgstr "" +msgstr "Jdi na instalaci." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" -msgstr "" +msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Aktualizace z a na instant messenger (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" -msgstr "" +msgstr "Aktualizace z a na SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" -msgstr "Připojit" +msgstr "Připojení" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" -msgstr "" +msgstr "Autorizované propojené aplikace" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" -msgstr "" +msgstr "Chyba databáze" -#: lib/designsettings.php:105 -#, fuzzy +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "Upload" +msgstr "Nahrát soubor" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" - -#: lib/designsettings.php:418 -msgid "Design defaults restored." msgstr "" +"Můžete nahrát váš osobní obrázek na pozadí. Maximální velikost souboru je 2 " +"MB." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -msgid "Disfavor this notice" -msgstr "" - -#: lib/favorform.php:114 lib/favorform.php:140 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 #, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "zap." + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "vyp." + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reset" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +msgid "Design defaults restored." +msgstr "Obnoveno výchozí nastavení vzhledu." + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 +msgid "Disfavor this notice" +msgstr "Odebrat toto oznámení z oblíbených" + +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "Žádné takové oznámení." +msgstr "Přidat toto oznámení do oblíbených" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" -msgstr "" +msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" -msgstr "" +msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Filtrovat tagy" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "Všechny" #: lib/galleryaction.php:139 msgid "Select tag to filter" -msgstr "" +msgstr "Zvolte značku k filtrování" #: lib/galleryaction.php:140 msgid "Tag" -msgstr "" +msgstr "Značka" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "Vyberte si značku k zúžení seznamu" #: lib/galleryaction.php:143 msgid "Go" -msgstr "" +msgstr "Jdi" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Dát tomuto uživateli roli \"%s\"" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer" #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "Adresa vašich stránek, blogu nebo profilu na jiných stránkách." +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL domovské stránky nebo blogu skupiny nebo tématu" #: lib/groupeditform.php:168 -#, fuzzy msgid "Describe the group or topic" -msgstr "Popiš sebe a své zájmy ve 140 znacích" +msgstr "Popište skupinu nebo téma" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Popiš sebe a své zájmy ve 140 znacích" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Popište skupinu nebo téma ve %d znacích" +msgstr[1] "Popište skupinu nebo téma ve %d znacích" +msgstr[2] "Popište skupinu nebo téma ve %d znacích" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 #, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Místo. Město, stát." - -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" +"Umístění skupiny, pokud je nějaké, ve stylu \"město, stát (nebo region), země" +"\"" -#: lib/groupnav.php:85 +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "Další přezdívky pro skupinu, oddělené čárkou nebo mezerou, max %d" +msgstr[1] "Další přezdívky pro skupinu, oddělené čárkou nebo mezerou, max %d" +msgstr[2] "Další přezdívky pro skupinu, oddělené čárkou nebo mezerou, max %d" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Žádný takový uživatel." - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Žádný takový uživatel." - -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Logo" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Skupiny s nejvíce členy" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Skupiny s nejvíce příspěvky" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Značky v oznámeních skupiny %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6139,107 +7828,145 @@ msgstr "Tato stránka není k dispozici v typu média která přijímáte." msgid "Unsupported image file format." msgstr "Nepodporovaný formát obrázku." -#: lib/imagefile.php:88 -#, fuzzy, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" +msgstr "Ten soubor je příliš velký. Maximální velikost souboru je %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Částečné náhrání." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Chyba systému při nahrávání souboru" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Není obrázkem, nebo jde o poškozený soubor." -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." -msgstr "Žádné takové oznámení." +msgstr "Ztratili jsme náš soubor." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" -msgstr "" +msgstr "Neznámý typ souboru" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" +msgstr[2] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" +msgstr[2] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/jabber.php:567 #, php-format msgid "Unknown inbox source %d." -msgstr "" - -#: lib/joinform.php:114 -msgid "Join" -msgstr "Přidat se" +msgstr "Neznámý zdroj inboxu %d." #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Uložit" +msgstr "Opustit" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "Neplatné jméno nebo heslo" +msgstr "Přihlásit se pomocí svého uživatelského jména a hesla." #: lib/logingroupnav.php:86 -#, fuzzy msgid "Sign up for a new account" msgstr "Vytvořit nový účet" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Potvrzení emailové adresy" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" +"Ahoj,% s.\n" +"\n" +"Někdo právě vložil tuto e-mailovou adresu na %s.\n" +"\n" +"Pokud jsi to byl ty, a chceš potvrdit své zadání, použij níže uvedenou " +"adresu:\n" +"\n" +"%s\n" +"\n" +"Pokud ne, tak tuto zprávu ignoruj.\n" +"\n" +"Díky za tvůj čas,\n" +"%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1 od teď naslouchá tvým sdělením v %2" +msgstr "%1$s od teď naslouchá tvým sdělením na %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"Pokud si myslíte, že tento účet je zneužíván, můžete ho zablokovat ze svého " +"seznamu přihlášených a reportovat jako spam adminům na %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6248,33 +7975,41 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" +"%2$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %7$s\n" +msgstr "" +"%1$s nyní naslouchá vasim oznámením na %2$s.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Váš,\n" "%7$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" -msgstr "" -"%1 naslouchá vašim sdělením na %s. \n" -"\n" -"\t%3\n" -"\n" -"S úctou váš,\n" -"%4$s.\n" +"Zmeňte vaší e-mailovouadresu nebo nastavení upozornění na %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "O mě" +msgstr "O: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "Nová e-mailová adresa pro psaní na %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6283,34 +8018,47 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" +"Máte novou posílací aadresu na %1$s.\n" +"\n" +"K poslání nového oznámení pošlete e-mail na %2$s.\n" +"\n" +"Instrukce naleznete na %3$s.\n" +"\n" +"Váš,\n" +"%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" -msgstr "" +msgstr "status %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" -msgstr "" +msgstr "SMS potvrzení" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" -msgstr "" +msgstr "%s: potvrďte že vlastníte toto telefonní číslo tímto kódem:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "%s Vás pošťouchl" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6325,15 +8073,30 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) by zajímalo, co poslední dobou děláte a poštouchl vás, abyste " +"poslali nějaké novinky.\n" +"\n" +"Takže šup na stránky a něco pošlete :)\n" +"\n" +"%3$s\n" +"\n" +"Neodpovídejte na tento e-mail, nedostane se k nim.\n" +"\n" +"S pozdravem,\n" +"%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Nová soukromá zpráva od %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6351,15 +8114,34 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) vám poslal soukromou zprávu:\n" +"\n" +"-------------------------------------------------- ----\n" +"%3$s\n" +"-------------------------------------------------- ----\n" +"\n" +"Můžete odpovědět zde:\n" +"\n" +"%4$s\n" +"\n" +"Neodpovídejte na tento e-mail, nedostane se k nim.\n" +"\n" +"S pozdravem\n" +"%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%1 od teď naslouchá tvým sdělením v %2" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%s (@%s) přidal vaše oznámení jako oblíbené" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6379,23 +8161,50 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) právě přidal vaše oznámení z %2$s jako jedno ze svých " +"oblíbených. \n" +"\n" +" URL Vašeho oznámení je: \n" +"\n" +" %3$s \n" +"\n" +" Text Vašeho oznámení je: \n" +"\n" +" %4$s \n" +"\n" +" Můžete vidět seznam %1$S oblíbených zde: \n" +"\n" +" %5$s \n" +"\n" +" Váš, \n" +" %6$s \n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" "\n" "\t%s" msgstr "" +"Celý rozhovor si můžete přečíst zde: \n" +"\n" +" %s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s (@%s) poslal oznámení žádající o vaši pozornost" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6421,25 +8230,50 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" +"%1$s (@%9$s) právě poslal oznámení žádající o vaši pozornost ('@-odpověď') " +"na %2$s.\n" +"\n" +"Oznámení je zde:\n" +"\n" +"%3$s\n" +"\n" +"Stojí v něm:\n" +"\n" +"%4$s\n" +"\n" +"%5$smůžete odpověďet zde:\n" +"\n" +"%6$s\n" +"\n" +"Seznam všech @-odpovědí pro vás je zde:\n" +"\n" +"%7$s\n" +"\n" +"Váš,\n" +"%2$s\n" +"\n" +"P.S. Tato upozornění můžete vypnout zde: %8$s\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Pouze uživatel může přečíst své vlastní schránky." #: 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 "" +"Nemáte žádné soukromé zprávy. Můžete poslat soukromou zprávu, aby se " +"zapojili ostatní uživatelé v rozhovoru. Lidé mohou posílat zprávy jen pro " +"vaše oči." -#: lib/mailbox.php:227 lib/noticelist.php:505 -#, fuzzy +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr " od " +msgstr "od" #: lib/mailhandler.php:37 msgid "Could not parse message." -msgstr "" +msgstr "Nelze zpracovat zprávu." #: lib/mailhandler.php:42 msgid "Not a registered user." @@ -6447,249 +8281,295 @@ msgstr "Není registrovaný uživatel." #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Je nám líto, toto není vaše příchozí e-mailová adresa." #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Je nám líto, žádný příchozí e-mail není dovolen." -#: lib/mailhandler.php:228 -#, fuzzy, php-format +#: lib/mailhandler.php:229 +#, php-format msgid "Unsupported message type: %s" -msgstr "Nepodporovaný formát obrázku." +msgstr "Nepodporovaný typ zprávy: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." -msgstr "" +msgstr "Nastala chyba v databázi při ukládání souboru. Prosím zkuste to znovu." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"Velkost uploadovaného souboru překračuje upload_max_filesize limit v php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"Velkost uploadovaného souboru překračuje MAX_FILE_SIZE limit, které bylo " +"uvedeno v HTML formuláři." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "Nahrávaný soubor byl nahrán pouze částečně." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." -msgstr "" +msgstr "Chybí dočasný adresář." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." -msgstr "" +msgstr "Nepodařilo se zapsat soubor na disk." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." -msgstr "" +msgstr "Nahrávání souboru zastaveno rozšířením PHP." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." -msgstr "" +msgstr "Soubor překračuje kvótu uživatele." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Soubor nemohl být přesunut do cílového adresáře." -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Nelze aktualizovat uživatele" +msgstr "Nelze určit typ MIME souboru." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" -msgstr "" +msgstr "Pošlete přímou zprávu" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Vyberte operátora" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Nepřihlášen!" + +#: lib/messageform.php:153 msgid "To" -msgstr "" +msgstr "Komu:" -#: lib/messageform.php:159 lib/noticeform.php:185 -#, fuzzy +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" -msgstr "6 a více znaků" +msgstr "Zbývá znaků" -#: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Odeslat" -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "Nové sdělení" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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 a žádné mezery." -#: lib/noticeform.php:173 +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "Poslat oznámení" + +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "Co se děje %s?" +msgstr "Co se děje, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" -msgstr "" +msgstr "Připojit" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" -msgstr "" +msgstr "Přiložit soubor" -#: lib/noticeform.php:212 -#, fuzzy +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "Nelze uložit profil" - -#: lib/noticeform.php:215 -#, fuzzy -msgid "Do not share my location" -msgstr "Nelze uložit profil" +msgstr "Sdílet mé umístění" #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Nesdílet moje umístění" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"Je nám líto, načítání vaší geo lokace trvá déle, než se očekávalo, zkuste to " +"prosím znovu později" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" -msgstr "" +msgstr "S" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" -msgstr "" +msgstr "J" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" -msgstr "" +msgstr "V" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" -msgstr "" +msgstr "Z" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" -msgstr "" +msgstr "v" -#: lib/noticelist.php:567 -#, fuzzy +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" -msgstr "Žádný obsah!" +msgstr "v kontextu" -#: lib/noticelist.php:602 -#, fuzzy +#: lib/noticelist.php:618 msgid "Repeated by" -msgstr "Vytvořit" +msgstr "Opakováno" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "" +msgstr "Odpovědět na toto oznámení" -#: lib/noticelist.php:630 -#, fuzzy +#: lib/noticelist.php:646 msgid "Reply" -msgstr "odpověď" +msgstr "Odpovědět" -#: lib/noticelist.php:674 -#, fuzzy +#: lib/noticelist.php:690 msgid "Notice repeated" -msgstr "Sdělení" +msgstr "Sdělení opakováno" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Pošťuchovat tohoto uživatele" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Pošťouchnout" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" +msgstr "Poslat pošťouchnutí tomuto uživateli" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Chyba při vkládání nového profilu" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Chyba při kládání obrázku" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Chyba při aktualizaci vzdáleného profilu" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Chyba při vkládaní vzdáleného profilu" - -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Nové sdělení" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Nelze vložit odebírání" -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Osobní" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Odpovědi" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Oblíbené" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" -msgstr "" +msgstr "Doručená pošta" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" -msgstr "" +msgstr "Vaše příchozí zprávy" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" -msgstr "" +msgstr "Odeslaná pošta" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" -msgstr "" +msgstr "Vaše odeslané zprávy" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Značky v oznámeních %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" -msgstr "" +msgstr "Neznámé" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -6709,7 +8589,7 @@ msgstr "Všichni odběratelé" #: lib/profileaction.php:191 msgid "User ID" -msgstr "" +msgstr "ID uživatele" #: lib/profileaction.php:196 msgid "Member since" @@ -6718,15 +8598,15 @@ msgstr "Členem od" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "" +msgstr "Denní průměr" #: lib/profileaction.php:264 msgid "All groups" -msgstr "" +msgstr "Všechny skupiny" #: lib/profileformaction.php:123 msgid "Unimplemented method." -msgstr "" +msgstr "Neimplementovaná metoda." #: lib/publicgroupnav.php:78 msgid "Public" @@ -6734,340 +8614,418 @@ msgstr "Veřejné" #: lib/publicgroupnav.php:82 msgid "User groups" -msgstr "" +msgstr "Skupin uživatel" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "" +msgstr "Nedávné značky" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "" +msgstr "Doporučení" #: lib/publicgroupnav.php:92 -#, fuzzy msgid "Popular" -msgstr "Hledání lidí" +msgstr "Populární" #: lib/redirectingaction.php:95 -#, fuzzy msgid "No return-to arguments." -msgstr "Žádný takový dokument." +msgstr "Chybí argument return-to." #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Odstranit toto oznámení" +msgstr "Opakovat toto oznámení?" #: lib/repeatform.php:132 msgid "Yes" msgstr "Ano" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Odstranit toto oznámení" +msgstr "Opakovat toto oznámení" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Žádný takový uživatel." +msgstr "Odebrat uživateli roli \"%s\"" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr " API metoda nebyla nalezena." #: lib/sandboxform.php:67 msgid "Sandbox" -msgstr "" +msgstr "Sandbox" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "Žádný takový uživatel." +msgstr "Sandboxovat tohoto uživatele" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "Hledat" +msgstr "Prohledat stránky" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" +msgstr "Klíčová slova" + +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" +msgid "Search" msgstr "" -#: lib/searchaction.php:127 -msgid "Search" -msgstr "Hledat" - -#: lib/searchaction.php:162 -#, fuzzy +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" -msgstr "Hledat" +msgstr "Nápověda k hledání" #: lib/searchgroupnav.php:80 msgid "People" -msgstr "" +msgstr "Lidé" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "Najít lidi na této stránce" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "Najít v obsahu oznámení" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "" +msgstr "Najít skupiny na této stránce" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Oddíl bez názvu" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Další…" #: lib/silenceform.php:67 -#, fuzzy msgid "Silence" -msgstr "Nové sdělení" +msgstr "Uťišit" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Žádný takový uživatel." +msgstr "Utišit tohoto uživatele" #: lib/subgroupnav.php:83 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "Vzdálený odběr" +msgstr "Lidé ke kterým je %s přihlášen" #: lib/subgroupnav.php:91 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Vzdálený odběr" +msgstr "Lidé přihlášení k %s" #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "Skupiny kterých je %s členem" #: lib/subgroupnav.php:105 msgid "Invite" -msgstr "" +msgstr "Pozvat" #: lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" -msgstr "" +msgstr "Mrak štítků kterými se uživatelé sami označili" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "" +msgstr "Mrak štítků kterými jsou uživatelé označeni" #: lib/tagcloudsection.php:56 msgid "None" -msgstr "" +msgstr "Nic" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Neplatné jméno souboru." #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "Tento server nemůže zpracovat nahrání tématu bez podpory ZIP." #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "Chybí soubor tématu nebo se nepodařilo nahrání." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." -msgstr "Nahrávání obrázku selhalo." +msgstr "Chyba při ukládání tématu." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Neplatné téma: špatná adresářová struktura." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Nahrané téma je příliš velké, nezkomprimované musí být menší než %d bajtů." +msgstr[1] "" +"Nahrané téma je příliš velké, nezkomprimované musí být menší než %d bajtů." +msgstr[2] "" +"Nahrané téma je příliš velké, nezkomprimované musí být menší než %d bajtů." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Neplatný archiv tématu: chybí soubor css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Téma obsahuje neplatné jméno souboru nebo složky. Zůstaňte u písmen ASCII, " +"číslic, podtržítka a mínusu." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Téma obsahuje nebezpečné přípony souborů, může být nebezpečné." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Téma obsahuje soubor typu '.%s', což není povoleno." -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Chyba při aktualizaci vzdáleného profilu" +msgstr "Chyba při otevírání archivu tématu." #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Nejlepší pisálci" + +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Odblokovat" #: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "" +msgstr "Odsandboxovat" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "Žádný takový uživatel." +msgstr "Odsandboxovat tohoto uživatele" #: lib/unsilenceform.php:67 msgid "Unsilence" -msgstr "" +msgstr "Zrušit utišení" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "Žádný takový uživatel." +msgstr "Zrušit utišení tohoto uživatele" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "" +msgstr "Odhlásit se od tohoto uživatele" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "Odhlásit" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Uživatel nemá profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Upravit avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Akce uživatele" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." -msgstr "" +msgstr "Probíhá mazání uživatele..." -#: lib/userprofile.php:263 -#, fuzzy +#: lib/userprofile.php:265 msgid "Edit profile settings" -msgstr "Nastavené Profilu" +msgstr "Upravit nastavení profilu" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" -msgstr "" +msgstr "Editovat" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" -msgstr "" +msgstr "Odeslat přímou zprávu tomuto uživateli" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Zpráva" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" -msgstr "" +msgstr "Moderovat" -#: lib/userprofile.php:364 -#, fuzzy +#: lib/userprofile.php:369 msgid "User role" -msgstr "Uživatel nemá profil." +msgstr "Role uživatele" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" -msgstr "" +msgstr "Administrátor" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "Moderátor" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "před pár sekundami" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "asi před minutou" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "asi před %d minutami" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "asi před hodinou" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "asi před %d hodinami" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "asi přede dnem" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "před %d dny" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "asi před měsícem" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "asi před %d mesíci" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "asi před rokem" -#: lib/webcolor.php:82 -#, fuzzy, php-format +#: lib/webcolor.php:80 +#, php-format msgid "%s is not a valid color!" -msgstr "Stránka není platnou URL." +msgstr "%s není platná barva!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s není platná barva! Použijte 3 nebo 6 hex znaků." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[1] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." +msgstr[2] "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Neplatná velikost" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Nebylo zadáno uživatelské ID." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" diff --git a/locale/da/LC_MESSAGES/statusnet.po b/locale/da/LC_MESSAGES/statusnet.po index f68253d226..32e65b0fe0 100644 --- a/locale/da/LC_MESSAGES/statusnet.po +++ b/locale/da/LC_MESSAGES/statusnet.po @@ -1,238 +1,309 @@ -# Translation of StatusNet to Danish +# Translation of StatusNet - Core to Danish (Dansk) +# Expored from translatewiki.net # -# Author@translatewiki.net: Mstenbaek +# Author: Brion +# Author: Mstenbaek # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:15+0000\n" -"Language-Team: Danish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:31+0000\n" +"Language-Team: Danish <http://translatewiki.net/wiki/Portal:da>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: da\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Adgang" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Indstillinger for adgang til webstedet" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrering" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Forhindre anonyme brugere (som ikke er logget ind) i at se webstedet?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privat" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Registreing er kun mulig gennem en invitation" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Kun Inviterede" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Forhindre nye registreringer" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Lukket" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Gem adgangsindstillinger" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Gem" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Siden findes ikke" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ingen bruger fundet." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s og venner, side %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s og venner" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed for venner af %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed for venner af %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed for venner af %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Dette er tidslinjen for %s og venner, men ingen har skrevet noget endnu." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"Prøv at abonnere på flere personer, [deltage i en gruppe] (%%action.groups%" -"%) eller skriv noget selv." +"Prøv at abonnere på flere personer, [deltage i en gruppe](%%action.groups%%) " +"eller skriv noget selv." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Du kan forsøge at [puffe %1$s](../%2$s) fra hans eller hendes profil eller " +"[skriv noget som fanger hans eller hendes opmærksomhed](%%%%action.newnotice%" +"%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Hvorfor ikke [registrere en konto] (%%action.register%%), og vær den første " -"til at tilføje en meddelelse til dine favoritter!" +"Hvorfor ikke [registrere en konto ](%%%%action.register%%%%) og derefter " +"puffe %s eller sende en meddelelse til hans eller hendes opmærksomhed." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Du og vennerne" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Opdateringer fra %1$s og venner på %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API metode ikke fundet." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Denne metode kræver en POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -240,347 +311,517 @@ msgstr "" "Du skal angive en parameter med navnet 'device', med værdien sat til en af " "følgende: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Kunne ikke opdatere brugeren." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Brugeren har ingen profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Kunne ikke gemme profilen." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" -"Serveren var ikke i stand til at håndtere så meget POST data (%s bytes) på " -"grund af sin nuværende konfiguration." +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Kunne ikke gemme dine design indstillinger." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Kunne ikke opdatere dit design." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tidslinie" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Tilføj til favoritter" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s gruppe medlemmer" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Du kan ikke blokere dig selv!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokering af bruger mislykkedes" -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Ophæv blokering af bruger mislykkedes." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direkte beskeder fra %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle direkte beskeder, sendt fra %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direkte beskeder til %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle direkte beskeder, sendt til %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Ingen besked tekst!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Det er for langt. Maksimal besked størrelse er %d tegn." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +msgstr[1] "" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Modtager bruger ikke fundet" -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Kan ikke sende direkte beskeder til brugere, som ikke din ven." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Ingen status fundet med dette ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Denne status er allerede en favorit." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Kunne ikke oprette favorit." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Denne status er ikke en favorit." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Kunne ikke slette favorit." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." -msgstr "" +msgstr "Kunne ikke følge bruger: bruger profil ikke fundet." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Kunne ikke følge bruger: %s er allerede på din liste." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Kunne ikke stoppe følgeskab af bruger: Bruger ikke fundet." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Du kan ikke ophæve følgeskab til dig selv." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Kunne ikke finde kilde bruger" -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Kunne ikke finde mål bruger." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Kaldenavn må kun have små bogstaver og tal og ingen mellemrum." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Kaldenavn allerede er i brug. Prøv med et andet." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ikke et gyldigt kaldenavn" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Hjemmesiden er ikke en gyldig URL adresse." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Fulde navn er for langt (max 255 tegn)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Beskrivelse er for lang (max %d tegn)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Placering er for lang (max 255 tegn)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Alt for mange aliaser! Maksimum %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ugyldigt alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" er allerede i brug. Prøv med et andet." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias kan ikke være det samme som kaldenavn." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Gruppen blev ikke fundet." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Du er allerede medlem af denne gruppe." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Du er blevet blokeret fra denne gruppe af administratoren." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunne ikke tilslutte bruger %1$s til gruppe %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Du er ikke medlem af denne gruppe." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunne ikke fjerne brugeren %1$s fra gruppen %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s's grupper" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s grupper som %2$s er medlem af." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s's grupper" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupper på %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Ophæv blokering af bruger mislykkedes." +msgstr "Upload mislykkedes." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Ingen oauth_token parameter angivet." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Ugyldigt token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "" -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Der var et problem med din session token. Venligst prøv igen." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Ugyldig kaldenavn / password!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Databasefejl ved sletning af OAuth applikationsbruger." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Databasefejl ved tilføjelse af OAuth applikationsbruger." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" -"Anmodnings-token %s er blevet godkendt. Venligst anvend den til en Adgangs-" -"token." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Anmodnings-token %s er blevet afvist og trukket tilbage." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Uventet formularafsendelse." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "En applikation vil gerne forbinde til din konto" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Tillad eller Afvis adgang" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -591,241 +832,613 @@ msgstr "" "strong> dine data for konto %4$s. Du bør kun give adgang til din %4$s konto " "til tredjemand du stoler på." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" -msgstr "Konto" +msgstr "" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Kaldenavn" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Adgangskode" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Nægt" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Afbryd" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" -msgstr "Tillad" +msgstr "" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Tillad eller nægte adgang til dine kontooplysninger." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Denne metode kræver en POST eller DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Du kan ikke slette en anden brugers status." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ingen sådan meddelelse." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Kan ikke gentage din egen meddelelse." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Allerede gentaget denne medelelse." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "" + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status slettet." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Ingen status med dette ID fundet." -#: actions/apistatusesupdate.php:221 -msgid "Client must provide a 'status' parameter with a value." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Kan ikke slette denne meddelelse." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Klienten programmet skal give en \"status\" parameter med en værdi." + +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Det er for langt. Maksimal besked størrelse er %d tegn." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" +msgstr[1] "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Ikke fundet." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "Max meddelelse størrelse er %d tegn, inklusiv vedlagt URL." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formatet understøttes ikke" -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / favoritter fra %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s opdateringer favoriseret af %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / opdateringer nævner %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s opdateringer, som svar på opdateringer fra %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s offentlig tidslinie" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s opdateringer fra alle!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Gentagne til %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Gentaget af %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Bekendtgørelser tagged med %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Opdateringer tagged med %1$s på %2$s!" -#: actions/apitrends.php:87 -msgid "API method under construction." +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." msgstr "" +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Kan ikke gentage din egen meddelelse." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +msgid "API method under construction." +msgstr "API metode under udvikling." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ingen sådan fil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kunne ikke indsætte bekræftelseskode." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Kunne ikke gemme dine design indstillinger." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Ingen meddelelse." + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Tilføj til favoritter" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Ingen sådan fil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s gruppe medlemmer" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%1$s grupper som %2$s er medlem af." + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Ny gruppe" + +#: actions/atompubmembershipfeed.php:263 +msgid "Already a member." +msgstr "" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ingen sådan fil." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Kunne ikke slette favorit." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Ingen sådan gruppe." + +#: actions/atompubshowmembership.php:90 +msgid "Not a member" +msgstr "" + +#: actions/atompubshowmembership.php:115 +msgid "Method not supported" +msgstr "" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ingen sådan fil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Du er ikke medlem af denne gruppe." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Kunne ikke slette favorit." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "This person is subscribed to you:" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Brugeren har ingen profil." + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ingen sådan fil." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Ingen kaldenavn." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ingen størrelse." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ugyldig størrelse." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Du kan uploade dine personlige avatar. Den maksimale filstørrelse er %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Bruger uden matchende profil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar indstillinger" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forhåndsvisning" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "Slet" +msgstr "" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" -msgstr "Oplægge" +msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" -msgstr "Beskær" +msgstr "" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Ingen fil uploaded." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Vælg en firkantet område af billedet til at være din avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Mistede vores fil data." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar opdateret." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Mislykket ajourføring af Avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar slettet." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Du har allerede blokeret for denne bruger." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloker bruger" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -837,175 +1450,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nej" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Bloker ikke denne bruger" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloker denne bruger" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Kunne ikke gemme blokerings oplysninger." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Ingen sådan gruppe." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s blokerede profiler" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blokerede profiler, side %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "En liste over brugere blokeret fra at deltage i denne gruppe." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Ophæv blokering af bruger fra gruppe" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" -msgstr "Fjern blokering" +msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Fjern blokeringen af denne bruger" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Post til %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Ingen bekræftelseskode." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Bekræftelseskode ikke fundet." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Denne bekræftelseskode er ikke til dig!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Ukendte adresse type %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Denne adresse er allerede blevet bekræftet." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Kunne ikke opdatere brugeren." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Kunne ikke slette e-mail bekræftelse." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "" -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Bekræft adresse" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adressen \"%s\" er blevet bekræftet for din konto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Samtale" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Bekendtgørelser" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Du skal være logget ind for at slette et program." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Program ikke fundet." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Du er ikke ejer af dette program." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Der var et problem med din session token." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Slet program" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1015,31 +1672,85 @@ msgstr "" "anvendelsen fra databasen, herunder alle eksisterende bruger indstillinger." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Slet ikke dette program" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Slet dette program" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Ingen brugernavn eller ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "" + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ikke logget ind" -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Kan ikke slette denne meddelelse." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1047,21 +1758,24 @@ msgstr "" "Du er ved permanent at slette en meddelelse. Når dette er gjort, kan det " "ikke fortrydes." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Slet meddelelse" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Er du sikker på du vil slette denne meddelelse?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Slet ikke denne meddelelse" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Slet denne meddelelse" @@ -1092,62 +1806,71 @@ msgstr "Slet denne bruger" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Design" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Design indstillinger for dette StatusNet site." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Ugyldig logo URL." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "" + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema ikke tilgængelige: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Skift logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Site logo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Skift tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Site tema" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema for webstedet." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Brugerdefineret tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Du kan uploade en brugerdefineret StatusNet tema som en. ZIP arkiv." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Skift baggrundsbillede" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Baggrund" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1157,75 +1880,84 @@ msgstr "" "er %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Til" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Fra" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Slå baggrundsbilledet til eller fra." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Tile baggrundsbillede" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Skift farver" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Indhold" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Sidebar" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Henvisninger" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avanceret" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Personlig CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Brug standardindstillinger" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Gendan standard indstillinger" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Nulstil til standard værdier" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Gem" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Gem design" @@ -1242,109 +1974,130 @@ msgstr "Tilføj til favoritter" msgid "No such document \"%s\"" msgstr "Ingen sådan dokument \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +#, fuzzy +msgid "Edit application" msgstr "Rediger program" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Du skal være logget ind for at redigere et program." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Ingen sådan program" -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Brug denne formular til at redigere dit program." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Navn er påkrævet." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." -msgstr "Navnet er for langt (max 255 tegn)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Navn allerede i brug. Prøv et andet." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Beskrivelse er påkrævet." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Kilde-URL er for lang." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Kilde-URL er ikke gyldig." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisationen er påkrævet." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "Organisationen er for lang (max 255 tegn)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Organisationens hjemmeside er påkrævet." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Callback er for lang." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Tilbagekaldswebadresse er ikke gyldig." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Kunne ikke opdatere programmet." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Rediger %s gruppe" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Du skal være logget ind for at oprette en gruppe." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Du skal være administrator for at redigere gruppen." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Brug denne formular til at redigere gruppen." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Beskrivelsen er for lang (max %d tegn)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ugyldigt alias: \"%s\"." -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Kunne ikke opdatere gruppe." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Kunne ikke oprette aliaser." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Valg gemt." @@ -1362,12 +2115,12 @@ msgstr "Administrer hvordan du får e-mail fra %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-mail adresse" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Nuværende bekræftet email-adresse." @@ -1376,14 +2129,14 @@ msgstr "Nuværende bekræftet email-adresse." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Fjern" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1391,25 +2144,19 @@ msgstr "" "Afventer bekræftelse på denne adresse. Tjek din indbakke (og spam box!) for " "en besked med yderligere instruktioner." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Afbryd" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-mail adresse, som \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1417,111 +2164,118 @@ msgstr "Tilføj" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Indgående e-mail" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Jeg ønsker at sende meddelelser via e-mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Send e-mail til denne adresse for at skrive nye bekendtgørelser." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Opret en ny e-mail adresse til postering af beskeder; annullerer den gamle." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Ny" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Email indstillinger" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Send mig meddelelser om nye abonnementer via e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Send mig email, når nogen har tilføjet min meddelelse som en favorit." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Send mig email, når nogen sender mig en privat besked." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Send mig email, når nogen sender mig et \"@-svar\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Tillad venner at puffe mig og at sende mig en e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Jeg ønsker at sende meddelelser via e-mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Udgiv et MicroID til min email adresse." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Email indstillinger gemt." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Ingen e-mail-adresse." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Kan ikke normalisere denne e-mail adresse" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ikke en gyldig e-mail adresse." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Det er allerede din e-mail adresse." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Denne e-mail adresse tilhører allerede en anden bruger." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Kunne ikke indsætte bekræftelseskode." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1533,50 +2287,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ingen afventende bekræftelse at annullere." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Det er den forkerte e-mail adresse." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kunne ikke slette e-mail bekræftelse." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Email bekræftelse aflyst." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Det er ikke din e-mail adresse." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "E-mail adressen blev fjernet." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ingen indkommende e-mail adresse." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kunne ikke opdatere bruger oplysninger." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Indgående e-mail adresse fjernet." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Ny indkommende e-mail adresse tilføjet." @@ -1584,11 +2344,11 @@ msgstr "Ny indkommende e-mail adresse tilføjet." msgid "This notice is already a favorite!" msgstr "Denne meddelelse er allerede en favorit!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Fjern markering som favorit" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populære bekendtgørelser" @@ -1622,11 +2382,11 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" -"Hvorfor ikke [registrere en konto] (%%action.register%%), og vær den første " +"Hvorfor ikke [registrere en konto](%%action.register%%), og vær den første " "til at tilføje en meddelelse til dine favoritter!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s's favorit bekendtgørelser" @@ -1695,7 +2455,7 @@ msgstr "Kunne ikke konvertere anmodnings-token til et adgangs-token." msgid "Remote service uses unknown version of OMB protocol." msgstr "Fjerntjenesten bruger en ukendt version af 0MB protokol." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Fejl ved opdatering af fjernbetjeningsprofil." @@ -1723,19 +2483,23 @@ msgstr "Du kan ikke tildele brugerroller på dette site." msgid "User already has this role." msgstr "Bruger har allerede denne rolle." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Ingen profil specificeret." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Ingen profil med det ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Ingen gruppe angivet." @@ -1752,7 +2516,7 @@ msgstr "Bruger er allerede blokeret fra gruppen." msgid "User is not a member of group." msgstr "Brugeren er ikke medlem af gruppen." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloker bruger fra gruppe" @@ -1801,8 +2565,10 @@ msgstr "" "Tilpas den måde din gruppe vises på, med et baggrundsbillede og en " "farvepalet efter dit valg." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Kunne ikke opdatere dit design." @@ -1822,6 +2588,14 @@ msgstr "" "Du kan uploade et logo billede til din gruppe. Den maksimale filstørrelse er " "%s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Oplægge" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Beskær" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Vælg en firkantet område af billedet, der skal logoet." @@ -1834,67 +2608,74 @@ msgstr "Logo opdateret." msgid "Failed updating logo." msgstr "Mislykket ajourføring af logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s gruppe medlemmer" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" -msgstr "" +msgstr "%1$s gruppe medlemmer, side %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." -msgstr "" +msgstr "En liste over brugerne i denne gruppe." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" -msgstr "" +msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 -msgid "Make user an admin of the group" +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" msgstr "" -#: actions/groupmembers.php:519 +#: actions/groupmembers.php:498 +msgid "Make user an admin of the group" +msgstr "Gør bruger til administrator af gruppen" + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "" +msgstr "Opdateringer fra medlemmer af %1$s på %2$s!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" -msgstr "" +msgstr "Grupper" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Grupper, side %d" #: actions/groups.php:90 -#, php-format +#, fuzzy, php-format msgid "" "%%%%site.name%%%% groups let you find and talk with people of similar " "interests. After you join a group you can send messages to all other members " @@ -1902,10 +2683,15 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"%%%%Site.name%%%% grupperne hjælper dig med at finde og snakke med folk med " +"samme interesser. Når du har tilmeldt sig en gruppe, kan du sende besked til " +"alle andre medlemmer ved hjælp af syntaksen \"! Gruppenavn\". Kan du ikke se " +"en gruppe, du kan lide? Prøv at [søger efter en](%%%%action.groupsearch%%%%) " +"eller [start din egen gruppe!](%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 msgid "Create a new group" -msgstr "" +msgstr "Opret en ny gruppe" #: actions/groupsearch.php:52 #, php-format @@ -1913,15 +2699,18 @@ 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 "" +"Søg efter grupper på %%site.name%% efter navn, beliggenhed eller " +"beskrivelse. Adskil søge vilkår med mellemrum, de skal mindst være 3 " +"karakterer eller derover." #: actions/groupsearch.php:58 msgid "Group search" -msgstr "" +msgstr "Gruppe søgning" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 msgid "No results." -msgstr "" +msgstr "Ingen resultater." #: actions/groupsearch.php:82 #, php-format @@ -1929,6 +2718,8 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" +"Hvis du ikke kan finde den gruppe du leder efter, kan du [oprette den](%%" +"action.newgroup%%) selv." #: actions/groupsearch.php:85 #, php-format @@ -1936,23 +2727,28 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%) og [oprette gruppen]" +"(%%action.newgroup%%) selv!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "Kun en administrator kan fjerne en blokering af gruppens medlemmer." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "" +msgstr "Brugeren er ikke blokeret fra gruppen." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." -msgstr "" +msgstr "Fejl ved fjernelse af blokkering." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 msgid "IM settings" -msgstr "" +msgstr "Chatindstillinger" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -1963,21 +2759,23 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" +"Du kan sende og modtage meddelelser via Jabber/GTalk [instant messages](%%" +"doc.im%%). Konfigurer din adresse og indstillinger nedenfor." #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. #: actions/imsettings.php:94 msgid "IM is not available." -msgstr "" +msgstr "Chatbeskeder ikke tilgængelig." #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 msgid "IM address" -msgstr "" +msgstr "Chatbesked adresse" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." -msgstr "" +msgstr "Nuværende bekræftet Jabber / GTalk adresse." #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -1987,203 +2785,253 @@ msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" +"Afventer bekræftelse på denne adresse. Tjek din Jabber/GTalk konto for en " +"besked med yderligere instruktioner. (Har du tilføje %s til din venneliste?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format 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 "" +"Jabber eller GTalk-adresse, som \"UserName@example.org\". Først skal du " +"sørge for at tilføje %s til din venneliste i din IM klient eller på GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "" +msgstr "Chat indstillinger" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." -msgstr "" +msgstr "Send mig meddelelser via Jabber / GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "" +msgstr "Send en note, når min Jabber / GTalk status ændringer." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "" +msgstr "Send mig svar gennem Jabber / GTalk fra folk, jeg ikke abonnerer på." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "Udgiv et MicroID for min Jabber / GTalk adresse." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." -msgstr "" +msgstr "Indstillinger gemt." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." -msgstr "" +msgstr "Ingen Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "" +msgstr "Kan ikke normalisere denne Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" -msgstr "" +msgstr "Ikke et gyldigt Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." -msgstr "" +msgstr "Det er allerede din Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." -msgstr "" +msgstr "Jabber ID tilhører allerede en anden bruger." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" +"En bekræftelse kode blev sendt til den IM-adresse, du har tilføjet. Du skal " +"godkende %s for at sende beskeder til dig." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." -msgstr "" +msgstr "Det er den forkerte IM-adresse." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." -msgstr "" +msgstr "Kunne ikke slette IM bekræftelse." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "" +msgstr "IM bekræftelse afbrudt." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "" +msgstr "Det er ikke din Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "" +msgstr "IM-adresse blev fjernet." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "" +msgstr "Indbakke for %1$s - side %2$d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Indbakke for %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "Dette er din indbakke, der viser dine indgående private beskeder." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." -msgstr "" +msgstr "Invitationer er blevet deaktiveret." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." -msgstr "" +msgstr "Du skal være logget ind for at invitere andre brugere til at bruge %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" +msgid "Invalid email address: %s." msgstr "" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" -msgstr "" +msgstr "Inviter nye brugere" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "" +msgstr[1] "" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"Du vil få besked, når din inviterede acceptere invitationen og tilmelder sig " +"på netstedet. Tak for at du hjælper os med at vokse!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"Brug denne formular til at invitere dine venner og kolleger til at bruge " +"denne service." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" -msgstr "" +msgstr "Email-adresser" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" -msgstr "" +msgstr "Adresser på venner som skal inviteres (en pr linje)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" -msgstr "" +msgstr "Personlig besked" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "Hvis du vil, kan du tilføje en personlig besked til invitationen." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" -msgstr "" +msgstr "Send" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s har inviteret dig til at slutte sig til dem på %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2213,178 +3061,317 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" +"%1$s har inviteret dig til at slutte sig til sig på %2$s (%3$s). \n" +"\n" +"%2$s er en mikro-blogging-tjeneste, hvor du kan holde dig opdateret med folk " +"du kender og folk, der interesserer dig. \n" +"\n" +"Du kan også dele nyheder om dig selv, dine tanker, eller dit liv online med " +"folk, der kender dig. Det er også godt til at møde nye mennesker, der deler " +"dine interesser. \n" +"\n" +"%1$s skrev: \n" +"\n" +"%4$s \n" +"\n" +"Du kan se %1$s's profil side på %2$s her: \n" +"\n" +" %5$s \n" +"\n" +"Hvis du gerne vil prøve tjenesten, skal du klikke på linket nedenfor for at " +"acceptere invitationen. \n" +"\n" +" %6$s \n" +"\n" +"Hvis ikke, kan du ignorere denne besked. Tak for din tålmodighed og din " +"tid. \n" +"\n" +"Med venlig hilsen,\n" +"%2$s\n" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Du skal være logget ind for at deltage i en gruppe." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "" +msgstr "%1$s blev medlem af gruppe n %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "Du skal være logget på for at forlade en gruppe." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." -msgstr "" +msgstr "Du er ikke medlem af denne gruppe." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" +msgstr "%1$s forlod gruppe %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." -msgstr "" +msgstr "Allerede logget ind" #: actions/login.php:148 msgid "Incorrect username or password." -msgstr "" +msgstr "Forkert brugernavn eller password." #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "" +msgstr "Fejl ved indstilling af bruger. Du har sandsynligvis ikke tilladelse." #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" -msgstr "" +msgstr "Log ind" #: actions/login.php:249 msgid "Login to site" -msgstr "" +msgstr "Login til webstedet" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" -msgstr "" +msgstr "Husk mig" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" -msgstr "" +msgstr "Automatisk login fremover, ikke for computere, der deles!" #: actions/login.php:269 msgid "Lost or forgotten password?" -msgstr "" +msgstr "Mistet eller glemt password?" #: actions/login.php:288 msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" +"Af sikkerhedsmæssige årsager bedes du indtaste dit brugernavn og din " +"adgangskode før du ændrer dine indstillinger." #: actions/login.php:292 msgid "Login with your username and password." -msgstr "" +msgstr "Log ind med dit brugernavn og password." #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" +"Har du ikke et brugernavn endnu? [Register](%%action.register%%) en ny konto." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "Kun en admin kan gøre en anden bruger til admin." #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "%1$s er allerede administrator for gruppen «%2$s»." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" +msgstr "Kan ikke finde medlemskab oplysninger for %1$s i gruppen %2$s." #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "" +msgstr "Kan ikke gøre %1$s til admin for gruppen %2$s." #: actions/microsummary.php:69 msgid "No current status." msgstr "" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." -msgstr "" +msgstr "Du skal være logget ind for at registrere et program." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." -msgstr "" +msgstr "Brug denne formular til at registrere et nyt program." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." -msgstr "" +msgstr "Kilde-URL er påkrævet." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." -msgstr "" +msgstr "Kunne ikke oprette programmet." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Ny gruppe" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "" +msgstr "Brug denne formular for at oprette en ny gruppe." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" -msgstr "" +msgstr "Ny besked" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." -msgstr "" +msgstr "Du kan ikke sende en besked til denne bruger." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" -msgstr "" +msgstr "Ingen indhold!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." -msgstr "" +msgstr "Ingen modtager specificeret." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"Du kan ikke sende en besked til dig selv, bare sig det stille til dig selv i " +"stedet." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" -msgstr "" +msgstr "Beskeden er sendt" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." -msgstr "" +msgstr "Direkte besked til %s sendt." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" -msgstr "" +msgstr "Ajax Fejl" #: actions/newnotice.php:69 msgid "New notice" -msgstr "" +msgstr "Ny meddelelse" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" -msgstr "" +msgstr "Meddelelse gemt" #: actions/noticesearch.php:68 #, php-format @@ -2392,15 +3379,17 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" +"Søg efter indhold af meddelelser på %%site.name%%. Separer søgetermer med " +"mellemrum, de skal være 3 karakterer eller derover." #: actions/noticesearch.php:78 msgid "Text search" -msgstr "" +msgstr "Tekst søgning" #: actions/noticesearch.php:91 #, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "" +msgstr "Søgeresultater for \"%1$s\" på %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2408,6 +3397,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Vær den første til at [skrive om dette emne](%%%%action.newnotice%%%%?" +"status_textarea=%s) !" #: actions/noticesearch.php:124 #, php-format @@ -2415,154 +3406,199 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Hvorfor ikke [registrere en konto](%%%%action.register%%%%) og vær den " +"første til at [skrive om dette emne ](%%%%action.newnotice%%%%?" +"status_textarea=%s) !" #: actions/noticesearchrss.php:96 #, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "Opdateringer med \"%s\"" #: actions/noticesearchrss.php:98 #, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "" +msgstr "Opdateringer matcher søgeordet \"%1$s\" på %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Puf sendt" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Puf sendt!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "" +msgstr "Du skal være logget ind for at liste dine applikationer." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" -msgstr "" +msgstr "OAuth programmer" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "" +msgstr "Programmer, du har registreret" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "Du har ikke registreret nogen programmer endnu." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" -msgstr "" +msgstr "Tilsluttede programmer" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." -msgstr "" +msgstr "Du er ikke bruger af dette program." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 +#, fuzzy msgid "Notice has no profile." -msgstr "" +msgstr "Brugeren har ingen profil." -#: actions/oembed.php:87 actions/shownotice.php:175 -#, php-format +#: actions/oembed.php:83 actions/shownotice.php:172 +#, fuzzy, php-format msgid "%1$s's status on %2$s" -msgstr "" +msgstr "%1$s / favoritter fra %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 +#, fuzzy msgid "Not a supported data format." -msgstr "" +msgstr "Formatet understøttes ikke" #: actions/opensearch.php:64 msgid "People Search" msgstr "" #: actions/opensearch.php:67 +#, fuzzy msgid "Notice Search" -msgstr "" +msgstr "Bekendtgørelser" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 +#, fuzzy msgid "Other settings" -msgstr "" +msgstr "Avatar indstillinger" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "" #: actions/otp.php:69 +#, fuzzy msgid "No user ID specified." -msgstr "" +msgstr "Ingen gruppe angivet." #: actions/otp.php:83 +#, fuzzy msgid "No login token specified." -msgstr "" +msgstr "Ingen profil specificeret." #: actions/otp.php:90 msgid "No login token requested." msgstr "" #: actions/otp.php:95 +#, fuzzy msgid "Invalid login token specified." -msgstr "" +msgstr "Ugyldigt token." #: actions/otp.php:104 msgid "Login token expired." @@ -2583,33 +3619,36 @@ msgid "This is your outbox, which lists private messages you have sent." msgstr "" #: actions/passwordsettings.php:58 +#, fuzzy msgid "Change password" -msgstr "" +msgstr "Skift farver" #: actions/passwordsettings.php:69 +#, fuzzy msgid "Change your password." -msgstr "" +msgstr "Skift farver" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +#, fuzzy msgid "Password change" -msgstr "" +msgstr "Adgangskode" #: actions/passwordsettings.php:104 msgid "Old password" -msgstr "" +msgstr "Gammel adgangskode" #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" -msgstr "" +msgstr "Ny adgangskode" #: actions/passwordsettings.php:109 msgid "6 or more characters" msgstr "" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" -msgstr "" +msgstr "Bekræft" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" @@ -2617,13 +3656,13 @@ msgstr "" #: actions/passwordsettings.php:117 msgid "Change" -msgstr "" +msgstr "Ændre" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "" -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "" @@ -2640,159 +3679,286 @@ msgid "Can't save new password." msgstr "" #: actions/passwordsettings.php:192 actions/recoverpassword.php:211 +#, fuzzy msgid "Password saved." -msgstr "" +msgstr "Adgangskode" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 -#, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, fuzzy, php-format msgid "Theme directory not readable: %s." -msgstr "" +msgstr "Tema ikke tilgængelige: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 +#, fuzzy msgid "Site" -msgstr "" +msgstr "Site logo" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 +#, fuzzy msgid "Server" -msgstr "" +msgstr "Gem" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +msgid "Site path." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 -msgid "Theme" -msgstr "" - -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "" - -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" - #: actions/pathsadminpanel.php:272 -msgid "Theme directory" +msgid "Theme" +msgstr "Tema" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." msgstr "" -#: actions/pathsadminpanel.php:279 -msgid "Avatars" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +#, fuzzy +msgid "Avatars" +msgstr "Avatar" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +#, fuzzy +msgid "Avatar server" +msgstr "Avatar indstillinger" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +#, fuzzy +msgid "Avatar path" +msgstr "Avatar opdateret." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +#, fuzzy +msgid "Avatar directory" +msgstr "Avatar slettet." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +#, fuzzy +msgid "Backgrounds" +msgstr "Baggrund" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +#, fuzzy +msgid "Attachments" +msgstr "Ingen vedhæftede filer." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Aldrig" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +#, fuzzy +msgid "Sometimes" +msgstr "Bekendtgørelser" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Altid" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "" @@ -2808,155 +3974,204 @@ msgid "People search" msgstr "" #: actions/peopletag.php:68 -#, php-format +#, fuzzy, php-format msgid "Not a valid people tag: %s." -msgstr "" +msgstr "Ikke en gyldig e-mail adresse." #: actions/peopletag.php:142 -#, php-format +#, fuzzy, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" +msgstr "Opdateringer tagged med %1$s på %2$s!" #: actions/postnotice.php:95 +#, fuzzy msgid "Invalid notice content." -msgstr "" +msgstr "Ugyldigt token." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 +#, fuzzy msgid "Profile settings" -msgstr "" +msgstr "Email indstillinger" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" +msgstr "Hjemmeside" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." msgstr "" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "" - -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "" +msgstr[1] "" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" -msgstr "" +msgstr "Lokation" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "" +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "" +msgstr[1] "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "" -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, php-format +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, fuzzy, php-format msgid "Invalid tag: \"%s\"" -msgstr "" +msgstr "Ugyldigt alias: \"%s\"." -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Kunne ikke opdatere bruger oplysninger." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 +#, fuzzy msgid "Couldn't save location prefs." -msgstr "" +msgstr "Kunne ikke indsætte bekræftelseskode." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 +#, fuzzy msgid "Couldn't save profile." -msgstr "" +msgstr "Kunne ikke gemme profilen." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 +#, fuzzy msgid "Couldn't save tags." -msgstr "" +msgstr "Kunne ikke opdatere brugeren." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 +#, fuzzy msgid "Settings saved." -msgstr "" +msgstr "Valg gemt." #: actions/public.php:83 #, php-format @@ -2964,17 +4179,19 @@ msgid "Beyond the page limit (%s)." msgstr "" #: actions/public.php:92 +#, fuzzy msgid "Could not retrieve public stream." -msgstr "" +msgstr "Kunne ikke oprette aliaser." #: actions/public.php:130 -#, php-format +#, fuzzy, php-format msgid "Public timeline, page %d" -msgstr "" +msgstr "%s offentlig tidslinie" #: actions/public.php:132 lib/publicgroupnav.php:79 +#, fuzzy msgid "Public timeline" -msgstr "" +msgstr "%s offentlig tidslinie" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" @@ -2989,21 +4206,24 @@ msgid "Public Stream Feed (Atom)" msgstr "" #: actions/public.php:188 -#, php-format +#, fuzzy, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"Dette er tidslinjen for %s og venner, men ingen har skrevet noget endnu." #: actions/public.php:191 msgid "Be the first to post!" msgstr "" #: actions/public.php:195 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" #: actions/public.php:242 #, php-format @@ -3022,42 +4242,60 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 -#, php-format +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 +#, fuzzy, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 +#, fuzzy msgid "Tag cloud" -msgstr "" +msgstr "Skift farver" #: actions/recoverpassword.php:36 +#, fuzzy msgid "You are already logged in!" -msgstr "" +msgstr "Du har allerede blokeret for denne bruger." #: actions/recoverpassword.php:62 +#, fuzzy msgid "No such recovery code." -msgstr "" +msgstr "Ingen sådan meddelelse." #: actions/recoverpassword.php:66 msgid "Not a recovery code." @@ -3068,16 +4306,19 @@ msgid "Recovery code for unknown user." msgstr "" #: actions/recoverpassword.php:86 +#, fuzzy msgid "Error with confirmation code." -msgstr "" +msgstr "Ingen bekræftelseskode." #: actions/recoverpassword.php:97 +#, fuzzy msgid "This confirmation code is too old. Please start again." -msgstr "" +msgstr "Denne bekræftelseskode er ikke til dig!" #: actions/recoverpassword.php:111 +#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Nuværende bekræftet email-adresse." #: actions/recoverpassword.php:152 msgid "" @@ -3090,24 +4331,27 @@ msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Adgangskode" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Ingen e-mail-adresse." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 +#, fuzzy msgid "Recover" -msgstr "" +msgstr "Fjern" #: actions/recoverpassword.php:208 msgid "Reset password" -msgstr "" +msgstr "Nulstil adgangskode" #: actions/recoverpassword.php:209 msgid "Recover password" @@ -3127,11 +4371,12 @@ msgstr "" #: actions/recoverpassword.php:243 msgid "Reset" -msgstr "" +msgstr "Afbryd" #: actions/recoverpassword.php:252 +#, fuzzy msgid "Enter a nickname or email address." -msgstr "" +msgstr "Det er ikke din e-mail adresse." #: actions/recoverpassword.php:282 msgid "No user with that email address or username." @@ -3152,26 +4397,29 @@ msgid "" msgstr "" #: actions/recoverpassword.php:357 +#, fuzzy msgid "Unexpected password reset." -msgstr "" +msgstr "Uventet formularafsendelse." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "" #: actions/recoverpassword.php:369 +#, fuzzy msgid "Password and confirmation do not match." -msgstr "" +msgstr "Ingen afventende bekræftelse at annullere." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 +#, fuzzy msgid "Error setting user." -msgstr "" +msgstr "Email indstillinger" #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3180,91 +4428,101 @@ msgid "Sorry, invalid invitation code." msgstr "" #: actions/register.php:119 +#, fuzzy msgid "Registration successful" -msgstr "" +msgstr "Registrering" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 +#, fuzzy msgid "Register" -msgstr "" +msgstr "Registrering" #: actions/register.php:142 +#, fuzzy msgid "Registration not allowed." -msgstr "" +msgstr "Registrering" -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" -#: actions/register.php:219 +#: actions/register.php:218 +#, fuzzy msgid "Email address already exists." -msgstr "" +msgstr "Denne e-mail adresse tilhører allerede en anden bruger." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 +#, fuzzy msgid "Invalid username or password." -msgstr "" +msgstr "Ugyldig kaldenavn / password!" -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "" -#: actions/register.php:441 +#: actions/register.php:442 +#, fuzzy msgid "Same as password above. Required." -msgstr "" +msgstr "Navn er påkrævet." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3283,7 +4541,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3306,8 +4564,9 @@ msgid "Subscribe to a remote user" msgstr "" #: actions/remotesubscribe.php:129 +#, fuzzy msgid "User nickname" -msgstr "" +msgstr "Ingen kaldenavn." #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" @@ -3322,7 +4581,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "" @@ -3339,38 +4598,44 @@ msgid "That’s a local profile! Login to subscribe." msgstr "" #: actions/remotesubscribe.php:183 +#, fuzzy msgid "Couldn’t get a request token." -msgstr "" +msgstr "Kunne ikke konvertere anmodnings-token til et adgangs-token." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." msgstr "" #: actions/repeat.php:64 actions/repeat.php:71 +#, fuzzy msgid "No notice specified." -msgstr "" +msgstr "Ingen profil specificeret." #: actions/repeat.php:76 +#, fuzzy msgid "You can't repeat your own notice." -msgstr "" +msgstr "Kan ikke gentage din egen meddelelse." #: actions/repeat.php:90 +#, fuzzy msgid "You already repeated that notice." -msgstr "" +msgstr "Allerede gentaget denne medelelse." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 +#, fuzzy msgid "Repeated" -msgstr "" +msgstr "Gentagne til %s" #: actions/repeat.php:119 +#, fuzzy msgid "Repeated!" -msgstr "" +msgstr "Gentagne til %s" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 -#, php-format +#: lib/personalgroupnav.php:108 +#, fuzzy, php-format msgid "Replies to %s" -msgstr "" +msgstr "Gentaget af %s" #: actions/replies.php:128 #, php-format @@ -3378,19 +4643,19 @@ msgid "Replies to %1$s, page %2$d" msgstr "" #: actions/replies.php:145 -#, php-format +#, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/replies.php:152 -#, php-format +#, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/replies.php:159 -#, php-format +#, fuzzy, php-format msgid "Replies feed for %s (Atom)" -msgstr "" +msgstr "Feed for venner af %s (Atom)" #: actions/replies.php:199 #, fuzzy, php-format @@ -3415,38 +4680,43 @@ msgid "" msgstr "" #: actions/repliesrss.php:72 -#, php-format +#, fuzzy, php-format msgid "Replies to %1$s on %2$s!" -msgstr "" +msgstr "Opdateringer markeret som favorit af %1$s på %2$s!" #: actions/revokerole.php:75 +#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "" +msgstr "Du kan ikke tildele brugerroller på dette site." #: actions/revokerole.php:82 +#, fuzzy msgid "User doesn't have this role." -msgstr "" +msgstr "Bruger har allerede denne rolle." #: actions/rsd.php:146 actions/version.php:159 +#, fuzzy msgid "StatusNet" -msgstr "" +msgstr "Status slettet." #: actions/sandbox.php:65 actions/unsandbox.php:65 +#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "" +msgstr "Du kan ikke tildele brugerroller på dette site." #: actions/sandbox.php:72 +#, fuzzy msgid "User is already sandboxed." -msgstr "" +msgstr "Bruger er allerede blokeret fra gruppen." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3466,41 +4736,47 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 +#, fuzzy msgid "Save site settings" -msgstr "" +msgstr "Gem adgangsindstillinger" #: actions/showapplication.php:82 +#, fuzzy msgid "You must be logged in to view an application." -msgstr "" +msgstr "Du skal være logget ind for at redigere et program." #: actions/showapplication.php:157 +#, fuzzy msgid "Application profile" -msgstr "" +msgstr "Program ikke fundet." #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 +#, fuzzy msgid "Name" -msgstr "" +msgstr "Kaldenavn" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 +#, fuzzy msgid "Organization" -msgstr "" +msgstr "Organisationen er påkrævet." #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 +#, fuzzy msgid "Description" -msgstr "" +msgstr "Beskrivelse er påkrævet." -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "" @@ -3511,16 +4787,23 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 +#, fuzzy msgid "Application actions" -msgstr "" +msgstr "Program ikke fundet." #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Slet" + #: actions/showapplication.php:261 +#, fuzzy msgid "Application info" -msgstr "" +msgstr "Program ikke fundet." #: actions/showapplication.php:263 msgid "Consumer key" @@ -3549,32 +4832,34 @@ msgid "" msgstr "" #: actions/showapplication.php:309 +#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "" +msgstr "Er du sikker på du vil slette denne meddelelse?" #: actions/showfavorites.php:79 -#, php-format +#, fuzzy, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "" +msgstr "%s's favorit bekendtgørelser" #: actions/showfavorites.php:132 +#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Kunne ikke oprette favorit." #: actions/showfavorites.php:171 -#, php-format +#, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/showfavorites.php:178 -#, php-format +#, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/showfavorites.php:185 -#, php-format +#, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "" +msgstr "Feed for venner af %s (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3590,88 +4875,120 @@ msgid "" msgstr "" #: actions/showfavorites.php:212 -#, php-format +#, fuzzy, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 -#, php-format +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 +#, fuzzy, php-format msgid "%s group" -msgstr "" +msgstr "%s's grupper" -#: actions/showgroup.php:84 -#, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, fuzzy, php-format msgid "%1$s group, page %2$d" -msgstr "" +msgstr "%1$s og venner, side %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 +#, fuzzy msgid "Group profile" -msgstr "" +msgstr "Gruppe logo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 +#, fuzzy msgid "Note" -msgstr "" +msgstr "Bekendtgørelser" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +#, fuzzy msgid "Group actions" -msgstr "" +msgstr "grupper på %s" -#: actions/showgroup.php:338 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" -#: actions/showgroup.php:344 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" -#: actions/showgroup.php:350 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, fuzzy, php-format msgid "Notice feed for %s group (Atom)" -msgstr "" +msgstr "Feed for venner af %s (Atom)" -#: actions/showgroup.php:355 -#, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, fuzzy, php-format msgid "FOAF for %s group" -msgstr "" +msgstr "%s's grupper" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3681,7 +4998,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3690,86 +5010,119 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 +#, fuzzy msgid "No such message." -msgstr "" +msgstr "Siden findes ikke" -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" -#: actions/showmessage.php:108 -#, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, fuzzy, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Opdateringer tagged med %1$s på %2$s!" -#: actions/showmessage.php:113 -#, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, fuzzy, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Opdateringer tagged med %1$s på %2$s!" #: actions/shownotice.php:90 +#, fuzzy msgid "Notice deleted." +msgstr "Status slettet." + +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, php-format +msgid "%1$s tagged %2$s" msgstr "" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 #, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s, page %3$d" msgstr "" -#: actions/showstream.php:79 -#, php-format +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, fuzzy, php-format msgid "%1$s, page %2$d" -msgstr "" +msgstr "%1$s og venner, side %2$d" -#: actions/showstream.php:122 -#, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, fuzzy, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "" - -#: actions/showstream.php:129 -#, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, php-format +#, fuzzy, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Feed for venner af %s (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, fuzzy, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" -#: actions/showstream.php:143 -#, php-format +#: actions/showstream.php:152 +#, fuzzy, php-format msgid "Notice feed for %s (Atom)" -msgstr "" +msgstr "Feed for venner af %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3778,7 +5131,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3786,30 +5141,35 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 -#, php-format +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, fuzzy, php-format msgid "Repeat of %s" -msgstr "" +msgstr "Gentaget af %s" #: actions/silence.php:65 actions/unsilence.php:65 +#, fuzzy msgid "You cannot silence users on this site." -msgstr "" +msgstr "Du kan ikke tildele brugerroller på dette site." #: actions/silence.php:72 +#, fuzzy msgid "User is already silenced." -msgstr "" +msgstr "Bruger er allerede blokeret fra gruppen." #: actions/siteadminpanel.php:69 +#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "" +msgstr "Design indstillinger for dette StatusNet site." #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 +#, fuzzy msgid "You must have a valid contact email address." -msgstr "" +msgstr "Ikke en gyldig e-mail adresse." #: actions/siteadminpanel.php:159 #, php-format @@ -3829,8 +5189,9 @@ msgid "General" msgstr "" #: actions/siteadminpanel.php:224 +#, fuzzy msgid "Site name" -msgstr "" +msgstr "Site tema" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -3853,8 +5214,9 @@ msgid "URL used for credits link in footer of each page" msgstr "" #: actions/siteadminpanel.php:239 +#, fuzzy msgid "Contact email address for your site" -msgstr "" +msgstr "Indgående e-mail adresse fjernet." #: actions/siteadminpanel.php:245 msgid "Local" @@ -3896,60 +5258,75 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 +#, fuzzy msgid "Site Notice" -msgstr "" +msgstr "Bekendtgørelser" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 +#, fuzzy msgid "Unable to save site notice." +msgstr "Kunne ikke gemme dine design indstillinger." + +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" - +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 +#, fuzzy msgid "Site notice text" +msgstr "Slet meddelelse" + +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" - -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 +#, fuzzy msgid "Save site notice" -msgstr "" +msgstr "Slet meddelelse" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 +#, fuzzy msgid "SMS settings" -msgstr "" +msgstr "Email indstillinger" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 -#, php-format +#, fuzzy, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Administrer hvordan du får e-mail fra %%site.name%%." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 +#, fuzzy msgid "SMS is not available." -msgstr "" +msgstr "Tema ikke tilgængelige: %s." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 +#, fuzzy msgid "SMS address" -msgstr "" +msgstr "E-mail adresse" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 +#, fuzzy msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Nuværende bekræftet email-adresse." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 @@ -3958,8 +5335,9 @@ msgstr "" #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 +#, fuzzy msgid "Confirmation code" -msgstr "" +msgstr "Ingen bekræftelseskode." #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 @@ -3968,9 +5346,10 @@ msgstr "" #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 +#, fuzzy msgctxt "BUTTON" msgid "Confirm" -msgstr "" +msgstr "Bekræft adresse" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 @@ -3984,8 +5363,9 @@ msgstr "" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 +#, fuzzy msgid "SMS preferences" -msgstr "" +msgstr "Email indstillinger" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -3996,56 +5376,69 @@ msgstr "" #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 +#, fuzzy msgid "SMS preferences saved." -msgstr "" +msgstr "Email indstillinger gemt." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 +#, fuzzy msgid "No phone number." -msgstr "" +msgstr "Ingen bruger fundet." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 +#, fuzzy msgid "No carrier selected." -msgstr "" +msgstr "Ingen profil specificeret." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 +#, fuzzy msgid "That is already your phone number." -msgstr "" +msgstr "Det er allerede din e-mail adresse." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 +#, fuzzy msgid "That phone number already belongs to another user." -msgstr "" +msgstr "Denne e-mail adresse tilhører allerede en anden bruger." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 +#, 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 "" +"En bekræftelse kode blev sendt til den e-mail adresse, du har tilføjet. Tjek " +"din indbakke (og spam box!) for koden og vejledning om, hvordan man bruger " +"den." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 +#, fuzzy msgid "That is the wrong confirmation number." -msgstr "" +msgstr "Det er den forkerte e-mail adresse." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 +#, fuzzy msgid "SMS confirmation cancelled." -msgstr "" +msgstr "Email bekræftelse aflyst." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. #: actions/smssettings.php:448 +#, fuzzy msgid "That is not your phone number." -msgstr "" +msgstr "Det er ikke din e-mail adresse." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 +#, fuzzy msgid "The SMS phone number was removed." -msgstr "" +msgstr "E-mail adressen blev fjernet." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 @@ -4073,7 +5466,7 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4082,16 +5475,18 @@ msgid "Manage snapshot configuration" msgstr "" #: actions/snapshotadminpanel.php:127 +#, fuzzy msgid "Invalid snapshot run value." -msgstr "" +msgstr "Ugyldig rolle." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 +#, fuzzy msgid "Invalid snapshot report URL." -msgstr "" +msgstr "Ugyldig logo URL." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4126,26 +5521,27 @@ msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 +#, fuzzy msgid "Save snapshot settings" -msgstr "" +msgstr "Gem adgangsindstillinger" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 +#, fuzzy msgid "You are not subscribed to that profile." -msgstr "" +msgstr "Du er ikke medlem af denne gruppe." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 +#, fuzzy msgid "Could not save subscription." -msgstr "" +msgstr "Kunne ikke gemme profilen." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "" - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4154,63 +5550,86 @@ msgstr "" msgid "Subscribed" msgstr "" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "" -#: actions/subscribers.php:52 -#, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, fuzzy, php-format msgid "%1$s subscribers, page %2$d" -msgstr "" +msgstr "%1$s blokerede profiler, side %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 -#, php-format +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, fuzzy, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%), og vær den første " +"til at tilføje en meddelelse til dine favoritter!" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "" - -#: actions/subscriptions.php:54 -#, php-format +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "" +msgstr "%1$s og venner, side %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4220,42 +5639,54 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "" -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Feed for venner af %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "" #: actions/tag.php:69 -#, php-format +#, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "" +msgstr "Bekendtgørelser tagged med %s" #: actions/tag.php:87 -#, php-format +#, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/tag.php:93 -#, php-format +#, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "" +msgstr "Feed for venner af %s (RSS 1.0)" #: actions/tag.php:99 -#, php-format +#, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "" +msgstr "Feed for venner af %s (Atom)" #: actions/tagother.php:39 +#, fuzzy msgid "No ID argument." -msgstr "" +msgstr "Ingen vedhæftede filer." #: actions/tagother.php:65 #, php-format @@ -4263,11 +5694,12 @@ msgid "Tag %s" msgstr "" #: actions/tagother.php:77 lib/userprofile.php:76 +#, fuzzy msgid "User profile" -msgstr "" +msgstr "Brugeren har ingen profil." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "" @@ -4287,32 +5719,39 @@ msgid "" msgstr "" #: actions/tagother.php:200 +#, fuzzy msgid "Could not save tags." -msgstr "" +msgstr "Kunne ikke gemme profilen." #: actions/tagother.php:236 +#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "Brug denne formular til at redigere dit program." #: actions/tagrss.php:35 +#, fuzzy msgid "No such tag." -msgstr "" +msgstr "Siden findes ikke" #: actions/unblock.php:59 +#, fuzzy msgid "You haven't blocked that user." -msgstr "" +msgstr "Du har allerede blokeret for denne bruger." #: actions/unsandbox.php:72 +#, fuzzy msgid "User is not sandboxed." -msgstr "" +msgstr "Brugeren har ingen profil." #: actions/unsilence.php:72 +#, fuzzy msgid "User is not silenced." -msgstr "" +msgstr "Brugeren har ingen profil." #: actions/unsubscribe.php:77 +#, fuzzy msgid "No profile ID in request." -msgstr "" +msgstr "Ingen profil med det ID." #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4325,74 +5764,96 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 +#, fuzzy msgid "New users" -msgstr "" +msgstr "Udvalgte brugere" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:251 -msgid "Invitations" -msgstr "" - +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:256 +#, fuzzy +msgid "Invitations" +msgstr "Kun Inviterede" + +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "" @@ -4404,34 +5865,41 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 +#, fuzzy msgid "License" -msgstr "" +msgstr "Henvisninger" #: actions/userauthorization.php:217 +#, fuzzy msgid "Accept" -msgstr "" +msgstr "Adgang" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 +#, fuzzy msgid "Subscribe to this user" -msgstr "" +msgstr "Slet denne bruger" #: actions/userauthorization.php:219 msgid "Reject" msgstr "" #: actions/userauthorization.php:220 +#, fuzzy msgid "Reject this subscription" -msgstr "" +msgstr "Slet denne bruger" #: actions/userauthorization.php:232 msgid "No authorization request!" msgstr "" #: actions/userauthorization.php:254 +#, fuzzy msgid "Subscription authorized" -msgstr "" +msgstr "Du har ikke tilladelse." #: actions/userauthorization.php:256 msgid "" @@ -4441,8 +5909,9 @@ msgid "" msgstr "" #: actions/userauthorization.php:266 +#, fuzzy msgid "Subscription rejected" -msgstr "" +msgstr "Beskrivelse er påkrævet." #: actions/userauthorization.php:268 msgid "" @@ -4472,9 +5941,9 @@ msgid "Profile URL ‘%s’ is for a local user." msgstr "" #: actions/userauthorization.php:345 -#, php-format +#, fuzzy, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "Tilbagekaldswebadresse er ikke gyldig." #: actions/userauthorization.php:350 #, php-format @@ -4486,15 +5955,21 @@ msgstr "" msgid "Wrong image type for avatar URL ‘%s’." msgstr "" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 +#, fuzzy msgid "Profile design" -msgstr "" +msgstr "Gruppe design" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 +#, fuzzy msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Tilpas den måde din gruppe vises på, med et baggrundsbillede og en " +"farvepalet efter dit valg." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" @@ -4502,18 +5977,18 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, php-format +#, fuzzy, php-format msgid "%1$s groups, page %2$d" -msgstr "" +msgstr "%1$s og venner, side %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" #: actions/usergroups.php:159 -#, php-format +#, fuzzy, php-format msgid "%s is not a member of any group." -msgstr "" +msgstr "Brugeren er ikke medlem af gruppen." #: actions/usergroups.php:164 #, php-format @@ -4526,10 +6001,10 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, php-format +#: lib/atomusernoticefeed.php:75 +#, fuzzy, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Opdateringer markeret som favorit af %1$s på %2$s!" #: actions/version.php:75 #, php-format @@ -4575,79 +6050,131 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 +#, fuzzy msgid "Version" -msgstr "" +msgstr "Samtale" #: actions/version.php:199 msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 +#, fuzzy msgid "Invalid filename." -msgstr "" +msgstr "Ugyldig størrelse." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 +#, fuzzy msgid "Group join failed." -msgstr "" +msgstr "Gruppen blev ikke fundet." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 +#, fuzzy msgid "Not part of group." -msgstr "" +msgstr "Kunne ikke opdatere gruppe." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 +#, fuzzy msgid "Could not update local group." -msgstr "" +msgstr "Kunne ikke opdatere gruppe." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, php-format +#, fuzzy, php-format msgid "Could not create login token for %s" -msgstr "" +msgstr "Kunne ikke oprette aliaser." #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 @@ -4655,19 +6182,21 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 +#, fuzzy msgid "Could not insert message." -msgstr "" +msgstr "Kunne ikke finde mål bruger." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "Kunne ikke opdatere brugeren." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4677,377 +6206,461 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, php-format +#: classes/Notice.php:193 +#, fuzzy, php-format msgid "Database error inserting hashtag: %s" -msgstr "" +msgstr "Databasefejl ved tilføjelse af OAuth applikationsbruger." #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 +#, fuzzy msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Du kan ikke tildele brugerroller på dette site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "" +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "" + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 +#, fuzzy msgid "Missing profile." -msgstr "" +msgstr "Brugeren har ingen profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 +#, fuzzy msgid "Unable to save tag." -msgstr "" +msgstr "Kunne ikke gemme dine design indstillinger." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 +#, fuzzy msgid "You have been banned from subscribing." -msgstr "" +msgstr "Denne bruger har blokeret dig fra at abonnere." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 +#, fuzzy msgid "User has blocked you." -msgstr "" +msgstr "Bruger er allerede blokeret fra gruppen." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 +#, fuzzy msgid "Could not delete self-subscription." -msgstr "" +msgstr "Kunne ikke slette favorit." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 +#, fuzzy msgid "Could not delete subscription OMB token." -msgstr "" +msgstr "Kunne ikke slette favorit." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 +#, fuzzy msgid "Could not delete subscription." +msgstr "Kunne ikke slette favorit." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." msgstr "" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 -msgid "Could not create group." +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." msgstr "" +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:511 +#, fuzzy +msgid "Could not create group." +msgstr "Kunne ikke opdatere gruppe." + #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 +#, fuzzy msgid "Could not set group URI." -msgstr "" +msgstr "Kunne ikke opdatere gruppe." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 +#, fuzzy msgid "Could not set group membership." -msgstr "" +msgstr "Kunne ikke opdatere gruppe." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 +#, fuzzy msgid "Could not save local group info." -msgstr "" +msgstr "Kunne ikke gemme profilen." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 +#, fuzzy msgid "Upload an avatar" -msgstr "" +msgstr "Mislykket ajourføring af Avatar." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 +#, fuzzy msgid "Change your password" -msgstr "" +msgstr "Skift farver" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 +#, fuzzy msgid "Design your profile" -msgstr "" +msgstr "Brugeren har ingen profil." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 +#, fuzzy msgid "Connect" -msgstr "" +msgstr "Indhold" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 +#, fuzzy msgctxt "MENU" msgid "Invite" -msgstr "" +msgstr "Kun Inviterede" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 +#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "" +msgstr "Tema for webstedet." #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 +#, fuzzy msgctxt "MENU" msgid "Logout" -msgstr "" +msgstr "Logo opdateret." #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 +#, fuzzy msgctxt "MENU" msgid "Register" -msgstr "" +msgstr "Registrering" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 +#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Tema for webstedet." -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 +#, fuzzy msgctxt "MENU" msgid "Login" -msgstr "" +msgstr "Henvisninger" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 +#, fuzzy msgctxt "MENU" msgid "Search" -msgstr "" +msgstr "Sidebar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 +#, fuzzy msgid "Site notice" -msgstr "" +msgstr "Slet meddelelse" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 +#, fuzzy msgid "Page notice" -msgstr "" +msgstr "Populære bekendtgørelser" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 +#, fuzzy msgid "About" -msgstr "" +msgstr "Konto" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 +#, fuzzy msgid "Privacy" -msgstr "" +msgstr "Privat" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 +#, fuzzy msgid "Contact" -msgstr "" +msgstr "Indhold" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5055,13 +6668,16 @@ msgid "" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5070,341 +6686,466 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 +#, fuzzy msgid "Pagination" -msgstr "" +msgstr "Registrering" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +msgid "Post" +msgstr "" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 +#, fuzzy msgid "You cannot make changes to this site." -msgstr "" +msgstr "Du kan ikke tildele brugerroller på dette site." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 +#, fuzzy msgid "Unable to delete design setting." -msgstr "" +msgstr "Kunne ikke gemme dine design indstillinger." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 +#, fuzzy msgctxt "MENU" msgid "Site" -msgstr "" +msgstr "Site logo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 +#, fuzzy msgctxt "MENU" msgid "Design" -msgstr "" +msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 +#, fuzzy msgid "User configuration" -msgstr "" +msgstr "Ingen bekræftelseskode." #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 +#, fuzzy msgid "Paths configuration" -msgstr "" +msgstr "Ingen bekræftelseskode." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 +#, fuzzy msgid "Sessions configuration" -msgstr "" +msgstr "Ingen bekræftelseskode." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 +#, fuzzy msgid "Edit site notice" -msgstr "" +msgstr "Slet meddelelse" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "" + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Databasefejl ved tilføjelse af OAuth applikationsbruger." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 +#, fuzzy msgid "Icon for this application" -msgstr "" +msgstr "Slet ikke dette program" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "" +msgstr[1] "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 +#, fuzzy msgid "Describe your application" -msgstr "" +msgstr "Slet program" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 +#, fuzzy msgid "URL of the homepage of this application" -msgstr "" +msgstr "Du er ikke ejer af dette program." #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 +#, fuzzy msgid "Source URL" -msgstr "" +msgstr "Kilde-URL er for lang." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "Du er ikke ejer af dette program." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 +#, fuzzy msgid "Cancel" +msgstr "Afbryd" + +#: lib/applicationlist.php:247 +msgid " by " msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" -#. TRANS: Button label -#: lib/applicationlist.php:159 -msgctxt "BUTTON" -msgid "Revoke" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" msgstr "" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#. TRANS: Button label +#: lib/applicationlist.php:298 +#, fuzzy +msgctxt "BUTTON" +msgid "Revoke" +msgstr "Fjern" + +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 +#, fuzzy msgid "Provider" -msgstr "" +msgstr "Forhåndsvisning" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 +#, fuzzy msgid "Tags for this attachment" +msgstr "Ingen sådan fil." + +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." msgstr "" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "" +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloker" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 +#, fuzzy msgid "Command results" +msgstr "Bekræft adresse" + +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" msgstr "" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 +#, fuzzy msgid "Command failed" +msgstr "Du og vennerne" + +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" +msgid "Could not find a local user with nickname %s." msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5412,202 +7153,249 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 +#, fuzzy msgid "Notice marked as fave." -msgstr "" +msgstr "Denne meddelelse er allerede en favorit!" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" +msgid "%1$s joined group %2$s." msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" msgstr "" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "" -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 +#, fuzzy msgid "Error repeating notice." -msgstr "" +msgstr "Fejl ved opdatering af fjernbetjeningsprofil." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 +#, fuzzy msgid "Error saving notice." +msgstr "Fejl ved opdatering af fjernbetjeningsprofil." + +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "" - -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +#, fuzzy msgid "Notification off." -msgstr "" +msgstr "Ingen bekræftelseskode." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +#, fuzzy msgid "Notification on." -msgstr "" +msgstr "Ingen bekræftelseskode." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +#, fuzzy msgid "Can't turn on notification." +msgstr "Kan ikke gentage din egen meddelelse." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" - -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" +msgid "Unsubscribed %s." msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 +#, fuzzy msgid "You are not subscribed to anyone." -msgstr "" +msgstr "Du har ikke tilladelse." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 #, fuzzy msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "You are subscribed to this person:" msgstr[1] "You are subscribed to these people:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 #, fuzzy msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "This person is subscribed to you:" msgstr[1] "These people are subscribed to you:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 +#, fuzzy msgid "You are not a member of any groups." -msgstr "" +msgstr "Du er ikke medlem af denne gruppe." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 #, fuzzy msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "You are a member of this group:" msgstr[1] "You are a member of these groups:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5649,89 +7437,134 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "" -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +#, fuzzy msgid "Authorized connected applications" -msgstr "" +msgstr "Slet program" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 +#, fuzzy msgid "Upload file" -msgstr "" +msgstr "Oplægge" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 +#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" +"Du kan uploade dine personlige avatar. Den maksimale filstørrelse er %s." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +#, fuzzy msgid "Design defaults restored." -msgstr "" +msgstr "Design præferencer gemt." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 +#, fuzzy msgid "Disfavor this notice" -msgstr "" +msgstr "Slet denne meddelelse" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 +#, fuzzy msgid "Favor this notice" -msgstr "" +msgstr "Slet denne meddelelse" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -5739,8 +7572,9 @@ msgid "Filter tags" msgstr "" #: lib/galleryaction.php:131 +#, fuzzy msgid "All" -msgstr "" +msgstr "Tillad" #: lib/galleryaction.php:139 msgid "Select tag to filter" @@ -5763,8 +7597,13 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "Kaldenavn må kun have små bogstaver og tal og ingen mellemrum." + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "" #: lib/groupeditform.php:168 @@ -5773,60 +7612,113 @@ msgstr "" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "" +msgstr[1] "" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 +#, fuzzy msgid "Groups with most members" -msgstr "" +msgstr "%s gruppe medlemmer" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -5837,41 +7729,65 @@ msgid "This page is not available in a media type you accept" msgstr "" #: lib/imagefile.php:72 +#, fuzzy msgid "Unsupported image file format." -msgstr "" +msgstr "Formatet understøttes ikke" -#: lib/imagefile.php:88 -#, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" +"Du kan uploade et logo billede til din gruppe. Den maksimale filstørrelse er " +"%s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 +#, fuzzy msgid "Partial upload." -msgstr "" +msgstr "Ingen fil uploaded." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 +#, fuzzy msgid "Lost our file." -msgstr "" +msgstr "Mistede vores fil data." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -5883,13 +7799,10 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "" - #: lib/leaveform.php:114 +#, fuzzy msgid "Leave" -msgstr "" +msgstr "Gem" #: lib/logingroupnav.php:80 msgid "Login with a username and password" @@ -5899,44 +7812,54 @@ msgstr "" msgid "Sign up for a new account" msgstr "" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 +#, fuzzy msgid "Email address confirmation" -msgstr "" +msgstr "E-mail adresse" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5945,26 +7868,31 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 -#, php-format +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, fuzzy, php-format msgid "New email address for posting to %s" msgstr "" +"Opret en ny e-mail adresse til postering af beskeder; annullerer den gamle." -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5974,34 +7902,40 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 +#, fuzzy msgid "SMS confirmation" -msgstr "" +msgstr "Ingen bekræftelseskode." -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6017,14 +7951,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 -#, php-format +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 +#, fuzzy, php-format msgid "New private message from %s" -msgstr "" +msgstr "Direkte beskeder fra %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6043,14 +7981,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6072,7 +8015,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6080,13 +8023,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6123,250 +8073,315 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "" #: lib/mailhandler.php:37 +#, fuzzy msgid "Could not parse message." -msgstr "" +msgstr "Kunne ikke opdatere brugeren." #: lib/mailhandler.php:42 msgid "Not a registered user." msgstr "" #: lib/mailhandler.php:46 +#, fuzzy msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Det er ikke din e-mail adresse." #: lib/mailhandler.php:50 +#, fuzzy msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Ingen indkommende e-mail adresse." -#: lib/mailhandler.php:228 -#, php-format +#: lib/mailhandler.php:229 +#, fuzzy, php-format msgid "Unsupported message type: %s" -msgstr "" +msgstr "Formatet understøttes ikke" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 +#, fuzzy msgid "Could not determine file's MIME type." +msgstr "Kunne ikke finde kilde bruger" + +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 +#, php-format +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid " Try using another %s format." -msgstr "" - -#: lib/mediafile.php:323 -#, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 +#, fuzzy msgid "Send a direct notice" +msgstr "Slet meddelelse" + +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" msgstr "" -#: lib/messageform.php:146 +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "" + +#: lib/messageform.php:153 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "" -#: lib/noticeform.php:160 -msgid "Send a notice" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Kaldenavn må kun have små bogstaver og tal og ingen mellemrum." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." msgstr "" -#: lib/noticeform.php:173 +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + +#: lib/noticeform.php:160 +#, fuzzy +msgid "Send a notice" +msgstr "Slet meddelelse" + +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "" -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "" - #: lib/noticeform.php:216 +#, fuzzy +msgid "Do not share my location" +msgstr "Slet ikke dette program" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 +#, fuzzy msgid "N" -msgstr "" +msgstr "Nej" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 +#, fuzzy msgid "Repeated by" -msgstr "" +msgstr "Gentagne til %s" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 +#, fuzzy msgid "Reply to this notice" -msgstr "" +msgstr "Slet denne meddelelse" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "" #: lib/nudgeform.php:116 +#, fuzzy msgid "Nudge this user" -msgstr "" +msgstr "Slet denne bruger" #: lib/nudgeform.php:128 msgid "Nudge" msgstr "" #: lib/nudgeform.php:128 +#, fuzzy msgid "Send a nudge to this user" +msgstr "Slet denne bruger" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "" - -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 +#, fuzzy msgid "Couldn't insert new subscription." -msgstr "" +msgstr "Kunne ikke indsætte bekræftelseskode." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 +#, fuzzy msgid "Favorites" -msgstr "" +msgstr "Tilføj til favoritter" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 +#, fuzzy msgid "Your incoming messages" -msgstr "" +msgstr "Ingen indkommende e-mail adresse." -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 +#, fuzzy msgid "Your sent messages" -msgstr "" +msgstr "Direkte beskeder til %s" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "" @@ -6400,8 +8415,9 @@ msgid "Daily average" msgstr "" #: lib/profileaction.php:264 +#, fuzzy msgid "All groups" -msgstr "" +msgstr "%s's grupper" #: lib/profileformaction.php:123 msgid "Unimplemented method." @@ -6412,44 +8428,52 @@ msgid "Public" msgstr "" #: lib/publicgroupnav.php:82 +#, fuzzy msgid "User groups" -msgstr "" +msgstr "%s's grupper" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" msgstr "" #: lib/publicgroupnav.php:88 +#, fuzzy msgid "Featured" -msgstr "" +msgstr "Udvalgte brugere" #: lib/publicgroupnav.php:92 +#, fuzzy msgid "Popular" -msgstr "" +msgstr "Populære bekendtgørelser" #: lib/redirectingaction.php:95 +#, fuzzy msgid "No return-to arguments." -msgstr "" +msgstr "Ingen vedhæftede filer." #: lib/repeatform.php:107 +#, fuzzy msgid "Repeat this notice?" -msgstr "" +msgstr "Slet denne meddelelse" #: lib/repeatform.php:132 +#, fuzzy msgid "Yes" -msgstr "" +msgstr "Ja" #: lib/repeatform.php:132 +#, fuzzy msgid "Repeat this notice" -msgstr "" +msgstr "Slet denne meddelelse" #: lib/revokeroleform.php:91 -#, php-format +#, fuzzy, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "" +msgstr "Bloker denne bruger fra denne gruppe" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." msgstr "" #: lib/sandboxform.php:67 @@ -6457,22 +8481,29 @@ msgid "Sandbox" msgstr "" #: lib/sandboxform.php:78 +#, fuzzy msgid "Sandbox this user" -msgstr "" +msgstr "Fjern blokeringen af denne bruger" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "" @@ -6489,8 +8520,9 @@ msgid "Find content of notices" msgstr "" #: lib/searchgroupnav.php:85 +#, fuzzy msgid "Find groups on this site" -msgstr "" +msgstr "grupper på %s" #: lib/section.php:89 msgid "Untitled section" @@ -6505,8 +8537,9 @@ msgid "Silence" msgstr "" #: lib/silenceform.php:78 +#, fuzzy msgid "Silence this user" -msgstr "" +msgstr "Slet denne bruger" #: lib/subgroupnav.php:83 #, php-format @@ -6519,13 +8552,14 @@ msgid "People subscribed to %s" msgstr "" #: lib/subgroupnav.php:99 -#, php-format +#, fuzzy, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "%1$s grupper som %2$s er medlem af." #: lib/subgroupnav.php:105 +#, fuzzy msgid "Invite" -msgstr "" +msgstr "Kun Inviterede" #: lib/subgroupnav.php:106 #, php-format @@ -6543,7 +8577,13 @@ msgid "People Tagcloud as tagged" msgstr "" #: lib/tagcloudsection.php:56 +#, fuzzy msgid "None" +msgstr "Nej" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." msgstr "" #: lib/themeuploader.php:50 @@ -6555,183 +8595,256 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 +#, fuzzy msgid "Failed saving theme." -msgstr "" +msgstr "Mislykket ajourføring af Avatar." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 +#, fuzzy msgid "Error opening theme archive." -msgstr "" +msgstr "Fejl ved opdatering af fjernbetjeningsprofil." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 +#, fuzzy msgid "Unsandbox this user" -msgstr "" +msgstr "Fjern blokeringen af denne bruger" #: lib/unsilenceform.php:67 msgid "Unsilence" msgstr "" #: lib/unsilenceform.php:78 +#, fuzzy msgid "Unsilence this user" -msgstr "" +msgstr "Fjern blokeringen af denne bruger" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +#, fuzzy msgid "Unsubscribe from this user" -msgstr "" +msgstr "Fjern blokeringen af denne bruger" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "" -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 +#, fuzzy msgid "Edit Avatar" -msgstr "" +msgstr "Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 +#, fuzzy msgid "Edit profile settings" -msgstr "" +msgstr "Email indstillinger" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 +#, fuzzy msgid "Send a direct message to this user" -msgstr "" +msgstr "Direkte beskeder til %s" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 +#, fuzzy msgid "User role" -msgstr "" +msgstr "Brugeren har ingen profil." -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "" -#: lib/webcolor.php:82 -#, php-format +#: lib/webcolor.php:80 +#, fuzzy, php-format msgid "%s is not a valid color!" +msgstr "Hjemmesiden er ikke en gyldig URL adresse." + +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" -#: lib/webcolor.php:123 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." msgstr "" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 5a52a7c0cb..e10a3eac06 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -1,170 +1,213 @@ -# Translation of StatusNet to German +# Translation of StatusNet - Core to German (Deutsch) +# Expored from translatewiki.net # -# Author@translatewiki.net: Bavatar -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Lutzgh -# Author@translatewiki.net: March -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Michael -# Author@translatewiki.net: Michi -# Author@translatewiki.net: The Evil IP address -# Author@translatewiki.net: Umherirrender +# Author: Apmon +# Author: Bavatar +# Author: Brion +# Author: Kghbln +# Author: Lutzgh +# Author: March +# Author: McDutchie +# Author: Michael +# Author: Michi +# Author: The Evil IP address +# Author: Umherirrender # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:17+0000\n" -"Language-Team: German\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:33+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Zugang" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Zugangseinstellungen speichern" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrieren" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" -"Anonymen (nicht eingeloggten) Nutzern das Betrachten der Seite verbieten?" +"Anonymen (nicht eingeloggten) Benutzern das Betrachten der Seite verbieten?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privat" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Registrierung nur bei vorheriger Einladung erlauben." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Nur auf Einladung" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Neuregistrierungen deaktivieren." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Geschlossen" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Zugangs-Einstellungen speichern" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Speichern" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Seite nicht vorhanden" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Unbekannter Benutzer." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s und Freunde, Seite% 2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s und Freunde" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed der Freunde von %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed der Freunde von %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed der Freunde von %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -"Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " +"Dies ist die Zeitleiste von %s und Freunden, aber bisher hat niemand etwas " "gepostet." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -173,8 +216,9 @@ msgstr "" "Abonniere doch mehr Leute, [tritt einer Gruppe bei](%%action.groups%%) oder " "poste selber etwas." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -183,421 +227,626 @@ msgstr "" "Du kannst versuchen, [%1$s in seinem Profil einen Stups zu geben](../%2$s) " "oder [ihm etwas posten](%%%%action.newnotice%%%%?status_textarea=%s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"Warum [registrierst du nicht ein Benutzerkonto](%%%%action.register%%%%) und " "gibst %s dann einen Stups oder postest ihm etwas." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Du und Freunde" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API-Methode nicht gefunden." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Diese Methode benötigt ein POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -"Du musst einen Parameter mit Namen 'device' übergeben. Mögliche Werte sind: " +"Du musst einen Parameter mit Namen „device“ übergeben. Mögliche Werte sind: " "sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Konnte Benutzerdaten nicht aktualisieren." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Benutzer hat kein Profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Konnte Profil nicht speichern." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" -"Der Server kann so große POST Abfragen (%s bytes) aufgrund der Konfiguration " +msgstr[0] "" +"Der Server kann so große POST-Abfragen (%s Byte) aufgrund der Konfiguration " +"nicht verarbeiten." +msgstr[1] "" +"Der Server kann so große POST-Abfragen (%s Bytes) aufgrund der Konfiguration " "nicht verarbeiten." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Konnte Twitter-Einstellungen nicht speichern." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Konnte Benutzerdesign nicht aktualisieren." -#: actions/apiblockcreate.php:105 -msgid "You cannot block yourself!" -msgstr "Du kannst dich nicht selbst sperren!" +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s-Zeitleiste" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s Abonnements" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoriten" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s Gruppen-Mitglieder" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 +msgid "You cannot block yourself!" +msgstr "Du kannst dich nicht selbst blockieren!" + +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blockieren des Benutzers fehlgeschlagen." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Freigeben des Benutzers fehlgeschlagen." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" -msgstr "Direkte Nachricht an %s" +msgstr "Direkte Nachrichten von %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle von %s gesendeten direkten Nachrichten" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" -msgstr "Direkte Nachricht an %s" +msgstr "Direkte Nachrichten an %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle an %s gesendeten direkten Nachrichten" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Fehlender Nachrichtentext!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" -"Die Nachricht ist zu lang. Die maximale Nachrichtenlänge ist 140 Zeichen." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +"Die Nachricht ist zu lang. Die maximale Nachrichtenlänge ist %d Zeichen." +msgstr[1] "" +"Die Nachricht ist zu lang. Die maximale Nachrichtenlänge ist %d Zeichen." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Empfänger nicht gefunden." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Es können keine direkten Nachrichten an Benutzer geschickt werden mit denen " "du nicht befreundet bist." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Schicke dir selbst keine Nachrichten; sag es dir stattdessen einfach leise." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Keine Nachricht mit dieser ID gefunden." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Diese Nachricht ist bereits ein Favorit!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Konnte keinen Favoriten erstellen." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Diese Nachricht ist kein Favorit!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Konnte Favoriten nicht löschen." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." -msgstr "Konnte Nutzer nicht folgen: Profil nicht gefunden" +msgstr "Konnte Benutzer nicht folgen: Profil nicht gefunden" -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "Kann Nutzer %s nicht folgen: schon in deiner Kontaktliste eingetragen" +msgstr "" +"Kann Benutzer %s nicht folgen: schon in deiner Kontaktliste eingetragen" +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Kann Benutzer nicht entfolgen: Benutzer nicht gefunden." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Du kannst dich nicht selbst entfolgen!" -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "Zwei gültige IDs oder Benutzernamen müssen angegeben werden." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Konnte öffentlichen Stream nicht abrufen." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Konnte keine Statusmeldungen finden." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Der Nutzername darf nur aus Kleinbuchstaben und Ziffern bestehen. " -"Leerzeichen sind nicht erlaubt." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." -msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." +msgstr "Benutzername wird bereits verwendet. Suche dir einen anderen aus." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." -msgstr "Ungültiger Nutzername." +msgstr "Ungültiger Benutzername." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "" -"Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." +"Homepage ist keine gültige URL. URLs müssen ein Präfix wie http enthalten." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Der bürgerliche Name ist zu lang (maximal 255 Zeichen)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Die Beschreibung ist zu lang (max. %d Zeichen)." +msgstr[1] "Die Beschreibung ist zu lang (max. %d Zeichen)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Zu viele Pseudonyme! Maximale Anzahl ist %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Zu viele Pseudonyme! Maximal eins ist erlaubt." +msgstr[1] "Zu viele Pseudonyme! Maximal %d sind erlaubt." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ungültiges Alias: „%s“" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "Nutzername „%s“ wird bereits verwendet. Suche dir einen anderen aus." +msgstr "Benutzername „%s“ wird bereits verwendet. Suche dir einen anderen aus." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." -msgstr "Alias kann nicht das gleiche wie der Spitznamen sein." +msgstr "Alias kann nicht das gleiche wie der Spitzname sein." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Gruppe nicht gefunden!" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Du bist bereits Mitglied dieser Gruppe" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." -msgstr "Der Admin dieser Gruppe hat dich gesperrt." +msgstr "Der Admin dieser Gruppe hat dich blockiert." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Konnte Benutzer %s nicht der Gruppe %s hinzufügen." +msgstr "Konnte Benutzer %1$s nicht der Gruppe %2$s hinzufügen." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Du bist kein Mitglied dieser Gruppe." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Konnte Benutzer %1$s nicht aus der Gruppe %2$s entfernen." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" -msgstr "%s’s Gruppen" +msgstr "Gruppen von %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s Gruppen in denen %2$s Mitglied ist" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s Gruppen" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "Gruppen von %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Hochladen fehlgeschlagen." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Anmelde-Token ungültig oder abgelaufen." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Kein oauth_token Parameter angegeben." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." msgstr "Ungültiges Token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Anfrage-Token bereits autorisiert." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Benutzername oder Passwort falsch." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Datenbank Fehler beim Löschen des OAuth Anwendungs Nutzers." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Datenbankfehler beim Einfügen des OAuth Programm Benutzers." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Die Anfrage %s wurde nicht autorisiert. Bitte gegen einen Zugriffstoken " -"austauschen." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Die Anfrage %s wurde gesperrt und widerrufen." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Datenbankfehler beim Einfügen von oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Unerwartete Formulareingabe." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Ein Programm will eine Verbindung zu deinem Konto aufbauen" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Zugriff erlauben oder ablehnen" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Ein Programm würde gerne deine %$4s-Zugangsdaten <strong>%3$s</strong>. Du " +"solltest nur vertrauenswürdigen Quellen Erlaubnis zu deinem %4$s-Zugang " +"geben." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -608,427 +857,854 @@ msgstr "" "<strong>%3$s</strong> bei deinem %4$s Zugang. Du solltest nur " "vertrauenswürdigen Quellen Erlaubnis zu deinem %4$s Zugang geben." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Profil" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" -msgstr "Nutzername" +msgstr "Benutzername" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Passwort" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Ablehnen" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Abbrechen" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Erlauben" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Zugang zu deinem Konto erlauben oder ablehnen" +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Zugang zu deinem Benutzerkonto autorisieren." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Authorisierung abgebrochen." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Die Anfrage %s wurde gesperrt und widerrufen." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Du hast das Programm erfolgreich autorisiert." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Bitte kehre zum Programm zurück und gebe den folgenden Sicherheitscode ein, " +"um den Vorgang abzuschließen." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Du hast %s erfolgreich autorisiert." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Bitte kehre nach %s zurück und geben den folgenden Sicherheitscode ein, um " +"den Vorgang abzuschließen." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Diese Methode benötigt ein POST oder DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Du kannst den Status eines anderen Benutzers nicht löschen." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Unbekannte Nachricht." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Du kannst deine eigenen Nachrichten nicht wiederholen." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Nachricht bereits wiederholt" -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API-Methode nicht gefunden." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Bildformat wird nicht unterstützt." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status gelöscht." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Keine Nachricht mit dieser ID gefunden." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Die Nachricht konnte nicht gelöscht werden." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Notiz löschen" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" "Der Client muss einen „status“-Parameter mit einen Wert zur Verfügung " "stellen." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" +"Das war zu lang. Die Länge einer Nachricht ist auf ein Zeichen beschränkt." +msgstr[1] "" "Das war zu lang. Die Länge einer Nachricht ist auf %d Zeichen beschränkt." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Nicht gefunden." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "API-Methode nicht gefunden." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Die maximale Größe von Nachrichten ist ein Zeichen, inklusive der URL der " +"Anhänge" +msgstr[1] "" "Die maximale Größe von Nachrichten ist %d Zeichen, inklusive der URL der " "Anhänge" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Bildformat wird nicht unterstützt." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoriten von %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s Aktualisierung in den Favoriten von %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s-Aktualisierungen favorisiert von %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Konnte keinen Gruppen-Feed erstellen - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Aktualisierungen erwähnen %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Nachrichten von %1$s, die auf Nachrichten von %2$s / %3$s antworten." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s öffentliche Zeitleiste" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s Nachrichten von allen!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Nicht unterstützte Methode." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Antworten an %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Antworten von %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "Nachrichten, die mit %s getagt sind" +msgstr "Mit „%s“ getaggte Nachrichten" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Aktualisierungen mit %1$s getagt auf %2$s!" +msgstr "Mit „%1$s“ getaggte Nachrichten auf „%2$s“!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Nur der Benutzer selbst kann seinen Posteingang lesen." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Durchsuche den Inhalt der Nachrichten" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Nachricht mit dieser ID existiert nicht." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-Methode im Aufbau." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API-Methode nicht gefunden." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Profil nicht gefunden." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Konnte neues Abonnement nicht eintragen." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Durchsuche den Inhalt der Nachrichten" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Unbekannt" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Zu Favoriten hinzufügen" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Profil nicht gefunden." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s Gruppen-Mitglieder" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Gruppen, in denen „%s“ Mitglied ist" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Unbekannt" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alle Mitglieder" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Datei nicht gefunden." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Konnte Favoriten nicht löschen." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Keine derartige Gruppe." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alle Mitglieder" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API-Methode nicht gefunden." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Profil nicht gefunden." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Du hast dieses Profil nicht abonniert." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Konnte Selbst-Abonnement nicht löschen." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Leute, die „%s“ abonniert haben" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Unbekannter Dateityp" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Kein solcher Anhang." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." -msgstr "Kein Nutzername." +msgstr "Kein Benutzername." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Keine Größe." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ungültige Größe." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Du kannst dein persönliches Avatar hochladen. Die maximale Dateigröße ist %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Benutzer ohne passendes Profil" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar-Einstellungen" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vorschau" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Löschen" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Hochladen" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Zuschneiden" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Keine Datei hoch geladen." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" "Wähle eine quadratische Fläche aus dem Bild, um dein Avatar zu speichern" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Daten verloren." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar aktualisiert." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Aktualisierung des Avatars fehlgeschlagen." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar gelöscht." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Du hast diesen Benutzer bereits blockiert." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Benutzer blockieren" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 "" -"Bist du sicher, dass du den Benutzer blockieren willst? Die Verbindung zum " +"Bist du sicher, dass du den Benutzer blockieren willst? Die Verbindung zum " "Benutzer wird gelöscht, dieser kann dich in Zukunft nicht mehr abonnieren " "und bekommt keine @-Antworten." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nein" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Diesen Benutzer freigeben" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Diesen Benutzer blockieren" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Konnte Blockierungsdaten nicht speichern." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Keine derartige Gruppe." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s blockierte Benutzerprofile" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blockierte Benutzerprofile, Seite %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Liste der blockierten Benutzer in dieser Gruppe." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" -msgstr "Sperrung des Nutzers für die Gruppe aufheben." +msgstr "Blockierung des Benutzers für die Gruppe aufheben." -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Freigeben" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Diesen Benutzer freigeben" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Versenden an %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Kein Bestätigungs-Code." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Bestätigungscode nicht gefunden." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Dieser Bestätigungscode ist nicht für dich!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Nicht erkannter Adresstyp %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Diese Adresse wurde bereits bestätigt." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Konnte Benutzerdaten nicht aktualisieren." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Konnte E-Mail-Bestätigung nicht löschen." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Konnte Adressen-Bestätigung nicht löschen." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Adresse bestätigen" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Die Adresse „%s“ wurde für dein Konto bestätigt." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Unterhaltung" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Nachrichten" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Du musst angemeldet sein, um dieses Programm zu entfernen." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Programm nicht gefunden." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Du bist Besitzer dieses Programms" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Programm entfernen" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1038,31 +1714,88 @@ msgstr "" "aus der Datenbank entfernt, auch alle bestehenden Benutzer-Verbindungen." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Dieses Programm nicht löschen" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Programm löschen" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Du musst angemeldet sein, um eine Gruppe zu löschen." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Kein Benutzername oder ID" + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Du darfst diese Gruppe nicht löschen." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Konnte %s-Gruppe nicht löschen." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "%s-Gruppe gelöscht" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Gruppe löschen" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Bist du sicher, dass du die Gruppe löschen wisst? Alle Daten der Gruppe " +"werden aus der Datenbank gelöscht (ohne ein Backup). Öffentliche Beiträge " +"dieser Gruppe werden noch in einzelnen Zeitleisten erscheinen." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Diese Gruppe nicht löschen" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Diese Gruppe löschen" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Nicht angemeldet." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Die Nachricht konnte nicht gelöscht werden." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1070,21 +1803,24 @@ msgstr "" "Du bist gerade dabei eine Nachricht unwiderruflich zu löschen. Diese Aktion " "ist irreversibel." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Notiz löschen" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1115,140 +1851,158 @@ msgstr "Diesen Benutzer löschen" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Design" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Design-Einstellungen für diese StatusNet-Website." +msgid "Design settings for this StatusNet site" +msgstr "Design-Einstellungen dieser StatusNet-Website" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Ungültige URL für das Logo" -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Ungültige URL für das SSL-Logo." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Theme nicht verfügbar: %s" -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Logo ändern" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Seitenlogo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL-Logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Theme ändern" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Seitentheme" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Theme dieser Seite." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Angepasster Skin" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Du kannst ein angepasstes StatusNet-Theme als .ZIP-Archiv hochladen." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Hintergrundbild ändern" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Hintergrund" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." msgstr "" -"Du kannst ein Hintergrundbild für Deine Gruppe hochladen. Die maximale " +"Du kannst ein Hintergrundbild für deine Gruppe hochladen. Die maximale " "Dateigröße beträgt %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "An" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Aus" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Hintergrundbild ein- oder ausschalten." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Hintergrundbild kacheln" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Farben ändern" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Inhalt" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Seitenleiste" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Links" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Erweitert" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Eigene CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Standardeinstellungen benutzen" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Standard-Design wiederherstellen" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Standard wiederherstellen" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Speichern" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Design speichern" @@ -1263,112 +2017,132 @@ msgstr "Zu Favoriten hinzufügen" #: actions/doc.php:158 #, php-format msgid "No such document \"%s\"" -msgstr "Unbekanntes Dokument \"%s\"" +msgstr "Unbekanntes Dokument „%s“" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Anwendung bearbeiten" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Programm bearbeiten" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Du musst angemeldet sein, um eine Anwendung zu bearbeiten." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Anwendung nicht bekannt." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Benutze dieses Formular, um die Anwendung zu bearbeiten." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Name ist erforderlich." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "Der Name ist zu lang (maximal 255 Zeichen)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Der Name wird bereits verwendet. Suche dir einen anderen aus." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Beschreibung ist erforderlich." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Homepage ist zu lang." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "" -"Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." +"Homepage ist keine gültige URL. URLs müssen ein Präfix wie http enthalten." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisation ist erforderlich. (Pflichtangabe)" -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "Die angegebene Organisation ist zu lang (maximal 255 Zeichen)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Homepage der Organisation ist erforderlich (Pflichtangabe)." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Antwort ist zu lang" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." -msgstr "Antwort URL ist nicht gültig" +msgstr "Antwort-URL ist nicht gültig" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Konnte Programm nicht aktualisieren." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Gruppe %s bearbeiten" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Du musst angemeldet sein, um eine Gruppe zu erstellen." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." -msgstr "Du musst ein Administrator sein, um die Gruppe zu bearbeiten" +msgstr "Du musst ein Admin sein, um die Gruppe zu bearbeiten" -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Benutze dieses Formular, um die Gruppe zu bearbeiten." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ungültiges Stichwort: „%s“" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Konnte Gruppe nicht aktualisieren." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Konnte keinen Favoriten erstellen." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Einstellungen gespeichert." @@ -1386,12 +2160,12 @@ msgstr "Einstellen, wie und wann du E-Mails von %%site.name%% bekommst." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-Mail-Adresse" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Aktuelle bestätigte E-Mail-Adresse." @@ -1400,40 +2174,34 @@ msgstr "Aktuelle bestätigte E-Mail-Adresse." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Entfernen" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -"Warte auf die Bestätigung dieser Adresse. Prüfe Deinen Nachrichteneingang " +"Warte auf die Bestätigung dieser Adresse. Prüfe deinen Nachrichteneingang " "(auch den Spam-Ordner) auf eine Nachricht mit weiteren Instruktionen." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Abbrechen" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-Mail-Adresse, beispielsweise „Benutzername@example.org“" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1441,114 +2209,121 @@ msgstr "Hinzufügen" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Eingehende E-Mail" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Ich möchte Einträge per E-Mail veröffentlichen." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." -msgstr "Schicke ein E-Mail an diese Adresse um eine Nachricht zu posten." +msgstr "Schicke eine E-Mail an diese Adresse um eine Nachricht zu posten." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Neue E-Mail-Adresse für Postings aktivieren; die alte wird automatisch " "deaktiviert." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Neu" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-Mail Einstellungen" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Informiere mich über neues Abonnements per E-Mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Mir eine E-Mail schicken, wenn jemand meine Nachricht als Favorit speichert." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "Mir eine E-Mail schicken, wenn mir jemand eine private Nachricht schickt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Schick mir eine E-Mail, wenn mir jemand eine @Nachricht schickt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Erlaube Freunden mich zu stupsen und mir E-Mails zu senden." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Ich möchte Einträge per E-Mail veröffentlichen." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "MicroID für meine E-Mail-Adresse veröffentlichen." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "E-Mail Einstellungen gespeichert." +msgstr "E-Mail-Einstellungen gespeichert." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Keine E-Mail-Adresse." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Konnte diese E-Mail-Adresse nicht normalisieren" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ungültige E-Mail-Adresse." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Dies ist bereits deine E-Mail-Adresse." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." -msgstr "Diese E-Mail-Adresse gehört einem anderen Nutzer." +msgstr "Diese E-Mail-Adresse gehört bereits einem anderen Benutzer." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Konnte keinen Bestätigungscode einfügen." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1560,50 +2335,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Keine ausstehende Bestätigung, die abgebrochen werden kann." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Dies ist die falsche E-Mail Adresse" +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Konnte E-Mail-Bestätigung nicht löschen." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "E-Mail Bestätigung abgebrochen." +msgstr "E-Mail-Bestätigung abgebrochen." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Dies ist nicht deine E-Mail-Adresse." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Die E-Mail Adresse wurde entfernt." +msgstr "Die E-Mail-Adresse wurde entfernt." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Keine Eingangs-E-Mail-Adresse." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." -msgstr "Konnte Nutzereintrag nicht schreiben" +msgstr "Konnte Benutzereintrag nicht schreiben" #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Eingehende E-Mail-Adresse entfernt" #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Neue Eingangs-E-Mail-Adresse hinzugefügt." @@ -1611,11 +2392,11 @@ msgstr "Neue Eingangs-E-Mail-Adresse hinzugefügt." msgid "This notice is already a favorite!" msgstr "Diese Nachricht ist bereits ein Favorit!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Aus Favoriten entfernen" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Beliebte Nachrichten" @@ -1649,11 +2430,11 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" -"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"Warum [registrierst du nicht einen Account](%%%%action.register%%%%) und " "bist der erste der eine Nachricht favorisiert!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%ss favorisierte Nachrichten" @@ -1680,7 +2461,7 @@ msgstr "Eine Auswahl toller Benutzer auf %s" #: actions/file.php:34 msgid "No notice ID." -msgstr "Keine Nachrichten ID" +msgstr "Keine Nachrichten-ID" #: actions/file.php:38 msgid "No notice." @@ -1700,7 +2481,7 @@ msgstr "Unerwartete Antwort!" #: actions/finishremotesubscribe.php:80 msgid "User being listened to does not exist." -msgstr "Aufgeführte Nutzer existiert nicht." +msgstr "Aufgeführter Benutzer existiert nicht." #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" @@ -1722,7 +2503,7 @@ msgstr "Konnte Anfrage-Token nicht in Zugriffs-Token umwandeln." msgid "Remote service uses unknown version of OMB protocol." msgstr "Service nutzt unbekannte OMB-Protokollversion." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Fehler beim Aktualisieren des entfernten Profils." @@ -1748,38 +2529,42 @@ msgstr "Auf dieser Seite können keine Benutzerrollen gewährt werden." #: actions/grantrole.php:82 msgid "User already has this role." -msgstr "Nutzer hat diese Aufgabe bereits" +msgstr "Benutzer hat bereits diese Aufgabe" +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Kein Profil angegeben." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Kein Benutzer-Profil mit dieser ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Keine Gruppe angegeben" #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "Nur ein Administrator kann Mitglieder der Gruppe sperren." +msgstr "Nur ein Admin kann Mitglieder der Gruppe blockieren." #: actions/groupblock.php:95 msgid "User is already blocked from group." -msgstr "Dieser Nutzer ist bereits von der Gruppe gesperrt" +msgstr "Dieser Benutzer ist bereits von der Gruppe blockiert" #: actions/groupblock.php:100 msgid "User is not a member of group." -msgstr "Nutzer ist kein Mitglied dieser Gruppe." +msgstr "Benutzer ist kein Mitglied dieser Gruppe." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Benutzerzugang zu der Gruppe blockieren" @@ -1790,10 +2575,9 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" -"Bist du sicher, dass du den Benutzer \"%1$s\" in der Gruppe \"%2$s\" " -"blockieren willst? Er wird aus der Gruppe gelöscht, kann keine Beiträge mehr " -"abschicken und wird auch in Zukunft dieser Gruppe nicht mehr beitreten " -"können." +"Bist du sicher, dass du den Benutzer „%1$s“ in der Gruppe „%2$s“ blockieren " +"willst? Er wird aus der Gruppe gelöscht, kann keine Beiträge mehr abschicken " +"und wird auch in Zukunft dieser Gruppe nicht mehr beitreten können." #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 @@ -1803,11 +2587,12 @@ msgstr "Diesen Benutzerzugang nicht für diese Gruppe blockieren." #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 msgid "Block this user from this group" -msgstr "Diesen Nutzer von der Gruppe sperren" +msgstr "Diesen Benutzer von der Gruppe blockieren" #: actions/groupblock.php:206 msgid "Database error blocking user from group." -msgstr "Datenbank Fehler beim Versuch den Nutzer aus der Gruppe zu blockieren." +msgstr "" +"Datenbankfehler beim Versuch den Benutzer aus der Gruppe zu blockieren." #: actions/groupbyid.php:74 actions/userbyid.php:70 msgid "No ID." @@ -1829,8 +2614,10 @@ msgstr "" "Stelle ein wie die Gruppenseite aussehen soll. Hintergrundbild und " "Farbpalette frei wählbar." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Konnte dein Design nicht aktualisieren." @@ -1847,9 +2634,17 @@ msgstr "Gruppen-Logo" msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -"Du kannst ein Logo für Deine Gruppe hochladen. Die maximale Dateigröße ist %" +"Du kannst ein Logo für deine Gruppe hochladen. Die maximale Dateigröße ist %" "s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Hochladen" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Zuschneiden" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Wähle eine quadratische Fläche aus dem Bild, um das Logo zu speichern." @@ -1862,48 +2657,55 @@ msgstr "Logo aktualisiert." msgid "Failed updating logo." msgstr "Aktualisierung des Logos fehlgeschlagen." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s Gruppen-Mitglieder" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s Gruppen-Mitglieder, Seite %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Liste der Benutzer in dieser Gruppe." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blockieren" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Diesen Benutzer blockieren" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Benutzer zu einem Admin dieser Gruppe ernennen" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Zum Admin ernennen" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Diesen Benutzer zu einem Admin ernennen" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s Zeitleiste" +msgstr "Diesen Benutzer zum Admin ernennen" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1930,11 +2732,11 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" -"Finde und rede mit Gleichgesinnten in %%%%site.name%%%% Gruppen. Nachdem du " -"einer Gruppe beigetreten bis kannst du mit \\\"!Gruppenname\\\" eine " -"Nachricht an alle Gruppenmitglieder schicken. Du kannst nach einer [Gruppe " -"suchen](%%%%action.groupsearch%%%%) oder deine eigene [Gruppe aufmachen!](%%%" -"%action.newgroup%%%%)" +"Finde und rede mit Gleichgesinnten in %%%%site.name%%%%-Gruppen. Nachdem du " +"einer Gruppe beigetreten bist kannst du mit „!Gruppenname“ eine Nachricht an " +"alle Gruppenmitglieder schicken. Du kannst nach einer [Gruppe suchen](%%%%" +"action.groupsearch%%%%) oder deine eigene [Gruppe aufmachen!](%%%%action." +"newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 msgid "Create a new group" @@ -1946,7 +2748,7 @@ 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 "" -"Durchsuche die Namen, Orte oder Interessen der Nutzer von %%site.name%%. " +"Durchsuche die Namen, Orte oder Interessen der Benutzer von %%site.name%%. " "Trenne mehrere Suchbegriffe durch Leerzeichen. Ein Suchbegriff muss aus " "mindestens 3 Zeichen bestehen." @@ -1974,18 +2776,21 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" -"Warum [registrierst Du nicht einen Account](%%action.register%%) und [legst " +"Warum [registrierst du nicht einen Account](%%action.register%%) und [legst " "diese Gruppe selbst an](%%action.newgroup%%)?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." -msgstr "Nur Administratoren können Gruppenmitglieder entsperren." +msgstr "Nur Admins können Blockierungen von Gruppenmitglieder aufheben." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "Dieser Nutzer ist nicht von der Gruppe gesperrt." +msgstr "Dieser Benutzer ist nicht von der Gruppe blockiert." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Fehler beim Freigeben des Benutzers." @@ -2035,7 +2840,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2046,65 +2854,65 @@ msgstr "" "Programm oder GTalk aufgenommen hast." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "IM Einstellungen" +msgstr "IM-Einstellungen" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Schicke mir Nachrichten mittels Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Schicke eine Nachricht, wenn sich mein Jabber/GTalk-Status verändert." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Schicke mir Antworten von Leuten, die ich nicht abonniert habe, mit Jabber/" "GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "MicroID für meine Jabber/GTalk-Adresse veröffentlichen." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Einstellungen gesichert." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Keine Jabber-ID" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "Konnte diese Jabber ID nicht normalisieren" +msgstr "Konnte diese Jabber-ID nicht normalisieren" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Ungültige Jabber-ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." -msgstr "Diese JabberID hast du schon angegeben." +msgstr "Diese Jabber-ID hast du schon angegeben." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." -msgstr "Diese Jabber ID wird bereits von einem anderen Benutzer verwendet." +msgstr "Diese Jabber-ID wird bereits von einem anderen Benutzer verwendet." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2114,30 +2922,30 @@ msgstr "" "hast. Du musst zulassen, dass %s dir Nachrichten schicken darf." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Das ist die falsche IM-Adresse." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." -msgstr "Konnte die IM Bestätigung nicht löschen." +msgstr "Konnte die IM-Bestätigung nicht löschen." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "IM Bestätigung abgebrochen." +msgstr "IM-Bestätigung abgebrochen." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "Dies ist nicht deine JabberID." +msgstr "Dies ist nicht deine Jabber-ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Die IM Adresse wurde entfernt." +msgstr "Die IM-Adresse wurde entfernt." #: actions/inbox.php:59 #, php-format @@ -2155,51 +2963,79 @@ msgstr "" "Das hier ist dein Posteingang, der deine eingehenden privaten Nachrichten " "enthält." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Einladungen wurden deaktiviert." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Du musst angemeldet sein, um andere Benutzer zu %s einzuladen" -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" +msgid "Invalid email address: %s." msgstr "Ungültige E-Mail-Adresse: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "Einladung(en) verschickt" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Lade neue Leute ein" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Du hast diese Benutzer bereits abonniert:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Du hast diesen Benutzer bereits abonniert:" +msgstr[1] "Du hast diese Benutzer bereits abonniert:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" -"Diese Leute sind bereits registrierte Benutzer und Du hast Sie automatisch " +msgstr[0] "" +"Diese Person ist bereits registrierter Benutzer und du hast ihn automatisch " "abonniert." +msgstr[1] "" +"Diese Personen sind bereits registrierte Benutzer und du hast sie " +"automatisch abonniert." -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Einladung(en) an folgende Personen geschickt:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Einladung an folgende Personen geschickt:" +msgstr[1] "Einladungen an folgende Personen geschickt:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2208,45 +3044,56 @@ msgstr "" "die Empfänger auf der Seite registriert haben. Danke, dass du uns hilfst zu " "wachsen!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "Lade deine Freunde und Kollegen ein diesen Dienst zu nutzen." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-Mail-Adressen" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -"Adressen von Freunden, die Du einladen möchtest. (Jeweils eine Adresse pro " +"Adressen von Freunden, die du einladen möchtest. (Jeweils eine Adresse pro " "Zeile)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Private Nachricht" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" "Wenn du möchtest kannst du zu der Einladung eine persönliche Nachricht " "anfügen." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Senden" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s hat Dich eingeladen, auch bei %2$s mitzumachen." +msgstr "%1$s hat dich eingeladen, auch bei %2$s mitzumachen." -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2276,12 +3123,12 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s hat Dich eingeladen, auch bei %2$s mitzumachen. (%3$s).\n" +"%1$s hat dich eingeladen, auch bei %2$s mitzumachen. (%3$s).\n" "\n" -"%2$s ist ein Microblogging-Service der Dich über Deine Freunde auf dem " -"Laufenden hält und Deine Freunde über Dich informiert. \n" +"%2$s ist ein Mikroblogging-Service, der dich über deine Freunde auf dem " +"Laufenden hält und deine Freunde über dich informiert. \n" "\n" -"Du kannst Neuigkeiten über Dich und Deine Gedanken verbreiten. Lerne neue " +"Du kannst Neuigkeiten über dich und deine Gedanken verbreiten. Lerne neue " "Leute mit ähnlichen Interessen kennen. \n" "\n" "%1$s sagte:\n" @@ -2292,12 +3139,12 @@ msgstr "" "\n" "%5$s\n" "\n" -"Wenn Du den Service ausprobieren möchtest klicke den Link unten an, um die " +"Wenn du den Service ausprobieren möchtest, klicke den Link unten an, um die " "Einladung anzunehmen.\n" "\n" "%6$s\n" "\n" -"Wenn nicht, ignoriere diese Nachricht. Danke für Deine Geduld und Deine " +"Wenn nicht, ignoriere diese Nachricht. Danke für deine Geduld und deine " "Zeit\n" "\n" "Schöne Grüße von %2$s\n" @@ -2306,13 +3153,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du musst angemeldet sein, um Mitglied einer Gruppe zu werden." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Kein Benutzername oder ID" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s ist der Gruppe %2$s beigetreten" @@ -2321,17 +3162,122 @@ msgstr "%1$s ist der Gruppe %2$s beigetreten" msgid "You must be logged in to leave a group." msgstr "Du musst angemeldet sein, um aus einer Gruppe auszutreten." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Du bist kein Mitglied dieser Gruppe." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s hat die Gruppe %2$s verlassen" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Lizenz" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Lizenz dieser StatusNet-Website" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Ungültige Lizenzauswahl." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Du musst den Besitzer des Inhalts angeben, wenn du „Alle Rechte vorbehalten“ " +"wählst." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Ungültiger Lizenztitel. Die maximale Länge liegt bei 255 Zeichen." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Ungültige Lizenz-URL." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Ungültige Lizenz-Bild-URL." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Lizenz-URL muss leer oder eine gültige URL sein." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Lizenz-Bild muss leer oder eine gültige URL sein." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Lizenzauswahl" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privat" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Alle Rechte vorbehalten" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Typ" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Lizenz auswählen" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Lizenz-Details" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Besitzer" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Name von dem Besitzer des Inhalts dieser Website (falls notwendig)" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Lizenz-Titel" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Der Titel der Lizenz." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Lizenz-URL" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL mit weiteren Informationen über die Lizenz." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "Lizenz-Bild-URl" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL eines mit der Lizenz anzuzeigenden Bildes." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Lizenz-Einstellungen speichern" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Bereits angemeldet." @@ -2343,7 +3289,7 @@ msgstr "Falscher Benutzername oder Passwort." #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." msgstr "" -"Fehler beim setzen des Benutzers. Du bist vermutlich nicht autorisiert." +"Fehler beim Setzen des Benutzers. Du bist vermutlich nicht autorisiert." #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2353,11 +3299,11 @@ msgstr "Anmelden" msgid "Login to site" msgstr "An Seite anmelden" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Anmeldedaten merken" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Automatisch anmelden; nicht bei gemeinsam genutzten PCs einsetzen!" @@ -2375,24 +3321,24 @@ msgstr "" #: actions/login.php:292 msgid "Login with your username and password." -msgstr "Mit Nutzernamen und Passwort anmelden." +msgstr "Mit Benutzernamen und Passwort anmelden." #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" -"Du hast noch keinen Nutzernamen? [Registriere](%%action.register%%) ein " +"Du hast noch keinen Benutzernamen? [Registriere](%%action.register%%) ein " "neues Konto." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "Nur Administratoren können andere Nutzer zu Administratoren ernennen." +msgstr "Nur Admins können andere Benutzer zu Admins ernennen." #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "%1$s ist bereits Administrator der Gruppe \"%2$s\"." +msgstr "%1$s ist bereits Admin der Gruppe „%2$s“." #: actions/makeadmin.php:133 #, php-format @@ -2402,73 +3348,83 @@ msgstr "Konnte keinen Mitgliedseintrag für %1$s aus Gruppe %2$s empfangen." #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Konnte %1$s nicht zum Administrator der Gruppe %2$s machen" +msgstr "Konnte %1$s nicht zum Admin der Gruppe %2$s machen" #: actions/microsummary.php:69 msgid "No current status." msgstr "Kein aktueller Status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Neues Programm" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Du musst angemeldet sein, um ein Programm zu registrieren." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Benutzer dieses Formular, um eine neues Programm zu erstellen." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Quell-URL ist erforderlich." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Konnte das Programm nicht erstellen." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Neue Gruppe" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "Benutzer dieses Formular, um eine neue Gruppe zu erstellen." +msgstr "Benutze dieses Formular, um eine neue Gruppe zu erstellen." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Neue Nachricht" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Du kannst diesem Benutzer keine Nachricht schicken." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Kein Inhalt!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Kein Empfänger angegeben." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Schicke dir selbst keine Nachrichten; sag es dir stattdessen einfach leise." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Nachricht gesendet" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Direkte Nachricht an %s abgeschickt" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax-Fehler" @@ -2476,7 +3432,7 @@ msgstr "Ajax-Fehler" msgid "New notice" msgstr "Neue Nachricht" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Nachricht hinzugefügt" @@ -2497,7 +3453,7 @@ msgstr "Volltextsuche" #: actions/noticesearch.php:91 #, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Suchergebnisse für \"%1$s\" auf %2$s" +msgstr "Suchergebnisse für „%1$s“ auf %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2514,7 +3470,7 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" -"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"Warum [registrierst du nicht einen Account](%%%%action.register%%%%) und " "bist der erste der [auf diese Nachricht antwortet](%%%%action.newnotice%%%%?" "status_textarea=%s)!" @@ -2530,7 +3486,8 @@ msgstr "Alle Aktualisierungen, die den Suchbegriff „%s“ enthalten" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Dieser Benutzer erlaubt keine Stupser oder hat seine E-Mail-Adresse noch " "nicht bestätigt oder eingestellt." @@ -2543,122 +3500,157 @@ msgstr "Stups abgeschickt" msgid "Nudge sent!" msgstr "Stups gesendet!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Du musst angemeldet sein, um deine Programm anzuzeigen" -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth-Anwendungen" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Registrierte Programme" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Du hast noch keine Programme registriert" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Verbundene Programme" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -"Du hast das folgende Programm die Erlaubnis erteilt sich mit deinem Profil " -"zu verbinden." +"Du hast den folgenden Programmen erlaubt, auf dein Benutzerkonto zuzugreifen." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Du bist kein Benutzer dieses Programms." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Kann Zugang dieses Programm nicht entfernen: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Sie haben den Zugang von %1$s und den Tokem mit %2$s erfolgreich entfernt." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -"Du hast noch kein Programm die Erlaubnis gegeben dein Profil zu benutzen." +"Du hast noch keinem Programm die Erlaubnis gegeben, dein Profil zu benutzen." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Entwickler können die Registrierungseinstellungen ihrer Programme ändern " +"Sie sind Entwickler? [Registrieren einer OAuth-Client-Anwendung] (%s), um " +"mit dieser Instanz von StatusNet zu verwenden." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Nachricht hat kein Profil" -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$s Status auf %2$s" +msgstr "Status von %1$s auf %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Content-Typ %s wird nicht untersützt." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Bitte nur %s URLs über einfaches HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." #: actions/opensearch.php:64 msgid "People Search" -msgstr "Suche nach Nutzern" +msgstr "Suche nach Benutzern" #: actions/opensearch.php:67 msgid "Notice Search" msgstr "Nachrichtensuche" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Andere Einstellungen" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Verwalte zahlreiche andere Einstellungen." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "(kostenloser Dienst)" +msgstr " (kostenloser Dienst)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "URLs kürzen mit" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "URL-Auto-Kürzungs-Dienst." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "Profil-Einstellungen ansehen" +msgstr "Profil-Designs ansehen" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Profil-Designs anzeigen oder verstecken." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "URL-Auto-Kürzungs-Dienst ist zu lang (max. 50 Zeichen)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "URL-Auto-Kürzungs-Dienst ist zu lang (maximal 50 Zeichen)." #: actions/otp.php:69 msgid "No user ID specified." -msgstr "Keine Benutzer ID angegeben" +msgstr "Keine Benutzer-ID angegeben" #: actions/otp.php:83 msgid "No login token specified." @@ -2716,7 +3708,7 @@ msgid "6 or more characters" msgstr "6 oder mehr Zeichen" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Bestätigen" @@ -2728,11 +3720,11 @@ msgstr "Gleiches Passwort wie zuvor" msgid "Change" msgstr "Ändern" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Das Passwort muss aus 6 oder mehr Zeichen bestehen." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Passwörter stimmen nicht überein." @@ -2742,7 +3734,7 @@ msgstr "Altes Passwort falsch" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." -msgstr "Fehler beim Speichern des Nutzers, ungültig." +msgstr "Fehler beim Speichern des Benutzers, ungültig." #: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." @@ -2752,156 +3744,273 @@ msgstr "Konnte neues Passwort nicht speichern" msgid "Password saved." msgstr "Passwort gespeichert." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Pfad" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Pfad- und Serverangaben für diese StatusNet Seite." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Pfad- und Servereinstellungen dieser StatusNet-Website" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Theme-Verzeichnis nicht lesbar: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Avatar-Verzeichnis ist nicht beschreibbar: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Hintergrund-Verzeichnis ist nicht beschreibbar: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Sprachverzeichnis nicht lesbar: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Ungültiger SSL-Server. Die maximale Länge ist 255 Zeichen." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Seite" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Server" -#: actions/pathsadminpanel.php:238 -msgid "Site's server hostname." -msgstr "Server Name der Seite" - #: actions/pathsadminpanel.php:242 +msgid "Site's server hostname." +msgstr "Server-Name der Seite" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Pfad" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Seitenpfad" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Seitenpfad." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Sprachverzeichnis" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Sprachpfad" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Pfad zu den Sprachen" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Pfad zu den Sprachen." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Schicke URLs." -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Schicke URLs (lesbarer und besser zu merken) verwenden?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Motiv" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Motiv-Server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Theme-Server" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Motiv-Pfad" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Web-Pfad zu den Themes." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Theme-Verzeichnis" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatare" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatar-Server" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avatarpfad" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatarverzeichnis" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Hintergrundbilder" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Server für Hintergrundbilder" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Pfad zu den Hintergrundbildern" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Hintergrund Verzeichnis" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nie" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Manchmal" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Immer" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "SSL verwenden" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Wann soll SSL verwendet werden" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-Server" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-Server der Themes (Standard: SSL-Server)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-Pfad" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-Pfad der Themes (Standard: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Verzeichnis" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Pfad, wo sich die Themes befinden." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatare" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatar-Server" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Server für Avatare." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avatarpfad" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Web-Pfad zu den Avataren." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatarverzeichnis" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Pfad, in dem sich die Avatare befinden." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Hintergrundbilder" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Server für Hintergründe." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Web-Pfad zu den Hintergründen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Server für Hintergründe auf SSL-Seiten." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Web Pfad zu Hintergründen auf SSL-Seiten." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Verzeichnis, in dem sich die Hintergründe befinden." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Anhänge" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Server für Anhänge." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Web-Pfad zu den Anhängen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Server für Anhängen auf SSL-Seiten." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Web-Pfad, für Anlagen auf SSL-Seiten." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Pfad, in dem sich die Themes befinden." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nie" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Manchmal" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Immer" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL verwenden" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Wann soll SSL verwendet werden." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." msgstr "Server an den SSL Anfragen gerichtet werden sollen" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Speicherpfade" @@ -2911,23 +4020,23 @@ 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 "" -"Durchsuche die Namen, Orte oder Interessen der Nutzer von %%site.name%%. " +"Durchsuche die Namen, Orte oder Interessen der Benutzer von %%site.name%%. " "Trenne mehrere Suchbegriffe durch Leerzeichen. Ein Suchbegriff muss aus " "mindestens 3 Zeichen bestehen." #: actions/peoplesearch.php:58 msgid "People search" -msgstr "Suche nach anderen Nutzern" +msgstr "Suche nach anderen Benutzern" #: actions/peopletag.php:68 #, php-format msgid "Not a valid people tag: %s." -msgstr "Ungültiger Personen-Tag: %s." +msgstr "Ungültiger Personen-Tag: „%s“." #: actions/peopletag.php:142 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "Benutzer die sich selbst mit %1$s getagged haben - Seite %2$d" +msgstr "Benutzer, die sich selbst mit „%1$s“ getaggt haben - Seite %2$d" #: actions/postnotice.php:95 msgid "Invalid notice content." @@ -2937,145 +4046,188 @@ msgstr "Ungültiger Nachrichteninhalt." #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -"Die Nachrichtenlizenz '%1$s' ist nicht kompatibel mit der Lizenz der Seite '%" -"2$s'." +"Die Nachrichtenlizenz „%1$s“ ist nicht kompatibel mit der Lizenz der Seite „%" +"2$s“." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profil-Einstellungen" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Du kannst dein Profil auf den neusten Stand bringen, damit andere Leute mehr " "über dich erfahren können." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profilinformation" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 Kleinbuchstaben oder Ziffern, keine Sonder- oder Leerzeichen" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" -msgstr "Vollständiger Name" +msgstr "Bürgerlicher Name" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Homepage" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." msgstr "" -"URL deiner Homepage, deines Blogs, oder deines Profils auf einer anderen Site" +"URL deiner Homepage, deines Blogs, oder deines Profils auf einer anderen " +"Website." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Beschreibe dich selbst und deine Interessen in %d Zeichen" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Beschreibe dich selbst und deine Interessen in einem Zeichen" +msgstr[1] "Beschreibe dich selbst und deine Interessen in %d Zeichen" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Beschreibe dich selbst und deine Interessen" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografie" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Aufenthaltsort" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Wo du bist, beispielsweise „Stadt, Gebiet, Land“" +msgstr "Wo du bist, beispielsweise „Stadt, Region, Land“" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" -msgstr "Teile meine aktuelle Position wenn ich Nachrichten sende" +msgstr "Teile meine aktuelle Position, wenn ich Nachrichten sende" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" -msgstr "Stichwörter" +msgstr "Tags" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -"Stichwörter über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas " -"oder Leerzeichen getrennt" +"Tags über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas oder " +"Leerzeichen getrennt" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Sprache" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Bevorzugte Sprache" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Zeitzone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "In welcher Zeitzone befindest du dich üblicherweise?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Die Biografie ist zu lang (max. %d Zeichen)" +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Die Biografie ist zu lang (maximal ein Zeichen)." +msgstr[1] "Die Biografie ist zu lang (maximal %d Zeichen)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Keine Zeitzone ausgewählt." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Die eingegebene Sprache ist zu lang (maximal 50 Zeichen)" +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Die eingegebene Sprache ist zu lang (maximal 50 Zeichen)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ungültiges Stichwort: „%s“" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Autosubscribe konnte nicht aktiviert werden." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Konnte Positions-Einstellungen nicht speichern." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Konnte Profil nicht speichern." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Konnte Tags nicht speichern." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Einstellungen gespeichert." @@ -3115,12 +4267,12 @@ msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -"Dies ist die öffentliche Zeitlinie von %%site.name%% es wurde allerdings " +"Dies ist die öffentliche Zeitleiste von %%site.name%%, es wurde allerdings " "noch nichts gepostet." #: actions/public.php:191 msgid "Be the first to post!" -msgstr "Sei der erste der etwas schreibt!" +msgstr "Sei der erste, der etwas schreibt!" #: actions/public.php:195 #, php-format @@ -3139,7 +4291,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" "Das ist %%site.name%%, ein [Mikroblogging](http://de.wikipedia.org/wiki/" -"Mikroblogging) Dienst auf Basis der freien Software [StatusNet](http://" +"Mikroblogging)-Dienst auf Basis der freien Software [StatusNet](http://" "status.net/). [Melde dich jetzt an](%%action.register%%) und tausche " "Nachrichten mit deinen Freunden, Familie oder Kollegen aus! ([Mehr " "Informationen](%%doc.help%%))" @@ -3151,42 +4303,55 @@ msgid "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" -"Dies ist %%site.name%%, ein [Mikro-blogging-Dienst](http://de.wikipedia.org/" -"wiki/Mikro-blogging) basierend auf der freien Software [StatusNet](http://" +"Dies ist %%site.name%%, ein [Mikroblogging](http://de.wikipedia.org/wiki/" +"Mikroblogging)-Dienst basierend auf der freien Software [StatusNet](http://" "status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" -msgstr "Öffentliche Stichwort-Wolke" +msgstr "Öffentliche Tag-Wolke" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Das sind die beliebtesten Stichwörter auf %s " +msgid "These are most popular recent tags on %s" +msgstr "Das sind die beliebtesten Tags auf „%s“" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -"Bis jetzt hat noch niemand eine Nachricht mit dem Stichwort [hashtag](%%doc." -"tags%%) gepostet." +"Bis jetzt hat noch niemand eine Nachricht mit dem Tag „[hashtag](%%doc.tags%" +"%)“ gepostet." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" -msgstr "Sei der Erste der etwas schreibt!" +msgstr "Sei der erste, der etwas schreibt!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"Warum [registrierst du nicht einen Account](%%%%action.register%%%%) und " "bist der erste der eine Nachricht abschickt!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" -msgstr "Stichwort-Wolke" +msgstr "Tag-Wolke" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -3202,7 +4367,7 @@ msgstr "Kein Wiederherstellungscode." #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "Wiederherstellungscode für unbekannten Nutzer." +msgstr "Wiederherstellungscode für unbekannten Benutzer." #: actions/recoverpassword.php:86 msgid "Error with confirmation code." @@ -3221,7 +4386,7 @@ 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 "" -"Wenn du dein Passwort vergessen hast kannst du dir ein neues an deine " +"Wenn du dein Passwort vergessen hast, kannst du dir ein neues an deine " "hinterlegte Email schicken lassen." #: actions/recoverpassword.php:158 @@ -3230,11 +4395,11 @@ msgstr "Du wurdest identifiziert. Gib ein neues Passwort ein. " #: actions/recoverpassword.php:188 msgid "Password recovery" -msgstr "Password-Wiederherstellung" +msgstr "Passwort-Wiederherstellung" #: actions/recoverpassword.php:191 msgid "Nickname or email address" -msgstr "Spitzname oder e-mail Adresse" +msgstr "Spitzname oder E-Mail-Adresse" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3278,7 +4443,7 @@ msgstr "Kein Benutzer mit dieser E-Mail-Adresse oder mit diesem Nutzernamen." #: actions/recoverpassword.php:299 msgid "No registered email address for that user." -msgstr "Der Nutzer hat keine registrierte E-Mail-Adresse." +msgstr "Der Benutzer hat keine registrierte E-Mail-Adresse." #: actions/recoverpassword.php:313 msgid "Error saving address confirmation." @@ -3297,55 +4462,55 @@ msgid "Unexpected password reset." msgstr "Unerwarteter Passwortreset." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." -msgstr "Passwort muss mehr als 6 Zeichen enthalten" +msgid "Password must be 6 characters or more." +msgstr "Passwort muss mehr als 6 Zeichen enthalten." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Passwort und seine Bestätigung stimmen nicht überein." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." -msgstr "Fehler bei den Nutzereinstellungen." +msgstr "Fehler bei den Benutzereinstellungen." #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Neues Passwort erfolgreich gespeichert. Du bist jetzt angemeldet." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Es tut uns leid, zum Registrieren benötigst du eine Einladung." #: actions/register.php:99 msgid "Sorry, invalid invitation code." -msgstr "Entschuldigung, ungültiger Bestätigungscode." +msgstr "Entschuldigung, ungültiger Einladungscode." #: actions/register.php:119 msgid "Registration successful" msgstr "Registrierung erfolgreich" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrieren" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "Registrierung nicht gestattet" +msgstr "Registrierung nicht erlaubt." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" "Du kannst dich nicht registrieren, wenn du die Lizenz nicht akzeptierst." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Diese E-Mail-Adresse existiert bereits." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Benutzername oder Passwort falsch." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3353,69 +4518,74 @@ msgstr "" "Hier kannst du einen neuen Zugang einrichten. Anschließend kannst du " "Nachrichten und Links mit deinen Freunden und Kollegen teilen. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -"1-64 kleingeschriebene Buchstaben oder Zahlen, keine Satz- oder Leerzeichen. " -"Pflicht." +"1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen. Pflicht." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 oder mehr Buchstaben. Pflicht." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Gleiches Passwort wie zuvor. Pflichteingabe." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-Mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Wird nur für Updates, wichtige Mitteilungen und zur " "Passwortwiederherstellung verwendet" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" -msgstr "Längerer Name, bevorzugt dein „echter“ Name" +msgstr "Längerer Name, bevorzugt dein bürgerlicher Name" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" +"URL deiner Homepage, deines Blogs, oder deines Profils auf einer anderen " +"Website" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Mir ist bewusst, dass Inhalte und Daten von %1$s privat und vertraulich sind." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Meine Texte und Dateien sind urheberrechtlich geschützt durch %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Meine Texte und Dateien verbleiben unter meinem eigenen Urheberrecht." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Alle Rechte vorbehalten." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -"Abgesehen von folgenden Daten: Passwort, Email Adresse, IM Adresse und " +"Abgesehen von den folgenden Daten: Passwort, E-Mail-Adresse, IM-Adresse und " "Telefonnummer, sind all meine Texte und Dateien unter %s verfügbar." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3446,9 +4616,9 @@ msgstr "" "* die [Dokumentation](%%%%doc.help%%%%) lesen um mehr über weitere Features " "zu erfahren\n" "\n" -"Danke für deine Anmeldung, wir hoffen das dir der Service gefällt." +"Danke für deine Anmeldung, wir hoffen, dass dir der Service gefällt." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3465,7 +4635,7 @@ msgid "" msgstr "" "Für ein Abonnement kannst du dich entweder [anmelden](%%action.login%%) oder " "ein neues Konto [registrieren](%%action.register%%). Wenn du schon ein Konto " -"auf einer [kompatiblen Microbloggingsite](%%doc.openmublog%%) hast, dann gib " +"auf einer [kompatiblen Mikrobloggingsite](%%doc.openmublog%%) hast, dann gib " "deine Profil-URL unten an." #: actions/remotesubscribe.php:112 @@ -3482,7 +4652,7 @@ msgstr "Benutzername" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "Nutzername des Nutzers, dem du folgen möchtest" +msgstr "Name des Benutzers, dem du folgen möchtest" #: actions/remotesubscribe.php:133 msgid "Profile URL" @@ -3490,10 +4660,10 @@ msgstr "Profil-URL" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "Profil-URL bei einem anderen kompatiblen Microbloggingdienst" +msgstr "Profil-URL bei einem anderen kompatiblen Mikrobloggingdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abonnieren" @@ -3516,11 +4686,11 @@ msgstr "Konnte keinen Anfrage-Token bekommen." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "Nur angemeldete Nutzer können Nachrichten wiederholen." +msgstr "Nur angemeldete Benutzer können Nachrichten wiederholen." #: actions/repeat.php:64 actions/repeat.php:71 msgid "No notice specified." -msgstr "Keine Nachricht angegeen." +msgstr "Keine Nachricht angegeben." #: actions/repeat.php:76 msgid "You can't repeat your own notice." @@ -3530,7 +4700,7 @@ msgstr "Du kannst deine eigene Nachricht nicht wiederholen." msgid "You already repeated that notice." msgstr "Nachricht bereits wiederholt" -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Wiederholt" @@ -3539,7 +4709,7 @@ msgid "Repeated!" msgstr "Wiederholt!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Antworten an %s" @@ -3579,7 +4749,7 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" -"Du kannst andere Nutzer ansprechen, mehr Leuten folgen oder [Gruppen " +"Du kannst andere Benutzer ansprechen, mehr Leuten folgen oder [Gruppen " "beitreten](%%action.groups%%)." #: actions/replies.php:206 @@ -3598,7 +4768,7 @@ msgstr "Antworten an %1$s auf %2$s!" #: actions/revokerole.php:75 msgid "You cannot revoke user roles on this site." -msgstr "Du kannst die Rollen von Nutzern dieser Seite nicht widerrufen." +msgstr "Du kannst die Rollen von Benutzern dieser Seite nicht widerrufen." #: actions/revokerole.php:82 msgid "User doesn't have this role." @@ -3618,13 +4788,13 @@ msgstr "Benutzer ist schon blockiert." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sitzung" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Sitzungs-Einstellungen für diese StatusNet-Website." +msgid "Session settings for this StatusNet site" +msgstr "Sitzungs-Einstellungen dieser StatusNet-Website" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3643,44 +4813,44 @@ msgid "Turn on debugging output for sessions." msgstr "Fehleruntersuchung für Sitzungen aktivieren" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" -msgstr "Site-Einstellungen speichern" +msgstr "Website-Einstellungen speichern" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." -msgstr "Du musst angemeldet sein, um aus dieses Programm zu betrachten." +msgstr "Du musst angemeldet sein, um dieses Programm zu betrachten." #: actions/showapplication.php:157 msgid "Application profile" msgstr "Anwendungsprofil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Symbol" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Name" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisation" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" -msgstr "Statistiken" +msgstr "Statistik" #: actions/showapplication.php:203 #, php-format @@ -3695,17 +4865,22 @@ msgstr "Programmaktionen" msgid "Reset key & secret" msgstr "Schlüssel zurücksetzen" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Löschen" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Programminformation" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "Anwender Schlüssel" +msgstr "Anwender-Schlüssel" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "Anwender Geheimnis" +msgstr "Anwender-Geheimnis" #: actions/showapplication.php:273 msgid "Request token URL" @@ -3713,7 +4888,7 @@ msgstr "Anfrage-Token Adresse" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "Zugriffs-Token Adresse" +msgstr "Zugriffs-Token-Adresse" #: actions/showapplication.php:283 msgid "Authorize URL" @@ -3724,8 +4899,8 @@ msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" -"Hinweis: Wir unterstützen HMAC-SHA1 Signaturen. Wir unterstützen keine " -"Klartext Signaturen." +"Hinweis: Wir unterstützen HMAC-SHA1-Signaturen. Wir unterstützen keine " +"Klartext-Signaturen." #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" @@ -3734,7 +4909,7 @@ msgstr "Bist du sicher, dass du den Schlüssel zurücksetzen willst?" #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%1$ss favorisierte Nachrichten, Seite %2$d" +msgstr "Favorisierte Nachrichten von %1$s, Seite %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." @@ -3770,8 +4945,8 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" -"%s hat noch keine Nachricht zu den Favoriten hinzugefügt. Sende du doch " -"einfach eine interessante Nachricht, damit sich daran etwas ändert :)" +"%s hat noch keine Nachricht zu den Favoriten hinzugefügt. Sende doch einfach " +"eine interessante Nachricht, damit sich daran etwas ändert :)" #: actions/showfavorites.php:212 #, php-format @@ -3786,79 +4961,106 @@ msgstr "" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." -msgstr "Dies ist ein Weg Dinge zu teilen die dir gefallen." +msgstr "Dies ist ein Weg, Dinge zu teilen, die dir gefallen." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" -msgstr "%s Gruppe" +msgstr "%s-Gruppe" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s Gruppe, Seite %d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Gruppenprofil" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nachricht" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Pseudonyme" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Gruppenaktionen" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Nachrichtenfeed der Gruppe %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Postausgang von %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Mitglieder" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Kein)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alle Mitglieder" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Erstellt" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Mitglieder" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3867,13 +5069,16 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"**%s** ist eine Gruppe auf %%%%site.name%%%%, einem [micro-blogging](http://" -"en.wikipedia.org/wiki/Micro-blogging) Dienst auf Basis der freien Software " +"**%s** ist eine Gruppe auf %%%%site.name%%%%, einem [Mikroblogging](http://" +"de.wikipedia.org/wiki/Mikroblogging)-Dienst auf Basis der freien Software " "[StatusNet](http://status.net/). [Werde Mitglied](%%%%action.register%%%%) " "und werde Teil der Gruppe und vielen anderen! ([Mehr Informationen](%%%%doc." "help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3881,29 +5086,36 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" -"**%s** ist eine Benutzergruppe auf %%%%site.name%%%%, einem [Mikro-blogging-" -"Dienst](http://de.wikipedia.org/wiki/Mikro-blogging) basierend auf der " -"Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen " -"kurze Nachrichten über Ihr Leben und Interessen. " +"**%s** ist eine Benutzergruppe auf %%%%site.name%%%%, einem [Mikroblogging]" +"(http://de.wikipedia.org/wiki/Mikroblogging)-Dienst basierend auf der freien " +"Software [StatusNet](http://status.net/). Seine Mitglieder erstellen kurze " +"Nachrichten über ihr Leben und Interessen. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" -msgstr "Administratoren" +msgstr "Admins" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Keine derartige Nachricht." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Nur der Absender und der Empfänger können diese Nachricht lesen." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Nachricht an %1$s auf %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Nachricht von %1$s auf %2$s" @@ -3912,57 +5124,78 @@ msgstr "Nachricht von %1$s auf %2$s" msgid "Notice deleted." msgstr "Nachricht gelöscht." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr "Nachrichten, die mit %s getagt sind" +msgid "%1$s tagged %2$s" +msgstr "Von „%1$s“ mit „%2$s“ getaggte Nachrichten" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Von „%1$s“ mit „%2$s“ getaggte Nachrichten, Seite %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, Seite %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Nachrichtenfeed für %1$s tagged %2$s (RSS 1.0)" +msgstr "Feed aller von „%1$s“ mit „%2$s“ getaggten Nachrichten (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Feed der Nachrichten von %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Feed der Nachrichten von %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Feed der Nachrichten von %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF von %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Dies ist die Zeitleiste für %1$s und Freunde aber bisher hat niemand etwas " -"gepostet." +"Dies ist die Zeitleiste von %1$s, aber bisher hat %1$s noch nichts gepostet." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -"In letzter Zeit irgendwas interessantes erlebt? Du hast noch nichts " +"In letzter Zeit irgendwas Interessantes erlebt? Du hast noch nichts " "geschrieben, jetzt wäre doch ein guter Zeitpunkt los zu legen :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3971,7 +5204,9 @@ msgstr "" "Du kannst %1$s in seinem Profil einen Stups geben oder [ihm etwas posten](%%%" "%action.newnotice%%%%?status_textarea=%s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3979,43 +5214,46 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"**%s** ist Mitglied bei %%%%site.name%%%%, einem [micro-blogging](http://en." -"wikipedia.org/wiki/Micro-blogging) Dienst auf Basis der freien Software " +"**%s** ist Mitglied bei %%%%site.name%%%%, einem [Mikroblogging](http://de." +"wikipedia.org/wiki/Mikroblogging)-Dienst auf Basis der freien Software " "[StatusNet](http://status.net/). [Werde Mitglied](%%%%action.register%%%%) " "um **%s**'s und vielen anderen zu folgen! ([Mehr Informationen](%%%%doc.help%" "%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" -"**%s** hat ein Konto auf %%%%site.name%%%%, einem [Mikro-blogging-Dienst]" -"(http://de.wikipedia.org/wiki/Mikro-blogging) basierend auf der Freien " -"Software [StatusNet](http://status.net/). " +"**%s** hat ein Konto auf %%%%site.name%%%%, einem [Mikroblogging](http://de." +"wikipedia.org/wiki/Mikroblogging)-Dienst basierend auf der freien Software " +"[StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Wiederholung von %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "Du kannst Nutzer dieser Seite nicht ruhig stellen." +msgstr "Du kannst Benutzer dieser Seite nicht ruhig stellen." #: actions/silence.php:72 msgid "User is already silenced." -msgstr "Nutzer ist bereits ruhig gestellt." +msgstr "Benutzer ist bereits ruhig gestellt." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" -msgstr "Grundeinstellungen für diese StatusNet Seite." +msgstr "Grundeinstellungen dieser StatusNet-Website" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." -msgstr "Der Seiten Name darf nicht leer sein." +msgstr "Der Seitenname darf nicht leer sein." #: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." @@ -4044,7 +5282,7 @@ msgstr "Seitenname" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "Der Name deiner Seite, sowas wie \"DeinUnternehmen Mircoblog\"" +msgstr "Der Name deiner Seite, sowas wie „DeinUnternehmen-Mikroblog“" #: actions/siteadminpanel.php:229 msgid "Brought by" @@ -4062,11 +5300,11 @@ msgstr "Erstellt von Adresse" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -"Adresse die für den Credit-Link im Fußbereich auf jeder Seite benutzt wird" +"Adresse, die für den Credit-Link im Fußbereich auf jeder Seite benutzt wird" #: actions/siteadminpanel.php:239 msgid "Contact email address for your site" -msgstr "Kontakt-E-Mail-Adresse für Deine Site." +msgstr "Kontakt-E-Mail-Adresse für deine Website." #: actions/siteadminpanel.php:245 msgid "Local" @@ -4074,11 +5312,11 @@ msgstr "Lokal" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "Standard Zeitzone" +msgstr "Standard-Zeitzone" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "Standard Zeitzone für die Seite (meistens UTC)." +msgstr "Standard-Zeitzone für die Seite (meistens UTC)." #: actions/siteadminpanel.php:262 msgid "Default language" @@ -4109,34 +5347,41 @@ msgstr "Wiederholungslimit" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -"Wie lange muss ein Benutzer warten bis er eine identische Nachricht " +"Wie lange muss ein Benutzer warten, bis er eine identische Nachricht " "abschicken kann (in Sekunden)." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Seitenbenachrichtigung" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Neue Nachricht" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Konnte Seitenbenachrichtigung nicht speichern" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Maximale Länge von Systembenachrichtigungen ist 255 Zeichen." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Seitenbenachrichtigung" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "Systembenachrichtigung (max. 255 Zeichen; HTML erlaubt)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "Systembenachrichtigung (maximal 255 Zeichen; HTML erlaubt)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Systemnachricht speichern" @@ -4150,7 +5395,7 @@ msgstr "SMS-Einstellungen" #: actions/smssettings.php:74 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "Du kannst SMS per E-Mail empfangen von %%site.name%%." +msgstr "Du kannst SMS von %%site.name%% per E-Mail empfangen." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 @@ -4160,7 +5405,7 @@ msgstr "SMS ist nicht verfügbar." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 msgid "SMS address" -msgstr "SMS Adresse" +msgstr "SMS-Adresse" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4201,7 +5446,7 @@ msgstr "Telefonnummer, keine Sonder- oder Leerzeichen mit Vorwahl" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 msgid "SMS preferences" -msgstr "SMS Einstellungen" +msgstr "SMS-Einstellungen" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4209,13 +5454,13 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" -"Schicke mir Nachrichten per SMS; ich weiss, dass mir dadurch hohe Kosten bei " +"Schicke mir Nachrichten per SMS; ich weiß, dass mir dadurch hohe Kosten bei " "meinem Netzbetreiber entstehen können." #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 msgid "SMS preferences saved." -msgstr "SMS Einstellungen gesichert." +msgstr "SMS-Einstellungen gesichert." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 @@ -4243,9 +5488,9 @@ 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 "" -"Ein Bestätigungscode wurde an die von Ihnen angegebene Telefonnummer " -"gesandt. Überprüfen Sie bitte Ihren Posteingang (auch den Spamordner!) auf " -"den Code und die Anweisungen, um ihn zu benutzen." +"Ein Bestätigungscode wurde an die von dir angegebene Telefonnummer gesandt. " +"Überprüfe bitte deinen Posteingang (auch den Spamordner!) auf den Code und " +"die Anweisungen, um ihn zu benutzen." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4255,7 +5500,7 @@ msgstr "Die Bestätigungsnummer ist falsch." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 msgid "SMS confirmation cancelled." -msgstr "SMS Bestätigung abgebrochen." +msgstr "SMS-Bestätigung abgebrochen." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4266,7 +5511,7 @@ msgstr "Dies ist nicht deine Telefonnummer." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 msgid "The SMS phone number was removed." -msgstr "SMS Telefonnummer wurde entfernt." +msgstr "SMS-Telefonnummer wurde entfernt." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 @@ -4297,13 +5542,13 @@ msgstr "Kein Code eingegeben" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Snapshots" #: actions/snapshotadminpanel.php:65 msgid "Manage snapshot configuration" -msgstr "Verwalten Snapshot-Konfiguration" +msgstr "Snapshot-Konfiguration verwalten" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4331,7 +5576,7 @@ msgstr "Daten-Snapshot" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "Wann sollen Statistiken zum status.net Server geschickt werden" +msgstr "Wann sollen Statistiken zum status.net-Server geschickt werden" #: actions/snapshotadminpanel.php:217 msgid "Frequency" @@ -4339,7 +5584,7 @@ msgstr "Frequenz" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" -msgstr "Snapshots werden all N Webseitenbesuche gesendet" +msgstr "Snapshots werden alle N Webseitenbesuche gesendet" #: actions/snapshotadminpanel.php:226 msgid "Report URL" @@ -4353,12 +5598,14 @@ msgstr "An diese Adresse werden Snapshots gesendet" msgid "Save snapshot settings" msgstr "Snapshot-Einstellungen speichern" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Du hast dieses Profil nicht abonniert." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Konnte Abonnement nicht erstellen." @@ -4366,10 +5613,6 @@ msgstr "Konnte Abonnement nicht erstellen." msgid "This action only accepts POST requests." msgstr "Diese Aktion nimmt nur POST-Requests" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Profil nicht gefunden." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Du hast dieses OMB 0.1 Profil nicht abonniert." @@ -4378,67 +5621,88 @@ msgstr "Du hast dieses OMB 0.1 Profil nicht abonniert." msgid "Subscribed" msgstr "Abonniert" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s Abonnenten" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s Abonnenten, Seite %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Dies sind die Leute, die deine Nachrichten lesen." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "Dies sind die Leute, die %ss Nachrichten lesen." +msgstr "Dies sind die Leute, die Nachrichten von %s lesen." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -"Du hast keine Abonnenten. Warum abonnierst Du nicht Leute, die Du kennst? " -"Sie werden Dir diesen Gefallen vielleicht auch tun." +"Du hast keine Abonnenten. Warum abonnierst du nicht Leute, die du kennst? " +"Sie werden dir diesen Gefallen vielleicht auch tun." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s hat keine Abonnenten. Willst du der erste sein?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -"% hat keine Abonnenten. Warum [registrierst Du nicht einen Account](%%%%" +"% hat keine Abonnenten. Warum [registrierst du nicht einen Account](%%%%" "action.register%%%%) und bist der erste?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s Abonnements" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s Abonnements, Seite %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Dies sind die Leute, deren Nachrichten du liest." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Dies sind die Leute, deren Nachrichten %s liest." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4449,58 +5713,69 @@ msgid "" msgstr "" "Du hast momentan noch niemanden abonniert. Benutze die [Personensuche](%%" "action.peoplesearch%%) um nach Freunden zu suchen oder besuche die [Beliebte " -"Benutzer](%%action.featured%%) Seite. Wenn du ein [Twitter Benutzer](%%" -"action.twittersettings%%) bist kannst du auch automatisch deine Twitter " +"Benutzer](%%action.featured%%) Seite. Wenn du ein [Twitter-Benutzer](%%" +"action.twittersettings%%) bist, kannst du auch automatisch deine Twitter-" "Freunde abonnieren." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s hat niemanden abonniert." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Feed der Nachrichten von %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Mit %1$s gekennzeichnete Nachrichten, Seite %2$d" +msgstr "Mit „%1$s“ getaggte Nachrichten, Seite %2$d" #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Nachrichten Feed für Tag %s (RSS 1.0)" +msgstr "Nachrichten-Feed des Tags „%s“ (RSS 1.0)" #: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Nachrichten Feed für Tag %s (RSS 2.0)" +msgstr "Nachrichten-Feed des Tag „%s“ (RSS 2.0)" #: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Nachrichten Feed für Tag %s (Atom)" +msgstr "Nachrichten-Feed des Tags „%s“ (Atom)" #: actions/tagother.php:39 msgid "No ID argument." -msgstr "Kein ID Argument." +msgstr "Kein ID-Argument." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "Tag %s" +msgstr "Tag „%s“" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Benutzerprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4513,8 +5788,8 @@ msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" -"Stichwörter für diesen Benutzer (Buchstaben, Nummer, -, ., und _), durch " -"Komma oder Leerzeichen getrennt" +"Tags dieses Benutzers (Buchstaben, Nummer, -, ., und _), durch Komma oder " +"Leerzeichen getrennt" #: actions/tagother.php:193 msgid "" @@ -4525,17 +5800,17 @@ msgstr "" #: actions/tagother.php:200 msgid "Could not save tags." -msgstr "Konnte Stichwörter nicht speichern." +msgstr "Konnte Tags nicht speichern." #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" -"Benutze dieses Formular, um Tags zu deinen Abonnenten oder Abonnements " +"Benutze dieses Formular, um Tags deinen Abonnenten oder Abonnements " "hinzuzufügen." #: actions/tagrss.php:35 msgid "No such tag." -msgstr "Stichwort nicht vorhanden." +msgstr "Tag nicht vorhanden." #: actions/unblock.php:59 msgid "You haven't blocked that user." @@ -4562,77 +5837,97 @@ msgstr "Abbestellt" msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -"Die Benutzerlizenz ‘%1$s’ ist nicht kompatibel mit der Lizenz der Seite ‘%2" -"$s’." +"Die Benutzerlizenz „%1$s“ ist nicht kompatibel mit der Lizenz der Seite „%2" +"$s“." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Benutzer" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Nutzer Einstellungen dieser StatusNet Seite." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Benutzer-Einstellungen dieser StatusNet-Website" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Das Zeichenlimit der Biografie muss numerisch sein!" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Willkommens-Nachricht ungültig. Maximale Länge sind 255 Zeichen." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "Ungültiges Abonnement: '%1$s' ist kein Benutzer" +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "Ungültiges Standard-Abonnement: „%1$s“ ist kein Benutzer." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" -msgstr "Bio Limit" +msgstr "Bio-Limit" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." -msgstr "Maximale Länge in Zeichen der Profil Bio." +msgstr "Maximale Länge in Zeichen der Profil-Bio." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" -msgstr "Neue Nutzer" +msgstr "Neue Benutzer" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Neue Benutzer empfangen" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "Willkommens-Nachricht für neue Nutzer (maximal 255 Zeichen)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Willkommens-Nachricht für neue Benutzer (maximal 255 Zeichen)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" -msgstr "Standard Abonnement" +msgstr "Standard-Abonnement" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." -msgstr "Neue Nutzer abonnieren automatisch diesen Nutzer" +msgstr "Neue Benutzer abonnieren automatisch diesen Benutzer" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Einladungen" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Einladungen aktivieren" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." -msgstr "Ist es Nutzern erlaubt neue Nutzer einzuladen." +msgstr "Ist es Benutzern erlaubt, neue Benutzer einzuladen." + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Benutzer-Einstellungen speichern" #: actions/userauthorization.php:105 msgid "Authorize subscription" @@ -4645,10 +5940,12 @@ msgid "" "click “Reject”." msgstr "" "Bitte überprüfe diese Angaben, um sicher zu gehen, dass du die Nachrichten " -"dieses Nutzers abonnieren möchtest. Wenn du das nicht wolltest, klicke auf " +"dieses Benutzers abonnieren möchtest. Wenn du das nicht wolltest, klicke auf " "„Abbrechen“." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Lizenz" @@ -4719,12 +6016,12 @@ msgstr "Die URI „%s“ für den Stream ist ein lokaler Benutzer." #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "Profiladresse '%s' ist für einen lokalen Benutzer." +msgstr "Profiladresse „%s“ ist für einen lokalen Benutzer." #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "Avatar Adresse '%s' ist nicht gültig." +msgstr "Avataradresse „%s“ ist nicht gültig." #: actions/userauthorization.php:350 #, php-format @@ -4736,11 +6033,13 @@ msgstr "Konnte Avatar-URL nicht öffnen „%s“" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Falscher Bildtyp für „%s“" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Profil-Design-Einstellungen" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4779,7 +6078,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Aktualisierungen von %1$s auf %2$s!" @@ -4795,7 +6094,7 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" -"Die Seite wird mit %1$s Version %2$s betrieben. Copyright 2008-2010 " +"Diese Seite wird mit %1$s Version %2$s betrieben. Copyright 2008–2010 " "StatusNet, Inc. und Mitarbeiter" #: actions/version.php:163 @@ -4840,7 +6139,7 @@ msgid "Plugins" msgstr "Erweiterungen" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Version" @@ -4848,64 +6147,117 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(en)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Zu Favoriten hinzufügen" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s markierte Nachricht %2$s als Favorit." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Die URL „%s“ konnte nicht verarbeitet werden" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin denkt, dass etwas unmöglich ist." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Keine Datei darf größer als %d Bytes sein und die Datei die du verschicken " -"wolltest war %d Bytes groß. Bitte eine kleinere Version hochladen." +msgstr[0] "" +"Keine Datei darf größer als ein Byte sein und die Datei die du verschicken " +"wolltest war %2$d Bytes groß. Bitte eine kleinere Version hochladen." +msgstr[1] "" +"Keine Datei darf größer als %1$d Bytes sein und die Datei die du verschicken " +"wolltest war %2$d Bytes groß. Bitte eine kleinere Version hochladen." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Eine Datei dieser Größe überschreitet deine User Quota von %d Byte." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Eine Datei dieser Größe überschreitet deine User Quota von einem Byte." +msgstr[1] "" +"Eine Datei dieser Größe überschreitet deine User Quota von %d Bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" -"Eine Datei dieser Größe würde deine monatliche Quota von %d Byte " +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Eine Datei dieser Größe würde deine monatliche Quota von einem Byte " +"überschreiten." +msgstr[1] "" +"Eine Datei dieser Größe würde deine monatliche Quota von %d Bytes " "überschreiten." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Ungültiger Dateiname." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Konnte Gruppe nicht beitreten" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Nicht Mitglied der Gruppe" #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Konnte Gruppe nicht verlassen" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Profil-ID %s ist ungültig." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Gruppen-ID %s ist ungültig." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Beitreten" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s ist der Gruppe „%2$s“ beigetreten." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4921,20 +6273,20 @@ msgstr "Konnte keinen Login-Token für %s erstellen" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "Nirgedwo einen Datenbanknamen oder DSN gefunden." +msgstr "Nirgendwo einen Datenbanknamen oder DSN gefunden." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "Direktes senden von Nachrichten wurde blockiert" +msgstr "Direktes Senden von Nachrichten wurde blockiert" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Konnte Nachricht nicht einfügen." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Konnte Nachricht nicht mit neuer URI versehen." @@ -4946,23 +6298,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Kein Profil (%1$d) für eine Notiz gefunden (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problem bei Speichern der Nachricht. Sie ist zu lang." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problem bei Speichern der Nachricht. Unbekannter Benutzer." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4970,7 +6322,7 @@ msgstr "" "ein paar Minuten ab." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4979,38 +6331,53 @@ msgstr "" "ein paar Minuten ab." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "" "Du wurdest für das Schreiben von Nachrichten auf dieser Seite gesperrt." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" -"Der Methode saveKnownGroups wurde ein schlechter Wert zur Verfügung gestellt" +"Der Methode „saveKnownGroups“ wurde ein schlechter Typ zur Verfügung " +"gestellt." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Konnte Antwort auf %1$d, %2$d nicht speichern." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -5019,7 +6386,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5032,343 +6399,387 @@ msgid "Missing profile." msgstr "Benutzer hat kein Profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Konnte Seitenbenachrichtigung nicht speichern." +msgstr "Konnte Tag nicht speichern." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Dieser Benutzer erlaubt dir nicht ihn zu abonnieren." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Bereits abonniert!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Dieser Benutzer hat dich blockiert." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Nicht abonniert!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Konnte Selbst-Abonnement nicht löschen." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Konnte OMB-Abonnement-Token nicht löschen." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Konnte Abonnement nicht löschen." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Folgen" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s folgt nun %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Kein einzelner Benutzer für den Ein-Benutzer-Modus ausgewählt." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Konnte Gruppe nicht erstellen." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Konnte die Gruppen URI nicht setzen." +msgstr "Konnte die Gruppen-URI nicht setzen." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Konnte die lokale Gruppen Information nicht speichern." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Ändern der Profileinstellungen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Avatar hochladen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Ändere dein Passwort" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Ändere die E-Mail-Verarbeitung" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Passe dein Profil an" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Sonstige Optionen" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Sonstige" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" -msgstr "%1$s - %2$s" +msgstr "%1$s – %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Seite ohne Titel" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Mehr anzeigen" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Hauptnavigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persönliches Profil und Freundes-Zeitleiste" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Eigene" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändere deine E-Mail, Avatar, Passwort und Profil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Profil" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Zum Dienst verbinden" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Verbinden" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Seiteneinstellung ändern" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" -msgstr "Administrator" +msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Einladen" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Von der Seite abmelden" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Abmelden" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Neues Konto erstellen" +msgstr "Neues Benutzerkonto erstellen" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrieren" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Auf der Seite anmelden" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Anmelden" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hilf mir!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Hilfe" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Suchen" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Seitennachricht" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokale Ansichten" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Neue Nachricht" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Unternavigation" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hilfe" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Über" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "AGB" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privatsphäre" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Quellcode" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Plakette" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet-Software-Lizenz" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" -"**%%site.name%%** ist ein Microbloggingdienst von [%%site.broughtby%%](%%" +"**%%site.name%%** ist ein Mikrobloggingdienst von [%%site.broughtby%%](%%" "site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." -msgstr "**%%site.name%%** ist ein Microbloggingdienst." +msgstr "**%%site.name%%** ist ein Mikrobloggingdienst." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Es wird mit der Microbloggingsoftware [StatusNet](http://status.net/) " +"Es wird mit der Mikrobloggingsoftware [StatusNet](http://status.net/) " "(Version %s) betrieben, die unter der [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "StatusNet-Software-Lizenz" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Inhalte und Daten von %1$s sind privat und vertraulich." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5376,326 +6787,433 @@ msgstr "" "vorbehalten." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Urheberrecht von Inhalt und Daten liegt bei den Beteiligten. Alle Rechte " "vorbehalten." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Alle Inhalte und Daten von %1$s sind unter der %2$s Lizenz verfügbar." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Seitenerstellung" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Später" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Vorher" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." -msgstr "root-Element eines Feeds erwartet aber ganzes XML Dokument erhalten." +msgstr "Root-Element eines Feeds erwartet, aber ganzes XML-Dokument erhalten." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Fremdinhalt kann noch nicht eingebunden werden." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." -msgstr "Kann eingebundenen XML Inhalt nicht verarbeiten." +msgstr "Kann eingebundenen XML-Inhalt nicht verarbeiten." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." -msgstr "Eingebundener Base64 Inhalt kann noch nicht verarbeitet werden." +msgstr "Eingebundener Base64-Inhalt kann noch nicht verarbeitet werden." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Du kannst keine Änderungen an dieser Seite vornehmen." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Änderungen an dieser Seite sind nicht erlaubt." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() noch nicht implementiert." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() noch nicht implementiert." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "Konnte die Design Einstellungen nicht löschen." +msgstr "Konnte die Design-Einstellungen nicht löschen." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "Basis Seiteneinstellungen" +msgstr "Basis-Seiteneinstellungen" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Seite" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "Motiv-Konfiguration" +msgstr "Design-Konfiguration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Benutzereinstellung" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Benutzer" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Zugangskonfiguration" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Pfadkonfiguration" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Sitzungseinstellungen" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Seitennachricht bearbeiten" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "Snapshot Konfiguration" +msgstr "Snapshot-Konfiguration" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Website-Lizenz einstellen" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "API-Ressource erfordert lesen/schreib Zugriff; du hast nur Leserechte." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Programm bearbeiten" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Kein Programm mit diesem Anwender-Schlüssel." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Schlechter Zugangstoken." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Kein Benutzer mit diesem Token." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Konnte dich nicht authentifizieren." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Anonymer Zugang konnte nicht erstellt werden" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Anonyme OAuth-Anwendung konnte nicht erstellt werden." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Konnte Nachricht nicht einfügen." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Datenbankfehler beim Einfügen des OAuth-Programm-Benutzers." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Versuchte, unbekanntes Token ungültig zu machen." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Konnte ungültig gemachtes Token nicht löschen." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Programmsymbol" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Beschreibe dein Programm in %d Zeichen" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Beschreibe dein Programm in einem Zeichen." +msgstr[1] "Beschreibe dein Programm in %d Zeichen." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Beschreibe dein Programm" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "Adresse der Homepage dieses Programms" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Quelladresse" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Für diese Anwendung verantwortliche Organisation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "Homepage der Gruppe oder des Themas" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "aufzurufende Adresse nach der Authentifizierung" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Browser" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Arbeitsfläche" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Typ der Anwendung, Browser oder Arbeitsfläche" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Schreibgeschützt" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lese/Schreibzugriff" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Standardeinstellung dieses Programms: Schreibgeschützt oder Lese/" "Schreibzugriff" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Abbrechen" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " von " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "Lese/Schreibzugriff" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "Schreibgeschützt" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." -msgstr "Genehmigte %1$s - \"%2$s\" Zugriff." +msgstr "Genehmigte %1$s - „%2$s“ Zugriff." + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Zugriffstoken beginnend mit „%s“" #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Widerrufen" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Anhänge" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "Das „author“-Element muss ein „name“-Element erhaten." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Anbieter" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "Nachrichten in denen dieser Anhang erscheint" +msgstr "Nachrichten, in denen dieser Anhang erscheint" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "Stichworte für diesen Anhang" +msgstr "Tags dieses Anhangs" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Passwort konnte nicht geändert werden" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Passwort konnte nicht geändert werden." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Passwort kann nicht geändert werden" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Passwort kann nicht geändert werden." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blockieren" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Befehl-Ergebnisse" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Ajax-Fehler" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Befehl ausgeführt" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Befehl fehlgeschlagen" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Nachricht mit dieser ID existiert nicht" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Nachricht mit dieser ID existiert nicht." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Benutzer hat keine letzte Nachricht" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Benutzer hat keine letzte Nachricht." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." +msgid "Could not find a user with nickname %s." +msgstr "Konnte keinen Benutzer mit dem Namen „%s“ finden." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Konnte keinen lokalen Nutzer mit dem Nick %s finden" +msgid "Could not find a local user with nickname %s." +msgstr "Konnte keinen lokalen Benutzer mit dem Namen „%s“ finden." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Leider ist dieser Befehl noch nicht implementiert." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "Es macht keinen Sinn dich selbst anzustupsen!" +msgstr "Es macht keinen Sinn, dich selbst anzustupsen!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Stups an %s geschickt" +msgid "Nudge sent to %s." +msgstr "Stups an „%s“ abgeschickt." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5706,202 +7224,244 @@ msgstr "" "Abonnenten: %2$s\n" "Mitteilungen: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Nachricht als Favorit markiert." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Du bist bereits Mitglied dieser Gruppe" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Konnte Benutzer %s nicht der Gruppe %s hinzufügen." +msgid "%1$s joined group %2$s." +msgstr "%1$s ist der Gruppe „%2$s“ beigetreten." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Konnte Benutzer %1$s nicht aus der Gruppe %2$s entfernen." +msgid "%1$s left group %2$s." +msgstr "%1$s hat die Gruppe „%2$s“ verlassen." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" -msgstr "Vollständiger Name: %s" +msgstr "Bürgerlicher Name: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Standort: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Über: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -"%s ist ein entferntes Profil; man kann direkte Nachrichten nur an Nutzer auf " -"dem selben Server senden." +"%s ist ein entferntes Profil; man kann direkte Nachrichten nur an Benutzer " +"auf dem selben Server senden." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Nachricht zu lang - maximal ein Zeichen erlaubt, du hast %2$d gesendet." +msgstr[1] "" "Nachricht zu lang - maximal %1$d Zeichen erlaubt, du hast %2$d gesendet." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direkte Nachricht an %s abgeschickt" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." -msgstr "Fehler beim Senden der Nachricht" - -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Du kannst deine eigenen Nachrichten nicht wiederholen." - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Nachricht bereits wiederholt" +msgstr "Fehler beim Senden der Nachricht." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Nachricht von %s wiederholt" +msgid "Notice from %s repeated." +msgstr "Nachricht von „%s“ wiederholt." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Fehler beim Wiederholen der Nachricht" +msgstr "Fehler beim Wiederholen der Nachricht." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Nachricht zu lange - maximal %d Zeichen erlaubt, du hast %d gesendet" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Nachricht zu lang - maximal ein Zeichen erlaubt, du hast %2$d gesendet." +msgstr[1] "" +"Nachricht zu lang - maximal %1$d Zeichen erlaubt, du hast %2$d gesendet." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Antwort an %s gesendet" +msgid "Reply to %s sent." +msgstr "Antwort an „%s“ gesendet" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Problem beim Speichern der Nachricht." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Gib den Namen des Benutzers an, den du abonnieren möchtest" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Gib den Namen des Benutzers an, den du abonnieren möchtest." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." -msgstr "OMB Profile können nicht mit einem Kommando abonniert werden." +msgstr "OMB-Profile können nicht mit einem Kommando abonniert werden." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "%s abonniert" +msgid "Subscribed to %s." +msgstr "%s abboniert." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "Gib den Namen des Benutzers ein, den du nicht mehr abonnieren möchtest" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "%s nicht mehr abonniert" +msgid "Unsubscribed from %s." +msgstr "%s abbestellt." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Befehl noch nicht implementiert." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Benachrichtigung deaktiviert." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Konnte Benachrichtigung nicht deaktivieren." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Benachrichtigung aktiviert." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Konnte Benachrichtigung nicht aktivieren." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Anmeldung ist abgeschaltet" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Die Anmeldung ist deaktiviert." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "Der Link ist nur einmal benutzbar und für eine Dauer von 2 Minuten: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "Der Link ist nur einmal und für eine Dauer von 2 Minuten gültig: %s" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" +msgid "Unsubscribed %s." msgstr "%s nicht mehr abonniert" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Du hast niemanden abonniert." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "Du hast diese Benutzer bereits abonniert:" +msgstr[0] "Du hast diesen Benutzer bereits abonniert:" msgstr[1] "Du hast diese Benutzer bereits abonniert:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." -msgstr "Niemand hat Dich abonniert." +msgstr "Niemand hat dich abonniert." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Die Gegenseite konnte Dich nicht abonnieren." -msgstr[1] "Die Gegenseite konnte Dich nicht abonnieren." +msgstr[0] "Diese Person abonniert dich:" +msgstr[1] "Diese Personen abonnieren dich:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Du bist in keiner Gruppe Mitglied." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du bist Mitglied dieser Gruppe:" msgstr[1] "Du bist Mitglied dieser Gruppen:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5946,131 +7506,169 @@ msgstr "" "on - Benachrichtigung einschalten\n" "off - Benachrichtigung ausschalten\n" "help - diese Hilfe anzeigen\n" -"follow <nickname> - einem Nutzer folgen\n" +"follow <nickname> - einem Benutzer folgen\n" "groups - Gruppen auflisten in denen du Mitglied bist\n" "subscriptions - Leute auflisten denen du folgst\n" "subscribers - Leute auflisten die dir folgen\n" -"leave <nickname> - einem Nutzer nicht mehr folgen\n" -"d <nickname> <text> - Direkte Nachricht an einen Nutzer schicken\n" -"get <nickname> - letzte Nachricht eines Nutzers abrufen\n" -"whois <nickname> - Profil eines Nutzers abrufen\n" -"lose <nickname> - Nutzer zwingen dir nicht mehr zu folgen\n" -"fav <nickname> - letzte Nachricht eines Nutzers als Favorit markieren\n" +"leave <nickname> - einem Benutzer nicht mehr folgen\n" +"d <nickname> <text> - Direkte Nachricht an einen Benutzer schicken\n" +"get <nickname> - letzte Nachricht eines Benutzers abrufen\n" +"whois <nickname> - Profil eines Benutzers abrufen\n" +"lose <nickname> - Benutzer zwingen dir nicht mehr zu folgen\n" +"fav <nickname> - letzte Nachricht eines Benutzers als Favorit markieren\n" "fav #<notice_id> - Nachricht mit bestimmter ID als Favorit markieren\n" "repeat #<notice_id> - Nachricht mit bestimmter ID wiederholen\n" -"repeat <nickname> - letzte Nachricht eines Nutzers wiederholen\n" +"repeat <nickname> - letzte Nachricht eines Benutzers wiederholen\n" "reply #<notice_id> - Nachricht mit bestimmter ID beantworten\n" -"reply <nickname> - letzte Nachricht eines Nutzers beantworten\n" +"reply <nickname> - letzte Nachricht eines Benutzers beantworten\n" "join <group> - Gruppe beitreten\n" "login - Link zum Anmelden auf der Webseite anfordern\n" "drop <group> - Gruppe verlassen\n" "stats - deine Statistik abrufen\n" -"stop - Äquivalent zu 'off'\n" -"quit - Äquivalent zu 'off'\n" -"sub <nickname> - same as 'follow'\n" -"unsub <nickname> - same as 'leave'\n" -"last <nickname> - same as 'get'\n" -"on <nickname> - not yet implemented.\n" -"off <nickname> - not yet implemented.\n" -"nudge <nickname> - remind a user to update.\n" -"invite <phone number> - not yet implemented.\n" -"track <word> - not yet implemented.\n" -"untrack <word> - 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" +"stop - Äquivalent zu „off“\n" +"quit - Äquivalent zu „off“\n" +"sub <nickname> - Äquivalent zu „follow“\n" +"unsub <nickname> - Äquivalent zu „leave“\n" +"last <nickname> - Äquivalent zu „get“\n" +"on <nickname> - noch nicht implementiert\n" +"off <nickname> - noch nicht implementiert\n" +"nudge <nickname> - einen Benutzer ans Aktualisieren erinnern\n" +"invite <phone number> - noch nicht implementiert\n" +"track <word> - noch nicht implementiert\n" +"untrack <word> - noch nicht implementiert\n" +"track off - noch nicht implementiert\n" +"untrack all - noch nicht implementiert\n" +"tracks - noch nicht implementiert\n" +"tracking - noch nicht implementiert\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "Keine Konfigurationsdatei gefunden." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." -msgstr "Bitte die Installation erneut starten um das Problem zu beheben." +msgstr "Bitte die Installation erneut starten, um das Problem zu beheben." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Zur Installation gehen." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Aktualisierungen via Instant Messenger (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Aktualisierungen via SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Verbindungen" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Programme mit Zugriffserlaubnis" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Datenbankfehler." -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Datei hochladen" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" "Du kannst dein persönliches Hintergrundbild hochladen. Die maximale " -"Dateigröße ist 2MB." +"Dateigröße ist 2 MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "An" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Aus" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Zurücksetzen" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." -msgstr "Standard Design wieder hergestellt." +msgstr "Standard-Design wieder hergestellt." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Aus Favoriten entfernen" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Zu den Favoriten hinzufügen" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Zu Favoriten hinzufügen" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Daten exportieren" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Feeds" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "Stichworte filtern" +msgstr "Tags filtern" #: lib/galleryaction.php:131 msgid "All" @@ -6078,15 +7676,15 @@ msgstr "Alle" #: lib/galleryaction.php:139 msgid "Select tag to filter" -msgstr "Wähle ein Stichwort, um die Liste einzuschränken" +msgstr "Wähle ein Tag, um die Liste einzuschränken" #: lib/galleryaction.php:140 msgid "Tag" -msgstr "Stichwort" +msgstr "Tag" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" -msgstr "Wähle ein Stichwort, um die Liste einzuschränken" +msgstr "Wähle ein Tag, um die Liste einzuschränken" #: lib/galleryaction.php:143 msgid "Go" @@ -6095,11 +7693,15 @@ msgstr "Los geht's" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "Teile dem Benutzer die \"%s\" Rolle zu" +msgstr "Teile dem Benutzer die „%s“-Rolle zu" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen" #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "Adresse der Homepage oder Blogs der Gruppe oder des Themas" +msgid "URL of the homepage or blog of the group or topic." +msgstr "Adresse der Homepage oder Blogs der Gruppe oder des Themas." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6107,66 +7709,119 @@ msgstr "Beschreibe die Gruppe oder das Thema" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Beschreibe die Gruppe oder das Thema in %d Zeichen" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Beschreibe die Gruppe oder das Thema in einem Zeichen" +msgstr[1] "Beschreibe die Gruppe oder das Thema in %d Zeichen" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" -"Ort der Gruppe, optional, beispielsweise „Stadt, Gebiet (oder Region), Land“" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "Ort der Gruppe, optional, beispielsweise „Stadt, Region, Land“." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" -"Zusätzliche Spitznamen für die Gruppe, Komma oder Leerzeichen getrennt, max %" -"d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Zusätzliche Spitznamen für die Gruppe, Komma oder Leerzeichen getrennt, " +"maximal einer." +msgstr[1] "" +"Zusätzliche Spitznamen für die Gruppe, Komma oder Leerzeichen getrennt, " +"maximal %d." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Gruppe" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "%s-Gruppe" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Mitglieder" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "%s-Gruppen-Mitglieder" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Blockiert" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "in %s blockierte Nutzer" +msgstr "Blockierte Benutzer der Gruppe „%s“" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "%s Gruppeneinstellungen bearbeiten" +msgstr "%s-Gruppen-Einstellungen bearbeiten" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "%s Logo hinzufügen oder bearbeiten" +msgstr "%s-Logo hinzufügen oder bearbeiten" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "%s Design hinzufügen oder bearbeiten" +msgstr "%s-Design hinzufügen oder bearbeiten" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Gruppen mit den meisten Mitgliedern" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Gruppen mit den meisten Beiträgen" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "Stichworte in den Nachrichten der Gruppe %s" +msgstr "Tags in den Nachrichten der Gruppe „%s“" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6177,38 +7832,57 @@ msgstr "Dies Seite liegt in keinem von dir akzeptierten Mediatype vor." msgid "Unsupported image file format." msgstr "Bildformat wird nicht unterstützt." -#: lib/imagefile.php:88 -#, fuzzy, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "Du kannst ein Logo für Deine Gruppe hochladen." +msgstr "Diese Datei ist zu groß. Die maximale Dateigröße ist %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Unvollständiges Hochladen." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." -msgstr "Systemfehler beim hochladen der Datei." +msgstr "Systemfehler beim Hochladen der Datei." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Kein Bild oder defekte Datei." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Daten verloren." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Unbekannter Dateityp" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d MB" +msgstr[1] "%d MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d KB" +msgstr[1] "%d KB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d Byte" +msgstr[1] "%d Bytes" #: lib/jabber.php:387 #, php-format @@ -6218,11 +7892,7 @@ msgstr "[%s]" #: lib/jabber.php:567 #, php-format msgid "Unknown inbox source %d." -msgstr "Unbekannte inbox Quelle %d." - -#: lib/joinform.php:114 -msgid "Join" -msgstr "Beitreten" +msgstr "Unbekannte inbox-Quelle %d." #: lib/leaveform.php:114 msgid "Leave" @@ -6230,66 +7900,75 @@ msgstr "Verlassen" #: lib/logingroupnav.php:80 msgid "Login with a username and password" -msgstr "Mit Nutzernamen und Passwort anmelden" +msgstr "Mit Benutzernamen und Passwort anmelden" #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "Registriere ein neues Nutzerkonto" +msgstr "Registriere ein neues Benutzerkonto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail-Adresse" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Hallo %s,\n" +"Hallo %1$s,\n" "\n" -"jemand hat diese E-Mail-Adresse gerade auf %s eingegeben.\n" +"jemand hat diese E-Mail-Adresse gerade auf „%2$s“ eingegeben.\n" "\n" -"Falls Du es warst und Du Deinen Eintrag bestätigen möchtest, benutze\n" +"Falls du es warst und du deinen Eintrag bestätigen möchtest, benutze\n" "bitte diese URL:\n" "\n" -"%s\n" +"%3$s\n" "\n" "Falls nicht, ignoriere diese Nachricht einfach.\n" "\n" "Vielen Dank!\n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s hat deine Nachrichten auf %2$s abonniert." +msgstr "%1$s hat deine Nachrichten auf „%2$s“ abonniert." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -"Wenn du dir sicher bist, das dieses Benutzerkonto missbräuchlich benutzt " +"Wenn du dir sicher bist, dass dieses Benutzerkonto missbräuchlich benutzt " "wurde, kannst du das Benutzerkonto von deiner Liste der Abonnenten sperren " "und es den Seitenadministratoren unter %s als Spam melden." -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6298,10 +7977,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s hat deine Nachrichten auf %2$s abonniert.\n" "\n" @@ -6309,26 +7988,30 @@ msgstr "" "\n" "%4$s%5$s%6$s\n" "Mit freundlichen Grüßen,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Du kannst Deine E-Mail-Adresse und die Benachrichtigungseinstellungen auf %8" +"Du kannst deine E-Mail-Adresse und die Benachrichtigungseinstellungen auf %7" "$s ändern.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografie: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" -msgstr "Neue E-Mail-Adresse um auf %s zu schreiben" +msgstr "Neue E-Mail-Adresse, um auf „%s“ zu schreiben" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6338,44 +8021,49 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"Du hast eine neue Adresse zum Hinzufügen von Nachrichten auf %1$s.\n" +"Du hast eine neue Adresse zum Hinzufügen von Nachrichten auf „%1$s“.\n" "\n" -"Schicke eine E-Mail an %2$s um eine neue Nachricht hinzuzufügen.\n" +"Schicke eine E-Mail an %2$s, um eine neue Nachricht hinzuzufügen.\n" "\n" "Weitere E-Mail-Anweisungen unter %3$s.\n" "\n" "Viele Grüße,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s Status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-Konfiguration" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" "%s: bestätige mit folgendem Code, dass es sich um deine Telefonnummer " "handelt:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" -msgstr "Du wurdest von %s angestupst" +msgstr "Du wurdest von „%s“ angestupst" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6390,10 +8078,10 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" -"%1$s (%2$s) fragt sicht, was Du zur Zeit wohl so machst und lädt Dich ein, " +"%1$s (%2$s) fragt sich, was du zur Zeit wohl so machst und lädt dich ein, " "etwas Neues zu posten.\n" "\n" -"Lass von Dir hören :)\n" +"Lass von dir hören :)\n" "\n" "%3$s\n" "\n" @@ -6402,14 +8090,18 @@ msgstr "" "Mit freundlichen Grüßen,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" -msgstr "Neue private Nachricht von %s" +msgstr "Neue private Nachricht von „%s“" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6427,7 +8119,7 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" -"%1$s (%2$s) hat Dir eine private Nachricht geschickt:\n" +"%1$s (%2$s) hat dir eine private Nachricht geschickt:\n" "\n" "------------------------------------------------------\n" "%3$s\n" @@ -6442,14 +8134,19 @@ msgstr "" "Mit freundlichen Grüßen,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) hat deine Nachricht als Favorit gespeichert" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) hat deine Nachricht als Favorit gespeichert" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6481,7 +8178,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6492,14 +8189,22 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" -"%s (@%s) hat dir eine Nachricht gesendet um deine Aufmerksamkeit zu erlangen" +"%1$s (@%2$s) hat dir eine Nachricht gesendet, um deine Aufmerksamkeit zu " +"erlangen" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6525,7 +8230,7 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" -"%1$s (@%9$s) hat dir gerade eine Nachricht (eine '@-Antwort') auf %2$s " +"%1$s (@%9$s) hat dir gerade eine Nachricht (eine „@-Antwort“) auf „%2$s“ " "gesendet.\n" "\n" "Die Nachricht findest du hier:\n" @@ -6559,10 +8264,10 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" "Du hast keine privaten Nachrichten. Du kannst anderen private Nachrichten " -"schicken, um sie in eine Konversation zu verwickeln. Andere Leute können Dir " -"Nachrichten schicken, die nur Du sehen kannst." +"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:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "von" @@ -6572,7 +8277,7 @@ msgstr "Konnte Nachricht nicht parsen." #: lib/mailhandler.php:42 msgid "Not a registered user." -msgstr "Kein registrierter Nutzer." +msgstr "Kein registrierter Benutzer." #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." @@ -6580,167 +8285,224 @@ msgstr "Sorry, das ist nicht deine Adresse für eingehende E-Mails." #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." -msgstr "Sorry, keinen eingehenden E-Mails gestattet." +msgstr "Sorry, keine eingehenden E-Mails gestattet." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" -msgstr "Nachrichten-Typ %s wird nicht unterstützt." +msgstr "Nachrichten-Typ „%s“ wird nicht unterstützt." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -"Beim Speichern der Datei trat ein Datenbank Fehler auf. Bitte versuche es " +"Beim Speichern der Datei trat ein Datenbankfehler auf. Bitte versuche es " "noch einmal." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -"Die Größe der hoch geladenen Datei überschreitet die upload_max_filesize " +"Die Größe der hochgeladenen Datei überschreitet die upload_max_filesize " "Angabe in der php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -"Die Größe der hoch geladenen Datei überschreitet die MAX_FILE_SIZE Angabe, " -"die im HTML Formular angegeben wurde." +"Die Größe der hochgeladenen Datei überschreitet die MAX_FILE_SIZE Angabe, " +"die im HTML-Formular angegeben wurde." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Die Datei wurde nur teilweise auf den Server geladen." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Kein temporäres Verzeichnis gefunden." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Konnte die Datei nicht auf die Festplatte schreiben." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Upload der Datei wurde wegen der Dateiendung gestoppt." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Dateigröße liegt über dem Benutzerlimit" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Datei konnte nicht in das Zielverzeichnis verschoben werden." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Konnte den MIME-Typ nicht feststellen." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Versuche ein anderes %s Format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"„%1$s“ ist kein unterstütztes Dateiformat auf diesem Server. Versuche es mit " +"einem anderen %2$s-Format." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s ist kein unterstütztes Dateiformat auf diesem Server." +msgid "\"%s\" is not a supported file type on this server." +msgstr "„%s“ ist kein unterstütztes Dateiformat auf diesem Server." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Versende eine direkte Nachricht" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Lizenz auswählen" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Nicht abonniert!" + +#: lib/messageform.php:153 msgid "To" msgstr "An" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Verfügbare Zeichen" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Senden" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Der Benutzername darf nur aus Kleinbuchstaben und Zahlen bestehen. " +"Leerzeichen sind nicht erlaubt." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Nachricht senden" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "Was ist los, %s?" +msgstr "Was geht, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Anhängen" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Datei anhängen" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Teile meinen Aufenthaltsort" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Teile meinen Aufenthaltsort nicht" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" -"Es tut uns Leid, aber die Abfrage deiner GPS Position hat zu lange gedauert. " +"Es tut uns leid, aber die Abfrage deiner GPS-Position hat zu lange gedauert. " "Bitte versuche es später wieder." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "in" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "Web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Wiederholt von" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Nachricht wiederholt" @@ -6756,66 +8518,64 @@ msgstr "Stups" msgid "Send a nudge to this user" msgstr "Sende diesem Benutzer einen Stups" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Neues Profil konnte nicht angelegt werden" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Neues Profil konnte nicht angelegt werden." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Fehler beim Einfügen des Avatars" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Fehler beim Einfügen des Avatars." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Fehler beim Aktualisieren des entfernten Profils" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Fehler beim Einfügen des entfernten Profils." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Fehler beim Einfügen des entfernten Profils" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Doppelte Nachricht." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Doppelte Nachricht" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Konnte neues Abonnement nicht eintragen." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Meine Zeitleiste" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Antworten" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoriten" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Posteingang" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Deine eingehenden Nachrichten" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Postausgang" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Deine gesendeten Nachrichten" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "Stichworte in %ss Nachrichten" +msgstr "Tags in den Nachrichten von „%s“" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" -msgstr "Unbekannter Befehl" +msgstr "Unbekannt" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -6835,7 +8595,7 @@ msgstr "Alle Abonnenten" #: lib/profileaction.php:191 msgid "User ID" -msgstr "Nutzer ID" +msgstr "Benutzer-ID" #: lib/profileaction.php:196 msgid "Member since" @@ -6864,7 +8624,7 @@ msgstr "Benutzer-Gruppen" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "Aktuelle Stichworte" +msgstr "Aktuelle Tags" #: lib/publicgroupnav.php:88 msgid "Featured" @@ -6876,7 +8636,7 @@ msgstr "Beliebte Beiträge" #: lib/redirectingaction.php:95 msgid "No return-to arguments." -msgstr "Kein Rückkehr Argument." +msgstr "Kein Rückkehr-Argument." #: lib/repeatform.php:107 msgid "Repeat this notice?" @@ -6893,11 +8653,12 @@ msgstr "Diese Nachricht wiederholen" #: lib/revokeroleform.php:91 #, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Widerrufe die \"%s\" Rolle von diesem Benutzer" +msgstr "Widerrufe die „%s“-Rolle von diesem Benutzer" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Kein einzelner Nutzer für den Ein-Benutzer-Modus ausgewählt." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Seite nicht gefunden." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6905,21 +8666,27 @@ msgstr "Spielwiese" #: lib/sandboxform.php:78 msgid "Sandbox this user" -msgstr "Diesen Nutzer auf die Spielwiese setzen" +msgstr "Diesen Benutzer auf die Spielwiese setzen" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" -msgstr "Site durchsuchen" +msgstr "Website durchsuchen" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" -msgstr "Suchbegriff" +msgstr "Suchbegriffe" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Suchen" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Hilfe suchen" @@ -6933,7 +8700,7 @@ msgstr "Finde Leute auf dieser Seite" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "Durchsuche den Inhalt der Notices" +msgstr "Durchsuche den Inhalt der Nachrichten" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" @@ -6945,7 +8712,7 @@ msgstr "Abschnitt ohne Titel" #: lib/section.php:106 msgid "More..." -msgstr "Mehr..." +msgstr "Mehr …" #: lib/silenceform.php:67 msgid "Silence" @@ -6953,22 +8720,22 @@ msgstr "Stummschalten" #: lib/silenceform.php:78 msgid "Silence this user" -msgstr "Nutzer verstummen lassen" +msgstr "Benutzer verstummen lassen" #: lib/subgroupnav.php:83 #, php-format msgid "People %s subscribes to" -msgstr "Leute, die %s abonniert hat" +msgstr "Leute, die „%s“ abonniert hat" #: lib/subgroupnav.php:91 #, php-format msgid "People subscribed to %s" -msgstr "Leute, die %s abonniert haben" +msgstr "Leute, die „%s“ abonniert haben" #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" -msgstr "Gruppen in denen %s Mitglied ist" +msgstr "Gruppen, in denen „%s“ Mitglied ist" #: lib/subgroupnav.php:105 msgid "Invite" @@ -6977,7 +8744,7 @@ msgstr "Einladen" #: 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" +msgstr "Lade Freunde und Kollegen ein, dir auf „%s“ zu folgen" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6993,34 +8760,47 @@ msgstr "Personen-Tag, wie markiert wurde" msgid "None" msgstr "Nichts" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Ungültiger Theme-Name." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "Dieser Server kann nicht mit Theme-Uploads ohne ZIP-Support umgehen." +msgstr "" +"Dieser Server kann nicht mit Theme-Uploads ohne ZIP-Unterstützung umgehen." #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." msgstr "Die Theme-Datei fehlt oder das Hochladen ist fehlgeschlagen." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Speicherung des Themes fehlgeschlagen." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Ungültiger Theme: schlechte Ordner-Struktur." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "Der hochgeladene Theme ist zu groß; er muss unter %d Bytes sein." +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Der hochgeladene Theme ist zu groß; er muss unkomprimiert unter einem Byte " +"sein." +msgstr[1] "" +"Der hochgeladene Theme ist zu groß; er muss unkomprimiert unter %d Bytes " +"sein." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Ungültigges Theme-Archiv: fehlende Datei css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7028,12 +8808,16 @@ msgstr "" "Der Theme enthält einen ungültigen Datei- oder Ordnernamen. Bleib bei ASCII-" "Buchstaben, Zahlen, Unterstrichen und Minuszeichen." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Theme enthält unsichere Dateierweiterungen; könnte unsicher sein." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Das Theme enthält Dateien des Types „.%s“, die nicht erlaubt sind." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Fehler beim Öffnen des Theme-Archives." @@ -7041,6 +8825,12 @@ msgstr "Fehler beim Öffnen des Theme-Archives." msgid "Top posters" msgstr "Top-Schreiber" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Freigeben" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Von Spielwiese freigeben" @@ -7059,129 +8849,184 @@ msgstr "Benutzer freigeben" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "Lösche dein Abonnement von diesem Benutzer" +msgstr "Abonnement von diesem Benutzer abbestellen" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "Abbestellen" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Benutzer %s (%d) hat kein Profil." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Benutzer „%1$s“ (%2$d) hat kein Profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Avatar bearbeiten" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Benutzeraktionen" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." -msgstr "Löschung des Nutzers in Arbeit..." +msgstr "Löschung des Benutzers in Arbeit …" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" -msgstr "Profil Einstellungen ändern" +msgstr "Profil-Einstellungen ändern" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Bearbeiten" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" -msgstr "Direkte Nachricht an Benutzer verschickt" +msgstr "Direkte Nachricht an Benutzer versenden" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Nachricht" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderieren" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Benutzerrolle" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "vor wenigen Sekunden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "vor einer Minute" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "vor %d Minuten" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "vor ca. einer Minute" +msgstr[1] "vor ca. %d Minuten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "vor einer Stunde" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "vor %d Stunden" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "vor ca. einer Stunde" +msgstr[1] "vor ca. %d Stunden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "vor einem Tag" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "vor %d Tagen" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "vor ca. einem Tag" +msgstr[1] "vor ca. %d Tagen" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "vor einem Monat" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "vor %d Monaten" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "vor ca. einem Monat" +msgstr[1] "vor ca. %d Monaten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" -msgstr "vor einem Jahr" +msgstr "vor ca. einem Jahr" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" -msgstr "%s ist keine gültige Farbe!" +msgstr "„%s“ ist keine gültige Farbe!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "%s ist keine gültige Farbe! Verwenden Sie 3 oder 6 Hex-Zeichen." +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "„%s“ ist keine gültige Farbe! Verwende 3 oder 6 Hex-Zeichen." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" +"Unbekannter Benutzer. Gehe zu %s, um deine Adresse deinem Benutzerkonto " +"hinzuzufügen." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Nachricht zu lang - maximal ein Zeichen erlaubt, du hast %2$d gesendet." +msgstr[1] "" "Nachricht zu lang - maximal %1$d Zeichen erlaubt, du hast %2$d gesendet." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ungültige Größe." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Hole Backup von der Datei „%s“." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Kein Benutzer angegeben; hole Backup-Benutzer." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "Ein Eintrag im Backup." +msgstr[1] "%d Einträge im Backup." diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 841e3172cb..5543c1f24c 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -1,29 +1,31 @@ -# Translation of StatusNet to Greek +# Translation of StatusNet - Core to Greek (Ελληνικά) +# Expored from translatewiki.net # -# Author@translatewiki.net: Crazymadlover -# Author@translatewiki.net: Dead3y3 -# Author@translatewiki.net: Omnipaedista +# Author: Crazymadlover +# Author: Dead3y3 +# Author: Omnipaedista # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:18+0000\n" -"Language-Team: Greek\n" +"POT-Creation-Date: 2010-09-18 22:06+0000\n" +"PO-Revision-Date: 2010-09-18 22:07:34+0000\n" +"Language-Team: Greek <http://translatewiki.net/wiki/Portal:el>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 1284-74-75 38::+0000\n" #. TRANS: Page title #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363 msgid "Access" msgstr "Πρόσβαση" @@ -77,10 +79,10 @@ msgstr "Αποθήκευση ρυθμίσεων πρόσβασης" #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Button label in the "Edit application" form. +#: actions/accessadminpanel.php:203 actions/emailsettings.php:228 +#: actions/imsettings.php:187 actions/smssettings.php:209 +#: lib/applicationeditform.php:351 msgctxt "BUTTON" msgid "Save" msgstr "Αποθήκευση" @@ -88,20 +90,20 @@ msgstr "Αποθήκευση" #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "Δεν υπάρχει τέτοια σελίδα" +msgstr "Κανένας τέτοιος χρήστης." +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. #: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 +#: actions/apiaccountupdatedeliverydevice.php:115 +#: actions/apiaccountupdateprofile.php:106 +#: actions/apiaccountupdateprofilebackgroundimage.php:117 +#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98 +#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77 +#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114 +#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101 +#: actions/apigroupleave.php:101 actions/apigrouplist.php:73 +#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -111,7 +113,7 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: actions/remotesubscribe.php:154 actions/replies.php:73 #: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 #: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#: actions/xrds.php:71 lib/command.php:498 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Κανένας τέτοιος χρήστης." @@ -188,83 +190,31 @@ msgstr "" msgid "You and friends" msgstr "Εσείς και οι φίλοι σας" -#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. -#. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 -#, php-format -msgid "Updates from %1$s and friends on %2$s!" -msgstr "" - -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy -msgid "API method not found." -msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!" - -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:87 +#: actions/apiaccountupdateprofile.php:90 +#: actions/apiaccountupdateprofilebackgroundimage.php:87 +#: actions/apiaccountupdateprofilecolors.php:111 +#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90 +#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110 +#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93 +#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92 +#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93 +#: actions/apigroupleave.php:93 actions/apimediaupload.php:68 +#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199 msgid "This method requires a POST." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:106 +#: actions/apiaccountupdatedeliverydevice.php:107 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy -msgid "Could not update user." -msgstr "Απέτυχε η ενημέρωση του χρήστη." - -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 -#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 -#: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 -#: lib/profileaction.php:84 -msgid "User has no profile." -msgstr "" - -#: actions/apiaccountupdateprofile.php:147 -#, fuzzy -msgid "Could not save profile." -msgstr "Απέτυχε η αποθήκευση του προφίλ." - -#: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 +#: actions/apiaccountupdateprofilebackgroundimage.php:109 +#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -274,31 +224,25 @@ msgid "" "current configuration." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#: actions/apiaccountupdateprofilebackgroundimage.php:137 +#: actions/apiaccountupdateprofilebackgroundimage.php:147 +#: actions/apiaccountupdateprofilecolors.php:165 +#: actions/apiaccountupdateprofilecolors.php:175 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy -msgid "Could not update your design." -msgstr "Απέτυχε η ενημέρωση του χρήστη." - -#: actions/apiblockcreate.php:105 +#: actions/apiblockcreate.php:106 msgid "You cannot block yourself!" msgstr "Δεν μπορείτε να κάνετε φραγή στον εαυτό σας!" -#: actions/apiblockcreate.php:126 +#: actions/apiblockcreate.php:127 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:114 +#: actions/apiblockdestroy.php:115 msgid "Unblock user failed." msgstr "" @@ -322,172 +266,139 @@ msgstr "" msgid "All the direct messages sent to %s" msgstr "" -#: actions/apidirectmessagenew.php:118 +#: actions/apidirectmessagenew.php:119 msgid "No message text!" msgstr "" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150 #, php-format msgid "That's too long. Max message size is %d chars." msgstr "" -#: actions/apidirectmessagenew.php:138 -msgid "Recipient user not found." -msgstr "" - -#: actions/apidirectmessagenew.php:142 +#: actions/apidirectmessagenew.php:143 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "" -#: actions/apifavoritecreate.php:120 +#: actions/apifavoritecreate.php:121 msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 -msgid "Could not create favorite." -msgstr "" - -#: actions/apifavoritedestroy.php:123 +#: actions/apifavoritedestroy.php:124 msgid "That status is not a favorite." msgstr "" -#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 -msgid "Could not delete favorite." -msgstr "" - -#: actions/apifriendshipscreate.php:109 -#, fuzzy +#: actions/apifriendshipscreate.php:110 msgid "Could not follow user: profile not found." -msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης δε βρέθηκε." +msgstr "" +"Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου." -#: actions/apifriendshipscreate.php:118 +#: actions/apifriendshipscreate.php:119 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου." -#: actions/apifriendshipsdestroy.php:109 -#, fuzzy +#: actions/apifriendshipsdestroy.php:110 msgid "Could not unfollow user: User not found." -msgstr "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης δε βρέθηκε." +msgstr "" +"Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου." -#: actions/apifriendshipsdestroy.php:120 -#, fuzzy +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." -msgstr "Δεν μπορείτε να εμποδίσετε τον εαυτό σας!" +msgstr "Δεν μπορείτε να κάνετε φραγή στον εαυτό σας!" #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 -#, fuzzy -msgid "Could not determine source user." +#: actions/apifriendshipsshow.php:142 +msgid "Could not find target user." msgstr "Απέτυχε η ενημέρωση του χρήστη." -#: actions/apifriendshipsshow.php:142 -#, fuzzy -msgid "Could not find target user." -msgstr "Απέτυχε η εύρεση οποιασδήποτε κατάστασης." - -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 +#: actions/apigroupcreate.php:168 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:212 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Το ψευδώνυμο πρέπει να έχει μόνο πεζούς χαρακτήρες και χωρίς κενά." -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 +#: actions/apigroupcreate.php:177 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:215 msgid "Nickname already in use. Try another one." msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 +#: actions/apigroupcreate.php:184 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:217 msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 +#: actions/apigroupcreate.php:200 actions/editapplication.php:215 #: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:224 msgid "Homepage is not a valid URL." msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 +#: actions/apigroupcreate.php:209 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:227 msgid "Full name is too long (max 255 chars)." msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 +#: actions/apigroupcreate.php:217 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 +#: actions/apigroupcreate.php:228 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:234 msgid "Location is too long (max 255 chars)." msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 +#: actions/apigroupcreate.php:247 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format -msgid "Invalid alias: \"%s\"." -msgstr "Μήνυμα" - -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format -msgid "Alias \"%s\" already in use. Try another one." -msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." - -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 +#: actions/apigroupcreate.php:290 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 +#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106 +#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy msgid "Group not found." -msgstr "Η ομάδα δεν βρέθηκε!" +msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -msgid "You are already a member of that group." -msgstr "" - -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." -#: actions/apigroupleave.php:115 -msgid "You are not a member of this group." -msgstr "" - -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:126 actions/leavegroup.php:129 +#: lib/command.php:401 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: %s is a user name #: actions/apigrouplist.php:98 @@ -495,43 +406,20 @@ msgstr "Αδύνατη η αποθήκευση του προφίλ." msgid "%s's groups" msgstr "ομάδες των χρηστών %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, fuzzy, php-format -msgid "%1$s groups %2$s is a member of." -msgstr "Δεν είστε μέλος καμίας ομάδας." - -#. TRANS: Message is used as a title. %s is a site name. -#. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 -#, php-format -msgid "%s groups" -msgstr "" - #: actions/apigrouplistall.php:96 #, php-format msgid "groups on %s" msgstr "ομάδες του χρήστη %s" -#: actions/apimediaupload.php:99 -#, fuzzy -msgid "Upload failed." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." -msgstr "Μήνυμα" - #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 +#: actions/groupunblock.php:66 actions/imsettings.php:230 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 @@ -549,16 +437,6 @@ msgstr "" msgid "Invalid nickname / password!" msgstr "" -#: actions/apioauthauthorize.php:159 -#, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" - #: actions/apioauthauthorize.php:214 #, php-format msgid "" @@ -576,8 +454,8 @@ msgstr "" #. TRANS: Message given submitting a form with an unknown action in SMS settings. #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#: actions/emailsettings.php:290 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:277 lib/designsettings.php:304 msgid "Unexpected form submission." @@ -600,7 +478,7 @@ msgid "" msgstr "" #. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#: actions/apioauthauthorize.php:310 lib/action.php:463 msgid "Account" msgstr "Λογαριασμός" @@ -638,21 +516,6 @@ msgstr "" msgid "You may not delete another user's status." msgstr "" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 -msgid "No such notice." -msgstr "" - -#: actions/apistatusesretweet.php:83 -#, fuzzy -msgid "Cannot repeat your own notice." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#: actions/apistatusesretweet.php:91 -#, fuzzy -msgid "Already repeated that notice." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - #: actions/apistatusesshow.php:139 msgid "Status deleted." msgstr "Η κατάσταση διεγράφη." @@ -661,21 +524,21 @@ msgstr "Η κατάσταση διεγράφη." msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:221 +#: actions/apistatusesupdate.php:222 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#: actions/apistatusesupdate.php:243 actions/newnotice.php:157 #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96 msgid "Not found." msgstr "" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:307 actions/newnotice.php:181 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -704,21 +567,11 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 -#, php-format -msgid "%s public timeline" -msgstr "" - #: actions/apitimelinepublic.php:202 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 -#, php-format -msgid "Repeated to %s" -msgstr "" - #: actions/apitimelineretweetsofme.php:114 #, php-format msgid "Repeats of %s" @@ -738,17 +591,6 @@ msgstr "" msgid "API method under construction." msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή." -#: actions/attachment.php:73 -msgid "No such attachment." -msgstr "" - -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 -#: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 -msgid "No nickname." -msgstr "" - #: actions/avatarbynickname.php:64 msgid "No size." msgstr "" @@ -790,7 +632,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Διαγραφή" @@ -798,10 +640,6 @@ msgstr "Διαγραφή" msgid "Upload" msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 -msgid "Crop" -msgstr "" - #: actions/avatarsettings.php:305 msgid "No file uploaded." msgstr "" @@ -823,18 +661,8 @@ msgid "Failed updating avatar." msgstr "" #: actions/avatarsettings.php:397 -#, fuzzy msgid "Avatar deleted." -msgstr "Ρυθμίσεις OpenID" - -#: actions/block.php:69 -#, fuzzy -msgid "You already blocked that user." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -msgid "Block user" -msgstr "" +msgstr "Η κατάσταση διεγράφη." #: actions/block.php:138 msgid "" @@ -851,40 +679,22 @@ msgstr "" #: actions/block.php:153 actions/deleteapplication.php:154 #: actions/deletenotice.php:147 actions/deleteuser.php:152 #: actions/groupblock.php:178 -#, fuzzy msgctxt "BUTTON" msgid "No" -msgstr "Όχι" +msgstr "Κανένα" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. #: actions/block.php:157 actions/deleteuser.php:156 -#, fuzzy msgid "Do not block this user" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#. TRANS: Button label on the user block form. -#. TRANS: Button label on the delete application form. -#. TRANS: Button label on the delete notice form. -#. TRANS: Button label on the delete user form. -#. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 -#, fuzzy -msgctxt "BUTTON" -msgid "Yes" -msgstr "Ναι" - -#. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -msgid "Block this user" -msgstr "" +msgstr "Διαγράψτε αυτόν τον χρήστη" #: actions/block.php:187 msgid "Failed to save block information." msgstr "" +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. #: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 #: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 @@ -894,21 +704,20 @@ msgstr "" #: actions/groupunblock.php:86 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:170 +#: lib/command.php:383 msgid "No such group." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Κανένας τέτοιος χρήστης." #: actions/blockedfromgroup.php:97 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles" -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Προφίλ χρήστη" #: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%s και οι φίλοι του/της" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." @@ -918,52 +727,30 @@ msgstr "" msgid "Unblock user from group" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Title for the form to unblock a user. +#: actions/blockedfromgroup.php:320 lib/unblockform.php:70 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 -msgid "Unblock this user" -msgstr "" - -#. TRANS: Title for mini-posting window loaded from bookmarklet. -#: actions/bookmarklet.php:51 -#, fuzzy, php-format -msgid "Post to %s" -msgstr "ομάδες του χρήστη %s" - -#: actions/confirmaddress.php:75 -msgid "No confirmation code." -msgstr "" - #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." -#: actions/confirmaddress.php:85 -msgid "That confirmation code is not for you!" -msgstr "" - #. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. #: actions/confirmaddress.php:91 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 -msgid "That address has already been confirmed." -msgstr "" - #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 +#: actions/confirmaddress.php:116 actions/emailsettings.php:331 +#: actions/emailsettings.php:477 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:174 #: actions/profilesettings.php:283 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." @@ -971,15 +758,14 @@ msgstr "Απέτυχε η ενημέρωση του χρήστη." #. TRANS: Server error thrown on database error canceling e-mail address confirmation. #. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 +#: actions/confirmaddress.php:128 actions/emailsettings.php:437 #: actions/smssettings.php:422 msgid "Couldn't delete email confirmation." msgstr "Απέτυχε η διαγραφή email επιβεβαίωσης." #: actions/confirmaddress.php:146 -#, fuzzy msgid "Confirm address" -msgstr "Επιβεβαίωση διεύθυνσης" +msgstr "Τρέχουσα επιβεβαιωμένη email διεύθυνση." #: actions/confirmaddress.php:161 #, php-format @@ -995,33 +781,13 @@ msgstr "Συζήτηση" msgid "Notices" msgstr "" -#: actions/deleteapplication.php:63 -#, fuzzy -msgid "You must be logged in to delete an application." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/deleteapplication.php:71 -#, fuzzy -msgid "Application not found." -msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." - -#: actions/deleteapplication.php:78 actions/editapplication.php:77 -#: actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "Ομάδες με τα περισσότερα μέλη" - +#. TRANS: Client error text when there is a problem with the session token. #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#: lib/action.php:1315 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy -msgid "Delete application" -msgstr "Δεν υπάρχει τέτοιο σελίδα." - #: actions/deleteapplication.php:149 msgid "" "Are you sure you want to delete this application? This will clear all data " @@ -1029,33 +795,14 @@ msgid "" "connections." msgstr "" -#. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy -msgid "Do not delete this application" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - #. TRANS: Submit button title for 'Yes' when deleting an application. #: actions/deleteapplication.php:164 -#, fuzzy msgid "Delete this application" -msgstr "Περιγράψτε την ομάδα ή το θέμα" - -#. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 -#: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 -#: lib/settingsaction.php:72 -msgid "Not logged in." -msgstr "" +msgstr "Διαγράψτε αυτόν τον χρήστη" #: actions/deletenotice.php:71 -#, fuzzy msgid "Can't delete this notice." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυτό το μήνυμα;" #: actions/deletenotice.php:103 msgid "" @@ -1073,19 +820,8 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ #. TRANS: Submit button title for 'No' when deleting a notice. #: actions/deletenotice.php:151 -#, fuzzy msgid "Do not delete this notice" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 -msgid "Delete this notice" -msgstr "" - -#: actions/deleteuser.php:67 -#, fuzzy -msgid "You cannot delete users." -msgstr "Απέτυχε η ενημέρωση του χρήστη." +msgstr "Διαγραφή μηνύματος" #: actions/deleteuser.php:74 msgid "You can only delete local users." @@ -1109,7 +845,6 @@ msgstr "Διαγράψτε αυτόν τον χρήστη" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1121,39 +856,18 @@ msgstr "" msgid "Invalid logo URL." msgstr "" -#: actions/designadminpanel.php:322 -#, fuzzy, php-format -msgid "Theme not available: %s." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - #: actions/designadminpanel.php:426 -#, fuzzy msgid "Change logo" -msgstr "Αλλάξτε τον κωδικό σας" +msgstr "Αλλαγή χρωμάτων" #: actions/designadminpanel.php:431 msgid "Site logo" msgstr "" -#: actions/designadminpanel.php:443 -#, fuzzy -msgid "Change theme" -msgstr "Αλλαγή" - -#: actions/designadminpanel.php:460 -#, fuzzy -msgid "Site theme" -msgstr "Αλλαγή" - #: actions/designadminpanel.php:461 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 -#, fuzzy -msgid "Custom theme" -msgstr "Αλλαγή" - #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" @@ -1232,17 +946,6 @@ msgstr "" msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 -msgid "Save" -msgstr "" - #: actions/designadminpanel.php:686 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1260,21 +963,10 @@ msgstr "" msgid "No such document \"%s\"" msgstr "" -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Δεν υπάρχει τέτοιο σελίδα." - #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy -msgid "No such application." -msgstr "Δεν υπάρχει τέτοιο σελίδα." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1283,39 +975,14 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." - -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy -msgid "Name already in use. Try another one." -msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." - -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy -msgid "Description is required." -msgstr "Περιγραφή" - #: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy -msgid "Source URL is not valid." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - #: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." - #: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" @@ -1329,18 +996,8 @@ msgid "Callback URL is not valid." msgstr "" #: actions/editapplication.php:258 -#, fuzzy msgid "Could not update application." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/editgroup.php:56 -#, php-format -msgid "Edit %s group" -msgstr "" - -#: 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:107 actions/editgroup.php:172 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 @@ -1352,9 +1009,9 @@ msgid "Use this form to edit the group." msgstr "" #: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format +#, php-format msgid "description is too long (max %d chars)." -msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)." +msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." #: actions/editgroup.php:228 actions/newgroup.php:168 #, php-format @@ -1362,15 +1019,13 @@ msgid "Invalid alias: \"%s\"" msgstr "" #: actions/editgroup.php:258 -#, fuzzy msgid "Could not update group." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Server exception thrown when creating group aliases failed. #: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy msgid "Could not create aliases." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #: actions/editgroup.php:280 msgid "Options saved." @@ -1378,9 +1033,8 @@ msgstr "" #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Ρυθμίσεις Email" +msgstr "Ρυθμίσεις του άβαταρ" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1389,13 +1043,6 @@ msgstr "Ρυθμίσεις Email" msgid "Manage how you get email from %%site.name%%." msgstr "" -#. TRANS: Form legend for e-mail settings form. -#. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy -msgid "Email address" -msgstr "Διευθύνσεις email" - #. TRANS: Form note in e-mail settings form. #: actions/emailsettings.php:112 msgid "Current confirmed email address." @@ -1406,7 +1053,7 @@ msgstr "Τρέχουσα επιβεβαιωμένη email διεύθυνση." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:115 actions/emailsettings.php:162 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" @@ -1414,148 +1061,98 @@ msgid "Remove" msgstr "" #: actions/emailsettings.php:122 -#, fuzzy msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -"Αναμένωντας επιβεβαίωση σε αυτή τη διεύθυνση. Έλεγξε το mail σου (και το " -"φάκελο spam!) για μήνυμα με περαιτέρω οδηγίες. " +"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στην διεύθυνση email που " +"προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης " +"αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Ακύρωση" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:139 msgid "Email address, like \"UserName@example.org\"" msgstr "Διεύθυνση email, π.χ: \"UserName@example.org\"" -#. TRANS: Button label for adding an e-mail address in e-mail settings form. -#. TRANS: Button label for adding an IM address in IM settings form. -#. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 -#: actions/smssettings.php:162 -#, fuzzy -msgctxt "BUTTON" -msgid "Add" -msgstr "Προσθήκη" - #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:151 actions/smssettings.php:171 msgid "Incoming email" msgstr "Εισερχόμενο email" #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:159 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" #. TRANS: Instructions for incoming e-mail address input form. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:168 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:172 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:178 msgid "Email preferences" -msgstr "Προτιμήσεις" +msgstr "Διευθύνσεις email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:184 msgid "Send me notices of new subscriptions through email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:190 msgid "Send me email when someone adds my notice as a favorite." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:197 msgid "Send me email when someone sends me a private message." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:203 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:209 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 +#: actions/emailsettings.php:216 msgid "I want to post notices by email." msgstr "Θέλω να δημοσιεύω ενημερώσεις μέσω email" -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 -msgid "Publish a MicroID for my email address." -msgstr "" - -#. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy -msgid "Email preferences saved." -msgstr "Οι προτιμήσεις αποθηκεύτηκαν" - -#. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 -msgid "No email address." -msgstr "" - #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:365 msgid "Cannot normalize that email address" msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης" -#. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 -#: actions/siteadminpanel.php:144 -msgid "Not a valid email address." -msgstr "" - -#. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 -msgid "That is already your email address." -msgstr "" - -#. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 -msgid "That email address already belongs to another user." -msgstr "" - #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:395 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Απέτυχε η εισαγωγή κωδικού επιβεβαίωσης." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:402 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1564,59 +1161,23 @@ msgstr "" "προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης " "αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε." -#. TRANS: Message given canceling e-mail address confirmation that is not pending. -#. TRANS: Message given canceling IM address confirmation that is not pending. -#. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 -#: actions/smssettings.php:408 -msgid "No pending confirmation to cancel." -msgstr "" - -#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy -msgid "That is the wrong email address." -msgstr "Εισάγετε ψευδώνυμο ή διεύθυνση email." - #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:442 msgid "Email confirmation cancelled." -msgstr "Η επιβεβαίωση ακυρώθηκε." - -#. TRANS: Message given trying to remove an e-mail address that is not -#. TRANS: registered for the active user. -#: actions/emailsettings.php:458 -msgid "That is not your email address." -msgstr "" - -#. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy -msgid "The email address was removed." -msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε." - -#: actions/emailsettings.php:493 actions/smssettings.php:568 -msgid "No incoming email address." -msgstr "" +msgstr "Επιβεβαίωση διεύθυνσης email" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:508 actions/emailsettings.php:532 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Απέτυχε η ενημέρωση εγγραφής του χρήστη." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:512 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε." -#. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 -msgid "New incoming email address added." -msgstr "" - #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "" @@ -1625,11 +1186,6 @@ msgstr "" msgid "Disfavor favorite" msgstr "" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 -#: lib/publicgroupnav.php:93 -msgid "Popular notices" -msgstr "" - #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" @@ -1667,11 +1223,6 @@ msgstr "" msgid "Updates favored by %1$s on %2$s!" msgstr "" -#: actions/featured.php:69 lib/featureduserssection.php:87 -#: lib/publicgroupnav.php:89 -msgid "Featured users" -msgstr "" - #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" @@ -1682,15 +1233,9 @@ msgstr "" msgid "A selection of some great users on %s" msgstr "" -#: actions/file.php:34 -#, fuzzy -msgid "No notice ID." -msgstr "Μήνυμα" - #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Μήνυμα" +msgstr "Διαγραφή μηνύματος" #: actions/file.php:42 msgid "No attachments." @@ -1708,10 +1253,6 @@ msgstr "" msgid "User being listened to does not exist." msgstr "" -#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 -msgid "You can use the local subscription!" -msgstr "" - #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." msgstr "" @@ -1720,44 +1261,22 @@ msgstr "" msgid "You are not authorized." msgstr "" -#: actions/finishremotesubscribe.php:113 -#, fuzzy -msgid "Could not convert request token to access token." -msgstr "Απέτυχε η μετατροπή αιτούμενων tokens σε tokens πρόσβασης." - #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 -#, fuzzy -msgid "Error updating remote profile." -msgstr "Απέτυχε η αποθήκευση του προφίλ." - #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Κανένας τέτοιος χρήστης." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy -msgid "Invalid role." -msgstr "Μήνυμα" +msgstr "Απέτυχε η αποθήκευση του προφίλ." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" -#: actions/grantrole.php:75 -#, fuzzy -msgid "You cannot grant user roles on this site." -msgstr "Ομάδες με τα περισσότερα μέλη" - #: actions/grantrole.php:82 msgid "User already has this role." msgstr "" @@ -1787,11 +1306,7 @@ msgstr "" msgid "User is already blocked from group." msgstr "" -#: actions/groupblock.php:100 -msgid "User is not a member of group." -msgstr "" - -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "" @@ -1835,21 +1350,6 @@ msgid "" "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy -msgid "Couldn't update your design." -msgstr "Απέτυχε η ενημέρωση του χρήστη." - -#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy -msgid "Design preferences saved." -msgstr "Οι προτιμήσεις αποθηκεύτηκαν" - -#: actions/grouplogo.php:142 actions/grouplogo.php:195 -msgid "Group logo" -msgstr "" - #: actions/grouplogo.php:153 #, php-format msgid "" @@ -1860,47 +1360,37 @@ msgstr "" msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:399 -#, fuzzy -msgid "Logo updated." -msgstr "Αποσύνδεση" - #: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "" -#: actions/groupmembers.php:100 lib/groupnav.php:92 -#, php-format -msgid "%s group members" -msgstr "" - -#: actions/groupmembers.php:103 -#, php-format -msgid "%1$s group members, page %2$d" -msgstr "" - -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Διαχειριστής" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 -#, fuzzy +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Διαχειριστής" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" @@ -1919,11 +1409,6 @@ msgstr "χρονοδιάγραμμα του χρήστη %s" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 -#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 -msgid "Groups" -msgstr "" - #: actions/groups.php:64 #, php-format msgid "Groups, page %d" @@ -1939,11 +1424,6 @@ msgid "" "%%%%)" msgstr "" -#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 -#, fuzzy -msgid "Create a new group" -msgstr "Δημιουργία νέου λογαριασμού" - #: actions/groupsearch.php:52 #, php-format msgid "" @@ -1988,9 +1468,8 @@ msgstr "" #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Ρυθμίσεις ΙΜ" +msgstr "Ρυθμίσεις του άβαταρ" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2002,38 +1481,22 @@ msgid "" "doc.im%%). Configure your address and settings below." msgstr "" -#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. -#: actions/imsettings.php:94 -#, fuzzy -msgid "IM is not available." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "Διεύθυνση ΙΜ" +msgstr "Διευθύνσεις email" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." msgstr "Τρέχουσα επιβεβαιωμένη Jabber/GTalk διεύθυνση." -#. TRANS: Form note in IM settings form. -#. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:124 -#, fuzzy, php-format -msgid "" -"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " -"message with further instructions. (Did you add %s to your buddy list?)" -msgstr "" -"Αναμένωντας επιβεβαίωση σε αυτή τη διεύθυνση. Έλεγξε το Jabber/GTalk " -"λογαριασμό σου για μήνυμα με περαιτέρω οδηγίες. (Πρόσθεσες το χρήστη %s στη " -"λίστα φίλων?)" - #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2041,64 +1504,48 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Προτιμήσεις" +msgstr "Οι προτιμήσεις αποθηκεύτηκαν" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -#. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 -msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" - #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:180 msgid "Preferences saved." msgstr "Οι προτιμήσεις αποθηκεύτηκαν" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Αδυναμία κανονικοποίησης του Jabber ID" -#. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 -msgid "Not a valid Jabber ID" -msgstr "" - #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "" -#. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 -msgid "Jabber ID already belongs to another user." -msgstr "" - #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2108,34 +1555,16 @@ msgstr "" "Πρέπει να αποδεχτείτε τον/την %s για αποστολή μηνυμάτων προς εσας. " #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "" -#. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy -msgid "Couldn't delete IM confirmation." -msgstr "Απέτυχε η διαγραφή email επιβεβαίωσης." - -#. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy -msgid "IM confirmation cancelled." -msgstr "Η επιβεβαίωση ακυρώθηκε." - #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "" -#. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy -msgid "The IM address was removed." -msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε." - #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" @@ -2154,31 +1583,9 @@ msgstr "" msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" -msgstr "" - -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "" - -#: actions/invite.php:112 -msgid "Invite new users" -msgstr "" - -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" - #. TRANS: Whois output. #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:430 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2198,11 +1605,6 @@ msgid "" "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" msgstr "Διευθύνσεις email" @@ -2211,10 +1613,6 @@ msgstr "Διευθύνσεις email" msgid "Addresses of friends to invite (one per line)" msgstr "Διευθύνσεις φίλων σου που θες να προσκαλέσεις (μία ανά γραμμή)" -#: actions/invite.php:192 -msgid "Personal message" -msgstr "" - #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." msgstr "" @@ -2268,13 +1666,10 @@ msgid "You must be logged in to join a group." msgstr "" #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Μήνυμα" +msgstr "Ψευδώνυμο" -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2283,13 +1678,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 -msgid "You are not a member of that group." -msgstr "" - -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "" @@ -2314,10 +1703,6 @@ msgstr "Σύνδεση" msgid "Login to site" msgstr "" -#: actions/login.php:258 actions/register.php:485 -msgid "Remember me" -msgstr "" - #: actions/login.php:259 actions/register.php:487 msgid "Automatically login in the future; not for shared computers!" msgstr "Αυτόματη σύνδεση στο μέλλον. ΟΧΙ για κοινόχρηστους υπολογιστές!" @@ -2334,20 +1719,6 @@ msgstr "" "Για λόγους ασφαλείας, παρακαλώ εισάγετε ξανά το όνομα χρήστη και τον κωδικό " "σας, πριν αλλάξετε τις ρυθμίσεις σας." -#: actions/login.php:292 -#, fuzzy -msgid "Login with your username and password." -msgstr "Σύνδεση με όνομα χρήστη και κωδικό" - -#: actions/login.php:295 -#, fuzzy, php-format -msgid "" -"Don't have a username yet? [Register](%%action.register%%) a new account." -msgstr "" -"Συνδεθείτε με το όνομα χρήστη και τον κωδικό σας. Δεν έχετε όνομα χρήστη " -"ακόμα; Κάντε [εγγραφή](%%action.register%%) για ένα νέο λογαριασμό ή " -"δοκιμάστε το [OpenID](%%action.openidlogin%%). " - #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." msgstr "" @@ -2357,25 +1728,10 @@ msgstr "" msgid "%1$s is already an admin for group \"%2$s\"." msgstr "" -#: actions/makeadmin.php:133 -#, fuzzy, php-format -msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/makeadmin.php:146 -#, fuzzy, php-format -msgid "Can't make %1$s an admin for group %2$s." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - #: actions/microsummary.php:69 msgid "No current status." msgstr "" -#: actions/newapplication.php:52 -#, fuzzy -msgid "New Application" -msgstr "Δεν υπάρχει τέτοιο σελίδα." - #: actions/newapplication.php:64 msgid "You must be logged in to register an application." msgstr "" @@ -2389,58 +1745,35 @@ msgid "Source URL is required." msgstr "" #: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy msgid "Could not create application." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/newgroup.php:53 -msgid "New group" -msgstr "" +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" -#: actions/newmessage.php:71 actions/newmessage.php:231 -msgid "New message" -msgstr "" - -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 -msgid "You can't send a message to this user." -msgstr "" - -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 -msgid "No content!" -msgstr "" - #: actions/newmessage.php:158 msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:164 lib/command.php:506 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 -msgid "Message sent" -msgstr "" - -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:185 lib/command.php:514 #, php-format msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189 msgid "Ajax Error" msgstr "" -#: actions/newnotice.php:69 -msgid "New notice" -msgstr "" - -#: actions/newnotice.php:217 +#: actions/newnotice.php:227 msgid "Notice posted" msgstr "" @@ -2455,11 +1788,6 @@ msgstr "" msgid "Text search" msgstr "" -#: actions/noticesearch.php:91 -#, fuzzy, php-format -msgid "Search results for \"%1$s\" on %2$s" -msgstr "Αναζήτηση ροής για \"%s\"" - #: actions/noticesearch.php:121 #, php-format msgid "" @@ -2479,11 +1807,6 @@ msgstr "" msgid "Updates with \"%s\"" msgstr "" -#: actions/noticesearchrss.php:98 -#, fuzzy, php-format -msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Όλες οι ενημερώσεις που ταιριάζουν με τον όρο αναζήτησης \"%s\"" - #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." @@ -2522,11 +1845,6 @@ msgstr "" msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:175 -#, fuzzy -msgid "You are not a user of that application." -msgstr "Δεν είστε μέλος καμίας ομάδας." - #: actions/oauthconnectionssettings.php:186 #, php-format msgid "Unable to revoke access for app: %s." @@ -2540,22 +1858,6 @@ msgstr "" msgid "Developers can edit the registration settings for their applications " msgstr "" -#: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy -msgid "Notice has no profile." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/oembed.php:87 actions/shownotice.php:175 -#, php-format -msgid "%1$s's status on %2$s" -msgstr "" - -#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, fuzzy, php-format -msgid "Content type %s not supported." -msgstr "Σύνδεση" - #. TRANS: Error message displaying attachments. %s is the site's base URL. #: actions/oembed.php:163 #, php-format @@ -2563,23 +1865,18 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1356 msgid "Not a supported data format." msgstr "" -#: actions/opensearch.php:64 -msgid "People Search" -msgstr "" - #: actions/opensearch.php:67 msgid "Notice Search" msgstr "" #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" -msgstr "Ρυθμίσεις OpenID" +msgstr "Ρυθμίσεις του άβαταρ" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2597,38 +1894,14 @@ msgstr "" msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 -msgid "View profile designs" -msgstr "" - #: actions/othersettings.php:123 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -#, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." - -#: actions/otp.php:69 -#, fuzzy -msgid "No user ID specified." -msgstr "Μήνυμα" - -#: actions/otp.php:83 -#, fuzzy -msgid "No login token specified." -msgstr "Μήνυμα" - #: actions/otp.php:90 msgid "No login token requested." msgstr "" -#: actions/otp.php:95 -#, fuzzy -msgid "Invalid login token specified." -msgstr "Μήνυμα" - #: actions/otp.php:104 msgid "Login token expired." msgstr "" @@ -2652,18 +1925,8 @@ msgid "Change password" msgstr "Αλλαγή κωδικού" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Αλλαγή κωδικού" - -#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy -msgid "Password change" -msgstr "Ο κωδικός αποθηκεύτηκε." - -#: actions/passwordsettings.php:104 -msgid "Old password" -msgstr "" +msgstr "Αλλάξτε τον κωδικό σας" #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" @@ -2686,10 +1949,6 @@ msgstr "" msgid "Change" msgstr "Αλλαγή" -#: actions/passwordsettings.php:154 actions/register.php:237 -msgid "Password must be 6 or more characters." -msgstr "" - #: actions/passwordsettings.php:157 actions/register.php:240 msgid "Passwords don't match." msgstr "Οι κωδικοί δεν ταυτίζονται." @@ -2711,7 +1970,7 @@ msgid "Password saved." msgstr "Ο κωδικός αποθηκεύτηκε." #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" @@ -2719,26 +1978,6 @@ msgstr "" msgid "Path and server settings for this StatusNet site." msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format -msgid "Theme directory not readable: %s." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - -#: actions/pathsadminpanel.php:163 -#, fuzzy, php-format -msgid "Avatar directory not writable: %s." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format -msgid "Background directory not writable: %s." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - -#: actions/pathsadminpanel.php:177 -#, fuzzy, php-format -msgid "Locales directory not readable: %s." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" @@ -2747,11 +1986,6 @@ msgstr "" msgid "Site" msgstr "" -#: actions/pathsadminpanel.php:238 -#, fuzzy -msgid "Server" -msgstr "Αποχώρηση" - #: actions/pathsadminpanel.php:238 msgid "Site's server hostname." msgstr "" @@ -2797,24 +2031,16 @@ msgid "Theme directory" msgstr "" #: actions/pathsadminpanel.php:279 -#, fuzzy msgid "Avatars" -msgstr "Ρυθμίσεις OpenID" +msgstr "Ρυθμίσεις του άβαταρ" #: actions/pathsadminpanel.php:284 -#, fuzzy msgid "Avatar server" -msgstr "Ρυθμίσεις OpenID" +msgstr "Ρυθμίσεις του άβαταρ" #: actions/pathsadminpanel.php:288 -#, fuzzy msgid "Avatar path" -msgstr "Ρυθμίσεις OpenID" - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "Ρυθμίσεις OpenID" +msgstr "Ρυθμίσεις του άβαταρ" #: actions/pathsadminpanel.php:301 msgid "Backgrounds" @@ -2836,11 +2062,6 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Αποχώρηση" - #: actions/pathsadminpanel.php:324 msgid "Sometimes" msgstr "" @@ -2857,11 +2078,6 @@ msgstr "" msgid "When to use SSL" msgstr "" -#: actions/pathsadminpanel.php:335 -#, fuzzy -msgid "SSL server" -msgstr "Αποχώρηση" - #: actions/pathsadminpanel.php:336 msgid "Server to direct SSL requests to" msgstr "" @@ -2877,10 +2093,6 @@ msgid "" "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -#: actions/peoplesearch.php:58 -msgid "People search" -msgstr "" - #: actions/peopletag.php:68 #, php-format msgid "Not a valid people tag: %s." @@ -2891,20 +2103,11 @@ msgstr "" msgid "Users self-tagged with %1$s - page %2$d" msgstr "" -#: actions/postnotice.php:95 -#, fuzzy -msgid "Invalid notice content." -msgstr "Μήνυμα" - #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 -msgid "Profile settings" -msgstr "" - #: actions/profilesettings.php:71 msgid "" "You can update your personal profile info here so people know more about you." @@ -2926,7 +2129,7 @@ msgstr "Ονοματεπώνυμο" #. TRANS: Form input field label. #: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: lib/applicationeditform.php:235 lib/groupeditform.php:161 msgid "Homepage" msgstr "Αρχική σελίδα" @@ -2935,14 +2138,9 @@ msgid "URL of your homepage, blog, or profile on another site" msgstr "" #: actions/profilesettings.php:122 actions/register.php:468 -#, fuzzy, php-format +#, php-format msgid "Describe yourself and your interests in %d chars" -msgstr "Περιέγραψε τον εαυτό σου και τα ενδιαφέροντά σου σε 140 χαρακτήρες" - -#: actions/profilesettings.php:125 actions/register.php:471 -#, fuzzy -msgid "Describe yourself and your interests" -msgstr "Περιέγραψε τον εαυτό σου και τα ενδιαφέροντά σου σε 140 χαρακτήρες" +msgstr "Περιγράψτε την ομάδα ή το θέμα χρησιμοποιώντας μέχρι %d χαρακτήρες" #: actions/profilesettings.php:127 actions/register.php:473 msgid "Bio" @@ -2955,10 +2153,6 @@ msgstr "Βιογραφικό" msgid "Location" msgstr "Τοποθεσία" -#: actions/profilesettings.php:134 actions/register.php:480 -msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "" - #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" msgstr "" @@ -2990,27 +2184,15 @@ msgstr "" msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:167 -#, fuzzy -msgid "" -"Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "" -"Αυτόματα γίνε συνδρομητής σε όσους γίνονται συνδρομητές σε μένα (χρήση " -"κυρίως από λογισμικό και όχι ανθρώπους)" - #: actions/profilesettings.php:228 actions/register.php:230 -#, fuzzy, php-format +#, php-format msgid "Bio is too long (max %d chars)." -msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)." +msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "" - #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" @@ -3021,42 +2203,27 @@ msgid "Couldn't update user for autosubscribe." msgstr "Απέτυχε η ενημέρωση του χρήστη για την αυτόματη συνδρομή." #: actions/profilesettings.php:363 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Απέτυχε η αποθήκευση του προφίλ." #: actions/profilesettings.php:375 msgid "Couldn't save profile." msgstr "Απέτυχε η αποθήκευση του προφίλ." #: actions/profilesettings.php:383 -#, fuzzy msgid "Couldn't save tags." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 -msgid "Settings saved." -msgstr "" +msgstr "Απέτυχε η αποθήκευση του προφίλ." #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)." msgstr "" -#: actions/public.php:92 -msgid "Could not retrieve public stream." -msgstr "" - #: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:132 lib/publicgroupnav.php:79 -msgid "Public timeline" -msgstr "" - #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" @@ -3065,18 +2232,6 @@ msgstr "" msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:168 -#, fuzzy -msgid "Public Stream Feed (Atom)" -msgstr "Δημόσια ροή %s" - -#: actions/public.php:188 -#, php-format -msgid "" -"This is the public timeline for %%site.name%% but no one has posted anything " -"yet." -msgstr "" - #: actions/public.php:191 msgid "Be the first to post!" msgstr "" @@ -3129,18 +2284,6 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:134 -msgid "Tag cloud" -msgstr "" - -#: actions/recoverpassword.php:36 -msgid "You are already logged in!" -msgstr "" - -#: actions/recoverpassword.php:62 -msgid "No such recovery code." -msgstr "" - #: actions/recoverpassword.php:66 msgid "Not a recovery code." msgstr "" @@ -3149,10 +2292,6 @@ msgstr "" msgid "Recovery code for unknown user." msgstr "" -#: actions/recoverpassword.php:86 -msgid "Error with confirmation code." -msgstr "" - #: actions/recoverpassword.php:97 msgid "This confirmation code is too old. Please start again." msgstr "" @@ -3161,24 +2300,10 @@ msgstr "" msgid "Could not update user with confirmed email address." msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης." -#: 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 "" -#: actions/recoverpassword.php:188 -msgid "Password recovery" -msgstr "" - -#: actions/recoverpassword.php:191 -msgid "Nickname or email address" -msgstr "" - #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" @@ -3187,14 +2312,6 @@ msgstr "" msgid "Recover" msgstr "" -#: actions/recoverpassword.php:208 -msgid "Reset password" -msgstr "" - -#: actions/recoverpassword.php:209 -msgid "Recover password" -msgstr "" - #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -3223,10 +2340,6 @@ msgstr "" msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:313 -msgid "Error saving address confirmation." -msgstr "" - #: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " @@ -3247,10 +2360,6 @@ msgstr "Ο κωδικός πρέπει να είναι 6 χαρακτήρες ή msgid "Password and confirmation do not match." msgstr "Ο κωδικός και η επιβεβαίωση του δεν ταυτίζονται." -#: actions/recoverpassword.php:388 actions/register.php:255 -msgid "Error setting user." -msgstr "" - #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3263,18 +2372,6 @@ msgstr "" msgid "Sorry, invalid invitation code." msgstr "" -#: actions/register.php:119 -msgid "Registration successful" -msgstr "" - -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 -msgid "Register" -msgstr "" - -#: actions/register.php:142 -msgid "Registration not allowed." -msgstr "" - #: actions/register.php:205 msgid "You can't register if you don't agree to the license." msgstr "" @@ -3283,10 +2380,6 @@ msgstr "" msgid "Email address already exists." msgstr "Η διεύθυνση email υπάρχει ήδη." -#: actions/register.php:250 actions/register.php:272 -msgid "Invalid username or password." -msgstr "" - #: actions/register.php:350 msgid "" "With this form you can create a new account. You can then post notices and " @@ -3340,50 +2433,6 @@ msgstr "" msgid "All rights reserved." msgstr "" -#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 -#, fuzzy, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"εκτός από τα εξής προσωπικά δεδομένα: κωδικός πρόσβασης, διεύθυνση email, " -"διεύθυνση IM, τηλεφωνικό νούμερο." - -#: actions/register.php:583 -#, fuzzy, php-format -msgid "" -"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " -"want to...\n" -"\n" -"* Go to [your profile](%2$s) and post your first message.\n" -"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send " -"notices through instant messages.\n" -"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that " -"share your interests. \n" -"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " -"others more about you. \n" -"* Read over the [online docs](%%%%doc.help%%%%) for features you may have " -"missed. \n" -"\n" -"Thanks for signing up and we hope you enjoy using this service." -msgstr "" -"Συγχαρητήρια, %s! και καλωσήρθες στο %%%%site.name%%%%. Από εδώ μπορείς " -"να...\n" -"\n" -"* Πας στο [your profile](%s) και να στείλεις το πρώτο σου μήνυμα.\n" -"* Προσθέσεις ένα [Jabber/GTalk address](%%%%action.imsettings%%%%) ώστε να " -"δέχεσε μηνύματα στο instant messager σου.\n" -"* [Search for people](%%%%action.peoplesearch%%%%) που μπορεί να ξέρεις ή " -"που έχουν τα ίδια ενδιαφέροντα με σένα. \n" -"* Ενημερώσεις το προφίλ σου [profile settings](%%%%action.profilesettings%%%" -"%) για να μάθουν οι άλλοι περισσότερα για σένα. \n" -"* Διαβάσεις τα [online docs](%%%%doc.help%%%%) για λειτουργίες που μπορεί να " -"μην έχεις μάθει ακόμα. \n" -"\n" -"Ευχαριστούμε που εγγράφηκες και ευχόμαστε να περάσεις καλά με την υπηρεσία " -"μας." - #: actions/register.php:607 msgid "" "(You should receive a message by email momentarily, with instructions on how " @@ -3400,19 +2449,6 @@ msgid "" "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -#: actions/remotesubscribe.php:112 -msgid "Remote subscribe" -msgstr "" - -#: actions/remotesubscribe.php:124 -#, fuzzy -msgid "Subscribe to a remote user" -msgstr "Γίνε συνδρομητής αυτού του χρήστη" - -#: actions/remotesubscribe.php:129 -msgid "User nickname" -msgstr "" - #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" msgstr "Το ψευδώνυμο του χρήστη που θέλετε να παρακολουθήσετε" @@ -3425,11 +2461,6 @@ msgstr "" msgid "URL of your profile on another compatible microblogging service" msgstr "" -#: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 -msgid "Subscribe" -msgstr "" - #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" msgstr "" @@ -3442,38 +2473,21 @@ msgstr "" msgid "That’s a local profile! Login to subscribe." msgstr "" -#: actions/remotesubscribe.php:183 -#, fuzzy -msgid "Couldn’t get a request token." -msgstr "Απέτυχε η μετατροπή αιτούμενων tokens σε tokens πρόσβασης." - #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." msgstr "" -#: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy -msgid "No notice specified." -msgstr "Μήνυμα" - #: actions/repeat.php:76 msgid "You can't repeat your own notice." msgstr "" -#: actions/repeat.php:90 -#, fuzzy -msgid "You already repeated that notice." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#: actions/repeat.php:114 lib/noticelist.php:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" -msgstr "Δημιουργία" +msgstr "Επαναλαμβάνεται από" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Δημιουργία" +msgstr "Επαναλαμβάνεται από" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3487,28 +2501,19 @@ msgid "Replies to %1$s, page %2$d" msgstr "" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "Ροή φίλων του/της %s" +msgstr "Ροή φίλων του/της %s (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "Ροή φίλων του/της %s" +msgstr "Ροή φίλων του/της %s (RSS 2.0)" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Ροή φίλων του/της %s" - -#: actions/replies.php:199 -#, fuzzy, php-format -msgid "" -"This is the timeline showing replies to %1$s but %2$s hasn't received a " -"notice to them yet." -msgstr "" -"Αυτό είναι το χρονοδιάγραμμα για %s και φίλους, αλλά κανείς δεν έχει κάνει " -"καμία αποστολή ακόμα." +msgstr "Ροή φίλων του/της %s (Atom)" #: actions/replies.php:204 #, php-format @@ -3529,19 +2534,13 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" -#: actions/revokerole.php:75 -#, fuzzy -msgid "You cannot revoke user roles on this site." -msgstr "Απέτυχε η ενημέρωση του χρήστη." - #: actions/revokerole.php:82 msgid "User doesn't have this role." msgstr "" #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Η κατάσταση διαγράφεται." +msgstr "Η κατάσταση διεγράφη." #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." @@ -3553,7 +2552,7 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" @@ -3579,9 +2578,8 @@ msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "Ρυθμίσεις OpenID" +msgstr "Αποθήκευση ρυθμίσεων πρόσβασης" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." @@ -3592,26 +2590,13 @@ msgid "Application profile" msgstr "" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" -#. TRANS: Form input field label for application name. -#: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 -#, fuzzy -msgid "Name" -msgstr "Ψευδώνυμο" - -#. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy -msgid "Organization" -msgstr "Προσκλήσεις" - #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:207 lib/groupeditform.php:172 msgid "Description" msgstr "Περιγραφή" @@ -3663,34 +2648,25 @@ msgid "" "signature method." msgstr "" -#: actions/showapplication.php:309 -#, fuzzy -msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυτό το μήνυμα;" - #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%s και οι φίλοι του/της" - -#: actions/showfavorites.php:132 -msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/showfavorites.php:171 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Ροή φίλων του/της %s" +msgstr "Ροή φίλων του/της %s (RSS 1.0)" #: actions/showfavorites.php:178 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Ροή φίλων του/της %s" +msgstr "Ροή φίλων του/της %s (RSS 2.0)" #: actions/showfavorites.php:185 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Ροή φίλων του/της %s" +msgstr "Ροή φίλων του/της %s (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3717,73 +2693,28 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 -#, php-format -msgid "%s group" -msgstr "" - #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/showgroup.php:227 -#, fuzzy msgid "Group profile" -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Προφίλ χρήστη" #: actions/showgroup.php:272 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 -msgid "Note" -msgstr "" - #: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 -msgid "Group actions" -msgstr "" - -#: actions/showgroup.php:338 -#, php-format -msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" - -#: actions/showgroup.php:344 -#, php-format -msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" - -#: actions/showgroup.php:350 -#, php-format -msgid "Notice feed for %s group (Atom)" -msgstr "" - -#: actions/showgroup.php:355 -#, fuzzy, php-format -msgid "FOAF for %s group" -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#: actions/showgroup.php:393 actions/showgroup.php:445 msgid "Members" msgstr "Μέλη" -#: actions/showgroup.php:398 lib/profileaction.php:117 -#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 -#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 -msgid "(None)" -msgstr "" - -#: actions/showgroup.php:404 -msgid "All members" -msgstr "" - #: actions/showgroup.php:439 msgid "Created" msgstr "Δημιουργημένος" @@ -3811,10 +2742,6 @@ msgstr "" msgid "Admins" msgstr "Διαχειριστές" -#: actions/showmessage.php:81 -msgid "No such message." -msgstr "" - #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." msgstr "" @@ -3830,9 +2757,8 @@ msgid "Message from %1$s on %2$s" msgstr "" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Ρυθμίσεις OpenID" +msgstr "Η κατάσταση διεγράφη." #: actions/showstream.php:73 #, php-format @@ -3840,40 +2766,20 @@ msgid " tagged %s" msgstr "" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%s και οι φίλοι του/της" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Ροή φίλων του/της %s" - -#: actions/showstream.php:129 -#, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "" - -#: actions/showstream.php:136 -#, php-format -msgid "Notice feed for %s (RSS 2.0)" -msgstr "" - -#: actions/showstream.php:143 -#, php-format -msgid "Notice feed for %s (Atom)" -msgstr "" +msgstr "Ροή φίλων του/της %s (RSS 1.0)" #: actions/showstream.php:148 #, php-format msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "" - #: actions/showstream.php:205 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " @@ -3904,11 +2810,6 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 -#, php-format -msgid "Repeat of %s" -msgstr "" - #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." msgstr "" @@ -3926,9 +2827,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης" +msgstr "Εισάγετε ψευδώνυμο ή διεύθυνση email." #: actions/siteadminpanel.php:159 #, php-format @@ -3971,11 +2871,6 @@ msgstr "" msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:239 -#, fuzzy -msgid "Contact email address for your site" -msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε." - #: actions/siteadminpanel.php:245 msgid "Local" msgstr "Τοπικός" @@ -4016,11 +2911,6 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy -msgid "Site Notice" -msgstr "Διαγραφή μηνύματος" - #: actions/sitenoticeadminpanel.php:67 msgid "Edit site-wide message" msgstr "" @@ -4033,25 +2923,18 @@ msgstr "" msgid "Max length for the site-wide notice is 255 chars." msgstr "" -#: actions/sitenoticeadminpanel.php:176 -#, fuzzy -msgid "Site notice text" -msgstr "Διαγραφή μηνύματος" - #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Ρυθμίσεις OpenID" +msgstr "Διαγραφή μηνύματος" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "Ρυθμίσεις ΙΜ" +msgstr "Ρυθμίσεις του άβαταρ" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4060,17 +2943,10 @@ msgstr "Ρυθμίσεις ΙΜ" msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. -#: actions/smssettings.php:97 -#, fuzzy -msgid "SMS is not available." -msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." - #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Διεύθυνση ΙΜ" +msgstr "Διευθύνσεις email" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4082,38 +2958,20 @@ msgstr "Τρέχων επιβεβαιωμένο, μέσω SMS, νούμερο κ msgid "Awaiting confirmation on this phone number." msgstr "Αναμένωντας επιβεβαίωση σ' αυτό το νούμερο τηλεφώνου." -#. TRANS: Field label for SMS address input in SMS settings form. -#: actions/smssettings.php:142 -msgid "Confirmation code" -msgstr "" - #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." msgstr "" -#. TRANS: Button label to confirm SMS confirmation code in SMS settings. -#: actions/smssettings.php:148 -#, fuzzy -msgctxt "BUTTON" -msgid "Confirm" -msgstr "Επιβεβαίωση" - #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 msgid "SMS phone number" msgstr "" -#. TRANS: SMS phone number input field instructions in SMS settings form. -#: actions/smssettings.php:156 -msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" - #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Προτιμήσεις" +msgstr "Οι προτιμήσεις αποθηκεύτηκαν" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4122,17 +2980,6 @@ msgid "" "from my carrier." msgstr "" -#. TRANS: Confirmation message for successful SMS preferences save. -#: actions/smssettings.php:315 -#, fuzzy -msgid "SMS preferences saved." -msgstr "Οι προτιμήσεις αποθηκεύτηκαν" - -#. TRANS: Message given saving SMS phone number without having provided one. -#: actions/smssettings.php:338 -msgid "No phone number." -msgstr "" - #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 msgid "No carrier selected." @@ -4150,32 +2997,14 @@ msgstr "" #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στο τηλεφωνικό νούμερο που " +"Έχει αποσταλεί ένας κωδικός επιβεβαίωσης στην διεύθυνση email που " "προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης " "αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε." -#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. -#: actions/smssettings.php:413 -msgid "That is the wrong confirmation number." -msgstr "" - -#. TRANS: Message given after successfully canceling SMS phone number confirmation. -#: actions/smssettings.php:427 -#, fuzzy -msgid "SMS confirmation cancelled." -msgstr "Η επιβεβαίωση ακυρώθηκε." - -#. TRANS: Message given trying to remove an SMS phone number that is not -#. TRANS: registered for the active user. -#: actions/smssettings.php:448 -msgid "That is not your phone number." -msgstr "" - #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 msgid "The SMS phone number was removed." @@ -4207,15 +3036,10 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" -#: actions/snapshotadminpanel.php:65 -#, fuzzy -msgid "Manage snapshot configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." msgstr "" @@ -4261,46 +3085,30 @@ msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Ρυθμίσεις OpenID" - -#: actions/subedit.php:70 -msgid "You are not subscribed to that profile." -msgstr "" +msgstr "Αποθήκευση ρυθμίσεων πρόσβασης" #. TRANS: Exception thrown when a subscription could not be stored on the server. #: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy msgid "Could not save subscription." -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Απέτυχε η εισαγωγή νέας συνδρομής." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Κανένας τέτοιος χρήστης." #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" -#: actions/subscribe.php:145 -msgid "Subscribed" -msgstr "" - -#: actions/subscribers.php:50 -#, php-format -msgid "%s subscribers" -msgstr "" - #: actions/subscribers.php:52 -#, fuzzy, php-format +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%s και οι φίλοι του/της" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." @@ -4330,14 +3138,14 @@ msgid "" msgstr "" #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Όλες οι συνδρομές" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." @@ -4376,20 +3184,10 @@ msgstr "" msgid "Notices tagged with %1$s, page %2$d" msgstr "" -#: actions/tag.php:87 -#, php-format -msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "" - #: actions/tag.php:93 -#, fuzzy, php-format -msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Ροή φίλων του/της %s" - -#: actions/tag.php:99 #, php-format -msgid "Notice feed for tag %s (Atom)" -msgstr "" +msgid "Notice feed for tag %s (RSS 2.0)" +msgstr "Ροή φίλων του/της %s (RSS 2.0)" #: actions/tagother.php:39 msgid "No ID argument." @@ -4425,22 +3223,16 @@ msgid "" 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 "" -#: actions/tagrss.php:35 -msgid "No such tag." -msgstr "" - #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Δεν μπορείτε να κάνετε φραγή στον εαυτό σας!" #: actions/unsandbox.php:72 msgid "User is not sandboxed." @@ -4454,10 +3246,6 @@ msgstr "" msgid "No profile ID in request." msgstr "" -#: actions/unsubscribe.php:98 -msgid "Unsubscribed" -msgstr "" - #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" @@ -4487,12 +3275,6 @@ msgstr "" msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 -msgid "Profile" -msgstr "" - #: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" @@ -4505,34 +3287,18 @@ msgstr "" msgid "New users" msgstr "Νέοι χρήστες" -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" - #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:241 -#, fuzzy -msgid "Default subscription" -msgstr "Όλες οι συνδρομές" - #: actions/useradminpanel.php:242 -#, fuzzy msgid "Automatically subscribe new users to this user." -msgstr "" -"Αυτόματα γίνε συνδρομητής σε όσους γίνονται συνδρομητές σε μένα (χρήση " -"κυρίως από λογισμικό και όχι ανθρώπους)" +msgstr "Γίνε συνδρομητής αυτού του χρήστη" #: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Προσκλήσεις" -#: actions/useradminpanel.php:256 -msgid "Invitations enabled" -msgstr "" - #: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4548,10 +3314,6 @@ msgid "" "click “Reject”." msgstr "" -#: actions/userauthorization.php:196 actions/version.php:167 -msgid "License" -msgstr "" - #: actions/userauthorization.php:217 msgid "Accept" msgstr "Αποδοχή" @@ -4566,18 +3328,13 @@ msgid "Reject" msgstr "" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Εξουσιοδοτημένη συνδρομή" #: actions/userauthorization.php:232 msgid "No authorization request!" msgstr "" -#: actions/userauthorization.php:254 -msgid "Subscription authorized" -msgstr "" - #: actions/userauthorization.php:256 msgid "" "The subscription has been authorized, but no callback URL was passed. Check " @@ -4647,19 +3404,14 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:159 -#, php-format -msgid "%s is not a member of any group." -msgstr "" - #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." @@ -4719,12 +3471,6 @@ msgstr "" msgid "Plugins" msgstr "" -#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -#, fuzzy -msgid "Version" -msgstr "Προσωπικά" - #: actions/version.php:199 msgid "Author(s)" msgstr "" @@ -4763,42 +3509,17 @@ msgstr "" msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy -msgid "Invalid filename." -msgstr "Μήνυμα" - -#. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy -msgid "Group join failed." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy -msgid "Not part of group." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy -msgid "Group leave failed." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 @@ -4810,16 +3531,6 @@ msgstr "" msgid "You are banned from sending direct messages." msgstr "" -#. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 -msgid "Could not insert message." -msgstr "" - -#. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 -msgid "Could not update message with new URI." -msgstr "" - #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 @@ -4827,59 +3538,53 @@ msgstr "" msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" -#. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format -msgid "Database error inserting hashtag: %s" -msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" - #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:265 msgid "Problem saving notice. Too long." msgstr "" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:270 msgid "Problem saving notice. Unknown user." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:283 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:291 msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:358 classes/Notice.php:385 msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:998 msgid "Problem saving group inbox." msgstr "" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4898,56 +3603,30 @@ msgstr "" msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" -#. TRANS: Exception thrown when a right for a non-existing user profile is checked. -#: classes/Remote_profile.php:54 -#, fuzzy -msgid "Missing profile." -msgstr "Προφίλ χρήστη" - -#. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy -msgid "Unable to save tag." -msgstr "Αδύνατη η αποθήκευση του προφίλ." - #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:75 lib/oauthstore.php:466 msgid "You have been banned from subscribing." msgstr "" -#. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -msgid "Already subscribed!" -msgstr "" - #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. #: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy -msgid "Not subscribed!" -msgstr "Απέτυχε η συνδρομή." - #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. #: classes/Subscription.php:178 -#, fuzzy msgid "Could not delete self-subscription." -msgstr "Απέτυχε η διαγραφή συνδρομής." +msgstr "Απέτυχε η εισαγωγή νέας συνδρομής." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. #: classes/Subscription.php:206 -#, fuzzy msgid "Could not delete subscription OMB token." -msgstr "Απέτυχε η διαγραφή συνδρομής." +msgstr "Απέτυχε η εισαγωγή νέας συνδρομής." #. TRANS: Exception thrown when a subscription could not be deleted on the server. #: classes/Subscription.php:218 -#, fuzzy msgid "Could not delete subscription." -msgstr "Απέτυχε η διαγραφή συνδρομής." +msgstr "Απέτυχε η εισαγωγή νέας συνδρομής." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. @@ -4963,21 +3642,18 @@ msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Server exception thrown when updating a group URI failed. #: classes/User_group.php:506 -#, fuzzy msgid "Could not set group URI." -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Server exception thrown when setting group membership failed. #: classes/User_group.php:529 -#, fuzzy msgid "Could not set group membership." -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." #. TRANS: Server exception thrown when saving local group information failed. #: classes/User_group.php:544 -#, fuzzy msgid "Could not save local group info." -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +msgstr "Απέτυχε η αποθήκευση του προφίλ." #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:109 @@ -5015,228 +3691,130 @@ msgid "Other" msgstr "" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "" -#. TRANS: Page title for a page without a title set. -#: lib/action.php:161 -msgid "Untitled page" -msgstr "" - #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:449 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:455 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -#, fuzzy -msgctxt "MENU" -msgid "Personal" -msgstr "Προσωπικά" - -#. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Change your email, avatar, password, profile" -msgstr "Αλλάξτε τον κωδικό σας" - -#. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Connect to services" -msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s" - #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:468 msgid "Connect" msgstr "Σύνδεση" -#. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Change site configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - -#. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 -#, fuzzy -msgctxt "MENU" -msgid "Admin" -msgstr "Διαχειριστής" - -#. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 -#, fuzzy, php-format -msgctxt "TOOLTIP" -msgid "Invite friends and colleagues to join you on %s" -msgstr "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s" - #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -#, fuzzy +#: lib/action.php:481 msgctxt "MENU" msgid "Invite" -msgstr "Μήνυμα" +msgstr "Μόνο με πρόσκληση" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:487 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:490 msgctxt "MENU" msgid "Logout" -msgstr "Αποσύνδεση" - -#. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Create an account" -msgstr "Δημιουργία ενός λογαριασμού" +msgstr "Λογότυπο" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy +#: lib/action.php:498 msgctxt "MENU" msgid "Register" -msgstr "Περιγραφή" +msgstr "Εγγραφή" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:501 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 -#, fuzzy -msgctxt "MENU" -msgid "Login" -msgstr "Σύνδεση" - #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:507 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Βοηθήστε με!" - -#: lib/action.php:497 -#, fuzzy -msgctxt "MENU" -msgid "Help" msgstr "Βοήθεια" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:513 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#: lib/action.php:516 msgctxt "MENU" msgid "Search" msgstr "" -#. TRANS: DT element for site notice. String is hidden in default CSS. -#. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -msgid "Site notice" -msgstr "" - -#. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 -msgid "Local views" -msgstr "" - -#. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -msgid "Page notice" -msgstr "" - #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:778 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:784 msgid "Help" msgstr "Βοήθεια" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:787 msgid "About" msgstr "Περί" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:790 msgid "FAQ" msgstr "Συχνές ερωτήσεις" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:795 msgid "TOS" msgstr "" -#. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 -msgid "Privacy" -msgstr "" - #. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#: lib/action.php:802 msgid "Source" msgstr "" #. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#: lib/action.php:808 msgid "Contact" msgstr "Επικοινωνία" -#: lib/action.php:794 +#: lib/action.php:810 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:839 msgid "StatusNet software license" msgstr "" -#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 -#, fuzzy, php-format -msgid "" -"**%%site.name%%** is a microblogging service brought to you by [%%site." -"broughtby%%](%%site.broughtbyurl%%)." -msgstr "" -"To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που " -"έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). " - #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:849 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου)." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:856 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5245,49 +3823,45 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:872 msgid "Site content license" msgstr "" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:879 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:886 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:890 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:904 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" -#. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 -msgid "Pagination" -msgstr "" - #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1254 msgid "After" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1264 msgid "Before" msgstr "" @@ -5296,215 +3870,188 @@ msgstr "" msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:203 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:240 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:245 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "" -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy -msgid "Basic site configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "" -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy -msgid "Design configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -#, fuzzy -msgctxt "MENU" -msgid "Design" -msgstr "Προσωπικά" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy -msgid "User configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115 msgid "User" msgstr "" -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy -msgid "Access configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy -msgid "Paths configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy -msgid "Sessions configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy -msgid "Edit site notice" -msgstr "Διαγραφή μηνύματος" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy -msgid "Snapshots configuration" -msgstr "Επιβεβαίωση διεύθυνσης email" - #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:175 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:212 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:217 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:258 lib/apiauth.php:290 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:178 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:182 +msgid "Failed to delete revoked token." +msgstr "" + #. TRANS: Form legend. -#: lib/applicationeditform.php:137 +#: lib/applicationeditform.php:129 msgid "Edit application" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, fuzzy, php-format +#: lib/applicationeditform.php:200 +#, php-format msgid "Describe your application in %d characters" -msgstr "Περιγράψτε την ομάδα ή το θέμα μέχρι %d χαρακτήρες" +msgstr "Περιγράψτε την ομάδα ή το θέμα χρησιμοποιώντας μέχρι %d χαρακτήρες" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy -msgid "Describe your application" -msgstr "Περιγράψτε την ομάδα ή το θέμα" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:215 msgid "URL of the homepage of this application" msgstr "" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:217 msgid "Source URL" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:224 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:233 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:242 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:269 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:286 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:288 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:311 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:330 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:332 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:349 msgid "Cancel" msgstr "Ακύρωση" #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:135 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:137 msgid "read-only" msgstr "" #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#: lib/applicationlist.php:143 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:158 msgctxt "BUTTON" msgid "Revoke" msgstr "" @@ -5524,23 +4071,20 @@ msgstr "" msgid "Provider" msgstr "" -#: lib/attachmentnoticesection.php:67 +#. TRANS: Title. +#: lib/attachmentnoticesection.php:68 msgid "Notices where this attachment appears" msgstr "" -#: lib/attachmenttagcloudsection.php:48 +#. TRANS: Title. +#: lib/attachmenttagcloudsection.php:49 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -#, fuzzy -msgid "Password changing failed" -msgstr "Ο κωδικός αποθηκεύτηκε." - -#: lib/authenticationplugin.php:236 -#, fuzzy -msgid "Password changing is not allowed" -msgstr "Ο κωδικός αποθηκεύτηκε." +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:70 +msgid "Block" +msgstr "" #: lib/channel.php:157 lib/channel.php:177 msgid "Command results" @@ -5550,48 +4094,46 @@ msgstr "" msgid "Command complete" msgstr "" -#: lib/channel.php:240 -msgid "Command failed" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." msgstr "" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "" - -#. TRANS: Message given requesting a profile for a non-existing user. -#. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, fuzzy, php-format -msgid "Could not find a user with nickname %s" -msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης." - #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης." +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:185 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:231 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:240 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:270 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5599,56 +4141,27 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:314 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Ομάδες με τα περισσότερα μέλη" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +#: lib/command.php:360 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 -#, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format -msgid "Fullname: %s" -msgstr "Ονοματεπώνυμο" - -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#: lib/command.php:408 #, php-format -msgid "Location: %s" +msgid "%1$s left group %2$s." msgstr "" -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, php-format -msgid "Homepage: %s" -msgstr "" - -#. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 -#, php-format -msgid "About: %s" -msgstr "" - -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#: lib/command.php:474 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5657,146 +4170,150 @@ msgstr "" #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:491 lib/xmppmanager.php:403 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" +msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:517 msgid "Error sending direct message." msgstr "" -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#. TRANS: Message given having repeated a notice from another user. -#. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "Ρυθμίσεις OpenID" - -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:557 msgid "Error repeating notice." msgstr "" -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:592 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" +msgid "Notice too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 #, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:606 msgid "Error saving notice." msgstr "" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:655 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:694 lib/command.php:804 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:724 lib/command.php:750 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:728 msgid "Notification off." msgstr "" -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:731 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:754 msgid "Notification on." msgstr "" -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:757 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:771 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:784 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Απέτυχε η συνδρομή." +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 -#, fuzzy -msgid "You are not subscribed to anyone." -msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." - -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:836 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:800 -#, fuzzy -msgid "No one is subscribed to you." -msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." - -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:863 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:885 msgid "You are not a member of any groups." msgstr "Δεν είστε μέλος καμίας ομάδας." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:890 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Ομάδες με τα περισσότερα μέλη" msgstr[1] "Ομάδες με τα περισσότερα μέλη" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:905 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5838,11 +4355,6 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -#, fuzzy -msgid "No configuration file found. " -msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." - #: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" @@ -5867,11 +4379,6 @@ msgstr "" msgid "Updates by SMS" msgstr "" -#: lib/connectsettingsaction.php:120 -#, fuzzy -msgid "Connections" -msgstr "Σύνδεση" - #: lib/connectsettingsaction.php:121 msgid "Authorized connected applications" msgstr "" @@ -5881,9 +4388,8 @@ msgid "Database error" msgstr "" #: lib/designsettings.php:105 -#, fuzzy msgid "Upload file" -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Προφίλ χρήστη" #: lib/designsettings.php:109 msgid "" @@ -5930,10 +4436,6 @@ msgstr "" msgid "Filter tags" msgstr "" -#: lib/galleryaction.php:131 -msgid "All" -msgstr "" - #: lib/galleryaction.php:139 msgid "Select tag to filter" msgstr "" @@ -5978,37 +4480,77 @@ msgstr "Τοποθεσία της ομάδας (εάν υπάρχει), πχ: \" msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "Ομάδα" +msgstr "" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 -#, php-format -msgid "Edit %s group properties" -msgstr "Επεξεργασία ιδιοτήτων της ομάδας %s" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Λογότυπο" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Προσθήκη ή επεξεργασία λογότυπου για την ομάδα %s" - +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 -#, fuzzy, php-format +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Προσθήκη ή επεξεργασία λογότυπου για την ομάδα %s" +msgstr "" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" @@ -6018,11 +4560,6 @@ msgstr "Ομάδες με τα περισσότερα μέλη" msgid "Groups with most posts" msgstr "Ομάδες με τις περισσότερες δημοσιεύσεις" -#: lib/grouptagcloudsection.php:56 -#, php-format -msgid "Tags in %s group's notices" -msgstr "" - #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" @@ -6041,7 +4578,8 @@ msgstr "" msgid "Partial upload." msgstr "" -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:101 lib/mediafile.php:179 msgid "System error uploading file." msgstr "" @@ -6050,9 +4588,8 @@ msgid "Not an image or corrupt file." msgstr "" #: lib/imagefile.php:122 -#, fuzzy msgid "Lost our file." -msgstr "Αδύνατη η αποθήκευση του προφίλ." +msgstr "Σχεδιάστε το προφίλ σας" #: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" @@ -6146,11 +4683,9 @@ msgstr "" #. TRANS: Profile info line in new-subscriber notification e-mail #: lib/mail.php:274 -#, fuzzy, php-format +#, php-format msgid "Bio: %s" -msgstr "" -"Βιογραφικό: %s\n" -"\n" +msgstr "Βιογραφικό" #. TRANS: Subject of notification mail for new posting email address #: lib/mail.php:304 @@ -6178,17 +4713,6 @@ msgstr "" msgid "%s status" msgstr "Κατάσταση του/της %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 -msgid "SMS confirmation" -msgstr "" - -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 -#, fuzzy, php-format -msgid "%s: confirm you own this phone number with this code:" -msgstr "Αναμένωντας επιβεβαίωση σ' αυτό το νούμερο τηλεφώνου." - #. TRANS: Subject for 'nudge' notification email #: lib/mail.php:484 #, php-format @@ -6318,14 +4842,10 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:506 msgid "from" msgstr "από" -#: lib/mailhandler.php:37 -msgid "Could not parse message." -msgstr "" - #: lib/mailhandler.php:42 msgid "Not a registered user." msgstr "" @@ -6343,104 +4863,98 @@ msgstr "" msgid "Unsupported message type: %s" msgstr "" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:99 lib/mediafile.php:125 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:145 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:151 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:157 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:165 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:169 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:173 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:189 lib/mediafile.php:232 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:209 lib/mediafile.php:251 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy -msgid "Could not determine file's MIME type." -msgstr "Απέτυχε η ενημέρωση του χρήστη." - -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:340 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:345 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "" - -#: lib/messageform.php:120 -msgid "Send a direct notice" +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:146 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:159 lib/noticeform.php:186 msgid "Available characters" msgstr "Διαθέσιμοι χαρακτήρες" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:178 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "" -#: lib/noticeform.php:160 -msgid "Send a notice" -msgstr "" - -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 -#, fuzzy -msgid "Share my location" -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: lib/noticeform.php:215 -#, fuzzy -msgid "Do not share my location" -msgstr "Αδύνατη η αποθήκευση του προφίλ." - -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6475,61 +4989,44 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:502 +msgid "web" +msgstr "" + +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:602 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:629 -msgid "Reply to this notice" -msgstr "" - -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply" msgstr "" -#: lib/noticelist.php:674 -#, fuzzy -msgid "Notice repeated" -msgstr "Ρυθμίσεις OpenID" - -#: lib/nudgeform.php:116 -msgid "Nudge this user" -msgstr "" - #: lib/nudgeform.php:128 msgid "Nudge" msgstr "" -#: lib/nudgeform.php:128 -msgid "Send a nudge to this user" -msgstr "" - #: lib/oauthstore.php:283 -msgid "Error inserting new profile" +msgid "Error inserting new profile." msgstr "" #: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "" - -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" +msgid "Error inserting avatar." msgstr "" #: lib/oauthstore.php:311 -msgid "Error inserting remote profile" +msgid "Error inserting remote profile." msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Διαγραφή μηνύματος" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:346 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:491 msgid "Couldn't insert new subscription." msgstr "Απέτυχε η εισαγωγή νέας συνδρομής." @@ -6566,26 +5063,15 @@ msgstr "" msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:116 msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 -msgid "Subscriptions" -msgstr "" - #: lib/profileaction.php:126 msgid "All subscriptions" msgstr "Όλες οι συνδρομές" -#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 -msgid "Subscribers" -msgstr "" - -#: lib/profileaction.php:161 -msgid "All subscribers" -msgstr "" - #: lib/profileaction.php:191 msgid "User ID" msgstr "" @@ -6599,10 +5085,6 @@ msgstr "Μέλος από" msgid "Daily average" msgstr "" -#: lib/profileaction.php:264 -msgid "All groups" -msgstr "" - #: lib/profileformaction.php:123 msgid "Unimplemented method." msgstr "" @@ -6632,18 +5114,16 @@ msgid "No return-to arguments." msgstr "" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Διαγραφή μηνύματος" #: lib/repeatform.php:132 msgid "Yes" msgstr "Ναι" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Διαγραφή μηνύματος" #: lib/revokeroleform.php:91 #, php-format @@ -6659,34 +5139,30 @@ msgid "Sandbox" msgstr "" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Γίνε συνδρομητής αυτού του χρήστη" -#: lib/searchaction.php:120 +#. TRANS: Fieldset legend for the search form. +#: lib/searchaction.php:121 msgid "Search site" msgstr "" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:129 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "" -#: lib/searchgroupnav.php:80 -msgid "People" -msgstr "" - -#: lib/searchgroupnav.php:81 -msgid "Find people on this site" -msgstr "" - #: lib/searchgroupnav.php:83 msgid "Find content of notices" msgstr "" @@ -6708,28 +5184,8 @@ msgid "Silence" msgstr "" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Γίνε συνδρομητής αυτού του χρήστη" - -#: lib/subgroupnav.php:83 -#, php-format -msgid "People %s subscribes to" -msgstr "" - -#: lib/subgroupnav.php:91 -#, php-format -msgid "People subscribed to %s" -msgstr "" - -#: lib/subgroupnav.php:99 -#, php-format -msgid "Groups %s is a member of" -msgstr "" - -#: lib/subgroupnav.php:105 -msgid "Invite" -msgstr "" +msgstr "Διαγράψτε αυτόν τον χρήστη" #: lib/subgroupnav.php:106 #, php-format @@ -6759,12 +5215,12 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:278 lib/themeuploader.php:282 +#: lib/themeuploader.php:290 lib/themeuploader.php:297 msgid "Failed saving theme." msgstr "" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" @@ -6777,22 +5233,21 @@ msgstr "" msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:218 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:224 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:241 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy -msgid "Error opening theme archive." -msgstr "Απέτυχε η αποθήκευση του προφίλ." - #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Κορυφαίοι δημοσιευτές" @@ -6802,40 +5257,21 @@ msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." +msgstr "Γίνε συνδρομητής αυτού του χρήστη" #: lib/unsilenceform.php:67 msgid "Unsilence" msgstr "" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." - -#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -msgid "Unsubscribe from this user" -msgstr "" - -#: lib/unsubscribeform.php:137 -msgid "Unsubscribe" -msgstr "" - -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "" +msgstr "Διαγράψτε αυτόν τον χρήστη" #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "" -#: lib/userprofile.php:234 lib/userprofile.php:248 -msgid "User actions" -msgstr "" - #: lib/userprofile.php:237 msgid "User deletion in progress..." msgstr "" @@ -6856,15 +5292,6 @@ msgstr "" msgid "Message" msgstr "Μήνυμα" -#: lib/userprofile.php:326 -msgid "Moderate" -msgstr "" - -#: lib/userprofile.php:364 -#, fuzzy -msgid "User role" -msgstr "Προφίλ χρήστη" - #: lib/userprofile.php:366 msgctxt "role" msgid "Administrator" @@ -6876,56 +5303,64 @@ msgid "Moderator" msgstr "Συντονιστής" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1103 msgid "a few seconds ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1106 msgid "about a minute ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1110 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1113 msgid "about an hour ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1117 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1120 msgid "about a day ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1124 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1127 msgid "about a month ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1131 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1134 msgid "about a year ago" msgstr "" @@ -6933,13 +5368,3 @@ msgstr "" #, php-format msgid "%s is not a valid color!" msgstr "Το %s δεν είναι ένα έγκυρο χρώμα!" - -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" - -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" diff --git a/locale/en/LC_MESSAGES/statusnet.po b/locale/en/LC_MESSAGES/statusnet.po index 61d902a1a9..0638f16cdf 100644 --- a/locale/en/LC_MESSAGES/statusnet.po +++ b/locale/en/LC_MESSAGES/statusnet.po @@ -15,7 +15,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title #. TRANS: Menu item for site administration diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index a8a11e4ba6..5978efd553 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -1,243 +1,311 @@ -# Translation of StatusNet to British English +# Translation of StatusNet - Core to British English (British English) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Bruce89 -# Author@translatewiki.net: CiaranG -# Author@translatewiki.net: Reedy +# Author: Brion +# Author: Bruce89 +# Author: CiaranG +# Author: Lcawte +# Author: Reedy # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:11:54+0000\n" -"Language-Team: British English\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:35+0000\n" +"Language-Team: British English <http://translatewiki.net/wiki/Portal:en-gb>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Access" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Site access settings" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registration" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Prohibit anonymous users (not logged in) from viewing site?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Private" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Make registration invitation only." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Invite only" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Disable new registrations." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Closed" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Save access settings" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Save" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "No such page." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No such user." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s and friends, page %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s and friends" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed for friends of %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed for friends of %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed for friends of %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "This is the timeline for %s and friends but no one has posted anything yet." -#: actions/all.php:143 -#, php-format -msgid "" -"Try subscribing to more people, [join a group](%%action.groups%%) or post " -"something yourself." -msgstr "" -"Try subscribing to more people, [join a group](%%action.groups%%) or post " -"something yourself." - -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. #: actions/all.php:146 -#, fuzzy, php-format +#, php-format +msgid "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." +msgstr "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." + +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Be the first to [post on this topic](%%%%action.newnotice%%%%?" -"status_textarea=%s)!" +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Why not [register an account](%%action.register%%) and be the first to add a " -"notice to your favourites!" +"Why not [register an account](%%%%action.register%%%%) and then nudge %s or " +"post a notice to them." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "You and friends" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Updates from %1$s and friends on %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API method not found." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "This method requires a POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -245,350 +313,530 @@ msgstr "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." -msgstr "Couldn't update user." +msgstr "Could not update user." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "User has no profile." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "Couldn't save profile." +msgstr "Could not save profile." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"The server was unable to handle that much POST data (%s bytes) due to its " +"current configuration." +msgstr[1] "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." -msgstr "Unable to save your design settings!" +msgstr "Unable to save your design settings." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Could not update your design." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s timeline" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s subscriptions" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favourites" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s group members" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "You cannot block yourself!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Block user failed." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Unblock user failed." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direct messages from %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "All the direct messages sent from %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direct messages to %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "All the direct messages sent to %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "No message text!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "That's too long. Max message size is %d chars." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "That's too long. Maximum message size is %d character." +msgstr[1] "That's too long. Maximum message size is %d characters." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Recipient user not found." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Can't send direct messages to users who aren't your friend." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Do not send a message to yourself; just say it to yourself quietly instead." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "No status found with that ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "This status is already a favourite." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Could not create favourite." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "That status is not a favourite." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Could not delete favourite." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Could not unfollow user: User not found." +msgstr "Could not follow user: profile not found." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Could not follow user: %s is already on your list." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Could not unfollow user: User not found." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "You cannot unfollow yourself." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." +msgstr "Two valid IDs or screen_names must be supplied." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Could not determine source user." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Could not find target user." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Nickname already in use. Try another one." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Not a valid nickname." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Homepage is not a valid URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Full name is too long (max 255 chars)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Description is too long (max %d chars)" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Description is too long (max %d chars)" +msgstr[1] "Description is too long (max %d chars)" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Location is too long (max 255 chars)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Too many aliases! Maximum %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Too many aliases! Maximum %d." +msgstr[1] "Too many aliases! Maximum %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Invalid alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" already in use. Try another one." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias can't be the same as nickname." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Group not found." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "You are already a member of that group." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "You have been blocked from that group by the admin." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Could not join user %1$s to group %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "You are not a member of this group." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Could not remove user %1$s to group %2$s." +msgstr "Could not remove user %1$s from group %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s's groups" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s groups %2$s is a member of." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s groups" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "groups on %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Upload file" +msgstr "Upload failed." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Invalid request token or verifier." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "No oauth_token parameter provided." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Invalid request token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "You are not authorised." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "There was a problem with your session token. Try again, please." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Invalid nickname / password!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Database error deleting OAuth application user." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Database error inserting OAuth application user." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"The request token %s has been authorised. Please exchange it for an access " -"token." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "The request token %s has been denied and revoked." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Unexpected form submission." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "An application would like to connect to your account" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Allow or deny access" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -599,240 +847,624 @@ msgstr "" "the ability to <strong>%3$s</strong> your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Account" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Nickname" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Password" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Deny" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancel" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Allow" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Authorise access to your account information." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Authorisation cancelled." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "The request token %s has been revoked." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "You have successfully authorised %s." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "You have successfully authorised %s." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "This method requires a POST or DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "You may not delete another user's status." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "No such notice." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Cannot repeat your own notice." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Already repeated that notice." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API method not found." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Unsupported format." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status deleted." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "No status with that ID found." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Can't delete this notice." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Delete notice" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "That's too long. Max notice size is %d chars." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "That's too long. Max notice size is %d chars." +msgstr[1] "That's too long. Max notice size is %d chars." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Not found." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API method not found." -#: actions/apistatusesupdate.php:306 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." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Max notice size is %d chars, including attachment URL." +msgstr[1] "Max notice size is %d chars, including attachment URL." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Unsupported format." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favourites from %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s updates favourited by %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Could not delete group %s." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Updates mentioning %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates that reply to updates from %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s public timeline" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates from everyone!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "showForm() not implemented." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repeated to %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repeats of %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notices tagged with %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates tagged with %1$s on %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Only the user can read their own mailboxes." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Find content of notices" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Notice with that id does not exist." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API method under construction." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API method not found." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "No such profile." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Couldn't insert new subscription." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Find content of notices" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Unknown" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Add to favourites" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "No such profile." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s group members" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Groups %s is a member of" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Unknown" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "All members" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "No such file." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Could not delete favourite." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "No such group." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "All members" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API method not found." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "No such profile." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "You are not subscribed to that profile." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Could not delete self-subscription." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "People subscribed to %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Unknown file type" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "No such attachment." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "No nickname." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "No size." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Invalid size." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "You can upload your personal avatar. The maximum file size is %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "User without matching profile." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar settings" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Preview" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Delete" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Upload" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Crop" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "No file uploaded." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Pick a square area of the image to be your avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Lost our file data." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar updated." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Failed updating avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar deleted." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "You already blocked that user." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Block user" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -844,175 +1476,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Do not block this user" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Yes" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Block this user" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Failed to save block information." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "No such group." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s blocked profiles" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blocked profiles, page %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "A list of the users blocked from joining this group." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Unblock user from group" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Unblock" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Unblock this user" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Post to %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "No confirmation code." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Confirmation code not found." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "That confirmation code is not for you!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Unrecognized address type %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "That address has already been confirmed." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Couldn't update user." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Couldn't delete e-mail confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Couldn't delete IM confirmation." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirm address" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "The address \"%s\" has been confirmed for your account." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversation" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notices" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "You must be logged in to delete an application." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Application not found." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "You are not the owner of this application." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "There was a problem with your session token." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Delete application" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1023,53 +1701,113 @@ msgstr "" "connections." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Do not delete this application" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Delete this application" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "You must be logged in to delete a group." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "No nickname or ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "You are not allowed to delete this group." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Could not delete group %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Deleted group %s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Delete group" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Do not delete this group" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Delete this group" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Not logged in." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Can't delete this notice." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" -"You are about to permanently delete a notice. Once this is done, it cannot " +"You are about to permanently delete a notice. Once this is done, it cannot " "be undone." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Delete notice" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Are you sure you want to delete this notice?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Do not delete this notice" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Delete this notice" @@ -1100,63 +1838,71 @@ msgstr "Delete this user" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Design" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Design settings for this StausNet site." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." -msgstr "nvalid logo URL." +msgstr "Invalid logo URL." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Invalid SSL logo URL." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Theme not available: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Change logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Site logo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Change theme" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Site theme" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Theme for the site." -#: actions/designadminpanel.php:467 -#, fuzzy +#: actions/designadminpanel.php:493 msgid "Custom theme" -msgstr "Site theme" +msgstr "Custom theme" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Change background image" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Background" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1166,75 +1912,84 @@ msgstr "" "$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "On" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Off" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Turn background image on or off." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Tile background image" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Change colours" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Content" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Sidebar" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Links" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Use defaults" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restore default designs" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Reset back to default" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Save" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Save design" @@ -1251,109 +2006,131 @@ msgstr "Add to favourites" msgid "No such document \"%s\"" msgstr "No such document \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Edit application" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "You must be logged in to edit an application." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "No such application." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Use this form to edit your application." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Name is required." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Name is too long (max 255 chars)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Name already in use. Try another one." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Description is required." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Source URL is too long." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Source URL is not valid." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisation is required." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Organisation is too long (max 255 chars)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Organisation homepage is required." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Callback is too long." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Callback URL is not valid." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Could not update application." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Edit %s group" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "You must be logged in to create a group." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "You must be an admin to edit the group." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Use this form to edit the group." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "description is too long (max %d chars)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Invalid alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Could not update group." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." -msgstr "Could not create aliases" +msgstr "Could not create aliases." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Options saved." @@ -1371,12 +2148,12 @@ msgstr "Manage how you get e-mail from %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-mail address" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Current confirmed e-mail address." @@ -1385,14 +2162,14 @@ msgstr "Current confirmed e-mail address." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Remove" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1400,25 +2177,19 @@ msgstr "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancel" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-mail address, like \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1426,110 +2197,117 @@ msgstr "Add" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Incoming e-mail" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "I want to post notices by e-mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Send e-mail to this address to post new notices." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Make a new e-mail address for posting to - cancels the old one." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "New" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Email preferences" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Send me notices of new subscriptions through e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Send me e-mail when someone adds my notice as a favourite." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Send me e-mail when someone sends me a private message." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Send me e-mail when someone sends me an \"@-reply\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Allow friends to nudge me and send me an e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "I want to post notices by e-mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publish a MicroID for my e-mail address." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "Email preferences saved." +msgstr "E-mail preferences saved." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "No e-mail address." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Cannot normalise that e-mail address" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Not a valid e-mail address." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "That is already your e-mail address." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "That e-mail address already belongs to another user." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Couldn't insert confirmation code." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1540,50 +2318,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "No pending confirmation to cancel." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." -msgstr "That is the wrong email address." +msgstr "That is the wrong e-mail address." + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Couldn't delete email confirmation." #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Email confirmation cancelled." +msgstr "E-mail confirmation cancelled." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "That is not your e-mail address." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "The email address was removed." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "No incoming e-mail address." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Couldn't update user record." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Incoming e-mail address removed." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "New incoming e-mail address added." @@ -1591,11 +2375,11 @@ msgstr "New incoming e-mail address added." msgid "This notice is already a favorite!" msgstr "This notice is already a favourite!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Disfavor favourite" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Popular notices" @@ -1632,7 +2416,7 @@ msgstr "" "notice to your favourites!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s's favourite notices" @@ -1679,7 +2463,7 @@ msgstr "Not expecting this response!" #: actions/finishremotesubscribe.php:80 msgid "User being listened to does not exist." -msgstr "User being listened to doesn't exist." +msgstr "User being listened to does not exist." #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" @@ -1695,13 +2479,13 @@ msgstr "You are not authorised." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." -msgstr "Couldn't convert request tokens to access tokens." +msgstr "Could not convert request token to access token." #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." msgstr "Remote service uses unknown version of OMB protocol." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Error updating remote profile." @@ -1729,19 +2513,23 @@ msgstr "You cannot grant user roles on this site." msgid "User already has this role." msgstr "User already has this role." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "No profile specified." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "No profile with that ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "No group specified." @@ -1758,7 +2546,7 @@ msgstr "User is already blocked from group." msgid "User is not a member of group." msgstr "User is not a member of group." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Block user from group" @@ -1770,7 +2558,7 @@ msgid "" "the group in the future." msgstr "" "Are you sure you want to block user \"%1$s\" from the group \"%2$s\"? They " -"will be removed from the group, unable to post and unable to subscribe to " +"will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." #. TRANS: Submit button title for 'No' when blocking a user from a group. @@ -1807,8 +2595,10 @@ msgstr "" "Customise the way your group looks with a background image and a colour " "palette of your choice." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Couldn't update your design." @@ -1827,6 +2617,14 @@ msgid "" msgstr "" "You can upload a logo image for your group. The maximum file size is %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Upload" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Crop" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Pick a square area of the image to be the logo." @@ -1839,48 +2637,55 @@ msgstr "Logo updated." msgid "Failed updating logo." msgstr "Failed updating logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s group members" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s group members, page %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "A list of the users in this group." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Block" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Make user an admin of the group" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Make admin" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Make this user an admin" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s timeline" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1953,15 +2758,18 @@ msgstr "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Only an admin can unblock group members." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "User is not blocked from group." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Error removing the block." @@ -2010,7 +2818,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2020,64 +2831,64 @@ msgstr "" "add %s to your buddy list in your IM client or on GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "IM preferences" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Send me notices through Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Post a notice when my Jabber/GTalk status changes." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Send me replies through Jabber/GTalk from people I'm not subscribed to." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publish a MicroID for my Jabber/GTalk address." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferences saved." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "No Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "Cannot normalise Jabber ID" +msgstr "Cannot normalize that Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Not a valid Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "That is already your Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID already belongs to another user." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2087,28 +2898,28 @@ msgstr "" "s for sending messages to you." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "That is the wrong IM address." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Couldn't delete IM confirmation." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "IM confirmation cancelled." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "That is not your Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "The IM address was removed." @@ -2126,51 +2937,81 @@ msgstr "Inbox for %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "This is your inbox, which lists your incoming private messages." -#: actions/invite.php:39 -#, fuzzy +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." -msgstr "Invitations enabled" +msgstr "Invites have been disabled." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "You must be logged in to invite other users to use %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Invalid e-mail address: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Invitation(s) sent" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invite new users" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "You are already subscribed to these users:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "You are already subscribed to these users:" +msgstr[1] "You are already subscribed to these users:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"These people are already users and you were automatically subscribed to them:" +msgstr[1] "" "These people are already users and you were automatically subscribed to them:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitation(s) sent to the following people:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitation(s) sent to the following people:" +msgstr[1] "Invitation(s) sent to the following people:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2178,42 +3019,53 @@ msgstr "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Use this form to invite your friends and colleagues to use this service." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-mail addresses" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Addresses of friends to invite (one per line)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Personal message" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Optionally add a personal message to the invitation." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Send" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s has invited you to join them on %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2274,13 +3126,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "You must be logged in to join a group." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "No nickname or ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s joined group %2$s" @@ -2289,17 +3135,121 @@ msgstr "%1$s joined group %2$s" msgid "You must be logged in to leave a group." msgstr "You must be logged in to leave a group." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "You are not a member of that group." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s left group %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Location is too long (max 255 chars)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Private" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Already logged in." @@ -2320,11 +3270,11 @@ msgstr "Login" msgid "Login to site" msgstr "Login to site" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Remember me" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Automatically login in the future; not for shared computers!" @@ -2353,7 +3303,7 @@ msgstr "" #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "Only and admin can make another user an admin." +msgstr "Only an admin can make another user an admin." #: actions/makeadmin.php:96 #, php-format @@ -2374,67 +3324,78 @@ msgstr "Can't make %1$s an admin for group %2$s." msgid "No current status." msgstr "No current status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "New Application" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "You must be logged in to register an application." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Use this form to register a new application." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Source URL is required." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Could not create application." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "New group" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Use this form to create a new group." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "New message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "You can't send a message to this user." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "No content!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "No recipient specified." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Don't send a message to yourself; just say it to yourself quietly instead." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Message sent" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." -msgstr "Could not create application." +msgstr "Direct message to %s sent." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax Error" @@ -2442,7 +3403,7 @@ msgstr "Ajax Error" msgid "New notice" msgstr "New notice" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Notice posted" @@ -2493,9 +3454,13 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Updates matching search term \"%1$s\" on %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" +"This user does not allow nudges or has not confirmed or set their e-mail " +"address yet." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2505,73 +3470,97 @@ msgstr "Nudge sent" msgid "Nudge sent!" msgstr "Nudge sent!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "You must be logged in to list your applications." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth applications" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Applications you have registered" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "You have not registered any applications yet." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Connected applications" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -#, fuzzy -msgid "You have allowed the following applications to access you account." -msgstr "You have not authorised any applications to use your account." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "You are not a user of that application." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Use this form to edit your application." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "You have not authorised any applications to use your account." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Notice has no profile." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s's status on %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Content type %s not supported." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -2583,37 +3572,46 @@ msgstr "People Search" msgid "Notice Search" msgstr "Notice Search" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Other settings" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Manage various other options." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Shorten URLs with" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Automatic shortening service to use." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "View profile designs" -#: actions/othersettings.php:123 -#, fuzzy +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." -msgstr "View profile designs" +msgstr "Show or hide profile designs." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL shortening service is too long (max 50 chars)." #: actions/otp.php:69 @@ -2675,7 +3673,7 @@ msgid "6 or more characters" msgstr "6 or more characters" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirm" @@ -2687,11 +3685,11 @@ msgstr "Same as password above" msgid "Change" msgstr "Change" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Password must be 6 or more characters." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Passwords don't match." @@ -2711,165 +3709,282 @@ msgstr "Can't save new password." msgid "Password saved." msgstr "Password saved." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -#, fuzzy -msgid "Path and server settings for this StatusNet site." -msgstr "Basic settings for this StatusNet site" +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Theme directory not readable: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Avatar directory not writable: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Background directory not writable: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Locales directory not readable: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Site" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Server" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Site path" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Locale Directory" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 #, fuzzy -msgid "Theme server" -msgstr "SSL server" +msgid "Server for themes." +msgstr "Server for themes" -#: actions/pathsadminpanel.php:268 -#, fuzzy -msgid "Theme path" -msgstr "Site path" - -#: actions/pathsadminpanel.php:272 -#, fuzzy -msgid "Theme directory" -msgstr "Avatar directory" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatars" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatar server" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avatar path" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatar directory" - -#: actions/pathsadminpanel.php:301 -#, fuzzy -msgid "Backgrounds" -msgstr "Background" - -#: actions/pathsadminpanel.php:305 -#, fuzzy -msgid "Background server" -msgstr "Background" - -#: actions/pathsadminpanel.php:309 -#, fuzzy -msgid "Background path" -msgstr "Background" - -#: actions/pathsadminpanel.php:313 -#, fuzzy -msgid "Background directory" -msgstr "Background directory not writable: %s." - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Never" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Sometimes" - -#: actions/pathsadminpanel.php:325 -msgid "Always" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:329 -#, fuzzy -msgid "Use SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL server" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL path" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Directory" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatars" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatar server" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Server for themes" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avatar path" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Failed updating avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatar directory" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Backgrounds" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Server for themes" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Attachments" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Server for themes" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "No attachments." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Server for themes" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Never" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Sometimes" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Use SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Save paths" @@ -2884,7 +3999,7 @@ msgstr "" #: actions/peoplesearch.php:58 msgid "People search" -msgstr "People Search" +msgstr "People search" #: actions/peopletag.php:68 #, php-format @@ -2903,140 +4018,185 @@ msgstr "Invalid notice content." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "Notice licence ‘1%$s’ is not compatible with site licence ‘%2$s’." +msgstr "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profile settings" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "You can update your personal profile info here so people know more about you." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profile information" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Full name" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Homepage" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL of your homepage, blog, or profile on another site" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Describe yourself and your interests in %d chars" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Describe yourself and your interests in %d chars" +msgstr[1] "Describe yourself and your interests in %d chars" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Describe yourself and your interests" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Bio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Location" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Where you are, like \"City, State (or Region), Country\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Language" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Preferred language" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Timezone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "In which timezone are you?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Bio is too long (max %d chars)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Bio is too long (max %d chars)." +msgstr[1] "Bio is too long (max %d chars)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Timezone not selected." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Language is too long (max 50 chars)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Invalid tag: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Couldn't update user for autosubscribe." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Couldn't save location prefs." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Couldn't save profile." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Couldn't save tags." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Settings saved." @@ -3071,24 +4231,24 @@ msgid "Public Stream Feed (Atom)" msgstr "Public Stream Feed (Atom)" #: actions/public.php:188 -#, fuzzy, php-format +#, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" -"This is the timeline for %s and friends but no one has posted anything yet." +"This is the public timeline for %%site.name%% but no one has posted anything " +"yet." #: actions/public.php:191 msgid "Be the first to post!" msgstr "" #: actions/public.php:195 -#, fuzzy, php-format +#, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -"Why not [register an account](%%action.register%%) and be the first to add a " -"notice to your favourites!" +"Why not [register an account](%%action.register%%) and be the first to post!" #: actions/public.php:242 #, php-format @@ -3114,34 +4274,47 @@ msgstr "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Public tag cloud" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "These are most popular recent tags on %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 -#, fuzzy, php-format +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 +#, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -"Why not [register an account](%%action.register%%) and be the first to add a " -"notice to your favourites!" +"Why not [register an account](%%action.register%%) and be the first to post " +"one!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Tag cloud" @@ -3171,7 +4344,7 @@ msgstr "This confirmation code is too old. Please start again." #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "Couldn't update user with confirmed e-mail address." +msgstr "Could not update user with confirmed e-mail address." #: actions/recoverpassword.php:152 msgid "" @@ -3186,9 +4359,8 @@ msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 -#, fuzzy msgid "Password recovery" -msgstr "Password recovery requested" +msgstr "Password recovery" #: actions/recoverpassword.php:191 msgid "Nickname or email address" @@ -3255,14 +4427,15 @@ msgid "Unexpected password reset." msgstr "Unexpected password reset." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Password must be 6 chars or more." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Password and confirmation do not match." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Error setting user." @@ -3270,7 +4443,7 @@ msgstr "Error setting user." msgid "New password successfully saved. You are now logged in." msgstr "New password successfully saved. You are now logged in." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Sorry, only invited people can register." @@ -3282,7 +4455,7 @@ msgstr "Sorry, invalid invitation code." msgid "Registration successful" msgstr "Registration successful" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Register" @@ -3290,73 +4463,77 @@ msgstr "Register" msgid "Registration not allowed." msgstr "Registration not allowed." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "You can't register if you don't agree to the licence." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "E-mail address already exists." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Invalid username or password." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 or more characters. Required." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Same as password above. Required." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Used only for updates, announcements, and password recovery" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Longer name, preferably your \"real\" name" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL of your homepage, blog, or profile on another site" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3365,7 +4542,7 @@ msgstr "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3398,7 +4575,7 @@ msgstr "" "\n" "Thanks for signing up and we hope you enjoy using this service." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3442,7 +4619,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL of your profile on another compatible microblogging service" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscribe" @@ -3478,7 +4655,7 @@ msgstr "You can't repeat your own notice." msgid "You already repeated that notice." msgstr "You already repeated that notice." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repeated" @@ -3487,7 +4664,7 @@ msgid "Repeated!" msgstr "Repeated!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Replies to %s" @@ -3510,14 +4687,16 @@ msgstr "Replies feed for %s (RSS 2.0)" #: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" -msgstr "Notice feed for %s" +msgstr "Replies feed for %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgstr "" +"This is the timeline showing replies to %1$s but %2$s has not received a " +"notice to them yet." #: actions/replies.php:204 #, php-format @@ -3527,13 +4706,13 @@ msgid "" msgstr "" #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Be the first to [post on this topic](%%%%action.newnotice%%%%?" -"status_textarea=%s)!" +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3562,14 +4741,13 @@ msgstr "User is already sandboxed." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 -#, fuzzy +#: lib/adminpanelaction.php:379 msgid "Sessions" -msgstr "Version" +msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3588,7 +4766,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Save site settings" @@ -3601,28 +4778,29 @@ msgid "Application profile" msgstr "Application profile" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Name" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organization" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistics" @@ -3633,18 +4811,21 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 -#, fuzzy msgid "Application actions" -msgstr "Application not found." +msgstr "Application actions" #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Delete" + #: actions/showapplication.php:261 -#, fuzzy msgid "Application info" -msgstr "Application not found." +msgstr "Application information" #: actions/showapplication.php:263 msgid "Consumer key" @@ -3688,17 +4869,17 @@ msgstr "Could not retrieve favourite notices." #: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Feed for friends of %s" +msgstr "Feed for favourites of %s (RSS 1.0)" #: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Feed for friends of %s" +msgstr "Feed for favourites of %s (RSS 2.0)" #: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Feed for friends of %s" +msgstr "Feed for favorites of %s (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3714,107 +4895,142 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" +"%s has not added any favourite notices yet. Post something interesting they " +"would add to their favourites." #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"Why not [register an account](%%action.register%%) and be the first to add a " -"notice to your favourites!" +"%s has not added any favourite notices yet. Why not [register an account](%%%" +"%action.register%%%%) and then post something interesting they would add to " +"their favourites." #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s group" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s group, page %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Group profile" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Note" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Group actions" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notice feed for %s group (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notice feed for %s group (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notice feed for %s group (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" -msgstr "Outbox for %s" +msgstr "FOAF for %s group" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Members" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(None)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "All members" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Created" -#: actions/showgroup.php:455 -#, 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. [Join now](%%%%action.register%%%%) to become part " -"of this group and many more! ([Read more](%%%%doc.help%%%%))" -msgstr "" -"**%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. [Join now](%%%%action.register%%%%) to become part " -"of this group and many more! ([Read more](%%%%doc.help%%%%))" - +#. TRANS: Label for member count in statistics on group page. #: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Members" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 +#, 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. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" +"**%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. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3827,24 +5043,31 @@ msgstr "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Admins" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "No such message." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Only the sender and recipient may read this message." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Message to %1$s on %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Message from %1$s on %2$s" @@ -3853,75 +5076,101 @@ msgstr "Message from %1$s on %2$s" msgid "Notice deleted." msgstr "Notice deleted." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " tagged %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, page %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Notices tagged with %1$s, page %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, page %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Notice feed for %1$s tagged %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Notice feed for %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Notice feed for %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Notice feed for %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF for %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "This is the timeline for %1$s but %2$s hasn't posted anything yet." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Be the first to [post on this topic](%%%%action.newnotice%%%%?" -"status_textarea=%s)!" +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." -#: actions/showstream.php:243 -#, fuzzy, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, 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. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"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. [Join now](%%action.register%%) to share notices about yourself with " -"friends, family, and colleagues! ([Read more](%%doc.help%%))" +"**%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. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3932,7 +5181,8 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repeat of %s" @@ -4007,9 +5257,8 @@ msgid "Local" msgstr "Local" #: actions/siteadminpanel.php:256 -#, fuzzy msgid "Default timezone" -msgstr "Default subscription" +msgstr "Default timezone" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." @@ -4043,31 +5292,38 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Site Notice" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Edit site-wide message" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Unable to save site notice." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Site notice text" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Save site notice" @@ -4226,7 +5482,7 @@ msgstr "No code entered" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4235,18 +5491,16 @@ msgid "Manage snapshot configuration" msgstr "Manage snapshot configuration" #: actions/snapshotadminpanel.php:127 -#, fuzzy msgid "Invalid snapshot run value." -msgstr "Invalid role." +msgstr "Invalid snapshot run value." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 -#, fuzzy msgid "Invalid snapshot report URL." -msgstr "nvalid logo URL." +msgstr "Invalid snapshot report URL." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4257,9 +5511,8 @@ msgid "In a scheduled job" msgstr "" #: actions/snapshotadminpanel.php:206 -#, fuzzy msgid "Data snapshots" -msgstr "Save snapshot settings" +msgstr "Data snapshots" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" @@ -4274,9 +5527,8 @@ msgid "Snapshots will be sent once every N web hits" msgstr "" #: actions/snapshotadminpanel.php:226 -#, fuzzy msgid "Report URL" -msgstr "Source URL" +msgstr "Report URL" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" @@ -4286,12 +5538,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Save snapshot settings" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "You are not subscribed to that profile." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Could not save subscription." @@ -4299,10 +5553,6 @@ msgstr "Could not save subscription." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "No such profile." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4311,67 +5561,89 @@ msgstr "You cannot subscribe to an OMB 0.1 remote profile with this action." msgid "Subscribed" msgstr "Subscribed" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s subscribers" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s subscribers, page %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "These are the people who listen to your notices." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "These are the people who listen to %s's notices." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "You have no subscribers. Try subscribing to people you know and they might " "return the favour" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 -#, fuzzy, php-format +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -"Why not [register an account](%%action.register%%) and be the first to add a " -"notice to your favourites!" +"%s has no subscribers. Why not [register an account](%%%%action.register%%%" +"%) and be the first?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s subscriptions" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s subscriptions, page %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "These are the people whose notices you listen to." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "These are the people whose notices %s listens to." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4381,16 +5653,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s is not listening to anyone." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Notice feed for %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4428,7 +5711,7 @@ msgid "User profile" msgstr "User profile" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Photo" @@ -4490,77 +5773,95 @@ msgstr "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "User" -#: actions/useradminpanel.php:70 -#, fuzzy -msgid "User settings for this StatusNet site." -msgstr "Design settings for this StausNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profile" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "New users" -#: actions/useradminpanel.php:235 -#, fuzzy -msgid "New user welcome" -msgstr "New users" - +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -#, fuzzy -msgid "Welcome text for new users (Max 255 chars)." -msgstr "Name is too long (max 255 chars)." +msgid "New user welcome" +msgstr "New user welcome" -#: actions/useradminpanel.php:241 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Welcome text for new users (maximum 255 characters)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Default subscription" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Automatically subscribe new users to this user." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitations" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Invitations enabled" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Authorise subscription" @@ -4575,7 +5876,9 @@ msgstr "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "License" @@ -4649,9 +5952,9 @@ msgid "Profile URL ‘%s’ is for a local user." msgstr "" #: actions/userauthorization.php:345 -#, fuzzy, php-format +#, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "Callback URL is not valid." +msgstr "Avatar URL ‘%s’ is not valid." #: actions/userauthorization.php:350 #, php-format @@ -4663,11 +5966,13 @@ msgstr "Can’t read avatar URL ‘%s’." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Wrong image type for avatar URL ‘%s’." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Profile design" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4705,7 +6010,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Updates from %1$s on %2$s!" @@ -4723,9 +6028,8 @@ msgid "" msgstr "" #: actions/version.php:163 -#, fuzzy msgid "Contributors" -msgstr "Connections" +msgstr "Contributors" #: actions/version.php:170 msgid "" @@ -4757,7 +6061,7 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" -"You should have received a copy of the GNU Affero General Public Licence " +"You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." #: actions/version.php:191 @@ -4765,7 +6069,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Version" @@ -4773,61 +6077,107 @@ msgstr "Version" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Favour" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s marked notice %2$s as a favourite." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Invalid size." +msgstr "Invalid filename." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Group join failed." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Not part of group." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Group leave failed." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Group ID %s is invalid." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Join" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4846,17 +6196,17 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "You are banned from sending direct messages." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Could not insert message." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Could not update message with new URI." @@ -4868,30 +6218,30 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Database error inserting hashtag: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problem saving notice. Too long." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problem saving notice. Unknown user." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Too many notices too fast; take a breather and post again in a few minutes." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4900,355 +6250,404 @@ msgstr "" "few minutes." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "You are banned from posting notices on this site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problem saving notice." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problem saving group inbox." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Could not save reply for %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "User has no profile." +msgstr "Missing profile." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Unable to save site notice." +msgstr "Unable to save tag." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "You have been banned from subscribing." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -#, fuzzy +#: classes/Subscription.php:82 msgid "Already subscribed!" -msgstr "Not subscribed!" +msgstr "Already subscribed!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "User has blocked you." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Not subscribed!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Could not save subscription." +msgstr "Could not delete self-subscription." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Could not save subscription." +msgstr "Could not delete subscription OMB token." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Could not save subscription." +msgstr "Could not delete subscription." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s is now following %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Could not create group." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Could not set group URI." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Could not set group membership." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Could not save local group info." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Change your profile settings" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Upload an avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Change your password" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Change e-mail handling" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Design your profile" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Other options" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Other" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Untitled page" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Primary site navigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personal profile and friends timeline" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Change your email, avatar, password, profile" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Account" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connect to services" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Connect" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Change site configuration" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invite friends and colleagues to join you on %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Invite" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logout from the site" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Logout" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Create an account" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Register" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Login to the site" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Login" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Help" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Search for people or text" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Search" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Site notice" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Local views" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Page notice" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Secondary site navigation" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Help" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "About" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "F.A.Q." #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacy" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Source" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contact" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Badge" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet software licence" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5258,13 +6657,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** is a microblogging service." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5276,346 +6678,450 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" -msgstr "Site content license" +msgstr "Site content licence" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "All %1$s content and data are available under the %2$s licence." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Pagination" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "After" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Before" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Photo" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "You cannot make changes to this site." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Changes to that panel are not allowed." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() not implemented." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() not implemented." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Unable to delete design setting." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Basic site configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Design configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "User configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "User" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Access configuration" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Paths configuration" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Sessions configuration" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Edit site notice" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Snapshots configuration" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 #, fuzzy -msgid "Edit application" -msgstr "Edit Application" +msgid "Could not create anonymous consumer." +msgstr "Could not create aliases." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Could not create application." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Could not insert message." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Database error inserting OAuth application user." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 -#, fuzzy +#: lib/applicationeditform.php:178 msgid "Icon for this application" -msgstr "Do not delete this application" +msgstr "Icon for this application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Describe your application in %d characters" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Describe your application in %d character" +msgstr[1] "Describe your application in %d characters" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Describe your application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL of the homepage of this application" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Source URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organisation responsible for this application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL for the homepage of the organisation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancel" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revoke" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -#, fuzzy -msgid "Attachments" -msgstr "No attachments." +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 -#, fuzzy +#: lib/attachmentlist.php:294 msgid "Author" -msgstr "Authorise URL" +msgstr "Author" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Provider" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 -#, fuzzy msgid "Tags for this attachment" -msgstr "No such attachment." +msgstr "Tags for this attachment" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Password changing failed." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Password changing is not allowed." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Block" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Command results" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "AJAX error" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Command complete" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Command failed" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Notice with that id does not exist." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "User has no last notice." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." +msgstr "Could not find a user with nickname %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Could not find a local user with nickname %s" +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Sorry, this command is not yet implemented." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Nudge sent to %s" +msgid "Nudge sent to %s." +msgstr "Nudge sent to %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5623,199 +7129,238 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Notice marked as fave." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "You are already a member of that group." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Could not join user %1$s to group %2$s." +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Could not remove user %1$s to group %2$s" +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Fullname: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Location: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "About: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Message too long - maximum is %1$d characters, you sent %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[1] "Message too long - maximum is %1$d characters, you sent %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direct message to %s sent" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Error sending direct message." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Cannot repeat your own notice." - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Already repeated that notice." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Notice from %s repeated" +msgid "Notice from %s repeated." +msgstr "Notice from %s repeated." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Error repeating notice." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Notice too long - maximum is %d characters, you sent %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[1] "Notice too long - maximum is %1$d characters, you sent %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Reply to %s sent" +msgid "Reply to %s sent." +msgstr "Reply to %s sent." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Error saving notice." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Specify the name of the user to subscribe to." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Can't subscribe to OMB profiles by command." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subscribed to %s" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Specify the name of the user to unsubscribe from." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Unsubscribed from %s" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Command not yet implemented." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notification off." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Can't turn off notification." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notification on." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Can't turn on notification." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Unsubscribed %s" +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "You are not subscribed to anyone." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "You are already subscribed to these users:" -msgstr[1] "You are already subscribed to these users:" +msgstr[0] "You are subscribed to this person:" +msgstr[1] "You are subscribed to these people:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "No one is subscribed to you." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Could not subscribe other to you." -msgstr[1] "Could not subscribe other to you." +msgstr[0] "This person is subscribed to you:" +msgstr[1] "These people are subscribed to you:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "You are not a member of any groups." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "You are not a member of that group." -msgstr[1] "You are not a member of that group." +msgstr[0] "You are a member of this group:" +msgstr[1] "You are a member of these groups:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5895,92 +7440,134 @@ msgstr "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "No configuration file found" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "No configuration file found. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Invitation(s) sent to the following people:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Go to the installer." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" -msgstr "I.M." +msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" -msgstr "Updates by instant messenger (I.M.)" +msgstr "Updates by instant messenger (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Updates by SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Connections" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Authorised connected applications" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Upload file" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" "You can upload your personal background image. The maximum file size is 2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 #, fuzzy -msgid "Design defaults restored." -msgstr "Design preferences saved." +msgctxt "RADIO" +msgid "On" +msgstr "On" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Off" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reset" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +msgid "Design defaults restored." +msgstr "Design defaults restored." + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Disfavour this notice" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Favour this notice" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Favour" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6011,8 +7598,13 @@ msgstr "Go" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL of the homepage or blog of the group or topic" #: lib/groupeditform.php:168 @@ -6020,62 +7612,115 @@ msgid "Describe the group or topic" msgstr "Describe the group or topic" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Describe the group or topic in %d characters" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Describe the group or topic in %d characters" +msgstr[1] "Describe the group or topic in %d characters" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Location for the group, if any, like \"City, State (or Region), Country\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "Group" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Blocked" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s blocked users" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "Edit %s group properties" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Logo" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Add or edit %s logo" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format -msgid "Add or edit %s design" -msgstr "Add or edit %s design" +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Groups with most members" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Groups with most posts" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Tags in %s group's notices" @@ -6089,38 +7734,57 @@ msgstr "This page is not available in a media type you accept" msgid "Unsupported image file format." msgstr "Unsupported image file format." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "That file is too big. The maximum file size is %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Partial upload." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "System error uploading file." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Not an image or corrupt file." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Lost our file." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Unknown file type" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6132,10 +7796,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "Join" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Leave" @@ -6148,45 +7808,54 @@ msgstr "Login with a username and password" msgid "Sign up for a new account" msgstr "Sign up for a new account" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "E-mail address confirmation" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s is now listening to your notices on %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6194,10 +7863,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6210,21 +7879,25 @@ msgstr "" "----\n" "Change your email address or notification options at %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "New e-mail address for posting to %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6233,7 +7906,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "You have a new posting address on %1$s.\n" "\n" @@ -6244,31 +7917,36 @@ msgstr "" "Faithfully yours,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS confirmation" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: confirm you own this phone number with this code:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "You've been nudged by %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6284,14 +7962,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "New private message from %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6310,14 +7992,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) added your notice as a favorite" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6339,7 +8026,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6347,13 +8034,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, fuzzy, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s (@%s) sent a notice to your attention" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6390,7 +8084,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "from" @@ -6410,157 +8104,210 @@ msgstr "Sorry, that is not your incoming e-mail address." msgid "Sorry, no incoming email allowed." msgstr "Sorry, no incoming e-mail allowed." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Unsupported message type: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Could not determine file's MIME type." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Send a direct notice" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Select a carrier" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Not subscribed!" + +#: lib/messageform.php:153 msgid "To" msgstr "To" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Available characters" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Send" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Nickname must have only lowercase letters and numbers, and no spaces." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send a notice" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "What's up, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Share my location" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Do not share my location" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "in context" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repeated by" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Notice repeated" @@ -6576,55 +8323,52 @@ msgstr "Nudge" msgid "Send a nudge to this user" msgstr "Send a nudge to this user" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Error inserting new profile." +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Error inserting avatar." +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Error updating remote profile." +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Error inserting remote profile." +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicate notice" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Couldn't insert new subscription." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Replies" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favourites" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Inbox" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Your incoming messages" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Outbox" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Your sent messages" @@ -6633,7 +8377,8 @@ msgstr "Your sent messages" msgid "Tags in %s's notices" msgstr "Tags in %s's notices" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Unknown" @@ -6715,9 +8460,11 @@ msgstr "Repeat this notice" msgid "Revoke the \"%s\" role from this user" msgstr "Revoke the \"%s\" role from this user" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API method not found." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6727,19 +8474,25 @@ msgstr "Sandbox" msgid "Sandbox this user" msgstr "Sandbox this user" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Search site" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Search" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Search help" @@ -6813,6 +8566,12 @@ msgstr "" msgid "None" msgstr "None" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Invalid filename." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6822,58 +8581,68 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." -msgstr "Failed updating avatar." +msgstr "Failed saving theme." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Error updating remote profile." +msgstr "Error opening theme archive." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Top posters" -#: lib/unsandboxform.php:69 +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 #, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Unblock" + +#: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "Sandbox" +msgstr "Unsandbox" #: lib/unsandboxform.php:80 msgid "Unsandbox this user" msgstr "Unsandbox this user" #: lib/unsilenceform.php:67 -#, fuzzy msgid "Unsilence" -msgstr "Silence" +msgstr "Unsilence" #: lib/unsilenceform.php:78 msgid "Unsilence this user" @@ -6887,122 +8656,174 @@ msgstr "Unsubscribe from this user" msgid "Unsubscribe" msgstr "Unsubscribe" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." +msgstr "User %1$s (%2$d) has no profile record." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Edit Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "User actions" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Edit profile settings" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Edit" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Send a direct message to this user" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Message" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderate" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "User role" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "a few seconds ago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "about a minute ago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "about %d minutes ago" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "about an hour ago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "about %d hours ago" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "about a day ago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "about %d days ago" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "about a month ago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "about %d months ago" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "about a year ago" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s is not a valid colour!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "%s is not a valid colour! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s is not a valid colour! Use 3 or 6 hex characters." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[1] "Message too long - maximum is %1$d characters, you sent %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Invalid size." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "No user specified; using backup user." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/eo/LC_MESSAGES/statusnet.po b/locale/eo/LC_MESSAGES/statusnet.po index 5835365c99..2b7e513e4b 100644 --- a/locale/eo/LC_MESSAGES/statusnet.po +++ b/locale/eo/LC_MESSAGES/statusnet.po @@ -1,174 +1,219 @@ -# Translation of StatusNet to Esperanto +# Translation of StatusNet - Core to Esperanto (Esperanto) +# Expored from translatewiki.net # -# Author@translatewiki.net: AVRS -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Ianmcorvidae -# Author@translatewiki.net: Kris10 -# Author@translatewiki.net: LyzTyphone +# Author: AVRS +# Author: Brion +# Author: Eliovir +# Author: Ianmcorvidae +# Author: Kris10 +# Author: LyzTyphone +# Author: Petrus Adamus +# Author: Yekrats # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:48+0000\n" -"PO-Revision-Date: 2010-08-11 10:49:34+0000\n" -"Language-Team: Esperanto\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:36+0000\n" +"Language-Team: Esperanto <http://translatewiki.net/wiki/Portal:eo>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: eo\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Atingo" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Retejo-atinga agordo" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrado" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Ĉu malpermesi al anonimaj uzantoj (ne ensalutintaj) vidi retejon?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "Nepublika" +msgstr "Privata" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Permesi registriĝon nur perinvitan." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Nur per invito" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Malpermesi novan registriĝon." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Fermita" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Konservu atingan agordon" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Konservu" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Ne estas tiu paĝo." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ne ekzistas tiu uzanto." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s kaj amikoj, paĝo %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s kaj amikoj" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fluo por amikoj de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fluo por amikoj de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fluo por amikoj de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Tie ĉi estas la tempstrio de %s kaj amikoj sed ankoraŭ neniu afiŝis ion ajn." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"Provu aboni pli da homoj, [aniĝu al grupo] (%%action.groups%%) aŭ afiŝu ion " +"Provu aboni pli da homoj, [aniĝu al grupo](%%action.groups%%) aŭ afiŝu ion " "vi mem." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -177,68 +222,93 @@ msgstr "" "Vi povas provi [puŝeti %1$s](../%2$s) de lia profilo aŭ [afiŝi ion al li](%%" "%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Kial ne [krei konton]](%%%%action.register%%%%) kaj poste puŝeti %s aŭ afiŝi " +"Kial ne [krei konton](%%%%action.register%%%%) kaj poste puŝeti %s aŭ afiŝi " "avizon al li?" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Vi kaj amikoj" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Ĝisdatiĝoj de %1$s kaj amikoj ĉe %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Metodo de API ne troviĝas." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Ĉi tiu metodo bezonas POST-on." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -246,347 +316,530 @@ msgstr "" "Vi devas specifi parametron nomitan 'device' kun valoro de interalie: 'sms', " "'im', 'none'." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Malsukcesis ĝisdatigi uzanton" -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "La uzanto ne havas profilon." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Malsukcesis konservi la profilon." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"La servilo ne povis trakti tiom da POST-datumo (% bajtoj) pro ĝia nuna " +"agordo." +msgstr[1] "" "La servilo ne povis trakti tiom da POST-datumo (% bajtoj) pro ĝia nuna " "agordo." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Malsukcesis konservi vian desegnan agordon" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Malsukcesis ĝisdatigi vian desegnon." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Tempstrio de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s abonatoj" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Ŝatolisto" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s grupanoj" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Vi ne povas bloki vin mem!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Ne sukcesis bloki uzanton." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Ne sukcesis malbloki uzanton." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Rektaj mesaĝoj de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Ĉiuj rektaj mesaĝoj senditaj de %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Rektaj mesaĝoj al %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Ĉiuj rektaj mesaĝoj senditaj al %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Sen mesaĝteksto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Tro longas. Mesaĝa longlimo estas %d signoj." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Tro longas. Mesaĝa longlimo estas %d signoj." +msgstr[1] "Tro longas. Mesaĝa longlimo estas %d signoj." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Ricevonta uzanto ne troviĝas." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Vi ne povas sendi rektan mesaĝon al uzanto kiu ne estas via amiko." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Ne sendu mesaĝon al vi mem! Simple suspiru anstataŭ." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Stato kun tiu ID ne trovitas." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Ĉi tiu stato jam estas ŝatata." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Malsukcesis krei ŝataton." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "La stato ne estas ŝatata." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Malsukcesis forigi ŝataton." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Malsukcesis aboni uzanton: profilo ne troviĝas." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Ne povas aboni uzanton: %s estas jam en via listo." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Ne povas malaboni uzanton. Uzanto ne troviĝas." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Vi ne povas malaboni vin mem." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "Du uzantajn IDojn aŭ montronomojn vi devas specifi." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr " Malsukcesis certigi fontan uzanton." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Malsukcesis trovi celan uzanton." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Kromnomo devas havi nur minuskulajn literojn kaj numerojn sed neniun spacon." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "La uzantnomo jam uziĝis. Provu ion alian." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ne valida kromnomo." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Ĉefpaĝo ne estas valida URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Plennomo estas tro longa (maksimume 255 literoj)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Priskribo estas tro longa (maksimume %d signoj)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Priskribo estas tro longa (maksimume %d signoj)." +msgstr[1] "Priskribo estas tro longa (maksimume %d signoj)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "lokonomo estas tro longa (maksimume 255 literoj)" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Tro da alinomoj! Maksimume %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Tro da alinomoj! Maksimume %d." +msgstr[1] "Tro da alinomoj! Maksimume %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "La alinomo estas nevalida: \"%*s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "La alinomo \"%s\" estas jam okupita. Provu ion alian." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "La alinomo devas ne esti sama al la kromnomo." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Grupo ne troviĝas." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Vi estas jam grupano." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "La administranto blokis vin de tiu grupo." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "La uzanto %1$*s ne povas aliĝi al la grupo %2$*s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Vi ne estas grupano." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Malsukcesis forigi uzanton %1$s de grupo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grupoj de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Grupoj de %2$s ĉe %1$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Grupoj de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupoj ĉe %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Malsukcesis alŝuti" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Malvalida peto-ĵetono aŭ verigilo." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Ne oauth_token parametro provizita." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Nevalida ĵetono" +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Nevalida peto-ĵetono." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Vi ne estas rajtigita." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Estis problemo pri via seanco. Bonvolu provi refoje." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nevalida kromnomo / pasvorto!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Datumbaza eraro forigi la uzanton de *OAuth-aplikaĵo." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Datumbaza eraro enigi la uzanton de *OAuth-aplikaĵo." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"La demanda ĵetono %s estis rajtigita. Bonvolu interŝanĝi ĝin por atinga " -"ĵetono." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "La demanda token %s estis neita kaj revokita." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Neatendita formo-sendo." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Aplikaĵo volas konekti al via konto" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permesi aŭ malpermesi atingon" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"La aplikaĵo <strong>%1$s</strong> de <strong>%2$s</strong> volas la kapablon " +"<strong>%3$s</strong> vian %4$s kontdatumon. Vi devas doni atingon nur al " +"via %4$s konto al triaj partioj, kiujn vi fidas." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -597,240 +850,628 @@ msgstr "" "<strong>%3$s</strong> vian %4$s kontdatumon. Vi devas doni atingon nur al " "via %4$s konto al triaj partioj, kiujn vi fidas." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Kromnomo" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Pasvorto" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Malpermesi" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Nuligi" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Permesi" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Permesi aŭ malpermesi atingon al via kontdatumo." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Permesi atingon al viaj kontdatenoj." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Rajtigo nuliĝis." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "La peto-ĵetono %s estis eksvalidigita." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Vi sukcese rajtigis %s." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +#, fuzzy +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Bonvolu reiri al %s kaj enigu la jenan sekureco-kodo por plenumi la procezon." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Vi sukcese rajtigis %s." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Bonvolu reiri al %s kaj enigu la jenan sekureco-kodo por plenumi la procezon." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Ĉi tiu metodo bezonas POST aǔ DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Vi ne povas forigi la staton de alia uzanto." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ne estas tiu avizo." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Vi ne povas ripeti vian propran avizon." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "La avizo jam ripetiĝis." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Metodo de API ne troviĝas." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato ne subtenata." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Stato forigita." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Neniu stato kun tiu ID troviĝas." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Ne povas forigi ĉi tiun avizon." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Forigi avizon" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Kliento devas providi al \"stato\"-parametro valoron." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Tro longas. Aviza longlimo estas %*d signoj." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Tro longas. Longlimo por avizo estas %d signoj." +msgstr[1] "Tro longas. Longlimo por avizo estas %d signoj." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Ne troviĝas." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Metodo de API ne troviĝas." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "Aviza longlimo estas %d signoj, enkalkulante ankaŭ la retadresojn." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Longlimo por avizo estas %d signoj, enkalkulante ankaŭ la retadresojn." +msgstr[1] "" +"Longlimo por avizo estas %d signoj, enkalkulante ankaŭ la retadresojn." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato ne subtenata." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$*s / Ŝatato de %2$*s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$*s ĝisdatigoj ŝatataj de %2$*s / %2$*s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Malsukcesis ĝisdatigi grupon." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Ĝisdatigoj kiuj mencias %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s ĝisdatigoj kiuj respondas al ĝisdatigoj de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s publika tempstrio" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s ĝisdatigoj de ĉiuj!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Nerealiĝita metodo" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Ripetita al %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Ripetoj de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avizoj etikeditaj %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Ĝisdatigoj etikeditaj %1$s ĉe %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Nur uzanto povas legi sian propran paŝton." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Serĉi enhavon ĉe la retejo" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Avizo kun tiu identigaĵo ne ekzistas." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-metodo farata." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Metodo de API ne troviĝas." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ne ekzistas tia profilo." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Eraris enmeti novan abonon." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Serĉi enhavon ĉe la retejo" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Nekonata" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Aldoni al ŝatolisto" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Ne ekzistas tia profilo." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s grupanoj" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupoj de %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Nekonata" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Ĉiuj grupanoj" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ne ekzistas tia dosiero." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Malsukcesis forigi ŝataton." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Ne estas tiu grupo." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Ĉiuj grupanoj" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Metodo de API ne troviĝas." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ne ekzistas tia profilo." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Vi ne abonis tiun profilon." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Ne eblas forigi abonon al vi mem." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Abonantoj de %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Nekonata dosiertipo" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ne estas tiu aldonaĵo." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Neniu kromnomo." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr " Neniu grando." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Grando nevalida." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Vizaĝbildo" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Vi povas alŝuti vian personan vizaĝbildon. Dosiero-grandlimo estas %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Uzanto sen egala profilo." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Vizaĝbilda agordo" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Originala" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Antaŭrigardo" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Forigi" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Alŝuti" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Tranĉi" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Neniu dosiero alŝutiĝas." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Elektu kvadratan parton de la bildo kiel via vizaĝbildo" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perdiĝis nia dosiera datumo." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Vizaĝbildo ĝisdatigita." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Eraris ĝisdatigi vizaĝbildon." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Vizaĝbildo forigita." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Vi jam blokis la uzanton." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloki uzanton" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -841,175 +1482,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Ne" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Ne bloki la uzanton" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Jes" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloki la uzanton" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Eraris konservi blokado-informon." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Ne estas tiu grupo." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s profiloj blokitaj" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profiloj blokitaj, paĝo %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Listo de uzantoj blokita de aniĝi al ĉi tiun grupo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Malbloki uzanton de grupo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Malbloki" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Malbloki ĉi tiun uzanton" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Sendi al %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Neniu konfirma kodo." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Konfirma kodo ne trovitas." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Tiu komfirmnumero ne estas por vi!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Nerekonata adrestipo %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "La adreso jam estis konfirmita." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Ne povus ĝisdatigi uzanton." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Ne povas forigi retpoŝtan konfirmon." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Malsukcesis forigi tujmesaĝila agordo." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Konfirmi retadreson" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adreso \"%s\" nun konfirmitas je via konto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Konversacio" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avizoj" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Ensalutu por forigi la aplikaĵon." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Aplikaĵo ne trovita." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Vi ne estas la posedanto de ĉi tiu aplikaĵo." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Problemo okazas pri via seancĵetono." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Forigi aplikaĵon" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1019,52 +1706,117 @@ msgstr "" "la datumbazo, inkluzive de ĉiu ekzistanta uzanto-konekto." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Ne forigu ĉi tiun aplikaĵon." #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Viŝi ĉi tiun aplikon" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Ensalutu por eksaniĝi." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Ne estas alinomo aŭ ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Vi ne estas grupano." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Malsukcesis ĝisdatigi grupon." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s eksaniĝis de grupo %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Forigi uzanton" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Ĉu vi certe volas forigi la uzanton? Ĉiu datumo pri la uzanto viŝiĝos de la " +"datumbazo sen sekurkopio." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Ne forigi la avizon" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Forigi la uzanton" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ne konektita." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Ne povas forigi ĉi tiun avizon." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" "Vi nun por ĉiam forigos avizon. Kiam tio fariĝos, ne plu eblos malfari tion." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Forigi avizon" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Ĉu vi certe volas forigi la avizon?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Ne forigi la avizon" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Forigi la avizon" @@ -1095,62 +1847,73 @@ msgstr "Forigi la uzanton" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Aspekto" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Aspektaj agordoj por ĉi tiu StatusNet-retejo." +msgid "Design settings for this StatusNet site" +msgstr "Desegna agordo por ĉi tiu StatusNet-retejo" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL por la emblemo nevalida." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL por la emblemo nevalida." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Desegno ne havebla: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Ŝanĝi emblemon" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Reteja emblemo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Reteja emblemo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Ŝanĝi desegnon" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Reteja desegno" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Desegno por la retejo" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Propra desegno" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Vi povas alŝuti propran StatusNet-desegnon kiel .zip-dosiero" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Ŝanĝi fonbildon" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fono" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1158,75 +1921,84 @@ msgid "" msgstr "Vi povas alŝuti fonbildon por la retejo. Dosiero-grandlimo estas %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "En" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "For" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Aktivigi aŭ senaktivigi fonbildon" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Ripeti la fonbildon" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Ŝanĝi kolorojn" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Enhavo" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Flanka strio" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Teksto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Ligiloj" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Speciala" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Propra CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Uzu defaŭlton" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaŭri defaŭltajn desegnojn" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Redefaŭltiĝi" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Konservi" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Savi desegnon" @@ -1243,109 +2015,131 @@ msgstr "Aldoni al ŝatolisto" msgid "No such document \"%s\"" msgstr "Ne estas tia dokumento \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Redakti Aplikon" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Redakti aplikaĵon" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Ensalutu por redakti la aplikaĵon." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Ne estas tia aplikaĵo." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Uzu ĉi tiun formularon por redakti vian aplikaĵon." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Nomo necesas." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "La nomo estas tro longa (maksimume 255 literoj)" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "La nomo jam uziĝis. Provu ion alian." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Priskribo necesas." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Fonta URL estas tro longa." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Fonta URL estas nevalida." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organizo necesas." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Organizonomo estas tro longa (maksimume 255 literoj)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Organiza ĉefpaĝo bezoniĝas." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Revokfunkcio estas tro longa." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Revokfunkcia URL estas nevalida." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Malsukcesis ĝisdatigi la aplikaĵon." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Redakti %s grupon" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Ensalutu por krei grupon." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Vi devas esti administranto por redakti la grupon." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Uzas ĉi tiun formularon por redakti la grupon." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Priskribo estas tro longa (maksimume %d signoj)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Nevalida alinomo: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Malsukcesis ĝisdatigi grupon." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Malsukcesis krei alinomon." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Elektoj konserviĝis." @@ -1363,12 +2157,12 @@ msgstr "Administri kiel ricevi mesaĝon de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Retpoŝtadreso" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Nuna konfirmita retpoŝtadreso." @@ -1377,14 +2171,14 @@ msgstr "Nuna konfirmita retpoŝtadreso." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Forigi" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1392,25 +2186,19 @@ msgstr "" "Atendanta konfirmon pri ĉi tiu adreso. Kontrolu vian alvenkeston (kaj " "spamkeston!) pri mesaĝo kun plua instrukcio." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Nuligi" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Retpoŝtadreso, ekzemple \"ViaNomo@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1418,110 +2206,117 @@ msgstr "Aldoni" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Alveninta poŝto" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Mi volas afiŝi avizon per retpoŝto." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Sendu mesaĝon al la adreso por afiŝi novan avizon." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Krei novan retpoŝtadreson por afiŝado kaj nuligi la antaŭan." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nova" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Retpoŝta agordo." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Sendu al mi avizon pri nova abonado per retpoŝto." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Sendu al mi mesaĝon tiam, kiam iu ŝatas mian avizon ." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Sendu al mi mesaĝon tiam, kiam iu sendas al mi privatan mesaĝon." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Sendu al mi mesaĝon tiam, kiam iu sendas al mi \"@-respondon\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Permesi al amikoj puŝeti min kaj sendi al mi retpoŝtan mesaĝon." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Mi volas afiŝi avizon per retpoŝto." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publikigi MikroID por mia retpoŝtadreso." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Retpoŝta prefero konserviĝis." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Neniu retpoŝta adreso." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Malsukcesis normigi tiun retpoŝtadreson" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Retpoŝta adreso ne valida" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Tiu jam estas via retpoŝtadreso." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Tiu retpoŝtadreso jam apartenas al alia uzanto." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Malsukcesis enmeti konfirmkodon." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1532,50 +2327,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ne estas peto-konfirmo por nuligi." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Tiu retpoŝtadreso estas malĝusta." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Ne povas forigi retpoŝtan konfirmon." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Retpoŝta konfirmo nuligita." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Tiu ne estas via retpoŝtadreso." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "La retpoŝtadreso estas forigita." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ne estas alvena retpoŝtadreso" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Malsukcesis ĝisdatigi uzantan informon." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Alvena retpoŝtadreso forigita." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nova alvena retpoŝtadreso aldonita." @@ -1583,19 +2384,19 @@ msgstr "Nova alvena retpoŝtadreso aldonita." msgid "This notice is already a favorite!" msgstr "Ĉi tiu avizo jam estas ŝatata." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Malŝati ŝataton." -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" -msgstr "Populara avizo" +msgstr "Popularaj avizoj" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "Populara avizo, paĝo %d" +msgstr "Popularaj avizoj, paĝo %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." @@ -1623,7 +2424,7 @@ msgstr "" "sia ŝatolisto!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Ŝatataj avizoj de %s" @@ -1631,7 +2432,7 @@ msgstr "Ŝatataj avizoj de %s" #: actions/favoritesrss.php:115 #, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "Ŝatataj Ĝisdatiĝoj de %1$s ĉe %2$s!" +msgstr "Ŝatataj ĝisdatiĝoj de %1$s ĉe %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1692,7 +2493,7 @@ msgstr "Malsukcesis interŝanĝi petĵetonon al atingoĵetono." msgid "Remote service uses unknown version of OMB protocol." msgstr "Fora servo uzas nekonatan version de OMB-protokolo." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Eraro je ĝisdatigo de fora profilo." @@ -1720,19 +2521,23 @@ msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." msgid "User already has this role." msgstr "Uzanto jam havas la rolon." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Neniu profilo elektita." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Ne estas profilo kun tiu ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Neniu grupo elektita." @@ -1749,7 +2554,7 @@ msgstr "La uzanto jam de grupo blokiĝas." msgid "User is not a member of group." msgstr "La uzanto ne estas grupano." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloki uzanton de grupo" @@ -1793,10 +2598,12 @@ msgstr "Grupa desegno" msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." -msgstr "Agordi kiel aspektu via grupo, kun elekto de fonbildo kaj koloraro." +msgstr "Agordi kiel aspektu via grupo, per elekto de fonbildo kaj koloraro." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Malsukcesis ĝisdatigi vian desegnon." @@ -1815,6 +2622,14 @@ msgid "" msgstr "" "Vi povas alŝuti emblemo-bildon por via grupo. Dosiero-grandlimo estas $s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Alŝuti" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Tranĉi" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Elektu kvadratan parton de la bildo kiel la emblemo." @@ -1827,49 +2642,56 @@ msgstr "Emblemo ĝisdatigita." msgid "Failed updating logo." msgstr "Malsukcesis ĝisdatigi emblemon." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s grupanoj" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" -msgstr "%1$s grupanoj, paĝo %2$d" +msgstr "Grupanoj de %1$s, paĝo %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Listo de uzantoj en tiu ĉi grupo" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administranto" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloki" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bloki ĉi tiun uzanton" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Elekti uzanton grupestro." -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Estrigi" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Estrigi la uzanton" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Tempstrio de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1941,15 +2763,18 @@ msgstr "" "Kial ne [krei konton](%%action.register%%) kaj mem [krei la grupon](%%action." "newgroup%%)!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Nur grupestro rajtas malbloki grupanon." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "La uzanto ne estas blokita de grupo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Eraro ĉe provo malbloki." @@ -1998,7 +2823,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2008,64 +2836,64 @@ msgstr "" "s al via amikolisto je via tujmesaĝilo-kliento aŭ je GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Tujmesaĝilaj preferoj" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Sendu al mi avizojn per Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Afiŝu avizon tiam, kiam mia Jabber/GTalk-stato ŝanĝiĝas." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Sendu al mi per Jabber/GTalk respondojn de personoj, kiujn mi ne abonas." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publikigu MikroID por mia Jabber/GTalk-adreso." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Prefero konservita." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Mankas Jabber-ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Malsukcesis normigi la Jabber-ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Tio ne estas valida Jabber-ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Tio estas jam via Jabber-ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber-ID jam apartenas al alia uzanto." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2075,28 +2903,28 @@ msgstr "" "al %s sendi mesaĝojn al vi." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Tiu tujmesaĝila adreso estas malĝusta." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Malsukcesis forigi tujmesaĝila agordo." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Tujmesaĝila konfirmo nuligita." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Tio ne estas via Jabber-ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "La tujmesaĝila adreso estas forigita." @@ -2115,49 +2943,79 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Tio ĉi estas via alvenkesto, kie listiĝas viaj alvenaj privataj mesaĝoj." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Invito estas malebligita." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Ensalutu por inviti aliajn uzantojn al %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Nevalida retpoŝtadreso: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Invito(j) senditas" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Inviti novajn uzantojn" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Vi jam abonas jenajn uzantojn:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Vi jam abonas jenajn uzantojn:" +msgstr[1] "Vi jam abonas jenajn uzantojn:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Jenaj personoj estas jam uzantoj kaj vin aŭtomate abonigis al ili." +msgstr[0] "Jenaj personoj estas jam uzantoj kaj vin aŭtomate abonigis al ili." +msgstr[1] "Jenaj personoj estas jam uzantoj kaj vin aŭtomate abonigis al ili." -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invito(j) sendiĝis al jenaj personoj:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invito(j) sendiĝis al jenaj personoj:" +msgstr[1] "Invito(j) sendiĝis al jenaj personoj:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2165,42 +3023,53 @@ msgstr "" "Vi sciiĝos, kiam viaj invititoj akceptos la inviton kaj registriĝos ĉe la " "retejo. Dankon por kreskigi la komunumon!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Uzu la formularon por inviti viajn amikojn kaj kolegojn al ĉi tiu servo." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Retpoŝtadresoj" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresoj de invitataj amikoj (unu por linio)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Persona mesaĝo" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Vi povas aldoni personan mesaĝon al la invito." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Sendi" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s invitis vin kunaliĝi ĉe %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2259,13 +3128,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Ensalutu por aniĝi al grupo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Ne estas alinomo aŭ ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s aniĝis al grupo %2$s" @@ -2274,17 +3137,121 @@ msgstr "%1$s aniĝis al grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Ensalutu por eksaniĝi." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Vi ne estas grupano." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s eksaniĝis de grupo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Permesilo" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Nevalida permesila elekto" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Nevalida permesila titolo. La longlimo estas 255 literoj." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privata" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Ĉiuj rajtoj rezervitaj." + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Speco" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Vi jam ensalutis." @@ -2305,11 +3272,11 @@ msgstr "Ensaluti" msgid "Login to site" msgstr "Ensaluti al la retejo" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Memoru min" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Aŭtomate ensaluti estonte; ne taŭge por komuna komputilo!" @@ -2358,66 +3325,77 @@ msgstr "Malsukcesis estrigi %1$s por grupo %2$s." msgid "No current status." msgstr "Ne estas kuranta stato." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Nova Apliko" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Ensalutu por registri aplikaĵon." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Uzu ĉi tiun formularon por registri novan aplikaĵon." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Fonta URL bezonata." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Malsukcesis krei aplikaĵon." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nova grupo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Uzas ĉi tiun formularon por krei novan grupon." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nova mesaĝo" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Vi ne povas sendi mesaĝon al la uzanto." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Neniu enhavo!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Neniu ricevonto speifiĝas." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Ne sendu mesaĝon al vi mem! Simple suspiru anstataŭ." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Mesaĝo sendita" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Rekta mesaĝo al %s sendiĝis." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Eraro de Ajax" @@ -2425,7 +3403,7 @@ msgstr "Eraro de Ajax" msgid "New notice" msgstr "Nova avizo" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Avizo afiŝiĝas" @@ -2476,8 +3454,10 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Ĝisdatiĝo kongruanta al serĉvorto \"%1$s\" ĉe %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "La uzanto ne permesas puŝeton aŭ ne jam konfirmis aŭ registris " "retpoŝtadreson." @@ -2490,72 +3470,97 @@ msgstr "Puŝeto sendiĝis" msgid "Nudge sent!" msgstr "Puŝeto sendiĝis!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Ensalutu por listigi viajn aplikaĵojn." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth aplikoj" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplikoj kiujn vi enskribis" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "Vi ne jam registri iun ajn aplikaĵon." +msgstr "Vi ankoraŭ neniun aplikaĵon registris." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Konektita aplikaĵo" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Vi permesis al jenaj aplikaĵoj aliradon al via konto." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Mi ne estas uzanto de tiu aplikaĵo." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "Maleble revoki aliradon al aplikaĵo: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Vi ne rajtigis iun ajn aplikaĵon uzi vian konton." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "Programisto povas redakti registradan agordon de sia aplikaĵo " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Avizo sen profilo" -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Stato de %1$s ĉe %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Enhavtipo %s ne subteniĝas." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." -msgstr "" +msgstr "Bonvolu, nur %s-URL per plata HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Datumformato ne subteniĝas." @@ -2567,36 +3572,46 @@ msgstr "Homserĉo" msgid "Notice Search" msgstr "Avizoserĉo" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Aliaj agordoj" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Agordi diversajn aliajn elektojn." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (Senpaga servo)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Mallongigu URLojn per" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Uzota aŭtomata mallongigad-servo." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Vidi profilo-desegnon" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Montri aŭ kaŝi profilo-desegnon." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL-mallongigado-servo tro longas (maksimume 50 literojn)." #: actions/otp.php:69 @@ -2630,10 +3645,9 @@ msgid "Outbox for %s" msgstr "Elirkesto de %s" #: actions/outbox.php:116 -#, fuzzy msgid "This is your outbox, which lists private messages you have sent." msgstr "" -"Tio ĉi estas via alvenkesto, kie listiĝas viaj alvenaj privataj mesaĝoj." +"Tio ĉi estas via elirkesto, kie listiĝas privataj mesaĝoj, kiujn vi sendis." #: actions/passwordsettings.php:58 msgid "Change password" @@ -2660,7 +3674,7 @@ msgid "6 or more characters" msgstr "6 aŭ pli da literoj" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Konfirmi" @@ -2672,11 +3686,11 @@ msgstr "Same kiel pasvorto supra" msgid "Change" msgstr "Ŝanĝi" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Pasvorto devas esti 6-litera aŭ pli longa." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "La pasvortoj diferencas." @@ -2696,156 +3710,274 @@ msgstr "Malsukcesis konservi novan pasvorton." msgid "Password saved." msgstr "Pasvorto konservitas." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Vojoj" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Vojo kaj servila agordo por ĉi tiu StatusNet-retejo." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." -msgstr "Desegno ne havebla: %s." +msgstr "Desegno adresaro ne havebla: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "Avatara adresaro" +msgstr "Avatara adresaro ne skribebla: %s." -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format msgid "Background directory not writable: %s." -msgstr "Fona adresaro" +msgstr "Fona adresaro ne skribebla: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "Lokaĵara adresaro ne havebla: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "Nevalida SSL-servilo. La longlimo estas 225 literoj." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Retejo" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servilo" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Gastigserva Nomo de la retejo" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Vojo" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Reteja vojo" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Lokigilo al lokaĵaro" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Dosierujo de lokaĵaro" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Adresara lokigilo al lokaĵaro" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Vojo de dosierujo al lokaĵaroj." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" -msgstr "" +msgstr "Tajlora URL" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" +msgstr "Ĉu uzi tajloran (pli facile legebla kaj memorebla) URL?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Temo" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Tema servilo" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Servilo por etosoj." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Temo-lokigilo" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Retvojo al etosoj." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Tema adresaro" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avataroj" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatara servilo" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avataro-lokigilo" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatara adresaro" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fono" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Fono-lokigilo" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Fono-lokigilo" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Fona adresaro" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "\"SSL\"" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Neniam" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Kelkfoje" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Ĉiam" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Uzi \"SSL\"" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Kiam uzi \"SSL\"" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "\"SSL\"a servilo" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Servilo, kien orienti \"SSL\"-peton" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-servilo por temoj (defaŭlta: SSL-servilo)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-vojo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-vojo al etosoj (defaŭlta: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Dosierujo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Dosierujo kie etosoj estas." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avataroj" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatara servilo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Servilo por avataroj." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avataro-lokigilo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Retvojo al avataroj." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatara adresaro" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Dosierujo kie avataroj estas." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fono" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Servilo por fonoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Retvojo al fonoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Servilo por fonoj en SSL-paĝoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Retvojo al fonoj en SSL-paĝoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Dosierujo kie fonoj estas." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Aldonaĵo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Servilo por aldonaĵoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Retvojo al aldonaĵoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Servilo por aldonaĵoj en SSL-paĝoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Retvojo al aldonaĵoj en SSL-paĝoj." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Dosierujo kie aldonaĵoj estas." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "\"SSL\"" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Neniam" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Kelkfoje" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Ĉiam" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Uzi \"SSL\"" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Kiam uzi SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Servilo, kien direkti \"SSL\"-petojn" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Konservu lokigilon" @@ -2881,139 +4013,184 @@ msgstr "Nevalida avizo-enhavo" msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Aviza permesilo ‘%1$s’ ne konformas al reteja permesilo ‘%2$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profila agordo" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Vi povas ĝisdatigi vian propran profilan informon, por ke oni sciu pli pri " "vi." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profila informo" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 minusklaj literoj aŭ ciferoj, neniu interpunkcio aŭ spaco" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Plena nomo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Hejmpaĝo" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL de via hejmpaĝo, blogo aŭ profilo ĉe alia retejo" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Priskribu vin mem kaj viajn ŝatokupojn per ne pli ol %d signoj" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Priskribu vin mem kaj viajn ŝatokupojn per ne pli ol %d signoj" +msgstr[1] "Priskribu vin mem kaj viajn ŝatokupojn per ne pli ol %d signoj" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Priskribu vin mem kaj viajn ŝatokupojn" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Loko" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Kie vi estas, ekzemple \"Urbo, Ŝtato (aŭ Regiono), Lando\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Sciigu mian nunan lokon, kiam mi sendas avizon." -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Markiloj" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Markiloj por vi mem (literoj, ciferoj, \"-\", \".\", kaj \"_\"), dividite " "per komoj aŭ spacoj" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Lingvo" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Preferata lingvo" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Horzono" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "En kiu horzono vi kutime troviĝas?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Aŭtomate aboni iun ajn, kiu abonas min (prefereble por ne-homoj)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Biografio tro longas (maksimume 255 literoj)" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Biografio tro longas (maksimume %d literoj)" +msgstr[1] "Biografio tro longas (maksimume %d literoj)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Horzono ne elektita" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Lingvo tro longas (maksimume 255 literoj)" +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "Lingvo tro longas (maksimume 50 literoj)" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Nevalida markilo: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Malsukcesis ĝisdatigi uzanton por aŭtomatabonado." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Malsukcesis konservi lokan preferon." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Malsukcesis konservi la profilon." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Malsukcesis konservi markilojn." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Agordo konservitas." @@ -3067,16 +4244,17 @@ msgid "" msgstr "Kial ne [krei konton](%%action.register%%) kaj esti la unua afiŝanto!" #: actions/public.php:242 -#, 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. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -"Tio ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" -"blogging) servo surbaze de libera servila programo [StatusNet](http://status." -"net/)." +"Tie ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" +"blogging) servo surbaze de Libera Programaro [StatusNet](http://status." +"net/). [Aniĝu](%%action.register%%) por konigi novaĵon pri vi mem al viaj " +"amikoj, familianoj, kaj kolegoj! ([Pli](%%doc.help%%))" #: actions/public.php:247 #, php-format @@ -3089,97 +4267,103 @@ msgstr "" "blogging) servo surbaze de libera servila programo [StatusNet](http://status." "net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Publika markil-nubo" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " -msgstr "" +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" +msgstr "Jen la plej popularaj entikedoj lastatempaj ĉe %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." -msgstr "" +msgstr "Neniu jam afiŝis avizon kun [haketentikedon](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Estu la unua afiŝanto!" -#: actions/publictagcloud.php:75 -#, fuzzy, php-format +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 +#, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "Kial ne [krei konton](%%action.register%%) kaj esti la unua afiŝanto!" -#: actions/publictagcloud.php:134 -#, fuzzy +#: actions/publictagcloud.php:146 msgid "Tag cloud" -msgstr "Publika markil-nubo" +msgstr "Entikedo-nubo" #: actions/recoverpassword.php:36 -#, fuzzy msgid "You are already logged in!" msgstr "Vi jam ensalutis." #: actions/recoverpassword.php:62 -#, fuzzy msgid "No such recovery code." -msgstr "Ne estas tiu avizo." +msgstr "Ne estas tia rehava kodo." #: actions/recoverpassword.php:66 msgid "Not a recovery code." -msgstr "" +msgstr "Ne rehava kodo." #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "" +msgstr "Rehava kodo por nekonata uzanto." #: actions/recoverpassword.php:86 -#, fuzzy msgid "Error with confirmation code." -msgstr "Neniu konfirma kodo." +msgstr "Eraras pro komfirma kodo." #: actions/recoverpassword.php:97 -#, fuzzy msgid "This confirmation code is too old. Please start again." -msgstr "Tiu komfirmnumero ne estas por vi!" +msgstr "Tiu komfirmnumero tro malnovas. Bonvolu rekomenci." #: actions/recoverpassword.php:111 -#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "Nuna konfirmita retpoŝtadreso." +msgstr "Malsukcesas ĝisdatigi uzanton per komfirmita retpoŝtadreso." #: 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 "" +"Se vi forgesas aŭ perdas vian pasvorton, ni povas sendi novan pasvorton al " +"la retpoŝtadreso konservita je via konto." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "Vi estis identigita. Enigu sube novan pasvorton." #: actions/recoverpassword.php:188 -#, fuzzy msgid "Password recovery" -msgstr "Pasvorta ŝanĝo" +msgstr "Pasvorton rehavi." #: actions/recoverpassword.php:191 -#, fuzzy msgid "Nickname or email address" -msgstr "Neniu retpoŝta adreso." +msgstr "Alinomo aŭ retpoŝtadreso." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." -msgstr "" +msgstr "Via alinomo ĉe tiu ĉi servilo, aŭ via registrita retpoŝadreso." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 -#, fuzzy msgid "Recover" -msgstr "Forigi" +msgstr "Rehavi" #: actions/recoverpassword.php:208 msgid "Reset password" @@ -3191,11 +4375,11 @@ msgstr "Refari pasvorton" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" -msgstr "" +msgstr "Petiĝas pasvorton rehavado" #: actions/recoverpassword.php:213 msgid "Unknown action" -msgstr "" +msgstr "Nekonata ago" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" @@ -3206,65 +4390,63 @@ msgid "Reset" msgstr "Restarigi" #: actions/recoverpassword.php:252 -#, fuzzy msgid "Enter a nickname or email address." -msgstr "Tiu ne estas via retpoŝtadreso." +msgstr "Alinomo aŭ retpoŝtadreso." #: actions/recoverpassword.php:282 msgid "No user with that email address or username." -msgstr "" +msgstr "Ne estas uzanto kun tiu retpoŝtadreso aŭ uzantnomo." #: actions/recoverpassword.php:299 msgid "No registered email address for that user." -msgstr "" +msgstr "Neniu registrita retpoŝtadreso apartenas al la uzanto." #: actions/recoverpassword.php:313 -#, fuzzy msgid "Error saving address confirmation." -msgstr "Eraris konservi uzanton: nevalida." +msgstr "Eraras pro komfirma kodo." #: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" +"Gvidoj rehavi vian pasvorton jam sendiĝas al la retpoŝtadreso registrita je " +"via konto." #: actions/recoverpassword.php:357 -#, fuzzy msgid "Unexpected password reset." -msgstr "Neatendita formo-sendo." +msgstr "Neatendita pasvorto-rekomencigo." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Pasvorto devas enhavi 6 signojn aŭ pli." #: actions/recoverpassword.php:369 -#, fuzzy msgid "Password and confirmation do not match." -msgstr "La pasvortoj diferencas." +msgstr "Pasvorto kaj komfirmo ne kongruas." -#: actions/recoverpassword.php:388 actions/register.php:255 -#, fuzzy +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." -msgstr "Eraris konservi uzanton: nevalida." +msgstr "Eraris agordi uzanton." #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." -msgstr "" +msgstr "Nova pasvorto sukcese konserviĝas. Vi nun estas ensalutinta." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "Pardonon, nur invito rajtas registri." #: actions/register.php:99 msgid "Sorry, invalid invitation code." -msgstr "" +msgstr "Pardonon, nevalida invitkodo." #: actions/register.php:119 msgid "Registration successful" msgstr "Registriĝo sukcesa" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registri" @@ -3272,83 +4454,90 @@ msgstr "Registri" msgid "Registration not allowed." msgstr "Registriĝo ne permesita." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." -msgstr "Vi ne povas registri se vi ne konsentas al la licenco." +msgstr "Vi ne povas registriĝi, se vi ne konsentas kun la permesilo." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Retpoŝta adreso jam ekzistas." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nevalida uzantnomo aŭ pasvorto." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"Per tiu ĉi formularo vi povas krei novan konton. Poste povos vi afiŝi avizon " +"kaj komuniki kun amikoj kaj kolegoj. " -#: actions/register.php:432 -#, fuzzy +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "1-64 minusklaj literoj aŭ ciferoj, neniu interpunkcio aŭ spaco" +msgstr "" +"1-64 minusklaj literoj aŭ ciferoj, neniu interpunkcio aŭ spaco. Bezonate." -#: actions/register.php:437 -#, fuzzy +#: actions/register.php:438 msgid "6 or more characters. Required." -msgstr "6 aŭ pli da literoj" +msgstr "6 aŭ pli da literoj. Bezonate." -#: actions/register.php:441 -#, fuzzy +#: actions/register.php:442 msgid "Same as password above. Required." -msgstr "Same kiel pasvorto supra" +msgstr "Same kiel supra pasvorto. Bezonate." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Retpoŝto" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" -msgstr "" +msgstr "Uzu nur por ĝisdatigo, anonco, kaj rehavi pasvorton." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "Pli longa nomo, prefere via \"vera\" nomo." -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL de via hejmpaĝo, blogo aŭ profilo ĉe alia retejo" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" +"Mi komprenas ke enhavo kaj datumo de %1$s estas privataj kaj sekretigita." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." -msgstr "" +msgstr "Mia teksto kaj dosiero estas aŭtorrajtigita de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." -msgstr "" +msgstr "Mia teksto kaj dosiero restu en mia propra aŭtorrajto." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "Ĉiuj rajtoj rezervitaj." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" +"Mia teksto kaj dosiero estas atingebla per %s krom jene: pasvorto, " +"retpoŝtadreso, tujmesaĝilo-adreso, kaj telefonnumero." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3366,12 +4555,26 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"Gratulon, %1$s! Kaj bovenon al %%%%site.name%%%%. Nun eble vi volus...\n" +"\n" +"* Iri al [via profilo](%2$s) kaj afiŝi vian unuan mesaĝon.\n" +"* Aldoni [Jabber/GTalk-adreson](%%%%action.imsettings%%%%) por afiŝi avizon " +"per tujmesaĝilo.\n" +"* [Serĉi personojn](%%%%action.peoplesearch%%%%), kiujn vi konas aŭ kiuj " +"havas interesojn similajn al viaj.\n" +"* Ĝisdatigi vian [profilan agordon](%%%%action.profilesettings%%%%) por " +"sciigi pli pri vi. \n" +"* Relegi la [enretaĵojn](%%%%doc.help%%%%) pri iu funkcio, kiun vi ne " +"rimarkus. \n" +"\n" +"Dankon pro registriĝo, kaj ni esperas al vi ĝuon de uzi ĉi servon." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" +"(Vi ricevos tuj mesaĝon retpoŝtan, kun gvidon konfirmi vian retpoŝtadreson.)" #: actions/remotesubscribe.php:98 #, php-format @@ -3380,64 +4583,63 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" +"Por aboni, [ensalutu](%%action.login%%), aŭ [krei konton](%%action.register%" +"%). Se vi jam havas konton ĉe iu [kongrua mikroblogilo-retejo](%%doc." +"openmublog%%), entajpu vian profilan URL jene." #: actions/remotesubscribe.php:112 -#, fuzzy msgid "Remote subscribe" -msgstr "Malaboni" +msgstr "Defore aboni" #: actions/remotesubscribe.php:124 msgid "Subscribe to a remote user" -msgstr "" +msgstr "Aboni foran uzanton" #: actions/remotesubscribe.php:129 -#, fuzzy msgid "User nickname" -msgstr "Neniu kromnomo." +msgstr "Uzanta alinomo" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "" +msgstr "Alnomo de la uzanto, kiun vi volas aboni." #: actions/remotesubscribe.php:133 -#, fuzzy msgid "Profile URL" -msgstr "Profilo" +msgstr "Profila URL" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "" +msgstr "URL de via profilo ĉe alia kongrua mikroblogilo-servo" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Aboni" #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" -msgstr "" +msgstr "Nevalida profila URL (fuŝa formato)" #: actions/remotesubscribe.php:168 msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." msgstr "" +"Ne valida profila URL (ne estas YADIS-dokumento aŭ difiniĝas nevalida XRDS)." #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "Tio estas loka profilo! Ensalutu por aboni." #: actions/remotesubscribe.php:183 -#, fuzzy msgid "Couldn’t get a request token." -msgstr "Malsukcesis interŝanĝi petĵetonon al atingoĵetono." +msgstr "Malsukcesis akiri pet-ĵetonon." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "Nur ensalutinto rajtas ripeti avizon." #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "Neniu profilo elektita." +msgstr "Neniu profilo specifiĝas." #: actions/repeat.php:76 msgid "You can't repeat your own notice." @@ -3447,7 +4649,7 @@ msgstr "Vi ne povas ripeti vian propran avizon." msgid "You already repeated that notice." msgstr "La avizo jam ripetiĝis." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Ripetita" @@ -3456,38 +4658,39 @@ msgid "Repeated!" msgstr "Ripetita!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 -#, fuzzy, php-format +#: lib/personalgroupnav.php:108 +#, php-format msgid "Replies to %s" -msgstr "Ripetoj de %s" +msgstr "Respondoj al %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Alvenkesto de %1$s - paĝo %2$d" +msgstr "Respondoj al %1$s, paĝo %2$d" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" +msgstr "Responda fluo al %s (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "Fluo por amikoj de %s (RSS 2.0)" +msgstr "Responda fluo al %s (RSS 2.0)" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Fluo por amikoj de %s (Atom)" +msgstr "Responda fluo al %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" -"Tie ĉi estas la tempstrio de %s kaj amikoj sed ankoraŭ neniu afiŝis ion ajn." +"Tie ĉi estus tempstrio montranta respondojn al %1$s, sed %2$s ankoraŭ " +"ricevas neniun avizon." #: actions/replies.php:204 #, php-format @@ -3495,197 +4698,194 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"Vi povas komenci interparoladon kun aliaj uzantoj, aboni pli da personoj aŭ " +"[aniĝi al grupoj](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Vi povas provi [puŝeti %1$s](../%2$s) de lia profilo aŭ [afiŝi ion al li](%%" -"%%action.newnotice%%%%?status_textarea=%3$s)." +"Vi povas provi [puŝeti %1$s](../%2$s) aŭ[afiŝi ion al li](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "Bonvenon al %1$s, @%2$s!" +msgstr "Respondoj al %1$s ĉe %2$s!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." +msgstr "Vi ne rajtas revoki de uzanto rolon ĉe ĉi tiu retejo." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Uzanto jam havas la rolon." +msgstr "La uzanto ne havas la rolon." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Stato forigita." +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." +msgstr "Vi ne rajtas provejigi uzantojn ĉe tiu ĉi retejo." #: actions/sandbox.php:72 -#, fuzzy msgid "User is already sandboxed." -msgstr "La uzanto jam de grupo blokiĝas." +msgstr "La uzanto jam provejiĝis." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 -#, fuzzy +#: lib/adminpanelaction.php:379 msgid "Sessions" -msgstr "Versio" +msgstr "Seancoj" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "Aspektaj agordoj por ĉi tiu StatusNet-retejo." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" -msgstr "" +msgstr "Trakti seancojn" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "Ĉu traktu seancojn ni mem." #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "Seanca sencimigado" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "Ŝalti sencimigadan eligon por seanco." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "Konservu atingan agordon" +msgstr "Konservi retejan agordon" #: actions/showapplication.php:82 -#, fuzzy msgid "You must be logged in to view an application." -msgstr "Ensalutu por redakti la aplikaĵon." +msgstr "Ensalutu por vidi la aplikaĵon." #: actions/showapplication.php:157 -#, fuzzy msgid "Application profile" -msgstr "Aplikaĵo ne trovita." +msgstr "Aplikaĵa profilo" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" -msgstr "" +msgstr "Ikono" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nomo" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organizaĵo" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Priskribo" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" -msgstr "" +msgstr "Statistiko" #: actions/showapplication.php:203 #, php-format msgid "Created by %1$s - %2$s access by default - %3$d users" -msgstr "" +msgstr "Kreita de %1$s - %2$s defaŭlta aliroj - %3$d uzantoj" #: actions/showapplication.php:213 -#, fuzzy msgid "Application actions" -msgstr "Aplikaĵo ne trovita." +msgstr "Aplikaĵa ago" #: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "Rekomencigi ŝlosilon & sekreton" + +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Forigi" #: actions/showapplication.php:261 -#, fuzzy msgid "Application info" -msgstr "Aplikaĵo ne trovita." +msgstr "Aplikaĵa informo" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "" +msgstr "Konsumanta ŝlosilo" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "" +msgstr "Konsumanta sekreto" #: actions/showapplication.php:273 msgid "Request token URL" -msgstr "" +msgstr "Pet-ĵetona URL" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "" +msgstr "Alir-ĵetona URL" #: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "" +msgstr "Rajtigi URL" #: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +"Rimarku: Ni subtenas HMAC-SHA1-subskribo. Ni ne subtenas platteksta " +"subskribado-metodon." #: actions/showapplication.php:309 -#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Ĉu vi certe volas forigi la avizon?" +msgstr "Ĉu vi certe volas rekomencigi vian konsumantan ŝlosilon kaj sekreton?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "Ŝatataj avizoj de %s" +msgstr "Ŝatataj avizoj de %s, paĝo %2$d" #: actions/showfavorites.php:132 -#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "Malsukcesis krei ŝataton." +msgstr "Malsukcesis ricevi ŝataton." #: actions/showfavorites.php:171 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" +msgstr "Fluo pri ŝatato de %s (RSS 1.0)" #: actions/showfavorites.php:178 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Fluo por amikoj de %s (RSS 2.0)" +msgstr "Fluo pri ŝatato de %s (RSS 2.0)" #: actions/showfavorites.php:185 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Fluo por amikoj de %s (Atom)" +msgstr "Fluo pri ŝatato de %s (Atom)" #: actions/showfavorites.php:206 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 "" +"Vi ne jam ŝatis iun ajn avizon. Alklaku la ŝati-klavon apud avizo ŝatita por " +"poste trovi ĝin kaj atentigi al ĝi." #: actions/showfavorites.php:208 #, php-format @@ -3693,98 +4893,123 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" +"%s ankoraŭ ne aldonis iun ajn ŝatatan avizon. Sendu ion, kion ili ŝatos. :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"[Kreu konton](%%action.register%%) kaj estu la unua, kiu aldonos avizon al " -"sia ŝatolisto!" +"%s ankoraŭ ne aldonis iun ajn ŝatatan avizon. Kial ne [krei konton](%%%%" +"action.register%%%%) kaj sendi ion, kion ili ŝatos. :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." -msgstr "" +msgstr "Tiel vi povas diskonigi vian ŝataton." -#: actions/showgroup.php:82 lib/groupnav.php:86 -#, fuzzy, php-format +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 +#, php-format msgid "%s group" -msgstr "Grupoj de %s" +msgstr "Grupo %s" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "%1$s grupanoj, paĝo %2$d" +msgstr "Grupo %1$s, paĝo %2$d" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Grupa emblemo" +msgstr "Grupa profilo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Noto" -#: actions/showgroup.php:293 lib/groupeditform.php:184 -#, fuzzy +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" -msgstr "Ĉiam" +msgstr "Alnomo" -#: actions/showgroup.php:302 -#, fuzzy +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" -msgstr "grupoj ĉe %s" +msgstr "Grupaj agoj" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" +msgstr "Avizofluo de grupo %s (RSS 1.0)" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Fluo por amikoj de %s (RSS 2.0)" +msgstr "Avizofluo de grupo %s (RSS 2.0)" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Fluo por amikoj de %s (Atom)" +msgstr "Avizofluo de grupo %s (Atom)" -#: actions/showgroup.php:355 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, php-format msgid "FOAF for %s group" -msgstr "Grupoj de %s" +msgstr "Foramiko de grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Grupanoj" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 -#, fuzzy msgid "(None)" -msgstr "Noto" +msgstr "(nenio)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Ĉiuj grupanoj" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 #, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "Ripetita" +msgstr "Kreita" -#: actions/showgroup.php:455 -#, fuzzy, php-format +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Grupanoj" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 +#, 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 " @@ -3792,326 +5017,356 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"Tio ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" -"blogging) servo surbaze de libera servila programo [StatusNet](http://status." -"net/)." +"**%s** estas uzanto-grupo ĉe %%%%site.name%%%%, [mikrobloga](http://en." +"wikipedia.org/wiki/Micro-blogging) servo surbaze de Libera Programaro " +"[StatusNet](http://status.net/). [Aniĝu](%%action.register%%) por fariĝi " +"parto de tiu ĉi grupo kaj multe pli! ([Pli](%%doc.help%%))" -#: actions/showgroup.php:461 -#, fuzzy, php-format +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, 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 "" -"Tio ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" -"blogging) servo surbaze de libera servila programo [StatusNet](http://status." -"net/)." +"**%s** estas grupo de uzantoj ĉe %%%%*site.*name%%%%, [mikrobloga servo]" +"(*http://estas.*wikipedia.*org/*wiki/*Microblogging) baze de ilaro de Libera " +"Molvaro [StatusNet](*http://*status.*net/), kie anoj konigas mesaĝetojn pri " +"siaj vivoj kaj ŝatokupoj. " -#: actions/showgroup.php:489 -#, fuzzy +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" -msgstr "Administranto" +msgstr "Administrantoj" -#: actions/showmessage.php:81 -#, fuzzy +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." -msgstr "Ne estas tiu paĝo." +msgstr "Ne estas tiu mesaĝo." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Nur la sendinto kaj ricevinto rajtas legi la mesaĝon." -#: actions/showmessage.php:108 -#, fuzzy, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, php-format msgid "Message to %1$s on %2$s" -msgstr "Ĝisdatigoj etikeditaj %1$s ĉe %2$s!" +msgstr "Mesaĝo al %1$s ĉe %2$s" -#: actions/showmessage.php:113 -#, fuzzy, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, php-format msgid "Message from %1$s on %2$s" -msgstr "Ĝisdatigoj etikeditaj %1$s ĉe %2$s!" +msgstr "Mesaĝo de %1$s ĉe %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." msgstr "Avizo viŝiĝas" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" -msgstr "Avizoj etikeditaj %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s, paĝo %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 #, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Avizoj etikeditaj per %1$s - paĝo %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s kaj amikoj, paĝo %2$d" +msgstr "%1$s, paĝo %2$d" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" +msgstr "Avizofluo pri %1$s etikedigita %2$s (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Avizofluo pri %1$s (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Fluo por amikoj de %s (RSS 2.0)" +msgstr "Avizofluo pri %1$s (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Fluo por amikoj de %s (Atom)" +msgstr "Avizofluo pri %1$s (Atom)" -#: actions/showstream.php:148 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, php-format msgid "FOAF for %s" -msgstr "Elirkesto de %s" +msgstr "Foramiko de %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "" -"Tie ĉi estas la tempstrio de %s kaj amikoj sed ankoraŭ neniu afiŝis ion ajn." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Tie ĉi estus tempstrio de %1$s sed %2$s ankoraŭ afiŝis nenion." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" +"Ĉu okazas io interesa lastatempe? Vi ne afiŝis ion ajn, nun taŭgas komenci :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Vi povas provi [puŝeti %1$s](../%2$s) de lia profilo aŭ [afiŝi ion al li](%%" -"%%action.newnotice%%%%?status_textarea=%3$s)." +"Vi povas provi [puŝeti %1$s] aŭ [afiŝi ion al li](%%%%action.newnotice%%%%?" +"status_textarea=%2$s)." -#: actions/showstream.php:243 -#, fuzzy, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, 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. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"Tio ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" -"blogging) servo surbaze de libera servila programo [StatusNet](http://status." -"net/)." +"**%s** havas konton ĉe %%%%site.name%%%%, [mikrobloga](http://en.wikipedia." +"org/wiki/Micro-blogging) servo surbaze de libera programaro [StatusNet]" +"(http://status.net/). [Aniĝu](%%%%action.register%%%%) por sekvi avizojn de " +"**%s** kaj multe pli! ([Pli](%%%%doc.help%%%%))" -#: actions/showstream.php:248 -#, fuzzy, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, 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 "" -"Tio ĉi estas %%site.name%%, [mikrobloga](http://en.wikipedia.org/wiki/Micro-" -"blogging) servo surbaze de libera servila programo [StatusNet](http://status." -"net/)." +"**%s** havas konton ĉe %%%%site.name%%%%, [mikrobloga](http://en.wikipedia." +"org/wiki/Micro-blogging) servo surbaze de libera programaro [StatusNet]" +"(http://status.net/). " -#: actions/showstream.php:305 -#, fuzzy, php-format +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, php-format msgid "Repeat of %s" -msgstr "Ripetoj de %s" +msgstr "Ripeto de %s" #: actions/silence.php:65 actions/unsilence.php:65 -#, fuzzy msgid "You cannot silence users on this site." -msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." +msgstr "Vi ne rajtas silentigi uzanton ĉe ĉi tiu retejo." #: actions/silence.php:72 -#, fuzzy msgid "User is already silenced." -msgstr "La uzanto jam de grupo blokiĝas." +msgstr "La uzanto jam silentiĝas." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Aspektaj agordoj por ĉi tiu StatusNet-retejo." +msgstr "Baza agordo por ĉi tiu StatusNet-retejo." #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." -msgstr "" +msgstr "La sita nomo devas pli ol nula longeco" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Retpoŝta adreso ne valida" +msgstr "Vi devas havi validan kontakteblan retpoŝtadreson" #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "Nekonata lingvo \"%s\"." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." -msgstr "" +msgstr "Teksto estu almenaŭ 0 literojn (senlime)." #: actions/siteadminpanel.php:171 msgid "Dupe limit must be one or more seconds." -msgstr "" +msgstr "Refoja limo estu almenaŭ unu sekundo." #: actions/siteadminpanel.php:221 msgid "General" msgstr "Ĝenerala" #: actions/siteadminpanel.php:224 -#, fuzzy msgid "Site name" -msgstr "Reteja desegno" +msgstr "Nomo de retejo" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "Nomo de via retejo, ekzemple \"Viafirmo Mikroblogo\"" #: actions/siteadminpanel.php:229 msgid "Brought by" -msgstr "" +msgstr "Eblige de" #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" -msgstr "" +msgstr "Teksto por dankado-ligilo je subo por ĉiu paĝo" #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "Alportita de URL" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" -msgstr "" +msgstr "URL por danko-ligilo je subaĵo sur ĉiu paĝo" #: actions/siteadminpanel.php:239 -#, fuzzy msgid "Contact email address for your site" -msgstr "Alvena retpoŝtadreso forigita." +msgstr "Kontakta retpoŝtadreso por via retejo" #: actions/siteadminpanel.php:245 -#, fuzzy msgid "Local" -msgstr "Loko" +msgstr "Loka" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Defaŭlta horzono" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Defaŭlta horzono de la retejo; kutime UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Preferata lingvo" +msgstr "Defaŭlta lingvo" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" -msgstr "" +msgstr "Reteja lingvo por kiam lingva prefero ne troviĝas el la foliumilo" #: actions/siteadminpanel.php:271 msgid "Limits" -msgstr "" +msgstr "Limoj" #: actions/siteadminpanel.php:274 msgid "Text limit" -msgstr "" +msgstr "Teksta longlimo" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Longlimo por afiŝoj." #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "Refoja limo" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Kiel longe devas uzantoj atendas (je sekundo) antaŭ afiŝi la saman refejo." -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Avizoj" +msgstr "Reteja Anonco" -#: actions/sitenoticeadminpanel.php:67 -#, fuzzy +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" -msgstr "Nova mesaĝo" +msgstr "Redakti retejan mesaĝon" -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." -msgstr "Malsukcesis konservi vian desegnan agordon" +msgstr "Malsukcesis konservi retejan anoncon." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "Longlimo por reteja anonco estas 255 literoj." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Forigi avizon" +msgstr "Teksto de reteja anonco." -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" - -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 #, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "Teksto de reteja anonco (apenaŭ 255 literoj; HTML eblas)" + +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Forigi avizon" +msgstr "Konservi retejan agordon" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "Tujmesaĝila agordo." +msgstr "SMM-a agordo" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 -#, fuzzy, php-format +#, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "Administri kiel ricevi mesaĝon de %%site.name%%." +msgstr "Vi povos ricevi SMM-mesaĝon per retpoŝto de %%site.name%%." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 -#, fuzzy msgid "SMS is not available." -msgstr "Tujmesaĝilo ne estas disponebla." +msgstr "SMM ne estas disponebla." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Tujmesaĝila adreso" +msgstr "SMM-a adreso" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 -#, fuzzy msgid "Current confirmed SMS-enabled phone number." -msgstr "Nuna konfirmita retpoŝtadreso." +msgstr "Nuna konfirmita SMM-pova telefonnumero" #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Atendante konfirmon por la telefonnumero." #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 -#, fuzzy msgid "Confirmation code" -msgstr "Neniu konfirma kodo." +msgstr "Konfirma kodo." #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "Entajpu la kodon, kiu vi ricevis per poŝtelefono." #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 @@ -4122,19 +5377,17 @@ msgstr "Konfirmi" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 msgid "SMS phone number" -msgstr "" +msgstr "SMM-a telefonnumero" #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 -#, fuzzy msgid "Phone number, no punctuation or spaces, with area code" -msgstr "1-64 minusklaj literoj aŭ ciferoj, neniu interpunkcio aŭ spaco" +msgstr "Telefonnumero, sen interpunkcio aŭ spacoj, kun loka kodo" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Tujmesaĝilaj preferoj" +msgstr "SMM-aj preferoj" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4142,81 +5395,73 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"Sendu al mi avizoj per SMM; mi komprenas ke la kosto eble estos multa de mia " +"peranto." #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 -#, fuzzy msgid "SMS preferences saved." -msgstr "Prefero konservita." +msgstr "SMM-prefero konserviĝas." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 -#, fuzzy msgid "No phone number." -msgstr "Ne ekzistas tiu uzanto." +msgstr "Mankas la telefononumero." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 -#, fuzzy msgid "No carrier selected." -msgstr "Avizo viŝiĝas" +msgstr "Neniu peranto elektiĝas." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 -#, fuzzy msgid "That is already your phone number." -msgstr "Tio estas jam via Jabber-ID." +msgstr "Tio estas jam via telefonnumero." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 -#, fuzzy msgid "That phone number already belongs to another user." -msgstr "Tiu retpoŝtadreso jam apartenas al alia uzanto." +msgstr "Tiu telefonnumero jam apartenas al alia uzanto." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"Konfirmkodo jam senditas al la aldonita retpoŝtadreso. Kontrolu vian " -"alvenkeston (kaj spamkeston!) pri la kodo kaj instrukcio pri kiel uzi ĝin." +"Konfirmkodo jam sendiĝas al la aldonita telefonnumero. Kontrolu vian " +"poŝtelefonon pri la kodo kaj gvido pri kiel uzi ĝin." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 -#, fuzzy msgid "That is the wrong confirmation number." -msgstr "Tiu retpoŝtadreso estas malĝusta." +msgstr "Tiu konfirma kodo estas malĝusta." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Tujmesaĝila konfirmo nuligita." +msgstr "SMM-a konfirmo nuliĝas." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. #: actions/smssettings.php:448 -#, fuzzy msgid "That is not your phone number." -msgstr "Tio ne estas via Jabber-ID." +msgstr "Tio ne estas via telefonnumero." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 -#, fuzzy msgid "The SMS phone number was removed." -msgstr "La tujmesaĝila adreso estas forigita." +msgstr "La SMM-numreo estas forigita." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 msgid "Mobile carrier" -msgstr "" +msgstr "Poŝtelefona peranto" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 msgid "Select a carrier" -msgstr "" +msgstr "Elektu peranton" #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. #. TRANS: %s is an administrative contact's e-mail address. @@ -4226,53 +5471,51 @@ 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 "" +"Poŝtelefona peranto de via telefono. Se vi konas peranton, kiu akceptas SMM " +"per retpoŝto sed ne listiĝas tie ĉi, sendu mesaĝon al ni sciigi, je %s." #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 -#, fuzzy msgid "No code entered" -msgstr "Neniu enhavo!" +msgstr "Neniu kodo entajpita" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" -msgstr "" +msgstr "Momentfotoj" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Administri agordon pri momentfoto" #: actions/snapshotadminpanel.php:127 -#, fuzzy msgid "Invalid snapshot run value." -msgstr "Rolo nevalida." +msgstr "Momentfota ofteco nevalida." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "Momentfota ofteco estu nombro." #: actions/snapshotadminpanel.php:144 -#, fuzzy msgid "Invalid snapshot report URL." -msgstr "URL por la emblemo nevalida." +msgstr "Momentfota alraporta URL nevalida." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" -msgstr "" +msgstr "Harzarde dum ret-alklako." #: actions/snapshotadminpanel.php:201 msgid "In a scheduled job" -msgstr "" +msgstr "Laŭplane" #: actions/snapshotadminpanel.php:206 msgid "Data snapshots" -msgstr "" +msgstr "Datumaj momentfotoj" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Kiam sendu statistikan datumon al status.net serviloj" #: actions/snapshotadminpanel.php:217 msgid "Frequency" @@ -4280,106 +5523,124 @@ msgstr "Ofteco" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "Momentfotoj sendiĝos post po N alklakoj" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "Alraporta URL" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "Momentfotoj sendiĝos al ĉi tiu URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Konservu atingan agordon" +msgstr "Konservi retejan agordon" -#: actions/subedit.php:70 -#, fuzzy +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." -msgstr "Vi ne estas grupano." +msgstr "Vi ne abonis tiun profilon." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Malsukcesis konservi la profilon." +msgstr "Malsukcesis konservi abonon." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" - -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Ne ekzistas tia dosiero." +msgstr "La ago akceptas nur POST-an peton." #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "" +msgstr "Vi ne povas aboni foran OMB 0.1-an profilon per ĉi tiu ago." #: actions/subscribe.php:145 msgid "Subscribed" msgstr "Abonita" -#: actions/subscribers.php:50 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 +#, php-format msgid "%s subscribers" -msgstr "Malaboni" +msgstr "%s abonantoj" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%1$s grupanoj, paĝo %2$d" +msgstr "%1$s abonantoj, paĝo %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." -msgstr "" +msgstr "Jen homoj, kiuj rigardas viajn avizojn." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "Jen homoj, kiuj rigardas avizojn de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" -msgstr "" +"return the favor." +msgstr "Vi ne havas abonanton. Provu aboni konatojn, kaj ili eble reaboni vin" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "%s ne havas abonantojn. Ĉu vi volas esti la unua?" -#: actions/subscribers.php:114 -#, fuzzy, php-format +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" -msgstr "Kial ne [krei konton](%%action.register%%) kaj esti la unua afiŝanto!" - -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Priskribo" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "%1$s kaj amikoj, paĝo %2$d" - -#: actions/subscriptions.php:65 -msgid "These are the people whose notices you listen to." msgstr "" +"%s ne havas abonantojn. Kial ne [krei konton](%%%%*action.*Register%%%%) kaj " +"esti la unua?" -#: actions/subscriptions.php:69 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "%1$s abonatoj, paĝo %2$d" + +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 +msgid "These are the people whose notices you listen to." +msgstr "Jen homoj, kies avizoj rigardas vi." + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "" +msgstr "Jen homoj, kies avizoj %s rigardas." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4388,205 +5649,223 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"Vi ne nun abonas ies ajn avizoj. Provu aboni konatojn. Provu [homserĉi](%%" +"action.peoplesearch%%), kontrolu grupanojn en interesaj grupoj, kaj nian " +"[elstarajn uzantojn](%%action.featured%%). Se vi estas [Tvitanto](%%action." +"twittersettings%%), vi povas aŭtomate aboni homon, kiun vi jam sekvas tie." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "%s ne abonas iun ajn." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Avizofluo pri %1$s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Uzantoj sinmarkitaj per %1$s - paĝo %2$d" +msgstr "Avizoj etikeditaj per %1$s - paĝo %2$d" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Fluo por amikoj de %s (RSS 1.0)" +msgstr "Avizofluo pri etikedo %s (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Fluo por amikoj de %s (RSS 2.0)" +msgstr "Avizofluo pri etikedo %s (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Fluo por amikoj de %s (Atom)" +msgstr "Avizofluo pri etikedo %s (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "Ne estas aldonaĵo." +msgstr "Neniu ID-argumento" #: actions/tagother.php:65 -#, fuzzy, php-format +#, php-format msgid "Tag %s" -msgstr "Markiloj" +msgstr "Etikedo %s" #: actions/tagother.php:77 lib/userprofile.php:76 -#, fuzzy msgid "User profile" -msgstr "La uzanto ne havas profilon." +msgstr "Uzanta profilo" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "Markiloj" +msgstr "Etikedi uzanton" #: actions/tagother.php:151 -#, fuzzy msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" -"Markiloj por vi mem (literoj, ciferoj, \"-\", \".\", kaj \"_\"), dividite " -"per komoj aŭ spacoj" +"Etikedoj por ĉi tiuj uzanto (literoj, ciferoj, -, . Kaj _), apartigu per " +"komo aŭ spaco." #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." -msgstr "" +msgstr "Vi rajtas entikedi nur abonanton aŭ abonaton." #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." -msgstr "Malsukcesis konservi markilojn." +msgstr "Malsukcesis konservi etikedojn." #: actions/tagother.php:236 -#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "Uzu ĉi tiun formularon por redakti vian aplikaĵon." +msgstr "Uzu ĉi tiun formularon por etikedi viajn abonantojn aŭ abonatojn." #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Ne estas tiu paĝo." +msgstr "Ne estas tiu etikedo." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Vi jam blokis la uzanton." +msgstr "Vi ne jam blokis la uzanton." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "La uzanto ne estas blokita de grupo." +msgstr "La uzanto ne estas provejigita." #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "La uzanto ne havas profilon." +msgstr "Uzanto ne estas silentigita." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Neniu ensalutad-ĵetono bezoniĝas." +msgstr "Neniu profila ID petiĝas." #: actions/unsubscribe.php:98 -#, fuzzy msgid "Unsubscribed" -msgstr "Malaboni" +msgstr "Malabonita" #: actions/updateprofile.php:64 actions/userauthorization.php:337 -#, fuzzy, php-format +#, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "Aviza permesilo ‘%1$s’ ne konformas al reteja permesilo ‘%2$s’." +msgstr "" +"Rigardato-flua permesilo \"%1$s\" ne konformas al reteja permesilo \"%2$s\"." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Uzanto" -#: actions/useradminpanel.php:70 -#, fuzzy -msgid "User settings for this StatusNet site." -msgstr "Aspektaj agordoj por ĉi tiu StatusNet-retejo." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "Nevalida biografia longlimo. Estu cifero." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Nevalida bonvena teksto. La longlimo estas 225 literoj." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "Nevalida defaŭlta abono: '%1$s' ne estas uzanto." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profilo" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" -msgstr "" +msgstr "Longlimo de biografio" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Longlimo de profila biografio, je literoj" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "Inviti novajn uzantojn" - -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" +msgstr "Novuloj" +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -#, fuzzy -msgid "Welcome text for new users (Max 255 chars)." -msgstr "La nomo estas tro longa (maksimume 255 literoj)" +msgid "New user welcome" +msgstr "Bonveno al novuloj" -#: actions/useradminpanel.php:241 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 #, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Bonvena teksto al novaj uzantoj (apenaŭ 255 literoj)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" -msgstr "Priskribo" +msgstr "Defaŭlta abono" -#: actions/useradminpanel.php:242 -#, fuzzy +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." -msgstr "Aŭtomate aboni iun ajn, kiu abonas min (prefereble por ne-homoj)" - -#: actions/useradminpanel.php:251 -#, fuzzy -msgid "Invitations" -msgstr "Invito(j) senditas" +msgstr "Aŭtomate aboni novajn uzantojn al ĉi tiu uzanto." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:256 -#, fuzzy -msgid "Invitations enabled" -msgstr "Invito(j) senditas" +msgid "Invitations" +msgstr "Invitoj" -#: actions/useradminpanel.php:258 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 +msgid "Invitations enabled" +msgstr "Invito ebliĝis" + +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." +msgstr "Ĉu permesi al uzantoj inviti novan uzantojn." + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" msgstr "" #: actions/userauthorization.php:105 -#, fuzzy msgid "Authorize subscription" -msgstr "Priskribo" +msgstr "Rajtigi abonon" #: actions/userauthorization.php:110 msgid "" @@ -4594,8 +5873,12 @@ msgid "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" +"Bonvolu kontroli la detalojn por certigi ĉu vi deziras aboni la avizoj de ĉi " +"tiu uzanto. Se ne simple alklaku “Rifuzi\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licenco" @@ -4605,28 +5888,24 @@ msgstr "Akcepti" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Forigi la uzanton" +msgstr "Aboni la uzanton" #: actions/userauthorization.php:219 msgid "Reject" msgstr "Malakcepti" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Forigi la uzanton" +msgstr "Rifuzi la abonon" #: actions/userauthorization.php:232 -#, fuzzy msgid "No authorization request!" -msgstr "Neniu ensalutad-ĵetono bezoniĝas." +msgstr "Ne bezonas permesado!" #: actions/userauthorization.php:254 -#, fuzzy msgid "Subscription authorized" -msgstr "Vi ne estas rajtigita." +msgstr "Abono permesiĝis" #: actions/userauthorization.php:256 msgid "" @@ -4634,11 +5913,12 @@ msgid "" "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"La abono permesiĝis, sed ne pasiĝis revoka URL. Legu gvidon de la retejo pro " +"detaloj pri kiel rajtigi abonon. Via abono-ĵetono jenas:" #: actions/userauthorization.php:266 -#, fuzzy msgid "Subscription rejected" -msgstr "Priskribo necesas." +msgstr "Abono rifuziĝis" #: actions/userauthorization.php:268 msgid "" @@ -4646,77 +5926,79 @@ msgid "" "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" +"La abono rifuziĝis sed ne pasiĝis revoka URL. Legu gvidon de la retejo pro " +"detaloj pri kiel rajtigi abonon. Via abono-ĵetono jenas:" #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "URL de aboninto ‘%s’ ne troviĝas tie ĉi." #: actions/userauthorization.php:308 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "URL de abonito ‘%s’ tro longas." #: actions/userauthorization.php:314 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "URL de abonito ‘%s’ estas de loka uzanto." #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "Profila URL ‘%s’ estas de loka uzanto." #: actions/userauthorization.php:345 -#, fuzzy, php-format +#, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "Revokfunkcia URL estas nevalida." +msgstr "Vizaĝbilda URL ‘%s' ne estas valida." #: actions/userauthorization.php:350 #, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "" +msgstr "Malsukcesis legi vizaĝbildan URL ‘%s’." #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "" +msgstr "Malĝusta bildotipo por vizaĝbilda URL ‘%s'." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" -msgstr "Vidi profilo-desegnon" +msgstr "Profila desegno" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 -#, fuzzy +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." -msgstr "Agordi kiel aspektu via grupo, kun elekto de fonbildo kaj koloraro." +msgstr "Agodi kiel aspektu via profilo, per elekto de fonbildo kaj koloraro." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Ĝuu vian kolbasobulkon!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%1$s grupanoj, paĝo %2$d" +msgstr "Grupoj %1$s, paĝo %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" -msgstr "" +msgstr "Serĉi pli da grupoj" #: actions/usergroups.php:159 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "La uzanto ne estas grupano." +msgstr "%S ne estas ano de iu ajn grupo." #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." -msgstr "" +msgstr "Provu [serĉi grupojn](%%*action.*groupsearch%%) kaj aniĝi." #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -4724,15 +6006,15 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, fuzzy, php-format +#: lib/atomusernoticefeed.php:75 +#, php-format msgid "Updates from %1$s on %2$s!" -msgstr "Ŝatataj Ĝisdatiĝoj de %1$s ĉe %2$s!" +msgstr "Ĝisdatiĝoj de %1$s ĉe %2$s!" #: actions/version.php:75 #, php-format msgid "StatusNet %s" -msgstr "" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -4740,6 +6022,8 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"La retejon ebligis %1$s de versio %2$s, aŭtorrajto 2008-2010 StatusNet, Inc. " +"kaj kontribuintoj." #: actions/version.php:163 msgid "Contributors" @@ -4752,6 +6036,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet estas libera molvaro: vi rajtas redistribui ĝin kaj/aŭ modifi ĝin " +"sub la condiĉoj de la GNU-a Affero Ĝenerala Publika Licenco kiel eldonite de " +"la Fundamento por Libera-Molvaro. Kaj versio 3 de la Licenco kaj (viaelekte) " +"ĉiu posta versio taŭgas. " #: actions/version.php:176 msgid "" @@ -4760,6 +6048,9 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"Ĉi tiu programo distribuiĝis kun espero ke ĝi estos utila, sed SEN AJNA " +"GARANTIO; ne eĉ suba garantio de FUNKCIPOVO aŭ TAŬGECO POR IU CERTA CELO. " +"Legu la GNU Affero Ĝeneralan Publikan Permesilon pro pli da detaloj. " #: actions/version.php:182 #, php-format @@ -4767,13 +6058,15 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"Vi laŭe jam ricevis eldonon de la GNU Affero Ĝenerala Publika Permesilo. " +"Nekaze, legu %s." #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "Kromprogramo" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versio" @@ -4781,1107 +6074,1309 @@ msgstr "Versio" msgid "Author(s)" msgstr "Aŭtoro(j)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Ŝati" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) ŝatis vian avizon" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "Malsukcesis trakti URL '%s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "Robin pensas ke io neeblas." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Grandlimo por sendota dosiero estas %1$d bajtoj, tamen tio, kion vi volis " +"sendi grandas %2$d bajtojn. Provu per versio pli malgranda." +msgstr[1] "" +"Grandlimo por sendota dosiero estas %1$d bajtoj, tamen tio, kion vi volis " +"sendi grandas %2$d bajtojn. Provu per versio pli malgranda." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Dosiero tiel granda superos vian uzantan kvoton kun %d bajtoj." +msgstr[1] "Dosiero tiel granda superos vian uzantan kvoton kun %d bajtoj." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Dosiero tiel granda superos vian monatan kvoton kun %d bajtoj." +msgstr[1] "Dosiero tiel granda superos vian monatan kvoton kun %d bajtoj." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Grando nevalida." +msgstr "Nevalida dosiernomo." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "Grupo ne troviĝas." +msgstr "Malsukcesis aniĝi al grupon." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy +#: classes/Group_member.php:64 msgid "Not part of group." -msgstr "Malsukcesis ĝisdatigi grupon." +msgstr "Ne grupano." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy +#: classes/Group_member.php:72 msgid "Group leave failed." -msgstr "Malsukcesis alŝuti" +msgstr "Malsukcesis foriri de grupo." + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Eraris konservi uzanton: nevalida." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Aniĝi" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "Malsukcesis ĝisdatigi grupon." +msgstr "Malsukcesis ĝisdatigi lokan grupon." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Malsukcesis krei alinomon." +msgstr "Malsukcesis krei ensalut-ĵetonon por %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Ne troviĝas datumbaza nomo aŭ DSN ie ajn." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "Vi blokiĝis de sendi rektan mesaĝon." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 -#, fuzzy +#: classes/Message.php:69 msgid "Could not insert message." -msgstr "Malsukcesis trovi celan uzanton." +msgstr "Malsukcesis enmeti mesaĝon." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 -#, fuzzy +#: classes/Message.php:80 msgid "Could not update message with new URI." -msgstr "Malsukcesis ĝisdatigi uzanton" +msgstr "Malsukcesis ĝisdatigi mesaĝon per nova URI" #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Ne estas tia profilo(%1$d) rilate al avizo (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Datumbaza eraro enigi la uzanton de *OAuth-aplikaĵo." +msgstr "Datumbaze eraris enmeti heketetikedo: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." -msgstr "" +msgstr "Malsukcesis konservi avizon. Ĝi tro longas." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." -msgstr "" +msgstr "Malsukcesis konservi avizon. Uzanto ne kontata." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"Tro da avizoj tro rapide; pace spiru kaj reafiŝu post kelke da minutoj." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"Tro da refojado tro rapide; pace spiru kaj reafiŝu post kelke da minutoj." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 -#, fuzzy +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." -msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." +msgstr "Vi estas blokita de afiŝi ĉe tiu ĉi retejo." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." -msgstr "" +msgstr "Malsukcesis konservi avizon." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "Fuŝa tipo donita al saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." -msgstr "" +msgstr "Malsukcesis konservi grupan alvenkeston." + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Malsukcesis lokan grupan informon." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "Malsukcesis revoki rolon \"%1$s\" de uzanto #%2$d; ĝi ne ekzistas." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." -msgstr "" +msgstr "Malsukcesis revoki rolon \"%1$s\" de uzanto #%2$d; datumbaza eraro." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "La uzanto ne havas profilon." +msgstr "Mankas profilo." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Malsukcesis konservi vian desegnan agordon" +msgstr "Malsukcesis konservi etikedon." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 -#, fuzzy +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." -msgstr "Tiu uzanto abonblokis vin." +msgstr "Vi esatas blokita de aboni." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -#, fuzzy +#: classes/Subscription.php:82 msgid "Already subscribed!" -msgstr "Abonita" +msgstr "Jam abonato!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 -#, fuzzy +#: classes/Subscription.php:87 msgid "User has blocked you." -msgstr "La uzanto ne estas blokita de grupo." +msgstr "La uzanto blokis vin." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" -msgstr "Abonita" +msgstr "Ne abonato!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Malsukcesis forigi ŝataton." +msgstr "Ne eblas forigi abonon al vi mem." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Malsukcesis forigi ŝataton." +msgstr "Malsukcesis forigi abonan OMB-ĵetonon." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Malsukcesis forigi ŝataton." +msgstr "Malsukcesis forigi abonon." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Sekvi" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s nun rigardas viajn avizojn ĉe %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bonvenon al %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Neniu difinata uzanto por sol-uzanta reĝimo." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 -#, fuzzy +#: classes/User_group.php:511 msgid "Could not create group." -msgstr "Malsukcesis ĝisdatigi grupon." +msgstr "Malsukcesis krei grupon." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Malsukcesis ĝisdatigi grupon." +msgstr "Malsukcesis ĝisdatigi grupan URI." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "Malsukcesis ĝisdatigi grupon." +msgstr "Malsukcesis ĝisdatigi grupan anecon." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Malsukcesis konservi la profilon." +msgstr "Malsukcesis lokan grupan informon." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 -#, fuzzy +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" -msgstr "Profila agordo" +msgstr "Ŝanĝi vian profilan agordon." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 -#, fuzzy +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" -msgstr "Eraris ĝisdatigi vizaĝbildon." +msgstr "Alŝuti vizaĝbildon" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 -#, fuzzy +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Ŝanĝi vian pasvorton." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" -msgstr "" +msgstr "Ŝanĝi retpoŝtan disponadon." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "La uzanto ne havas profilon." +msgstr "Desegni vian profilon" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 -#, fuzzy +#: lib/accountsettingsaction.php:139 msgid "Other options" -msgstr "Aliaj agordoj" +msgstr "Aliaj" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Alia" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" +msgstr "Sentitola paĝo" + +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 -#, fuzzy +#: lib/action.php:531 msgid "Primary site navigation" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Unua reteja navigado" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Tempstrio pri vi kaj amikoj" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Persona" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Ŝanĝi vian pasvorton." +msgstr "Ŝanĝu la retpoŝtadreson, vizaĝbildon, pasvorton aŭ la profilon" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Konekti al servoj" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Konekti" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ŝanĝi agordojn de la retejo" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" -msgstr "Administranto" +msgstr "Administri" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "Inviti amikojn kaj kolegojn aliĝi vin sur %s" +msgstr "Inviti amikojn kaj kolegojn al %s kun vi" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Inviti" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Desegno por la retejo" +msgstr "Elsaluti el la retejo" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr " Elsaluti" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Krei konton" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registriĝi" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 -#, fuzzy +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ensaluti al la retejo" -#: lib/action.php:491 -#, fuzzy +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Ensaluti" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Helpu min!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Helpo" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "Serĉi homon aŭ tekston" -#: lib/action.php:503 -#, fuzzy +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" -msgstr "Homserĉo" +msgstr "Serĉi" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -#, fuzzy +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "Nova avizo" +msgstr "Reteja anonco" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" -msgstr "" +msgstr "Loka vido" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -#, fuzzy +#: lib/action.php:757 msgid "Page notice" -msgstr "Nova avizo" +msgstr "Paĝa anonco" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" -msgstr "" +msgstr "Dua reteja navigado" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Helpo" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Enkonduko" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Oftaj demandoj" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" -msgstr "" +msgstr "Serva Kondiĉo" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privateco" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Fontkodo" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insigno" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" -msgstr "Licenco de la programaro StatusNet" +msgstr "Permesilo de la programaro StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" +"**%%site.name%%** estas mikrobloga servo kreite de [%%site.broughtby%%](%%" +"site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." -msgstr "" +msgstr "**%%site.name%%** estas mikrobloga servo." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" +"Ĝi utiligas mikroblogilaron de [StatusNet](http://status.net/), versio %s, " +"havebla sub la [GNU Affero Ĝenerala Publika Permesilo](http://www.fsf.org/" +"licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy +#: lib/action.php:954 msgid "Site content license" -msgstr "Licenco de la programaro StatusNet" +msgstr "Reteja enhava permesilo" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." -msgstr "" +msgstr "Enhavo kaj datumo de %1$s estas privata kaj konfidenca." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" +"Enhava kaj datuma aŭtorrajto apartenas al %1$s. Ĉiuj rajtoj rezervitaj." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" +"Enhava kaj datuma aŭtorrajto apartenas al kontribuintoj. Ĉiuj rajtoj " +"rezervitaj." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." -msgstr "" +msgstr "Ĉiuj enhavo kaj datumo ĉe %1$s estas havebla sub permesilo %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 -#, fuzzy +#: lib/action.php:1340 msgid "Pagination" -msgstr "Registrado" +msgstr "Paĝado" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Poste" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Antaŭe" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Ankoraŭ ne eblas trakti foran enhavon." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Ankoraŭ ne eblas trakti enigitan XML-aĵon." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Ankoraŭ ne eblas trakti enigitan Base64-enhavon." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 -#, fuzzy +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "Vi ne rajtas doni al uzanto rolon ĉe ĉi tiu retejo." +msgstr "Vi ne rajtas ŝanĝi ĉe tiu ĉi retejo." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 -#, fuzzy +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." -msgstr "Registriĝo ne permesita." +msgstr "Malpermesas ŝanĝi agordon sur la panelon." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm() ne jam realigita." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings() ne jam realigita." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 -#, fuzzy +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "Malsukcesis konservi vian desegnan agordon" +msgstr "Malsukcesas forigi desegnan agordon." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Baza reteja agordo" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -#, fuzzy +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Retejo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Desegna agordo" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" -msgstr "Aspekto" +msgstr "Desegno" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Uzanta agordo" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Uzanto" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Alira agordo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Voja agordo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Seanca agodo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Forigi avizon" +msgstr "Redakti retejan anoncon" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "Ŝanĝi agordojn de la retejo" +msgstr "Momentfota Agordo" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." +msgstr "API-fonto bezonas leg-skriba aliro, sed vi nur rajtas legi." + +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Ne estas aplikaĵo kun la kosumanta ŝlosilo." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Fuŝa aliro-ĵetono." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Ne estas uzanto kun tiu ĵetono." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Malsukcesis aŭtentigi vin." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Malsukcesis krei alinomon." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Malsukcesis krei aplikaĵon." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 #, fuzzy -msgid "Edit application" -msgstr "Redakti Aplikon" +msgid "Could not issue access token." +msgstr "Malsukcesis enmeti mesaĝon." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Datumbaza eraro enigi la uzanton de *OAuth-aplikaĵo." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Provis revoki nekonatan ĵetonon." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Malsukcesis forigi revokitan ĵetonon." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 -#, fuzzy +#: lib/applicationeditform.php:178 msgid "Icon for this application" -msgstr "Ne forigu ĉi tiun aplikaĵon." +msgstr "Emblemo por tiu ĉi aplikaĵo" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Priskribu vin mem kaj viajn ŝatokupojn per ne pli ol %d signoj" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Priskribu vian aplikaĵon per malpli ol %d literoj." +msgstr[1] "Priskribu vian aplikaĵon per malpli ol %d literoj." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Forigi aplikaĵon" +msgstr "Priskribu vian aplikaĵon" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 -#, fuzzy +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" -msgstr "Vi ne estas la posedanto de ĉi tiu aplikaĵo." +msgstr "URL al la hejmpaĝo de tiu ĉi aplikaĵo" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 -#, fuzzy +#: lib/applicationeditform.php:218 msgid "Source URL" -msgstr "Fontkodo" +msgstr "Fonta URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 -#, fuzzy +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" -msgstr "Vi ne estas la posedanto de ĉi tiu aplikaĵo." +msgstr "Organizo, kiu prizorgi la aplikaĵon" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" -msgstr "" +msgstr "URL al la hejmpaĝo de la organizo" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" -msgstr "" +msgstr "URL por alidirekto post aŭtentigado" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" -msgstr "" +msgstr "Foliumilo" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" -msgstr "" +msgstr "Labortablo" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "Tipo de aplikaĵo, foliumilo aŭ labortablo" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" -msgstr "" +msgstr "Nur-lege" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" -msgstr "" +msgstr "Leg-skribe" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" -msgstr "" +msgstr "Defaŭta aliro por la aplikaĵo: nur-lege aŭ leg-skribe." -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 -#, fuzzy +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Nuligi" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " De " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" -msgstr "" +msgstr "leg-skribe" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" -msgstr "" +msgstr "nur-lege" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." +msgstr "Permesita %1$s - aliro \"%2$s\"." + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Forigi" +msgstr "Revoki" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -#, fuzzy -msgid "Attachments" -msgstr "Ne estas aldonaĵo." +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 -#, fuzzy +#: lib/attachmentlist.php:294 msgid "Author" -msgstr "Aŭtoro(j)" +msgstr "Aŭtoro" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "Antaŭrigardo" +msgstr "Donanto" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "Avizo, kie ĉi tiu aldonaĵo aperos" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 -#, fuzzy msgid "Tags for this attachment" -msgstr "Ne estas tiu aldonaĵo." +msgstr "Etikedoj por ĉi tiu aldonaĵo" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" -msgstr "Pasvorta ŝanĝo" +msgid "Password changing failed." +msgstr "La ŝanĝo de pasvorto maltrafis" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" -msgstr "Pasvorta ŝanĝo" +msgid "Password changing is not allowed." +msgstr "Ne estas permesita ŝanĝi la pasvorton" -#: lib/channel.php:157 lib/channel.php:177 -#, fuzzy +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloki" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" -msgstr "Neniu rezulto." +msgstr "Komandaj rezultoj" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Eraro de Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" -msgstr "" +msgstr "Komando kompleta" -#: lib/channel.php:240 -#, fuzzy +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" -msgstr "Malsukcesis alŝuti" +msgstr "Komando maltrafis" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Avizo kun tiu identigaĵo ne ekzistas." -#: lib/command.php:99 lib/command.php:596 -#, fuzzy -msgid "User has no last notice" -msgstr "La uzanto ne havas profilon." +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "La uzanto ne havas lastan averton." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, fuzzy, php-format -msgid "Could not find a user with nickname %s" -msgstr "Malsukcesis trovi celan uzanton." +#: lib/command.php:128 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "Ne povas trovi uzanton kun kromnomo %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "" +msgid "Could not find a local user with nickname %s." +msgstr "Ne troviĝas loka uzanto kun alnomo %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "Pardonon, la komando ankoraŭ ne realiĝas." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "Iom sensencas puŝeti vin mem!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "Puŝeto sendiĝis" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "Puŝeto sendiĝas al %s" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Abonatoj: %1$s\n" +"Abonantoj: %2$s\n" +"Avizoj: %3$s" -#: lib/command.php:302 -#, fuzzy +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "Ĉi tiu avizo jam estas ŝatata." +msgstr "Avizo ŝatiĝas." -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Vi estas jam grupano." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "La uzanto %1$*s ne povas aliĝi al la grupo %2$*s." +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s aniĝis al grupo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s foriras de grupo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Malsukcesis forigi uzanton %1$s de grupo %2$s." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format +#: lib/command.php:430 +#, php-format msgid "Fullname: %s" -msgstr "Plena nomo" +msgstr "Plennomo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format msgid "Location: %s" -msgstr "Loko" +msgstr "Loko: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, php-format msgid "Homepage: %s" -msgstr "Hejmpaĝo" +msgstr "Hejmpaĝo: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 -#, fuzzy, php-format +#: lib/command.php:442 +#, php-format msgid "About: %s" -msgstr "Enkonduko" +msgstr "Biografio: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s estas fora profilo; vi povas sendi rektan mesaĝon nur al uzanto je sama " +"servilo." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" - -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Direct message to %s sent" -msgstr "Rekta mesaĝo al %s sendiĝis." +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mesaĝo tro longas - longlimo estas %1$d, via estas %2$d" +msgstr[1] "Mesaĝo tro longas - longlimo estas %1$d, via estas %2$d" -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Vi ne povas ripeti vian propran avizon." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "La avizo jam ripetiĝis." +msgstr "Eraris sendi rektan mesaĝon." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "Avizo afiŝiĝas" +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "Avizo de %s ripetiĝas." -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Eraro je ĝisdatigo de fora profilo." +msgstr "Eraris ripeti avizon." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" - -#: lib/command.php:571 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Reply to %s sent" -msgstr "Ripetita al %s" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Avizo tro longas - longlimo estas %1$d lietroj, kaj via mesaĝo longas je %2" +"$d." +msgstr[1] "" +"Avizo tro longas - longlimo estas %1$d lietroj, kaj via mesaĝo longas je %2" +"$d." -#: lib/command.php:573 -#, fuzzy +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "Respondo al %s sendiĝas." + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "Eraris konservi uzanton: nevalida." +msgstr "Eraris sendi avizon." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Specifu nomon de la abonota uzanto." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." -msgstr "" +msgstr "Malsukcesis aboni OMB-profilon per komando." -#: lib/command.php:634 -#, fuzzy, php-format -msgid "Subscribed to %s" -msgstr "Abonita" - -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "" - -#: lib/command.php:664 -#, fuzzy, php-format -msgid "Unsubscribed from %s" -msgstr "Malaboni" - -#: lib/command.php:682 lib/command.php:705 -msgid "Command not yet implemented." -msgstr "" - -#: lib/command.php:685 -#, fuzzy -msgid "Notification off." -msgstr "Neniu konfirma kodo." - -#: lib/command.php:687 -msgid "Can't turn off notification." -msgstr "" - -#: lib/command.php:708 -#, fuzzy -msgid "Notification on." -msgstr "Neniu konfirma kodo." - -#: lib/command.php:710 -#, fuzzy -msgid "Can't turn on notification." -msgstr "Vi ne povas ripeti vian propran avizon." - -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" - -#: lib/command.php:734 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgid "Subscribed to %s." +msgstr "%s abonita" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Malaboni" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Specifu la nomon de uzanto malabonota." -#: lib/command.php:778 -#, fuzzy +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "%s malabonita." + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +msgid "Command not yet implemented." +msgstr "Komando ankoraŭ ne realigita." + +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +msgid "Notification off." +msgstr "Sciigo for." + +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 +msgid "Can't turn off notification." +msgstr "Malsukcesis malŝalti sciigon." + +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +msgid "Notification on." +msgstr "Sciigo en." + +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +msgid "Can't turn on notification." +msgstr "Malsukcesis ŝalti sciigon." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Ensaluta komando malebliĝas." + +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 +#, php-format +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "Ĉi tiu ligilo estas uzebla nur unufoje kaj valida nur 2 minutojn: %s." + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "%s malaboniĝas." + +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." -msgstr "Vi ne estas rajtigita." +msgstr "Vi ne abonas iun ajn." -#: lib/command.php:780 -#, fuzzy +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "Vi jam abonas jenajn uzantojn:" -msgstr[1] "Vi jam abonas jenajn uzantojn:" +msgstr[0] "Vi abonas jenan homon:" +msgstr[1] "Vi abonas jenajn homojn:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." -msgstr "" +msgstr "Neniu abonas vin." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "La homo abonas vin:" +msgstr[1] "La homoj abonas vin:" -#: lib/command.php:822 -#, fuzzy +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." -msgstr "Vi ne estas grupano." +msgstr "Vi ne estas grupano de iu ajn grupo." -#: lib/command.php:824 -#, fuzzy +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "Vi ne estas grupano." -msgstr[1] "Vi ne estas grupano." +msgstr[0] "Vi estas grupano de jena grupo:" +msgstr[1] "Vi estas grupano de jenaj grupoj:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5922,117 +7417,192 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"Komandoj:\n" +"on - ŝalti sciigon\n" +"off - malŝalti sciigon\n" +"help - montri ĉi tiun helpon\n" +"follow <nickname> - aboni uzanton\n" +"groups - listi grupon, kiujn vi aniĝis\n" +"subscriptions - listi viajn abonatojn\n" +"subscribers - listi viajn abonantojn\n" +"leave <nickname> - malabnoi uzanton\n" +"d <nickname> <text> - sendi rektan mesaĝon al uzanto\n" +"get <nickname> - legi la lastan avizon de uzanto\n" +"whois <nickname> - legi profilan informon pri uzanto\n" +"lose <nickname> - ĉesigi la uzanton de sekvi vin\n" +"fav <nickname> - ŝati la lastan avizon de uzanto\n" +"fav #<notice_id> - ŝati la avizon kun la ID\n" +"repeat #<notice_id> - ripeti la avizon kun la ID\n" +"repeat <nickname> - ripeti la lastan avizon de uzanto\n" +"reply #<notice_id> - respondi la avizon kun la ID\n" +"reply <nickname> - respondi la lastan avizon de uzanto\n" +"join <group> - aniĝi al grupo\n" +"login - havi ligilon por ensaluti al reta interfaco\n" +"drop <group> - foriri el grupo\n" +"stats - legi vian staton\n" +"stop - same kiel 'off'\n" +"quit - same kiel 'off'\n" +"sub <nickname> - same kiel 'follow'\n" +"unsub <nickname> - same kiel 'leave'\n" +"last <nickname> - same kiel 'get'\n" +"on <nickname> - ankoraŭ ne realigita.\n" +"off <nickname> - ankoraŭ ne realigita.\n" +"nudge <nickname> - puŝeti la uzanton, ke li ĝisdatigu!\n" +"invite <phone number> - ankoraŭ ne realigita.\n" +"track <word> - ankoraŭ ne realigita.\n" +"untrack <word> - ankoraŭ ne realigita.\n" +"track off - ankoraŭ ne realigita.\n" +"untrack all - ankoraŭ ne realigita.\n" +"tracks - ankoraŭ ne realigita.\n" +"tracking -ankoraŭ ne realigita.\n" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " -msgstr "Neniu konfirma kodo." +msgid "No configuration file found." +msgstr "Ne troviĝas agorda dosiero. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Mi serĉis agordan dosieron je jenaj lokoj: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "Vi eble volas uzi instalilon por ripari tiun ĉi." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." -msgstr "" +msgstr "Al la instalilo." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" -msgstr "" +msgstr "Tujmesaĝilo" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "Ĝisdatiĝo per tujmesaĝilo." -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" -msgstr "" +msgstr "Ĝisdatiĝo per SMM" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" -msgstr "Konekti" +msgstr "Konektoj" -#: lib/connectsettingsaction.php:121 -#, fuzzy +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" -msgstr "Konektita aplikaĵo" +msgstr "Konektitaj aplikaĵoj rajtigitaj" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" -msgstr "" +msgstr "Datumbaza eraro" -#: lib/designsettings.php:105 -#, fuzzy +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "Malsukcesis alŝuti" +msgstr "Alŝuti dosieron" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "Vi povas alŝuti vian personan vizaĝbildon. Dosiero-grandlimo estas %s." +msgstr "" +"Vi povas alŝuti vian propran fonbildon. La dosiera grandlimo estas 2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 #, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "En" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "For" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Restarigi" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." -msgstr "Desegna agordo konservita." +msgstr "Desegnaj defaŭltoj konserviĝas." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "Forigi la avizon" +msgstr "Neŝati la avizon" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "Forigi la avizon" +msgstr "Ŝati la avizon" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" -msgstr "" +msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" -msgstr "" +msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Fluoj" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "Filtrilo-etikedoj" #: lib/galleryaction.php:131 -#, fuzzy msgid "All" -msgstr "Permesi" +msgstr "Ĉiuj" #: lib/galleryaction.php:139 msgid "Select tag to filter" -msgstr "" +msgstr "Eletu etikedon por filtrado" #: lib/galleryaction.php:140 -#, fuzzy msgid "Tag" -msgstr "Markiloj" +msgstr "Etikedo" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" @@ -6045,196 +7615,283 @@ msgstr "Iri" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Donu al la uzanto rolon \"%s\"" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusklaj literoj aŭ ciferoj, neniu interpunkcio aŭ spaco" #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL de via hejmpaĝo, blogo aŭ profilo ĉe alia retejo" +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL de la hejmpaĝo aŭ blogo de la grupo aŭ temo" #: lib/groupeditform.php:168 msgid "Describe the group or topic" -msgstr "" +msgstr "Priskribo de grupo aŭ temo" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Priskribu vin mem kaj viajn ŝatokupojn per ne pli ol %d signoj" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Priskribo de grupo aŭ temo, apenaŭ je %d literoj" +msgstr[1] "Priskribo de grupo aŭ temo, apenaŭ je %d literoj" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 #, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Kie vi estas, ekzemple \"Urbo, Ŝtato (aŭ Regiono), Lando\"" - -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" +"Loko de la grupo, se iu ajn, ekzemple \"Urbo, Stato (aŭ Regiono), Lando\"" -#: lib/groupnav.php:85 -#, fuzzy +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Kromaj alnomoj por la grupo, apartigita per komo aŭ spaco, apenaŭ %d literoj" +msgstr[1] "" +"Kromaj alnomoj por la grupo, apartigita per komo aŭ spaco, apenaŭ %d literoj" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "Grupoj" +msgstr "Grupo" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Bloki" - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "%s profiloj blokitaj" - -#: lib/groupnav.php:108 -#, fuzzy, php-format -msgid "Edit %s group properties" -msgstr "Redakti %s grupon" - -#: lib/groupnav.php:113 -#, fuzzy -msgid "Logo" -msgstr " Elsaluti" - -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "Add or edit %s logo" -msgstr "" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupo %s" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Grupanoj" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Grupanoj de %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Blokito" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "Blokito de %s" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "Redakti agordon de grupo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "Emblemo" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "Aldoni aŭ redakti emblemon de %s" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "" +msgstr "Aldoni aŭ redakti desegnon de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 -#, fuzzy msgid "Groups with most members" -msgstr "%s grupanoj" +msgstr "Grupoj kun plej multe da membroj" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupoj kun plej multe da avizoj" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Etikedoj en avizoj de grupo %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" -msgstr "" +msgstr "La paĝo estas ne havebla je la komunikil-tipo, kiun vi akceptas" #: lib/imagefile.php:72 #, fuzzy msgid "Unsupported image file format." msgstr "Formato ne subtenata." -#: lib/imagefile.php:88 -#, fuzzy, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "" -"Vi povas alŝuti emblemo-bildon por via grupo. Dosiero-grandlimo estas $s." +msgstr "La dosiero tro grandas. Dosiera grandlimo estas %s." -#: lib/imagefile.php:93 -#, fuzzy +#: lib/imagefile.php:95 msgid "Partial upload." -msgstr "Neniu dosiero alŝutiĝas." +msgstr "Parta alŝuto." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." -msgstr "" +msgstr "Sisteme eraris alŝuti dosieron." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." -msgstr "" +msgstr "Ne bildo aŭ dosiero difektita." -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." -msgstr "Perdiĝis nia dosiera datumo." +msgstr "Perdiĝis nian dosieron." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" -msgstr "" +msgstr "Nekonata dosiertipo" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/jabber.php:567 #, php-format msgid "Unknown inbox source %d." -msgstr "" - -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "Ensaluti" +msgstr "Nekonata alvenkesta fonto %d" #: lib/leaveform.php:114 msgid "Leave" msgstr "Forlasi" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" msgstr "Ensaluti per via uzantnomo kaj pasvorto." #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "" +msgstr "Krei novan konton" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 -#, fuzzy msgid "Email address confirmation" -msgstr "Retpoŝtadreso" +msgstr "Retpoŝtadresa konfirmo" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" +"Saluton, %s.\n" +"\n" +"Iu ĵus entajpis tiun ĉi retpoŝtadreson ĉe %s.\n" +"\n" +"Se faris vi tion, kaj vi volas konfirmi vian eniron, uzu la URL sube:\n" +"\n" +"%s\n" +"\n" +"Se ne, simple ignoru ĉi mesaĝon.\n" +"\n" +"Dankon por via tempo,\n" +"%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 -#, fuzzy, php-format +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 +#, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s invitis vin kunaliĝi ĉe %2$s" +msgstr "%1$s nun rigardas viajn avizojn ĉe %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"Se vi kredas, ke ĉi tiun konton iu misuzas, vi rajtas bloki ĝin de via " +"abonanto-listo kaj raporti ĝin kiel rubmesaĝanto al administrantoj ĉe %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6242,27 +7899,41 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" +"%2$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %7$s\n" +msgstr "" +"%1$s nun rigardas vian avizojn ĉe %2$s.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"fidele via,\n" "%7$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" -msgstr "" +"Ŝanĝu vian retpoŝtadreson aŭ la sciigan agordon ĉe %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format -msgid "Bio: %s" -msgstr "Biografio" - -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 -#, fuzzy, php-format -msgid "New email address for posting to %s" -msgstr "Krei novan retpoŝtadreson por afiŝado kaj nuligi la antaŭan." - -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format +msgid "Bio: %s" +msgstr "Biografio: %s" + +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, php-format +msgid "New email address for posting to %s" +msgstr "Nova retpoŝta adreso por afiŝi ĉe %s" + +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6271,35 +7942,47 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" +"Vi havas novan afiŝan adreson ĉe %1$s.\n" +"\n" +"Sendu mesaĝon al %2$s por afiŝii novan avizon.\n" +"\n" +"Pli da retpoŝta gvido troviĝas ĉe %3$s.\n" +"\n" +"Fidele via,\n" +"%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 -#, fuzzy, php-format +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 +#, php-format msgid "%s status" -msgstr "Stato de %1$s ĉe %2$s" +msgstr "%s stato" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 -#, fuzzy +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" -msgstr "Neniu konfirma kodo." +msgstr "SMS-a konfirmo" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" -msgstr "" +msgstr "%s: konfirmi ke vi havas la telefonnumeron per tiu ĉi kodo:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "Vin puŝetis %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6314,15 +7997,30 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) scivolas, kion faras vi lastatempe kaj invitas al vi afiŝi kelke " +"da novaĵoj.\n" +"\n" +"Do sciigu nin pri vi :)\n" +"\n" +"%3$s\n" +"\n" +"Ne respondu al tiu ĉi mesaĝo; ili ne ricevos ĝin.\n" +"\n" +"kun bona espero,\n" +"%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 -#, fuzzy, php-format +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 +#, php-format msgid "New private message from %s" -msgstr "Rektaj mesaĝoj de %s" +msgstr "Nova privata mesaĝo de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6340,15 +8038,34 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) sendis al vi privatan mesaĝon:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"Vi povas respondi al lia mesaĝon jene:\n" +"\n" +"%4$s\n" +"\n" +"Ne respondu al tiu ĉi mesaĝon; li ne ricevos ĝin.\n" +"\n" +"Kun bona espero,\n" +"%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "Sendu al mi mesaĝon tiam, kiam iu ŝatas mian avizon ." +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%s (@%s) ŝatis vian avizon" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6368,23 +8085,49 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) ĵus aldoniss vian mesaĝon ĉe %2$s al sia ŝatolisto.\n" +"\n" +"La URL de via avizo estas:\n" +"\n" +"%3$s\n" +"\n" +"La enhavo de via avizo estas:\n" +"\n" +"%4$s\n" +"\n" +"Vi povas legi la ŝatoliston de %1$s jene:\n" +"\n" +"%5$s\n" +"\n" +"fidele via,\n" +"%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" "\n" "\t%s" msgstr "" +"La tutan interparolon oni povas legi jene:\n" +"\n" +"%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s (@%s) afiŝis avizon al vi" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6410,20 +8153,44 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" +"%1$s (@%9$s) ĵus afiŝis al vi (\"@-respondo\") ĉe %2$s.\n" +"\n" +"La avizo estas jene:\n" +"\n" +"\t%3$s\n" +"\n" +"Kaj enhavas:\n" +"\n" +"\t%4$s\n" +"\n" +"%5$sVi povas re-respondi jene:\n" +"\n" +"\t%6$s\n" +"\n" +"Listo de ĉiuj @-respondoj al vi estas jene:\n" +"\n" +"%7$s\n" +"\n" +"fidele via,\n" +"%2$s\n" +"\n" +"P.S. Vi rajtas malŝalti tian ĉi retpoŝtan sciigon ĉi tie: %8$s\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Nur uzanto povas legi sian propran paŝton." #: 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 "" +"Vi ne ricevis privatan mesaĝon. Vi povas sendi privatan mesaĝon al iu kaj " +"interparoli kun ili. Homo sendas al vi mesaĝon al vi sole." -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "" +msgstr "de" #: lib/mailhandler.php:37 #, fuzzy @@ -6432,311 +8199,339 @@ msgstr "Malsukcesis ĝisdatigi uzanton" #: lib/mailhandler.php:42 msgid "Not a registered user." -msgstr "" +msgstr "Ne registrita uzanto" #: lib/mailhandler.php:46 -#, fuzzy msgid "Sorry, that is not your incoming email address." -msgstr "Tiu ne estas via retpoŝtadreso." +msgstr "Pardonon, tiu ne estas via alvena retpoŝtadreso." #: lib/mailhandler.php:50 -#, fuzzy msgid "Sorry, no incoming email allowed." -msgstr "Ne estas alvena retpoŝtadreso" +msgstr "Pardonon, neniu alvena mesaĝo permesiĝas." -#: lib/mailhandler.php:228 -#, fuzzy, php-format +#: lib/mailhandler.php:229 +#, php-format msgid "Unsupported message type: %s" -msgstr "Formato ne subtenata." +msgstr "Nesubtenata mesaĝo-tipo: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." -msgstr "" +msgstr "Databaze eraris konservi vian dosieron. Bonvole reprovu." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"Alŝutata dosiero superas la dosierujon upload_max_filesize (alŝuta " +"grandlimo) en php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"Alŝutata dosiero superas la dosierujon MAX_FILE_SIZE (Alŝuta grandlimo) " +"difinitan per HTML formo." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "Alŝutata dosiero venas nur parte." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." -msgstr "" +msgstr "Mankas labora dosierujo." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." -msgstr "" +msgstr "Malsukcesis skribi dosieron al disko." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." -msgstr "" +msgstr "Dosiera grandeco superas uzantan kvoton." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Dosiero ne povas translokiĝi al celata dosierujo." -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr " Malsukcesis certigi fontan uzanton." +msgstr "Malsukcesis decidi dosieran MIME-tipon." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" +"\"%1$s\" ne estas subtenata tipo ĉe tiu ĉi servilo. Provu per plu da %2$s " +"formato." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "" +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" ne estas subtenata tipo ĉe tiu ĉi servilo." #: lib/messageform.php:120 -#, fuzzy msgid "Send a direct notice" -msgstr "Forigi avizon" +msgstr "Sendi rektan avizon" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Elektu peranton" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Ne abonato!" + +#: lib/messageform.php:153 msgid "To" msgstr "Al" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Haveblaj karakteroj" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Sendi" -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "Nova avizo" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Kromnomo devas havi nur minuskulajn literojn kaj numerojn sed neniun spacon." -#: lib/noticeform.php:173 +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "Sendi avizon" + +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "Kio novas, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" -msgstr "" +msgstr "Aldoni" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" -msgstr "" +msgstr "Aldoni dosieron" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "" - -#: lib/noticeform.php:215 -#, fuzzy -msgid "Do not share my location" -msgstr "Ne forigu ĉi tiun aplikaĵon." +msgstr "Sciigi mian lokon" #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Ne sciigi mian lokon" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"Pardonon, legi vian lokon estas pli malrapide, ol ni pensis. Bonvolu reprovi " +"poste." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 -#, fuzzy +#: lib/noticelist.php:451 msgid "N" -msgstr "Ne" +msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" -msgstr "" +msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" -msgstr "" +msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" -msgstr "" +msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "al" -#: lib/noticelist.php:568 -#, fuzzy +#: lib/noticelist.php:517 +msgid "web" +msgstr "TTT" + +#: lib/noticelist.php:583 msgid "in context" -msgstr "Neniu enhavo!" +msgstr "kuntekste" -#: lib/noticelist.php:603 -#, fuzzy +#: lib/noticelist.php:618 msgid "Repeated by" -msgstr "Ripetita" +msgstr "Ripetita de" -#: lib/noticelist.php:630 -#, fuzzy +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "Forigi la avizon" +msgstr "Respondi ĉi tiun avizon" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" -msgstr "" +msgstr "Respondi" -#: lib/noticelist.php:675 -#, fuzzy +#: lib/noticelist.php:690 msgid "Notice repeated" -msgstr "Avizo viŝiĝas" +msgstr "Avizo ripetiĝas" #: lib/nudgeform.php:116 -#, fuzzy msgid "Nudge this user" -msgstr "Forigi la uzanton" +msgstr "Puŝeti la uzanton" #: lib/nudgeform.php:128 -#, fuzzy msgid "Nudge" -msgstr "Puŝeto sendiĝis" +msgstr "Puŝeti" #: lib/nudgeform.php:128 -#, fuzzy msgid "Send a nudge to this user" -msgstr "Vi ne povas sendi mesaĝon al la uzanto." +msgstr "Sendi puŝeton al la uzanto" -#: lib/oauthstore.php:283 -#, fuzzy -msgid "Error inserting new profile" -msgstr "Eraro je ĝisdatigo de fora profilo." +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Eraris enmeti novan profilon" -#: lib/oauthstore.php:291 -#, fuzzy -msgid "Error inserting avatar" -msgstr "Eraris konservi uzanton: nevalida." +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Eraris enmeti novan vizaĝbildon." -#: lib/oauthstore.php:306 -#, fuzzy -msgid "Error updating remote profile" -msgstr "Eraro je ĝisdatigo de fora profilo." +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Eraris enmeti foran profilon." -#: lib/oauthstore.php:311 -#, fuzzy -msgid "Error inserting remote profile" -msgstr "Eraro je ĝisdatigo de fora profilo." +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Refoja avizo." -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Forigi avizon" - -#: lib/oauthstore.php:490 -#, fuzzy +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." -msgstr "Malsukcesis enmeti konfirmkodon." +msgstr "Eraris enmeti novan abonon." -#: lib/personalgroupnav.php:99 -#, fuzzy +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persona" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" -msgstr "" +msgstr "Respondoj" -#: lib/personalgroupnav.php:114 -#, fuzzy +#: lib/personalgroupnav.php:117 msgid "Favorites" -msgstr "Aldoni al ŝatolisto" +msgstr "Ŝatolisto" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" -msgstr "" +msgstr "Alvenkesto" -#: lib/personalgroupnav.php:126 -#, fuzzy +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" -msgstr "Ne estas alvena retpoŝtadreso" +msgstr "Viaj alvenaj mesaĝoj" -#: lib/personalgroupnav.php:130 -#, fuzzy +#: lib/personalgroupnav.php:133 msgid "Outbox" -msgstr "Elirkesto de %s" +msgstr "Elirkesto" -#: lib/personalgroupnav.php:131 -#, fuzzy +#: lib/personalgroupnav.php:134 msgid "Your sent messages" -msgstr "Persona mesaĝo" +msgstr "Viaj senditaj mesaĝoj" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Etikedoj en avizoj de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" -msgstr "" +msgstr "Nekonata" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 -#, fuzzy msgid "Subscriptions" -msgstr "Priskribo" +msgstr "Abonatoj" #: lib/profileaction.php:126 -#, fuzzy msgid "All subscriptions" -msgstr "Priskribo" +msgstr "Ĉiuj abonatoj" #: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 -#, fuzzy msgid "Subscribers" -msgstr "Aboni" +msgstr "Abonantoj" #: lib/profileaction.php:161 -#, fuzzy msgid "All subscribers" -msgstr "Malaboni" +msgstr "Ĉiuj abonantoj" #: lib/profileaction.php:191 -#, fuzzy msgid "User ID" -msgstr "Uzanto" +msgstr "ID de uzanto" #: lib/profileaction.php:196 -#, fuzzy msgid "Member since" -msgstr "Grupanoj" +msgstr "Ano ekde" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "" +msgstr "Taga meznombro" #: lib/profileaction.php:264 -#, fuzzy msgid "All groups" -msgstr "Grupoj de %s" +msgstr "Ĉiuj grupoj" #: lib/profileformaction.php:123 msgid "Unimplemented method." -msgstr "" +msgstr "Nerealiĝita metodo" #: lib/publicgroupnav.php:78 msgid "Public" @@ -6751,14 +8546,12 @@ msgid "Recent tags" msgstr "Freŝaj etikedoj" #: lib/publicgroupnav.php:88 -#, fuzzy msgid "Featured" -msgstr "Elstaraj uzantoj" +msgstr "Elstara" #: lib/publicgroupnav.php:92 -#, fuzzy msgid "Popular" -msgstr "Populara avizo" +msgstr "Populara" #: lib/redirectingaction.php:95 #, fuzzy @@ -6766,75 +8559,77 @@ msgid "No return-to arguments." msgstr "Ne estas aldonaĵo." #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Forigi la avizon" +msgstr "Ĉu ripeti la avizon?" #: lib/repeatform.php:132 msgid "Yes" msgstr "Jes" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Forigi la avizon" +msgstr "Ripeti la avizon" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Bloki la uzanton de la grupo" +msgstr "Revoki rolon %s de la uzanto" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Metodo de API ne troviĝas." #: lib/sandboxform.php:67 msgid "Sandbox" -msgstr "" +msgstr "Provejo" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "Malbloki ĉi tiun uzanton" +msgstr "Provejigi la uzanton" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" -msgstr "" +msgstr "Serĉi ĉe retejo" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" -msgstr "" +msgstr "Serĉvorto(j)" -#: lib/searchaction.php:127 -#, fuzzy +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Homserĉo" +msgstr "Serĉi" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" -msgstr "" +msgstr "Serĉa gvido" #: lib/searchgroupnav.php:80 -#, fuzzy msgid "People" -msgstr "Homserĉo" +msgstr "Homon" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "Serĉi homon ĉe la retejo" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "Serĉi enhavon ĉe la retejo" #: lib/searchgroupnav.php:85 -#, fuzzy msgid "Find groups on this site" -msgstr "grupoj ĉe %s" +msgstr "Serĉi grupon ĉe la retejo" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "Sentitola sekcio" #: lib/section.php:106 msgid "More..." @@ -6845,34 +8640,32 @@ msgid "Silence" msgstr "Silento" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Forigi la uzanton" +msgstr "Silentigi la uzanton" #: lib/subgroupnav.php:83 #, php-format msgid "People %s subscribes to" -msgstr "" +msgstr "Abonatoj de %s" #: lib/subgroupnav.php:91 #, php-format msgid "People subscribed to %s" -msgstr "" +msgstr "Abonantoj de %s" #: lib/subgroupnav.php:99 -#, fuzzy, php-format +#, php-format msgid "Groups %s is a member of" -msgstr "Grupoj de %2$s ĉe %1$s." +msgstr "Grupoj de %s" #: lib/subgroupnav.php:105 -#, fuzzy msgid "Invite" msgstr "Inviti" #: lib/subgroupnav.php:106 -#, fuzzy, php-format +#, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "Inviti amikojn kaj kolegojn aliĝi vin sur %s" +msgstr "Inviti amikojn kaj kolegojn al %s kun vi" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6885,209 +8678,272 @@ msgid "People Tagcloud as tagged" msgstr "" #: lib/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "Noto" +msgstr "Nenio" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nevalida dosiernomo." #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "Ĉi tiu servilo ne povas disponi desegnan alŝuton sen ZIP-a subteno." #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "La desegna dosiero mankas aŭ malsukcesis alŝuti." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." -msgstr "Eraris ĝisdatigi vizaĝbildon." +msgstr "Malsukcesis konservi desegnon." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Nevalida desegno: fuŝa dosieruja sturkturo." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Alŝutata desegno tro grandas; ĝi estu apenaŭ %d bitoj sen densigado." +msgstr[1] "" +"Alŝutata desegno tro grandas; ĝi estu apenaŭ %d bitoj sen densigado." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "Nevalida desegna arkivo: mankas dosiero css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"Desegno enhavas nevalidan dosieran aŭ dosierujan nomon. Uzu nur ASCII-" +"literaron, ciferojn, substrekon kaj minussignon." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Desegno enhavas malsekuran dosiersufikson; eble malsukuras." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "Desegno enhavas dosieron de tipo \".%s\", kiu malpermesiĝas." -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Eraro je ĝisdatigo de fora profilo." +msgstr "Eraris malfermi desegnan arkivon." #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "Pintaj afiŝantoj" + +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Malbloki" #: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "" +msgstr "Malprovejigi" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "Malbloki ĉi tiun uzanton" +msgstr "Malprovejigi la uzanton" #: lib/unsilenceform.php:67 -#, fuzzy msgid "Unsilence" -msgstr "Silento" +msgstr "Nesilentigi" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "Malbloki ĉi tiun uzanton" +msgstr "Nesilentigi la uzanton" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -#, fuzzy msgid "Unsubscribe from this user" -msgstr "Malbloki ĉi tiun uzanton" +msgstr "Malaboni la uzanton" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "Malaboni" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "La uzanto ne havas profilon." -#: lib/userprofile.php:117 -#, fuzzy +#: lib/userprofile.php:119 msgid "Edit Avatar" -msgstr "Vizaĝbildo" +msgstr "Redakti vizaĝbildon" -#: lib/userprofile.php:234 lib/userprofile.php:248 -#, fuzzy +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" -msgstr "Uzantaj grupoj" +msgstr "Nekonata ago" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." -msgstr "" +msgstr "Forigante uzanton..." -#: lib/userprofile.php:263 -#, fuzzy +#: lib/userprofile.php:265 msgid "Edit profile settings" -msgstr "Profila agordo" +msgstr "Redakti profilan agordon" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Redakti" -#: lib/userprofile.php:287 -#, fuzzy +#: lib/userprofile.php:289 msgid "Send a direct message to this user" -msgstr "Vi ne povas sendi mesaĝon al la uzanto." +msgstr "Sendi rektan mesaĝon a ĉi tiu uzanto" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Mesaĝo" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderigi" -#: lib/userprofile.php:364 -#, fuzzy +#: lib/userprofile.php:369 msgid "User role" -msgstr "Uzantaj grupoj" +msgstr "Uzanta rolo" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administranto" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderanto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "antaŭ kelkaj sekundoj" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "antaŭ ĉirkaŭ unu minuto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "antaŭ ĉirkaŭ %d minutoj" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "antaŭ ĉirkaŭ unu minuto" +msgstr[1] "antaŭ ĉirkaŭ %d minutoj" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "antaŭ ĉirkaŭ unu horo" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "antaŭ ĉirkaŭ %d horoj" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "antaŭ ĉirkaŭ unu horo" +msgstr[1] "antaŭ ĉirkaŭ %d horoj" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "antaŭ ĉirkaŭ unu tago" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 -#, fuzzy, php-format -msgid "about %d days ago" -msgstr "antaŭ ĉirkaŭ unu tago" +#: lib/util.php:1327 +#, php-format +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "antaŭ ĉirkaŭ unu tago" +msgstr[1] "antaŭ ĉirkaŭ %d tagoj" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 -#, fuzzy +#: lib/util.php:1330 msgid "about a month ago" -msgstr "antaŭ ĉirkaŭ unu minuto" +msgstr "Antaŭ ĉrikaŭ unu monato" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 -#, fuzzy, php-format -msgid "about %d months ago" -msgstr "antaŭ ĉirkaŭ %d minutoj" +#: lib/util.php:1334 +#, php-format +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "antaŭ ĉirkaŭ unu monato" +msgstr[1] "antaŭ ĉirkaŭ %d monatoj" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 -#, fuzzy +#: lib/util.php:1337 msgid "about a year ago" -msgstr "antaŭ ĉirkaŭ unu tago" +msgstr "antaŭ ĉirkaŭ unu jaro" -#: lib/webcolor.php:82 -#, fuzzy, php-format +#: lib/webcolor.php:80 +#, php-format msgid "%s is not a valid color!" -msgstr "Ĉefpaĝo ne estas valida URL." +msgstr "%s ne estas valida koloro!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s ne estas valida koloro! Uzu 3 aŭ 6 deksesumaĵojn." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mesaĝo tro longas - longlimo estas %1$d, via estas %2$d" +msgstr[1] "Mesaĝo tro longas - longlimo estas %1$d, via estas %2$d" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Grando nevalida." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Neniu uzanto-ID specifiĝas." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index f7e57911c2..39cebc687a 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -1,160 +1,199 @@ -# Translation of StatusNet to Spanish +# Translation of StatusNet - Core to Spanish (Español) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Crazymadlover -# Author@translatewiki.net: Locos epraix -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: PerroVerd -# Author@translatewiki.net: Pertile -# Author@translatewiki.net: Peter17 -# Author@translatewiki.net: Translationista +# Author: Brion +# Author: Crazymadlover +# Author: Locos epraix +# Author: McDutchie +# Author: Patcito +# Author: PerroVerd +# Author: Peter17 +# Author: Translationista # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:22+0000\n" -"Language-Team: Spanish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:37+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Acceder" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Configuración de acceso de la web" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registro" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "¿Prohibir a los usuarios anónimos (no conectados) ver el sitio?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privado" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Haz que el registro sea sólo con invitaciones." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Invitar sólo" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Inhabilitar nuevos registros." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Cerrado" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Guardar la configuración de acceso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Guardar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "No existe tal página." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No existe ese usuario." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s y sus amistades, página %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s y sus amistades" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed de los amigos de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed de los amigos de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed de los amigos de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -162,7 +201,9 @@ msgstr "" "Esta es la línea temporal de %s y amistades, pero nadie ha publicado nada " "todavía." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -171,17 +212,22 @@ msgstr "" "Esta es la línea temporal de %s y amistades, pero nadie ha publicado nada " "todavía." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puedes intentar [zarandear a %1$s](../%2$s) desde su perfil o [publicar algo " -"a ellos](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Puedes intentar [dar un toque a %1$s](../%2$s) desde su perfil o [publicar " +"algo a ellos](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -190,59 +236,80 @@ msgstr "" "Por qué no [registrar una cuenta](%%%%action.register%%%%) y luego zarandear " "a %s o publicar una nota a ellos?" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Tú y tus amistades" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "¡Actualizaciones de %1$s y sus amistades en %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Método de API no encontrado." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Este método requiere un POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -250,351 +317,533 @@ msgstr "" "Tienes que especificar un parámetro llamdao 'dispositivo' con un valor a " "elegir entre: sms, im, ninguno." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "No se pudo actualizar el usuario." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "El usuario no tiene un perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "No se pudo guardar el perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"El servidor no ha podido manejar tanta información del tipo POST (% de " +"bytes) a causa de su configuración actual." +msgstr[1] "" "El servidor no ha podido manejar tanta información del tipo POST (% de " "bytes) a causa de su configuración actual." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "No se pudo grabar tu configuración de diseño." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "No se pudo actualizar tu diseño." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "línea temporal de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Suscripciones %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritos" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Miembros del grupo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "¡No puedes bloquearte a tí mismo!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Falló bloquear usuario." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Falló desbloquear usuario." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Mensajes directos de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Todos los mensajes directos enviados desde %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Mensajes directos a %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Todos los mensajes directos enviados a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "¡Sin texto de mensaje!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Demasiado largo. Tamaño máx. de los mensajes es %d caracteres." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Demasiado largo. Tamaño máx. de los mensajes es %d caracteres." +msgstr[1] "Demasiado largo. Tamaño máx. de los mensajes es %d caracteres." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "No se encuentra usuario receptor." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "No se puede enviar mensajes directos a usuarios que no son tu amigo." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "No te auto envíes un mensaje; dícetelo a ti mismo." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "No se encontró estado para ese ID" +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Este status ya está en favoritos." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "No se pudo crear favorito." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Este status no es un favorito." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "No se pudo borrar favorito." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "No se pudo seguir al usuario: Perfil no encontrado." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "No puede seguir al usuario: %s ya esta en su lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "No se pudo dejar de seguir al usuario. Usuario no encontrado" -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "No puedes dejar de seguirte a ti mismo." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "Deben proveerse dos IDs válidos o nombres en pantalla." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "No se pudo determinar el usuario fuente." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "No se pudo encontrar ningún usuario de destino." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"El usuario debe tener solamente letras minúsculas y números y no puede tener " -"espacios." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "El usuario ya existe. Prueba con otro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Usuario inválido" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "La página de inicio no es un URL válido." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Tu nombre es demasiado largo (max. 255 carac.)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "La descripción es demasiado larga (máx. %d caracteres)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "La descripción es demasiado larga (máx. %d caracteres)." +msgstr[1] "La descripción es demasiado larga (máx. %d caracteres)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "La ubicación es demasiado larga (máx. 255 caracteres)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "¡Muchos seudónimos! El máximo es %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "¡Muchos seudónimos! El máximo es %d." +msgstr[1] "¡Muchos seudónimos! El máximo es %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Alias inválido: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "El alias \"%s\" ya está en uso. Intenta usar otro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "El alias no puede ser el mismo que el usuario." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Grupo no encontrado." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Ya eres miembro de ese grupo" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Has sido bloqueado de ese grupo por el administrador." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "No se pudo unir el usuario %s al grupo %s" +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "No eres miembro de este grupo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "No se pudo eliminar al usuario %1$s del grupo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grupos de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s grupos %2$s es un miembro de." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Grupos %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "Grupos en %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Carga falló." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Token de acceso inválido especificado." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "No se ha provisto de un parámetro oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Token inválido." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "No estás autorizado." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Hubo un problema con tu clave de sesión. Por favor, intenta nuevamente." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "¡Usuario o contraseña inválidos!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "" -"Error de la base de datos durante la eliminación del usuario de la " -"aplicación OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Error de base de datos al insertar usuario de la aplicación OAuth." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"El token de solicitud %s ha sido autorizado. Por favor, cámbialo por un " -"token de acceso." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "El token de solicitud %2 ha sido denegado y revocado." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Envío de formulario inesperado." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Una aplicación quisiera conectarse a tu cuenta" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permitir o denegar el acceso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"La aplicación <strong>%1$s</strong> por <strong>%2$s</strong> solicita " +"permiso para <strong>%3$s</strong> la información de tu cuenta %4$s. Sólo " +"debes dar acceso a tu cuenta %4$s a terceras partes en las que confíes." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -605,242 +854,628 @@ msgstr "" "permiso para <strong>%3$s</strong> la información de tu cuenta %4$s. Sólo " "debes dar acceso a tu cuenta %4$s a terceras partes en las que confíes." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Cuenta" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Usuario" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Contraseña" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Denegar" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancelar" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Permitir" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "Permitir o denegar el acceso a la información de tu cuenta." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Confirmación de mensajería instantánea cancelada." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "El token de solicitud %2 ha sido denegado y revocado." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "No estás autorizado." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "No estás autorizado." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Este método requiere un PUBLICAR O ELIMINAR" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "No puedes borrar el estado de otro usuario." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." -msgstr "No existe ese aviso." +msgstr "No existe ese mensaje." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "No puedes repetir tus propias notificaciones." +msgstr "No puedes repetir tus propios mensajes" -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Esta notificación ya se ha repetido." +msgstr "Este mensaje ya se ha repetido." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Método de API no encontrado." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato no soportado." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status borrado." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "No hay estado para ese ID" +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "No se puede eliminar este mensaje." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Borrar mensaje" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "El cliente debe proveer un parámetro de 'status' con un valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "La entrada es muy larga. El tamaño máximo es de %d caracteres." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "El mensaje es muy largo. El tamaño máximo es de %d caracteres." +msgstr[1] "El mensaje es muy largo. El tamaño máximo es de %d caracteres." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "No encontrado." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Método de API no encontrado." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" -"El tamaño máximo de la notificación es %d caracteres, incluyendo el URL " -"adjunto." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"El tamaño máximo del mensaje es %d caracteres, incluyendo el URL adjunto." +msgstr[1] "" +"El tamaño máximo del mensaje es %d caracteres, incluyendo el URL adjunto." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato no soportado." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritos de %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s actualizaciones favoritas de %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "No se pudo actualizar el grupo." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualizaciones que mencionan %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "actualizaciones de %1$s en respuesta a las de %2$s / %3$s" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "línea temporal pública de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "¡Actualizaciones de todos en %s!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Método no implementado." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetido a %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repeticiones de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "Avisos etiquetados con %s" +msgstr "Mensajes etiquetados con %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizaciones etiquetadas con %1$s en %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Sólo el usuario puede leer sus bandejas de correo." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Buscar en el contenido de mensajes" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "No existe ningún mensaje con ese ID." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Método API en construcción." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Método de API no encontrado." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "No existe tal perfil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "No se pudo insertar una nueva suscripción." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Buscar en el contenido de mensajes" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Desconocido" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Agregar a favoritos" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "No existe tal perfil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Miembros del grupo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%s es miembro de los grupos" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Desconocido" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Todos los miembros" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "No existe tal archivo." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "No se pudo borrar favorito." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "No existe ese grupo." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Todos los miembros" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Método de API no encontrado." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "No existe tal perfil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "No te has suscrito a ese perfil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "No se pudo eliminar la auto-suscripción." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Personas suscritas a %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tipo de archivo desconocido" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "No existe tal archivo adjunto." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Ningún nombre de usuario." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ningún tamaño." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Tamaño inválido." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Imagen" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Puedes subir tu imagen personal. El tamaño máximo de archivo es %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Usuario sin perfil coincidente." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuración de imagen" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vista previa" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Borrar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Subir" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Ningún archivo fue subido." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Elige un área cuadrada para que sea tu imagen" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Se perdió nuestros datos de archivo." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Imagen actualizada" -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Error al actualizar la imagen." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Imagen borrada." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Ya has bloqueado a este usuario." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquear usuario." -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -852,176 +1487,222 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "No bloquear a este usuario" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Sí" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloquear este usuario." -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "No se guardó información de bloqueo." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "No existe ese grupo." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s perfiles bloqueados" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s perfiles bloqueados, página %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" "Una lista de los usuarios que han sido bloqueados para unirse a este grupo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Desbloquear usuario de grupo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Desbloquear este usuario" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Postear a %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Ningún código de confirmación." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Código de confirmación no encontrado." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "¡Ese código de confirmación no es para ti!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Tipo de dirección %s desconocida." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Esa dirección ya fue confirmada." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "No se pudo actualizar el usuario." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "No se pudo eliminar la confirmación de correo electrónico." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "No se pudo eliminar la confirmación de mensajería instantánea." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmar la dirección" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "La dirección \"%s\" fue confirmada para tu cuenta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversación" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" -msgstr "Avisos" +msgstr "Mensajes" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Debes estar registrado para borrar una aplicación." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Aplicación no encontrada." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "No eres el propietario de esta aplicación." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Hubo problemas con tu clave de sesión." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Eliminar la aplicación" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1032,31 +1713,93 @@ msgstr "" "conexiones de usuario existente." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "No eliminar esta aplicación" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Borrar esta aplicación" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Debes estar conectado para dejar un grupo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Ningún nombre de usuario o ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "No eres miembro de este grupo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "No se pudo actualizar el grupo." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s ha dejado el grupo %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Borrar usuario" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"¿Realmente deseas eliminar este usuario? Esto borrará de la base de datos " +"todos los datos sobre el usuario, sin dejar una copia de seguridad." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "No eliminar este mensaje" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Borrar este usuario" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "No conectado." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "No se puede eliminar este aviso." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1064,23 +1807,26 @@ msgstr "" "Estás a punto de eliminar un mensaje permanentemente. Una vez hecho esto, no " "lo puedes deshacer." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" -msgstr "Borrar aviso" +msgstr "Borrar mensaje" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "¿Estás seguro de que quieres eliminar este aviso?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "No eliminar este mensaje" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" -msgstr "Borrar este aviso" +msgstr "Borrar este mensaje" #: actions/deleteuser.php:67 msgid "You cannot delete users." @@ -1109,62 +1855,73 @@ msgstr "Borrar este usuario" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Diseño" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Configuración de diseño de este sitio StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL de logotipo inválido." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL de logotipo inválido." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema no disponible: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Cambiar logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo del sitio" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Logo del sitio" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Cambiar el tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema del sitio" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema para el sitio." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Personalizar tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Puedes subir un tema personalizado StatusNet como un archivo .ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Cambiar la imagen de fondo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fondo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1174,81 +1931,90 @@ msgstr "" "es %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Activar" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Desactivar" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Activar o desactivar la imagen de fondo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Imagen de fondo en mosaico" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Cambiar colores" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contenido" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra lateral" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Vínculos" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avanzado" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Personalizar CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Utilizar los valores predeterminados" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaurar los diseños predeterminados" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Volver a los valores predeterminados" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Guardar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Guardar el diseño" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "¡Este aviso no es un favorito!" +msgstr "Este mensaje no es un favorito!" #: actions/disfavor.php:94 msgid "Add to favorites" @@ -1259,109 +2025,131 @@ msgstr "Agregar a favoritos" msgid "No such document \"%s\"" msgstr "No existe tal documento \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Editar aplicación" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Debes haber iniciado sesión para editar una aplicación." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "No existe tal aplicación." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Utiliza este formulario para editar tu aplicación." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Se requiere un nombre" -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "El nombre es muy largo (máx. 255 carac.)" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Ese nombre ya está en uso. Prueba con otro." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Se requiere una descripción" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "El URL fuente es muy largo." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "El URL fuente es inválido." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Se requiere una organización." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "El texto de organización es muy largo (máx. 255 caracteres)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Se requiere una página principal de organización" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "La devolución de llamada es muy larga." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "El URL de devolución de llamada es inválido." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "No fue posible actualizar la aplicación." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Editar grupo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Debes estar conectado para crear un grupo" -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Para editar el grupo debes ser administrador." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Usa este formulario para editar el grupo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "La descripción es muy larga (máx. %d caracteres)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias inválido: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "No se pudo actualizar el grupo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "No fue posible crear alias." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Se guardó Opciones." @@ -1379,12 +2167,12 @@ msgstr "Gestiona la forma en que recibes correo desde %%site.name%%" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Dirección de correo electrónico" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Actual dirección de correo electrónico confirmada" @@ -1393,14 +2181,14 @@ msgstr "Actual dirección de correo electrónico confirmada" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Eliminar" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1408,25 +2196,19 @@ msgstr "" "Esperando confirmación de esta dirección. Revisa tu bandeja de entrada (¡y " "la de spam!) por un mensaje con las instrucciones." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancelar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Correo electrónico, como \"NombredeUsuario@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1434,113 +2216,120 @@ msgstr "Añadir" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Correo entrante" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Quiero publicar mensajes por correo electrónico." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Envie emails a esta dirección para ingresar nuevos avisos" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Hace una nueva dirección de correo para postear; cancela la anterior." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nuevo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferencias de correo electrónico" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." -msgstr "Enviarme avisos de suscripciones nuevas por correo." +msgstr "Enviarme mensajes de nuevas suscripciones por correo electrónico." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Enviarme un correo electrónico cuando alguien agrega mi aviso a favoritos." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "Enviarme un correo electrónico cuando alguien me envía un mensaje privado." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" "Enviarme un correo electrónico cuando alguien me envíe una \"@-respuesta\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." -msgstr "Permitir que amigos me contacten y envién un correo." +msgstr "Permitir que amigos me den un toque y me envien un correo electrónico." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Deseo enviar estados por email" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publicar un MicroID para mi dirección de correo." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Preferencias de correo electrónico guardadas." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Sin dirección de correo electrónico" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "No se puede normalizar esta dirección de correo electrónico." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Correo electrónico no válido" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Esa ya es tu dirección de correo electrónico" #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Esa dirección de correo pertenece a otro usuario." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "No se pudo insertar el código de confirmación." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1552,62 +2341,68 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ninguna confirmación pendiente para cancelar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Esa es la dirección de correo electrónico incorrecta." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "No se pudo eliminar la confirmación de correo electrónico." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Confirmación de correo electrónico cancelada." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Esa no es tu dirección de correo electrónico" #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "La dirección de correo electrónico ha sido eliminada." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "No hay dirección de correo entrante." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "No se pudo actualizar información de usuario." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Dirección de correo entrante removida." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nueva dirección de correo entrante agregada." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "¡Este aviso ya está en favoritos!" +msgstr "¡Este mensaje ya está en favoritos!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Sacar favorito" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Mensajes populares" @@ -1645,10 +2440,10 @@ msgstr "" "persona en añadir un mensaje a tus favoritos?" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "Avisos favoritos de %s" +msgstr "Mensajes favoritos de %s" #: actions/favoritesrss.php:115 #, php-format @@ -1676,7 +2471,7 @@ msgstr "No hay ID de mensaje." #: actions/file.php:38 msgid "No notice." -msgstr "Sin aviso." +msgstr "Sin mensaje." #: actions/file.php:42 msgid "No attachments." @@ -1714,7 +2509,7 @@ msgstr "No se pudo convertir el token de solicitud en token de acceso." msgid "Remote service uses unknown version of OMB protocol." msgstr "El servicio remoto utiliza una versión desconocida del protocolo OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Error al actualizar el perfil remoto." @@ -1742,19 +2537,23 @@ msgstr "No puedes conceder funciones de usuario en este sitio." msgid "User already has this role." msgstr "El usuario ya tiene esta función." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "No se especificó perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "No existe perfil con ese ID" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Grupo no especificado." @@ -1771,7 +2570,7 @@ msgstr "Usuario ya está bloqueado del grupo." msgid "User is not a member of group." msgstr "Usuario no es miembro del grupo" -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloquear usuario de grupo" @@ -1822,8 +2621,10 @@ msgstr "" "Personaliza el aspecto de tu grupo con una imagen de fondo y la paleta de " "colores que prefieras." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "No fue posible actualizar tu diseño." @@ -1843,6 +2644,14 @@ msgstr "" "Puedes subir una imagen de logo para tu grupo. El tamaño máximo del archivo " "debe ser %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Subir" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Cortar" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Elige un área cuadrada de la imagen para que sea tu logo." @@ -1855,49 +2664,56 @@ msgstr "Logo actualizado." msgid "Failed updating logo." msgstr "Error al actualizar el logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Miembros del grupo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s miembros de grupo, página %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Lista de los usuarios en este grupo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Convertir al usuario en administrador del grupo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Convertir en administrador" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Convertir a este usuario en administrador" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "línea temporal de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1957,7 +2773,7 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" -"Si no puedes encontrar el grupo que estás buscando, puedes [crearlo] (%%" +"Si no puedes encontrar el grupo que estás buscando, puedes [crearlo](%%" "action.newgroup%%) tú mismo." #: actions/groupsearch.php:85 @@ -1969,15 +2785,18 @@ msgstr "" "¿Por qué no [registras una cuenta](%%action.register%%) y [creas el grupo](%%" "action.newgroup%%) tú mismo?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Sólo un administrador puede desbloquear miembros de grupos." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "El usuario no está bloqueado del grupo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Se ha producido un error al eliminar el bloque." @@ -2027,7 +2846,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2038,64 +2860,64 @@ msgstr "" "mensajería instantánea o en GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferencias de mensajería instantánea" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." -msgstr "Enviarme avisos por Jabber/GTalk" +msgstr "Enviarme mensajes por Jabber/GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "Enviar un aviso cuando el estado de mi Jabber/GTalk cambie." +msgstr "Publicar un mensaje cuando el estado de mi Jabber/GTalk cambie." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -"Envirame respuestas por medio de Jabber/GTalk de gente a la cual no sigo." +"Enviarme respuestas por medio de Jabber/GTalk de gente a la cual no sigo." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publicar un MicroID para mi cuenta Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferencias guardadas." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Ningún Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "No se puede normalizar este Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Jabber ID no válido" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Ese ya es tu Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "El Jabber ID ya pertenece a otro usuario." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2106,28 +2928,28 @@ msgstr "" "mensajes." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Esa dirección de mensajería instantánea es incorrecta." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "No se pudo eliminar la confirmación de mensajería instantánea." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Confirmación de mensajería instantánea cancelada." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Ese no es tu Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "La dirección de mensajería instantánea ha sido eliminada." @@ -2146,50 +2968,81 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Ésta es tu bandeja de entrada, incluye lista de mensajes privados entrantes." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Se han inhabilitado las invitaciones." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Debes estar conectado para invitar otros usuarios a usar %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Dirección de correo electrónico inválida: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Invitacion(es) enviada(s)" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invitar nuevos usuarios:" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Ya estás suscrito a estos usuarios:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Ya estás suscrito a estos usuarios:" +msgstr[1] "Ya estás suscrito a estos usuarios:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Estas personas ya son usuarios y fuiste suscripto automáticamente a ellos:" +msgstr[1] "" "Estas personas ya son usuarios y fuiste suscripto automáticamente a ellos:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitacion(es) enviada(s) a las siguientes personas:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitacion(es) enviada(s) a las siguientes personas:" +msgstr[1] "Invitacion(es) enviada(s) a las siguientes personas:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2197,42 +3050,53 @@ msgstr "" "Recibirás un mensaje cuando tus invitados acepten tu invitacion y se " "registren en el sitio. ¡Gracias por extender la comunidad! " -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Usa este formulario para invitar a tus amigos y colegas a usar este servicio." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Direcciones de correo electrónico" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Direcciones de los amigos a invitar (una por línea)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Mensaje Personal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente añada un mensaje personalizado a su invitación." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s te ha invitado a que te unas con el/ellos en %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2293,13 +3157,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Debes estar conectado para unirte a un grupo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Ningún nombre de usuario o ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s se ha unido al grupo %2$s" @@ -2308,17 +3166,121 @@ msgstr "%1$s se ha unido al grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Debes estar conectado para dejar un grupo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "No eres miembro de este grupo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ha dejado el grupo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Texto de bienvenida inválido. La longitud máx. es de 255 caracteres." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privado" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Ya estás conectado." @@ -2339,11 +3301,11 @@ msgstr "Inicio de sesión" msgid "Login to site" msgstr "Ingresar a sitio" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Recordarme" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Iniciar sesión automáticamente en el futuro. ¡No usar en ordenadores " @@ -2397,74 +3359,85 @@ msgstr "No es posible convertir a %1$s en administrador del grupo %2$s." msgid "No current status." msgstr "No existe estado actual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Nueva aplicación" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Debes conectarte para registrar una aplicación." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Utiliza este formulario para registrar una nueva aplicación." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Se requiere el URL fuente." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "No se pudo crear la aplicación." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Grupo nuevo " +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Usa este formulario para crear un grupo nuevo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nuevo Mensaje " -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "No puedes enviar mensaje a este usuario." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "¡Ningún contenido!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "No se especificó receptor." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "No te auto envíes un mensaje; dícetelo a ti mismo." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Mensaje enviado" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Se ha enviado un mensaje directo a %s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Error de Ajax" #: actions/newnotice.php:69 msgid "New notice" -msgstr "Nuevo aviso" +msgstr "Nuevo mensaje" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Mensaje publicado" @@ -2474,7 +3447,7 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -"Buscar avisos en %%site.name%% por contenido. Separa los términos de " +"Buscar mensajes en %%site.name%% por contenido. Separa los términos de " "búsqueda con espacios; deben tener una longitud mínima de 3 caracteres." #: actions/noticesearch.php:78 @@ -2517,11 +3490,13 @@ msgstr "" "¡Actualizaciones que contienen el término de búsqueda \"%1$s\" en %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Este usuario no permite zarandeos o todavía no confirma o configura su " -"correo electrónico." +"Este usuario no permite que le den toques o todavía no ha confirmado o " +"configurado su correo electrónico." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2531,76 +3506,99 @@ msgstr "Toque enviado" msgid "Nudge sent!" msgstr "¡Toque enviado!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Debes estar conectado para listar tus aplicaciones." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplicaciones OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplicaciones que has registrado" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Aún no has registrado aplicación alguna." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Aplicaciones conectadas" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Has permitido a las siguientes aplicaciones acceder a tu cuenta." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "No eres un usuario de esa aplicación." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "No se puede revocar el acceso para la aplicación: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "No has autorizado a ninguna aplicación utilizar tu cuenta." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Los desarrolladores pueden editar la configuración de registro de sus " -"aplicaciones " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." -msgstr "Aviso no tiene perfil." +msgstr "Mensaje sin perfil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "estado de %1$s en %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." -msgstr "Tipo de contenido %s no soportado." +msgstr "Tipo de contenido %s no compatible." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." -msgstr "Solamente %s URLs sobre HTTP simples por favor." +msgstr "Solamente %s URL sobre HTTP simples, por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." -msgstr "No es un formato de dato soportado" +msgstr "No es un formato de datos compatible." #: actions/opensearch.php:64 msgid "People Search" @@ -2608,38 +3606,48 @@ msgstr "Búsqueda de gente" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "Búsqueda de avisos" +msgstr "Búsqueda de mensajes" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Otros ajustes" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Manejo de varias opciones adicionales." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "  (servicio gratuito)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Acortar los URL con" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Servicio de acorte automático a usar." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Ver diseños de perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Ocultar o mostrar diseños de perfil." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "El servicio de acortamiento de URL es muy largo (máx. 50 caracteres)." #: actions/otp.php:69 @@ -2702,7 +3710,7 @@ msgid "6 or more characters" msgstr "6 o más caracteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmar" @@ -2714,11 +3722,11 @@ msgstr "Igual a la contraseña de arriba" msgid "Change" msgstr "Cambiar" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." -msgstr "Cotrnaseña debe tener 6 o más caracteres." +msgstr "La contraseña debe tener 6 o más caracteres." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Las contraseñas no coinciden" @@ -2736,159 +3744,293 @@ msgstr "No se puede guardar la nueva contraseña." #: actions/passwordsettings.php:192 actions/recoverpassword.php:211 msgid "Password saved." -msgstr "Se guardó Contraseña." +msgstr "Se guardó la contraseña." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Rutas" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -"Configuración de la ruta de acceso y del servidor de este sitio StatusNet." -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Directorio de temas ilegible: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Directorio de avatares no escribible: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Directorio de fondo no escribible: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Directorio de configuración regional ilegible: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servidor SSL no válido. La longitud máxima es de 255 caracteres." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Sitio" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servidor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nombre del host del servidor del sitio." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Ruta" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Ruta del sitio" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Ruta de las configuraciones locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Directorio de temas" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "Ruta del directorio de las configuraciones locales" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URL agradables" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "¿Usar URL agradables (más legibles y memorizables)?" +msgstr "¿Usar URL amigables (más legibles y memorizables)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servidor de los temas" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Tema para el sitio." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Ruta del tema" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directorio de temas" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Imágenes" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servidor de la imagen" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Ruta de la imagen" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directorio de la imagen" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fondos" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servidor de fondo" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Ruta del fondo" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directorio del fondo" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nunca" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "A veces" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Siempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Usar SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Cuándo utilizar SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servidor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Ruta del sitio" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Directorio de temas" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Ruta del directorio de las configuraciones locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Imágenes" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servidor de la imagen" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Tema para el sitio." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Ruta de la imagen" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Error al actualizar la imagen." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directorio de la imagen" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Ruta del directorio de las configuraciones locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fondos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Tema para el sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Ruta del directorio de las configuraciones locales" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Adjuntos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Tema para el sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Sin archivo adjunto" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Tema para el sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Ruta del directorio de las configuraciones locales" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nunca" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "A veces" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Siempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Usar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Cuándo utilizar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "Servidor hacia el cual dirigir las solicitudes SSL" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Guardar rutas" @@ -2917,150 +4059,196 @@ msgstr "Usuarios auto etiquetados con %1$s - página %2$d" #: actions/postnotice.php:95 msgid "Invalid notice content." -msgstr "Contenido de aviso inválido." +msgstr "Contenido de mensaje inválido." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -"La licencia del aviso %1$s’ es incompatible con la licencia del sitio ‘%2$s’." +"La licencia del mensaje %1$s’ es incompatible con la licencia del sitio ‘%2" +"$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configuración del perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Puedes actualizar la información de tu perfil personal para que la gente " "sepa más sobre ti." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Información del perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "1-64 letras en minúscula o números, sin signos de puntuación o espacios" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nombre completo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Página de inicio" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "El URL de tu página de inicio, blog o perfil en otro sitio" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descríbete y cuéntanos tus intereses en %d caracteres" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descríbete y cuéntanos tus intereses en %d caracteres" +msgstr[1] "Descríbete y cuéntanos tus intereses en %d caracteres" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Descríbete y cuéntanos acerca de tus intereses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografía" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Ubicación" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Compartir mi ubicación actual al publicar los mensajes" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etiquetas" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquetas para ti (letras, números, -, ., y _), separadas por comas o " "espacios" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Idioma" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Lenguaje de preferencia" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Zona horaria" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "En que zona horaria se encuentra normalmente?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "La biografía es muy larga (máx. %d caracteres)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "La biografía es muy larga (máx. %d caracteres)." +msgstr[1] "La biografía es muy larga (máx. %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Zona horaria no seleccionada" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Idioma es muy largo ( max 50 car.)" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta inválida: \"% s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "No se pudo actualizar el usuario para autosuscribirse." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "No se han podido guardar las preferencias de ubicación." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "No se pudo guardar el perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "No se pudo guardar las etiquetas." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Se guardó configuración." @@ -3140,26 +4328,39 @@ msgstr "" "org/wiki/Microblogging) basada en la herramienta de software libre " "[StatusNet](http://status.net/) tool." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Nube de etiquetas pública" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Estas son las etiquetas recientes más populares en %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -"Aún nadie ha publicado un aviso con una [etiqueta clave] (%%doc.tags%%)" +"Aún nadie ha publicado un mensaje con una [etiqueta clave](%%doc.tags%%)" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "¡Sé la primera persona en publicar!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3168,7 +4369,7 @@ msgstr "" "¿Por qué no [registras una cuenta](%%action.register%%) y te conviertes en " "la primera persona en publicar uno?" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Nube de etiquetas" @@ -3287,14 +4488,15 @@ msgid "Unexpected password reset." msgstr "Restablecimiento de contraseña inesperado." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "La contraseña debe tener 6 o más caracteres." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La contraseña y la confirmación no coinciden." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Error al configurar el usuario." @@ -3302,7 +4504,7 @@ msgstr "Error al configurar el usuario." msgid "New password successfully saved. You are now logged in." msgstr "Nueva contraseña guardada correctamente. Has iniciado una sesión." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Disculpa, sólo personas invitadas pueden registrarse." @@ -3314,7 +4516,7 @@ msgstr "El código de invitación no es válido." msgid "Registration successful" msgstr "Registro exitoso." -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrarse" @@ -3322,19 +4524,19 @@ msgstr "Registrarse" msgid "Registration not allowed." msgstr "Registro de usuario no permitido." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "No puedes registrarte si no estás de acuerdo con la licencia." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "La dirección de correo electrónico ya existe." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Usuario o contraseña inválidos." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3342,60 +4544,64 @@ msgstr "" "Con este formulario puedes crear una nueva cuenta. Después podrás publicar " "avisos y enviar vínculos de ellos a tus amigos y colegas. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 letras en minúscula o números, sin signos de puntuación o espacios. " "Requerido." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 o más caracters. Requerido." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Igual a la contraseña de arriba. Requerida" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Correo electrónico" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Se usa sólo para actualizaciones, anuncios y recuperación de contraseñas" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nombre más largo, preferiblemente tu nombre \"real\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "El URL de tu página de inicio, blog o perfil en otro sitio" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Entiendo que el contenido y los datos de %1$s son privados y confidenciales." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" "Mi texto y archivos est'an protegidos por los derecho de autor de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Mi texto y archivos permanecen bajo mi propio derecho de autor." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Todos los derechos reservados." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3405,7 +4611,7 @@ msgstr "" "información privada: contraseña, dirección de correo electrónico, dirección " "de mensajería instantánea y número de teléfono." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3438,7 +4644,7 @@ msgstr "" "\n" "¡Gracias por apuntarte! Esperamos que disfrutes usando este servicio." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3483,7 +4689,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "El URL de tu perfil en otro servicio de microblogueo compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Suscribirse" @@ -3521,7 +4727,7 @@ msgstr "No puedes repetir tus propios mensajes." msgid "You already repeated that notice." msgstr "Ya has repetido este mensaje." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetido" @@ -3530,7 +4736,7 @@ msgid "Repeated!" msgstr "¡Repetido!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respuestas a %s" @@ -3579,8 +4785,8 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puedes intentar [zarandear a %1$s](../%2$s) o [publicar algo a ellos](%%%%" -"action.newnotice%%%%?status_textarea=%3$s)." +"Puedes intentar [darle un toque a %1$s](../%2$s) o [publicar algo a su " +"atención](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3609,13 +4815,13 @@ msgstr "Al usuario ya se le ha impuesto restricciones." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sesiones" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Configuración de sesión para este sitio StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3634,7 +4840,6 @@ msgid "Turn on debugging output for sessions." msgstr "Activar la salida de depuración para sesiones." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Guardar la configuración del sitio" @@ -3647,28 +4852,29 @@ msgid "Application profile" msgstr "Perfil de la aplicación" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icono" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nombre" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organización" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estadísticas" @@ -3686,6 +4892,11 @@ msgstr "Acciones de la aplicación" msgid "Reset key & secret" msgstr "Reiniciar clave y secreto" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Borrar" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Información de la aplicación" @@ -3725,7 +4936,7 @@ msgstr "¿realmente deseas reiniciar tu clave y secreto de consumidor?" #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "Avisos favoritos de %1$s, página %2$d" +msgstr "Mensajes favoritos de %1$s, página %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." @@ -3771,84 +4982,113 @@ msgid "" "their favorites :)" msgstr "" "%s aún no ha añadido ningún aviso a sus favoritos. Por qué no [registras una " -"cuenta] (%%%%action.register%%%%) y publicas algo interesante que puedan " +"cuenta](%%%%action.register%%%%) y publicas algo interesante que puedan " "añadir a sus favoritos :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Esta es una manera de compartir lo que te gusta." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Grupo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "grupo %1$s, página %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Perfil del grupo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Acciones del grupo" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Canal de avisos del grupo %s (RSS 1.0)" +msgstr "Canal de mensajes del grupo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Canal de avisos del grupo %s (RSS 2.0)" +msgstr "Canal de mensajes del grupo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Canal de avisos del grupo %s (Atom)" +msgstr "Canal de mensajes del grupo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Amistades de amistades del grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Miembros" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ninguno)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Todos los miembros" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Creado" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Miembros" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3864,7 +5104,10 @@ msgstr "" "action.register%%%%) para formar parte de este y muchos más grupos! ([Más " "información](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3877,73 +5120,100 @@ msgstr "" "herramienta de software libre [StatusNet](http://status.net/). Sus miembros " "comparten mensajes cortos acerca de su vida e intereses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administradores" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "No existe el mensaje." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Sólo el remitente y el receptor pueden leer este mensaje." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Mensaje a %1$s en %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Mensaje de %1$s en %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." -msgstr "Aviso borrado" +msgstr "Mensaje borrado" -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "%s etiquetados" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, página %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Mensajes etiquetados con %1$s, página %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, página %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Canal de avisos de %1$s etiquetados %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Canal de mensajes para %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Canal de mensajes para %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Canal de mensajes para %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "Amistades de amistades de %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Esta es la línea temporal de %1$s, pero %2$s aún no ha publicado nada." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3951,16 +5221,20 @@ msgstr "" "¿Has visto algo interesante recientemente? Aún no has hecho ninguna " "publicación, así que este puede ser un buen momento para empezar :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Puedes intentar zarandear a %1$s o [publicar algo a ellos](%%%%action." -"newnotice%%%%?status_textarea=%2$s)." +"Puedes intentar darle un toque a %1$s o [publicar algo a su atención](%%%%" +"action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3974,18 +5248,21 @@ msgstr "" "register%%%%) para seguir los avisos de **%s** y de muchas personas más! " "([Más información](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" -"**% s ** tiene una cuenta en %%%%site.name%%%%, un servicio de " -"[microblogueo] (http://en.wikipedia.org/wiki/Micro-blogging), basado en la " -"herramienta de software libre [StatusNet] (http://status.net/). " +"**% s ** tiene una cuenta en %%%%site.name%%%%, un servicio de [microblogueo]" +"(http://en.wikipedia.org/wiki/Micro-blogging), basado en la herramienta de " +"software libre [StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetición de %s" @@ -4097,37 +5374,46 @@ msgstr "Límite de duplicados" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "Cuántos segundos es necesario esperar para publicar lo mismo de nuevo." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Aviso del sitio" +msgstr "Aviso del mensaje" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Editar el mensaje que va a lo ancho del sitio" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "No se pudo guarda el aviso del sitio." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" "La longitud máxima para el aviso que va a lo ancho del sitio es de 255 " "caracteres." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" -msgstr "Texto del aviso del sitio" +msgstr "Texto del mensaje del sitio" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -"Texto del aviso que va a lo ancho del sitio (máximo 255 caracteres; se " +"Texto del mensaje que va a lo ancho del sitio (máximo 255 caracteres; se " "acepta HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Guardar el aviso del sitio" +msgstr "Guardar el mensaje del sitio" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 @@ -4199,8 +5485,8 @@ msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" -"Enviarme avisos por SMS; Yo acepto que puede incurrir en grandes cobros por " -"mi operador móvil" +"Enviarme mensajes por SMS; Yo acepto que puede incurrir en grandes cobros " +"por mi operador móvil" #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 @@ -4287,7 +5573,7 @@ msgstr "No ingresó código" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Capturas" @@ -4343,12 +5629,14 @@ msgstr "Las capturas se enviarán a este URL" msgid "Save snapshot settings" msgstr "Guardar la configuración de instantáneas" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "No te has suscrito a ese perfil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "No se ha podido guardar la suscripción." @@ -4356,10 +5644,6 @@ msgstr "No se ha podido guardar la suscripción." msgid "This action only accepts POST requests." msgstr "Esta acción sólo acepta solicitudes POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "No existe tal perfil." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "No puedes suscribirte a un perfil remoto 0.1 de OMB con esta acción." @@ -4368,40 +5652,57 @@ msgstr "No puedes suscribirte a un perfil remoto 0.1 de OMB con esta acción." msgid "Subscribed" msgstr "Suscrito" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s suscriptores" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s suscriptores, página %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Estas son las personas que escuchan tus avisos." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Estas son las personas que escuchan los avisos de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "No tienes suscriptores. Intenta suscribirte a gente que conozcas y puede que " "te devuelvan el favor" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" "%s no tiene suscriptores. ¿Quieres se la primera persona que se suscriba?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4410,26 +5711,31 @@ msgstr "" "%s no tiene suscriptores. ¿Por qué no [registrar una cuenta](%%%%action." "register%%%%) y ser la primera persona?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Suscripciones %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s suscrippciones, página %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Estas son las personas que escuchas sus avisos." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Estas son las personas que %s escucha sus avisos." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4444,38 +5750,49 @@ msgstr "" "action.featured%%). Si eres [usuario de Twitter](%%action.twittersettings%" "%), puedes suscribirte automáticamente a las personas que ya sigues allí." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s no está escuchando a nadie." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Canal de mensajes para %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Avisos etiquetados con %1$s, página %2$d" +msgstr "Mensajes etiquetados con %1$s, página %2$d" #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Canal de avisos con etiqueta %s (RSS 1.0)" +msgstr "Canal de mensajes con etiqueta %s (RSS 1.0)" #: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Canal de avisos con etiqueta %s (RSS 2.0)" +msgstr "Canal de mensajes con etiqueta %s (RSS 2.0)" #: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Canal de avisos con etiqueta %s (Atom)" +msgstr "Canal de mensajes con etiqueta %s (Atom)" #: actions/tagother.php:39 msgid "No ID argument." @@ -4491,7 +5808,7 @@ msgid "User profile" msgstr "Perfil de usuario" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4557,74 +5874,96 @@ msgstr "" "sitio ‘%2$s’." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Usuario" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Configuración de usuarios en este sitio StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Límite para la bio inválido: Debe ser numérico." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Texto de bienvenida inválido. La longitud máx. es de 255 caracteres." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Suscripción predeterminada inválida : '%1$s' no es un usuario" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Límite de la bio" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Longitud máxima de bio de perfil en caracteres." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nuevos usuarios" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Bienvenida a nuevos usuarios" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Texto de bienvenida para nuevos usuarios (máx. 255 caracteres)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Suscripción predeterminada" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Suscribir automáticamente nuevos usuarios a este usuario." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitaciones" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Invitaciones habilitadas" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Si permitir a los usuarios invitar nuevos usuarios." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizar la suscripción" @@ -4639,7 +5978,9 @@ msgstr "" "avisos de este usuario. Si no pediste suscribirte a los avisos de alguien, " "haz clic en \"Cancelar\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licencia" @@ -4727,11 +6068,13 @@ msgstr "No se puede leer la URL de la imagen ‘%s’." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipo de imagen incorrecto para la URL de imagen ‘%s’." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Diseño del perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4769,7 +6112,7 @@ msgstr "Intenta [buscar gupos](%%action.groupsearch%%) y unirte a ellos." #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "¡Actualizaciones de %1$s en %2$s!" @@ -4830,7 +6173,7 @@ msgid "Plugins" msgstr "Complementos" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versión" @@ -4838,63 +6181,115 @@ msgstr "Versión" msgid "Author(s)" msgstr "Autor(es)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Aceptar" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) agregó tu mensaje a los favoritos" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "No se puede procesar URL '%s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr " Robin piensa que algo es imposible." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Ningún archivopuede ser de tamaño mayor a %1$d bytes y el archivo que " +"enviaste es de %2$d bytes. Trata de subir una versión más pequeña." +msgstr[1] "" "Ningún archivopuede ser de tamaño mayor a %1$d bytes y el archivo que " "enviaste es de %2$d bytes. Trata de subir una versión más pequeña." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Un archivo tan grande podría sobrepasar tu cuota de usuario de %d bytes." +msgstr[1] "" "Un archivo tan grande podría sobrepasar tu cuota de usuario de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Un archivo tan grande podría sobrepasar tu cuota mensual de %d bytes." +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Un archivo tan grande podría sobrepasar tu cuota mensual de %d bytes." +msgstr[1] "" +"Un archivo tan grande podría sobrepasar tu cuota mensual de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nombre de archivo inválido." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Ha fallado la acción de unirse el grupo" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "No es parte del grupo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Ha fallado la acción de abandonar el grupo" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Error al guardar el usuario; inválido." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Unirse" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4913,17 +6308,17 @@ msgid "No database name or DSN found anywhere." msgstr "Ningún nombre de base de datos o DSN encontrado." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Se te ha inhabilitado para enviar mensajes directos." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "No se pudo insertar mensaje." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "No se pudo actualizar mensaje con nuevo URI." @@ -4935,31 +6330,31 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "No existe tal perfil (%1$d) para notificar (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Error de la BD al insertar la etiqueta clave: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Ha habido un problema al guardar el mensaje. Es muy largo." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Ha habido un problema al guardar el mensaje. Usuario desconocido." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -"Demasiados avisos demasiado rápido; para y publicar nuevamente en unos " +"Demasiados mensajes demasiado rápido; para y publicar nuevamente en unos " "minutos." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4968,43 +6363,58 @@ msgstr "" "pasados unos minutos." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Tienes prohibido publicar avisos en este sitio." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." -msgstr "Hubo un problema al guardar el aviso." +msgstr "Hubo un problema al guardar el mensaje." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." msgstr "Mal tipo proveído a saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Hubo un problema al guarda la bandeja de entrada del grupo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "No se ha podido guardar la información del grupo local." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "No se puede revocar rol \"%1$s\" para usuario #%2$d; no existe." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5016,302 +6426,344 @@ msgid "Missing profile." msgstr "Perfil ausente." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Incapaz de grabar etiqueta." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Se te ha prohibido la suscripción." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "¡Ya te has suscrito!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "El usuario te ha bloqueado." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "¡No estás suscrito!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "No se pudo eliminar la auto-suscripción." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "No se pudo eliminar la ficha OMB de suscripción." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "No se pudo eliminar la suscripción." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s ahora está escuchando tus avisos en %2$s" + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Ningún usuario sólo definido para modo monousuario." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "No se pudo crear grupo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "No se pudo configurar el URI del grupo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "No se pudo configurar la membresía del grupo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "No se ha podido guardar la información del grupo local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Cambia tus opciones de perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Subir una imagen." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Cambia tu contraseña" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Cambiar el manejo del correo." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Diseñar tu perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Otras opciones" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Otro" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Página sin título" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navegación de sitio primario" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal y línea temporal de amistades" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambia tu correo electrónico, imagen, contraseña, perfil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Cuenta" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conectar a los servicios" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Conectarse" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Cambiar la configuración del sitio" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita a amistades y compañeros a unirse a tí en %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Cerrar sesión en el sitio" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Cerrar sesión" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear una cuenta" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrarse" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Iniciar sesión en el sitio" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Inicio de sesión" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "¡Ayúdame!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Ayuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Buscar personas o texto" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Buscar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "Aviso de sitio" +msgstr "Mensaje de sitio" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vistas locales" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" -msgstr "Aviso de página" +msgstr "Mensaje de página" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navegación de sitio secundario" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Ayuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Acerca de" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Preguntas Frecuentes" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "TOS" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacidad" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Fuente" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Ponerse en contacto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insignia" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licencia de software de StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5321,13 +6773,16 @@ msgstr "" "[%%site.broughtby%%**](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** es un servicio de microblogueo." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5339,34 +6794,35 @@ msgstr "" "licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licencia de contenido del sitio" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "El contenido y datos de %1$s son privados y confidenciales." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Copyright del contenido y los datos de%1$s. Todos los derechos reservados." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Derechos de autor de contenido y datos por los colaboradores. Todos los " "derechos reservados." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" @@ -5374,317 +6830,428 @@ msgstr "" "$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginación" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Después" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Antes" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "A espera de un elemento de alimentación de raíz, pero se obtuvo un documento " "XML entero." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Aún no se puede manejar contenido remoto." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Aún no se puede manejar contenido XML incrustado." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Aún no se puede manejar contenido incrustado Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "No puedes hacer cambios a este sitio." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "No se permite realizar cambios a ese panel." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() no implementada." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() no implementada." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "No se puede eliminar la configuración de diseño." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuración básica del sitio" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Sitio" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuración del diseño" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Diseño" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuración de usuario" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usuario" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuración de acceso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuración de rutas" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuración de sesiones" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Editar el aviso del sitio" +msgstr "Editar el mensaje del sitio" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuración de instantáneas" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API requiere acceso de lectura y escritura, pero sólo tienes acceso de " "lectura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Editar aplicación" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "No hay ninguna aplicación para esa clave de consumidor." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Token de acceso erróneo." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "No hay ningún usuario para ese token." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "No ha sido posible autenticarte." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "No fue posible crear alias." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "No se pudo crear la aplicación." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "No se pudo insertar mensaje." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Error de base de datos al insertar usuario de la aplicación OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Se intentó revocar un token desconocido." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "No se pudo eliminar el token revocado." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icono para esta aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Describe tu aplicación en %d caracteres" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Describe tu aplicación en %d caracteres" +msgstr[1] "Describe tu aplicación en %d caracteres" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Describe tu aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL de la página principal de esta aplicación" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "La URL de origen" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organización responsable de esta aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL de la página principal de la organización" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL al que se redirigirá después de la autenticación" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navegador" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Escritorio" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipo de aplicación, de navegador o de escritorio" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Solo lectura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Solo escritura" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Acceso predeterminado para esta aplicación: sólo lectura o lectura-escritura" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancelar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lectura y escritura" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "sólo lectura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprobado el %1$s - acceso \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revocar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Adjuntos" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Proveedor" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Mensajes donde aparece este adjunto" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etiquetas de este archivo adjunto" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "El cambio de contraseña ha fallado" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "No está permitido cambiar la contraseña" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloquear" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultados de comando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Error de Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Comando completo" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Comando falló" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "No existe ningún mensaje con ese id" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "No existe ningún mensaje con ese ID." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Usuario no tiene último aviso" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "El/La usuario/a no tiene ningún último mensaje" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "No se pudo encontrar a nadie con el nombre de usuario %s" +msgid "Could not find a user with nickname %s." +msgstr "No se pudo encontrar el usuario con el nombre de usuario %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" +msgid "Could not find a local user with nickname %s." msgstr "" -"No se pudo encontrar a ningún usuario local con el nombre de usuario %s" +"No se pudo encontrar a ningún usuario local con el nombre de usuario %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Disculpa, todavía no se implementa este comando." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "¡No tiene sentido darte un toque a ti mismo!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Toque enviado a %s" +msgid "Nudge sent to %s." +msgstr "Toque enviado a %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5695,55 +7262,64 @@ msgstr "" "Suscriptores: %2$s\n" "Avisos: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "Aviso marcado como favorito." +msgstr "Mensaje marcado como favorito." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Ya eres parte de ese grupo" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "No se pudo unir el usuario %s al grupo %s" +msgid "%1$s joined group %2$s." +msgstr "%1$s se unió al grupo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "No se pudo eliminar al usuario %1$s del grupo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s dejo el grupo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nombre completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Lugar: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Página de inicio: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5752,147 +7328,178 @@ msgstr "" "%s es un perfil remoto: sólo puedes enviarle mensajes directos a usuarios en " "el mismo servidor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Mensaje muy largo - la cantidad máxima es de %1$d caracteres y has enviado %2" -"$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" +msgstr[1] "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Se envió mensaje directo a %s" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Error al enviar mensaje directo." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "No puedes repetir tu propio aviso" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Ya has repetido este aviso" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Aviso de %s repetido" +msgid "Notice from %s repeated." +msgstr "Se ha repetido el mensaje de %s." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Ha habido un error al repetir el aviso." +msgstr "Ha habido un error al repetir el mensaje." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Mensaje demasiado largo - el máximo es de 140 caracteres, enviaste %d." +msgstr[1] "" +"Mensaje demasiado largo - el máximo es de 140 caracteres, enviaste %d." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Mensaje muy largo - el máximo es de %d caracteres. Has enviado %d" +msgid "Reply to %s sent." +msgstr "Se ha enviado la respuesta a %s." -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" -msgstr "Responder a %s enviados" - -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "Error al guardar el aviso." +msgstr "Error al guardar el mensaje." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Especificar el nombre del usuario a suscribir" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Especificar el nombre del usuario al cual se quiere suscribir." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "No te puedes suscribir a perfiles de OMB por orden." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Suscrito a %s" +msgid "Subscribed to %s." +msgstr "Suscrito a %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Especificar el nombre del usuario para desuscribirse de" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Especifica el nombre del usuario del cual cancelar la suscripción." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Desuscrito de %s" +msgid "Unsubscribed from %s." +msgstr "Cancelada la suscripción a %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Todavía no se implementa comando." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notificación no activa." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "No se puede desactivar notificación." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notificación activada." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "No se puede activar notificación." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "El comando de inicio de sesión está desactivado" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "El comando de inicio de sesión está inhabilitado." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Este enlace es utilizable solamente una vez y sólo válido por 2 minutos: %s" +"Este enlace es utilizable sólo una vez y es válido sólo durante dos minutos: " +"%s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Desuscrito de %s" +msgid "Unsubscribed %s." +msgstr "Cancelada la suscripción a %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "No estás suscrito a nadie." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ya estás suscrito a estos usuarios:" msgstr[1] "Ya estás suscrito a estos usuarios:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Nadie está suscrito a ti." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "No se pudo suscribir otro a ti." msgstr[1] "No se pudo suscribir otro a ti." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "No eres miembro de ningún grupo" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Eres miembro de este grupo:" msgstr[1] "Eres miembro de estos grupos:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5934,88 +7541,115 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" "comandos:\n" -"activar - activar notificaciones\n" -"desactivar - desactivar notificaciones\n" -"ayuda - mostrar esta ayuda\n" -"seguir <usuario> - suscribirse al usuario\n" -"grupos - listar los grupos que sigues\n" -"suscripciones - listar las personas que sigues\n" -"suscriptores - listar los grupos que te siguen\n" -"abandonar <usuario> - cancelar la suscripción al usuario\n" +"on - activar notificaciones\n" +"off - desactivar notificaciones\n" +"help - mostrar esta ayuda\n" +"follow <usuario> - suscribirse al usuario\n" +"groups - listar los grupos que sigues\n" +"subscriptions - listar las personas que sigues\n" +"subscribers - listar los grupos que te siguen\n" +"leave <usuario> - cancelar la suscripción al usuario\n" "d <usuario> <text> - dirigir mensaje al usuario\n" -"obtener <usuario> - obtener último aviso del usuario\n" -"quienes <usuario> - obtener información del perfil del usuario\n" -"bloquear <usuario> - obligar al usuario a que deje de seguirte\n" +"get <usuario> - obtener último aviso del usuario\n" +"whois <usuario> - obtener información del perfil del usuario\n" +"lose <usuario> - obligar al usuario a que deje de seguirte\n" "fav <usuario> - añadir el último aviso del usario a tus favoritos\n" "fav #<id_aviso> - añadir el aviso con el ID dado a tus favoritos\n" -"repetir #<id_aviso> - repetir el aviso con el ID dado\n" -"repetir <usuario> - repetir el último aviso del usuario\n" -"responder #<id_aviso> - responder al aviso del ID dado\n" -"responder <usuario> - responder al último aviso del usuario\n" -"unirse <grupo> - unirse a un grupo\n" -"entrar - obtener un vínculo para iniciar sesión en la interfaz Web\n" -"abandonar <grupo> - abandonar el grupo\n" -"estadísticas - obtener tus estadísticas\n" -"detener - igual que 'desactivar'\n" -"parar - igual que 'desactivar'\n" -"sus <usuario> - igual que 'seguir'\n" -"desus <usuario> - igual que 'abandonar'\n" -"último <usuario> - igual que 'obtener'\n" -"activado <usuario> - aún sin implementar.\n" -"desactivado <usuario> - aún sin implementar.\n" -"toque <usuario> - recordarle a un ausuario que actualice.\n" -"invitar <phone number> - aún sin implementar.\n" -"rastrear <word> - aún sin implementar.\n" -"no rastrear <word> - aún sin implementar.\n" -"dejar de rastrear - aún sin implementar.\n" -"dejar de rastrear todos - aún sin implementar.\n" -"rastrear - aún sin implementar.\n" -"rastreando - aún sin implementar.\n" +"repeat #<id_aviso> - repetir el aviso con el ID dado\n" +"repeat <usuario> - repetir el último aviso del usuario\n" +"reply #<id_aviso> - responder al aviso del ID dado\n" +"reply <usuario> - responder al último aviso del usuario\n" +"join <grupo> - unirse a un grupo\n" +"login - obtener un vínculo para iniciar sesión en la interfaz Web\n" +"drop <grupo> - abandonar el grupo\n" +"stats - obtener tus estadísticas\n" +"stop - igual que 'desactivar'\n" +"quit - igual que 'desactivar'\n" +"sub <usuario> - igual que 'seguir'\n" +"unsub <usuario> - igual que 'abandonar'\n" +"last <usuario> - igual que 'obtener'\n" +"on <usuario> - aún sin implementar.\n" +"off <usuario> - aún sin implementar.\n" +"nudge <usuario> - recordarle a un ausuario que actualice.\n" +"invite <phone number> - aún sin implementar.\n" +"track <word> - aún sin implementar.\n" +"untrack <word> - aún sin implementar.\n" +"track off - aún sin implementar.\n" +"untrack all - aún sin implementar.\n" +"tracks - aún sin implementar.\n" +"tracking - aún sin implementar.\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Ningún archivo de configuración encontrado. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "He buscado archivos de configuración en los siguientes lugares: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Quizá desees ejecutar el instalador para solucionar este problema." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Ir al instalador." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Actualizaciones por mensajería instantánea" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Actualizaciones por sms" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Conecciones" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Aplicaciones conectadas autorizadas" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Error de la base de datos" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Subir archivo" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6023,41 +7657,60 @@ msgstr "" "Puedes subir tu imagen de fondo personal. El tamaño de archivo máximo " "permitido es 2 MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Activar" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Desactivar" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Restablecer" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Diseño predeterminado restaurado." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "Sacar este aviso" +msgstr "Excluir este mensaje de mis favoritos" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "Incluir este aviso en tus favoritos" +msgstr "Incluir este mensaje en tus favoritos" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Aceptar" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Amistad de amistad" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportar datos" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6088,8 +7741,14 @@ msgstr "Ir" msgid "Grant this user the \"%s\" role" msgstr "Otorgar al usuario el papel de \"%$\"" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 letras en minúscula o números, sin signos de puntuación o espacios" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL de página de inicio o blog del grupo o tema" #: lib/groupeditform.php:168 @@ -6097,67 +7756,121 @@ msgid "Describe the group or topic" msgstr "Describir al grupo o tema" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Describir al grupo o tema en %d caracteres" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Describir al grupo o tema en %d caracteres" +msgstr[1] "Describir al grupo o tema en %d caracteres" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Ubicación del grupo, si existe, por ejemplo \"Ciudad, Estado (o Región), País" "\"" -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Nombres adicionales para el grupo, separados por comas o espacios. Máximo: %d" +msgstr[1] "" "Nombres adicionales para el grupo, separados por comas o espacios. Máximo: %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupo" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupo %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Miembros" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Miembros del grupo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Bloqueado" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "usuarios bloqueados" +msgstr "%s usuarios bloqueados" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Editar propiedades del grupo %s" +msgstr "Editar las propiedades del grupo %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Agregar o editar el logo de %s" +msgstr "Añadir o modificar el logo %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Agregar o editar el diseño de %s" +msgstr "Añadir o modificar el diseño %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "Grupos con más miembros" +msgstr "Grupos con mayor cantidad de miembros" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "Grupos con más publicaciones" +msgstr "Grupos con mayor cantidad de publicaciones" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "Etiquetas en avisos del grupo %s" +msgstr "Etiquetas en mensajes del grupo %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6168,38 +7881,57 @@ msgstr "Esta página no está disponible en el tipo de medio que aceptas." msgid "Unsupported image file format." msgstr "Formato de imagen no soportado." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "El archivo es muy grande. El tamaño máximo permitido es %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Subida parcial" -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Error del sistema subir el archivo" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "No es una imagen o es un fichero corrupto." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Se perdió nuestro archivo." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tipo de archivo desconocido" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6211,10 +7943,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Origen de bandeja de entrada %d desconocido." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Unirse" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Abandonar" @@ -6227,27 +7955,29 @@ msgstr "Ingresar con un nombre de usuario y contraseña." msgid "Sign up for a new account" msgstr "Registrarse para una nueva cuenta" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmación de correo electrónico" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "¡Hola, %s!\n" "\n" @@ -6263,13 +7993,16 @@ msgstr "" "Gracias por tu tiempo, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ahora está escuchando tus avisos en %2$s" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6279,9 +8012,13 @@ msgstr "" "bloquearla de tu lista de suscriptores y reportar la como cuenta no deseada " "a los administradores de sitios en %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6289,10 +8026,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s ahora está escuchando tus avisos en %2$s.\n" "\n" @@ -6307,21 +8044,25 @@ msgstr "" "----\n" "Cambia tus preferencias de notificaciones a tu correo electrónico en %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nueva dirección de correo para postear a %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6330,7 +8071,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "You have a new posting address on %1$s.\n" "\n" @@ -6341,31 +8082,36 @@ msgstr "" "Attentamente, \n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "estado de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS confirmación" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: Confirma que este es tu número de teléfono mediante este código:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s te ha dado un toque" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6392,14 +8138,18 @@ msgstr "" "Un cordial saludo,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nuevo mensaje privado de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6432,14 +8182,19 @@ msgstr "" "Saludos cordiales,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) agregó tu aviso como un favorito" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%s (@%s) agregó tu mensaje a los favoritos" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6459,13 +8214,13 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" -"%1$s (@%7$s) acaba de añadir un aviso de %2$s a su listado de favoritos.\n" +"%1$s (@%7$s) acaba de añadir un mensaje de %2$s a su listado de favoritos.\n" "\n" -"El URL de tu aviso es:\n" +"El URL de tu mensaje es:\n" "\n" "%3$s\n" "\n" -"El texto de tu aviso es:\n" +"El texto de tu mensaje es:\n" "\n" "%4$s\n" "\n" @@ -6477,7 +8232,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6488,13 +8243,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) ha enviado un aviso a tu atención" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6557,7 +8319,7 @@ msgstr "" "otros usuarios partícipes de la conversación. La gente puede enviarte " "mensajes que sólo puedas leer tú." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "desde" @@ -6577,23 +8339,26 @@ msgstr "Lo sentimos, pero este no es su dirección de correo entrante." msgid "Sorry, no incoming email allowed." msgstr "Lo sentimos, pero no se permite correos entrantes" -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Tipo de mensaje no compatible: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Hubo un error en la base de datos mientras subías tu archivo. Por favor, " "inténtalo de nuevo." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "El archivo subido sobrepasa la directiva upload_max_filesize en php.ini" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6601,87 +8366,137 @@ msgstr "" "El archivo subido sobrepasa la directiva MAX_FILE_SIZE que se especificó en " "el formulario HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "El archivo subido sólo fue parcialmente subido." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Falta una carpeta temporal." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "No se pudo escribir el archivo en el disco." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "La subida de archivos se detuvo por extensión." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Archivo sobrepasa la cuota del usuario." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "El archivo no se pudo mover al directorio de destino." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "No se pudo determinar tipo MIME del archivo" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Pruebe a usar otro formato %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" no es un tipo de archivo compatible en este servidor. Prueba a usar " +"otro formato de %2$s" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s no es un tipo de archivo soportado en este servidor." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" no es un tipo de archivo compatible en este servidor." #: lib/messageform.php:120 msgid "Send a direct notice" -msgstr "Enviar un aviso directo" +msgstr "Enviar un mensaje directo" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Seleccione un operador móvil" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "¡No estás suscrito!" + +#: lib/messageform.php:153 msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caracteres disponibles" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"El usuario debe tener solamente letras minúsculas y números y no puede tener " +"espacios." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" -msgstr "Enviar un aviso" +msgstr "Enviar un mensaje" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "¿Qué tal, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Adjuntar" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Adjuntar un archivo" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Compartir mi ubicación" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "No compartir mi ubicación" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6690,53 +8505,57 @@ msgstr "" "favor, inténtalo más tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "en" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "red" + +#: lib/noticelist.php:583 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetido por" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "Responder este aviso." +msgstr "Responder a este mensaje." -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" -msgstr "Aviso repetido" +msgstr "Mensaje repetido" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -6750,64 +8569,62 @@ msgstr "Dar un toque a " msgid "Send a nudge to this user" msgstr "Dar un toque a este usuario" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Error al insertar el nuevo perfil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Error al insertar un nuevo perfil." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Error al insertar la imagen" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Error al insertar el avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Error al actualizar el perfil remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Error al insertar el perfil remoto." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Error al insertar perfil remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Mensaje duplicado." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicar aviso" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "No se pudo insertar una nueva suscripción." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respuestas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritos" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Bandeja de Entrada" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Mensajes entrantes" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Bandeja de Salida" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Mensajes enviados" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "Etiquetas en avisos de %s" +msgstr "Etiquetas en mensajes de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Desconocido" @@ -6874,7 +8691,7 @@ msgstr "No hay respuesta a los argumentos." #: lib/repeatform.php:107 msgid "Repeat this notice?" -msgstr "Responder este aviso?" +msgstr "Repetir este mensaje?" #: lib/repeatform.php:132 msgid "Yes" @@ -6882,16 +8699,18 @@ msgstr "Sí" #: lib/repeatform.php:132 msgid "Repeat this notice" -msgstr "Responder este aviso." +msgstr "Repetir este mensaje." #: lib/revokeroleform.php:91 #, php-format msgid "Revoke the \"%s\" role from this user" msgstr "Revocar el rol \"%s\" de este usuario" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Ningún usuario sólo definido para modo monousuario." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Método de API no encontrado." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6901,19 +8720,25 @@ msgstr "Restringir" msgid "Sandbox this user" msgstr "Imponer restricciones a este usuario" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Buscar sitio" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Palabra(s) clave" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Buscar" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Buscar ayuda" @@ -6927,7 +8752,7 @@ msgstr "Encontrar gente en este sitio" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "Encontrar el contenido de avisos" +msgstr "Buscar en el contenido de mensajes" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" @@ -6987,6 +8812,12 @@ msgstr "Nube de etiquetas de personas etiquetadas" msgid "None" msgstr "Ninguno" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nombre de archivo inválido." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "Este servidor no puede manejar cargas de temas sin soporte ZIP." @@ -6996,26 +8827,30 @@ msgid "The theme file is missing or the upload failed." msgstr "El archivo de tema está perdido o la carga falló." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Grabado de tema errado." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Tema inválido: mala estructura de directorio." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Tema subido es demasiado grande; debe ser menor que %d bytes sin comprimir." +msgstr[1] "" "Tema subido es demasiado grande; debe ser menor que %d bytes sin comprimir." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Archivo de tema inválido: archivo perdido css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7023,12 +8858,18 @@ msgstr "" "El tema contiene archivo o nombre de carpeta inválido. Restrínjase a letras " "ASCII, dígitos, carácter de subrayado, y signo menos." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"El tema contiene nombres de extensiones de archivo inseguras y puede ser " +"peligroso." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "El tema contiene archivo de tipo '.%s', que no está permitido." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Error al abrir archivo de tema." @@ -7036,6 +8877,13 @@ msgstr "Error al abrir archivo de tema." msgid "Top posters" msgstr "Principales posteadores" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloquear" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Eliminar restricciones" @@ -7060,122 +8908,175 @@ msgstr "Desuscribirse de este usuario" msgid "Unsubscribe" msgstr "Cancelar suscripción" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "El usuario %s (%d) no tiene un registro de su perfil." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "El usuario no tiene un perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Editar imagen" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Acciones de usuario" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Eliminación de usuario en curso..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Editar configuración del perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Enviar un mensaje directo a este usuario" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Mensaje" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rol de usuario" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrador" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderador" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "hace unos segundos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "hace un minuto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "hace %d minutos" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "hace aproximadamente un minuto" +msgstr[1] "hace aproximadamente %d minutos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "hace una hora" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "hace %d horas" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "hace aproximadamente una hora" +msgstr[1] "hace aproximadamente %d horas" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "hace un día" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "hace %d días" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "hace aproximadamente un día" +msgstr[1] "hace aproximadamente %d días" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "hace un mes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "hace %d meses" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "hace aproximadamente un mes" +msgstr[1] "hace aproximadamente %d meses" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "hace un año" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "¡%s no es un color válido!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s no es un color válido! Usar 3 o 6 caracteres hexagesimales" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" +msgstr[1] "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Tamaño inválido." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "No se ha especificado ID de usuario." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index c5303e3415..383e6d5151 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -1,165 +1,208 @@ -# Translation of StatusNet to Persian +# Translation of StatusNet - Core to Persian (فارسی) +# Expored from translatewiki.net # -# Author@translatewiki.net: ArianHT -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Choxos -# Author@translatewiki.net: Everplays -# Author@translatewiki.net: Narcissus +# Author: ArianHT +# Author: Brion +# Author: Choxos +# Author: Everplays +# Author: Mjbmr +# Author: Narcissus +# Author: ZxxZxxZ # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:25+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:39+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" -"Language-Team: Persian\n" +"Language-Team: Persian <http://translatewiki.net/wiki/Portal:fa>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Language-Code: fa\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "دسترسی" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "تنظیمات دسترسی وب‌گاه" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "نام‌نویسی" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "از دیدن وب‌گاه توسط کاربران ناشناس (وارد نشده) جلوگیری شود؟" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "خصوصی" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "نام‌نویسی تنها با دعوت‌نامه انجام شود." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "تنها دعوت کردن" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "غیر فعال کردن نام‌نوبسی تازه" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "بسته‌شده" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "ذخیرهٔ تنظیمات دسترسی" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "ذخیره" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "چنین صفحه‌ای وجود ندارد." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "چنین کاربری وجود ندارد." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s و دوستان، صفحهٔ %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s و دوستان" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "خوراک دوستان %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "خوراک دوستان %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "خوراک دوستان %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "این خط‌زمانی %s و دوستانش است، اما هیچ‌یک تاکنون چیزی نفرستاده‌اند." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -168,425 +211,630 @@ msgstr "" "پیگیر افراد بیش‌تری بشوید [به یک گروه بپیوندید](%%action.groups%%) یا خودتان " "چیزی بفرستید." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"شما می‌توانید [یادآوری‌کردن %1$s](../%2$s) را از نمایه‌اش امتحان کنید یا [به " -"توجه او چیزی بفرستید](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" +"s) پیام می‌فرستد." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"چرا [ثبت‌نام](%%%%action.register%%%%) نمی‌کنید و سپس به %s یادآوری کنید یا یک " -"پیام به توجه‌اش بفرستید." +"چرا به [باز کردن یک حساب](%%action.register%%) اقدام نمی‌کنید و اولین نفری " +"باشید که چیزی می‌فرستد!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "شما و دوستان" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "به روز رسانی از %1$s و دوستان در %2$s" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "رابط مورد نظر پیدا نشد." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "برای استفاده از این روش باید اطلاعات را به صورت پست بفرستید" -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" "شما باید یک پارامتر را به نام device و مقدار sms، im یا none مشخص کنید." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "نمی‌توان کاربر را به‌هنگام‌سازی کرد." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "کاربر هیچ نمایه‌ای ندارد." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "نمی‌توان نمایه را ذخیره کرد." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" "به دلیل تنظبمات، سرور نمی‌تواند این مقدار اطلاعات (%s بایت( را دریافت کند." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "نمی‌توان تنظیمات طرح‌تان را ذخیره کرد." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "نمی‌توان طرح‌تان به‌هنگام‌سازی کرد." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "اصلی" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "خط‌زمانی %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s اشتراک" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "برگزیده‌ها" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "اعضای گروه %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "شما نمی‌توانید خودتان رو مسدود کنید!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "مسدود کردن کاربر شکست خورد." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "باز کردن کاربر ناموفق بود." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "پیام‌های مستقیم از %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "تمام پیام‌های مستقیم فرستاده‌شده از %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "پیام‌های مستقیم به %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "تمام پیام‌های مستقیم فرستاده‌شده به %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "هیچ پیام متنی وجود ندارد!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "این بسیار طولانی است. بیشینهٔ اندازهٔ پیام %d نویسه است." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "این بسیار طولانی است. بیشینهٔ اندازهٔ پیام %d نویسه است." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "کاربر گیرنده یافت نشد." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "نمی‌توان پیام مستقیم را به کاربرانی که دوست شما نیستند، فرستاد." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "یک پیام را به خودتان نفرستید؛ در عوض آن را آهسته برای خود بگویید." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "هیچ وضعیتی با آن شناسه پیدا نشد." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "این پیغام را پیش‌تر به برگزیده‌های خود اضافه کرده‌اید" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "نمی‌توان پیام را برگزید." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "این پیام یک پیام برگزیده نیست." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "نمی‌توان پیام برگزیده را حذف کرد." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "نمی‌توان کاربر را دنبال کرد: کاربر یافت نشد." +msgstr "نمی‌توان کاربر را دنبال نکرد: کاربر یافت نشد." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "نمی‌توان کاربر را دنبال کرد: %s هم‌اکنون در لیست شما است." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "نمی‌توان کاربر را دنبال نکرد: کاربر یافت نشد." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "نمی‌توانید خودتان را دنبال کنید." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "باید ۲ شناسه‌ی کاربر یا نام ظاهری وارد کنید." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "نمی‌توان کاربر منبع را تعیین کرد." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "نمی‌توان کاربر هدف را پیدا کرد." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "لقب باید شامل حروف کوچک و اعداد و بدون فاصله باشد." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی دیگر انتخاب کنید." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "لقب نا معتبر." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "صفحهٔ خانگی یک نشانی معتبر نیست." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "نام کامل خیلی طولانی است (حداکثر ۲۵۵ نویسه)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "توصیف خیلی طولانی است (حداکثر %d نویسه)" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "توصیف خیلی طولانی است (حداکثر %d نویسه)" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "نام مکان خیلی طولانی است (حداکثر ۲۵۵ نویسه)" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "نام‌های مستعار بسیار زیاد هستند! حداکثر %d." - -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, fuzzy, php-format -msgid "Invalid alias: \"%s\"." -msgstr "نام‌مستعار غیر مجاز: «%s»" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "نام‌های مستعار بسیار زیاد هستند! حداکثر %d." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "نام مستعار نامعتبر است: «%s»." + +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "نام‌مستعار «%s» ازپیش گرفته‌شده‌است. یکی دیگر را امتحان کنید." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "نام و نام مستعار شما نمی تواند یکی باشد ." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "گروه یافت نشد." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "شما از پیش یک عضو این گروه هستید." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "دسترسی شما به گروه توسط مدیر آن محدود شده است." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "نمی‌توان کاربر %1$s را عضو گروه %2$s کرد." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "شما یک عضو این گروه نیستید." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "خارج شدن %s از گروه %s نا موفق بود" -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "گروه‌های %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "هست عضو %s گروه" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s گروه" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "گروه‌ها در %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "بارگذاری پرونده" +msgstr "بارگذاری شکست خورد." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "رمز ورود مشخص شده نامعتبر است." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "هیچ پارامتر oauth_token آماده نشده است." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "رمز نامعتبر است." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "شما شناسایی نشده اید." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." -msgstr "مشکلی در دریافت جلسه‌ی شما وجود دارد. لطفا بعدا سعی کنید." +msgstr "مشکلی در دریافت نشست شما وجود دارد. لطفا بعدا سعی کنید." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "نام کاربری یا گذرواژه نامعتبر است!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "هنگام حذف‌کردن کاربر برنامهٔ OAuth در پایگاه داده خطایی رخ داد." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "هنگام افزودن کاربر برنامهٔ OAuth در پایگاه داده خطایی رخ داد." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"نشانهٔ درخواست %s تایید شد. لطفا آن را برای یک نشانهٔ دسترسی مبادله کنید." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "نشانهٔ درخواست %s پذیرفته نشد و لغو شد." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "ارسال غیر قابل انتظار فرم." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "یک برنامه می‌خواهد که به حساب شما وصل شود" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "اجازه‌دادن (به) یا جلوگیری از دسترسی" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"برنامهٔ <strong>%1$s</strong> نوشته شده توسط <strong>%2$s</strong> امکان " +"<strong>%3$s</strong> داده‌های حساب %4$s شما را می‌خواهد. شما باید تنها اجازهٔ " +"دسترسی به حساب %4$s خودتان را به برنامه‌های دیگری که به آن اعتماد دارید، " +"بدهید." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -598,241 +846,627 @@ msgstr "" "دسترسی به حساب %4$s خودتان را به برنامه‌های دیگری که به آن اعتماد دارید، " "بدهید." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "حساب کاربری" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "نام کاربری" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "گذرواژه" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "رد کردن" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "انصراف" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "اجازه دادن" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "به دسترسی به اطلاعات حسابتان اجازه بدهید یا از آن جلوگیری کنید." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "تایید پیام‌رسان فوری لغو شد." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "نشانهٔ درخواست %s پذیرفته نشد و لغو شد." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "شما شناسایی نشده اید." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "شما شناسایی نشده اید." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "این روش نیازمند POST یا DELETE است." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "شما توانایی حذف وضعیت کاربر دیگری را ندارید." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "چنین پیامی وجود ندارد." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "نمی توانید پیام خود را تکرار کنید." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "قبلا آن پیام تکرار شده است." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "رابط مورد نظر پیدا نشد." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "قالب پشتیبانی نشده." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "وضعیت حذف شد." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "هیچ وضعیتی با آن شناسه یافت نشد." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "نمی‌توان این پیام را پاک کرد." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "پیام را پاک کن" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "این خیلی طولانی است. بیشینهٔ طول پیام %d نویسه است." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "این خیلی طولانی است. بیشینهٔ طول پیام %d نویسه است." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "یافت نشد." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "رابط مورد نظر پیدا نشد." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "بیشینهٔ طول پیام %d نویسه که شامل نشانی اینترنتی پیوست هم هست." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "بیشینهٔ طول پیام %d نویسه که شامل نشانی اینترنتی پیوست هم هست." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "قالب پشتیبانی نشده." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / برگزیده‌ها از %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "به‌روزرسانی‌های %1$s که توسط %2$s برگزیده شده اند / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%$1s / به روز رسانی های شامل %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s به روز رسانی هایی که در پاسخ به $2$s / %3$s" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s خط‌زمانی عمومی" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s به روز رسانی های عموم" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "روش پیاده نشده است." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "تکرار شده به %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "تکرار %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "پیام‌هایی که با %s نشانه گزاری شده اند." -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "پیام‌های نشانه گزاری شده با %1$s در %2$s" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "تنها کاربران می تواند صندوق نامهٔ خودشان را بخوانند." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "پیدا کردن محتوای پیام‌ها" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "پیامی با آن شناسه وجود ندارد." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "روش API در دست ساخت." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "رابط مورد نظر پیدا نشد." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "چنین نمایه‌ای وجود ندارد." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "نمی‌توان اشتراک تازه‌ای افزود." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "پیدا کردن محتوای پیام‌ها" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "ناشناخته" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "افزودن به برگزیده‌ها" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "چنین نمایه‌ای وجود ندارد." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "اعضای گروه %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "هست عضو %s گروه" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "ناشناخته" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "همهٔ اعضا" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "چنین پرونده‌ای وجود ندارد." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "نمی‌توان پیام برگزیده را حذف کرد." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "چنین گروهی وجود ندارد." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "همهٔ اعضا" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "رابط مورد نظر پیدا نشد." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "چنین نمایه‌ای وجود ندارد." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "شما مشترک آن نمایه نیستید." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "نمی‌توان اشتراک را ذخیره کرد." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "افراد مشترک %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "نوع فایل پشتیبانی نشده" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "چنین پیوستی وجود ندارد." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "لقبی وجود ندارد." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "بدون اندازه." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." -msgstr "اندازه‌ی نادرست" +msgstr "اندازه نادرست است." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "چهره" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "شما می‌توانید چهرهٔ شخصی خود را بارگذاری کنید. حداکثر اندازه پرونده %s است." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "کاربر نمایهٔ تطبیق ندارد." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "تنظیمات چهره" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "اصلی" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "پیش‌نمایش" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "حذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "پایین‌گذاری" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "برش" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "هیچ پرونده‌ای بارگذاری نشد." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" -msgstr "یک مربع از عکس خود را انتخاب کنید تا چهره‌ی شما باشد." +msgstr "" +"یک مربع از عکس خود را انتخاب کنید تا به عنوان تصویر چهرهٔ شما انتخاب شود." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "فایل اطلاعات خود را گم کرده ایم." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "چهره به روز رسانی شد." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "به روز رسانی چهره موفقیت آمیر نبود." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "چهره پاک شد." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "شما هم اکنون آن کاربر را مسدود کرده اید." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "مسدود کردن کاربر" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -845,175 +1479,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "خیر" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "کاربر را مسدود نکن" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "بله" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "کاربر را مسدود کن" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "ذخیرهٔ ردیف اطلاعات شکست خورد." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "چنین گروهی وجود ندارد." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s نمایه‌های مسدود شده" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s نمایه‌های مسدود شده، صفحهٔ %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "فهرستی از افراد مسدود شده در پیوستن به این گروه." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "آزاد کردن کاربر در پیوستن به گروه" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "آزاد سازی" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "آزاد سازی کاربر" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "فرستادن به %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "بدون کد تصدیق." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "کد تصدیق پیدا نشد." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "آن کد تصدیق برای شما نیست!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "نوع نشانی نامشخص است %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "آن نشانی در حال حاضر تصدیق شده است." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "نمی‌توان کاربر را به روز کرد." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "نمی‌توان تایید پیام‌رسان فوری را پاک کرد." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "تایید نشانی" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "نشانی «%s« برای شما تصدیق شد." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "مکالمه" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "پیام‌ها" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "برای پاک‌کردن یک برنامه باید وارد شده باشید." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "برنامه یافت نشد." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "شما مالک این برنامه نیستید." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "یک مشکل با رمز نشست شما وجود داشت." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "حذف برنامه" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1024,31 +1704,93 @@ msgstr "" "می‌شود." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "این برنامه حذف نشود" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "این برنامه حذف شود" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "برای ترک یک گروه، شما باید وارد شده باشید." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "نام‌مستعار یا شناسه‌ای وجود ندارد." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "شما یک عضو این گروه نیستید." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s گروه %2$s را ترک کرد" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "حذف کاربر" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"آیا مطمئن هستید که می‌خواهید این کاربر را پاک کنید؟ با این کار تمام اطلاعات " +"پاک و بدون برگشت خواهند بود." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "این پیام را پاک نکن" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "حذف این کاربر" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "شما به سیستم وارد نشده اید." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "نمی‌توان این پیام را پاک کرد." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1056,21 +1798,24 @@ msgstr "" "شما می‌خواهید یک پیام را به طور کامل پاک کنید. پس از انجام این کار نمی‌توان " "پیام را بازگرداند." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "پیام را پاک کن" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "آیا اطمینان دارید که می‌خواهید این پیام را پاک کنید؟" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1101,63 +1846,75 @@ msgstr "حذف این کاربر" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "طرح" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "تنظیمات ظاهری برای این وب‌گاه StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "نشانی اینترنتی نشان نامعتبر است." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "نشانی اینترنتی نشان نامعتبر است." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "پوسته در دسترس نیست: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "تغییر نشان" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "نشان وب‌گاه" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "نشان وب‌گاه" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "تغییر پوسته" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "پوستهٔ وب‌گاه" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "پوسته برای وب‌گاه" -#: actions/designadminpanel.php:467 -#, fuzzy +#: actions/designadminpanel.php:493 msgid "Custom theme" -msgstr "پوستهٔ وب‌گاه" +msgstr "پوستهٔ اختصاصی" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" +"شما می‌توانید یک پوستهٔ اختصاصی StatusNet را به‌عنوان یک آرشیو .ZIP بارگذاری " +"کنید." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "تغییر تصویر پیش‌زمینه" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "پیش‌زمینه" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1167,75 +1924,84 @@ msgstr "" "پرونده %1 $s است." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "روشن" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "خاموش" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "تصویر پیش‌زمینه را فعال یا غیرفعال کنید." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "تصویر پیش‌زمینهٔ موزاییکی" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "تغییر رنگ‌ها" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "محتوا" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "ستون کناری" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "متن" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "پیوندها" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" -msgstr "" +msgstr "پیشرفته" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "" +msgstr "CSS اختصاصی" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "استفاده‌کردن از پیش‌فرض‌ها" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "بازگرداندن طرح‌های پیش‌فرض" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "برگشت به حالت پیش گزیده" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "ذخیره‌کردن" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "ذخیره‌کردن طرح" @@ -1248,113 +2014,137 @@ msgid "Add to favorites" msgstr "افزودن به برگزیده‌ها" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "چنین سندی وجود ندارد." +msgstr "چنین پیوستی وجود ندارد." -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "ویرایش برنامه" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "برای ویرایش یک برنامه باید وارد شده باشید." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "چنین برنامه‌ای وجود ندارد." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "از این روش برای ویرایش برنامه‌تان استفاده کنید." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "نام مورد نیاز است." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "نام خیلی طولانی است (حداکثر ۲۵۵ نویسه)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "این نام در حال حاضر مورد استفاده است. یکی دیگر را بیازمایید." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "توصیف مورد نیاز است." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "نشانی اینترنتی منبع بسیار بلند است." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "نشانی اینترنتی منبع معتبر نیست." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "سازمانی‌دهی مورد نیاز است." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "نام سازمان خیلی طولانی است (حداکثر ۲۵۵ نویسه)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "صفحهٔ‌خانگی سازمان مورد نیاز است." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 +#, fuzzy msgid "Callback is too long." -msgstr "" +msgstr "نشانی اینترنتی منبع بسیار بلند است." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 +#, fuzzy msgid "Callback URL is not valid." -msgstr "" +msgstr "نشانی اینترنتی منبع معتبر نیست." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "نمی‌توان برنامه را به‌هنگام‌سازی کرد." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "ویرایش گروه %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "برای ساخت یک گروه، باید وارد شده باشید." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "برای ویرایش گروه باید یک مدیر باشید." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "از این روش برای ویرایش گروه استفاده کنید." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "توصیف خیلی طولانی است (حداکثر %d نویسه)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "نام‌مستعار غیر مجاز: «%s»" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "نمی‌توان نام‌های مستعار را ساخت." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "گزینه‌ها ذخیره شدند." @@ -1372,12 +2162,12 @@ msgstr "چگونگی دریافت نامه از %%site.name%% را اداره ک #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "نشانی پست الکترونیک" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "نشانی پست الکترونیکی تایید شدهٔ کنونی" @@ -1386,14 +2176,14 @@ msgstr "نشانی پست الکترونیکی تایید شدهٔ کنونی" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "حذف" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1401,25 +2191,19 @@ msgstr "" "در حال انتظار برای تایید این نشانی. صندوق ورودی (و صندوق هرزنامه!) خود را " "برای یک پیام با راهنمایی‌های بیش‌تر بررسی کنید." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "انصراف" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "نشانی پست الکترونیکی، مانند «UserName@example.org»" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1427,113 +2211,120 @@ msgstr "افزودن" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "پست الکترونیک ورودی" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "می‌خواهم با نامه پیام بفرستم." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" "برای فرستادن پیام با استفاده از پست الکترونیک به این نشانی نامه بفرستید." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "نشانی جدید برای فرستادن پیام ایجاد کن؛ نشانی قبلی لغو می‌شود." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "تازه" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "ترجیحات پست الکترونیکی" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "پیام‌های کسانی را که به تازگی دنبال می‌کنم با پست الکترونیک برایم بفرست." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "هرگاه کسی پیام من را به عنوان برگزیده اضافه کرد، به من نامه فرستاده شود." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "هر وقت کسی برای من پیام خصوصی فرستاد، مرا با پست الکترونیک با خبر کن." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "هرگاه کسی به من یک «@-پاسخ» می‌فرستد، به من نامه بفرست." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" "به دوستان اجازه داده شود که به من یادآوری کنند و یک نامه به من بفرستند." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "می‌خواهم با نامه پیام بفرستم." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "یک شناسه برای پست الکترونیک من منتشر کن." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "ترجیحات پست الکترونیکی ذخیره شد." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "پست الکترونیک وجود ندارد." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "نمی‌توان نشانی را قانونی کرد" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "یک نشانی پست الکترونیکی معتبر نیست." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "هم اکنون نشانی شما همین است." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "این نشانی در حال حاضر متعلق به فرد دیگری است." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "نمی‌توان کد تایید را اضافه کرد." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1544,50 +2335,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "هیچ تاییدی برای فسخ کردن وجود ندارد." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "این نشانی پست الکترونیکی نادرست است." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "تایید پست الکترونیکی لغو شد." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "آن نشانی شما نیست." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "نشانی پست الکترونیکی پاک شده است." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "هیچ نشانی ورودی وجود ندارد." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "نمی‌توان اطلاعات کاربر را به روز کرد." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "نشانی ورودی پاک شد." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "نشانی ورودی جدید اضافه شد." @@ -1595,11 +2392,11 @@ msgstr "نشانی ورودی جدید اضافه شد." msgid "This notice is already a favorite!" msgstr "این پیام ازقبل برگزیده شده است!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "خارج‌کردن از برگزیده‌ها" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "پیام‌های برگزیده" @@ -1637,7 +2434,7 @@ msgstr "" "باشید که یک پیام را به برگزیده‌هایش اضافه می‌کند!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "پیام‌های برگزیدهٔ %s" @@ -1655,7 +2452,7 @@ msgstr "کاربران ویژه" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "کاربران ویژه، صفحه‌ی %d" +msgstr "کاربران ویژه، صفحهٔ %d" #: actions/featured.php:99 #, php-format @@ -1700,13 +2497,13 @@ msgstr "شما شناسایی نشده اید." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." -msgstr "نمی‌توان نشانه‌ی درخواست شما را به نشانه‌ی دسترسی تبدیل کرد." +msgstr "نمی‌توان نشانهٔ درخواست شما را به نشانهٔ دسترسی تبدیل کرد." #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "خدمات مورد نظر از نسخه‌ی نا مفهومی از قرارداد OMB استفاده می‌کند." +msgstr "خدمات مورد نظر از نسخهٔ نامفهومی از قرارداد OMB استفاده می‌کند." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "خطا هنگام به‌هنگام‌سازی نمایهٔ از راه دور." @@ -1734,19 +2531,23 @@ msgstr "شما نمی‌توانید در این وب‌گاه نقش‌های msgid "User already has this role." msgstr "کاربر از قبل این وظیفه را داشته است." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "نمایه‌ای مشخص نشده است." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "کاربری با چنین شناسه‌ای وجود ندارد." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "گروهی مشخص نشده است." @@ -1763,7 +2564,7 @@ msgstr "هم اکنون دسترسی کاربر به گروه مسدود شده msgid "User is not a member of group." msgstr "کاربر عضو گروه نیست." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "دسترسی کاربر به گروه مسدود شود" @@ -1810,8 +2611,10 @@ msgid "" "palette of your choice." msgstr "ظاهر گروه را تغییر دهید تا شما را راضی کند." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "نمی‌توان ظاهر را به روز کرد." @@ -1829,9 +2632,17 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "شما می‌توانید یک نشان برای گروه خود با بیشینه حجم %s بفرستید." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "پایین‌گذاری" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "برش" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "یک ناحیه‌ی مربع از تصویر را انتخاب کنید تا به عنوان نشان باشد." +msgstr "یک ناحیه‌ی مربع از تصویر را انتخاب کنید تا به عنوان نشان انتخاب شود." #: actions/grouplogo.php:399 msgid "Logo updated." @@ -1841,48 +2652,55 @@ msgstr "نشان به‌هنگام‌سازی شد." msgid "Failed updating logo." msgstr "به‌هنگام‌سازی نشان شکست خورد." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "اعضای گروه %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "اعضای گروه %1$s، صفحهٔ %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "یک فهرست از کاربران در این گروه" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "مدیر" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "بازداشتن" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "بستن کاربر" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "کاربر یک مدیر گروه شود" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "مدیر شود" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "این کاربر یک مدیر شود" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "خط زمانی %s" +msgstr "کاربر را مدیر کن" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1913,7 +2731,7 @@ msgstr "" "علاقه‌مندی‌های خاصی دارد صحبت کنید. بعد از پیوستن به یک گروه می‌توانید به شکل !" "groupname به تمام اعضای دیگر گروه پیام بفرستید. گروهی را که دوست دارید، " "نمی‌بینید؟ می‌توانید برای یافتن آن [بگردید](%%%action.groupsearch%%%) !یا [آن " -"را خودتان بسازید] (%%%%action.newgroup%%%%)" +"را خودتان بسازید](%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 msgid "Create a new group" @@ -1955,15 +2773,18 @@ msgstr "" "چرا [ثبت نام](%%action.register%%) نمی‌کنید و گروه را خود [ایجاد](%%action." "newgroup%%) نمی‌کنید!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "تنها یک مدیر توانایی برداشتن منع کاربران گروه را دارد." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "کاربر از گروه منع نشده است." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "اشکال در پاکسازی" @@ -2012,7 +2833,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2022,63 +2846,63 @@ msgstr "" "به فهرست دوستان خود در کارگیر پیام‌رسان فوری‌تان یا در GTalk مطمئن شوید." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "ترجیحات پیام‌رسان فوری" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "پیام‌ها را از راه Jabber/GTalk برای من بفرست." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "هر وقت که وضعیت Jabber/Gtalk من تغییر کرد، یک پیام بفرست." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "پاسخ کسانی که من آن‌ها را دنبال نمی‌کنم را با Jabber/Gtalk برایم بفرست." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "یک شناسه‌ی کوچک برای Jabber/Gtalk من منتشر کن." +msgstr "یک شناسهٔ کوچک برای Jabber/Gtalk من منتشر کن." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "تنظیمات ذخیره شد." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "هیچ شناسهٔ Jabber ای وجود ندارد." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "نمی‌توان شناسه‌ی Jabber را تایید کرد" +msgstr "نمی‌توان شناسهٔ Jabber را تایید کرد" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" -msgstr "شناسه‌ی Jabber درست نیست" +msgstr "شناسهٔ Jabber درست نیست" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "این شناسه Jabber کنونی شماست." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "شناسهٔ Jabber به یک کاربر دیگر مربوط است." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2088,28 +2912,28 @@ msgstr "" "برای فرستادن پیام به شما، تایید کنید." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "نشانی پیام رسان اشتباه است." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "نمی‌توان تایید پیام‌رسان فوری را پاک کرد." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "تایید پیام‌رسان فوری لغو شد." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "این شناسه‌ی Jabber شما نیست." +msgstr "این شناسهٔ Jabber شما نیست." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "نشانی پیام‌رسان فوری پاک شده است." @@ -2127,49 +2951,76 @@ msgstr "صندوق ورودی %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "این صندوق ورودی‌های شماست که پیام‌های خصوصی شما در آن خواهد بود." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "دعوت‌کردن از کار انداخته شده است." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "شما برای دعوت دیگران به استفاده از %s باید وارد شده باشید." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "پست‌الکترونیک صحیح نیست: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "دعوت‌نامه(ها) فرستاده‌شد" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "دعوت کردن کاربران تازه" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "شما هم‌اکنون مشترک این کاربران هستید:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "شما هم‌اکنون مشترک این کاربران هستید:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "این کاربرانی هستند که شما به صورت خودکار آن‌ها را دنبال می‌کنید: " +msgstr[0] "این کاربرانی هستند که شما به صورت خودکار آن‌ها را دنبال می‌کنید: " -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "دعوت‌نامه(ها) برای افراد زیر فرستاده شد:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "دعوت‌نامه(ها) برای افراد زیر فرستاده شد:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2177,42 +3028,53 @@ msgstr "" "هر زمان که دعوت‌شدگان شما دعوت‌تان را بپذیرند، شما باخبر خواهید شد. از شما " "برای رشد اجتماع کاربران تشکر می‌کنیم!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "برای دعوت دوستان و تشویق آن‌ها به استفاده از خدمات از فرم زیر استفاده کنید." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "نشانی‌های پست الکترونیکی" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "نشانی دوستان (یک نشانی در هر خط(" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "پیام خصوصی" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "در صورت تمایل می‌توانید یک پیام به همراه دعوت نامه بفرستید." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "فرستادن" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s شما را دعوت کرده است که در %2$s به آن‌ها بپیوندید." -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2274,13 +3136,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "برای پیوستن به یک گروه، باید وارد شده باشید." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "نام‌مستعار یا شناسه‌ای وجود ندارد." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s به گروه %2$s پیوست" @@ -2289,17 +3145,121 @@ msgstr "%1$s به گروه %2$s پیوست" msgid "You must be logged in to leave a group." msgstr "برای ترک یک گروه، شما باید وارد شده باشید." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "شما یک کاربر این گروه نیستید." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s گروه %2$s را ترک کرد" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "متن خوشامدگویی نامعتبر است. بیشینهٔ طول متن ۲۵۵ نویسه است." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "خصوصی" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "قبلا وارد شده" @@ -2320,11 +3280,11 @@ msgstr "ورود" msgid "Login to site" msgstr "ورود به وب‌گاه" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "مرا به یاد بسپار" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "وارد شدن خودکار. نه برای کامپیوترهای مشترک!" @@ -2374,66 +3334,77 @@ msgstr "نمی‌توان %1$s را یکی از مدیران گروه %2$s کر msgid "No current status." msgstr "وضعیت فعلی وجود ندارد." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "برنامهٔ تازه" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "برای ثبت یک برنامه باید وارد شده باشید." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "از این شیوه برای ساختن یک برنامهٔ تازه استفاده کنید." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "نشانی اینترنتی منبع مورد نیاز است." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "نمی‌توان برنامه را ساخت." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "گروه جدید" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "از این فرم برای ساختن یک گروه جدید استفاده کنید" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "پیام جدید" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "شما نمی توانید به این کاربر پیام بفرستید." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "محتوایی وحود ندارد!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "هیچ گیرنده ای مشخص نشده" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "یک پیام را به خودتان نفرستید؛ در عوض آن را آهسته برای خود بگویید." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "پیام فرستاده‌شد" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "پیام مستقیم به %s فرستاده شد." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "خطای آژاکس" @@ -2441,7 +3412,7 @@ msgstr "خطای آژاکس" msgid "New notice" msgstr "پیام جدید" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "پیام فرستاده‌شد." @@ -2459,9 +3430,9 @@ msgid "Text search" msgstr "جست‌وجوی متن" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "نتایج جست‌و‌جو برای %s در %s" +msgstr "پیام از %1$s در %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2494,9 +3465,10 @@ msgstr "پیام‌هایی که با جست‌و‌جوی عبارت »%1$s« #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"این کاربر اجازه‌ی یادآوری‌کردن را نداده است یا پست‌الکترونیک خود را تایید یا " +"این کاربر اجازهٔ یادآوری‌کردن را نداده است یا پست‌الکترونیک خود را تایید یا " "تعیین نکرده است." #: actions/nudge.php:94 @@ -2507,73 +3479,97 @@ msgstr "یادآوری فرستاده‌شد" msgid "Nudge sent!" msgstr "یادآوری فرستاده‌شد!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "برای فهرست‌کردن برنامه‌هایتان باید وارد شده باشید." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "برنامه‌های OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "برنامه‌هایی که ثبت کرده‌اید" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "شما هنوز هیچ برنامه‌ای را ثبت نکرده‌اید." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "برنامه‌های وصل‌شده" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "شما به برنامه‌های زیر اجازه داده‌اید که به حساب‌تان دسترسی پیدا کنند." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "شما یک کاربر این برنامه نیستید." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "نمی‌توان دسترسی را برای برنامهٔ %s لغو کرد." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "شما به هیچ برنامه‌ای اجازه نداده‌اید که از حساب‌تان استفاده کند." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"توسعه‌دهنده‌ها می‌توانند تنظیمات نام‌نویسی را برای برنامه‌هایشان ویرایش کنند " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "این پیام نمایه‌ای ندارد." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "وضعیت %1$s در %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "نوع محتوای %s پشتیبانی نشده است." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "لطفا تنها از نشانی‌های اینترنتی %s از راه HTTP ساده استفاده کنید." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -2585,37 +3581,47 @@ msgstr "جست‌وجوی کاربران" msgid "Notice Search" msgstr "جست‌وجوی پیام‌ها" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "تنظیمات دیگر" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "مدیریت انتخاب های مختلف دیگر." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (سرویس‌ آزاد)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "کوتاه‌کردن نشانی‌های اینترنتی با" -#: actions/othersettings.php:117 -msgid "Automatic shortening service to use." -msgstr "کوتاه‌کننده‌ی نشانی مورد استفاده." - +#. TRANS: Tooltip for for dropdown with URL shortener services. #: actions/othersettings.php:122 +msgid "Automatic shortening service to use." +msgstr "کوتاه‌کنندهٔ نشانی مورد استفاده." + +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "نمایش طراحی‌های نمایه" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "نمایش دادن یا پنهان کردن طراحی‌های نمایه." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "کوتاه کننده‌ی نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "کوتاه کنندهٔ نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2678,7 +3684,7 @@ msgid "6 or more characters" msgstr "۶ نویسه یا بیش‌تر" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "تایید" @@ -2690,11 +3696,11 @@ msgstr "مانند گذرواژهٔ بالا" msgid "Change" msgstr "تغییر" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "گذرواژه باید ۶ نویسه یا بیش‌تر باشد." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "گذرواژه‌ها مطابقت ندارند." @@ -2714,156 +3720,291 @@ msgstr "نمی‌توان گذرواژهٔ جدید را ذخیره کرد." msgid "Password saved." msgstr "گذرواژه ذخیره شد." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "مسیر ها" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "تنظیمات و نشانی محلی این وب‌گاه StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." -msgstr "شاخه‌ی پوسته‌ها قابل خواندن نیست: %s." +msgstr "شاخهٔ پوسته‌ها قابل خواندن نیست: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." -msgstr "شاخه‌ی تصویر چهره‌ها قابل نوشتن نیست: %s." +msgstr "شاخهٔ تصویر چهره‌ها قابل نوشتن نیست: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." -msgstr "شاخه‌ی پس زمینه‌ها قابل نوشتن نیست: %s." +msgstr "شاخهٔ پس زمینه‌ها قابل نوشتن نیست: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." -msgstr "پوشه‌ی تنظیمات محلی قابل خواندن نیست: %s." +msgstr "پوشهٔ تنظیمات محلی قابل خواندن نیست: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "کارگزار SSL نامعتبر است. بیشینهٔ طول نام ۲۵۵ نویسه است." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "وب‌گاه" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "کارگزار" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "نام میزبان کارگزار وب‌گاه." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "مسیر" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "مسیر وب‌گاه" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "نشانی تنظیمات محلی" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "شاخهٔ پوسته" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "مسیر پوشه برای زبان‌های محلی" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "نشانی‌های تمیز" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "از نشانی‌های تمیز (خواناتر و ماندگارتر در ذهن) استفاده شود؟" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "پوسته" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "کارگزار پوسته" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "پوسته برای وب‌گاه" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "مسیر پوسته" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "شاخهٔ پوسته" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "چهره‌ها" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "کارگزار چهره‌ها" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "مسیر نیم‌رخ" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "شاخهٔ نیم‌رخ" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "پس زمینه‌ها" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "کارگذار تصاویر پیش‌زمینه" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "مسیر تصاویر پیش‌زمینه" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "شاخهٔ تصاویر پیش‌زمینه" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "هیچ وقت" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "گاهی اوقات" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "برای همیشه" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "استفاده از SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "زمان استفاده از SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "کارگزار SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "مسیر وب‌گاه" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "شاخهٔ پوسته" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "مسیر پوشه برای زبان‌های محلی" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "چهره‌ها" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "کارگزار چهره‌ها" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "پوسته برای وب‌گاه" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "مسیر نیم‌رخ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "به روز رسانی چهره موفقیت آمیر نبود." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "شاخهٔ نیم‌رخ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "مسیر پوشه برای زبان‌های محلی" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "پس زمینه‌ها" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "پوسته برای وب‌گاه" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "مسیر پوشه برای زبان‌های محلی" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "ضمائم" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "پوسته برای وب‌گاه" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "هیچ پیوستی وجود ندارد." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "پوسته برای وب‌گاه" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "مسیر پوشه برای زبان‌های محلی" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "هیچ وقت" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "گاهی اوقات" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "برای همیشه" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "استفاده از SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "زمان استفاده از SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "کارگزار برای هدایت درخواست‌های SSL به" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "نشانی ذخیره سازی" @@ -2899,139 +4040,182 @@ msgstr "محتوای پیام نامعتبر است." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "مجوز پیام «%1$s» با مجوز وب‌گاه «%2$s» سازگار نیست." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "تنظیمات نمایه" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "شما می‌توانید نمایهٔ شخصی خود را در این بخش به‌هنگام‌سازی کنید تا دیگران بیش‌تر " "در مورد شما بدانند." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "اطلاعات نمایه" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "۱-۶۴ کاراکتر کوچک یا اعداد، بدون نقطه گذاری یا فاصله" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "نام‌کامل" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "صفحهٔ خانگی" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "نشانی اینترنتی صفحهٔ خانگی، وبلاگ یا نمایه‌تان در یک وب‌گاه دیگر" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "خودتان و علاقه‌مندی‌هایتان را در %d نویسه توصیف کنید" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "خودتان و علاقه‌مندی‌هایتان را در %d نویسه توصیف کنید" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "خودتان و علاقه‌مندی‌هایتان را توصیف کنید" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "شرح‌حال" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "موقعیت" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "" +msgstr "مکانی که شما در آن هستید، مانند «شهر، ایالت (یا استان)، کشور»" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "مکان کنونی من هنگام فرستادن پیام‌ها به اشتراک گذاشته شود" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "برچسب‌ها" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "برچسب‌ها برای خودتان (حروف، اعداد، -، .، و _) جدا شده با کاما- یا فاصله-" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "زبان" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "زبان برگزیده" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "منطقهٔ‌زمانی" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "شما معمولا در کدام منطقهٔ زمانی هستید؟" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "به صورت خودکار مشترک هر کسی بشو که مشترک من می‌شود (بهترین برای غیر انسان‌ها)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "شرح‌حال خیلی طولانی است (بیشینه %d نویسه)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "شرح‌حال خیلی طولانی است (بیشینه %d نویسه)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "منطقه‌ی زمانی انتخاب نشده است." +msgstr "منطقهٔ زمانی انتخاب نشده است." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "زبان بسیار طولانی است ( حداکثر ۵۰ نویسه)" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "نشان نادرست »%s«" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "نمی‌توان کاربر را برای اشتراک خودکار به‌هنگام‌سازی کرد." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "نمی‌توان تنظیمات مکانی را تنظیم کرد." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "نمی‌توان نمایه را ذخیره کرد." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "نمی‌توان نشان را ذخیره کرد." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "تنظیمات ذخیره شد." @@ -3047,11 +4231,11 @@ msgstr "نمی‌توان جریان عمومی را دریافت کرد." #: actions/public.php:130 #, php-format msgid "Public timeline, page %d" -msgstr "خط زمانی عمومی، صفحه‌ی %d" +msgstr "خط‌زمانی عمومی، صفحهٔ %d" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" -msgstr "خط زمانی عمومی" +msgstr "خط‌زمانی عمومی" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" @@ -3108,25 +4292,38 @@ msgstr "" "85%DB%8C%DA%A9%D8%B1%D9%88%D8%A8%D9%84%D8%A7%DA%AF%DB%8C%D9%86%DA%AF) بر " "پایهٔ نرم‌افزار آزاد [StatusNet](http://status.net/) است." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "ابر برچسب عمومی" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "این‌ها محبوب‌ترین برچسب‌های اخیر روی %s هستند " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "هیچ‌کس هنوز پیامی با یک [برچسب](%%doc.tags%%) نفرستاده است." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "اولین نفری باشید که چیزی می‌فرستد!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3135,7 +4332,7 @@ msgstr "" "چرا به [باز کردن یک حساب](%%action.register%%) اقدام نمی‌کنید و اولین نفری " "باشید که چیزی می‌فرستد!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "ابر برچسب" @@ -3249,14 +4446,15 @@ msgid "Unexpected password reset." msgstr "گذرواژه به طور غیر منتظره ریست شد." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "گذرواژه باید ۶ نویسه یا بیش‌تر باشد." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "گذرواژه و تاییدیهٔ آن با هم تطابق ندارند." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "هنگام گذاشتن کاربر خطا روی داد." @@ -3264,7 +4462,7 @@ msgstr "هنگام گذاشتن کاربر خطا روی داد." msgid "New password successfully saved. You are now logged in." msgstr "گذرواژه تازه با موفقیت ذخیره شد. شما اکنون وارد شده‌اید." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "با عرض معذرت، تنها افراد دعوت شده می توانند ثبت نام کنند." @@ -3276,27 +4474,27 @@ msgstr "با عرض تاسف، کد دعوت نا معتبر است." msgid "Registration successful" msgstr "ثبت نام با موفقیت انجام شد." -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "ثبت نام" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "اجازه‌ی ثبت نام داده نشده است." +msgstr "اجازهٔ ثبت‌نام داده نشده است." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "شما نمی توانید ثبت نام کنید اگر با لیسانس( جواز ) موافقت نکنید." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "نشانی پست الکترونیکی از قبل وجود دارد." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "نام کاربری یا گذرواژه نا معتبر است." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3304,55 +4502,59 @@ msgstr "" "با این فرم شما می‌توانید یک حساب تازه بسازید. سپس شما می‌توانید پیام بفرستید و " "به دوستان و همکارانتان بپیوندید. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "۱-۶۴ حرف کوچک یا اعداد، بدون نشانه گذاری یا فاصله نیاز است." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "۶ نویسه یا بیش‌تر مورد نیاز است." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "با گذرواژهٔ بالا یکسان باشد. مورد نیاز است." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "پست الکترونیکی" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "تنها برای به‌هنگام‌سازی‌ها، اعلامیه‌ها و بازیابی گذرواژه به کار می‌رود" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "نام بلند تر، به طور بهتر نام واقعیتان" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "نشانی اینترنتی صفحهٔ خانگی، وبلاگ یا نمایه‌تان در یک وب‌گاه دیگر" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "من متوجه هستم که محتوا و داده‌های %1$s خصوصی و محرمانه هستند." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "متن و پرونده‌های من دارای حق تکثیر %1$s هستند." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "متن و پرونده‌های من زیر حق تکثیر خودم می‌مانند." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "تمام حقوق محفوظ است." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3361,7 +4563,7 @@ msgstr "" "نوشته‌ها و پرونده‌های من به جز داده‌های خصوصی گذرواژه، نشانی پست الکترونیک، " "نشانی پیام‌رسان فوری و شماره تلفن زیر مجوز %s هستند." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3395,7 +4597,7 @@ msgstr "" "از این‌که نام‌نویسی کرده‌اید، تشکر می‌کنیم و امیدواریم که از استفاده از این " "سرویس لذت ببرید." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3439,7 +4641,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "نشانی اینترنتی نمایهٔ شما در سرویس میکروبلاگینگ سازگار دیگری" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "اشتراک" @@ -3477,7 +4679,7 @@ msgstr "شما نمی‌توانید پیام خودتان را تکرار کن msgid "You already repeated that notice." msgstr "شما قبلا آن پیام را تکرار کرده‌اید." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "تکرار شده" @@ -3486,7 +4688,7 @@ msgid "Repeated!" msgstr "تکرار شد!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "پاسخ‌های به %s" @@ -3512,13 +4714,11 @@ msgid "Replies feed for %s (Atom)" msgstr "خوراک پاسخ‌ها برای %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "" -"این خط‌زمانی است که پاسخ‌ها به %1$s را نشان می‌دهد، اما %2$s هنوز یک پیام به " -"توجه‌اش دریافت نکرده است." +msgstr "این خط‌زمانی %1$s است، اما %2$s تاکنون چیزی نفرستاده است." #: actions/replies.php:204 #, php-format @@ -3530,13 +4730,13 @@ msgstr "" "شوید یا [به گروه‌ها بپیوندید](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"شما می‌توانید [یادآوری %1$s](../%2$s) را امتحان کنید یا [به توجه او چیزی " -"بفرستید](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" +"s) پیام می‌فرستد." #: actions/repliesrss.php:72 #, php-format @@ -3552,35 +4752,37 @@ msgid "User doesn't have this role." msgstr "کاربر این نقش را ندارد." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "وضعیت حذف شد." +msgstr "StatusNet" #: 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 "کاربر قبلا ساکت شده است." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "نشست‌ها" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "تنظیمات نشست برای این وب‌گاه StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" msgstr "مدیریت نشست‌ها" #: actions/sessionsadminpanel.php:177 +#, fuzzy msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "چنان‌که به کاربران اجازهٔ دعوت‌کردن کاربران تازه داده شود." #: actions/sessionsadminpanel.php:181 msgid "Session debugging" @@ -3591,7 +4793,6 @@ msgid "Turn on debugging output for sessions." msgstr "خروجی اشکال‌زدایی برای نشست‌ها روشن شود." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "ذخیرهٔ تنظیمات وب‌گاه" @@ -3604,28 +4805,29 @@ msgid "Application profile" msgstr "نمایهٔ برنامه" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "شمایل" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "نام" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "سازمان" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "توصیف" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "آمار" @@ -3643,6 +4845,11 @@ msgstr "اعمال برنامه" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "حذف" + #: actions/showapplication.php:261 msgid "Application info" msgstr "اطلاعات برنامه" @@ -3713,7 +4920,7 @@ msgstr "" "آن‌ها بگذارید." #: actions/showfavorites.php:208 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" @@ -3722,91 +4929,119 @@ msgstr "" "ممکن است به برگزیده‌هایشان اضافه کنند :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s تاکنون هیچ پیامی را به برگزیده‌هایش اضافه نکرده است. چرا به [ثبت کردن یک " -"حساب](%%%%action.register%%%%) اقدام نمی‌کنید و سپس چیز جالبی را که ممکن است " -"به برگزیده‌هایشان اضافه کنند، بفرستید :)" +"چرا به [باز کردن یک حساب](%%action.register%%) اقدام نمی‌کنید و اولین نفری " +"باشید که یک پیام را به برگزیده‌هایش اضافه می‌کند!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "این یک راه است برای به اشتراک گذاشتن آنچه که دوست دارید." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "گروه %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "گروه %1$s، صفحهٔ %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "نمایهٔ گروه" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "نشانی اینترنتی" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "یادداشت" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "نام های مستعار" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "اعمال گروه" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "خوراک پیام برای گروه %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "خوراک پیام برای گروه %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "خوراک پیام برای گروه %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF برای گروه %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "اعضا" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "هیچ" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "همهٔ اعضا" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "ساخته شد" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "اعضا" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3822,7 +5057,10 @@ msgstr "" "می‌گذارند. [اکنون بپیوندید ](%%%%action.register%%%%) تا یکی از اعضای این " "گروه و بلکه بیش‌تر بشوید! ([بیش‌تر بخوانید](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3836,24 +5074,31 @@ msgstr "" "است. کاربران آن پیام‌های کوتاهی را دربارهٔ زندگی و علاقه‌مندی‌هایشان به اشتراک " "می‌گذارند. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "مدیران" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "چنین پیغامی وجود ندارد." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "تنها فرستنده و گیرنده می‌توانند این پیام را بخوانند." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "پیام به %1$s در %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "پیام از %1$s در %2$s" @@ -3862,47 +5107,67 @@ msgstr "پیام از %1$s در %2$s" msgid "Notice deleted." msgstr "پیام پاک شد." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " برچسب‌گذاری‌شده %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s، صفحهٔ %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "پیام‌های برچسب‌دار شده با %1$s، صفحهٔ %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s، صفحهٔ %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "خوراک پیام‌های %1$s دارای برچسب %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "خوراک پیام‌های %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "خوراک پیام‌های %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "خوراک پیام‌های %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF برای %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "این خط‌زمانی %1$s است، اما %2$s تاکنون چیزی نفرستاده است." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3910,16 +5175,20 @@ msgstr "" "اخیرا چیز جالب توجهی دیده‌اید؟ شما تاکنون پیامی نفرستاده‌اید، الان می‌تواند " "زمان خوبی برای شروع باشد :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"شما می‌توانید یادآوری %1$s را امتحان کنید یا [به توجه او چیزی بفرستید](%%%%" -"action.newnotice%%%%?status_textarea=%2$s)." +"اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" +"s) پیام می‌فرستد." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3933,7 +5202,9 @@ msgstr "" "،دارد. ]اکنون بپیوندید[(%%%%action.register%%%%) تا پیام‌های **%s** و بلکه " "بیش‌تر را دنبال کنید! (]بیش‌تر بخوانید[(%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3944,7 +5215,8 @@ msgstr "" "wikipedia.org/wiki/%D9%85%DB%8C%DA%A9%D8%B1%D9%88%D8%A8%D9%84%D8%A7%DA%AF%DB%" "8C%D9%86%DA%AF) بر پایهٔ نرم‌افزار آزاد [StatusNet](http://status.net/) ،دارد. " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "تکرار %s" @@ -3972,7 +5244,7 @@ msgstr "شما باید یک نشانی پست الکترونیکی معتبر #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "زبان «%s» ناشناس است." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." @@ -4047,39 +5319,49 @@ msgid "Maximum number of characters for notices." msgstr "بیشینهٔ تعداد نویسه‌ها برای پیام‌ها." #: actions/siteadminpanel.php:278 +#, fuzzy msgid "Dupe limit" -msgstr "" +msgstr "محدودیت متن" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "چه مدت کاربران باید منتظر بمانند (به ثانیه) تا همان چیز را دوباره بفرستند." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "پیام وب‌گاه" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "ویرایش پیام عمومی وب‌گاه" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "نمی‌توان پیام وب‌گاه را ذخیره کرد." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "بیشینهٔ طول برای پیام عمومی وب‌گاه ۲۵۵ نویسه است." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "متن پیام وب‌گاه" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "متن پیام عمومی وب‌گاه (حداکثر ۲۵۵ نویسه؛ می‌توان از HTML استفاده کرد)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "ذخیرهٔ پیام وب‌گاه" @@ -4240,7 +5522,7 @@ msgstr "کدی وارد نشد" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "تصاویر لحظه‌ای" @@ -4281,8 +5563,9 @@ msgid "Frequency" msgstr "فرکانس" #: actions/snapshotadminpanel.php:218 +#, fuzzy msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "تصاویر لحظه‌ای به این نشانی اینترنتی فرستاده می‌شوند" #: actions/snapshotadminpanel.php:226 msgid "Report URL" @@ -4296,12 +5579,14 @@ msgstr "تصاویر لحظه‌ای به این نشانی اینترنتی ف msgid "Save snapshot settings" msgstr "ذخیرهٔ تنظیمات تصویر لحظه‌ای" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "شما مشترک آن نمایه نیستید." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "نمی‌توان اشتراک را ذخیره کرد." @@ -4309,10 +5594,6 @@ msgstr "نمی‌توان اشتراک را ذخیره کرد." msgid "This action only accepts POST requests." msgstr "این عمل تنها درخواست‌های POST را می‌پذیرد." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "چنین نمایه‌ای وجود ندارد." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "نمی‌توان با این کار مشترک یک نمایهٔ از راه دور OMB 0.1شد." @@ -4321,39 +5602,56 @@ msgstr "نمی‌توان با این کار مشترک یک نمایهٔ از msgid "Subscribed" msgstr "مشترک‌شده" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s مشترک" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "مشترک‌های %1$s، صفحهٔ %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "این‌ها کسانی هستند که پیام‌های شما را دنبال می‌کنند." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "این‌ها کسانی هستند که پیام‌های %s را دنبال می‌کنند." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "شما هیچ مشترکی ندارید. تلاش کنید که مشترک افرادی شوید که می‌شناسید و شاید " "آن‌ها هم مشترک شما شوند." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s هیچ مشترکی ندارد. می‌خواهید اولین مشترک باشید؟" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4362,26 +5660,31 @@ msgstr "" "%s هیچ مشترکی ندارد. چرا ]یک حساب ثبت نمی‌کنید[(%%%%action.register%%%%) و " "اولین مشترک نمی‌شوید؟" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s اشتراک" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "اشتراک‌های %1$s، صفحهٔ %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "این‌ها کسانی هستند که پیام‌هایشان را دنبال می‌کنید." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "این‌ها کسانی هستند که %s پیام‌هایشان را دنبال می‌کند." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4397,16 +5700,27 @@ msgstr "" "twittersettings%%) هستید، شما می‌توانید به‌صورت خودکار مشترک افرادی شوید که " "اکنون آن‌جا آن‌ها را دنبال می‌کنید." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s هیچ‌کس را دنبال نمی‌کند." -#: actions/subscriptions.php:208 -msgid "Jabber" -msgstr "" +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "خوراک پیام‌های %s (Atom)" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 +msgid "Jabber" +msgstr "Jabber" + +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "پیامک" @@ -4431,8 +5745,9 @@ msgid "Notice feed for tag %s (Atom)" msgstr "خوراک پیام برای برچسب %s (Atom)" #: actions/tagother.php:39 +#, fuzzy msgid "No ID argument." -msgstr "" +msgstr "هیچ پیوستی وجود ندارد." #: actions/tagother.php:65 #, php-format @@ -4444,7 +5759,7 @@ msgid "User profile" msgstr "نمایهٔ کاربر" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "تصویر" @@ -4483,8 +5798,9 @@ 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." @@ -4499,80 +5815,102 @@ msgid "Unsubscribed" msgstr "لغو اشتراک شده" #: actions/updateprofile.php:64 actions/userauthorization.php:337 -#, php-format +#, fuzzy, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "مجوز پیام «%1$s» با مجوز وب‌گاه «%2$s» سازگار نیست." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "کاربر" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "تنظیمات کاربری برای این وب‌گاه StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "محدودیت شرح‌حال نادرست است. مقدار محدودیت باید عددی باشد." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "متن خوشامدگویی نامعتبر است. بیشینهٔ طول متن ۲۵۵ نویسه است." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "اشتراک پیش‌فرض نامعتبر است: «%1$s» کاربر نیست." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "نمایه" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "محدودیت شرح‌حال" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "بیشینهٔ طول یک شرح‌حال نمایه بر اساس نویسه‌ها." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "کاربران تازه" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "خوشامدگویی کاربر جدید" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "متن خوشامدگویی برای کاربران جدید (حداکثر ۲۵۵ نویسه)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "اشتراک پیش‌فرض" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "به صورت خودکار کاربران تازه‌وارد را مشترک این کاربر کن." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "دعوت‌نامه‌ها" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "دعوت نامه ها فعال شدند" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "چنان‌که به کاربران اجازهٔ دعوت‌کردن کاربران تازه داده شود." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "تصدیق اشتراک" @@ -4587,7 +5925,9 @@ msgstr "" "شوید، بررسی کنید. اگر شما درخواست اشتراک پیام‌های کسی را نداده‌اید، روی «رد " "کردن» کلیک کنید." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "مجوز" @@ -4635,19 +5975,19 @@ msgid "" msgstr "" #: actions/userauthorization.php:303 -#, php-format +#, fuzzy, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "نشانی تصویر چهره «%s» معتبر نیست." #: actions/userauthorization.php:308 -#, php-format +#, fuzzy, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "نشانی تصویر چهره «%s» معتبر نیست." #: actions/userauthorization.php:314 -#, php-format +#, fuzzy, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "نشانی اینترنتی نمایهٔ «%s» برای یک کاربر محلی است." #: actions/userauthorization.php:329 #, php-format @@ -4669,11 +6009,13 @@ msgstr "نمی‌توان نشانی اینترنتی چهره را خواند« msgid "Wrong image type for avatar URL ‘%s’." msgstr "نوع تصویر برای نشانی اینترنتی چهره نادرست است «%s»." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "طراحی نمایه" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4712,15 +6054,15 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "به روز رسانی‌های %1$s در %2$s" #: actions/version.php:75 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "آمار" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -4771,7 +6113,7 @@ msgid "Plugins" msgstr "افزونه‌ها" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "نسخه" @@ -4779,66 +6121,109 @@ msgstr "نسخه" msgid "Author(s)" msgstr "مؤلف(ها)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "برگزیده‌کردن" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "پیام شما را به برگزیده‌های خود اضافه کرد %s (@%s)" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" "هیچ پرونده‌ای نباید بزرگ‌تر از %d بایت باشد و پرونده‌ای که شما فرستادید %d بایت " "بود. بارگذاری یک نسخهٔ کوچک‌تر را امتحان کنید." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری شما از %d بایت بگذرد." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری ماهانهٔ شما از %d بایت " "بگذرد." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "اندازه‌ی نادرست" +msgstr "نام‌پرونده نادرست است." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "پیوستن به گروه شکست خورد." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "بخشی از گروه نیست." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "ترک کردن گروه شکست خورد." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "هنگام ذخیرهٔ کاربر خطا رخ داد؛ نامعتبر است." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "مشارکت کردن" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4854,48 +6239,49 @@ msgstr "نمی‌توان رمز ورود را برای %s ایجاد کرد" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "هیچ پایگاه‌داده یا DSN هیچ‌جا پیدا نشد." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "شما از فرستادن پیام مستقیم مردود شده اید." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "پیغام نمی تواند درج گردد" #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "نمی‌توان پیام را تجزیه کرد." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "چنین نمایه‌ای (%1$d) برای پیام (%2$d) وجود ندارد." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "هنگام افزودن برچسب خطا در پایگاه داده رخ داد: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "مشکل در ذخیره کردن پیام. بسیار طولانی." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "مشکل در ذخیره کردن پیام. کاربر نا شناخته." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4903,7 +6289,7 @@ msgstr "" "دوباره بفرستید." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4912,354 +6298,407 @@ msgstr "" "ارسال کنید." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "شما از فرستادن پیام در این وب‌گاه منع شده‌اید." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "هنگام ذخیرهٔ پیام مشکلی ایجاد شد." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "هنگام ذخیرهٔ صندوق ورودی گروه مشکلی رخ داد." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "نمی‌توان اطلاعات گروه محلی را ذخیره کرد." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" -msgstr "" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "نمی‌توان نقش «%1$s» را از کاربر #%2$d گرفت، وجود ندارد." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"نمی‌توان نقش «%1$s» را از کاربر #%2$d گرفت، خطا در پایگاه داده وجود دارد." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "کاربر هیچ نمایه‌ای ندارد." +msgstr "نمایه وجود ندارد." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 #, fuzzy msgid "Unable to save tag." msgstr "نمی‌توان پیام وب‌گاه را ذخیره کرد." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "شما از اشتراک منع شده‌اید." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "قبلا اشتراک انجام شده است!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "کاربر شما را مسدود کرده است." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "تایید نشده!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "نمی‌توان خود-اشتراکی را حذف کرد." +msgstr "نمی‌توان اشتراک را ذخیره کرد." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "نمی‌توان رمز اشتراک OMB را حذف کرد." +msgstr "نمی‌توان اشتراک را ذخیره کرد." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "نمی‌توان اشتراک را لغو کرد." +msgstr "نمی‌توان اشتراک را ذخیره کرد." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s اکنون پیام‌های شما را در %2$s دنبال می‌کند." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s، به %1$s خوش آمدید!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "هیچ کاربر تنهایی برای حالت تک کاربره مشخص نشده است." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "نمیتوان گروه را تشکیل داد" #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not set group URI." msgstr "نمیتوان گروه را تشکیل داد" #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "نمی‌توان عضویت گروه را تعیین کرد." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "نمی‌توان اطلاعات گروه محلی را ذخیره کرد." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "تنظیمات نمایه‌تان را تغییر دهید" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "بارگذاری یک چهره" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "تغییر گذرواژهٔ شما" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "تغیر تنظیمات ایمل ." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "نمایهٔ خود را طراحی کنید" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "انتخابات دیگر" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "دیگر" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format +#: lib/action.php:148 +#, php-format msgid "%1$s - %2$s" -msgstr "%s گروه %s را ترک کرد." +msgstr "%1$s (%2$s)" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "صفحهٔ بدون عنوان" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "مسیریابی اصلی وب‌گاه" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "نمایهٔ شخصی و خط‌زمانی دوستان" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "شخصی" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "پست الکترونیکی، تصویر، گذرواژه یا نمایهٔ خودتان را تغییر دهید" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "حساب کاربری" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "اتصال به سرویس‌ها" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "وصل‌شدن" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "تغییر پیکربندی وب‌گاه" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "مدیر" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "دوستان و همکاران‌تان را دعوت کنید تا به شما در %s بپیوندند" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "دعوت‌کردن" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "خارج‌شدن از وب‌گاه" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "خروج" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "ساختن یک جساب‌کاربری" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "ثبت‌نام" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "ورود به وب‌گاه" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "ورود" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "به من کمک کنید!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "کمک" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "جست‌وجو برای افراد یا متن" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "جست‌وجو" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "پیام وب‌گاه" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "دید محلی" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "پیام صفحه" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "مسیریابی فرعی وب‌گاه" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "کمک" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "دربارهٔ" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "سوال‌های رایج" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "شرایط سرویس" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "خصوصی" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "منبع" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "تماس" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "نشان" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet مجوز نرم افزار" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5269,13 +6708,16 @@ msgstr "" "broughtbyurl%%) برای شما راه‌اندازی شده است." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** یک سرویس میکروبلاگینگ است." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5287,344 +6729,456 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html) در دسترس است." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "مجوز محتویات وب‌گاه" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "محتویات و داده‌های %1$s خصوصی و محرمانه هستند." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "حق تکثیر محتوا و داده‌ها با %1$s است. تمام حقوق محفوظ است." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "حق تکثیر محتوا و داده‌ها با مشارکت‌کنندگان است. تمام حقوق محفوظ است." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "تمام محتویات و داده‌های %1$s زیر مجوز %2$s در دسترس هستند." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "صفحه بندى" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "پس از" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "قبل از" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "در حال انتظار برای یک عامل خوراک ریشه‌ای، اما یک سند XML کامل دریافت شد." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "تصویر" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "هنوز نمی‌توان محتویات ازراه‌دور را به‌کار برد." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "هنوز نمی‌توان محتویات XML جاسازی‌شده را به‌کار برد." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "هنوز نمی‌توان محتوای جاسازی‌شدهٔ Base64 را به‌کار برد." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "شما نمی توانید در این وب‌گاه تغییر ایجاد کنید" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "تغییرات در آن قطعه مجاز نیست." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() پیاده نشده است." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() پیاده نشده است." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "نمی توان تنظیمات طراحی شده را پاک کرد ." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "پیکربندی اولیه وب‌گاه" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "وب‌گاه" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "پیکربندی طرح" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "طرح" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "پیکربندی کاربر" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "کاربر" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "پیکربندی دسترسی" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "پیکربندی مسیرها" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "پیکربندی نشست‌ها" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "ویرایش پیام وب‌گاه" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "پیکربندی تصاویر لحظه‌ای" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "منبع API به دسترسی خواندن-نوشتن نیاز دارد، اما شما تنها دسترسی خواندن را " "دارید." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "ویرایش برنامه" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "نمی‌توان نام‌های مستعار را ساخت." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "نمی‌توان برنامه را ساخت." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "پیغام نمی تواند درج گردد" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "هنگام افزودن کاربر برنامهٔ OAuth در پایگاه داده خطایی رخ داد." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "شمایل این برنامه" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "برنامهٔ خود را در %d نویسه توصیف کنید" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "برنامهٔ خود را در %d نویسه توصیف کنید" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "برنامهٔ خود را توصیف کنید" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "نشانی اینترنتی صفحهٔ خانگی این برنامه" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "نشانی اینترنتی منبع" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "سازمان مسئول این برنامه" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "نشانی اینترنتی برای صفحهٔ خانگی سازمان" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "نشانی اینترنتی برای دوباره‌هدایت‌کردن بعد از تصدیق" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "مرورگر" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "میزکار" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "نوع برنامه، مرورگر یا میزکار" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "تنها خواندنی" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "خواندن-نوشتن" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "دسترسی پیش‌فرض برای این برنامه: تنها خواندنی یا خواندن-نوشتن" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "انصراف" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "خواندن-نوشتن" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "تنها خواندنی" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." +msgstr "تایید شده %1$s - با دسترسی «%2$s»" + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "لغو کردن" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "ضمائم" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "مؤلف" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "مهیا کننده" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "پیام‌هایی که این پیوست در آن‌جا ظاهر می‌شود" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "برچسب‌ها برای این پیوست" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "تغییر گذرواژه شکست خورد" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "تغییر گذرواژه مجاز نیست" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "بازداشتن" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "نتیجه دستور" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "خطای آژاکس" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "دستور انجام شد" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "فرمان شکست خورد" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "پیامی با این شناسه وجود ندارد" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "پیامی با آن شناسه وجود ندارد." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "کاربر پیام آخر ندارد" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." +msgstr "کاربر آگهی آخر ندارد" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "پیدا نشد %s کاریری یا نام مستعار" +msgid "Could not find a user with nickname %s." +msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "نمی‌توان یک کاربر محلی با نام کاربری %s پیدا کرد" +msgid "Could not find a local user with nickname %s." +msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "متاسفانه این دستور هنوز پیاده نشده است." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "خیلی جالب نیست که به خودتان یادآوری کنید!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "یادآوری به %s فرستاده‌شد" +msgid "Nudge sent to %s." +msgstr "یادآوری به %s فرستاده شد." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5635,55 +7189,64 @@ msgstr "" "مشترک‌ها: %2$s\n" "پیام‌ها: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "پیام به‌عنوان برگزیده مشخص شد." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "شما از پیش یک عضو این گروه هستید." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "نمی‌توان کاربر %1$s را عضو گروه %2$s کرد" +msgid "%1$s joined group %2$s." +msgstr "%1$s به گروه %2$s پیوست." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "نمی‌توان کاربر %1$s را از گروه %2$s حذف کرد" +msgid "%1$s left group %2$s." +msgstr "%1$s گروه %2$s را ترک کرد." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "نام کامل : %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "موقعیت : %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "صفحه خانگی : %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "دربارهٔ: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5692,146 +7255,174 @@ msgstr "" "%s یک نمایهٔ ازراه‌دور است؛ شما تنها می‌توانید پیام‌های مستقیم را به کاربران در " "یک کارگزار بفرستید." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "پیام خیلی طولانی است - حداکثر تعداد مجاز %1$d نویسه است که شما %2$d نویسه را " -"فرستادید" +"فرستادید." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "پیام مستقیم به %s فرستاده شد." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "خطا در فرستادن پیام مستقیم." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "امکان تکرار پیام خودتان وجود ندارد" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "آن پیام قبلا تکرار شده است." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "پیام از %s تکرار شد" +msgid "Notice from %s repeated." +msgstr "پیام %s تکرار شد." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "هنگام تکرار پیام خطایی رخ داد." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" -"پیام خیلی طولانی است - حداکثر تعداد مجاز %1$d نویسه است که شما %2$d نویسه را " -"فرستادید" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"پیام بسیار طولانی است - بیشترین اندازه امکان پذیر %d نویسه است، شما %d نویسه " +"فرستاده‌اید" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "پاسخ به %s فرستاده شد" +msgid "Reply to %s sent." +msgstr "پاسخ به %s فرستاده شد." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "هنگام ذخیرهٔ پیام خطا رخ داد." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "نام کاربر را برای مشترک‌شدن مشخص کنید" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "نمی‌توان با دستور مشترک نمایه‌های OMB شد." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "مشترک‌شدن %s انجام‌شد" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "نام کاربر را برای لغو اشتراک از او مشخص کنید." +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "از %s لغو اشتراک شد" +msgid "Unsubscribed from %s." +msgstr "اشتراک از %s لغو شد." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "دستور هنوز پیاده نشده است." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "آگاه‌سازی خاموش شد." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "ناتوان در خاموش کردن آگاه سازی." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "آگاه سازی فعال است." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "ناتوان در روشن کردن آگاه سازی." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "فرمان ورود از کار افتاده است" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "فرمان ورود غیرفعال شده است." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"این پیوند تنها یک‌بار قابل استفاده است و تنها برای دو دقیقه مفید است: %s" +"این پیوند تنها یک‌بار قابل استفاده است و فقط برای دو دقیقه معتبر است: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "لغو اشتراک شده %s" +msgid "Unsubscribed %s." +msgstr "%s لغو اشتراک شد." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "شما مشترک هیچ‌کسی نشده‌اید." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "شما مشترک این فرد شده‌اید:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "هیچ‌کس مشترک شما نشده است." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "این فرد مشترک شما شده است:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "شما در هیچ گروهی عضو نیستید ." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "شما یک عضو این گروه هستید:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5911,50 +7502,77 @@ msgstr "" "tracks - هنوز پیاده نشده است.\n" "tracking - هنوز پیاده نشده است.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "بدون کد تصدیق." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "من به دنبال پرونده‌های پیکربندی در مکان‌های زیر بودم: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "شما ممکن است بخواهید نصاب را اجرا کنید تا این را تعمیر کند." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "برو به نصاب." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "پیام‌رسان فوری" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "به‌هنگام‌سازی‌های انجام‌شده با پیام‌رسان فوری (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "پیامک" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "به‌روزرسانی با پیامک" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "اتصال‌ها" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "برنامه‌های وصل‌شدهٔ مجاز" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "خطای پایگاه داده" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "بارگذاری پرونده" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5962,41 +7580,61 @@ msgstr "" "شما می‌توانید تصویر پیش‌زمینهٔ شخصی خود را بارگذاری کنید. بیشینهٔ اندازهٔ پرونده " "۲ مگابایت است." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "روشن" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "خاموش" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "بازنشاندن" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "پیش‌فرض‌های طراحی برگردانده شدند." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "خارج‌کردن این پیام از برگزیده‌ها" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "برگزیده‌کردن این پیام" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "برگزیده‌کردن" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 +#, fuzzy msgid "Atom" -msgstr "" +msgstr "مؤلف" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "صادر کردن داده" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6027,8 +7665,13 @@ msgstr "برو" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "۱-۶۴ کاراکتر کوچک یا اعداد، بدون نقطه گذاری یا فاصله" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "نشانی اینترنتی صفحهٔ‌خانگی یا وبلاگ گروه یا موضوع" #: lib/groupeditform.php:168 @@ -6036,61 +7679,113 @@ msgid "Describe the group or topic" msgstr "گروه یا موضوع را توصیف کنید" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "گروه یا موضوع را در %d نویسه توصیف کنید" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "گروه یا موضوع را در %d نویسه توصیف کنید" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"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 "نام‌های مستعار اضافی برای گروه، با کاما- یا فاصله- جدا شود، بیشینه %d" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"نام‌های مستعار اضافی برای گروه، با کاما- یا فاصله- جدا شود، بیشینه %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "گروه" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "مسدود شده" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s کاربر مسدود شده" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "خصوصیلت گروه %s ویرایش" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "نشان" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "افزودن یا ویرایش نشان" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format -msgid "Add or edit %s design" -msgstr "طرح %s را اضافه یا ویرایش کنید" +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "گروه های با اعضاء بیشتر" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "گروه های با پست های بیشتر" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "برچسب‌ها در پیام‌های گروه %s" @@ -6104,38 +7799,55 @@ msgstr "این صفحه در نوع رسانه‌ای که پذیرفته‌ای msgid "Unsupported image file format." msgstr "فرمت(فایل) عکس پشتیبانی نشده." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "این پرونده خیلی بزرگ است. بیشینهٔ اندازهٔ پرونده %s است." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 +#, fuzzy msgid "Partial upload." -msgstr "" +msgstr "هیچ پرونده‌ای بارگذاری نشد." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "هنگام بارگذاری پرونده خطای سیستمی رخ داد." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "تصویر یا فایل خرابی نیست" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "فایلمان گم شده" -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "نوع فایل پشتیبانی نشده" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "مگابایت" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "مگابایت" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "کیلوبایت" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "کیلوبایت" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" #: lib/jabber.php:387 #, php-format @@ -6147,10 +7859,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "منبع صندوق ورودی نامعلوم است %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "مشارکت کردن" - #: lib/leaveform.php:114 msgid "Leave" msgstr "ترک کردن" @@ -6163,27 +7871,29 @@ msgstr "وارد شدن با یک نام کاربری و گذرواژه" msgid "Sign up for a new account" msgstr "عضویت برای حساب کاربری جدید" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "تایید نشانی پست الکترونیکی" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "سلام %s. \n" "\n" @@ -6199,22 +7909,29 @@ msgstr "" "از این‌که وقت خود را در اختیار ما گذاشتید، سپاس‌گزاریم، \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s اکنون پیام‌های شما را در %2$s دنبال می‌کند." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6222,10 +7939,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s اکنون پیام‌های شما را در %2$s دنبال می‌کند.\n" "\n" @@ -6238,21 +7955,25 @@ msgstr "" "----\n" "نشانی پست الکترونیک یا گزینه‌های آگاه‌سازی را در %8$s تغییر دهید\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "شرح‌حال: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "%s ادرس ایمیل جدید برای" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6261,7 +7982,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "شما یک نشانی ارسال تازه در %1$s دارید.\n" "\n" @@ -6272,31 +7993,36 @@ msgstr "" "با تشکر از شما،\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "وضعیت %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "تأیید پیامک" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: شماره تلفن خود را با این کد تایید کنید:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "شما توسط %s یادآوری شدید." -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6323,14 +8049,18 @@ msgstr "" "با احترام،\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "پیام خصوصی تازه از %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6363,14 +8093,19 @@ msgstr "" "با احترام،\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "پیام شما را به برگزیده‌های خود اضافه کرد %s (@%s)" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6412,7 +8147,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6423,13 +8158,20 @@ msgstr "" "\n" "\t\t%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) به توجه شما یک پیام فرستاد" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6488,7 +8230,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "از" @@ -6508,107 +8250,155 @@ msgstr "با عرض پوزش، این پست الکترونیک شما نیست. msgid "Sorry, no incoming email allowed." msgstr "با عرض پوزش، اجازه‌ی ورودی پست الکترونیک وجود ندارد" -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "نوع پیام پشتیبانی نشده است: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "یک خطای پایگاه داده هنگام ذخیره کردن فایل شما رخ داد. لطفا بعدا سعی کنید." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "نتها اندکی از فایل بارگذاری‌شده فرستاده شد." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "گم شدن یک پوشه ی موقتی." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "شکست خوردن در نوشتن فایل روی دیسک." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "بارگذاری پرونده توسط افزونه متوقف شد." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "پرونده از سهمیهٔ کاربر می‌گذرد." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "فایل نتوانست به دایرکتوری مقصد منتقل شود." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "نمی‌توان فرمت پرونده را تعیین کرد." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "تلاش برای امتحان نوع دیگر %s" +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s یک گونهٔ پروندهٔ پیشتیبانی شده روی این کارگزار نیست." +msgid "\"%s\" is not a supported file type on this server." +msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "فرستادن یک پیام مستقیم" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "یک اپراتور را انتخاب کنید" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "تایید نشده!" + +#: lib/messageform.php:153 msgid "To" msgstr "به" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "کاراکترهای موجود" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "فرستادن" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "لقب باید شامل حروف کوچک و اعداد و بدون فاصله باشد." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "فرستادن یک پیام" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "چه خبر، %s؟" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "پیوست کردن" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "یک فایل پیوست کنید" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "مکان من به اشتراک گذاشته شود" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "موقعیت من به اشتراک گذاشته نشود" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6617,51 +8407,56 @@ msgstr "" "دوباره تلاش کنید." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 +#, fuzzy msgid "N" -msgstr "" +msgstr "خیر" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "در" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "به این پیام پاسخ دهید" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "پاسخ" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "پیام تکرار شد" @@ -6677,55 +8472,52 @@ msgstr "یادآوری‌کردن" msgid "Send a nudge to this user" msgstr "یک یادآوری به این کاربر فرستاده شود" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "هنگام قرار دادن نمایهٔ تازه خطا رخ داد" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "هنگام افزودن چهره خطایی رخ داد" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "هنگام به‌روز کردن نمایهٔ از راه دور خطا رخ داد" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "هنگام افزودن نمایهٔ ازراه‌دور خطایی رخ داد" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "رونوشت‌برداری از پیام" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "نمی‌توان اشتراک تازه‌ای افزود." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "شخصی" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "پاسخ ها" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "برگزیده‌ها" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "صندوق دریافتی" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "پیام های وارد شونده ی شما" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "صندوق خروجی" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "پیام‌های فرستاده شدهٔ شما" @@ -6734,7 +8526,8 @@ msgstr "پیام‌های فرستاده شدهٔ شما" msgid "Tags in %s's notices" msgstr "برچسب‌ها در پیام‌های %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "ناشناخته" @@ -6796,8 +8589,9 @@ msgid "Popular" msgstr "محبوب" #: lib/redirectingaction.php:95 +#, fuzzy msgid "No return-to arguments." -msgstr "" +msgstr "هیچ پیوستی وجود ندارد." #: lib/repeatform.php:107 msgid "Repeat this notice?" @@ -6812,35 +8606,45 @@ msgid "Repeat this notice" msgstr "تکرار این پیام" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "دسترسی کاربر را به گروه مسدود کن" +msgstr "دسترسی کاربر به گروه مسدود شود" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "هیچ کاربر تنهایی برای حالت تک کاربره مشخص نشده است." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "رابط مورد نظر پیدا نشد." #: lib/sandboxform.php:67 +#, fuzzy msgid "Sandbox" -msgstr "" +msgstr "صندوق دریافتی" #: lib/sandboxform.php:78 +#, fuzzy msgid "Sandbox this user" -msgstr "" +msgstr "آزاد سازی کاربر" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "جست‌وجوی وب‌گاه" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "کلمه(های) کلیدی" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "جست‌وجو" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "راهنمای جستجو" @@ -6877,9 +8681,9 @@ msgid "Silence this user" msgstr "ساکت کردن این کاربر" #: lib/subgroupnav.php:83 -#, php-format +#, fuzzy, php-format msgid "People %s subscribes to" -msgstr "" +msgstr "افراد مشترک %s" #: lib/subgroupnav.php:91 #, php-format @@ -6914,6 +8718,12 @@ msgstr "" msgid "None" msgstr "هیچ" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "نام‌پرونده نادرست است." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6923,37 +8733,43 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "به روز رسانی چهره موفقیت آمیر نبود." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 #, fuzzy msgid "Error opening theme archive." msgstr "خطا هنگام به‌هنگام‌سازی نمایهٔ از راه دور." @@ -6962,13 +8778,21 @@ msgstr "خطا هنگام به‌هنگام‌سازی نمایهٔ از راه msgid "Top posters" msgstr "اعلان های بالا" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "آزاد سازی" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 +#, fuzzy msgid "Unsandbox this user" -msgstr "" +msgstr "آزاد سازی کاربر" #: lib/unsilenceform.php:67 msgid "Unsilence" @@ -6986,124 +8810,171 @@ msgstr "لغو مشترک‌شدن از این کاربر" msgid "Unsubscribe" msgstr "لغو اشتراک" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "کاربر %s (%d) هیچ تاریخچهٔ نمایه‌ای ندارد." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "کاربر هیچ نمایه‌ای ندارد." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "ویرایش اواتور" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "اعمال کاربر" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "پاک‌کردن کاربر در حالت اجرا است..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "ویرایش تنظیمات نمایه" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "ویرایش" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "پیام مستقیم به این کاربر بفرستید" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "پیام" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "اداره کردن" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "وظیفهٔ کاربر" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "رئیس" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "مدیر" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "چند ثانیه پیش" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "حدود یک دقیقه پیش" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "حدود %d دقیقه پیش" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "حدود یک ساعت پیش" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "حدود %d ساعت پیش" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "حدود یک روز پیش" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "حدود %d روز پیش" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "حدود یک ماه پیش" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "حدود %d ماه پیش" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "حدود یک سال پیش" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s یک رنگ صحیح نیست!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s یک رنگ صحیح نیست! از ۳ یا ۶ نویسه مبنای شانزده استفاده کنید" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "پیام خیلی طولانی است - حداکثر تعداد مجاز %1$d نویسه است که شما %2$d نویسه را " "فرستادید." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "اندازه نادرست است." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "هیچ شناسهٔ کاربری مشخص نشده است." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 5b1465bc5f..fb4e344692 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -1,163 +1,203 @@ -# Translation of StatusNet to Finnish +# Translation of StatusNet - Core to Finnish (Suomi) +# Expored from translatewiki.net # -# Author@translatewiki.net: Crt -# Author@translatewiki.net: Jaakko -# Author@translatewiki.net: McDutchie +# Author: Crt +# Author: Jaakko +# Author: Josutus +# Author: McDutchie +# Author: Nike +# Author: Str4nd # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:23+0000\n" -"Language-Team: Finnish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:40+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 #, fuzzy msgid "Access" msgstr "Hyväksy" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 #, fuzzy msgid "Site access settings" msgstr "Profiilikuva-asetukset" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 #, fuzzy msgid "Registration" msgstr "Rekisteröidy" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 #, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Yksityisyys" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 #, fuzzy msgid "Invite only" msgstr "Kutsu" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Suljettu" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "Profiilikuva-asetukset" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 -#, fuzzy +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Tallenna" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." msgstr "Sivua ei ole." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Käyttäjää ei ole." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s ja kaverit, sivu %d" +msgstr "%s ja kaverit" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s ja kaverit" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Käyttäjän %s kavereiden syöte (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -165,450 +205,645 @@ msgstr "" "Tämä on käyttäjän %s ja kavereiden aikajana, mutta kukaan ei ole lähettyänyt " "vielä mitään." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"Kokeile useamman käyttäjän tilaamista, [liity ryhmään] (%%action.groups%%) " -"tai lähetä päivitys itse." +"Kokeile useamman käyttäjän tilaamista [liittymällä ryhmään](%%action.groups%" +"%) tai kirjoita päivitys." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." +"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta](%%%%action." "newnotice%%%%?status_textarea=%s)!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" -msgstr "Sinä ja kaverit" +msgstr "Sinä ja kaverisi" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." -msgstr "API-metodia ei löytynyt!" +msgstr "API-metodia ei löytynyt." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." -msgstr "Tämä metodi edellyttää POST sanoman." +msgstr "Tämä metodi edellyttää POST-pyynnön." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." -msgstr "Ei voitu päivittää käyttäjää." +msgstr "Käyttäjän päivitys epäonnistui." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Käyttäjällä ei ole profiilia." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "Ei voitu tallentaa profiilia." +msgstr "Profiilin tallennus epäonnistui." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "Twitter-asetuksia ei voitu tallentaa!" +msgstr "Ulkoasun tallennus epäonnistui." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Ei voitu päivittää käyttäjää." -#: actions/apiblockcreate.php:105 -#, fuzzy -msgid "You cannot block yourself!" -msgstr "Et voi lopettaa itsesi tilausta!" +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s aikajana" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Käyttäjän %s tilaukset" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Suosikit" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Ryhmän %s jäsenet" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 +msgid "You cannot block yourself!" +msgstr "Sinä et voi poistaa käyttäjiä." + +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Käyttäjän esto epäonnistui." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Käyttäjän eston poisto epäonnistui." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Suorat viestit käyttäjälle %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Kaikki suorat viestit käytäjältä %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Suorat viestit käyttäjälle %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Kaikki suorat viestit käyttäjälle %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Viestissä ei ole tekstiä!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Liian pitkä päivitys. Maksimikoko päivitykselle on %d merkkiä." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Liian pitkä päivitys. Maksimikoko päivitykselle on %d merkkiä." +msgstr[1] "Liian pitkä päivitys. Maksimikoko päivitykselle on %d merkkiä." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Vastaanottajaa ei löytynyt." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 +#, fuzzy msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Et voi lähettää suoraa viestiä käyttäjälle, jonka kanssa et ole vielä kaveri." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Älä lähetä viestiä itsellesi, vaan kuiskaa se vain hiljaa itsellesi." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 #, fuzzy msgid "This status is already a favorite." msgstr "Tämä päivitys on jo suosikki!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Ei voitu lisätä suosikiksi." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 #, fuzzy msgid "That status is not a favorite." msgstr "Tämä päivitys ei ole suosikki!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Ei voitu poistaa suosikkia." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Ei voitu tilata käyttäjää: Käyttäjää ei löytynyt." +msgstr "Ei voitu lopettaa tilausta: Käyttäjää ei löytynyt." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Ei voitu tilata käyttäjää: %s on jo listallasi" +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Ei voitu lopettaa tilausta: Käyttäjää ei löytynyt." -#: actions/apifriendshipsdestroy.php:120 -#, fuzzy +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." -msgstr "Et voi lopettaa itsesi tilausta!" +msgstr "Sinä et voi poistaa käyttäjiä." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "Kaksi käyttäjätunnusta tai nimeä täytyy antaa." -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Julkista päivitysvirtaa ei saatu." +msgstr "Ei voitu päivittää käyttäjää." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Ei löytynyt yhtään päivitystä." +msgstr "Ei voitu päivittää käyttäjää." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Käyttäjätunnuksessa voi olla ainoastaan pieniä kirjaimia ja numeroita ilman " -"välilyöntiä." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Tuo ei ole kelvollinen tunnus." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Kotisivun verkko-osoite ei ole toimiva." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "kuvaus on liian pitkä (max 140 merkkiä)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "kuvaus on liian pitkä (max %d merkkiä)." +msgstr[1] "kuvaus on liian pitkä (max %d merkkiä)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Liikaa aliaksia. Maksimimäärä on %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Liikaa aliaksia. Maksimimäärä on %d." +msgstr[1] "Liikaa aliaksia. Maksimimäärä on %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "Virheellinen alias: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" on jo käytössä. Yritä toista aliasta." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias ei voi olla sama kuin ryhmätunnus." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Ryhmää ei löytynyt!" +msgstr "Ei löytynyt." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Sinä kuulut jo tähän ryhmään." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Sinut on estetty osallistumasta tähän ryhmään ylläpitäjän toimesta." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s" +msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Käyttäjän %s ryhmät" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "Ryhmät, joiden jäsen %s on" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Käyttäjän %s ryhmät" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, fuzzy, php-format msgid "groups on %s" msgstr "Ryhmän toiminnot" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Lataa" +msgstr "Komento epäonnistui" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Päivityksen sisältö ei kelpaa" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "Koko ei kelpaa." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Sinulla ei ole valtuutusta tähän." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Istuntosi avaimen kanssa oli ongelmia. Olisitko ystävällinen ja kokeilisit " "uudelleen." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 #, fuzzy msgid "Invalid nickname / password!" msgstr "Käyttäjätunnus tai salasana ei kelpaa." -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Virhe tapahtui käyttäjän asettamisessa." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Odottamaton lomakkeen lähetys." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -616,248 +851,630 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Käyttäjätili" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Tunnus" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Salasana" -#: actions/apioauthauthorize.php:328 +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 #, fuzzy -msgid "Deny" -msgstr "Ulkoasu" +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Peruuta" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 #, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Kaikki" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Varmistuskoodia ei ole annettu." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Sinulla ei ole valtuutusta tähän." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Sinulla ei ole valtuutusta tähän." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Tämä metodi edellyttää joko POST tai DELETE sanoman." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Et voi poistaa toisen käyttäjän päivitystä." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Päivitystä ei ole." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 #, fuzzy msgid "Cannot repeat your own notice." msgstr "Ilmoituksia ei voi pistää päälle." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Poista tämä päivitys" +msgstr "Tätä päivitystä ei voi poistaa." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API-metodia ei löytynyt." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formaattia ei ole tuettu." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Päivitys poistettu." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Tätä päivitystä ei voi poistaa." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Poista päivitys" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Päivitys on liian pitkä. Maksimipituus on %d merkkiä." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Päivitys on liian pitkä. Maksimipituus on %d merkkiä." +msgstr[1] "Päivitys on liian pitkä. Maksimipituus on %d merkkiä." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Ei löytynyt." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API-metodia ei löytynyt." -#: actions/apistatusesupdate.php:306 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." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite." +msgstr[1] "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formaattia ei ole tuettu." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%s / Käyttäjän %s suosikit" +msgstr "Käyttäjän %1$s päivitys %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Käyttäjän %1$s suosikit palvelussa %2$s!" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Ei voitu päivittää ryhmää." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Vastaukset päivitykseen %2$s" +msgstr "Käyttäjän %1$s päivitys %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" "%1$s -päivitykset, jotka on vastauksia käyttäjän %2$s / %3$s päivityksiin." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s julkinen aikajana" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 -#, php-format +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 +#, fuzzy, php-format msgid "%s updates from everyone!" msgstr "%s päivitykset kaikilta!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Komentoa ei ole vielä toteutettu." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "Vastaukset käyttäjälle %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "Vastaukset käyttäjälle %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Päivitykset joilla on tagi %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, fuzzy, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" +msgstr "Käyttäjän %1$s suosikit palvelussa %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Vain käyttäjä voi lukea omaa postilaatikkoaan." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Hae päivityksien sisällöstä" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Ei profiilia tuolla id:llä." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-metodi on työn alla!" +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API-metodia ei löytynyt." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Tiedostoa ei ole." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Ei voitu lisätä uutta tilausta." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Hae päivityksien sisällöstä" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Tuntematon toiminto" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Lisää suosikkeihin" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Tiedostoa ei ole." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Ryhmän %s jäsenet" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Ryhmät, joiden jäsen %s on" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Tuntematon toiminto" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Kaikki jäsenet" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Tiedostoa ei ole." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Ei voitu poistaa suosikkia." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Tuota ryhmää ei ole." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Kaikki jäsenet" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API-metodia ei löytynyt." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Tiedostoa ei ole." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Et ole tilannut tämän käyttäjän päivityksiä." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Tilausta ei onnistuttu tallentamaan." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Ihmiset jotka ovat käyttäjän %s tilaajia" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tunnistamaton tiedoston tyyppi" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Liitettä ei ole." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Tunnusta ei ole." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Kokoa ei ole." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Koko ei kelpaa." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Kuva" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Voit ladata oman profiilikuvasi. Maksimikoko on %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Käyttäjälle ei löydy profiilia" +msgstr "Käyttäjällä ei ole profiilia." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Profiilikuva-asetukset" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Alkuperäinen" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Esikatselu" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Poista" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Lataa" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Rajaa" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "Profiilia ei ole määritelty." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Valitse neliön muotoinen alue kuvasta profiilikuvaksi" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Tiedoston data hävisi." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Kuva päivitetty." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Profiilikuvan päivittäminen epäonnistui." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Kuva poistettu." -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Sinä olet jo estänyt tämän käyttäjän." +msgstr "!!FUZZZY!!Olet jos tilannut seuraavien käyttäjien päivitykset:" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Estä käyttäjä" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -866,183 +1483,224 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Ei" +msgstr "Huomaa" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Älä estä tätä käyttäjää" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "Kyllä" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Estä tämä käyttäjä" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Käyttäjän estotiedon tallennus epäonnistui." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Tuota ryhmää ei ole." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Käyttäjän profiili" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s ja kaverit, sivu %d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Lista käyttäjistä, jotka ovat estetty liittymästä tähän ryhmään." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Poista käyttäjän esto ryhmästä" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Poista esto" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Poista esto tältä käyttäjältä" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Kuva" +msgstr "Vastaukset käyttäjälle %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Varmistuskoodia ei ole annettu." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Vahvistuskoodia ei löytynyt." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Tämä vahvistuskoodi ei ole sinun!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Tuntematon osoitetyyppi %s " -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Tämä osoite on jo vahvistettu." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Ei voitu päivittää käyttäjää." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Ei voitu poistaa sähköpostivahvistusta." -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Vahvista osoite" +msgstr "Tämän hetken vahvistettu sähköpostiosoite." -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Osoite \"%s\" on vahvistettu sinun käyttäjätunnuksellesi." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Keskustelu" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Päivitykset" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "" -"Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." +msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Päivitykselle ei ole profiilia" +msgstr "Vahvistuskoodia ei löytynyt." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 #, fuzzy msgid "You are not the owner of this application." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Istuntoavaimesi kanssa oli ongelma." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 #, fuzzy msgid "Delete application" msgstr "Päivitystä ei ole." -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1050,33 +1708,93 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 #, fuzzy msgid "Do not delete this application" msgstr "Älä poista tätä päivitystä" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "Poista tämä päivitys" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Tunnusta ei ole." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Sinä et kuulu tähän ryhmään." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Ei voitu päivittää ryhmää." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "Käyttäjän %1$s päivitys %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Poista käyttäjä" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Älä poista tätä päivitystä" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Poista käyttäjä" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Et ole kirjautunut sisään." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Tätä päivitystä ei voi poistaa." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1084,21 +1802,24 @@ msgstr "" "Olet poistamassa tämän päivityksen pysyvästi. Kun tämä on tehty, poistoa ei " "voi enää perua." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Poista päivitys" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Oletko varma että haluat poistaa tämän päivityksen?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1107,9 +1828,8 @@ msgid "You cannot delete users." msgstr "Sinä et voi poistaa käyttäjiä." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Et voi poistaa toisen käyttäjän päivitystä." +msgstr "Sinä et voi poistaa käyttäjiä." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" @@ -1123,75 +1843,83 @@ msgstr "" #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "Poista tämä päivitys" +msgstr "Poista käyttäjä" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Ulkoasu" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Ulkoasuasetukset tälle StatusNet palvelulle." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Koko ei kelpaa." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Koko ei kelpaa." + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Pikaviestin ei ole käytettävissä." -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Vaihda salasanasi" +msgstr "Vaihda väriä" -#: actions/designadminpanel.php:431 -#, fuzzy +#: actions/designadminpanel.php:453 msgid "Site logo" -msgstr "Kutsu" +msgstr "Palvelun ilmoitus" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Palvelun ilmoitus" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Vaihda" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 #, fuzzy msgid "Site theme" msgstr "Palvelun ilmoitus" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 #, fuzzy msgid "Theme for the site." msgstr "Kirjaudu ulos palvelusta" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Palvelun ilmoitus" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Vaihda tautakuva" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Tausta" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1199,78 +1927,92 @@ msgid "" msgstr "Voit ladata ryhmälle logokuvan. Maksimikoko on %s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "On" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Off" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 +#, fuzzy msgid "Turn background image on or off." -msgstr "" +msgstr "Vaihda tautakuva" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +#, fuzzy msgid "Tile background image" -msgstr "" +msgstr "Vaihda tautakuva" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Vaihda väriä" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Sisältö" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 #, fuzzy msgid "Sidebar" msgstr "Haku" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Teksti" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Linkit" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Käytä oletusasetuksia" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 +#, fuzzy msgid "Restore default designs" -msgstr "" +msgstr "Käytä oletusasetuksia" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 +#, fuzzy msgid "Reset back to default" -msgstr "" +msgstr "Käytä oletusasetuksia" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Tallenna" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 +#, fuzzy msgid "Save design" -msgstr "" +msgstr "Ryhmän ulkoasu" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" @@ -1281,134 +2023,152 @@ msgid "Add to favorites" msgstr "Lisää suosikkeihin" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Dokumenttia ei ole." +msgstr "Liitettä ei ole." -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Muita asetuksia" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 #, fuzzy msgid "You must be logged in to edit an application." msgstr "" "Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Päivitystä ei ole." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "Käytä tätä lomaketta muokataksesi ryhmää." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 #, fuzzy msgid "Name is required." msgstr "Sama kuin ylläoleva salasana. Pakollinen." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 #, fuzzy msgid "Description is required." msgstr "Kuvaus" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "Kotisivun verkko-osoite ei ole toimiva." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." +msgid "Organization is too long (maximum 255 characters)." msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Ei voitu päivittää ryhmää." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Muokkaa ryhmää %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Sinun pitää olla kirjautunut sisään jotta voit luoda ryhmän." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "Sinun pitää olla ylläpitäjä, jotta voit muokata ryhmää" +msgstr "" +"Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Käytä tätä lomaketta muokataksesi ryhmää." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "kuvaus on liian pitkä (max %d merkkiä)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Virheellinen alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Ei voitu päivittää ryhmää." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Ei voitu lisätä aliasta." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Asetukset tallennettu." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Sähköpostiasetukset" +msgstr "Profiiliasetukset" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1419,13 +2179,13 @@ msgstr "Määritä miten saat sähköpostin palvelusta %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 #, fuzzy msgid "Email address" msgstr "Sähköpostiosoitteet" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Tämän hetken vahvistettu sähköpostiosoite." @@ -1434,14 +2194,14 @@ msgstr "Tämän hetken vahvistettu sähköpostiosoite." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Poista" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1450,26 +2210,19 @@ msgstr "" "sähköpostilaatikostasi (ja roskapostikansiosta!) viesti, jossa on " "lisäohjeita. " -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Peruuta" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Sähköpostiosoite, esimerkiksi \"käyttäjätunnus@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1478,115 +2231,121 @@ msgstr "Lisää" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Saapuva sähköposti" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Haluan lähettää päivityksiä sähköpostilla." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Lähetä sähköpostia tähän osoitteeseen tehdäksesi päivityksiä." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Tee uusi sähköpostiosoite johon lähettää päivityksiä; tämä poistaa vanhan " "osoitteen" +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Uusi" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Asetukset" +msgstr "Sähköpostiosoitteet" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Lähetä sähköpostilla tieto uusista tilaajista." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Lähetä sähköpostia, jos joku lisää päivitykseni suosikiksi." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Lähetä sähköpostia, jos joku lähettää minulle yksityisviestin." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Lähetä sähköpostia, jos joku lähettää minulle \"@-vastauksen\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Salli kavereiden tönäistä minua ja lähetä sähköpostilla ilmoitus." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Haluan lähettää päivityksiä sähköpostilla." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Julkaise MicroID sähköpostiosoitteelleni." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "Ulkoasuasetukset tallennettu." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Sähköpostiosoitetta ei ole." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Ei voida normalisoida sähköpostiosoitetta" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Tuo ei ole kelvollinen sähköpostiosoite." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Tämä on jo sähköpostiosoitteesi." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Tämä sähköpostiosoite kuuluu jo toisella käyttäjällä." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Ei voitu asettaa vahvistuskoodia." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1598,53 +2357,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Avoimia vahvistuksia ei ole peruutettavana." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Tämä on väärä pikaviestiosoite." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Ei voitu poistaa sähköpostivahvistusta." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Vahvistus peruttu." +msgstr "Avoimia vahvistuksia ei ole peruutettavana." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Tämä ei ole sähköpostiosoitteesi." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Osoite on poistettu." +msgstr "Saapuvan sähköpostin osoite poistettu." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Saapuvan sähköpostin osoitetta ei ole." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Ei voitu päivittää käyttäjätietoja." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Saapuvan sähköpostin osoite poistettu." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Uusi saapuvan sähköpostin osoite lisätty." @@ -1652,11 +2415,11 @@ msgstr "Uusi saapuvan sähköpostin osoite lisätty." msgid "This notice is already a favorite!" msgstr "Tämä päivitys on jo suosikki!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Poista suosikeista" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Suosituimmat päivitykset" @@ -1688,7 +2451,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Käyttäjän %s suosikkipäivitykset" @@ -1714,24 +2477,20 @@ msgid "A selection of some great users on %s" msgstr "Valikoima joitakin loistavia palvelun %s käyttäjiä" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Ei päivitystä" +msgstr "Päivitystä ei ole." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Ei päivitystä" +msgstr "Päivitystä ei ole." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Ei liitteitä" +msgstr "Liitettä ei ole." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Ei ladattuja liitteitä" +msgstr "Liitettä ei ole." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1755,16 +2514,15 @@ msgid "You are not authorized." msgstr "Sinulla ei ole valtuutusta tähän." #: actions/finishremotesubscribe.php:113 -#, fuzzy msgid "Could not convert request token to access token." -msgstr "Ei voitu muuttaa request tokeneita access tokeneiksi." +msgstr "Ei saatu request tokenia." #: actions/finishremotesubscribe.php:118 #, fuzzy msgid "Remote service uses unknown version of OMB protocol." msgstr "Tuntematon OMB-protokollan versio." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Virhe tapahtui etäprofiilin päivittämisessä" @@ -1787,28 +2545,31 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Et voi lähettää viestiä tälle käyttäjälle." +msgstr "Päivityksesi tähän palveluun on estetty." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Käyttäjä on asettanut eston sinulle." +msgstr "Käyttäjällä ei ole profiilia." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Profiilia ei ole määritelty." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 +#, fuzzy msgid "No profile with that ID." msgstr "Ei profiilia tuolle ID:lle." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Ryhmää ei ole määritelty." @@ -1818,15 +2579,14 @@ msgid "Only an admin can block group members." msgstr "Vain ylläpitäjä voi estää ryhmän jäseniä." #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "Käyttäjä on asettanut eston sinulle." +msgstr "Käyttäjää ei ole estetty ryhmästä." #: actions/groupblock.php:100 msgid "User is not a member of group." msgstr "Käyttäjä ei kuulu tähän ryhmään." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Estä käyttäjä ryhmästä" @@ -1849,13 +2609,14 @@ msgid "Block this user from this group" msgstr "Estä tätä käyttäjää osallistumassa tähän ryhmään" #: actions/groupblock.php:206 +#, fuzzy msgid "Database error blocking user from group." -msgstr "" +msgstr "Poista käyttäjän esto ryhmästä" #: actions/groupbyid.php:74 actions/userbyid.php:70 #, fuzzy msgid "No ID." -msgstr "ID-tunnusta ei ole" +msgstr "Ei Jabber ID -osoitetta" #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." @@ -1872,8 +2633,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Ei voitu päivittää sinun sivusi ulkoasua." @@ -1886,11 +2649,19 @@ msgid "Group logo" msgstr "Ryhmän logo" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Voit ladata ryhmälle logokuvan. Maksimikoko on %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Lataa" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Rajaa" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Valitse neliön muotoinen alue kuvasta logokuvaksi" @@ -1903,48 +2674,55 @@ msgstr "Logo päivitetty." msgid "Failed updating logo." msgstr "Logon päivittäminen epäonnistui." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Ryhmän %s jäsenet" -#: actions/groupmembers.php:103 -#, fuzzy, php-format +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format msgid "%1$s group members, page %2$d" -msgstr "Ryhmän %s jäsenet, sivu %d" +msgstr "Ryhmän %s jäsenet" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Lista ryhmän käyttäjistä." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Ylläpito" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Estä" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Tee tästä käyttäjästä ylläpitäjä" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Tee ylläpitäjäksi" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Tee tästä käyttäjästä ylläpitäjä" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s aikajana" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -2009,23 +2787,25 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Vain ylläpitäjä voi poistaa eston ryhmän jäseniltä." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Käyttäjää ei ole estetty ryhmästä." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Tapahtui virhe, kun estoa poistettiin." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Pikaviestiasetukset" +msgstr "Profiilikuva-asetukset" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2047,9 +2827,8 @@ msgstr "Pikaviestin ei ole käytettävissä." #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "Pikaviestiosoite" +msgstr "Sähköpostiosoitteet" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2069,7 +2848,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2080,66 +2862,65 @@ msgstr "" "GTalkissa." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Asetukset" +msgstr "Asetukset tallennettu." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Lähetä minulle päivityksiä Jabberilla/GTalkilla." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Lähetä päivitys kun Jabber/GTalk -tilatietoni vaihtuu." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Lähetä Jabberilla/GTalkilla sellaistenkin ihmisten vastaukset, joita en ole " "tilannut. " #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Julkaise MicroID Jabber/GTalk-osoitteelleni." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Asetukset tallennettu." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Ei Jabber ID -osoitetta" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Ei voida normalisoida Jabber ID -tunnusta" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Tuo ei ole kelvollinen Jabber ID." #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Tämä on jo Jabber ID -tunnuksesi." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID kuuluu jo toiselle käyttäjälle." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2149,33 +2930,31 @@ msgstr "" "antaa osoitteelle %s oikeus lähettää viestejä sinulle." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Tämä on väärä pikaviestiosoite." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Ei voitu poistaa sähköpostivahvistusta." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Vahvistus peruttu." +msgstr "Varmistuskoodia ei ole annettu." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Tämä ei ole Jabber ID-tunnuksesi." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Osoite on poistettu." +msgstr "Saapuvan sähköpostin osoite poistettu." #: actions/inbox.php:59 #, fuzzy, php-format @@ -2191,53 +2970,84 @@ msgstr "Saapuneet viestit käyttäjälle %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "Tämä on postilaatikkosi, jossa on sinulle saapuneet yksityisviestit." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Kutsut ovat pois käytöstä." -#: actions/invite.php:41 -#, fuzzy, php-format +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 +#, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" -"Sinun täytyy olla kirjautuneena sisään kutsuaksesi uusia käyttäjiä palveluun " -"%s" +"Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Sähköpostiosoite %s ei kelpaa" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Kutsu(t) lähetettiin" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Kutsu uusia käyttäjiä" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Olet jos tilannut seuraavien käyttäjien päivitykset:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Olet jo tilannut seuraavien käyttäjien päivitykset:" +msgstr[1] "Olet jo tilannut seuraavien käyttäjien päivitykset:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Nämä ihmiset ovat jo käyttäjiä ja sinä olet automaattisesti tilannut heidän " +"päivityksensä:" +msgstr[1] "" "Nämä ihmiset ovat jo käyttäjiä ja sinä olet automaattisesti tilannut heidän " "päivityksensä:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Kutsu(t) lähetettiin seuraaville henkilöille:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Kutsu(t) lähetettiin seuraaville henkilöille:" +msgstr[1] "Kutsu(t) lähetettiin seuraaville henkilöille:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2245,44 +3055,55 @@ msgstr "" "Lähetämme sinulle ilmoituksen, kun joku kutsumistasi henkilöistä hyväksyy " "kutsun ja rekisteröityy palveluun. Kiitoksia yhteisön kasvattamisesta!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Käytä tätä lomaketta, jos haluat kutsua kavereita ja työkavereita käyttämään " "tätä palvelua." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Sähköpostiosoitteet" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Kutsuttavien kavereiden osoitteet (yksi per rivi)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Henkilökohtainen viesti" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Voit myös lisätä oman viestisi kutsuun" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Lähetä" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s on kutsunut sinut liittymään palveluun %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2342,14 +3163,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Sinun pitää olla kirjautunut sisään, jos haluat liittyä ryhmään." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Tunnusta ei ole." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s liittyi ryhmään %s" @@ -2358,16 +3172,121 @@ msgstr "%s liittyi ryhmään %s" msgid "You must be logged in to leave a group." msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Sinä et kuulu tähän ryhmään." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s erosi ryhmästä %s" +msgstr "Käyttäjän %1$s päivitys %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Yksityisyys" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2390,11 +3309,11 @@ msgstr "Kirjaudu sisään" msgid "Login to site" msgstr "Kirjaudu sisään" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Muista minut" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Kirjaudu sisään automaattisesti tulevaisuudessa; ei tietokoneille joilla " @@ -2422,9 +3341,8 @@ msgstr "Kirjaudu sisään käyttäjätunnuksella ja salasanalla" msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" -"Kirjaud sisään käyttäjätunnuksella ja salasanalla. Ei vielä " -"käyttäjätunnusta? [Rekisteröi](%%action.register%%) käyttäjätunnus tai " -"kokeile [OpenID](%%action.openidlogin%%)-tunnuksella sisään kirjautumista. " +"Eikö sinulla ole vielä käyttäjätunnusta? [Rekisteröi](%%action.register%%) " +"käyttäjätunnus." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." @@ -2441,79 +3359,88 @@ msgid "Can't get membership record for %1$s in group %2$s." msgstr "Ei saatu käyttäjän %s jäsenyystietoja ryhmästä %s" #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Ei voitu tehdä käyttäjästä %s ylläpitäjää ryhmään %s" +msgstr "Tee tästä käyttäjästä ylläpitäjä" #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." -msgstr "Ei nykyistä tilatietoa" +msgstr "Ei tuloksia" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" +msgid "New application" msgstr "Päivitystä ei ole." -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "Sinun pitää olla kirjautunut sisään jotta voit luoda ryhmän." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "Käytä tätä lomaketta luodaksesi ryhmän." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Ei voitu lisätä aliasta." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Uusi ryhmä" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Käytä tätä lomaketta luodaksesi ryhmän." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Uusi viesti" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Et voi lähettää viestiä tälle käyttäjälle." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Ei sisältöä!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Vastaanottajaa ei ole määritelty." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Älä lähetä viestiä itsellesi, vaan kuiskaa se vain hiljaa itsellesi." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Viesti lähetetty" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Suora viesti käyttäjälle %s lähetetty" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax-virhe" @@ -2521,7 +3448,7 @@ msgstr "Ajax-virhe" msgid "New notice" msgstr "Uusi päivitys" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Päivitys lähetetty" @@ -2539,9 +3466,9 @@ msgid "Text search" msgstr "Tekstihaku" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " Hakusyöte haulle \"%s\"" +msgstr "Viesti käyttäjältä %1$s, %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2549,15 +3476,17 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" -"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." +"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta](%%%%action." "newnotice%%%%?status_textarea=%s)!" #: actions/noticesearch.php:124 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta](%%%%action." +"newnotice%%%%?status_textarea=%s)!" #: actions/noticesearchrss.php:96 #, fuzzy, php-format @@ -2565,14 +3494,15 @@ msgid "Updates with \"%s\"" msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Kaikki päivitykset hakuehdolla \"%s\"" +msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Käyttäjä ei ole sallinut tönäisyjä tai ei ole vahvistanut " "sähköpostiosoitettaan." @@ -2585,77 +3515,101 @@ msgstr "Tönäisy lähetetty" msgid "Nudge sent!" msgstr "Tönäisy lähetetty!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 #, fuzzy msgid "You must be logged in to list your applications." msgstr "" "Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 #, fuzzy msgid "OAuth applications" msgstr "Muita asetuksia" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Käytä tätä lomaketta muokataksesi ryhmää." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Päivitykselle ei ole profiilia" +msgstr "Käyttäjällä ei ole profiilia." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Käyttäjän %1$s päivitys %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "Yhdistä" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -2667,38 +3621,46 @@ msgstr "Etsi ihmisiä" msgid "Notice Search" msgstr "Etsi Päivityksistä" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Muita Asetuksia" +msgstr "Profiilikuva-asetukset" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Hallinnoi muita asetuksia." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Lyhennä URL-osoitteita" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Käytettävä automaattinen lyhennyspalvelu." -#: actions/othersettings.php:122 -#, fuzzy +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "Profiiliasetukset" +msgstr "Näytä tai piillota profiilin ulkoasu." -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Näytä tai piillota profiilin ulkoasu." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL-lyhennyspalvelun nimi on liian pitkä (max 50 merkkiä)." #: actions/otp.php:69 @@ -2712,9 +3674,8 @@ msgid "No login token specified." msgstr "Profiilia ei ole määritelty." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Ei profiili id:tä kyselyssä." +msgstr "Ei valtuutuspyyntöä!" #: actions/otp.php:95 #, fuzzy @@ -2765,7 +3726,7 @@ msgid "6 or more characters" msgstr "6 tai useampia merkkejä" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Vahvista" @@ -2777,11 +3738,11 @@ msgstr "Sama kuin ylläoleva salasana" msgid "Change" msgstr "Vaihda" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Salasanassa pitää olla 6 tai useampia merkkejä." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Salasanat eivät täsmää." @@ -2801,168 +3762,296 @@ msgstr "Uutta salasanaa ei voida tallentaa." msgid "Password saved." msgstr "Salasana tallennettu." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Polut" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Polut ja palvelin asetukset tälle StatusNet palvelulle." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Pikaviestin ei ole käytettävissä." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Pikaviestin ei ole käytettävissä." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Taustakuvan hakemisto" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Pikaviestin ei ole käytettävissä." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 #, fuzzy msgid "Site" msgstr "Kutsu" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 #, fuzzy msgid "Server" msgstr "Palauta" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 -msgid "Path" -msgstr "" - -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 #, fuzzy -msgid "Site path" +msgid "Path" +msgstr "Polut" + +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Palvelun ilmoitus" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Taustakuvan hakemisto" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Kirjaudu ulos palvelusta" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "Kuva" - -#: actions/pathsadminpanel.php:284 -#, fuzzy -msgid "Avatar server" -msgstr "Profiilikuva-asetukset" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "Kuva päivitetty." - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "Kuva poistettu." - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Taustakuvat" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Taustakuvapalvelin" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Taustakuvan hakemistopolku" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Taustakuvan hakemisto" - -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "SMS" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Palauta" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "Päivitykset" - -#: actions/pathsadminpanel.php:325 -#, fuzzy -msgid "Always" -msgstr "Aliakset" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 #, fuzzy msgid "SSL server" msgstr "Palauta" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Palvelun ilmoitus" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Taustakuvan hakemisto" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +#, fuzzy +msgid "Avatars" +msgstr "Kuva" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +#, fuzzy +msgid "Avatar server" +msgstr "Profiilikuva-asetukset" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Kirjaudu ulos palvelusta" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +#, fuzzy +msgid "Avatar path" +msgstr "Kuva päivitetty." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Profiilikuvan päivittäminen epäonnistui." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Taustakuvan hakemisto" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Taustakuvat" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Kirjaudu ulos palvelusta" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +#, fuzzy +msgid "Attachments" +msgstr "Liitettä ei ole." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Kirjaudu ulos palvelusta" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Liitettä ei ole." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Kirjaudu ulos palvelusta" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +#, fuzzy +msgid "SSL" +msgstr "SMS" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +#, fuzzy +msgid "Never" +msgstr "Palauta" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +#, fuzzy +msgid "Sometimes" +msgstr "Päivitykset" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +#, fuzzy +msgid "Always" +msgstr "Aliakset" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Palvelun ilmoitus" @@ -2982,9 +4071,9 @@ msgid "People search" msgstr "Etsi ihmisiä" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "Ei sallittu henkilötagi: %s" +msgstr "Tuo ei ole kelvollinen sähköpostiosoite." #: actions/peopletag.php:142 #, fuzzy, php-format @@ -2992,153 +4081,198 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Käyttäjät joilla henkilötagi %s - sivu %d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Päivityksen sisältö ei kelpaa" +msgstr "Koko ei kelpaa." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profiiliasetukset" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Voit päivittää täällä henkilötietojasi, jotta muut saavat tietää sinusta " "enemmän." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profiilitieto" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "1-64 pientä kirjainta tai numeroa, ei ääkkösiä eikä välimerkkejä tai " "välilyöntejä" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Koko nimi" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Kotisivu" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "Kotisivusi, blogisi tai toisella sivustolla olevan profiilisi osoite." -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" +msgstr[1] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Kuvaile itseäsi ja kiinnostuksen kohteitasi" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Tietoja" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Kotipaikka" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 +#, fuzzy msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Olinpaikka kuten \"Kaupunki, Maakunta (tai Lääni), Maa\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Tagit" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Kieli" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Ensisijainen kieli" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Aikavyöhyke" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "Missä aikavyöhykkeessä olet normaalisti?" +msgstr "Millä aikavyöhykkeellä olet tavallisesti?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "\"Tietoja\" on liian pitkä (max 140 merkkiä)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "kuvaus on liian pitkä (max %d merkkiä)." +msgstr[1] "kuvaus on liian pitkä (max %d merkkiä)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Aikavyöhykettä ei ole valittu." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Kieli on liian pitkä (max 50 merkkiä)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "Kieli on liian pitkä (enintään 50 merkkiä)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Virheellinen tagi: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Ei voitu asettaa käyttäjälle automaattista tilausta." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Tageja ei voitu tallentaa." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Ei voitu tallentaa profiilia." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Tageja ei voitu tallentaa." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Asetukset tallennettu." @@ -3173,11 +4307,13 @@ msgid "Public Stream Feed (Atom)" msgstr "Julkinen syöte (Atom)" #: actions/public.php:188 -#, php-format +#, fuzzy, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"Tämä on käyttäjän %s ja kavereiden aikajana, mutta kukaan ei ole lähettyänyt " +"vielä mitään." #: actions/public.php:191 msgid "Be the first to post!" @@ -3208,34 +4344,47 @@ msgstr "" "Tämä on %%site.name%%, [mikroblogaus](http://en.wikipedia.org/wiki/Micro-" "blogging)palvelu " +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Julkinen tagipilvi" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Nämä ovat suosituimmat viimeaikaiset tagit %s -palvelussa" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -"Kukaan ei ole vielä lähettänyt päivitystä tagilla [hashtag] (%%doc.tags%%) " +"Kukaan ei ole vielä lähettänyt päivitystä tagilla [hashtag](%%doc.tags%%) " "vielä." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Ole ensimmäinen joka lähettää päivityksen!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Tagipilvi" @@ -3268,10 +4417,13 @@ msgid "Could not update user with confirmed email address." msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"Ohjeet salasanan palauttamiseksi on lähetetty sähköpostiisiosoitteeseen, " +"joka on rekisteröity käyttäjätunnuksellesi." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " @@ -3311,6 +4463,7 @@ msgid "Unknown action" msgstr "Tuntematon toiminto" #: actions/recoverpassword.php:236 +#, fuzzy msgid "6 or more characters, and don't forget it!" msgstr "6 tai useampia merkkejä äläkä unohda mitä kirjoitit!" @@ -3347,14 +4500,15 @@ msgid "Unexpected password reset." msgstr "Odottamaton salasanan uudelleenasetus." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Salasanassa pitää olla 6 tai useampia merkkejä." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Salasana ja salasanan vahvistus eivät täsmää." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Virhe tapahtui käyttäjän asettamisessa." @@ -3363,7 +4517,7 @@ msgid "New password successfully saved. You are now logged in." msgstr "" "Uusi salasana tallennettiin onnistuneesti. Olet nyt kirjautunut sisään." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Valitettavasti vain kutsutut ihmiset voivat rekisteröityä." @@ -3375,7 +4529,7 @@ msgstr "Virheellinen kutsukoodin." msgid "Registration successful" msgstr "Rekisteröityminen onnistui" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Rekisteröidy" @@ -3383,77 +4537,81 @@ msgstr "Rekisteröidy" msgid "Registration not allowed." msgstr "Rekisteröityminen ei ole sallittu." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Et voi rekisteröityä, jos et hyväksy lisenssiehtoja." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Sähköpostiosoite on jo käytössä." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Käyttäjätunnus tai salasana ei kelpaa." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 pientä kirjainta tai numeroa, ei ääkkösiä eikä välimerkkejä tai " "välilyöntejä. Pakollinen." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 tai useampia merkkejä. Pakollinen." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Sama kuin ylläoleva salasana. Pakollinen." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Sähköposti" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Käytetään ainoastaan päivityksien lähettämiseen, ilmoitusasioihin ja " "salasanan uudelleen käyttöönottoon." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Pitempi nimi, mieluiten oikea nimesi" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Kotisivusi, blogisi tai toisella sivustolla olevan profiilisi osoite." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3462,7 +4620,7 @@ msgstr "" "poislukien yksityinen tieto: salasana, sähköpostiosoite, IM-osoite, " "puhelinnumero." -#: actions/register.php:583 +#: actions/register.php:589 #, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3495,7 +4653,7 @@ msgstr "" "\n" "Kiitokset rekisteröitymisestäsi ja toivomme että pidät palvelustamme." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3540,7 +4698,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Profiilisi URL-osoite toisessa yhteensopivassa mikroblogauspalvelussa" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Tilaa" @@ -3561,6 +4719,7 @@ msgstr "" "Tämä on paikallinen profiili. Kirjaudu sisään, jotta voit tilata päivitykset." #: actions/remotesubscribe.php:183 +#, fuzzy msgid "Couldn’t get a request token." msgstr "Ei saatu request tokenia." @@ -3580,11 +4739,10 @@ msgid "You can't repeat your own notice." msgstr "Et voi rekisteröityä, jos et hyväksy lisenssiehtoja." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "Sinä olet jo estänyt tämän käyttäjän." +msgstr "Sinä kuulut jo tähän ryhmään." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -3595,15 +4753,15 @@ msgid "Repeated!" msgstr "Luotu" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Vastaukset käyttäjälle %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Viesti käyttäjälle %1$s, %2$s" +msgstr "Vastaukset käyttäjälle %s" #: actions/replies.php:145 #, fuzzy, php-format @@ -3621,13 +4779,13 @@ msgid "Replies feed for %s (Atom)" msgstr "Päivityksien syöte käyttäjälle %s" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" -"Tämä on käyttäjän %s aikajana, mutta %s ei ole lähettänyt vielä yhtään " -"päivitystä." +"Tämä on käyttäjän %s ja kavereiden aikajana, mutta kukaan ei ole lähettyänyt " +"vielä mitään." #: actions/replies.php:204 #, php-format @@ -3642,7 +4800,7 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." +"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta](%%%%action." "newnotice%%%%?status_textarea=%s)!" #: actions/repliesrss.php:72 @@ -3651,9 +4809,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Et voi lähettää viestiä tälle käyttäjälle." +msgstr "Päivityksesi tähän palveluun on estetty." #: actions/revokerole.php:82 #, fuzzy @@ -3677,14 +4834,13 @@ msgstr "Käyttäjä on asettanut eston sinulle." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "Ulkoasuasetukset tälle StatusNet palvelulle." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3703,7 +4859,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Profiilikuva-asetukset" @@ -3719,30 +4874,31 @@ msgid "Application profile" msgstr "Päivitykselle ei ole profiilia" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Tunnus" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 #, fuzzy msgid "Organization" msgstr "Sivutus" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Tilastot" @@ -3760,6 +4916,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Poista" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3844,77 +5005,107 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Ryhmä %s" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "Ryhmän %s jäsenet, sivu %d" +msgstr "Ryhmät, sivu %d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Ryhmän profiili" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Huomaa" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliakset" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Ryhmän toiminnot" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syöte ryhmän %s päivityksille (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Jäsenet" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +#, fuzzy msgid "(None)" msgstr "(Tyhjä)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Kaikki jäsenet" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Luotu" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Jäsenet" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3924,7 +5115,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3935,24 +5129,31 @@ msgstr "" "**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on [mikroblogauspalvelu]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Ylläpitäjät" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Tuota viestiä ei ole." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Vain lähettäjä ja vastaanottaja voivat lukea tämän viestin." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Viesti käyttäjältä %1$s, %2$s" @@ -3961,64 +5162,88 @@ msgstr "Viesti käyttäjältä %1$s, %2$s" msgid "Notice deleted." msgstr "Päivitys on poistettu." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" +msgstr "Ryhmät, sivu %d" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" msgstr "Päivitykset joilla on tagi %s" -#: actions/showstream.php:79 -#, fuzzy, php-format +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" -msgstr "%s ja kaverit, sivu %d" +msgstr "Ryhmät, sivu %d" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Päivityssyöte ryhmälle %s" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, fuzzy, php-format msgid "FOAF for %s" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Tämä on käyttäjän %s aikajana, mutta %s ei ole lähettänyt vielä yhtään " -"päivitystä." +"Tämä on käyttäjän %s ja kavereiden aikajana, mutta kukaan ei ole lähettyänyt " +"vielä mitään." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." +"Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta](%%%%action." "newnotice%%%%?status_textarea=%s)!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4027,7 +5252,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4037,7 +5264,8 @@ msgstr "" "Käyttäjällä **%s** on käyttäjätili palvelussa %%%%site.name%%%%, joka on " "[mikroblogauspalvelu](http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Vastaukset käyttäjälle %s" @@ -4062,9 +5290,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Tuo ei ole kelvollinen sähköpostiosoite" +msgstr "Tuo ei ole kelvollinen sähköpostiosoite." #: actions/siteadminpanel.php:159 #, php-format @@ -4155,44 +5382,50 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "Palvelun ilmoitus" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Uusi viesti" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Twitter-asetuksia ei voitu tallentaa!" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "Palvelun ilmoitus" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "Palvelun ilmoitus" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "SMS-asetukset" +msgstr "Profiilikuva-asetukset" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4209,9 +5442,8 @@ msgstr "SMS ei ole käytettävissä." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Pikaviestiosoite" +msgstr "Sähköpostiosoitteet" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4242,9 +5474,8 @@ msgstr "Vahvista" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "SMS puhelinnumero" +msgstr "Puhelinnumeroa ei ole." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4253,9 +5484,8 @@ msgstr "Puhelinnumero, ei välimerkkejä tai välilyöntejä, suuntanumerollinen #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Asetukset" +msgstr "Asetukset tallennettu." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4308,9 +5538,8 @@ msgstr "Tämä on väärä vahvistukoodi." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Vahvistus peruttu." +msgstr "SMS vahvistus" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4353,14 +5582,13 @@ msgstr "Koodia ei ole syötetty." #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Ensisijainen sivunavigointi" +msgstr "Sähköpostiosoitteen vahvistus" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4411,12 +5639,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Profiilikuva-asetukset" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -4424,11 +5654,6 @@ msgstr "Tilausta ei onnistuttu tallentamaan." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Tiedostoa ei ole." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4438,63 +5663,84 @@ msgstr "Et ole tilannut tämän käyttäjän päivityksiä." msgid "Subscribed" msgstr "Tilattu" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Käyttäjän %s tilaajat" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "Käyttäjän %s tilaajat, sivu %d" +msgstr "Käyttäjän %s tilaajat" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Nämä ihmiset seuraavat sinun päivityksiäsi." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Nämä ihmiset seuraavat käyttäjän %s päivityksiä." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format -msgid "%s subscriptions" +msgid "%1$s subscriptions, page %2$d" msgstr "Käyttäjän %s tilaukset" -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "Käyttäjän %s tilaukset, sivu %d" - -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Näiden ihmisten päivityksiä sinä seuraat." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Käyttäjä %s seuraa näiden ihmisten päivityksiä." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4504,38 +5750,49 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s ei seuraa ketään käyttäjää." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Syöte ryhmän %s päivityksille (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Käyttäjät joilla henkilötagi %s - sivu %d" +msgstr "Päivitykset joilla on tagi %s" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Päivityksien syöte käyttäjälle %s" +msgstr "Syöte ryhmän %s päivityksille (Atom)" #: actions/tagother.php:39 #, fuzzy @@ -4552,7 +5809,7 @@ msgid "User profile" msgstr "Käyttäjän profiili" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Kuva" @@ -4590,9 +5847,8 @@ msgid "No such tag." msgstr "Tuota tagia ei ole." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Sinä olet jo estänyt tämän käyttäjän." +msgstr "Älä estä tätä käyttäjää" #: actions/unsandbox.php:72 #, fuzzy @@ -4605,9 +5861,8 @@ msgid "User is not silenced." msgstr "Käyttäjällä ei ole profiilia." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Ei profiili id:tä kyselyssä." +msgstr "Ei profiilia tuolle ID:lle." #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4620,82 +5875,103 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "Käyttäjä" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profiili" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Kutsu uusia käyttäjiä" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Kaikki tilaukset" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Tilaa automaattisesti kaikki, jotka tilaavat päivitykseni (ei sovi hyvin " "ihmiskäyttäjille)" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Kutsu(t) lähetettiin" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Kutsu(t) lähetettiin" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Valtuuta tilaus" @@ -4711,7 +5987,9 @@ msgstr "" "päivitykset. Jos et valinnut haluavasi tilata jonkin käyttäjän päivityksiä, " "paina \"Peruuta\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Lisenssi" @@ -4801,12 +6079,14 @@ msgstr "Kuvan URL-osoitetta '%s' ei voi avata." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Kuvan '%s' tyyppi on väärä" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Profiiliasetukset" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4818,18 +6098,18 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Ryhmän %s jäsenet, sivu %d" +msgstr "Ryhmät, sivu %d" #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "Hae lisää ryhmiä" #: actions/usergroups.php:159 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "Sinä et kuulu tähän ryhmään." +msgstr "Käyttäjä ei kuulu tähän ryhmään." #: actions/usergroups.php:164 #, php-format @@ -4842,7 +6122,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" @@ -4891,7 +6171,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 #, fuzzy msgid "Version" msgstr "Omat" @@ -4900,64 +6180,111 @@ msgstr "Omat" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Lisää suosikiksi" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Lähetä sähköpostia, jos joku lisää päivitykseni suosikiksi." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Koko ei kelpaa." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Ryhmän profiili" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Ei voitu päivittää ryhmää." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Ryhmän profiili" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Virhe tapahtui käyttäjän tallentamisessa; epäkelpo." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Liity" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4977,18 +6304,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Tapahtui virhe suoran viestin lähetyksessä." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Viestin tallennus ei onnistunut." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Viestin päivittäminen uudella URI-osoitteella ei onnistunut." @@ -5000,24 +6327,24 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" +msgstr "Virhe tapahtui profiilikuvan lisäämisessä" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Ongelma päivityksen tallentamisessa." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Virhe tapahtui päivityksen tallennuksessa. Tuntematon käyttäjä." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -5025,7 +6352,7 @@ msgstr "" "päivityksien lähettämista muutaman minuutin päästä." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -5034,44 +6361,58 @@ msgstr "" "päivityksien lähettämista muutaman minuutin päästä." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Päivityksesi tähän palveluun on estetty." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Tilausta ei onnistuttu tallentamaan." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5083,255 +6424,281 @@ msgid "Missing profile." msgstr "Käyttäjällä ei ole profiilia." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Twitter-asetuksia ei voitu tallentaa!" +msgstr "Tagien tallennus epäonnistui." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 #, fuzzy msgid "You have been banned from subscribing." msgstr "Käyttäjä on estänyt sinua tilaamasta päivityksiä." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Ei ole tilattu!." #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Käyttäjä on asettanut eston sinulle." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Ei ole tilattu!." #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Ei voitu poistaa tilausta." +msgstr "Tilausta ei onnistuttu tallentamaan." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Ei voitu poistaa tilausta." +msgstr "Tilausta ei onnistuttu tallentamaan." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Ei voitu poistaa tilausta." +msgstr "Tilausta ei onnistuttu tallentamaan." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s seuraa nyt päivityksiäsi palvelussa %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Ryhmän luonti ei onnistunut." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." +msgstr "Ryhmän luonti ei onnistunut." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "Tilausta ei onnistuttu tallentamaan." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Vaihda profiiliasetuksesi" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Lataa kuva" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Vaihda salasanasi" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Muuta sähköpostin käsittelyasetuksia." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 #, fuzzy msgid "Design your profile" msgstr "Käyttäjän profiili" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Muita asetuksia" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Muut" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, fuzzy, php-format msgid "%1$s - %2$s" msgstr "%1$s (%2$s)" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Nimetön sivu" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Ensisijainen sivunavigointi" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Henkilökohtainen profiili ja kavereiden aikajana" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Omat" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Muuta sähköpostiosoitettasi, kuvaasi, salasanaasi, profiiliasi" +msgstr "Vaihda salasanasi" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Käyttäjätili" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ei voitu uudelleenohjata palvelimelle: %s" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Yhdistä" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ensisijainen sivunavigointi" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Ylläpito" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Kutsu" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Kirjaudu ulos palvelusta" +msgstr "Kirjaudu sisään" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Kirjaudu ulos" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Luo uusi käyttäjätili" +msgstr "Luo uusi ryhmä" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Rekisteröidy" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 -#, fuzzy +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "Kirjaudu sisään palveluun" +msgstr "Kirjaudu sisään" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Kirjaudu sisään" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Auta minua!" +msgstr "Ohjeet" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ohjeet" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 -#, fuzzy +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "Hae ihmisiä tai tekstiä" +msgstr "Hae lisää ryhmiä" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5339,72 +6706,77 @@ msgstr "Haku" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Palvelun ilmoitus" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Paikalliset näkymät" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Sivuilmoitus" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Toissijainen sivunavigointi" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Ohjeet" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Tietoa" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "UKK" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Yksityisyys" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Lähdekoodi" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Ota yhteyttä" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 #, fuzzy msgid "Badge" msgstr "Tönäise" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet-ohjelmiston lisenssi" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5414,13 +6786,16 @@ msgstr "" "site.broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** on mikroblogipalvelu." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5432,366 +6807,478 @@ msgstr "" "www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 #, fuzzy msgid "Site content license" msgstr "StatusNet-ohjelmiston lisenssi" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Sivutus" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Myöhemmin" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Aiemmin" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Kuva" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Et voi lähettää viestiä tälle käyttäjälle." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Rekisteröityminen ei ole sallittu." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "Komentoa ei ole vielä toteutettu." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "Komentoa ei ole vielä toteutettu." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Twitter-asetuksia ei voitu tallentaa!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "Sähköpostiosoitteen vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Kutsu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "SMS vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Ulkoasu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "SMS vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Käyttäjä" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "SMS vahvistus" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "SMS vahvistus" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "SMS vahvistus" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "Palvelun ilmoitus" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "SMS vahvistus" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Ei voitu lisätä aliasta." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Ei voitu lisätä aliasta." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Viestin tallennus ei onnistunut." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Kuvaile ryhmää tai aihetta 140 merkillä" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" +msgstr[1] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Kuvaile ryhmää tai aihetta 140 merkillä" +msgstr "Kuvaus" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "Ryhmän tai aiheen kotisivun tai blogin osoite" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Lähdekoodi" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "Ryhmän tai aiheen kotisivun tai blogin osoite" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Peruuta" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 #, fuzzy msgctxt "BUTTON" msgid "Revoke" msgstr "Poista" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 -msgid "Author" -msgstr "" - -#. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:294 #, fuzzy -msgid "Provider" -msgstr "Profiili" +msgid "Author" +msgstr "Atom" +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:308 +msgid "Provider" +msgstr "Esikatselu" + +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 +#, fuzzy msgid "Tags for this attachment" -msgstr "" +msgstr "Liitettä ei ole." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Salasanan vaihto" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Salasanan vaihto" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Estä" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Komennon tulos" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax-virhe" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Komento suoritettu" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Komento epäonnistui" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Ei profiilia tuolla id:llä." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "Käyttäjällä ei ole viimeistä päivitystä" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Valitettavasti tätä komentoa ei ole vielä toteutettu." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Tönäisy lähetetty" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5799,207 +7286,247 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Päivitys on merkitty suosikiksi." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Sinä kuulut jo tähän ryhmään." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Koko nimi: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Kotipaikka: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Kotisivu: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Tietoa: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgstr[1] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Suora viesti käyttäjälle %s lähetetty" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Tapahtui virhe suoran viestin lähetyksessä." -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Ilmoituksia ei voi pistää päälle." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Poista tämä päivitys" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Päivitys lähetetty" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Ongelma päivityksen tallentamisessa." +msgstr "Virhe tapahtui käyttäjän asettamisessa." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgstr[1] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "Vastaa tähän päivitykseen" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "Anna käyttäjätunnus, jonka päivitykset haluat tilata" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Käyttäjän %s päivitykset tilattu" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "Anna käyttäjätunnus, jonka päivityksien tilauksen haluat lopettaa" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Käyttäjän %s päivitysten tilaus lopetettu" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Komentoa ei ole vielä toteutettu." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Ilmoitukset pois päältä." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Ilmoituksia ei voi pistää pois päältä." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Ilmoitukset päällä." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Ilmoituksia ei voi pistää päälle." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Käyttäjän %s päivitysten tilaus lopetettu" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 +#, fuzzy msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Olet jos tilannut seuraavien käyttäjien päivitykset:" msgstr[1] "Olet jos tilannut seuraavien käyttäjien päivitykset:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Toista ei voitu asettaa tilaamaan sinua." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 +#, fuzzy msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Toista ei voitu asettaa tilaamaan sinua." msgstr[1] "Toista ei voitu asettaa tilaamaan sinua." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Sinä et kuulu tähän ryhmään." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sinä et kuulu tähän ryhmään." msgstr[1] "Sinä et kuulu tähän ryhmään." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -6041,95 +7568,140 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Varmistuskoodia ei ole annettu." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Kutsu(t) lähetettiin seuraaville henkilöille:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 #, fuzzy msgid "Go to the installer." msgstr "Kirjaudu sisään palveluun" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "Pikaviestin" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Päivitykset pikaviestintä käyttäen (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Päivitykset SMS:llä" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Yhdistä" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Tietokantavirhe" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 #, fuzzy msgid "Upload file" msgstr "Lataa" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 #, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "Voit ladata oman profiilikuvasi. Maksimikoko on %s." -#: lib/designsettings.php:418 -msgid "Design defaults restored." -msgstr "" +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "On" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Off" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Vaihda" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +#, fuzzy +msgid "Design defaults restored." +msgstr "Ulkoasuasetukset tallennettu." + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Poista tämä päivitys suosikeista" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Merkitse päivitys suosikkeihin" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Lisää suosikiksi" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Vie tietoja" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6161,8 +7733,15 @@ msgstr "Mene" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 pientä kirjainta tai numeroa, ei ääkkösiä eikä välimerkkejä tai " +"välilyöntejä" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "Ryhmän tai aiheen kotisivun tai blogin osoite" #: lib/groupeditform.php:168 @@ -6172,63 +7751,115 @@ msgstr "Kuvaile ryhmää tai aihetta 140 merkillä" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Kuvaile ryhmää tai aihetta 140 merkillä" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" +msgstr[1] "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Ryhmän paikka, jos sellainen on, kuten \"Kaupunki, Maakunta (tai Lääni), Maa" "\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Ryhmä" +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Estä" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Estä käyttäjä" +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "Muokkaa %s ryhmän ominaisuuksia" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Logo" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Lisää ryhmälle %s logo tai muokkaa sitä " +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 -#, fuzzy, php-format -msgid "Add or edit %s design" -msgstr "Lisää ryhmälle %s logo tai muokkaa sitä " +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Ryhmät, joissa eniten jäseniä" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Ryhmät, joissa eniten päivityksiä" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Tagit ryhmän %s päivityksissä" @@ -6242,38 +7873,57 @@ msgstr "Tämä sivu ei ole saatavilla sinulle sopivassa mediatyypissä." msgid "Unsupported image file format." msgstr "Kuvatiedoston formaattia ei ole tuettu." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Voit ladata ryhmälle logon." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Osittain ladattu palvelimelle." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Tuo ei ole kelvollinen kuva tai tiedosto on rikkoutunut." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Tiedosto hävisi." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tunnistamaton tiedoston tyyppi" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6285,10 +7935,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "Liity" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Eroa" @@ -6301,45 +7947,54 @@ msgstr "Kirjaudu sisään käyttäjätunnuksella ja salasanalla" msgid "Sign up for a new account" msgstr "Luo uusi käyttäjätili" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Sähköpostiosoitteen vahvistus" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s seuraa nyt päivityksiäsi palvelussa %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6347,10 +8002,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s seuraa nyt päivityksiäsi palvelussa %2$s.\n" "\n" @@ -6363,23 +8018,25 @@ msgstr "" "----\n" "Voit vaihtaa sähköpostiosoitetta tai ilmoitusasetuksiasi %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "" -"Tietoja: %s\n" -"\n" +msgstr "Kotipaikka: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen palveluun %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6388,7 +8045,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Sinulla on uusi päivityksien lähetysosoite palvelussa %1$s.\n" "\n" @@ -6399,31 +8056,36 @@ msgstr "" "Terveisin,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s päivitys" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS vahvistus" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Odotetaan vahvistusta tälle puhelinnumerolle." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s tönäisi sinua" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6439,14 +8101,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Uusi yksityisviesti käyttäjältä %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6465,14 +8131,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s lisäsi päivityksesi suosikkeihinsa" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "Lähetä sähköpostia, jos joku lisää päivitykseni suosikiksi." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6494,7 +8165,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6502,13 +8173,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6545,7 +8223,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 #, fuzzy msgid "from" msgstr " lähteestä " @@ -6566,164 +8244,218 @@ msgstr "Valitettavasti tuo ei ole oikea osoite sähköpostipäivityksille." msgid "Sorry, no incoming email allowed." msgstr "Valitettavasti päivitysten teko sähköpostilla ei ole sallittua." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Kuvatiedoston formaattia ei ole tuettu." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Julkista päivitysvirtaa ei saatu." +msgstr "Ei voitu poistaa suosikkia." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Lähetä suora viesti" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Valitse operaattori" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Ei ole tilattu!." + +#: lib/messageform.php:153 msgid "To" msgstr "Vastaanottaja" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Sallitut merkit" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Lähetä" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Käyttäjätunnuksessa voi olla ainoastaan pieniä kirjaimia ja numeroita ilman " +"välilyöntiä." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Lähetä päivitys" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Mitä teet juuri nyt, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Tageja ei voitu tallentaa." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Tageja ei voitu tallentaa." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "Ei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -6740,56 +8472,52 @@ msgstr "Tönäise" msgid "Send a nudge to this user" msgstr "Lähetä tönäisy tälle käyttäjälle" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Virhe tapahtui uuden profiilin lisäämisessä" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Virhe tapahtui profiilikuvan lisäämisessä" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Virhe tapahtui etäprofiilin päivittämisessä" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Virhe tapahtui uuden etäprofiilin lisäämisessä" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Poista päivitys" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Ei voitu lisätä uutta tilausta." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Omat" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Vastaukset" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Suosikit" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Saapuneet" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Sinulle saapuneet viestit" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Lähetetyt" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Lähettämäsi viestit" @@ -6798,7 +8526,8 @@ msgstr "Lähettämäsi viestit" msgid "Tags in %s's notices" msgstr "Tagit käyttäjän %s päivityksissä" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "Tuntematon toiminto" @@ -6885,9 +8614,11 @@ msgstr "Vastaa tähän päivitykseen" msgid "Revoke the \"%s\" role from this user" msgstr "Estä tätä käyttäjää osallistumassa tähän ryhmään" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API-metodia ei löytynyt." #: lib/sandboxform.php:67 #, fuzzy @@ -6899,20 +8630,26 @@ msgstr "Saapuneet" msgid "Sandbox this user" msgstr "Poista esto tältä käyttäjältä" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Haku" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Haku" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Haku" @@ -6989,6 +8726,12 @@ msgstr "" msgid "None" msgstr "Ei mitään" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Koko ei kelpaa." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6998,45 +8741,58 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Profiilikuvan päivittäminen epäonnistui." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Virhe tapahtui etäprofiilin päivittämisessä" +msgstr "Tapahtui virhe, kun estoa poistettiin." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Eniten päivityksiä" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Poista esto" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -7063,126 +8819,179 @@ msgstr "Peruuta tämän käyttäjän tilaus" msgid "Unsubscribe" msgstr "Peruuta tilaus" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Käyttäjällä ei ole profiilia." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Kuva" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Käyttäjän toiminnot" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 #, fuzzy msgid "Edit profile settings" msgstr "Profiiliasetukset" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Lähetä suora viesti tälle käyttäjälle" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Viesti" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "Käyttäjän profiili" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Ylläpitäjät" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "muutama sekunti sitten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "noin minuutti sitten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "noin %d minuuttia sitten" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "noin tunti sitten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "noin %d tuntia sitten" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "noin päivä sitten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "noin %d päivää sitten" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "noin kuukausi sitten" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "noin %d kuukautta sitten" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "noin vuosi sitten" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, fuzzy, php-format msgid "%s is not a valid color!" msgstr "Kotisivun verkko-osoite ei ole toimiva." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "Kotisivun verkko-osoite ei ole toimiva." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" +msgstr[1] "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Koko ei kelpaa." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Ryhmää ei ole määritelty." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 4f7b3f0e70..ee415abb4f 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -1,160 +1,204 @@ -# Translation of StatusNet to French +# Translation of StatusNet - Core to French (Français) +# Expored from translatewiki.net # -# Author@translatewiki.net: Crochet.david -# Author@translatewiki.net: IAlex -# Author@translatewiki.net: Isoph -# Author@translatewiki.net: Jean-Frédéric -# Author@translatewiki.net: Julien C -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Peter17 -# Author@translatewiki.net: Y-M D +# Author: Brion +# Author: Crochet.david +# Author: IAlex +# Author: Isoph +# Author: Jean-Frédéric +# Author: Julien C +# Author: Lockal +# Author: McDutchie +# Author: Patcito +# Author: Peter17 +# Author: Sherbrooke +# Author: Verdy p +# Author: Y-M D # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:12:08+0000\n" -"Language-Team: French\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:42+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Accès" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Paramètres d’accès au site" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Inscription" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Interdire aux utilisateurs anonymes (non connectés) de voir le site ?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privé" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Autoriser l’inscription sur invitation seulement." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Sur invitation uniquement" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Désactiver les nouvelles inscriptions." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Fermé" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Sauvegarder les paramètres d’accès" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Enregistrer" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Page non trouvée." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utilisateur non trouvé." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s et ses amis, page %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s et ses amis" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Flux pour les amis de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Flux pour les amis de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Flux pour les amis de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -162,7 +206,9 @@ msgstr "" "Ceci est le flux pour %s et ses amis mais personne n’a rien posté pour le " "moment." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -171,8 +217,9 @@ msgstr "" "Essayez de vous abonner à plus d’utilisateurs, de vous [inscrire à un groupe]" "(%%action.groups%%) ou de poster quelque chose vous-même." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -182,7 +229,11 @@ msgstr "" "profil ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -191,59 +242,80 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et faire ensuite " "un clin d’œil à %s ou poster un avis à son intention." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Vous et vos amis" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Statuts de %1$s et ses amis dans %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Méthode API non trouvée !" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Ce processus requiert un POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -251,356 +323,533 @@ msgstr "" "Vous devez spécifier un paramètre « device » avec une des valeurs suivantes : " "sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Impossible de mettre à jour l’utilisateur." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Aucun profil ne correspond à cet utilisateur." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Impossible d’enregistrer le profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Le serveur n’a pas pu gérer autant de données de POST (%s octet) en raison " +"de sa configuration actuelle." +msgstr[1] "" "Le serveur n’a pas pu gérer autant de données de POST (%s octets) en raison " "de sa configuration actuelle." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Impossible de sauvegarder les parmètres de la conception." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Impossible de mettre à jour votre conception." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Principal" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Activité de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Abonnements de %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoris" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membres du groupe %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Vous ne pouvez pas vous bloquer vous-même !" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Le blocage de l’utilisateur a échoué." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Le déblocage de l’utilisateur a échoué." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Messages direct depuis %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Tous les messages directs envoyés par %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Messages directs envoyés à %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Tous les messages directs envoyés à %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Message sans texte !" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "C’est trop long ! La taille maximale du message est de %d caractères." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "C’est trop long ! La taille du message est limitée à %d caractère" +msgstr[1] "C’est trop long ! La taille du message est limitée à %d caractères" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Destinataire non trouvé." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Vous ne pouvez envoyer des messages personnels qu’aux utilisateurs inscrits " "comme amis." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"N’envoyez pas de message à vous-même ; dites-le vous plutôt dans votre " +"tête..." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Aucun statut trouvé avec cet identifiant. " +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Cet avis est déjà un favori." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Impossible de créer le favori." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Cet avis n’est pas un favori." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Impossible de supprimer le favori." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Impossible de suivre l’utilisateur : profil non trouvé." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Impossible de suivre l’utilisateur : %s est déjà dans votre liste." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Impossible de ne plus suivre l’utilisateur : utilisateur non trouvé." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Vous ne pouvez pas ne plus vous suivre vous-même." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Vous devez fournir deux identifiants ou pseudonymes." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Vous devez fournir deux identifiants ou pseudonymes valides." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Impossible de déterminer l’utilisateur source." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Impossible de trouver l’utilisateur cible." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Les pseudos ne peuvent contenir que des caractères minuscules et des " -"chiffres, sans espaces." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Pseudo déjà utilisé. Essayez-en un autre." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Pseudo invalide." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "L’adresse du site personnel n’est pas un URL valide. " -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Nom complet trop long (maximum de 255 caractères)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Le nom complet est trop long (limité à 255 caractères maximum)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "La description est trop longue (%d caractères maximum)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "La description est trop longue (limitée à %d caractère maximum)." +msgstr[1] "La description est trop longue (limitée à %d caractères maximum)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Emplacement trop long (maximum de 255 caractères)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "L’emplacement est trop long (limité à 255 caractères maximum)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Trop d’alias ! Maximum %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Trop d’alias ! Un maximum de %d est autorisé." +msgstr[1] "Trop d’alias ! Un maximum de %d est autorisé." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Alias invalide : « %s »." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias « %s » déjà utilisé. Essayez-en un autre." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "L’alias ne peut pas être le même que le pseudo." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Groupe non trouvé." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Vous êtes déjà membre de ce groupe." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Vous avez été bloqué de ce groupe par l’administrateur." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Impossible de joindre l’utilisateur %1$s au groupe %2$s." +msgstr "Impossible d’inscrire l’utilisateur %1$s au groupe %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Vous n’êtes pas membre de ce groupe." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Impossible de retirer l’utilisateur %1$s du groupe %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Groupes de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Groupes de %1$s dont %2$s est membre." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Groupes de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "groupes sur %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Échec du téléversement." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Jeton de requête ou de vérification invalide." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Paramètre oauth_token non fourni." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Jeton incorrect." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Jeton de requête incorrect." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Le jeton de requête a déjà été autorisé." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Un problème est survenu avec votre jeton de session. Veuillez essayer à " "nouveau." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Pseudo ou mot de passe incorrect !" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" -"Erreur de la base de données lors de la suppression de l’utilisateur de " -"l’application OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" -"Erreur de base de donnée en insérant l’utilisateur de l’application OAuth" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Le jeton de connexion %s a été autorisé. Merci de l’échanger contre un jeton " -"d’accès." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Le jeton de connexion %s a été refusé et révoqué." +"Erreur de base de donnée lors de l’insertion du jeton d’association de " +"l’utilisateur de l’application OAuth" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Soumission de formulaire inattendue." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" "Une application vous demande l’autorisation de se connecter à votre compte" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Autoriser ou refuser l’accès" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Une application aimerait pouvoir <strong>%3$s</strong> vos données de compte " +"%4$s. Vous ne devriez donner accès à votre compte %4$s qu’à des tiers de " +"confiance." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -612,170 +861,537 @@ msgstr "" "devriez donner l’accès à votre compte %4$s qu’aux tiers à qui vous faites " "confiance." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Compte" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Pseudo" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Mot de passe" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Refuser" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Annuler" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Autoriser" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Autoriser ou refuser l’accès à votre compte." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autoriser l’accès aux informations de votre compte." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Autorisation annulée." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Le jeton de requête %s a été révoqué." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Vous avez autorisé avec succès l’application" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Veuillez retourner à l’application et entrer le code de sécurité ci-dessous " +"pour compléter le processus." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Vous avez autorisé avec succès l’application « %s »" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Veuillez retourner à l’application %s et entrez le code de sécurité ci-" +"dessous pour compléter le processus." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Ce processus requiert un POST ou un DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Vous ne pouvez pas supprimer le statut d’un autre utilisateur." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Avis non trouvé." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Vous ne pouvez pas reprendre votre propre avis." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Vous avez déjà repris cet avis." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "Méthode HTTP non trouvée !" + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Format non supporté : %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Statut supprimé." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Aucun statut trouvé avec cet identifiant." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Vous ne pouvez supprimer qu’en utilisant le format Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Impossible de supprimer cet avis." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "A supprimé l’avis %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Le client doit fournir un paramètre « statut » avec une valeur." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "C’est trop long ! La taille maximale de l’avis est de %d caractères." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" +"C’est trop long ! La taille maximale de l’avis est limitée à %d caractère." +msgstr[1] "" +"C’est trop long ! La taille maximale de l’avis est limitée à %d caractères." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Non trouvé." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "L’avis parent correspondant à cette réponse n’a pas été trouvé." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" -"La taille maximale de l’avis est de %d caractères, en incluant l’URL de la " -"pièce jointe." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"La taille maximale de l’avis est limitée à %d caractère, en incluant " +"l’adresse URL de la pièce jointe." +msgstr[1] "" +"La taille maximale de l’avis est limitée à %d caractères, en incluant " +"l’adresse URL de la pièce jointe." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Format non supporté." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoris de %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s statuts favoris de %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s annonces favorites de %2$s, alias %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Impossible de générer le flux pour le groupe — %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Mises à jour mentionnant %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s statuts en réponses aux statuts de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Activité publique %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s statuts de tout le monde !" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Non implémenté." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repris pour %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Reprises de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avis marqués avec %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mises à jour marquées avec %1$s dans %2$s !" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Seul l’utilisateur peut ajouter des éléments son flux." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "N’accepter que des AtomPub pour les flux atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "Une publication Atom doit être une entrée « Atom »." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "Une publication Atom doit être une entrée « Atom »." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "Une publication Atom doit être une entrée « Atom »." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Ne peut gérer que les activités de publication." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Ne peut gérer l’objet d’activité de type « %s »" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Chercher dans le contenu des avis" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "L’avis d’URI « %s » existe déjà." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Publication AtomPost avec l’URI d’attention inconnu %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Méthode API en construction." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Page non trouvée." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Profil non-trouvé." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Impossible d’insérer un nouvel abonnement." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Ne peut gérer que les activités de publication." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Ne peut gérer que les activités de publication." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Inconnu" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Ajouter aux favoris" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Profil non-trouvé." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membres du groupe %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Groupes de %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Ne peut gérer que les activités de publication." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Inconnu" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Tous les membres" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Fichier non trouvé." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Impossible de supprimer le favori." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Aucun groupe trouvé." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Tous les membres" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Méthode HTTP non trouvée !" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Profil non-trouvé." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Vous n’êtes pas abonné(e) à ce profil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Impossible de supprimer l’abonnement à soi-même." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Abonnés de %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Ne peut gérer que les activités de publication." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Type de fichier inconnu" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Pièce jointe non trouvée." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Aucun pseudo." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Aucune taille" -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Taille incorrecte." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." @@ -783,73 +1399,95 @@ msgstr "" "Vous pouvez associer un « avatar » (image personnelle) à votre profil. La " "taille maximale du fichier est de %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Utilisateur sans profil correspondant." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Paramètres de l’avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Image originale" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Aperçu" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Supprimer" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" -msgstr "Transfert" +msgstr "Téléverser" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Recadrer" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Aucun fichier n’a été téléversé." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Sélectionnez une zone de forme carrée pour définir votre avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Données perdues." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar mis à jour." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "La mise à jour de l’avatar a échoué." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar supprimé." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Vous avez déjà bloqué cet utilisateur." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquer cet utilisateur" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -861,175 +1499,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Non" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Ne pas bloquer cet utilisateur" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Oui" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloquer cet utilisateur" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Impossible d’enregistrer les informations de blocage." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Aucun groupe trouvé." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s profils bloqués" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profils bloqués, page %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Une liste des utilisateurs dont l’inscription à ce groupe est bloquée." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Débloquer l’utilisateur de ce groupe" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Débloquer" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Débloquer cet utilisateur" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Poster sur %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Aucun code de confirmation." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Code de confirmation non trouvé." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Ce code de confirmation n’est pas pour vous !" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Type d’adresse non reconnu : %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Cette adresse a déjà été confirmée." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Impossible de mettre à jour l’utilisateur." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Impossible de supprimer le courriel de confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Impossible de supprimer la confirmation de l’adresse de contact." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmer l’adresse" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "L'adresse \"%s\" a été validée pour votre compte." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversation" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avis" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Vous devez être connecté pour supprimer une application." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Application non trouvée." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Vous n’êtes pas le propriétaire de cette application." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Un problème est survenu avec votre jeton de session." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Supprimer l’application" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1040,31 +1722,89 @@ msgstr "" "utilisateur existantes." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Ne pas supprimer cette application" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Supprimer cette application" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Vous devez ouvrir une session pour supprimer un groupe." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Aucun pseudo ou ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Vous n’êtes pas autorisé à supprimer ce groupe." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Impossible de supprimer le groupe « %s »." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Groupe « %s » supprimé" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Supprimer le groupe" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Voulez-vous vraiment supprimer ce groupe ? Ceci effacera de la base de " +"données toutes les données relatives à ce groupe, sans aucune sauvegarde. " +"Les messages postés à ce groupe resteront toutefois visibles dans les fils " +"d’actualités individuels." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Ne pas supprimer ce groupe" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Supprimer ce groupe" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non connecté." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Impossible de supprimer cet avis." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1072,21 +1812,24 @@ msgstr "" "Vous êtes sur le point de supprimer définitivement un message. Une fois cela " "fait, il est impossible de l’annuler." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Supprimer cet avis" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Voulez-vous vraiment supprimer cet avis ?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -1117,63 +1860,72 @@ msgstr "Supprimer cet utilisateur" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Conception" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Paramètres de conception pour ce site StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Paramètres de conception pour ce site StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL du logo invalide." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Adresse URL du logo SSL invalide." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Le thème n’est pas disponible : %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Modifier le logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo du site" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logo SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Modifier le thème" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Thème du site" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Thème pour le site." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Thème personnalisé" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" "Vous pouvez importer un thème StatusNet personnalisé dans une archive .ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Changer l’image d’arrière plan" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Arrière plan" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1183,75 +1935,84 @@ msgstr "" "maximale du fichier est de %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Activé" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Désactivé" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Activer ou désactiver l’image d’arrière plan." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Répéter l’image d’arrière plan" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Modifier les couleurs" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contenu" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barre latérale" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texte" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Liens" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avancé" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personnalisé" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Utiliser les valeurs par défaut" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaurer les conceptions par défaut" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Revenir aux valeurs par défaut" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Enregistrer" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Sauvegarder la conception" @@ -1268,109 +2029,129 @@ msgstr "Ajouter aux favoris" msgid "No such document \"%s\"" msgstr "Document « %s » non trouvé." -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Modifier l’application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Modifier votre application" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Vous devez être connecté pour modifier une application." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Application non trouvée." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Utilisez ce formulaire pour modifier votre application." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Le nom est requis." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." -msgstr "Le nom est trop long (maximum de 255 caractères)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "Le nom est trop long (limité à 255 caractères maximum)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Ce nom est déjà utilisé. Essayez-en un autre." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "La description est requise." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "L’URL source est trop longue." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "L’URL source est invalide." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "L’organisation est requise." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "L’organisation est trop longue (maximum de 255 caractères)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "L’organisation est trop longue (limitée à 255 caractères maximum)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "La page d’accueil de l’organisation est requise." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Le rappel (Callback) est trop long." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "L’URL de rappel (Callback) est invalide." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Impossible de mettre à jour l’application." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Modifier le groupe %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Vous devez ouvrir une session pour créer un groupe." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Vous devez être administrateur pour modifier le groupe." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Remplissez ce formulaire pour modifier les options du groupe." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "la description est trop longue (%d caractères maximum)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias invalide : « %s »" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Impossible de mettre à jour le groupe." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Impossible de créer les alias." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Vos options ont été enregistrées." @@ -1388,12 +2169,12 @@ msgstr "Configurez les courriels que vous souhaitez recevoir de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Adresse électronique" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Adresse courriel actuellement confirmée." @@ -1402,14 +2183,14 @@ msgstr "Adresse courriel actuellement confirmée." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" -msgstr "Retirer" +msgstr "Enlever" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1417,25 +2198,19 @@ msgstr "" "En attente d’une confirmation pour cette adresse. Vérifiez votre boîte de " "réception (et celle de spam !) pour recevoir de nouvelles instructions." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Annuler" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Adresse de courriel (ex : nom@example.org)" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1443,112 +2218,119 @@ msgstr "Ajouter" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Courriel entrant" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Je veux envoyer mes avis par courriel." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Écrivez à cette adresse courriel pour poster de nouveaux avis." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Nouvelle adresse courriel pour poster ; annule l’ancienne." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nouveau" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Préférences de courrier électronique" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Avertissez-moi par courriel des nouveaux abonnements." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Envoyez-moi un courriel quand un utilisateur ajoute un de mes avis à ses " "favoris." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Envoyez-moi un courriel quand quelqu’un m’envoie un message personnel." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Envoyez-moi un courriel quand quelqu’un m’envoie une réponse « @ »." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Autoriser mes amis à m’envoyer des courriels et des clins d’œil." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Je veux envoyer mes avis par courriel." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publier un MicroID pour mon adresse courriel." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Préférences de courrier électronique enregistrées." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Aucune adresse électronique." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Impossible d’utiliser cette adresse courriel" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adresse courriel invalide." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Vous utilisez déjà cette adresse courriel." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Cette adresse courriel appartient déjà à un autre utilisateur." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Impossible d’insérer le code de confirmation." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1559,50 +2341,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Aucune confirmation à annuler." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Cette adresse de messagerie électronique est erronée." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Impossible de supprimer le courriel de confirmation." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Confirmation de courrier électronique annulée." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Ceci n’est pas votre adresse courriel." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "L’adresse électronique a été supprimée." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Aucune adresse de courriel entrant." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Impossible de mettre à jour le dossier de l’utilisateur." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "L’adresse de courriel entrant a été supprimée." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nouvelle adresse de courriel entrant ajoutée." @@ -1610,11 +2398,11 @@ msgstr "Nouvelle adresse de courriel entrant ajoutée." msgid "This notice is already a favorite!" msgstr "Cet avis a déjà été ajouté à vos favoris !" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Retirer ce favori" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Avis populaires" @@ -1652,7 +2440,7 @@ msgstr "" "premier à ajouter un avis à vos favoris !" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Avis favoris de %s" @@ -1721,7 +2509,7 @@ msgstr "Impossible de convertir le jeton de requête en jeton d’accès." msgid "Remote service uses unknown version of OMB protocol." msgstr "Le service distant utilise une version inconnue du protocole OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Erreur lors de la mise à jour du profil distant." @@ -1749,19 +2537,23 @@ msgstr "Vous ne pouvez pas attribuer des rôles aux utilisateurs sur ce site." msgid "User already has this role." msgstr "L’utilisateur a déjà ce rôle." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Aucun profil n’a été spécifié." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Aucun profil ne correspond à cet identifiant." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Aucun groupe n’a été spécifié." @@ -1778,7 +2570,7 @@ msgstr "Cet utilisateur est déjà bloqué pour le groupe." msgid "User is not a member of group." msgstr "L’utilisateur n’est pas membre du groupe." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloquer cet utilisateur du groupe" @@ -1828,8 +2620,10 @@ msgstr "" "Personnalisez l’apparence de votre groupe avec une image d’arrière plan et " "une palette de couleurs de votre choix" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Impossible de mettre à jour votre conception." @@ -1849,6 +2643,14 @@ msgstr "" "Vous pouvez choisir un logo pour votre groupe. La taille maximale du fichier " "est de %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Transfert" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Recadrer" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Sélectionnez une zone de forme carrée sur l’image qui sera le logo." @@ -1861,49 +2663,56 @@ msgstr "Logo mis à jour." msgid "Failed updating logo." msgstr "La mise à jour du logo a échoué." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membres du groupe %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membres du groupe %1$s - page %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Liste des utilisateurs inscrits à ce groupe." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrer" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloquer" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bloquer cet utilisateur" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Faire de cet utilisateur un administrateur du groupe" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Faire un administrateur" +msgstr "Rendre administrateur" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Faire de cet utilisateur un administrateur" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Activité de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1977,15 +2786,18 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%action.register%%) et [créer le groupe](%" "%action.newgroup%%) vous-même !" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Seul un administrateur peut débloquer les membres du groupes." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Cet utilisateur n’est pas bloqué du groupe." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erreur lors de l’annulation du blocage." @@ -2036,7 +2848,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2047,66 +2862,66 @@ msgstr "" "GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Préférences de messagerie instantanée" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Envoyez-moi les avis par Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" "Poster un avis chaque fois que mon statut est modifié dans Jabber/GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Envoyez-moi par Jabber/GTalk les réponses des personnes auxquelles je ne " "suis pas abonné." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publier un MicroID pour mon adresse Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Préférences enregistrées" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Aucun identifiant Jabber" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Impossible d’utiliser cet identifiant Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Identifiant Jabber invalide." #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Vous utilisez déjà cet idenfiant Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Identifiant Jabber déjà utilisé par un autre utilisateur." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2116,28 +2931,28 @@ msgstr "" "instantanée. Vous devez approuver %s pour recevoir des messages." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Cette adresse de messagerie instantanée est erronée." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Impossible de supprimer la confirmation de messagerie instantanée." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Confirmation de messagerie instantanée annulée." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Ceci n’est pas votre identifiant Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "L’adresse de messagerie instantanée a été supprimée." @@ -2157,50 +2972,80 @@ msgstr "" "Cette boîte de réception regroupe les messages personnels qui vous sont " "envoyés." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Les invitations ont été désactivées." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Vous devez ouvrir une session pour inviter d’autres utilisateurs dans %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Adresse courriel invalide : %s" +msgid "Invalid email address: %s." +msgstr "Adresse courriel invalide : %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Invitation(s) envoyée(s)" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Invitations envoyées" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Inviter de nouveaux utilisateurs" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Vous êtes déjà abonné à ces utilisateurs :" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Vous êtes déjà abonné à cet utilisateur :" +msgstr[1] "Vous êtes déjà abonné à ces utilisateurs :" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Vous avez été automatiquement abonné aux utilisateurs suivants :" +msgstr[0] "" +"La personne suivante est déjà un utilisateur et vous y avez été " +"automatiquement abonné :" +msgstr[1] "" +"Les personnes suivantes sont déjà des utilisateurs et vous y avez été " +"automatiquement abonné :" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitation(s) envoyée(s) aux personnes suivantes :" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitation envoyée à la personne suivante :" +msgstr[1] "Invitations envoyées aux personnes suivantes :" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2209,43 +3054,54 @@ msgstr "" "invitation et se seront inscrits sur le site. Merci de faire grandir notre " "communauté !" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Remplissez ce formulaire pour inviter vos amis et collègues à utiliser ce " "service." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Adresses courriel" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresses d’amis à inviter (un par ligne)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Message personnel" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Ajouter un message personnel à l’invitation (optionnel)." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Envoyer" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s vous invite à vous inscrire sur %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2308,13 +3164,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Vous devez ouvrir une session pour rejoindre un groupe." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Aucun pseudo ou ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s a rejoint le groupe %2$s" @@ -2323,17 +3173,122 @@ msgstr "%1$s a rejoint le groupe %2$s" msgid "You must be logged in to leave a group." msgstr "Vous devez ouvrir une session pour quitter un groupe." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Vous n’êtes pas membre de ce groupe." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s a quitté le groupe %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licence" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licence de ce site StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Sélection de licence invalide." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Vous devez spécifier le propriétaire du contenu lorsque vous utilisez la " +"licence « Tous droits réservés »." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Titre de licence invalide. La taille maximale est de 255 caractères." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "URL de licence invalide." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "URL d’image de licence invalide." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "L’URL de la licence doit être vide ou valide." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "L’URL de l’image de la la licence doit être vide ou valide." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Sélection d’une licence" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privé" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Tous droits réservés" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Type" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Sélectionner une licence" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Détails de la licence" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Propriétaire" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nom du propriétaire du contenu du site (si applicable)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Titre de la licence" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Le titre de la licence." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL de la licence" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL où obtenir plus d'informations sur la licence." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL de l’image de la licence" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL d’une image à afficher avec la licence." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Enregistrer les paramètres de licence" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Déjà connecté." @@ -2356,11 +3311,11 @@ msgstr "Ouvrir une session" msgid "Login to site" msgstr "Ouverture de session" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Se souvenir de moi" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Ouvrir automatiquement ma session à l’avenir (déconseillé pour les " @@ -2416,67 +3371,77 @@ msgstr "Impossible de rendre %1$s administrateur du groupe %2$s." msgid "No current status." msgstr "Aucun statut actuel." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nouvelle application" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Vous devez être connecté pour enregistrer une application." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Utilisez ce formulaire pour inscrire une nouvelle application." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "L’URL source est requise." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Impossible de créer l’application." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nouveau groupe" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Remplissez les champs ci-dessous pour créer un nouveau groupe :" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nouveau message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Vous ne pouvez pas envoyer de messages à cet utilisateur." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Aucun contenu !" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Aucun destinataire n’a été spécifié." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "N’envoyez pas de message à vous-même ; dites-le plutôt dans votre tête..." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Message envoyé" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Message direct envoyé à %s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Erreur Ajax" @@ -2484,7 +3449,7 @@ msgstr "Erreur Ajax" msgid "New notice" msgstr "Nouvel avis" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Avis publié" @@ -2537,7 +3502,8 @@ msgstr "mises à jour correspondant au(x) terme(s) « %1$s » sur %2$s !" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Cet utilisateur n’accepte pas les clins d’œil ou n’a pas encore validé son " "adresse électronique." @@ -2550,75 +3516,102 @@ msgstr "Clin d’œil envoyé" msgid "Nudge sent!" msgstr "Clin d’œil envoyé !" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Vous devez être connecté pour lister vos applications." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Applications OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Applications que vous avez enregistré" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Vous n’avez encore enregistré aucune application." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Applications connectées." +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -"Vous avez autorisé les applications suivantes à accéder à votre compte." +"Vous avez autorisé les applications suivantes à se connecter à votre compte." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Vous n’êtes pas un utilisateur de cette application." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." -msgstr "Impossible d’annuler l’accès de l’application %s." +msgid "Unable to revoke access for application: %s." +msgstr "Impossible de révoquer l’accès par l’application : %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Vous avez avec succès révoqué l’accès par l’application %1$s, ainsi que le " +"jeton personnel d’accès commençant par %2$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Vous n’avez autorisé aucune application à utiliser votre compte." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Les programmeurs peuvent modifier les paramètres d’enregistrement pour leurs " -"applications " +"Êtes-vous un développeur ? [Inscrivez une application cliente OAuth](%s) à " +"utiliser avec cette instance de StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "L’avis n’a pas de profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Statut de %1$s sur %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Type de contenu %s non supporté." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Veuillez n'utiliser que des URL HTTP complètes en %s." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -2630,36 +3623,45 @@ msgstr "Recherche de personnes" msgid "Notice Search" msgstr "Recherche d’avis" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Autres paramètres" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Autres options à configurer" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (service gratuit)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Raccourcir les URL avec" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Sélectionnez un service de réduction d’URL." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Afficher les conceptions de profils" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Afficher ou masquer les paramètres de conception." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Le service de réduction d’URL est trop long (50 caractères maximum)." #: actions/otp.php:69 @@ -2699,7 +3701,7 @@ msgstr "" #: actions/passwordsettings.php:58 msgid "Change password" -msgstr "Modifier le mot de passe" +msgstr "Changer de mot de passe" #: actions/passwordsettings.php:69 msgid "Change your password." @@ -2722,7 +3724,7 @@ msgid "6 or more characters" msgstr "6 caractères ou plus" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmer" @@ -2734,11 +3736,11 @@ msgstr "Identique au mot de passe ci-dessus" msgid "Change" msgstr "Modifier" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Votre mot de passe doit contenir au moins 6 caractères." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Les mots de passe ne correspondent pas." @@ -2758,156 +3760,273 @@ msgstr "Impossible de sauvegarder le nouveau mot de passe." msgid "Password saved." msgstr "Mot de passe enregistré." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Chemins" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Paramètres de chemin et serveur pour ce site StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Paramètres de chemin et serveur pour ce site StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Dossier des thème non lisible : %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Dossier des avatars non inscriptible : %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Dossier des arrière plans non inscriptible : %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Dossier des paramètres régionaux non lisible : %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Serveur SSL invalide. La longueur maximale est de 255 caractères." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Site" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Serveur" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nom d’hôte du serveur du site." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Chemin" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Chemin du site" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Chemin du site." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Chemin vers les paramètres régionaux" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Dossier des données de localisation" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Chemin de dossier vers les paramètres régionaux" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Chemin du dossier vers les paramètres régionaux." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Jolies URL" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Utiliser des jolies URL (plus lisibles et faciles à mémoriser) ?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Thème" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Serveur de thèmes" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Serveur pour les thèmes." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Chemin des thèmes" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Chemin d'accès Internet aux thèmes." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Dossier des thèmes" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatars" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Serveur d’avatar" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Chemin des avatars" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Dossier des avatars" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Arrière plans" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Serveur des arrière plans" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Chemin des arrière plans" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Dossier des arrière plans" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Jamais" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Quelquefois" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Toujours" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Utiliser SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quand utiliser SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Serveur SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Serveur vers lequel rediriger les requêtes SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "Serveur SSL pour les thèmes (par défaut : serveur SSL)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Chemin d’accès SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "Chemin d’accès SSL aux thèmes (par défaut : /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Répertoire" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Chemin du répertoire où les thèmes sont stockés." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatars" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Serveur d’avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Serveur pour les avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Chemin des avatars" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Chemin d’accès Internet vers les avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Dossier des avatars" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Le répertoire où les avatars sont stockés." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Arrière plans" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Serveur pour les fonds d’écran." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Chemin d’accès Internet vers les fonds d’écran." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Serveur pour les fonds d’écran sur les pages SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Chemin d’accès Internet vers les fonds d’écran sur les pages SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Le répertoire où les fonds d’écran sont stockés." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Pièces jointes" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Serveur pour les pièces jointes." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Chemin d’accès Internet vers les pièces jointes." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Serveur pour les pièces jointes sur les pages SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Chemin d’accès Internet vers les pièces jointes sur les pages SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Le répertoire où les pièces jointes sont stockées." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Jamais" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Quelquefois" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Toujours" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Utiliser SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Quand utiliser SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Serveur vers lequel diriger les requêtes SSL." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Enregistrer les chemins." @@ -2946,141 +4065,184 @@ msgstr "" "La licence des avis « %1$s » n’est pas compatible avec la licence du site « %2" "$s »." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Paramètres du profil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Vous pouvez mettre à jour les informations de votre profil pour qu’on en " "sache plus à votre sujet." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Information de profil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nom complet" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Site personnel" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "Adresse de votre site Web, blogue, ou profil dans un autre site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "" +"Adresse URL de votre page personnelle, blogue ou profil sur un autre site." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Décrivez vous et vos intérêts en %d caractères" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Décrivez-vous avec vos intérêts en %d caractère" +msgstr[1] "Décrivez-vous avec vos intérêts en %d caractères" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Décrivez vous et vos interêts" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Bio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Emplacement" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Partager ma localisation lorsque je poste des avis" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" -msgstr "Marques" +msgstr "Balises" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Langue" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Langue préférée" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuseau horaire" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Quel est votre fuseau horaire habituel ?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "La bio est trop longue (%d caractères maximum)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "La biographie est trop longue (limitée à %d caractère maximum)." +msgstr[1] "La biographie est trop longue (limitée à %d caractères maximum)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Aucun fuseau horaire n’a été choisi." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "La langue est trop longue (255 caractères maximum)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "La langue est trop longue (limitée à 50 caractères maximum)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Marque invalide : « %s »" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Impossible de mettre à jour l’auto-abonnement." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Impossible d’enregistrer les préférences de localisation." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Impossible d’enregistrer le profil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Impossible d’enregistrer les marques." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Préférences enregistrées." @@ -3143,7 +4305,7 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -"Vous êtes sur %%site.name%% un service de [microblog] (http://fr.wikipedia." +"Vous êtes sur %%site.name%% un service de [microblog](http://fr.wikipedia." "org/wiki/Microblog) basé sur le logiciel libre [StatusNet](http://status." "net/). [Inscrivez-vous](%%action.register%%) pour partager des messages sur " "vous avec vos amis, famille et collègues ! ([Plus d’informations](%%doc.help%" @@ -3159,26 +4321,39 @@ msgstr "" "%%site.name%% est un service de [micro-blogging](http://fr.wikipedia.org/" "wiki/Microblog) basé sur le logiciel libre [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Nuage de marques public" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Dernières marques les plus populaires sur %s " +msgid "These are most popular recent tags on %s" +msgstr "Ces étiquettes récentes sont les plus populaires sur %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "Personne n’a encore posté d’avis avec une [marque (hashtag)](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Soyez le premier à en poster une !" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3187,7 +4362,7 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%action.register%%) et être le premier à " "en poster un !" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Nuage de marques" @@ -3303,14 +4478,14 @@ msgid "Unexpected password reset." msgstr "Réinitialisation inattendue du mot de passe." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Le mot de passe doit contenir au moins 6 caractères." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Le mot de passe et sa confirmation ne correspondent pas." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Erreur lors de la configuration de l’utilisateur." @@ -3319,7 +4494,7 @@ msgid "New password successfully saved. You are now logged in." msgstr "" "Nouveau mot de passe créé avec succès. Votre session est maintenant ouverte." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Désolé ! Seules les personnes invitées peuvent s’inscrire." @@ -3331,27 +4506,27 @@ msgstr "Désolé, code d’invitation invalide." msgid "Registration successful" msgstr "Compte créé avec succès" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Créer un compte" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "Création de compte non autorisée." +msgstr "Inscription non autorisée." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." -msgstr "Vous devez accepter les termes de la licence pour créer un compte." +msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Cette adresse courriel est déjà utilisée." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Identifiant ou mot de passe incorrect." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3359,36 +4534,41 @@ msgstr "" "Avec ce formulaire vous pouvez créer un nouveau compte. Vous pourrez ensuite " "poster des avis and et vous relier à des amis et collègues. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces. Requis." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 caractères ou plus. Requis." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Identique au mot de passe ci-dessus. Requis." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Courriel" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Utilisé uniquement pour les mises à jour, les notifications, et la " "récupération de mot de passe" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nom plus long, votre \"vrai\" nom de préférence" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" +"Adresse URL de votre page personnelle, blogue ou profil sur un autre site" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." @@ -3396,23 +4576,23 @@ msgstr "" "Je comprends que le contenu et les données de %1$s sont privés et " "confidentiels." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Mon texte et les fichiers sont protégés par copyright par %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Mon texte et les fichiers restent sous mon propre droit d'auteur." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Tous droits réservés." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3422,7 +4602,7 @@ msgstr "" "données personnelles : mot de passe, adresse électronique, adresse de " "messagerie instantanée, numéro de téléphone." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3456,7 +4636,7 @@ msgstr "" "Merci pour votre inscription ! Nous vous souhaitons d’apprécier notre " "service." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3501,7 +4681,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de votre profil sur un autre service de micro-blogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "S’abonner" @@ -3538,7 +4718,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:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repris" @@ -3547,7 +4727,7 @@ msgid "Repeated!" msgstr "Repris !" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Réponses à %s" @@ -3629,13 +4809,13 @@ msgstr "L’utilisateur est déjà dans le bac à sable." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Paramètres de session pour ce site StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Paramètres de session pour ce site StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3654,7 +4834,6 @@ msgid "Turn on debugging output for sessions." msgstr "Activer la sortie de déboguage pour les sessions." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sauvegarder les paramètres du site" @@ -3667,28 +4846,29 @@ msgid "Application profile" msgstr "Profil de l’application" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icône" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nom" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisation" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiques" @@ -3706,6 +4886,11 @@ msgstr "Actions de l’application" msgid "Reset key & secret" msgstr "Réinitialiser la clé et le secret" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Supprimer" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informations sur l’application" @@ -3799,77 +4984,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "C’est un moyen de partager ce que vous aimez." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Groupe %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Groupe %1$s, page %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Profil du groupe" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Note" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Actions du groupe" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fil des avis du groupe %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fil des avis du groupe %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fil des avis du groupe %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "ami d’un ami pour le groupe %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(aucun)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Tous les membres" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Créé" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Membres" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3885,7 +5097,10 @@ msgstr "" "action.register%%%%) pour devenir membre de ce groupe et bien plus ! ([En " "lire plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3898,26 +5113,33 @@ msgstr "" "logiciel libre [StatusNet](http://status.net/). Ses membres partagent des " "messages courts à propos de leur vie et leurs intérêts. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administrateurs" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Message introuvable." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" "Ce message personnel ne peut être lu que par son expéditeur et son " "destinataire." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Message adressé à %1$s le %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Message reçu de %1$s le %2$s" @@ -3926,48 +5148,68 @@ msgstr "Message reçu de %1$s le %2$s" msgid "Notice deleted." msgstr "Avis supprimé." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " marqué %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s a marqué « %2$s »" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s a marqué « %2$s » la page %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, page %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Fil des avis pour %1$s marqués %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Flux des avis de %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Flux des avis de %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Flux des avis de %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "ami d’un ami pour %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Ceci est la chronologie de %1$s mais %2$s n’a rien publié pour le moment." +"Ceci est la chronologie de %1$s mais %1$s n’a rien publié pour le moment." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3975,7 +5217,9 @@ msgstr "" "Avez-vous vu quelque chose d’intéressant récemment ? Vous n’avez pas publié " "d’avis pour le moment, vous pourriez commencer maintenant :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3984,7 +5228,9 @@ msgstr "" "Vous pouvez essayer de faire un clin d’œil à %1$s ou de [poster quelque " "chose à son intention](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3998,7 +5244,9 @@ msgstr "" "register%%%%) pour suivre les avis de **%s** et bien plus ! ([En lire plus](%" "%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4009,7 +5257,8 @@ msgstr "" "wikipedia.org/wiki/Microblog) basé sur le logiciel libre [StatusNet](http://" "status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Reprises de %s" @@ -4123,32 +5372,42 @@ msgstr "" "Combien de temps (en secondes) les utilisateurs doivent attendre pour poster " "la même chose de nouveau." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Avis du site" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Modifier un message portant sur tout le site" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Impossible d'enregistrer l'avis du site." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "La longueur maximale pour l'avis du site est de 255 caractères." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "" +"La longueur maximale pour l’avis publié sur l’ensemble du site est de 255 " +"caractères." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Texte de l'avis du site" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -"Texte de l'avis portant sur tout le site (max. 255 caractères ; HTML activé)" +"Texte de l’avis publié sur l’ensemble du site (maximum 255 caractères ; HTML " +"autorisé)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Enregistrer l'avis du site" @@ -4312,7 +5571,7 @@ msgstr "Aucun code entré" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Instantanés" @@ -4368,12 +5627,14 @@ msgstr "Les instantanés seront envoyés à cette URL" msgid "Save snapshot settings" msgstr "Sauvegarder les paramètres des instantanés" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Vous n’êtes pas abonné(e) à ce profil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Impossible d’enregistrer l’abonnement." @@ -4381,10 +5642,6 @@ msgstr "Impossible d’enregistrer l’abonnement." msgid "This action only accepts POST requests." msgstr "Cette action n'accepte que les requêtes de type POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Profil non-trouvé." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4395,39 +5652,55 @@ msgstr "" msgid "Subscribed" msgstr "Abonné" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Abonnés à %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Abonnés à %1$s - page %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Ces personnes suivent vos avis." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Ces personnes suivent les avis de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Vous n’avez pas d’abonnés. Essayez de vous abonner à des gens que vous " -"connaissez et ils pourraient vous retourner la faveur." +"connaissez et ils pourraient vous rendre la faveur." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s n’a pas d’abonnés. Voulez-vous être le premier ?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4436,26 +5709,31 @@ msgstr "" "%s n’a pas d’abonnés. Vous pourriez [créer un compte](%%%%action.register%%%" "%) et être le premier ?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Abonnements de %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Abonnements de %1$s - page %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Vous suivez les avis de ces personnes." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Les avis de ces personnes sont suivis par %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4471,16 +5749,27 @@ msgstr "" "êtes un [utilisateur de Twitter](%%action.twittersettings%%), vous pouvez " "vous abonner automatiquement aux gens auquels vous êtes déjà abonné là-bas." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s ne suit actuellement personne." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Flux des avis de %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4518,7 +5807,7 @@ msgid "User profile" msgstr "Profil de l’utilisateur" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Photo" @@ -4583,76 +5872,96 @@ msgstr "" "avec la licence du site « %2$s »." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Utilisateur" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Paramètres des utilisateurs pour ce site StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Paramètres des utilisateurs pour ce site StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Limite de bio invalide : doit être numérique." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Texte de bienvenue invalide. La taille maximale est de 255 caractères." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Abonnement par défaut invalide : « %1$s » n’est pas un utilisateur." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Limite de bio" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Longueur maximale de la bio d’un profil en caractères." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nouveaux utilisateurs" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Accueil des nouveaux utilisateurs" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "" "Texte de bienvenue pour les nouveaux utilisateurs (maximum 255 caractères)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Abonnements par défaut" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Abonner automatiquement les nouveaux utilisateurs à cet utilisateur." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitations" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Invitations activées" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" "S’il faut autoriser les utilisateurs à inviter de nouveaux utilisateurs." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Sauvegarder les paramètres utilisateur" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autoriser l’abonnement" @@ -4667,7 +5976,9 @@ msgstr "" "abonner aux avis de cet utilisateur. Si vous n’avez pas demandé à vous " "abonner aux avis de quelqu’un, cliquez « Rejeter »." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licence" @@ -4756,11 +6067,13 @@ msgstr "Impossible de lire l’URL de l’avatar « %s »." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Format d’image invalide pour l’URL de l’avatar « %s »." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Conception de profil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4800,7 +6113,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Statuts de %1$s dans %2$s!" @@ -4861,7 +6174,7 @@ msgid "Plugins" msgstr "Extensions" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Version" @@ -4869,62 +6182,115 @@ msgstr "Version" msgid "Author(s)" msgstr "Auteur(s)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Ajouter à mes favoris" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s a marqué l’avis %2$s comme favori." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Impossible de traiter l’URL « %s »" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin pense que quelque chose est impossible." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Un fichier ne peut pas peser plus de %1$d octets et le fichier que vous avez " -"envoyé pesait %2$d octets. Essayez d’importer une version moins lourde." +msgstr[0] "" +"Un fichier ne peut pas occuper plus de %1$d octet et le fichier que vous " +"avez envoyé occupait %2$d octets. Essayez de téléverser une version moins " +"lourde." +msgstr[1] "" +"Un fichier ne peut pas occuper plus de %1$d octets et le fichier que vous " +"avez envoyé occupait %2$d octets. Essayez de téléverser une version moins " +"lourde." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Un fichier aussi gros dépasserai votre quota utilisateur de %d octets." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Un fichier aussi gros dépasserait votre quota utilisateur de %d octet." +msgstr[1] "" +"Un fichier aussi gros dépasserait votre quota utilisateur de %d octets." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Un fichier aussi gros dépasserai votre quota mensuel de %d octets." +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Un fichier aussi gros dépasserait votre quota mensuel de %d octet." +msgstr[1] "Un fichier aussi gros dépasserait votre quota mensuel de %d octets." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nom de fichier non valide." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "L’inscription au groupe a échoué." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "N’appartient pas au groupe." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "La désinscription du groupe a échoué." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "L’identifiant de profil « %s » est invalide." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "L’identifiant de groupe %s est invalide." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Rejoindre" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s a rejoint le groupe %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4943,17 +6309,17 @@ msgid "No database name or DSN found anywhere." msgstr "Aucun nom de base de données ou DSN trouvé nulle part." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Il vous est interdit d’envoyer des messages directs." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Impossible d’insérer le message." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Impossible de mettre à jour le message avec un nouvel URI." @@ -4965,23 +6331,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Impossible de trouver le profil (%1$d) pour l’avis (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Erreur de base de donnée en insérant la marque (hashtag) : %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problème lors de l’enregistrement de l’avis ; trop long." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Erreur lors de l’enregistrement de l’avis. Utilisateur inconnu." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4989,7 +6355,7 @@ msgstr "" "minutes." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4998,36 +6364,50 @@ msgstr "" "dans quelques minutes." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Il vous est interdit de poster des avis sur ce site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "Le type renseigné pour saveKnownGroups n’est pas valable" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "Le type renseigné pour la méthode saveKnownGroups() est incorrect." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Impossible d’enregistrer la réponse à %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -5036,7 +6416,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5049,301 +6429,343 @@ msgid "Missing profile." msgstr "Profil manquant." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Impossible d’enregistrer l’étiquette." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Il vous a été interdit de vous abonner." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Déjà abonné !" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Cet utilisateur vous a bloqué." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Pas abonné !" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Impossible de supprimer l’abonnement à soi-même." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Impossible de supprimer le jeton OMB de l'abonnement." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Impossible de supprimer l’abonnement" +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Suivre" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s suit à présent %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Aucun utilisateur unique défini pour le mode mono-utilisateur." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Code en mode mono-utilisateur appelé quand ce n’est pas autorisé." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Impossible de créer le groupe." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Impossible de définir l'URI du groupe." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Impossible d’établir l’inscription au groupe." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Impossible d’enregistrer les informations du groupe local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Modifier vos paramètres de profil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Ajouter un avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Modifier votre mot de passe" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Modifier le traitement des courriels" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Concevez votre profil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Autres options" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" -msgstr "Autres " +msgstr "Autres" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Page sans nom" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Voir davantage" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navigation primaire du site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil personnel et flux des amis" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personnel" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifier votre adresse électronique, avatar, mot de passe, profil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Compte" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Se connecter aux services" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" -msgstr "Connecter" +msgstr "Connexion" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifier la configuration du site" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrer" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter des amis et collègues à vous rejoindre sur %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Inviter" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Fermer la session" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Déconnexion" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Créer un compte" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" -msgstr "S'inscrire" +msgstr "S’inscrire" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ouvrir une session" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Connexion" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "À l’aide !" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Aide" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Rechercher des personnes ou du texte" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Rechercher" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Notice du site" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vues locales" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Avis de la page" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navigation secondaire du site" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Aide" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "À propos" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "CGU" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Confidentialité" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Source" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contact" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insigne" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licence du logiciel StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5353,13 +6775,16 @@ msgstr "" "%site.broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** est un service de micro-blogging." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5367,24 +6792,24 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" "Il utilise le logiciel de micro-blogging [StatusNet](http://status.net/), " -"version %s, disponible sous la licence [GNU Affero General Public License] " +"version %s, disponible sous la licence [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licence du contenu du site" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contenu et les données de %1$s sont privés et confidentiels." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5392,329 +6817,438 @@ msgstr "" "réservés." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur du contributeur. Tous " "droits réservés." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" "Tous les contenus %1$s et les données sont disponibles sous la licence %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Pagination" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Après" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Avant" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Attendait un élément racine mais a reçu tout un document XML." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Photo" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Impossible de gérer le contenu distant pour le moment." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Impossible de gérer le contenu XML embarqué pour le moment." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Impossible de gérer le contenu en Base64 embarqué pour le moment." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Vous ne pouvez pas faire de modifications sur ce site." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "La modification de ce panneau n’est pas autorisée." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() n’a pas été implémentée." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() n’a pas été implémentée." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Impossible de supprimer les paramètres de conception." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuration basique du site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuration de la conception" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Conception" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuration utilisateur" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Utilisateur" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuration d’accès" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuration des chemins" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuration des sessions" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Modifier l'avis du site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuration des instantanés" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Définir la licence du site" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "La ressource de l’API a besoin de l’accès en lecture et en écriture, mais " "vous n’y avez accès qu’en lecture." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Modifier votre application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Aucune demande trouvée pour cette clé de consommateur." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Jeton d’accès erroné." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Aucun utilisateur associé à ce jeton." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Impossible de vous authentifier." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Impossible de créer un consommateur anonyme." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Impossible de créer l’application OAuth anonyme." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" +"Impossible de trouver le profil et l’application associés au jeton de " +"requête." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Impossible d’émettre le jeton d’accès." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Erreur de base de donnée en insérant l’utilisateur de l’application OAuth" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Révocation essayée d’un jeton inconnu." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Impossible de supprimer un jeton révoqué." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icône pour cette application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Décrivez votre application en %d caractères" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Décrivez votre application en %d caractère" +msgstr[1] "Décrivez votre application en %d caractères" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Décrivez votre application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL de la page d’accueil de cette application" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL source" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organisation responsable de cette application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL de la page d’accueil de l’organisation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL vers laquelle rediriger après l’authentification" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navigateur" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Bureau" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Type d’application, navigateur ou bureau" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Lecture seule" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lecture-écriture" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Accès par défaut pour cette application : en lecture seule ou en lecture-" "écriture" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Annuler" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " par " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lecture-écriture" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "lecture seule" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Accès « %2$s » approuvé le %1$s." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Jeton d’accès qui commence par : %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Révoquer" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Pièces jointes" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "l’élément « author » doit contenir un élément « name »." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Auteur" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Fournisseur" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Avis sur lesquels cette pièce jointe apparaît." +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Marques de cette pièce jointe" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "La modification du mot de passe a échoué" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "La modification du mot de passe a échoué." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "La modification du mot de passe n’est pas autorisée" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "La modification du mot de passe n’est pas autorisée." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloquer" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Résultats de la commande" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Erreur AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Commande complétée" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Échec de la commande" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Aucun avis avec cet identifiant n’existe" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Aucun avis avec cet identifiant n’existe." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Aucun avis récent pour cet utilisateur" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Aucun avis récent pour cet utilisateur." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Impossible de trouver un utilisateur avec le pseudo %s" +msgid "Could not find a user with nickname %s." +msgstr "Impossible de trouver un utilisateur avec le pseudo %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Impossible de trouver un utilisateur local portant le pseudo %s" +msgid "Could not find a local user with nickname %s." +msgstr "Impossible de trouver un utilisateur local portant le pseudo %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Désolé, cette commande n’a pas encore été implémentée." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Ça n’a pas de sens de se faire un clin d’œil à soi-même !" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Clin d’œil envoyé à %s" +msgid "Nudge sent to %s." +msgstr "Clin d’œil envoyé à %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5725,55 +7259,64 @@ msgstr "" "Abonnés : %2$s\n" "Messages : %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Avis ajouté aux favoris." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Vous êtes déjà membre de ce groupe" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Impossible d’inscrire l’utilisateur %1$s au groupe %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s a rejoint le groupe %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Impossible de retirer l’utilisateur %1$s du groupe %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s a quitté le groupe %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nom complet : %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Emplacement : %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Site Web : %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "À propos : %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5782,150 +7325,185 @@ msgstr "" "%s est un profil distant ; vous ne pouvez envoyer de messages directs qu'aux " "utilisateurs du même serveur." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Message trop long ! La taille maximale est de %1$d caractère ; vous en avez " +"entré %2$d." +msgstr[1] "" "Message trop long ! La taille maximale est de %1$d caractères ; vous en avez " "entré %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Message direct envoyé à %s." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Une erreur est survenue pendant l’envoi de votre message." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Impossible de reprendre votre propre avis" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Avis déjà repris" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Avis de %s repris" +msgid "Notice from %s repeated." +msgstr "Avis de %s repris." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Erreur lors de la reprise de l’avis." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" -"Avis trop long ! La taille maximale est de %d caractères ; vous en avez " -"entré %d." +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Avis trop long — La taille maximale est de %1$d caractère ; vous en avez " +"entré %2$d." +msgstr[1] "" +"Avis trop long — La taille maximale est de %1$d caractères ; vous en avez " +"entré %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Réponse à %s envoyée" +msgid "Reply to %s sent." +msgstr "Réponse à %s envoyée." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Indiquez le nom de l’utilisateur auquel vous souhaitez vous abonner" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Indiquez le nom de l’utilisateur auquel vous souhaitez vous abonner." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Impossible de s'inscrire aux profils OMB par cette commande." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Abonné à %s" +msgid "Subscribed to %s." +msgstr "Abonné à %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Indiquez le nom de l’utilisateur duquel vous souhaitez vous désabonner" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "" +"Indiquez le nom de l’utilisateur duquel vous souhaitez vous désabonner." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Désabonné de %s" +msgid "Unsubscribed from %s." +msgstr "Désabonné de %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Cette commande n’a pas encore été implémentée." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Avertissements désactivés." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Impossible de désactiver les avertissements." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Avertissements activés." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Impossible d’activer les avertissements." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "La commande d’ouverture de session est désactivée" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "La commande d’ouverture de session est désactivée." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" "Ce lien n’est utilisable qu’une seule fois, et est valable uniquement " -"pendant 2 minutes : %s" +"pendant 2 minutes : %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Désabonné de %s" +msgid "Unsubscribed %s." +msgstr "Désabonné de %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Vous n’êtes abonné(e) à personne." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Vous êtes abonné à cette personne :" msgstr[1] "Vous êtes abonné à ces personnes :" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Personne ne s’est abonné à vous." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Cette personne est abonnée à vous :" msgstr[1] "Ces personnes sont abonnées à vous :" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Vous n’êtes membre d’aucun groupe." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Vous êtes membre de ce groupe :" msgstr[1] "Vous êtes membre de ces groupes :" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -6006,51 +7584,73 @@ msgstr "" "tracks - pas encore implémenté.\n" "tracking - pas encore implémenté.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Aucun fichier de configuration n’a été trouvé. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Aucun fichier de configuration n’a été trouvé." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -"J’ai cherché des fichiers de configuration dans les emplacements suivants : " +"Les fichiers de configuration ont été cherchés aux emplacements suivants :" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Vous pouvez essayer de lancer l’installeur pour régler ce problème." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Aller au programme d’installation" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Suivi des avis par messagerie instantanée" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Suivi des avis par SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Connexions" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Applications autorisées connectées" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Erreur de la base de données" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Importer un fichier" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6058,41 +7658,57 @@ msgstr "" "Vous pouvez importer votre image d’arrière plan personnelle. La taille " "maximale du fichier est de 2 Mo." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Activé" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Désactivé" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Réinitialiser" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Les paramètre par défaut de la conception ont été restaurés." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Retirer des favoris" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Ajouter aux favoris" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Ajouter à mes favoris" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Ami d’un ami" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exporter les données" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Flux d’informations" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6123,9 +7739,13 @@ msgstr "Aller" msgid "Grant this user the \"%s\" role" msgstr "Accorder le rôle « %s » à cet utilisateur" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL du site Web ou blogue du groupe ou sujet " +msgid "URL of the homepage or blog of the group or topic." +msgstr "Adresse URL du site web ou blogue pour le groupe ou sujet." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6133,64 +7753,118 @@ msgstr "Description du groupe ou du sujet" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Description du groupe ou du sujet en %d caractères" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Description du groupe ou du sujet, en %d caractère ou moins" +msgstr[1] "Description du groupe ou du sujet, en %d caractères ou moins" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -"Emplacement du groupe, s’il y a lieu, de la forme « Ville, État ou région, " -"Pays »" +"Emplacement du groupe, s’il y a lieu, de la forme « Ville, État (ou région), " +"pays »" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" -"Pseudos supplémentaires pour le groupe, séparés par des virgules ou des " -"espaces, %d au maximum" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Pseudonymes supplémentaires pour le groupe, séparés par des virgules ou des " +"espaces. Un maximum de %d synonyme est autorisé." +msgstr[1] "" +"Pseudonymes supplémentaires pour le groupe, séparés par des virgules ou des " +"espaces. Un maximum de %d synonymes est autorisé." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Groupe" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Groupe « %s »" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membres" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membres du groupe « %s »" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Bloqué" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s utilisateurs bloqués" +msgstr "Utilisateurs bloqués du groupe « %s »" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Modifier les propriétés du groupe %s" +msgstr "Modifier les propriétés du groupe « %s »" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Ajouter ou modifier le logo de %s" +msgstr "Ajouter ou modifier le logo du groupe « %s »" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Ajouter ou modifier la conception de %s" +msgstr "Ajouter ou modifier l’apparence du groupe « %s »" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Groupes avec le plus de membres" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Groupes avec le plus d’éléments publiés" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Marques dans les avis du groupe %s" @@ -6205,38 +7879,57 @@ msgstr "" msgid "Unsupported image file format." msgstr "Format de fichier d’image non supporté." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ce fichier est trop grand. La taille maximale est %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Transfert partiel." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Erreur système lors du transfert du fichier." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ceci n’est pas une image, ou c’est un fichier corrompu." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Fichier perdu." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Type de fichier inconnu" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "Mo" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d Mo" +msgstr[1] "%d Mo" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "Ko" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d Ko" +msgstr[1] "%d Ko" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d o" +msgstr[1] "%d o" #: lib/jabber.php:387 #, php-format @@ -6248,10 +7941,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Source %d inconnue pour la boîte de réception." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Rejoindre" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Quitter" @@ -6264,49 +7953,54 @@ msgstr "Ouvrez une session avec un identifiant et un mot de passe" msgid "Sign up for a new account" msgstr "Créer un nouveau compte" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmation de l’adresse courriel" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Bonjour %s.\n" +"Bonjour %1$s.\n" "\n" -"Quelqu’un vient d’utiliser cette adresse électronique sur %s.\n" +"Quelqu’un vient d’entrer cette adresse de courriel sur %2$s.\n" "\n" -"S’il s’agit bien de vous, et que vous souhaitez confirmer cette adresse, " -"utilisez le lien qui suit :\n" +"S’il s’agit bien de vous et si vous souhaitez confirmer votre entrée, " +"utilisez le lien suivant :\n" "\n" -"%s\n" +"%3$s\n" "\n" "Dans le cas contraire, il vous suffit d’ignorer ce message.\n" "\n" "Merci de votre attention,\n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s suit maintenant vos avis sur %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6316,8 +8010,12 @@ msgstr "" "bloquer de votre liste d'abonnés et le signaler comme spam aux " "administrateurs du site, sur %s." -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6326,36 +8024,41 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -"%1$s suit maintenant vos avis sur %2$s.\n" +"%1$s suit dorénavant vos avis sur %2$s.\n" "\n" "%3$s\n" "\n" "%4$s%5$s%6$s\n" "Cordialement,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Changez votre adresse de courriel ou vos options de notification sur %8$s\n" +"Vous pouvez changer votre adresse de courriel ou vos options de notification " +"sur %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Bio : %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nouvelle adresse courriel pour poster dans %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6365,43 +8068,48 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Une nouvelle adresse vous a été attribuée pour poster vos avis sur %1$s.\n" "\n" -"Écrivez à %2$s pour poster un nouvel avis.\n" +"Adressez vos courriels à %2$s pour poster de nouveaux avis.\n" "\n" -"Plus d’info : %3$s.\n" +"Davantage d’instructions sur les courriels sont sur %3$s.\n" "\n" "Cordialement,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Statut de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmation SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" "%s : confirmez que vous possédez ce numéro de téléphone grâce à ce code :" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Vous avez reçu un clin d’œil de %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6428,14 +8136,18 @@ msgstr "" "Bien à vous,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nouveau message personnel de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6468,14 +8180,19 @@ msgstr "" "Bien à vous,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) a ajouté un de vos avis à ses favoris" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) a ajouté votre avis à ses favoris" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6514,7 +8231,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6525,13 +8242,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) vous a envoyé un avis" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) a envoyé un avis à vote attention" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6594,7 +8318,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:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "de" @@ -6614,22 +8338,25 @@ msgstr "Désolé, ceci n’est pas votre adresse de courriel entrant." msgid "Sorry, no incoming email allowed." msgstr "Désolé, la réception de courriels n’est pas permise." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Type de message non supporté : %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Une erreur de base de données s’est produite pendant la sauvegarde de votre " "fichier. Veuillez réessayer." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Le fichier importé dépasse le réglage upload_max_filesize de php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6637,87 +8364,135 @@ msgstr "" "Le fichier importé dépasse le réglage MAX_FILE_SIZE qui a été précisé dans " "le formulaire HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Le fichier n’a été que partiellement importé." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Un dossier temporaire est manquant." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Impossible d’écrire sur le disque." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Import de fichier stoppé par une extension." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Le fichier dépasse le quota de l’utilisateur." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Le fichier n’a pas pu être déplacé dans le dossier de destination." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Impossible de déterminer le type MIME du fichier." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Essayez d’utiliser un autre %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"Le type de fichier « %1$s » n’est pas pris en charge sur ce serveur. Essayez " +"d’utiliser un autre format %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s n’est pas un type de fichier supporté sur ce serveur." +msgid "\"%s\" is not a supported file type on this server." +msgstr "« %s » n’est pas un type de fichier supporté sur ce serveur." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Envoyer un message direct" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Sélectionner le destinataire :" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Aucun abonné réciproque." + +#: lib/messageform.php:153 msgid "To" msgstr "À" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caractères restants" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Envoyer" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Les pseudos ne peuvent contenir que des caractères minuscules et des " +"chiffres, sans espaces." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Le pseudonyme ne peut pas être vide." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Le pseudonyme ne peut pas contenir plus de %d caractère." +msgstr[1] "Le pseudonyme ne peut pas contenir plus de %d caractères." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Envoyer un avis" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Quoi de neuf, %s ?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Attacher" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" -msgstr "Attacher un fichier" +msgstr "Joindre un fichier" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Partager ma localisation." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Ne pas partager ma localisation" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6726,51 +8501,55 @@ msgstr "" "Veuillez réessayer plus tard." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "chez" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Avis repris" @@ -6786,55 +8565,52 @@ msgstr "Clin d’œil" msgid "Send a nudge to this user" msgstr "Envoyer un clin d’œil à cet utilisateur" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Erreur lors de l’insertion du nouveau profil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Erreur lors de l’insertion du nouveau profil." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Erreur lors de l’insertion de l’avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Erreur lors de l’insertion de l’avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Erreur lors de la mise à jour du profil distant" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Erreur lors de l’insertion du profil distant." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Erreur lors de l’insertion du profil distant" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Avis en doublon." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Dupliquer l’avis" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Impossible d’insérer un nouvel abonnement." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personnel" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Réponses" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoris" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Boîte de réception" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Vos messages reçus" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Boîte d’envoi" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Vos messages envoyés" @@ -6843,7 +8619,8 @@ msgstr "Vos messages envoyés" msgid "Tags in %s's notices" msgstr "Marques dans les avis de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Inconnu" @@ -6925,9 +8702,10 @@ msgstr "Reprendre cet avis" msgid "Revoke the \"%s\" role from this user" msgstr "Révoquer le rôle « %s » de cet utilisateur" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Aucun utilisateur unique défini pour le mode mono-utilisateur." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Page non trouvée." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6937,19 +8715,25 @@ msgstr "Bac à sable" msgid "Sandbox this user" msgstr "Mettre cet utilisateur dans un bac à sable" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Rechercher sur le site" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Mot(s) clef(s)" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Rechercher" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Aide sur la recherche" @@ -7023,6 +8807,11 @@ msgstr "Nuage de marques pour une personne" msgid "None" msgstr "Aucun" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Nom de thème invalide." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -7034,27 +8823,32 @@ msgid "The theme file is missing or the upload failed." msgstr "Le fichier de thème est manquant ou le téléversement a échoué." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "L’enregistrement du thème a échoué." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Thème invalide : mauvaise arborescence." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" -"Le thème importé est trop volumineux. Non compressé, il doit occuper moins " -"de %d octets." +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Le thème téléversé est trop volumineux ; il doit occuper moins de %d octet " +"une fois décompressé." +msgstr[1] "" +"Le thème téléversé est trop volumineux ; il doit occuper moins de %d octets " +"une fois décompressé." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Archive de thème invalide : fichier css/display.css manquant" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7062,12 +8856,18 @@ msgstr "" "Le thème contient un nom de fichier ou de dossier invalide. Limitez-vous aux " "lettres ASCII et aux chiffres, caractère de soulignement et signe moins." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"Ce thème contient un nom d'extension de ficher dangereux; peut être " +"dangereux." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Le thème contient un fichier de type « .%s », qui n'est pas autorisé." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Erreur lors de l’ouverture de l’archive du thème." @@ -7075,6 +8875,12 @@ msgstr "Erreur lors de l’ouverture de l’archive du thème." msgid "Top posters" msgstr "Utilisateurs les plus actifs" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Débloquer" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Sortir du bac à sable" @@ -7099,125 +8905,179 @@ msgstr "Ne plus suivre cet utilisateur" msgid "Unsubscribe" msgstr "Désabonnement" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "L’utilisateur %s (%d) n’a pas de profil." +msgid "User %1$s (%2$d) has no profile record." +msgstr "L’utilisateur %1$s (%2$d) n’a pas de profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Modifier l’avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Actions de l’utilisateur" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Suppression de l'utilisateur en cours..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Modifier les paramètres du profil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Modifier" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Envoyer un message à cet utilisateur" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Message" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Modérer" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rôle de l'utilisateur" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrateur" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Modérateur" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "il y a quelques secondes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "il y a 1 minute" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "il y a %d minutes" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "il y a environ une minute" +msgstr[1] "il y a environ %d minutes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "il y a 1 heure" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "il y a %d heures" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "il y a environ une heure" +msgstr[1] "il y a environ %d heures" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "il y a 1 jour" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "il y a %d jours" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "il y a environ un jour" +msgstr[1] "il y a environ %d jours" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "il y a 1 mois" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "il y a %d mois" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "il y a environ un mois" +msgstr[1] "il y a environ %d mois" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "il y a environ 1 an" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "&s n’est pas une couleur valide !" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" "%s n’est pas une couleur valide ! Utilisez 3 ou 6 caractères hexadécimaux." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" +"Utilisateur inconnu. Aller à %s pour ajouter votre adresse à votre compte." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Message trop long ! La taille maximale est de %1$d caractère ; vous en avez " +"envoyé %2$d." +msgstr[1] "" "Message trop long ! La taille maximale est de %1$d caractères ; vous en avez " -"entré %2$d." +"envoyé %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "XML invalide." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "XML invalide, racine XRD manquante." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Obtention de la sauvegarde depuis le fichier « %s »." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Aucun utilisateur spécifié ; utilisation de l’utilisateur de secours." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d entrée dans la sauvegarde." +msgstr[1] "%d entrées dans la sauvegarde." diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 8d30fb8296..a576a5b953 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -1,96 +1,110 @@ -# Translation of StatusNet to Irish +# Translation of StatusNet - Core to Irish (Gaeilge) +# Expored from translatewiki.net # -# Author@translatewiki.net: McDutchie +# Author: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:29+0000\n" -"Language-Team: Irish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:43+0000\n" +"Language-Team: Irish <http://translatewiki.net/wiki/Portal:ga>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " -"4;\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=5; plural=(n == 1) ? 0 : ( (n == 2) ? 1 : ( (n < 7) ? " +"2 : ( (n < 11) ? 3 : 4 ) ) );\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 #, fuzzy msgid "Access" msgstr "Aceptar" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 -#, fuzzy +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" -msgstr "Configuracións de Twitter" +msgstr "Configuración de perfil" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 #, fuzzy msgid "Registration" msgstr "Rexistrar" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 #, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privacidade" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 #, fuzzy msgid "Invite only" msgstr "Invitar" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 #, fuzzy msgid "Closed" msgstr "Bloquear" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "Configuracións de Twitter" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 #, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Gardar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 @@ -98,189 +112,263 @@ msgstr "Gardar" msgid "No such page." msgstr "Non existe a etiqueta." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ningún usuario." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s e amigos" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte para os amigos de %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte para os amigos de %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte para os amigos de %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 #, fuzzy msgid "You and friends" msgstr "%s e amigos" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Actualizacións dende %1$s e amigos en %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "Método da API non atopado" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Este método require un POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "Non se puido actualizar o usuario." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "O usuario non ten perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "Non se puido gardar o perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 @@ -288,322 +376,486 @@ msgstr "" msgid "Unable to save your design settings." msgstr "Non se puideron gardar os teus axustes de Twitter!" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Non se puido actualizar o usuario." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Liña de tempo de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, fuzzy, php-format +msgid "%s subscriptions" +msgstr "Tódalas subscricións" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritos" + +#: actions/apiatomservice.php:123 +#, php-format +msgid "%s memberships" +msgstr "" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 #, fuzzy msgid "You cannot block yourself!" msgstr "Non se puido actualizar o usuario." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Bloqueo de usuario fallido." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Desbloqueo de usuario fallido." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, fuzzy, php-format msgid "Direct messages from %s" msgstr "Mensaxes directas para %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Tódalas mensaxes directas enviadas dende %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Mensaxes directas para %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Tódalas mensaxes directas enviadas a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Non hai mensaxes de texto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" -"Iso é demasiado longo. O tamaño máximo para unha mensaxe é de 140 caracteres." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[1] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[2] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[3] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[4] "Podes actualizar a túa información do perfil persoal aquí" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Usuario destinatario non atopado." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Non se pode enviar a mensaxe directa a usuarios dos que non eres amigo." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Non te envies mensaxes a ti mesmo!! só fala contigo mesmo baixiño, senón " +"vante tomar por tolo." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Non se atopou un estado con ese ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 #, fuzzy msgid "This status is already a favorite." msgstr "Este chío xa é un favorito!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Non se puido crear o favorito." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 #, fuzzy msgid "That status is not a favorite." msgstr "Este chío non é un favorito!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Non se puido eliminar o favorito." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +msgstr "Non podes seguir a este usuario: %s xa está na túa lista." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Non podes seguir a este usuario: %s xa está na túa lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +msgstr "Non podes seguir a este usuario: %s xa está na túa lista." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 #, fuzzy msgid "You cannot unfollow yourself." msgstr "Non se puido actualizar o usuario." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "" "Dous identificadores de usuario ou nomes_en_pantalla deben ser " "proporcionados." -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Non se pudo recuperar a liña de tempo publica." +msgstr "Non se puido actualizar o usuario." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Non se puido atopar ningún estado" +msgstr "Non se puido actualizar o usuario." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Non é un alcume válido." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "A páxina persoal semella que non é unha URL válida." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "O teu Bio é demasiado longo (max 140 car.)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "O teu Bio é demasiado longo (max %d car.)." +msgstr[1] "O teu Bio é demasiado longo (max %d car.)." +msgstr[2] "O teu Bio é demasiado longo (max %d car.)." +msgstr[3] "O teu Bio é demasiado longo (max %d car.)." +msgstr[4] "O teu Bio é demasiado longo (max %d car.)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "A localización é demasiado longa (max 255 car.)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "Etiqueta inválida: '%s'" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Método da API non atopado" +msgstr "Non atopado" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Xa estas suscrito a estes usuarios:" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +msgstr "Non podes seguir a este usuario: %s xa está na túa lista." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Non estás suscrito a ese perfil" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +msgstr "Non podes seguir a este usuario: %s xa está na túa lista." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, fuzzy, php-format msgid "%s's groups" msgstr "Usuarios" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1s non é unha orixe fiable." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, fuzzy, php-format msgid "groups on %s" msgstr "Outras opcions" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Subir" +msgstr "Comando fallido" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Contido do chío inválido" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "Tamaño inválido." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Non estás suscrito a ese perfil" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 #, fuzzy msgid "Invalid nickname / password!" msgstr "Usuario ou contrasinal inválidos." -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Acounteceu un erro configurando o usuario." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "Erro ó inserir o hashtag na BD: %s" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Envio de formulario non esperada." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -611,254 +863,635 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 #, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Sobre" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Alcume" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Contrasinal" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" - -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 #, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancelar" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Todos" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Sen código de confirmación." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Non estás suscrito a ese perfil" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Non estás suscrito a ese perfil" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Este método require un POST ou DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Non deberías eliminar o estado de outro usuario" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ningún chío." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 #, fuzzy msgid "Cannot repeat your own notice." msgstr "Non se pode activar a notificación." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Eliminar chío" +msgstr "Non se pode eliminar este chíos." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Método da API non atopado" + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato de ficheiro de imaxe non soportado." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 #, fuzzy msgid "Status deleted." msgstr "Avatar actualizado." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Non existe ningún estado con esa ID atopada." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Non se pode eliminar este chíos." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Eliminar chío" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" -"Iso é demasiado longo. O tamaño máximo para un chío é de 140 caracteres." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[1] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[2] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[3] "Podes actualizar a túa información do perfil persoal aquí" +msgstr[4] "Podes actualizar a túa información do perfil persoal aquí" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Non atopado" +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Método da API non atopado" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 #, fuzzy msgid "Unsupported format." msgstr "Formato de ficheiro de imaxe non soportado." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%s / Favoritos dende %s" +msgstr "Estado de %1$s en %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s updates favorited by %s / %s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Hai %1$s chíos en resposta a chíos dende %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Non se puido actualizar o usuario." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Chíos que respostan a %2$s" +msgstr "Estado de %1$s en %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Hai %1$s chíos en resposta a chíos dende %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Liña de tempo pública de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s chíos de calquera!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Comando non implementado." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "Replies to %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "Replies to %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Chíos tagueados con %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Só o usuario pode ler os seus propios buzóns." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Atopar no contido dos chíos" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Non se atopou un perfil con ese ID." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Método da API en contrución." -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Ningún documento." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Método da API non atopado" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ningún chío." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Non se puido inserir a nova subscrición." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Atopar no contido dos chíos" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Acción descoñecida" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Engadir a favoritos" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Ningún chío." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Non se pode gardar a subscrición." + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%1s non é unha orixe fiable." + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Acción descoñecida" + +#: actions/atompubmembershipfeed.php:263 +msgid "Already a member." +msgstr "" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ningún chío." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Non se puido eliminar o favorito." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Non existe a etiqueta." + +#: actions/atompubshowmembership.php:90 +msgid "Not a member" +msgstr "" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Método da API non atopado" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ningún chío." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Non estás suscrito a ese perfil" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Non se pode gardar a subscrición." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Suscrito a %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "tipo de ficheiro non soportado" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Non existe a etiqueta." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Sen alcume." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Sen tamaño." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Tamaño inválido." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, fuzzy, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Podes actualizar a túa información do perfil persoal aquí" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Usuario sen un perfil que coincida." +msgstr "O usuario non ten perfil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 -#, fuzzy msgid "Avatar settings" -msgstr "Configuracións de Twitter" +msgstr "Configuración de perfil" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 #, fuzzy +msgctxt "BUTTON" msgid "Delete" -msgstr "eliminar" +msgstr "Eliminar chío" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Subir" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "Non se especificou ningún perfil." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar actualizado." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Acounteceu un fallo ó actualizar o avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 #, fuzzy msgid "Avatar deleted." msgstr "Avatar actualizado." -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Xa bloqueaches a este usuario." +msgstr "Xa estas suscrito a estes usuarios:" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquear usuario" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -870,12 +1503,13 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 #, fuzzy msgctxt "BUTTON" msgid "No" @@ -883,176 +1517,219 @@ msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 #, fuzzy msgid "Do not block this user" msgstr "Bloquear usuario" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "Si" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 #, fuzzy msgid "Block this user" msgstr "Bloquear usuario" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Erro ao gardar información de bloqueo." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 #, fuzzy msgid "No such group." msgstr "Non existe a etiqueta." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s e amigos" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 #, fuzzy msgid "Unblock user from group" msgstr "Desbloqueo de usuario fallido." -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 #, fuzzy msgid "Unblock this user" msgstr "Bloquear usuario" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Chíos dende SMS" +msgstr "Replies to %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Sen código de confirmación." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Confirmation code not found." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "¡Ese código de confirmación non é para ti!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Tipo de enderezo %s non recoñecido" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Esa dirección xa foi confirmada." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Non se puido actualizar o usuario." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Non se pode eliminar a confirmación de email." -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Confirmar enderezo" +msgstr "Direccións de correo confirmadas actualmente." -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "A dirección \"%s\" xa foi confirmada para a túa conta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 #, fuzzy msgid "Conversation" msgstr "Código de confirmación." -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Chíos" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 #, fuzzy msgid "You must be logged in to delete an application." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "O chío non ten perfil" +msgstr "Confirmation code not found." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 #, fuzzy msgid "You are not the owner of this application." msgstr "Non estás suscrito a ese perfil" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 #, fuzzy msgid "There was a problem with your session token." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 #, fuzzy msgid "Delete application" msgstr "Ningún chío." -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1060,33 +1737,93 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 #, fuzzy msgid "Do not delete this application" msgstr "Non se pode eliminar este chíos." #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "Eliminar chío" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Sen alcume." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Non estás suscrito a ese perfil" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Non se puido actualizar o usuario." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "Estado de %1$s en %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Eliminar chío" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Non se pode eliminar este chíos." + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Eliminar chío" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non está logueado." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Non se pode eliminar este chíos." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 #, fuzzy msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " @@ -1095,22 +1832,25 @@ msgstr "" "Vas a eliminar permanentemente este chío. Unha vez feito, xa non hai volta " "atrás... Quedas avisado!" -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Eliminar chío" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Estas seguro que queres eliminar este chío?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 #, fuzzy msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1126,9 +1866,8 @@ msgid "You can only delete local users." msgstr "Non deberías eliminar o estado de outro usuario" #: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy msgid "Delete user" -msgstr "eliminar" +msgstr "Eliminar chío" #: actions/deleteuser.php:136 msgid "" @@ -1144,68 +1883,78 @@ msgstr "Eliminar chío" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Tamaño inválido." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Tamaño inválido." + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Cambiar contrasinal" +msgstr "Modificado" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 #, fuzzy msgid "Site logo" msgstr "Invitar" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Invitar" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Modificado" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 #, fuzzy msgid "Site theme" msgstr "Novo chío" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Novo chío" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1213,79 +1962,87 @@ msgid "" msgstr "Podes actualizar a túa información do perfil persoal aquí" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 #, fuzzy msgid "Change colours" msgstr "Cambiar contrasinal" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 #, fuzzy msgid "Content" msgstr "Conectar" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 #, fuzzy msgid "Sidebar" msgstr "Buscar" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" -msgstr "Lista" +msgstr "Inicio de sesión" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Gardar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "" @@ -1298,139 +2055,156 @@ msgid "Add to favorites" msgstr "Engadir a favoritos" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Ningún documento." +msgstr "Ningún chío." -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Outras opcions" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 #, fuzzy msgid "You must be logged in to edit an application." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Ningún chío." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "" "Usa este formulario para engadir etiquetas aos teus seguidores ou aos que " "sigues." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 #, fuzzy msgid "Name is required." msgstr "A mesma contrasinal que arriba. Requerido." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." -msgstr "Subscricións" +msgstr "Subscrición rexeitada" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "A páxina persoal semella que non é unha URL válida." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." +msgid "Organization is too long (maximum 255 characters)." msgstr "A localización é demasiado longa (max 255 car.)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Non se puido actualizar o usuario." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 #, fuzzy msgid "You must be logged in to create a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "O teu Bio é demasiado longo (max 140 car.)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Etiqueta inválida: '%s'" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 #, fuzzy msgid "Could not update group." msgstr "Non se puido actualizar o usuario." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 #, fuzzy msgid "Could not create aliases." msgstr "Non se puido crear o favorito." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 #, fuzzy msgid "Options saved." msgstr "Configuracións gardadas." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Configuración de Correo" +msgstr "Configuración de perfil" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1441,13 +2215,13 @@ msgstr "Xestina como recibir correo dende %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 #, fuzzy msgid "Email address" msgstr "Enderezos de correo" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Direccións de correo confirmadas actualmente." @@ -1456,15 +2230,14 @@ msgstr "Direccións de correo confirmadas actualmente." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "Eliminar" +msgstr "Recuperar" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1473,26 +2246,19 @@ msgstr "" "GTalk que ten que haber unha mensaxe coas seguintes instrucións. (Engadiches " "a %s á túa lista de contactos?)" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancelar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Dirección de correo, coma \"Nomede Usuario@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1501,114 +2267,120 @@ msgstr "Engadir" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Correo Entrante" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Quero enviar chíos dende o mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Enviar un correo a esta dirección para enviar novos chíos." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Crear unha nova dirección de correo para enviar, elimina a antiga." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Novo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Preferencias" +msgstr "Enderezos de correo" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Envíame chios de novas suscricións por email." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Enviar un correo cando alguen enganda un chío meu coma favorito." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Enviarme un email cando alguén me envíe unha mensaxe privada." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 #, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Enviarme un email cando alguén me envíe unha mensaxe privada." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Permitir aos amigos darme toques e enviarme correos electrónicos." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Quero enviar chíos dende o mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publicar unha MicroID dende a miña dirección de correo." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "Preferencias gardadas." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Non se inseriu unha dirección de correo" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Esa dirección de correo non se pode normalizar " #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Non é un enderezo de correo válido." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Xa é o teu enderezo de correo." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Este enderezo de correo xa pertence a outro usuario." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Non se puido inserir o código de confirmación." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1620,53 +2392,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Non hai ningunha confirmación pendente para cancelar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Esa é unha enderezo IM incorrecto." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Non se pode eliminar a confirmación de email." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Confirmación cancealada." +msgstr "Non hai ningunha confirmación pendente para cancelar." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Esa non é a túa dirección de correo." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Enderezo eliminado." +msgstr "Dirección de correo entrante eliminada." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Non hai direccións de correo entrante" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Non se puido actualizar o rexistro de usuario." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Dirección de correo entrante eliminada." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Engadida nova dirección de correo entrante." @@ -1674,11 +2450,11 @@ msgstr "Engadida nova dirección de correo entrante." msgid "This notice is already a favorite!" msgstr "Este chío xa é un favorito!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Desactivar favorito" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Chíos populares" @@ -1711,7 +2487,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Chíos favoritos de %s" @@ -1737,14 +2513,12 @@ msgid "A selection of some great users on %s" msgstr "" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Novo chío" +msgstr "Ningún chío." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Novo chío" +msgstr "Ningún chío." #: actions/file.php:42 #, fuzzy @@ -1774,9 +2548,8 @@ msgid "That user has blocked you from subscribing." msgstr "Este usuario non che permite suscribirte a el." #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Non está autorizado." +msgstr "Non estás suscrito a ese perfil" #: actions/finishremotesubscribe.php:113 #, fuzzy @@ -1788,7 +2561,7 @@ msgstr "Non se pode convertir o token da petición a tokens de acceso." msgid "Remote service uses unknown version of OMB protocol." msgstr "Versión de protocolo OMB descoñecida." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Acounteceu un erro actualizando o perfil remoto" @@ -1811,28 +2584,30 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Non podes enviar mensaxes a este usurio." +msgstr "Tes restrinxido o envio de chíos neste sitio." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "O usuario bloqueoute." +msgstr "O usuario non ten perfil." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Non se especificou ningún perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Non se atopou un perfil con ese ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 #, fuzzy msgid "No group specified." @@ -1848,11 +2623,10 @@ msgid "User is already blocked from group." msgstr "O usuario bloqueoute." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "%1s non é unha orixe fiable." +msgstr "Non estás suscrito a ese perfil" -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 #, fuzzy msgid "Block user from group" msgstr "Bloquear usuario" @@ -1870,8 +2644,9 @@ msgstr "" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 +#, fuzzy msgid "Do not block this user from this group" -msgstr "" +msgstr "Non estás suscrito a ese perfil" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 @@ -1883,9 +2658,8 @@ msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Sen id." +msgstr "Sen Identificador de Jabber." #: actions/groupdesignsettings.php:68 #, fuzzy @@ -1902,8 +2676,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Non se puido actualizar o usuario." @@ -1918,9 +2694,17 @@ msgid "Group logo" msgstr "" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." +msgstr "Podes actualizar a túa información do perfil persoal aquí" + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Subir" + +#: actions/grouplogo.php:289 +msgid "Crop" msgstr "" #: actions/grouplogo.php:365 @@ -1937,49 +2721,56 @@ msgstr "Avatar actualizado." msgid "Failed updating logo." msgstr "Acounteceu un fallo ó actualizar o avatar." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Bloquear" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Liña de tempo de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, fuzzy, php-format @@ -2027,9 +2818,8 @@ msgstr "Procurar xente." #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "Non se atoparon resultados" +msgstr "Resultados do comando" #: actions/groupsearch.php:82 #, php-format @@ -2045,24 +2835,26 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 #, fuzzy msgid "User is not blocked from group." msgstr "O usuario bloqueoute." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Acounteceu un erro borrando o bloqueo." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Configuracións de IM" +msgstr "Configuración de perfil" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2084,9 +2876,8 @@ msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "Enderezo de IM" +msgstr "Enderezos de correo" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2105,7 +2896,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2116,65 +2910,64 @@ msgstr "" "GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Preferencias" +msgstr "Preferencias gardadas." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Enviarme advertencias a través de Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Post a notice when my Jabber/GTalk status changes." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Envíame respostas a través de Jabber/GTalk da xente á que non estou suscrito." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publicar unha MicroID dende a miña dirección de Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferencias gardadas." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Sen Identificador de Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Non se pode normalizar ese identificador de Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Non é un Identificador de Jabber válido" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Xa é a túa conta de Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "O identificador de Jabber xa pertence a outro usuario." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2184,33 +2977,31 @@ msgstr "" "engadir a %s como contacto para que che poida enviar mensaxes." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Esa é unha enderezo IM incorrecto." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Non se pode eliminar a confirmación de email." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Confirmación cancealada." +msgstr "Sen código de confirmación." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Esa non é a túa conta Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Enderezo eliminado." +msgstr "Dirección de correo entrante eliminada." #: actions/inbox.php:59 #, fuzzy, php-format @@ -2227,49 +3018,93 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Esta é a túa bandexa de entrada, aquí móstranse as túas mensaxes privadas." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" +msgid "You must be logged in to invite other users to use %s." +msgstr "Non deberías eliminar o estado de outro usuario" + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Dirección de correo Inválida: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Invitación(s) enviada(s)." -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invitar a novos usuarios" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Xa estas suscrito a estes usuarios:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Xa estas suscrito a estes usuarios:" +msgstr[1] "Xa estas suscrito a estes usuarios:" +msgstr[2] "Xa estas suscrito a estes usuarios:" +msgstr[3] "Xa estas suscrito a estes usuarios:" +msgstr[4] "Xa estas suscrito a estes usuarios:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" +msgstr[0] "" +"Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" +msgstr[1] "" +"Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" +msgstr[2] "" +"Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" +msgstr[3] "" +"Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" +msgstr[4] "" +"Esta xente xa é usuario e ti foches suscrito automaticamente a eles:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitación(s) enviada(s) á seguinte xente:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitación(s) enviada(s) á seguinte xente:" +msgstr[1] "Invitación(s) enviada(s) á seguinte xente:" +msgstr[2] "Invitación(s) enviada(s) á seguinte xente:" +msgstr[3] "Invitación(s) enviada(s) á seguinte xente:" +msgstr[4] "Invitación(s) enviada(s) á seguinte xente:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2277,44 +3112,55 @@ msgstr "" "Notificaráseche cando os teus invitados acepten unha invitación e se " "rexistren neste sitio. Grazas por facer crecer o gremio lareteiro!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Emprega este formulario para invitar ós teus amigos e colegas a empregar " "este servizo." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Enderezos de correo" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Direccións dos amigos que queres invitar (unha por liña)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Mensaxe persoal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente engadir unha mensaxe persoal á invitación." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s invitoute a unirse a él en %2$s." -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2374,14 +3220,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Sen alcume." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s / Favoritos dende %s" @@ -2391,17 +3230,122 @@ msgstr "%s / Favoritos dende %s" msgid "You must be logged in to leave a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 #, fuzzy msgid "You are not a member of that group." msgstr "Non estás suscrito a ese perfil" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s / Favoritos dende %s" +msgstr "Estado de %1$s en %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "A localización é demasiado longa (max 255 car.)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Privacidade" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2424,11 +3368,11 @@ msgstr "Inicio de sesión" msgid "Login to site" msgstr "" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Lembrarme" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Endiante acceder automáticamente, coidado en equipos compartidos!" @@ -2445,9 +3389,8 @@ msgstr "" "contrasinal antes de cambiar as túas preferenzas." #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." -msgstr "Accede co teu nome de usuario e contrasinal." +msgstr "Usuario ou contrasinal incorrectos." #: actions/login.php:295 #, fuzzy, php-format @@ -2482,72 +3425,82 @@ msgstr "O usuario bloqueoute." msgid "No current status." msgstr "Sen estado actual" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" +msgid "New application" msgstr "Ningún chío." -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Non se puido crear o favorito." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nova mensaxe" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Non podes enviar mensaxes a este usurio." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Sen contido!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Non se especificou ningún destinatario" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Non te envies mensaxes a ti mesmo!! só fala contigo mesmo baixiño, senón " "vante tomar por tolo." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 #, fuzzy msgid "Message sent" msgstr "Non hai mensaxes de texto!" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Mensaxe directo a %s enviado" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Erro de Ajax" @@ -2555,7 +3508,7 @@ msgstr "Erro de Ajax" msgid "New notice" msgstr "Novo chío" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Chío publicado" @@ -2573,9 +3526,9 @@ msgid "Text search" msgstr "Procura de texto" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Buscar \"%s\" na Liña de tempo" +msgstr "Mensaxe dende %1$s en %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2597,14 +3550,15 @@ msgid "Updates with \"%s\"" msgstr "Actualizacións dende %1$s en %2$s!" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Tódalas actualizacións que coinciden co termo de procura \"%s\"" +msgstr "Actualizacións dende %1$s en %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Este usuario non permite toques, ou non confirmou ainda o seu correo " "electrónico." @@ -2617,76 +3571,102 @@ msgstr "Toque enviado" msgid "Nudge sent!" msgstr "Toque enviado!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 #, fuzzy msgid "You must be logged in to list your applications." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 #, fuzzy msgid "OAuth applications" msgstr "Outras opcions" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "Non estás suscrito a ese perfil" -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "" +"Usa este formulario para engadir etiquetas aos teus seguidores ou aos que " +"sigues." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "O chío non ten perfil" +msgstr "O usuario non ten perfil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Estado de %1$s en %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "Conectar" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -2698,38 +3678,47 @@ msgstr "Procurar xente" msgid "Notice Search" msgstr "Procura de Chíos" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Outros axustes" +msgstr "Outras opcions" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Xestionár axustes varios." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Servizo de acortado automático a usar." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 #, fuzzy msgid "View profile designs" msgstr "Configuración de perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Sistema de acortamento de URLs demasiado longo (max 50 car.)." #: actions/otp.php:69 @@ -2743,9 +3732,8 @@ msgid "No login token specified." msgstr "Non se especificou ningún perfil." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Non hai identificador de perfil na peticion." +msgstr "Sen petición de autorización!" #: actions/otp.php:95 #, fuzzy @@ -2798,7 +3786,7 @@ msgid "6 or more characters" msgstr "6 ou máis caracteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmar" @@ -2810,11 +3798,11 @@ msgstr "Igual que a contrasinal de enriba" msgid "Change" msgstr "Modificado" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "A contrasinal debe ter 6 caracteres ou máis." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "As contrasinais non coinciden" @@ -2834,167 +3822,289 @@ msgstr "Non se pode gardar a contrasinal." msgid "Password saved." msgstr "Contrasinal gardada." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 #, fuzzy msgid "Site" msgstr "Invitar" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 #, fuzzy msgid "Server" msgstr "Recuperar" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" +msgid "Site path." msgstr "Novo chío" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Avatar actualizado." + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "Avatar" - -#: actions/pathsadminpanel.php:284 -#, fuzzy -msgid "Avatar server" -msgstr "Configuracións de Twitter" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "Avatar actualizado." - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "Avatar actualizado." - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "SMS" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Recuperar" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "Chíos" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 #, fuzzy msgid "SSL server" msgstr "Recuperar" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Novo chío" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Avatar actualizado." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +#, fuzzy +msgid "Avatars" +msgstr "Avatar" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +#, fuzzy +msgid "Avatar path" +msgstr "Avatar actualizado." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Acounteceu un fallo ó actualizar o avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +#, fuzzy +msgid "Avatar directory" +msgstr "Avatar actualizado." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Ningún documento." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Ningún documento." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +#, fuzzy +msgid "SSL" +msgstr "SMS" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +#, fuzzy +msgid "Never" +msgstr "Recuperar" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +#, fuzzy +msgid "Sometimes" +msgstr "Chíos" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Novo chío" @@ -3013,9 +4123,9 @@ msgid "People search" msgstr "Procurar xente." #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "%s non é unha etiqueta de xente válida" +msgstr "Non é un enderezo de correo válido." #: actions/peopletag.php:142 #, fuzzy, php-format @@ -3023,154 +4133,203 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usuarios auto-etiquetados como %s - páxina %d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Contido do chío inválido" +msgstr "Tamaño inválido." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configuración de perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Podes actualizar a túa información do perfil persoal aquí para que a xente " "che poida coñecer mellor." -#: actions/profilesettings.php:99 -#, fuzzy +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" -msgstr "Perfil descoñecido" +msgstr "Configuración de perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "De 1 a 64 letras minúsculas ou númeors, nin espazos nin signos de puntuación" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nome completo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Páxina persoal" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio" -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[1] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[2] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[3] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[4] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 #, fuzzy msgid "Describe yourself and your interests" msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Bio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Localización" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "¿Onde estas, coma \"Cidade, Provincia, País\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Linguaxe" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Linguaxe preferida" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso Horario" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "En que fuso horario estas normalmente?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "O teu Bio é demasiado longo (max 140 car.)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "O teu Bio é demasiado longo (max %d car.)." +msgstr[1] "O teu Bio é demasiado longo (max %d car.)." +msgstr[2] "O teu Bio é demasiado longo (max %d car.)." +msgstr[3] "O teu Bio é demasiado longo (max %d car.)." +msgstr[4] "O teu Bio é demasiado longo (max %d car.)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso Horario non seleccionado" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "A Linguaxe é demasiado longa (max 50 car.)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta inválida: '%s'" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Non se puido actualizar o usuario para autosuscrición." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Non se puideron gardar as etiquetas." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Non se puido gardar o perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Non se puideron gardar as etiquetas." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Configuracións gardadas." @@ -3249,33 +4408,46 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 #, fuzzy msgid "Public tag cloud" msgstr "Sindicación do Fio Público" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "" @@ -3308,22 +4480,27 @@ msgid "Could not update user with confirmed email address." msgstr "Non se puido actualizar o usuario coa dirección de correo electrónico." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"As instruccións para recuperar a túa contrasinal foron enviadas ó enderezo " +"de correo da túa conta." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Petición de recuperación de contrasinal" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Insire o teu alcume ou enderezo de correo." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3386,14 +4563,15 @@ msgid "Unexpected password reset." msgstr "Restauración de contrasinal non esperada." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "A contrasinal debe ter 6 caracteres ou máis." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A contrasinal e a súa confirmación non coinciden." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Acounteceu un erro configurando o usuario." @@ -3401,7 +4579,7 @@ msgstr "Acounteceu un erro configurando o usuario." msgid "New password successfully saved. You are now logged in." msgstr "A nova contrasinal gardouse correctamente. Xa estas logueado." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Desculpa, só se pode rexistrar a xente con invitación." @@ -3414,7 +4592,7 @@ msgstr "Acounteceu un erro co código de confirmación." msgid "Registration successful" msgstr "Xa estas rexistrado!!" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Rexistrar" @@ -3422,19 +4600,19 @@ msgstr "Rexistrar" msgid "Registration not allowed." msgstr "Non se permite o rexistro neste intre." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Non podes rexistrarte se non estas de acordo coa licenza." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "O enderezo de correo xa existe." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Usuario ou contrasinal inválidos." -#: actions/register.php:350 +#: actions/register.php:351 #, fuzzy msgid "" "With this form you can create a new account. You can then post notices and " @@ -3444,58 +4622,62 @@ msgstr "" "chíos, e suscribirte a amigos. (Tes unha conta [OpenID](http://openid.net/)? " "Proba o noso [Rexistro OpenID](%%action.openidlogin%%)!)" -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "De 1 a 64 letras minúsculas ou números, nin espazos nin signos de " "puntuación. Requerido." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 ou máis caracteres. Requerido." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "A mesma contrasinal que arriba. Requerido." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Correo Electrónico" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Empregado só para actualizacións, novidades, e recuperación de contrasinais" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nome máis longo, preferiblemente o teu nome \"real\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3504,7 +4686,7 @@ msgstr "" " agás esta informción privada: contrasinal, dirección de correo electrónico, " "dirección IM, número de teléfono." -#: actions/register.php:583 +#: actions/register.php:589 #, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3536,7 +4718,7 @@ msgstr "" "\n" "Grazas por rexistrarte e esperamos que laretexes moito." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3582,7 +4764,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Enderezo do teu perfil en outro servizo de microblogaxe compatíbel" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscribir" @@ -3621,14 +4803,12 @@ msgid "You can't repeat your own notice." msgstr "Non podes rexistrarte se non estas de acordo coa licenza." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "Xa bloqueaches a este usuario." +msgstr "Xa estas suscrito a estes usuarios:" -#: actions/repeat.php:114 lib/noticelist.php:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "Crear" +msgstr "Destacado" #: actions/repeat.php:119 #, fuzzy @@ -3636,30 +4816,30 @@ msgid "Repeated!" msgstr "Crear" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Replies to %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Mensaxe de %1$s en %2$s" +msgstr "Replies to %s" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/replies.php:199 #, php-format @@ -3688,9 +4868,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Mensaxe de %1$s en %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Non podes enviar mensaxes a este usurio." +msgstr "Tes restrinxido o envio de chíos neste sitio." #: actions/revokerole.php:82 #, fuzzy @@ -3698,9 +4877,8 @@ msgid "User doesn't have this role." msgstr "Usuario sen un perfil que coincida." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Avatar actualizado." +msgstr "Estatísticas" #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy @@ -3714,12 +4892,12 @@ msgstr "O usuario bloqueoute." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3739,10 +4917,8 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "Configuracións de Twitter" +msgstr "Configuración de perfil" #: actions/showapplication.php:82 #, fuzzy @@ -3755,31 +4931,32 @@ msgid "Application profile" msgstr "O chío non ten perfil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Alcume" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 #, fuzzy msgid "Organization" msgstr "Invitación(s) enviada(s)." #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 #, fuzzy msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3797,6 +4974,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Eliminar chío" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3881,83 +5063,110 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, fuzzy, php-format msgid "%1$s group, page %2$d" msgstr "Tódalas subscricións" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Non existe o perfil." +msgstr "O usuario non ten perfil." -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 #, fuzzy msgid "Note" msgstr "Chíos" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 #, fuzzy msgid "Group actions" msgstr "Outras opcions" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Band. Saída para %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 #, fuzzy msgid "Members" msgstr "Membro dende" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 #, fuzzy msgid "(None)" msgstr "(nada)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 #, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "Crear" +msgstr "Destacado" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Membro dende" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3971,7 +5180,10 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3984,24 +5196,31 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Non existe a mensaxe." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Só o emisor e destinatario poden ler esta mensaxe." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Mensaxe de %1$s en %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Mensaxe dende %1$s en %2$s" @@ -4011,60 +5230,84 @@ msgstr "Mensaxe dende %1$s en %2$s" msgid "Notice deleted." msgstr "Chío publicado" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s (%2$s)" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" msgstr "Chíos tagueados con %s" -#: actions/showstream.php:79 -#, fuzzy, php-format +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" -msgstr "%s e amigos" +msgstr "%1$s (%2$s)" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Fonte de chíos para %s" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Fonte para os amigos de %s" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, fuzzy, php-format msgid "FOAF for %s" msgstr "Band. Saída para %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4077,7 +5320,9 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4089,7 +5334,8 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Replies to %s" @@ -4113,9 +5359,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Non é unha dirección de correo válida" +msgstr "Non é un enderezo de correo válido." #: actions/siteadminpanel.php:159 #, php-format @@ -4206,44 +5451,47 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Novo chío" +msgstr "Chíos" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Nova mensaxe" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Non se puideron gardar os teus axustes de Twitter!" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Novo chío" +msgstr "Eliminar chío" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Novo chío" +msgstr "Eliminar chío" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "Configuracións de SMS" +msgstr "Configuración de perfil" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4259,9 +5507,8 @@ msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Enderezo de IM" +msgstr "Enderezos de correo" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4292,9 +5539,8 @@ msgstr "Confirmar" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "Número de Teléfono do SMS" +msgstr "Non hai ningún número de teléfono." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4303,9 +5549,8 @@ msgstr "Número de teléfono, sen puntuacións ou espazos, co código de área" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Preferencias" +msgstr "Preferencias gardadas." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4344,12 +5589,11 @@ msgstr "O número de teléfono xa pertence a outro usuario." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"Enviouseche o código de confirmación ó número de teléfono que engadiches. " +"Enviouseche un código de confirmación á dirección de correo que engadiches. " "Comproba a túa bandexa de entrada (ou spam!) polo código e instrucións que " "debes seguir." @@ -4360,9 +5604,8 @@ msgstr "Ese é un número de confirmación incorrecto." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Confirmación cancealada." +msgstr "Confirmación de SMS" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4405,14 +5648,13 @@ msgstr "Non se inseriu ningún código" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Navegación de subscricións" +msgstr "Confirmar correo electrónico" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4463,12 +5705,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Configuracións de Twitter" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Non estás suscrito a ese perfil" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Non se pode gardar a subscrición." @@ -4476,11 +5720,6 @@ msgstr "Non se pode gardar a subscrición." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Ningún chío." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4490,63 +5729,84 @@ msgstr "Non estás suscrito a ese perfil" msgid "Subscribed" msgstr "Suscrito" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, fuzzy, php-format msgid "%s subscribers" msgstr "Subscritores" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, fuzzy, php-format msgid "%1$s subscribers, page %2$d" msgstr "Tódalas subscricións" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Esa é a xente que escoita os teus chíos." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Esa é a xente que escoita os chíos de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Tódalas subscricións" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Tódalas subscricións" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Esa é a xente á que lle estas a escoitar os seus chíos" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Esta é a xente á que lle estas a escoitar os chíos %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4556,38 +5816,49 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, fuzzy, php-format msgid "%s is not listening to anyone." msgstr "%1$s está a escoitar os teus chíos %2$s." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Fonte para os amigos de %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber." -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Usuarios auto-etiquetados como %s - páxina %d" +msgstr "Chíos tagueados con %s" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Fonte de chíos para %s" +msgstr "Fonte para os amigos de %s" #: actions/tagother.php:39 #, fuzzy @@ -4605,7 +5876,7 @@ msgid "User profile" msgstr "O usuario non ten perfil." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "" @@ -4644,14 +5915,12 @@ msgid "No such tag." msgstr "Non existe a etiqueta." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Xa bloqueaches a este usuario." +msgstr "Non estás suscrito a ese perfil" #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "O usuario bloqueoute." +msgstr "O usuario non ten último chio." #: actions/unsilence.php:72 #, fuzzy @@ -4659,9 +5928,8 @@ msgid "User is not silenced." msgstr "O usuario non ten perfil." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Non hai identificador de perfil na peticion." +msgstr "Non se atopou un perfil con ese ID." #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4674,82 +5942,103 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "Usuario" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Invitar a novos usuarios" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Tódalas subscricións" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Suscribirse automáticamente a calquera que se suscriba a min (o mellor para " "non humáns)" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Invitación(s) enviada(s)." -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Invitación(s) enviada(s)." -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Subscrición de autorización." @@ -4765,7 +6054,9 @@ msgstr "" "user's notices. If you didn't just ask to subscribe to someone's notices, " "click \"Cancel\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "" @@ -4857,12 +6148,14 @@ msgstr "Non se pode ler a URL do avatar de '%s'" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipo de imaxe incorrecto para '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Configuración de perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4883,9 +6176,9 @@ msgid "Search for more groups" msgstr "" #: actions/usergroups.php:159 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "%1s non é unha orixe fiable." +msgstr "Non estás suscrito a ese perfil" #: actions/usergroups.php:164 #, php-format @@ -4898,7 +6191,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" @@ -4947,7 +6240,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 #, fuzzy msgid "Version" msgstr "Persoal" @@ -4956,64 +6249,121 @@ msgstr "Persoal" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Gostame" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Enviar un correo cando alguen enganda un chío meu coma favorito." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Tamaño inválido." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Non existe o perfil." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Non se puido actualizar o usuario." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Non existe o perfil." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Acounteceu un erro gardando o usuario: é inválido." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +#, fuzzy +msgid "Join" +msgstr "Inicio de sesión" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -5033,18 +6383,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Erro ó enviar a mensaxe directa." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Non se pode inserir unha mensaxe." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Non se puido actualizar a mensaxe coa nova URI." @@ -5056,24 +6406,24 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Erro ó inserir o hashtag na BD: %s" +msgstr "Acounteceu un erro ó inserir o avatar" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Aconteceu un erro ó gardar o chío." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Aconteceu un erro ó gardar o chío. Usuario descoñecido." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -5081,7 +6431,7 @@ msgstr "" "duns minutos." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -5091,44 +6441,58 @@ msgstr "" "duns minutos." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Tes restrinxido o envio de chíos neste sitio." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Non se pode gardar a subscrición." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5140,182 +6504,213 @@ msgid "Missing profile." msgstr "O usuario non ten perfil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Non se puideron gardar os teus axustes de Twitter!" +msgstr "Non se poden gardar as etiquetas." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 #, fuzzy msgid "You have been banned from subscribing." msgstr "Este usuario non che permite suscribirte a el." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Non está suscrito!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "O usuario bloqueoute." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Non está suscrito!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Non se pode eliminar a subscrición." +msgstr "Non se pode gardar a subscrición." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Non se pode eliminar a subscrición." +msgstr "Non se pode gardar a subscrición." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Non se pode eliminar a subscrición." +msgstr "Non se pode gardar a subscrición." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s está a escoitar os teus chíos %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 #, fuzzy msgid "Could not create group." msgstr "Non se puido crear o favorito." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Non se pode gardar a subscrición." +msgstr "Non se poden gardar as etiquetas." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 #, fuzzy msgid "Could not set group membership." msgstr "Non se pode gardar a subscrición." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "Non se pode gardar a subscrición." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Configuración de perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 #, fuzzy msgid "Upload an avatar" msgstr "Acounteceu un fallo ó actualizar o avatar." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Cambiar contrasinal" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Cambiar a xestión de email" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 #, fuzzy msgid "Design your profile" msgstr "O usuario non ten perfil." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Outras opcions" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Outros" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, fuzzy, php-format msgid "%1$s - %2$s" msgstr "%1$s (%2$s)" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Persoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar contrasinal" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +#, fuzzy +msgid "Account" +msgstr "Sobre" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Non se pode redireccionar ao servidor: %s" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Conectar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navegación de subscricións" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" @@ -5324,71 +6719,74 @@ msgstr "" "este servizo." #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear nova conta" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Rexistrar" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Inicio de sesión" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Axuda" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Axuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5396,74 +6794,79 @@ msgstr "Buscar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 #, fuzzy msgid "Site notice" msgstr "Novo chío" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 #, fuzzy msgid "Page notice" msgstr "Novo chío" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 #, fuzzy msgid "Secondary site navigation" msgstr "Navegación de subscricións" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Axuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Sobre" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Preguntas frecuentes" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacidade" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Fonte" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contacto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5473,13 +6876,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** é un servizo de microbloguexo." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5491,368 +6897,479 @@ msgstr "" "fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 #, fuzzy msgid "Site content license" msgstr "Atopar no contido dos chíos" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 -#, fuzzy +#: lib/action.php:1351 msgid "After" -msgstr "« Despois" +msgstr "Outros" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 #, fuzzy msgid "Before" msgstr "Antes »" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +msgid "Post" +msgstr "" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Non podes enviar mensaxes a este usurio." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Non se permite o rexistro neste intre." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "Comando non implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "Comando non implementado." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Non se puideron gardar os teus axustes de Twitter!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "Confirmar correo electrónico" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Invitar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Persoal" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usuario" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Novo chío" +msgstr "Eliminar chío" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "Confirmación de SMS" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Non se puido crear o favorito." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Non se puido crear o favorito." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Non se pode inserir unha mensaxe." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "Erro ó inserir o hashtag na BD: %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[1] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[2] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[3] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[4] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 #, fuzzy msgid "Describe your application" msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Fonte" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancelar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Eliminar" +msgstr "Recuperar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 #, fuzzy msgid "Provider" msgstr "Perfil" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Contrasinal gardada." -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Contrasinal gardada." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloquear" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Erro de Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Comando completo" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Comando fallido" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Non se atopou un perfil con ese ID." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "O usuario non ten último chio." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Non se puido actualizar o usuario coa dirección de correo electrónico." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Non se puido actualizar o usuario coa dirección de correo electrónico." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Desculpa, este comando todavía non está implementado." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Toque enviado" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5863,180 +7380,222 @@ msgstr "" "Suscriptores: %2$s\n" "Chíos: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Chío marcado coma favorito." -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Xa estas suscrito a estes usuarios:" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Non podes seguir a este usuario: o Usuario non se atopa." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Ubicación: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Páxina persoal: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[1] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[2] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[3] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[4] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Mensaxe directo a %s enviado" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Erro ó enviar a mensaxe directa." -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Non se pode activar a notificación." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Eliminar chío" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Chío publicado" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Aconteceu un erro ó gardar o chío." +msgstr "Acounteceu un erro configurando o usuario." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[1] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[2] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[3] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[4] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "Non se pode eliminar este chíos." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "Especifica o nome do usuario ó que queres suscribirte" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Suscrito a %s" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "Especifica o nome de usuario ó que queres deixar de seguir" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Desuscribir de %s" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Comando non implementado." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notificación desactivada." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "No se pode desactivar a notificación." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notificación habilitada." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Non se pode activar a notificación." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Desuscribir de %s" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Xa estas suscrito a estes usuarios:" @@ -6045,12 +7604,17 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Outro usuario non se puido suscribir a ti." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Outro usuario non se puido suscribir a ti." @@ -6059,12 +7623,17 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Non estás suscrito a ese perfil" @@ -6073,7 +7642,8 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 #, fuzzy msgid "" "Commands:\n" @@ -6142,95 +7712,135 @@ msgstr "" "tracks - non implementado por agora.\n" "tracking - non implementado por agora.\n" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Sen código de confirmación." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Invitación(s) enviada(s) á seguinte xente:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Chíos dende mensaxería instantánea (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Chíos dende SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Conectar" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 #, fuzzy msgid "Upload file" msgstr "Subir" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 #, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "Podes actualizar a túa información do perfil persoal aquí" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Restaurar" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "%s chíos favoritos" +msgstr "Chíos favoritos de %s" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "%s chíos favoritos" +msgstr "Chíos favoritos de %s" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Gostame" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -6263,9 +7873,14 @@ msgstr "Ir" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"De 1 a 64 letras minúsculas ou númeors, nin espazos nin signos de puntuación" + #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio" #: lib/groupeditform.php:168 @@ -6275,63 +7890,119 @@ msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[1] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[2] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[3] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." +msgstr[4] "Contanos un pouco de ti e dos teus intereses en 140 caractéres." -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 #, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "¿Onde estas, coma \"Cidade, Provincia, País\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Bloquear" - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Bloquear usuario" - -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Sair" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -6345,40 +8016,67 @@ msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" msgid "Unsupported image file format." msgstr "Formato de ficheiro de imaxe non soportado." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Podes actualizar a túa información do perfil persoal aquí" -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Non é unha imaxe ou está corrupta." -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." -msgstr "Bloqueo de usuario fallido." +msgstr "Ningún chío." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 #, fuzzy msgid "Unknown file type" msgstr "tipo de ficheiro non soportado" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #: lib/jabber.php:387 #, php-format @@ -6390,47 +8088,43 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "Inicio de sesión" - #: lib/leaveform.php:114 #, fuzzy msgid "Leave" msgstr "Gardar" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "Accede co teu nome de usuario e contrasinal." +msgstr "Usuario ou contrasinal inválidos." #: lib/logingroupnav.php:86 #, fuzzy msgid "Sign up for a new account" msgstr "Crear nova conta" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmar correo electrónico" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Ei, %s.\n" "\n" @@ -6445,21 +8139,28 @@ msgstr "" "Grazas polo teu tempo, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s está a escoitar os teus chíos %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6468,10 +8169,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s está a escoitar os teus chíos en %2$s.\n" "\n" @@ -6480,21 +8181,25 @@ msgstr "" "Atentamente todo seu,\n" "%4$s.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, fuzzy, php-format msgid "Bio: %s" msgstr "Ubicación: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nova dirección de email para posterar en %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6503,7 +8208,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Tes unha nova dirección de envio de mensaxes en %1$s.\n" "\n" @@ -6514,31 +8219,36 @@ msgstr "" "Sempre teu...,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Estado de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmación de SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Agardando a confirmación neste número de teléfono." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s douche un toque" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6564,14 +8274,18 @@ msgstr "" "With kind regards,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "%s enviouche unha nova mensaxe privada" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6604,14 +8318,19 @@ msgstr "" "With kind regards,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s gustoulle o teu chío" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "Enviar un correo cando alguen enganda un chío meu coma favorito." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6645,7 +8364,7 @@ msgstr "" "%5$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6653,13 +8372,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6696,7 +8422,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 #, fuzzy msgid "from" msgstr " dende " @@ -6717,62 +8443,80 @@ msgstr "Ise é un enderezo IM incorrecto." msgid "Sorry, no incoming email allowed." msgstr "Aivá, non se permiten correos entrantes." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Formato de ficheiro de imaxe non soportado." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Non se pudo recuperar a liña de tempo publica." +msgstr "Non se puido eliminar o favorito." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 @@ -6780,106 +8524,141 @@ msgstr "" msgid "Send a direct notice" msgstr "Eliminar chío" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Selecciona unha operadora" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Non está suscrito!" + +#: lib/messageform.php:153 msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 #, fuzzy msgid "Available characters" msgstr "6 ou máis caracteres" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "Dar un toque" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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." -#: lib/noticeform.php:173 +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "Novo chío" + +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "¿Que pasa, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Non se puideron gardar as etiquetas." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Non se puideron gardar as etiquetas." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "No" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:630 -#, fuzzy +#: lib/noticelist.php:646 msgid "Reply" -msgstr "contestar" +msgstr "Respostas" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -6899,56 +8678,52 @@ msgstr "Toque enviado" msgid "Send a nudge to this user" msgstr "Non podes enviar mensaxes a este usurio." -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Acounteceu un erro ó inserir o novo perfil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Acounteceu un erro ó inserir o avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Acounteceu un erro actualizando o perfil remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Aconteceu un erro ó inserir o perfil remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Eliminar chío" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Non se puido inserir a nova subscrición." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persoal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respostas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritos" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Band. Entrada" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "As túas mensaxes entrantes" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Band. Saída" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "As túas mensaxes enviadas" @@ -6957,7 +8732,8 @@ msgstr "As túas mensaxes enviadas" msgid "Tags in %s's notices" msgstr "O usuario non ten último chio." -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "Acción descoñecida" @@ -7047,9 +8823,11 @@ msgstr "Non se pode eliminar este chíos." msgid "Revoke the \"%s\" role from this user" msgstr "" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Método da API non atopado" #: lib/sandboxform.php:67 #, fuzzy @@ -7061,20 +8839,26 @@ msgstr "Band. Entrada" msgid "Sandbox this user" msgstr "Bloquear usuario" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Buscar" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Buscar" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Buscar" @@ -7155,6 +8939,12 @@ msgstr "" msgid "None" msgstr "No" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Tamaño inválido." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -7164,45 +8954,61 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Acounteceu un fallo ó actualizar o avatar." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Acounteceu un erro actualizando o perfil remoto" +msgstr "Acounteceu un erro borrando o bloqueo." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloquear" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -7230,128 +9036,204 @@ msgstr "Desuscribir de %s" msgid "Unsubscribe" msgstr "Eliminar subscrición" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "O usuario non ten perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 #, fuzzy msgid "User actions" msgstr "Outras opcions" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 #, fuzzy msgid "Edit profile settings" msgstr "Configuración de perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 #, fuzzy msgid "Send a direct message to this user" msgstr "Non podes enviar mensaxes a este usurio." -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 #, fuzzy msgid "Message" msgstr "Nova mensaxe" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "O usuario non ten perfil." -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "fai uns segundos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "fai un minuto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "fai %d minutos" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "fai unha hora" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "fai %d horas" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "fai un día" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "fai %d días" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "fai un mes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "fai %d meses" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "fai un ano" -#: lib/webcolor.php:82 -#, fuzzy, php-format -msgid "%s is not a valid color!" -msgstr "%1s non é unha orixe fiable." - -#: lib/webcolor.php:123 +#: lib/webcolor.php:80 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color!" +msgstr "A páxina persoal semella que non é unha URL válida." + +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "A páxina persoal semella que non é unha URL válida." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[1] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[2] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[3] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " +msgstr[4] "" +"Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Tamaño inválido." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Non se especificou ningún perfil." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" diff --git a/locale/gl/LC_MESSAGES/statusnet.po b/locale/gl/LC_MESSAGES/statusnet.po index 68434b085f..23654f9d49 100644 --- a/locale/gl/LC_MESSAGES/statusnet.po +++ b/locale/gl/LC_MESSAGES/statusnet.po @@ -1,161 +1,203 @@ -# Translation of StatusNet to Galician +# Translation of StatusNet - Core to Galician (Galego) +# Expored from translatewiki.net # -# Author@translatewiki.net: Gallaecio -# Author@translatewiki.net: Toliño +# Author: Brion +# Author: Gallaecio +# Author: Toliño # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:30+0000\n" -"Language-Team: Galician\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:44+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Acceso" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Configuración do acceso ao sitio" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Rexistro" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Prohibir que os usuarios anónimos (sen sesión iniciada) vexan o sitio?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privado" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Que o rexistro só se poida facer previa invitación." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Só por invitación" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Desactivar os novos rexistros." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Pechado" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Gardar a configuración de acceso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Gardar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Esa páxina non existe." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Non existe tal usuario." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amigos, páxina %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte de novas dos amigos de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte de novas dos amigos de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte de novas dos amigos de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Esta é a liña do tempo de %s e amigos pero ninguén publicou nada aínda." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -164,8 +206,9 @@ msgstr "" "Probe a subscribirse a máis xente, [únase a un grupo](%%action.groups%%) ou " "publique algo." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -175,7 +218,11 @@ msgstr "" "[publicar algo dirixido a el ou ela](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -184,59 +231,80 @@ msgstr "" "Por que non [rexistrar unha conta](%%%%action.register%%%%) e entón facerlle " "un aceno a %s ou publicar unha nota dirixida a el ou ela?" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Vostede e mailos seus amigos" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Actualizacións de %1$s e amigos en %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Non se atopou o método da API." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Este método require un POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -244,352 +312,536 @@ msgstr "" "Ten que especificar un parámetro chamado \"device\" cun destes valores: sms, " "im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Non se puido actualizar o usuario." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "O usuario non ten perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Non se puido gardar o perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"O servidor non puido manexar tantos datos POST (%s bytes) por mor da súa " +"configuración actual." +msgstr[1] "" "O servidor non puido manexar tantos datos POST (%s bytes) por mor da súa " "configuración actual." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Non se puido gardar a súa configuración de deseño." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Non se puido actualizar o seu deseño." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Liña do tempo de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s subscricións" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritas" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membros do grupo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Non pode bloquearse a si mesmo!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Non se puido bloquear o usuario." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Non se puido desbloquear o usuario." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Mensaxes directas de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Todas as mensaxes directas enviadas por %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Mensaxes directas a %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Todas as mensaxes directas enviadas a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "A mensaxe non ten texto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +"Iso é longo de máis. A lonxitude máxima das mensaxes é de %d caracteres." +msgstr[1] "" "Iso é longo de máis. A lonxitude máxima das mensaxes é de %d caracteres." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Non se atopou o destinatario." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Non pode enviar mensaxes directas a usuarios que non sexan amigos seus." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Non se envíe unha mensaxe, limítese a pensar nela." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Non se atopou ningún estado con esa ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Este estado xa é dos favoritos." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Non se puido crear o favorito." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Ese estado non é un dos favoritos." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Non se puido eliminar o favorito." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Non se puido seguir o usuario: non se atopou." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Non se puido seguir o usuario: %s xa está na súa lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Non se puido deixar de seguir o usuario: non se atopou." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Non pode deixar de seguirse a si mesmo." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "Deben fornecerse dúas identificacións ou nomes de usuario." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Non se puido determinar o usuario de orixe." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Non se puido atopar o usuario de destino." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"O alcume debe ter só letras en minúscula e números, e non pode ter espazos " -"en branco." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Ese alcume xa está en uso. Probe con outro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "O formato do alcume non é correcto." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "O URL da páxina persoal non é correcto." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "O nome completo é longo de máis (o máximo son 255 caracteres)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "A descrición é longa de máis (o máximo son %d caracteres)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "A descrición é longa de máis (o máximo son %d caracteres)." +msgstr[1] "A descrición é longa de máis (o máximo son %d caracteres)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "A localidade é longa de máis (o máximo son 255 caracteres)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Demasiados pseudónimos! O número máximo é %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Demasiados pseudónimos! O número máximo é %d." +msgstr[1] "Demasiados pseudónimos! O número máximo é %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Pseudónimo incorrecto: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "O pseudónimo \"%s\" xa se está a usar. Proba con outro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "O pseudónimo non pode coincidir co alcume." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Non se atopou o grupo." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Xa forma parte dese grupo." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "O administrador bloqueouno nese grupo." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "O usuario %1$s non se puido engadir ao grupo %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Vostede non pertence a este grupo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "O usuario %1$s non se puido eliminar do grupo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Os grupos de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Grupos de %1$s aos que pertence %2$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "grupos %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupos en %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Houbo un erro durante a carga." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "O pase especificado é incorrecto." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Non se forneceu o parámetro oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Pase incorrecto." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Pase de solicitude incorrecto." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Non está autorizado." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Houbo un erro co seu pase. Inténteo de novo." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "O alcume ou o contrasinal son incorrectos!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "" -"Houbo un erro na base de datos ao intentar borrar o usuario da aplicación " -"OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "" "Houbo un erro na base de datos ao intentar inserir o usuario da aplicación " "OAuth." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "Autorizouse a ficha da solicitude %s. Intercámbiea por un pase." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Denegouse e revogouse a ficha da solicitude %s." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Envío de formulario inesperado." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Unha aplicación quere conectarse á súa conta" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permitir ou denegar o acceso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"A aplicación <strong>%1$s</strong> de <strong>%2$s</strong> quere poder " +"<strong>%3$s</strong> os datos da súa conta %4$s. Só debería permitir o " +"acceso á súa conta %4$s a xente de confianza." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -600,170 +852,530 @@ msgstr "" "<strong>%3$s</strong> os datos da súa conta %4$s. Só debería permitir o " "acceso á súa conta %4$s a xente de confianza." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Conta" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Alcume" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Contrasinal" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Denegar" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancelar" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Permitir" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Permitir ou denegar o acceso á información da súa conta." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autorizar o acceso á información da súa conta." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Autorización cancelada." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Denegouse o pase da solicitude %s." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Non está autorizado." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Non está autorizado." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Este método require un POST ou un DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Non pode borrar o estado doutro usuario." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Non existe tal nota." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Non pode repetir a súa propia nota." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Xa repetiu esa nota." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Non se atopou o método da API." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato non soportado." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Borrouse o estado." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Non se atopou ningún estado con esa ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Non se pode borrar esta nota." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Borrar a nota" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "O cliente debe proporcionar un parámetro de \"estado\" cun valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Iso é longo de máis. A nota non pode exceder os %d caracteres." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Iso é longo de máis. A nota non pode exceder os %d caracteres." +msgstr[1] "Iso é longo de máis. A nota non pode exceder os %d caracteres." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Non se atopou." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Non se atopou o método da API." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"A lonxitude máxima das notas é de %d caracteres, incluído o URL do dato " +"adxunto." +msgstr[1] "" "A lonxitude máxima das notas é de %d caracteres, incluído o URL do dato " "adxunto." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato non soportado." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritos de %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s actualizacións marcadas como favoritas por %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Non se puido actualizar o grupo." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualizacións que mencionan %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s actualizacións que responden a actualizacións de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Liña do tempo pública de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s actualizacións de todos!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Aínda non se implantou o método." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetiu a %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repeticións de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas etiquetadas con %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións etiquetadas con %1$s en %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Só o usuario pode ler as súas caixas de entrada." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Buscar nos contidos das notas" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Non hai ningunha nota con esa id." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Método API en desenvolvemento." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Non se atopou o método da API." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Non existe ese perfil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Non se puido inserir unha subscrición nova." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Buscar nos contidos das notas" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Descoñecida" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Engadir aos favoritos" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Non existe ese perfil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membros do grupo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupos aos que pertence %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Descoñecida" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Todos os membros" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Non existe tal ficheiro." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Non se puido eliminar o favorito." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Non existe tal grupo." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Todos os membros" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Non se atopou o método da API." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Non existe ese perfil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Non está subscrito a ese perfil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Non se puido borrar a subscrición a si mesmo." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Persoas subscritas a %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Non se coñece o tipo de ficheiro" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Non existe tal dato adxunto." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Sen alcume." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Sen tamaño." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Tamaño non válido." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." @@ -771,73 +1383,95 @@ msgstr "" "Pode cargar o seu avatar personalizado. O tamaño máximo para o ficheiro é de " "%s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "O usuario non ten perfil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuración do avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Orixinal" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vista previa" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Borrar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Cargar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Recortar" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Non se subiu ficheiro ningún." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Escolla unha zona cadrada da imaxe para usala como avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perdéronse os datos do ficheiro." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Actualizouse o avatar." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Non se puido actualizar o avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Borrouse o avatar." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Xa bloqueou ese usuario." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquear o usuario" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -849,175 +1483,220 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Non" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Non bloquear este usuario" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Si" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloquear este usuario" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Non se puido gardar a información do bloqueo." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Non existe tal grupo." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s perfís bloqueados" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s perfís bloqueados, páxina %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Unha lista de usuarios bloqueados fronte á unión a este grupo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Desbloquear o usuario do grupo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Desbloquear este usuario" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Publicar en %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Sen código de confirmación." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Non se atopou o código de confirmación." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Ese código de confirmación non é para vostede!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Non se recoñeceu o tipo de enderezo %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Ese enderezo xa se confirmou." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Non se puido actualizar o usuario." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Non se puido borrar a confirmación por correo electrónico." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Non se puido borrar a confirmación por mensaxería instantánea." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmar o enderezo" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Confirmouse o enderezo \"%s\" para a súa conta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversa" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Ten que iniciar sesión para borrar unha aplicación." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Non se atopou a aplicación." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Non é o dono desa aplicación." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Houbo un problema co seu pase." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Borrar a aplicación" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1028,31 +1707,92 @@ msgstr "" "usuario existentes." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Non borrar a aplicación" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Borrar a aplicación" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Ten que identificarse para deixar un grupo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nin alcume nin ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Vostede non pertence a este grupo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Non se puido actualizar o grupo." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s deixou o grupo %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Borrar un grupo" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Está seguro de querer borrar este usuario? Isto borrará todos os datos do " +"usuario da base de datos, sen posibilidade de recuperalos." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Non borrar esta nota" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Borrar o usuario" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non iniciou sesión." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Non se pode borrar esta nota." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1060,21 +1800,24 @@ msgstr "" "Está a piques de borrar unha nota definitivamente. Unha vez feito, non se " "poderá recuperar." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Borrar a nota" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Está seguro de querer borrar esta nota?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Non borrar esta nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Borrar esta nota" @@ -1105,63 +1848,74 @@ msgstr "Borrar o usuario" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Deseño" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Configuración do deseño deste sitio StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Configuración de deseño para este sitio StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL do logo incorrecto." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL do logo incorrecto." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "O tema visual non está dispoñible: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Cambiar o logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo do sitio" -#: actions/designadminpanel.php:443 -msgid "Change theme" -msgstr "Cambar o tema visual" +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Logo do sitio" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:469 +msgid "Change theme" +msgstr "Cambiar o tema visual" + +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema visual do sitio" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema visual para o sitio." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Tema visual personalizado" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" "Pode cargar como arquivo .ZIP un tema visual personalizado para StatusNet" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Cambiar a imaxe de fondo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fondo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1171,75 +1925,84 @@ msgstr "" "ficheiro é de %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Activado" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Desactivado" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Activar ou desactivar a imaxe de fondo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Imaxe de fondo en mosaico" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Cambiar as cores" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contido" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra lateral" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Ligazóns" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avanzado" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalizado" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Utilizar os valores por defecto" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaurar o deseño por defecto" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Volver ao deseño por defecto" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Gardar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Gardar o deseño" @@ -1256,109 +2019,131 @@ msgstr "Engadir aos favoritos" msgid "No such document \"%s\"" msgstr "Non hai ningún documento \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Editar a aplicación" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Modificar a aplicación" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Ten que iniciar sesión para editar unha aplicación." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Non existe esa aplicación." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Utilice este formulario para editar a súa aplicación." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Fai falla un nome." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "O nome é longo de máis (o límite é de 255 caracteres)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "O nome xa está en uso. Probe con outro." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Fai falla unha descrición." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "O URL de orixe é longo de máis." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "O URL de orixe é incorrecto." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Fai falla unha organización." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "A organización é longa de máis (o límite é de 255 caracteres)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Fai falla unha páxina web da organización." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "O retorno de chamada é longo de máis." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "O URL do retorno de chamada é incorrecto." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Non se puido actualizar a aplicación." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Editar o grupo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Ten que iniciar sesión para crear un grupo." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Ten que ser administrador para editar o grupo." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Utilice este formulario para editar o grupo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "a descrición é longa de máis (o límite é de %d caracteres)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Pseudónimo inválido: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Non se puido actualizar o grupo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Non se puideron crear os pseudónimos." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Gardáronse as preferencias." @@ -1376,12 +2161,12 @@ msgstr "Xestiona a forma en que recibes correo electrónico de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Enderezo de correo electrónico" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Enderezo de correo electrónico confirmado actualmente." @@ -1390,14 +2175,14 @@ msgstr "Enderezo de correo electrónico confirmado actualmente." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Borrar" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1405,25 +2190,19 @@ msgstr "" "Agardando pola confirmación deste enderezo. Busque unha mensaxe con máis " "instrucións na súa bandexa de entrada (e na de correo non desexado!)." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancelar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Enderezo de correo electrónico, coma \"nomedeusuario@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1431,117 +2210,124 @@ msgstr "Engadir" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Correo entrante" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Quero publicar notas por correo electrónico." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" "Enviar un correo electrónico a este enderezo para publicar novas notas." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Establece un novo enderezo de correo electrónico no que publicar, e cancela " "o vello." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Novo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferencias de correo electrónico" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Enviarme notas acerca de novas subscricións por correo electrónico." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Enviádeme un correo electrónico cando alguén marque como favorito algunha " "das miñas notas." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "Enviádeme un correo electrónico cando alguén me envíe unha mensaxe privada." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Enviádeme un correo electrónico cando alguén me envíe unha resposta." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" "Permitirlles aos meus amigos facerme acenos e enviarme correos electrónicos." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Quero publicar notas por correo electrónico." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publicar unha MicroID para o meu enderezo de correo electrónico." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Gardáronse as preferencias de correo electrónico." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Non hai enderezo de correo electrónico." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Non se pode normalizar ese enderezo de correo electrónico" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "O enderezo de correo electrónico é incorrecto." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Ese enderezo de correo electrónico é o que ten agora." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Ese enderezo de correo electrónico xa pertence a outro usuario." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Non se puido inserir o código de confirmación." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1553,50 +2339,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Non hai ningunha confirmación pendente que cancelar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Ese enderezo de correo electrónico é incorrecto." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Non se puido borrar a confirmación por correo electrónico." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Cancelouse a confirmación por correo electrónico." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Ese non é o seu enderezo de correo electrónico." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Borrouse o enderezo de correo electrónico." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Non hai ningún enderezo ao que enviar." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Non se puido actualizar o rexistro do usuario." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Borrouse o enderezo de correo electrónico entrante." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Engadiuse un novo enderezo de correo electrónico entrante." @@ -1604,11 +2396,11 @@ msgstr "Engadiuse un novo enderezo de correo electrónico entrante." msgid "This notice is already a favorite!" msgstr "A nota xa é unha das súas favoritas!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Desmarcar como favorita" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Notas populares" @@ -1644,7 +2436,7 @@ msgstr "" "engadir unha nota aos seus favoritos?" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Notas favoritas de %s" @@ -1713,7 +2505,7 @@ msgstr "Non se puido converter a ficha da solicitude nun pase." msgid "Remote service uses unknown version of OMB protocol." msgstr "O servizo remoto utiliza unha versión descoñecida do protocolo OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Houbo un erro ao actualizar o perfil remoto." @@ -1741,19 +2533,23 @@ msgstr "Non pode concederlles roles aos usuarios neste sitio." msgid "User already has this role." msgstr "O usuario xa ten este rol." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Non se especificou ningún perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Ningún perfil ten esa ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Non se especificou ningún grupo." @@ -1770,7 +2566,7 @@ msgstr "O usuario xa está excluído do grupo." msgid "User is not a member of group." msgstr "O usuario non pertence ao grupo." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Excluír do grupo ao usuario" @@ -1819,8 +2615,10 @@ msgstr "" "Personaliza o aspecto do grupo cunha imaxe de fondo e unha paleta de cores " "da súa escolla." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Non se puido actualizar o seu deseño." @@ -1840,6 +2638,14 @@ msgstr "" "Pode cargar un logo para o seu grupo. O tamaño máximo para o ficheiro é de %" "s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Cargar" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Recortar" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Escolla unha zona cadrada da imaxe para usala como logo." @@ -1852,49 +2658,56 @@ msgstr "Actualizouse o logo." msgid "Failed updating logo." msgstr "Non se puido actualizar o logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membros do grupo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros do grupo %1$s, páxina %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Unha lista dos usuarios pertencentes a este grupo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrador" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Excluír" +msgstr "Bloquear" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bloquear este usuario" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Converter ao usuario en administrador do grupo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Converter en administrador" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Converter a este usuario en administrador" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Liña do tempo de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1965,15 +2778,18 @@ msgstr "" "Por que non [rexistrar unha conta](%%action.register%%) e [crear o grupo](%%" "action.newgroup%%)?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Só os administradores poden readmitir a membros do grupo." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "O usuario non está excluído do grupo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Houbo un erro ao facer efectiva a readmisión." @@ -2023,7 +2839,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2034,65 +2853,65 @@ msgstr "" "instantánea ou en GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferencias de mensaxería instantánea" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Enviádeme as notas mediante Jabber ou GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Publicar unha nota cando cambie o meu estado en Jabber ou GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Enviádeme as respostas mediante Jabber ou GTalk da xente á que non estou " "subscrita." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publicar unha MicroID para o meu enderezo de Jabber ou GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Gardáronse as preferencias." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Non existe ningunha ID de Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Non se pode normalizar esa ID de Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "A ID de Jabber non é correcta" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Esa xa é a súa ID de Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Esa ID de Jabber xa corresponde a un usuario." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2102,28 +2921,28 @@ msgstr "" "engadiu. Ten que aprobar que %s lle envíe mensaxes." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Ese enderezo de mensaxería instantánea é incorrecto." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Non se puido borrar a confirmación por mensaxería instantánea." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Cancelouse a confirmación por mensaxería instantánea." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Esa ID de Jabber non é súa." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Borrouse o enderezo de mensaxería instantánea." @@ -2142,50 +2961,81 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Esta é a súa caixa de correo, onde se listan as mensaxes privadas recibidas." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "As invitacións están desactivadas." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Ten que identificarse para invitar a outros a usar %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Enderezo de correo electrónico incorrecto: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Enviáronse as invitacións" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invitar a novos usuarios" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Xa está subscrito aos seguintes usuarios:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Xa está subscrito aos seguintes usuarios:" +msgstr[1] "Xa está subscrito aos seguintes usuarios:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Estas persoas xa son usuarios e subscribíuselle automaticamente a elas:" +msgstr[1] "" "Estas persoas xa son usuarios e subscribíuselle automaticamente a elas:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Enviáronse invitacións ás seguintes persoas:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Enviáronse invitacións ás seguintes persoas:" +msgstr[1] "Enviáronse invitacións ás seguintes persoas:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2193,43 +3043,54 @@ msgstr "" "Notificaráselle cando os seus convidados acepten a invitación e se rexistren " "no sitio. Grazas por ampliar a comunidade!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Utilice o seguinte formulario para invitar aos seus amigos e compañeiros a " "utilizar este servizo." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Enderezos de correo electrónico" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Enderezos de amigos aos que invitar (un por liña)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Mensaxe persoal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Engadir opcionalmente unha mensaxe persoal á invitación." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s convidouno a unirse a el en %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2289,13 +3150,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Ten que identificarse para unirse a un grupo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Nin alcume nin ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s uniuse ao grupo %2$s" @@ -2304,17 +3159,123 @@ msgstr "%1$s uniuse ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Ten que identificarse para deixar un grupo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Non pertence a ese grupo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s deixou o grupo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licenza" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licenza deste sitio StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "A selección de licenza non é válida." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Cómpre especificar o propietario dos contidos ao empregar a licenza \"Todos " +"os dereitos reservados\"." + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Título de licenza incorrecto. A extensión máxima é de 255 caracteres." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Enderezo URL de licenza incorrecto." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Enderezo URL de imaxe de licenza incorrecto." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "O enderezo URL da licenza debe quedar baleiro ou ser válido." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "O enderezo URL da imaxe da licenza debe quedar baleiro ou ser válido." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Selección da licenza" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privado" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Todos os dereitos reservados" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Tipo" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Seleccionar unha licenza" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Detalles da licenza" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Propietario" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nome do propietario dos contidos deste sitio (se procede)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Título da licenza" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "O título da licenza." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL da licenza" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL para obter máis información sobre a licenza." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL da imaxe da licenza" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL dunha imaxe a mostrar coa licenza." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Gardar a configuración de licenza" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Xa se identificou." @@ -2337,11 +3298,11 @@ msgstr "Identificarse" msgid "Login to site" msgstr "Identificarse no sitio" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Lembrádeme" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Identificarse automaticamente no futuro. Non se aconsella en computadoras " @@ -2395,66 +3356,77 @@ msgstr "Non se pode converter a %1$s en administrador do grupo %2$s." msgid "No current status." msgstr "Sen estado actual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Aplicación nova" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Ten que identificarse para rexistrar unha aplicación." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Utilice o seguinte formulario para rexistrar unha aplicación nova." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Necesítase o URL de orixe." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Non se puido crear a aplicación." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Novo grupo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Utilice o seguinte formulario para crear un novo grupo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Mensaxe nova" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Non pode enviarlle unha mensaxe a este usuario." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Non hai contido ningún!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Non se especificou ningún destinatario." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Non se envíe unha mensaxe, limítese a pensar nela." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Enviouse a mensaxe" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Enviouse a mensaxe directa a %s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Houbo un erro de AJAX" @@ -2462,7 +3434,7 @@ msgstr "Houbo un erro de AJAX" msgid "New notice" msgstr "Nova nota" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Publicouse a nota" @@ -2513,8 +3485,10 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Actualizacións que conteñen o termo \"%1$s\" en %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Este usuario non permite acenos ou aínda non confirmou ou configurou o seu " "enderezo de correo electrónico." @@ -2527,74 +3501,98 @@ msgstr "Enviouse o aceno" msgid "Nudge sent!" msgstr "Enviouse o aceno!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Ten que identificarse para listar as súas aplicacións." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplicacións de OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplicacións que rexistrou" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Aínda non rexistrou ningunha aplicación." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Aplicacións conectadas" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +#, fuzzy +msgid "The following connections exist for your account." msgstr "Permitiulle o acceso á súa conta ás seguintes aplicacións." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Non é usuario desa aplicación." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "Non se puido revogar o acceso da aplicación: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Non autorizou o acceso á súa conta para ningunha aplicación." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Os desenvolvedores poden editar a configuración de rexistro das súas " -"aplicacións " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Non hai perfil para a nota." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Estado de %1$s en %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Non se soporta o tipo de contido %s." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Só %s enderezos URL sobre HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Non se soporta ese formato de datos." @@ -2606,36 +3604,46 @@ msgstr "Busca de xente" msgid "Notice Search" msgstr "Busca de notas" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Outras opcións" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Configure outras tantas opcións." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (servizo gratuíto)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Abreviar os enderezos URL con" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Servizo de abreviación automática a usar." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Deseños visuais do perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Amosar ou agochar os deseños do perfil." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "" "O servizo de abreviación de enderezos URL é longo de máis (o límite está en " "50 caracteres)." @@ -2700,7 +3708,7 @@ msgid "6 or more characters" msgstr "Seis ou máis caracteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmar" @@ -2712,11 +3720,11 @@ msgstr "Igual ao contrasinal anterior" msgid "Change" msgstr "Cambiar" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "O contrasinal debe conter seis ou máis caracteres." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Os contrasinais non coinciden." @@ -2736,156 +3744,286 @@ msgstr "Non se puido gardar o novo contrasinal." msgid "Password saved." msgstr "Gardouse o contrasinal." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Rutas" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Configuración do servidor e das rutas para este sitio StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Configuración do servidor e das rutas para este sitio StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Non se pode ler o directorio de temas visuais: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Non se pode escribir no directorio de avatares: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Non se pode escribir no directorio de fondos: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Non se pode ler o directorio de traducións: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servidor SSL incorrecto. O tamaño máximo é de 255 caracteres." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Sitio" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servidor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nome do servidor do sitio." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Ruta" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Ruta do sitio" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Ruta do sitio." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Ruta das traducións" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Directorio das traducións" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Ruta do directorio das traducións" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Ruta do directorio das traducións." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Enderezos URL elegantes" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Quere utilizar os enderezos URL elegantes (mellores de ler e lembrar)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema visual" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servidor de temas visuais" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Servidor para os temas visuais." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Ruta do tema visual" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directorio de temas visuais" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatares" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servidor de avatares" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Ruta do avatar" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directorio de avatares" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fondos" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servidor de fondos" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Ruta do fondo" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directorio de fondos" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nunca" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Ás veces" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Utilizar SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Cando utilizar SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servidor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Ruta de acceso SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Directorio de temas visuais" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Ruta do directorio das traducións" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatares" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servidor de avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Tema visual para o sitio." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Ruta do avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Non se puido actualizar o avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directorio de avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Ruta do directorio das traducións" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fondos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Tema visual para o sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Ruta do directorio das traducións" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Ficheiros anexos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Tema visual para o sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Non hai ningún dato adxunto." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Tema visual para o sitio." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Ruta do directorio das traducións" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nunca" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Ás veces" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Utilizar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Cando utilizar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "Servidor ao que dirixir as solicitudes SSL" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Gardar as rutas" @@ -2922,143 +4060,188 @@ msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’. msgstr "" "A licenza \"%1$s\" da nota non é compatible coa licenza \"%2$s\" do sitio." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configuración do perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Pode actualizar a información do seu perfil persoal para que a xente o " "coñeza mellor." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Información do perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, " "espazos, tiles ou eñes" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nome completo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Páxina persoal" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL da súa páxina persoal, blogue ou perfil noutro sitio" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descríbase a vostede e mailos seus intereses en %d caracteres" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descríbase a vostede e mailos seus intereses en %d caracteres" +msgstr[1] "Descríbase a vostede e mailos seus intereses en %d caracteres" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Descríbase a vostede e mailos seus intereses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografía" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Lugar" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Onde está a vivir, coma “localidade, provincia (ou comunidade), país”" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Compartir o lugar onde vivo ao publicar notas" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etiquetas" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquetas para vostede (letras salvo eñes e tiles, números, puntos, guións e " "guións baixos), separados por comas ou espazos" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Lingua" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Lingua escollida" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso horario" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "En que fuso horario adoita estar?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Subscribirse automaticamente a quen se subscriba a min (o mellor para os " "bots)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "A biografía é longa de máis (o límite son %d caracteres)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "A biografía é longa de máis (o límite son %d caracteres)." +msgstr[1] "A biografía é longa de máis (o límite son %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Non se escolleu ningún fuso horario." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "A lingua é longa de máis (o límite é de 50 caracteres)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta incorrecta: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Non se puido actualizar o usuario para subscribirse automaticamente." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Non se puideron gardar as preferencias de lugar." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Non se puido gardar o perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Non se puideron gardar as etiquetas." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Gardouse a configuración." @@ -3138,25 +4321,38 @@ msgstr "" "wikipedia.org/wiki/Microblogging) (en inglés) baseado na ferramenta de " "software libre [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Nube de etiquetas públicas" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Estas son as etiquetas máis populares en %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Ninguén publicou aínda ningunha nota cunha [etiqueta](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Sexa o primeiro en publicar unha!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3165,7 +4361,7 @@ msgstr "" "Por que non [rexistrar unha conta](%%action.register%%) e ser o primeiro en " "publicar unha?" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Nube de etiquetas" @@ -3284,14 +4480,15 @@ msgid "Unexpected password reset." msgstr "Restablecemento de contrasinal inesperado." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "O contrasinal debe ter seis ou máis caracteres." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "O contrasinal e a confirmación non coinciden." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Houbo un erro ao configurar o usuario." @@ -3299,7 +4496,7 @@ msgstr "Houbo un erro ao configurar o usuario." msgid "New password successfully saved. You are now logged in." msgstr "O novo contrasinal gardouse correctamente. Agora está identificado." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Só se pode rexistrar mediante invitación." @@ -3311,7 +4508,7 @@ msgstr "O código da invitación é incorrecto." msgid "Registration successful" msgstr "Rexistrouse correctamente" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Rexistrarse" @@ -3319,19 +4516,19 @@ msgstr "Rexistrarse" msgid "Registration not allowed." msgstr "Non se permite o rexistro." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Non pode rexistrarse se non acepta a licenza." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "O enderezo de correo electrónico xa existe." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "O nome de usuario ou contrasinal non son correctos." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3339,61 +4536,65 @@ msgstr "" "Con este formulario pode crear unha conta nova. Entón poderá publicar notas " "e porse en contacto con amigos e compañeiros. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, " "espazos, tiles ou eñes. Obrigatorio." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 ou máis caracteres. Obrigatorio." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "O mesmo contrasinal que o anterior. Obrigatorio." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Correo electrónico" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Só se utiliza para actualizacións, anuncios e recuperación de contrasinais" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nome longo, preferiblemente o seu nome \"real\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL da súa páxina persoal, blogue ou perfil noutro sitio" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "Entendo que o contido e os datos de %1$s son privados e confidenciais." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" "Os meus textos e ficheiros están protexidos polos dereitos de autor de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" "Os meus textos e ficheiros están protexidos polos meus propios dereitos de " "autor." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Todos os dereitos reservados." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3403,7 +4604,7 @@ msgstr "" "datos privados: contrasinais, enderezos de correo electrónico e mensaxería " "instantánea e números de teléfono." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3435,7 +4636,7 @@ msgstr "" "\n" "Grazas por rexistrarse. Esperamos que goce deste servizo." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3481,7 +4682,7 @@ msgstr "" "URL do seu perfil noutro servizo de mensaxes de blogue curtas compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscribirse" @@ -3519,7 +4720,7 @@ msgstr "Non pode repetir a súa propia nota." msgid "You already repeated that notice." msgstr "Xa repetiu esa nota." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetida" @@ -3528,7 +4729,7 @@ msgid "Repeated!" msgstr "Repetida!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respostas a %s" @@ -3607,13 +4808,13 @@ msgstr "O usuario xa está illado." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sesións" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Configuración da sesión para este sitio StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Configuración de sesión para este sitio StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3632,7 +4833,6 @@ msgid "Turn on debugging output for sessions." msgstr "Activar a saída de depuración para as sesións." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Gardar a configuración do sitio" @@ -3645,28 +4845,29 @@ msgid "Application profile" msgstr "Perfil da aplicación" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icona" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nome" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organización" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descrición" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3684,6 +4885,11 @@ msgstr "Accións da aplicación" msgid "Reset key & secret" msgstr "Restablecer o contrasinal ou a pregunta secreta" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Borrar" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Información da aplicación" @@ -3778,77 +4984,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Isto é un modo de compartir o que lle gusta." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Grupo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Grupo %1$s, páxina %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Pseudónimos" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Accións do grupo" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de novas das notas do grupo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de novas das notas do grupo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de novas das notas do grupo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Amigo dun amigo para o grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ningún)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Creado" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Membros" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3864,7 +5099,10 @@ msgstr "" "[Únase agora](%%%%action.register%%%%) para pasar a formar parte deste grupo " "e de moitos máis! ([Máis información](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3877,24 +5115,31 @@ msgstr "" "baseado na ferramenta de software libre [StatusNet](http://status.net/). Os " "seus membros comparten mensaxes curtas sobre as súas vidas e intereses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administradores" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Non se atopou esa mensaxe." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Esta mensaxe só a poden ler o destinatario e mais o remitente." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Mensaxe a %1$s en %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Mensaxe de %1$s en %2$s" @@ -3903,47 +5148,67 @@ msgstr "Mensaxe de %1$s en %2$s" msgid "Notice deleted." msgstr "Borrouse a nota." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " etiquetouse %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, páxina %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Notas etiquetadas con %1$s, páxina %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, páxina %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Fonte de novas das notas para %1$s etiquetadas con %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Fonte de novas das notas para %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Fonte de novas das notas para %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Fonte de novas das notas para %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "Amigo dun amigo para %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Esta é a liña do tempo para %1$s pero %2$s aínda non publicou nada." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3951,7 +5216,9 @@ msgstr "" "Viu algo interesante hoxe? Aínda non publicou ningunha nota, este sería un " "bo momento para comezar :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3960,7 +5227,9 @@ msgstr "" "Pode probar a facerlle un aceno a %1$s ou [publicar algo dirixido a el ou " "ela](%%%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3974,7 +5243,9 @@ msgstr "" "[Únase agora](%%%%action.register%%%%) para seguir as notas de **%s** e de " "moita máis xente! ([Máis información](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3985,7 +5256,8 @@ msgstr "" "blogue curtas](http://en.wikipedia.org/wiki/Microblogging) (en inglés) " "baseado na ferramenta de software libre [StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repeticións de %s" @@ -4101,32 +5373,41 @@ msgstr "" "Tempo (en segundos) que teñen que agardar os usuarios para publicar unha " "nota de novo." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Nota do sitio" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Editar a mensaxe global do sitio" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Non se puido gardar a nota do sitio." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "O tamaño máximo da nota global do sitio é de 255 caracteres." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Texto da nota do sitio" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" "Texto da nota global do sitio (255 caracteres como máximo, pode conter HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Gardar a nota do sitio" @@ -4288,7 +5569,7 @@ msgstr "Non se introduciu ningún código" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Instantáneas" @@ -4344,12 +5625,14 @@ msgstr "As instantáneas enviaranse a este URL" msgid "Save snapshot settings" msgstr "Gardar a configuración das instantáneas" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Non está subscrito a ese perfil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Non se puido gardar a subscrición." @@ -4357,10 +5640,6 @@ msgstr "Non se puido gardar a subscrición." msgid "This action only accepts POST requests." msgstr "Esta acción só permite solicitudes POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Non existe ese perfil." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Non se pode subscribir a un perfil remoto OMB 0.1 con esta acción." @@ -4369,39 +5648,56 @@ msgstr "Non se pode subscribir a un perfil remoto OMB 0.1 con esta acción." msgid "Subscribed" msgstr "Subscrito" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s subscritores" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s subscritores, páxina %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Estas son as persoas que seguen as súas notas." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Estas son as persoas que están seguindo as notas de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Non ten subscritores. Probe a subscribirse a xente que coñeza e pode que lle " "devolvan o favor" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s non ten subscritores. Quere ser o primeiro?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4410,26 +5706,31 @@ msgstr "" "%s non ten subscritores. Por que non [rexistrar unha conta](%%%%action." "register%%%%) e ser o primeiro?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s subscricións" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s subscricións, páxina %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Estas son as persoas cuxas notas segue." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Estas son as persoas cuxas notas segue %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4444,16 +5745,27 @@ msgstr "" "featured%%). Se é [usuario do Twitter](%%action.twittersettings%%), pode " "subscribirse automaticamente á xente que segue alí." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s non está seguindo a ninguén." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Fonte de novas das notas para %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4491,7 +5803,7 @@ msgid "User profile" msgstr "Perfil do usuario" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Fotografía" @@ -4557,74 +5869,96 @@ msgstr "" "licenza deste sitio: \"%2$s\"." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Usuario" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Preferencias de usuario para este sitio StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Configuración de usuario para este sitio StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Límite da biografía incorrecto. Debe ser numérico." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Texto de benvida incorrecto. A extensión máxima é de 255 caracteres." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Subscrición por defecto incorrecta. \"%1$s\" non é un usuario." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Límite da biografía" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Extensión máxima da biografía dun perfil en caracteres." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Novos usuarios" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Nova benvida para os usuarios" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Texto de benvida para os novos usuarios (255 caracteres como máximo)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Subscrición por defecto" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Subscribir automaticamente aos novos usuarios a este usuario." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitacións" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Activáronse as invitacións" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Permitir ou non que os usuarios poidan invitar a novos usuarios." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Gardar a configuración do usuario" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizar a subscrición" @@ -4639,7 +5973,9 @@ msgstr "" "deste usuario. Se non pediu a subscrición ás notas de alguén, prema en " "\"Rexeitar\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licenza" @@ -4727,11 +6063,13 @@ msgstr "Non se puido ler o URL do avatar, \"%s\"." msgid "Wrong image type for avatar URL ‘%s’." msgstr "O tipo de imaxe do URL do avatar, \"%s\", é incorrecto." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Deseño do perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4769,7 +6107,7 @@ msgstr "Probe a [buscar grupos](%%action.groupsearch%%) e unirse a eles." #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Actualizacións de %1$s en %2$s!" @@ -4830,7 +6168,7 @@ msgid "Plugins" msgstr "Complementos" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versión" @@ -4838,63 +6176,113 @@ msgstr "Versión" msgid "Author(s)" msgstr "Autores" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Marcar como favorito" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s marcou a nota %2$s como favorita" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Non se pode procesar o URL \"%s\"" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin pensa que algo é imposible." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Ningún ficheiro pode superar os %1$d bytes e o que enviou ocupaba %2$d. " +"Probe a subir un ficheiro máis pequeno." +msgstr[1] "" "Ningún ficheiro pode superar os %1$d bytes e o que enviou ocupaba %2$d. " "Probe a subir un ficheiro máis pequeno." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Un ficheiro deste tamaño excedería a súa cota de usuario, que é de %d bytes." +msgstr[1] "" "Un ficheiro deste tamaño excedería a súa cota de usuario, que é de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Un ficheiro deste tamaño excedería a súa cota mensual de %d bytes." +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Un ficheiro deste tamaño excedería a súa cota mensual de %d bytes." +msgstr[1] "Un ficheiro deste tamaño excedería a súa cota mensual de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nome de ficheiro incorrecto." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Non se puido unir ao grupo." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Non forma parte do grupo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Non se puido deixar o grupo." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "A identificación do perfil, %s, é incorrecta." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Houbo un erro ao gardar o usuario. Incorrecto." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Unirse" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s uniuse ao grupo %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4913,17 +6301,17 @@ msgid "No database name or DSN found anywhere." msgstr "Non se atopou por ningures o nome da base de datos ou DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Prohibíuselle enviar mensaxes directas de momento." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Non se puido inserir a mensaxe." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Non se puido actualizar a mensaxe co novo URI." @@ -4935,23 +6323,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Non existe tal perfil (%1$d) para a nota (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Houbo un erro na base de datos ao intentar inserir a etiqueta: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Houbo un problema ao gardar a nota. É longa de máis." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Houbo un problema ao gardar a nota. Descoñécese o usuario." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4959,7 +6347,7 @@ msgstr "" "publicar nuns minutos." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4968,36 +6356,51 @@ msgstr "" "publicar nuns minutos." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Prohibíuselle publicar notas neste sitio de momento." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Houbo un problema ao gardar a nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." msgstr "O tipo dado para saveKnownGroups era incorrecto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Houbo un problema ao gardar a caixa de entrada do grupo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Non se puido gardar a resposta a %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" -msgstr "♻ @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -5005,7 +6408,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5017,301 +6420,343 @@ msgid "Missing profile." msgstr "Falta o perfil de usuario." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Non se puido gardar a nota do sitio." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Prohibíuselle realizar subscricións de momento." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Xa está subscrito!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "O usuario bloqueouno." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Non está subscrito!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Non se puido borrar a subscrición a si mesmo." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Non se puido borrar o pase de subscrición OMB." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Non se puido borrar a subscrición." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Seguir" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s xa segue a %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvido a %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Non se estableceu ningún usuario único para o modo de usuario único." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Non se puido crear o grupo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Non se puido establecer o URI do grupo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Non se puido establecer a pertenza ao grupo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Non se puido gardar a información do grupo local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Cambie a configuración do seu perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Cargue un avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Cambie o seu contrasinal" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Cambie a xestión do correo electrónico" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Deseñe o seu perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Outras opcións" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Outros" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Páxina sen título" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Mostrar máis" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navegación principal do sitio" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Liña do tempo do perfil persoal e os amigos" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Persoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambie o seu correo electrónico, avatar, contrasinal ou perfil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Conta" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conectarse aos servizos" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Conectarse" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Cambiar a configuración do sitio" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrador" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convide a amigos e compañeiros a unírselle en %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Saír ao anonimato" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Saír" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear unha conta" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Rexistrarse" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Identificarse no sitio" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Identificarse" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Axuda!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Axuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Buscar persoas ou palabras" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Buscar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Nota do sitio" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vistas locais" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Nota da páxina" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navegación secundaria do sitio" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Axuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Acerca de" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Preguntas máis frecuentes" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Condicións do servicio" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Protección de datos" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Código fonte" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contacto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insignia" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licenza do software StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5321,13 +6766,16 @@ msgstr "" "site.broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** é un servizo de mensaxes de blogue curtas." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5339,20 +6787,20 @@ msgstr "" "GNU](http://www.fsf.org/licensing/licenses/agpl-3.0.html) (en inglés)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licenza dos contidos do sitio" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O contido e os datos de %1$s son privados e confidenciais." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5360,329 +6808,443 @@ msgstr "" "todos os dereitos." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Os contidos e datos son propiedade intelectual dos colaboradores. Quedan " "reservados todos os dereitos." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" "Todos os contidos e datos de %1$s están dispoñibles baixo a licenza %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paxinación" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Posteriores" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Anteriores" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "Esperábase unha fonte de novas raíz pero recibiuse un documento XML completo." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Fotografía" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Aínda non é posible manexar contidos remotos." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Aínda non se poden manexar contidos XML integrados." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Aínda non se poden manexar contidos Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Non pode realizar cambios neste sitio." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Non se permite realizar cambios nese panel." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() non está integrado." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() non está integrado." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Non se puido borrar a configuración do deseño." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuración básica do sitio" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Sitio" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuración do deseño" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Deseño" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuración do usuario" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usuario" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuración de acceso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuración das rutas" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuración das sesións" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Modificar a nota do sitio" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuración das instantáneas" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Definir a licenza do sitio" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "O recurso API precisa permisos de lectura e escritura, pero só dispón de " "permisos de lectura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Modificar a aplicación" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Non hai ningunha aplicación para esa clave." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Pase de acceso incorrecto." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Non hai ningún usuario para ese pase." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Non puidemos autenticalo." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Non se puideron crear os pseudónimos." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Non se puido crear a aplicación." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Non se puido inserir a mensaxe." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Houbo un erro na base de datos ao intentar inserir o usuario da aplicación " +"OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Intentouse revogar un pase descoñecido." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Erro ao borrar o pase revogado." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icona para esta aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Describa a súa aplicación en %d caracteres" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Describa a súa aplicación en %d caracteres" +msgstr[1] "Describa a súa aplicación en %d caracteres" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Describa a súa aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL do sitio web desta aplicación" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL de orixe" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organización responsable desta aplicación" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL do sitio web da organización" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL ao que ir tras a autenticación" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navegador" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Escritorio" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipo de aplicación, de navegador ou de escritorio" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Lectura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lectura e escritura" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Permisos por defecto para esta aplicación: lectura ou lectura e escritura" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancelar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lectura e escritura" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "lectura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprobado o %1$s - permisos de \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revogar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Ficheiros anexos" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "o elemento \"autor\" debe conter un nome." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Provedor" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Notas nas que se anexou este ficheiro" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etiquetas para este ficheiro" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Non se puido cambiar o contrasinal" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "Non se permite cambiar o contrasinal" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Excluír" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultados da orde" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Houbo un erro de AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Completouse a orde" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "A orde fallou" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Non hai ningunha nota con esa id" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Non hai ningunha nota con esa id." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "O usuario non ten ningunha última nota" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "O usuario non ten ningunha última nota." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Non se deu atopado ningún usuario co alcume %s" +msgid "Could not find a user with nickname %s." +msgstr "Non se deu atopado ningún usuario co alcume %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Non se deu atopado ningún usuario local co alcume %s" +msgid "Could not find a local user with nickname %s." +msgstr "Non se deu atopado ningún usuario local co alcume %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Esta orde aínda non está integrada." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Non ten sentido ningún facerse un aceno a un mesmo!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Fíxoselle un aceno a %s" +msgid "Nudge sent to %s." +msgstr "Fíxoselle un aceno a %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5693,55 +7255,64 @@ msgstr "" "Subscritores: %2$s\n" "Notas: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Marcouse a nota como favorita." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Xa forma parte dese grupo" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Non se puido meter ao usuario %1$s no grupo %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s uniuse ao grupo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Non se puido eliminar ao usuario %1$s do grupo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s deixou o grupo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Localidade: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Sitio web: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Acerca de: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5750,145 +7321,180 @@ msgstr "" "%s é un perfil remoto. Só pode enviarlle mensaxes persoais aos usuarios do " "mesmo servidor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "A mensaxe é longa de máis. O límite son %1$d caracteres, e enviou %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"A mensaxe é longa de máis, o límite de caracteres é de %1$d, e enviou %2$d." +msgstr[1] "" +"A mensaxe é longa de máis, o límite de caracteres é de %1$d, e enviou %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Envióuselle a mensaxe directa a %s" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Houbo un erro ao enviar a mensaxe directa." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Non pode repetir unha nota propia" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Xa repetiu esa nota" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Repetiuse a nota de %s" +msgid "Notice from %s repeated." +msgstr "Repetiuse a nota de %s." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Houbo un erro ao repetir a nota." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "A nota é longa de máis. O límite son %d caracteres, e enviou %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"A nota é longa de máis. O límite son %1$d caracteres, e enviou %2$d." +msgstr[1] "" +"A nota é longa de máis. O límite son %1$d caracteres, e enviou %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Enviouse a resposta a %s" +msgid "Reply to %s sent." +msgstr "Enviouse a resposta a %s." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Houbo un erro ao gardar a nota." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Introduza o nome do usuario ao que quere subscribirse" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Introduza o nome do usuario ao que quere subscribirse." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Non se pode subscribir aos perfís OMB cunha orde." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subscribiuse a %s" +msgid "Subscribed to %s." +msgstr "Subscribiuse a %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Introduza o nome do usuario ao que quer deixar de estar subscrito" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Introduza o nome do usuario ao que quer deixar de estar subscrito." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Cancelar a subscrición a %s" +msgid "Unsubscribed from %s." +msgstr "Cancelou a subscrición a %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Aínda non se integrou esa orde." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Desactivar a notificación." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Non se pode desactivar a notificación." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Activar a notificación." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Non se pode activar a notificación." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "A orde de identificación está desactivada" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "A orde de identificación está desactivada." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Esta ligazón só se pode utilizar unha vez, e só nos próximos dous minutos: %s" +"Esta ligazón só se pode utilizar unha vez, e só nos próximos dous minutos: %" +"s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Cancelou a subscrición a %s" +msgid "Unsubscribed %s." +msgstr "Cancelou a subscrición a %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Non está subscrito a ninguén." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Vostede está subscrito a esta persoa:" msgstr[1] "Vostede está subscrito a estas persoas:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Non hai ninguén subscrito a vostede." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Esta persoa está subscrita a vostede:" msgstr[1] "Estas persoas están subscritas a vostede:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Non forma parte de ningún grupo." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Vostede pertence a este grupo:" msgstr[1] "Vostede pertence a estes grupos:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5968,50 +7574,77 @@ msgstr "" "tracks - aínda non se integrou\n" "tracking - aínda non se integrou\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Non se atopou ningún ficheiro de configuración. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "Buscáronse ficheiros de configuración nos seguintes lugares: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Pode que queira executar o instalador para arranxalo." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Ir ao instalador." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Actualizacións por mensaxería instantánea (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Actualizacións por SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Conexións" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Aplicacións conectadas autorizadas" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Houbo un erro na base de datos" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Cargar un ficheiro" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6019,41 +7652,60 @@ msgstr "" "Pode cargar a súa imaxe de fondo persoal. O ficheiro non pode ocupar máis de " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Activado" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Desactivado" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Restablecer" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Restableceuse o deseño por defecto." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Desmarcar esta nota como favorita" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Marcar esta nota como favorita" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Marcar como favorito" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Amigo dun amigo" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportar os datos" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Fontes de novas" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6084,8 +7736,15 @@ msgstr "Continuar" msgid "Grant this user the \"%s\" role" msgstr "Outorgarlle a este usuario o rol \"%s\"" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, " +"espazos, tiles ou eñes" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL do sitio web persoal ou blogue do grupo ou tema" #: lib/groupeditform.php:168 @@ -6093,65 +7752,120 @@ msgid "Describe the group or topic" msgstr "Describa o grupo ou o tema" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Describa o grupo ou o tema en %d caracteres" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Describa o grupo ou o tema en %d caracteres" +msgstr[1] "Describa o grupo ou o tema en %d caracteres" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Localidade do grupo, se a ten, como por exemplo \"Cidade, Provincia, " "Comunidade, País\"" -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Alcumes adicionais para o grupo, separados por comas ou espazos, %d como " +"máximo" +msgstr[1] "" "Alcumes adicionais para o grupo, separados por comas ou espazos, %d como " "máximo" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupo" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupo %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membros" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membros do grupo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Bloqueado" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s usuarios bloqueados" +msgstr "Usuarios bloqueados en %s" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Modificar as propiedades do grupo %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logotipo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Engadir ou modificar o logotipo de %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Engadir ou modificar o deseño de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupos con máis membros" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupos con máis notas" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Etiquetas nas notas do grupo %s" @@ -6165,38 +7879,57 @@ msgstr "Esta páxina non está dispoñible nun formato axeitado para vostede" msgid "Unsupported image file format." msgstr "Non se soporta o formato da imaxe." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ese ficheiro é grande de máis. O tamaño máximo por ficheiro son %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Houbo un erro no sistema ao cargar o ficheiro." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "O ficheiro está mal ou non é unha imaxe." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Perdeuse o noso ficheiro." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Non se coñece o tipo de ficheiro" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6208,10 +7941,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Non se coñece a fonte %d da caixa de entrada." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Unirse" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Deixar" @@ -6224,27 +7953,29 @@ msgstr "Identificarse cun nome de usuario e contrasinal" msgid "Sign up for a new account" msgstr "Rexistrar unha conta nova" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmación do enderezo de correo electrónico" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Ola, %s:\n" "\n" @@ -6259,13 +7990,16 @@ msgstr "" "Grazas polo seu tempo, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "Agora %1$s segue as súas notas en %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6274,9 +8008,13 @@ msgstr "" "Se cre que esta conta se está usando con fins abusivos, pode bloquear a súa " "lista de subscritores e informar disto aos administradores do sitio en %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6284,10 +8022,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "Agora %1$s segue as súas notas en %2$s.\n" "\n" @@ -6301,21 +8039,25 @@ msgstr "" "Modifique o seu enderezo de correo electrónico ou as súas preferencias de " "notificación en %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografía: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Novo enderezo de correo electrónico para publicar en %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6324,7 +8066,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Ten un novo enderezo de correo electrónico para publicar en %1$s.\n" "\n" @@ -6335,32 +8077,37 @@ msgstr "" "Atentamente,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Estado de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmación dos SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" "%s: utilice o seguinte código para confirmar que o número de teléfono é seu:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s fíxolle un aceno" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6387,14 +8134,18 @@ msgstr "" "Atentamente,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nova mensaxe privada de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6427,14 +8178,19 @@ msgstr "" "Atentamente,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) marcou a súa nota como favorita" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6473,7 +8229,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6484,13 +8240,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) enviou unha nota á súa atención" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6552,7 +8315,7 @@ msgstr "" "Non ten mensaxes privadas. Pode enviar mensaxes privadas para conversar con " "outros usuarios. A xente pode enviarlle mensaxes para que só as lea vostede." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "de" @@ -6572,21 +8335,24 @@ msgstr "Ese non é o seu enderezo de correo electrónico para recibir correos." msgid "Sorry, no incoming email allowed." msgstr "Non se permite recibir correo electrónico." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Non se soporta o tipo de mensaxe: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Houbo un erro na base de datos ao gardar o seu ficheiro. Volva intentalo." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "O ficheiro subido supera a directiva upload_max_filesize no php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6594,87 +8360,137 @@ msgstr "" "O ficheiro subido supera a directiva MAX_FILE_SIZE especificada no " "formulario HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "O ficheiro só se subiu parcialmente." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Falta un cartafol temporal." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Non se puido escribir o ficheiro no disco." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Interrompeuse a carga do ficheiro por mor da extensión." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "O ficheiro supera a cota do usuario." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Non se puido mover o ficheiro ao directorio de destino." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Non se puido determinar o tipo MIME do ficheiro." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Inténteo utilizando outro formato %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" non é un tipo de ficheiro soportado neste servidor. Intente usar " +"outro formato de %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "Neste servidor non se soporta o tipo de ficheiro %s." +msgid "\"%s\" is not a supported file type on this server." +msgstr "Neste servidor non se soporta o tipo de ficheiro \"%s\"." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Enviar unha nota directa" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Seleccionar unha licenza" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Non está subscrito!" + +#: lib/messageform.php:153 msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caracteres dispoñibles" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"O alcume debe ter só letras en minúscula e números, e non pode ter espazos " +"en branco." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar unha nota" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Que hai de novo, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Anexar" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Anexar un ficheiro" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Publicar a miña localidade" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Non publicar a miña localidade" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6683,51 +8499,55 @@ msgstr "" "intentar máis tarde" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "L" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "en" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Repetiuse a nota" @@ -6743,55 +8563,52 @@ msgstr "Facer un aceno" msgid "Send a nudge to this user" msgstr "Facerlle un aceno a este usuario" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Houbo un erro ao inserir o novo perfil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Houbo un erro ao inserir o novo perfil." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Houbo un erro ao inserir o avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Houbo un erro ao inserir o avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Houbo un erro ao actualizar o perfil remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Houbo un erro ao inserir o perfil remoto." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Houbo un erro ao inserir o perfil remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Nota duplicada." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Nota duplicada" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Non se puido inserir unha subscrición nova." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persoal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respostas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritas" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Caixa de entrada" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "As mensaxes recibidas" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Caixa de saída" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "As mensaxes enviadas" @@ -6800,7 +8617,8 @@ msgstr "As mensaxes enviadas" msgid "Tags in %s's notices" msgstr "Etiquetas nas notas de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Descoñecida" @@ -6882,9 +8700,11 @@ msgstr "Repetir esta nota" msgid "Revoke the \"%s\" role from this user" msgstr "Revogarlle o rol \"%s\" a este usuario" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Non se estableceu ningún usuario único para o modo de usuario único." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Non se atopou o método da API." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6894,19 +8714,25 @@ msgstr "Illar" msgid "Sandbox this user" msgstr "Illar a este usuario" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Buscar no sitio" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Termos de busca" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Buscar" +msgstr "Procurar" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Buscar na axuda" @@ -6980,6 +8806,12 @@ msgstr "Nube de etiquetas que lle puxo a outras persoas" msgid "None" msgstr "Ningún" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nome de ficheiro incorrecto." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6991,27 +8823,32 @@ msgid "The theme file is missing or the upload failed." msgstr "O ficheiro do tema visual non existe ou a subida fallou." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Non se puido gardar o tema visual." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Tema visual inválido: a estrutura do directorio é incorrecta" #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"O tema visual cargado é grande de máis; o tamaño descomprimido non pode " +"superar os %d bytes." +msgstr[1] "" "O tema visual cargado é grande de máis; o tamaño descomprimido non pode " "superar os %d bytes." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Arquivo de tema visual inválido: falta o ficheiro css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7019,12 +8856,16 @@ msgstr "" "O tema visual contén un ficheiro inválido ou nome de cartafol incorrecto. " "Limíteo a letras ASCII, díxitos, barras baixas e signos menos." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "O tema visual contén nomes de extensión inseguros." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "O tema visual contén o tipo de ficheiro \".%s\". Non está permitido." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Houbo un erro ao abrir o arquivo do tema visual." @@ -7032,6 +8873,13 @@ msgstr "Houbo un erro ao abrir o arquivo do tema visual." msgid "Top posters" msgstr "Os que máis publican" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloquear" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Deixar de illar" @@ -7056,123 +8904,176 @@ msgstr "Cancelar a subscrición a este usuario" msgid "Unsubscribe" msgstr "Cancelar a subscrición" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "O usuario %s (%d) non ten perfil." +msgid "User %1$s (%2$d) has no profile record." +msgstr "O usuario %1$s (%2$d) non ten perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Modificar o avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Accións do usuario" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Procedendo a borrar o usuario..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Modificar a configuración do perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Modificar" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Enviarlle unha mensaxe directa a este usuario" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Mensaxe" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rol do usuario" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrador" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderador" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "hai uns segundos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "hai como un minuto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "hai como %d minutos" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "hai un minuto" +msgstr[1] "hai %d minutos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "hai como unha hora" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "hai como %d horas" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "hai unha hora" +msgstr[1] "hai %d horas" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "hai como un día" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "hai como %d días" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "hai un día" +msgstr[1] "hai %d días" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "hai como un mes" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "hai como %d meses" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "hai un mes" +msgstr[1] "hai %d meses" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "hai como un ano" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s non é unha cor correcta!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s non é unha cor correcta! Use 3 ou 6 caracteres hexadecimais." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "A mensaxe é longa de máis, o límite de caracteres é de %1$d, e enviou %2$d." +msgstr[1] "" +"A mensaxe é longa de máis, o límite de caracteres é de %1$d, e enviou %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Tamaño non válido." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Non se especificou ningún usuario; emprégase o usuario de reserva." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, fuzzy, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d entradas na reserva." +msgstr[1] "%d entradas na reserva." diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 64c36e84ee..ce4ca83ffc 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -1,54 +1,35 @@ -# Translation of StatusNet to Hebrew +# Translation of StatusNet - Core to Hebrew (עברית) +# Expored from translatewiki.net # # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:32+0000\n" -"Language-Team: Hebrew\n" +"POT-Creation-Date: 2010-09-18 22:06+0000\n" +"PO-Revision-Date: 2010-09-18 22:07:55+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. TRANS: Page title -#. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy -msgid "Access" -msgstr "קבל" +"X-POT-Import-Date: 1284-74-75 38::+0000\n" #. TRANS: Page notice #: actions/accessadminpanel.php:67 -#, fuzzy msgid "Site access settings" -msgstr "הגדרות" - -#. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 -#, fuzzy -msgid "Registration" -msgstr "הירשם" +msgstr "הגדרות הפרופיל" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" -#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy -msgctxt "LABEL" -msgid "Private" -msgstr "פרטיות" - #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 msgid "Make registration invitation only." @@ -64,47 +45,23 @@ msgstr "" msgid "Disable new registrations." msgstr "" -#. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 -#, fuzzy -msgid "Closed" -msgstr "אין משתמש כזה." - -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 -#, fuzzy -msgid "Save access settings" -msgstr "הגדרות" - -#. TRANS: Button label to save e-mail preferences. -#. TRANS: Button label to save IM preferences. -#. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 -#, fuzzy -msgctxt "BUTTON" -msgid "Save" -msgstr "שמור" - #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "אין הודעה כזו." +msgstr "אין משתמש כזה." +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. #: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 +#: actions/apiaccountupdatedeliverydevice.php:115 +#: actions/apiaccountupdateprofile.php:106 +#: actions/apiaccountupdateprofilebackgroundimage.php:117 +#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98 +#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77 +#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114 +#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101 +#: actions/apigroupleave.php:101 actions/apigrouplist.php:73 +#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -114,17 +71,11 @@ msgstr "אין הודעה כזו." #: actions/remotesubscribe.php:154 actions/replies.php:73 #: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 #: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#: actions/xrds.php:71 lib/command.php:498 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "אין משתמש כזה." -#. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format -msgid "%1$s and friends, page %2$d" -msgstr "%s וחברים" - #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname #. TRANS: Message is used as link title. %s is a user nickname. @@ -135,24 +86,6 @@ msgstr "%s וחברים" msgid "%s and friends" msgstr "%s וחברים" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 -#, fuzzy, php-format -msgid "Feed for friends of %s (RSS 1.0)" -msgstr "הזנות החברים של %s" - -#. TRANS: %1$s is user nickname -#: actions/all.php:116 -#, fuzzy, php-format -msgid "Feed for friends of %s (RSS 2.0)" -msgstr "הזנות החברים של %s" - -#. TRANS: %1$s is user nickname -#: actions/all.php:125 -#, fuzzy, php-format -msgid "Feed for friends of %s (Atom)" -msgstr "הזנות החברים של %s" - #. TRANS: %1$s is user nickname #: actions/all.php:138 #, php-format @@ -182,12 +115,6 @@ msgid "" "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 -#, fuzzy -msgid "You and friends" -msgstr "%s וחברים" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. #: actions/allrss.php:121 actions/apitimelinefriends.php:216 @@ -196,75 +123,41 @@ msgstr "%s וחברים" msgid "Updates from %1$s and friends on %2$s!" msgstr "" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy -msgid "API method not found." -msgstr "קוד האישור לא נמצא." - -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:87 +#: actions/apiaccountupdateprofile.php:90 +#: actions/apiaccountupdateprofilebackgroundimage.php:87 +#: actions/apiaccountupdateprofilecolors.php:111 +#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90 +#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110 +#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93 +#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92 +#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93 +#: actions/apigroupleave.php:93 actions/apimediaupload.php:68 +#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199 msgid "This method requires a POST." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:106 +#: actions/apiaccountupdatedeliverydevice.php:107 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy -msgid "Could not update user." -msgstr "עידכון המשתמש נכשל." - -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 -#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 +#: actions/apiaccountupdateprofile.php:113 +#: actions/apiaccountupdateprofilebackgroundimage.php:195 +#: actions/apiaccountupdateprofilecolors.php:186 +#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "למשתמש אין פרופיל." -#: actions/apiaccountupdateprofile.php:147 -#, fuzzy -msgid "Could not save profile." -msgstr "שמירת הפרופיל נכשלה." - -#: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 +#: actions/apiaccountupdateprofilebackgroundimage.php:109 +#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -274,32 +167,21 @@ msgid "" "current configuration." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#: actions/apiaccountupdateprofilebackgroundimage.php:137 +#: actions/apiaccountupdateprofilebackgroundimage.php:147 +#: actions/apiaccountupdateprofilecolors.php:165 +#: actions/apiaccountupdateprofilecolors.php:175 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy -msgid "Could not update your design." -msgstr "עידכון המשתמש נכשל." - -#: actions/apiblockcreate.php:105 -#, fuzzy -msgid "You cannot block yourself!" -msgstr "עידכון המשתמש נכשל." - -#: actions/apiblockcreate.php:126 +#: actions/apiblockcreate.php:127 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:114 +#: actions/apiblockdestroy.php:115 msgid "Unblock user failed." msgstr "" @@ -323,218 +205,121 @@ msgstr "" msgid "All the direct messages sent to %s" msgstr "" -#: actions/apidirectmessagenew.php:118 -msgid "No message text!" -msgstr "" - -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." - -#: actions/apidirectmessagenew.php:138 -msgid "Recipient user not found." -msgstr "" - -#: actions/apidirectmessagenew.php:142 +#: actions/apidirectmessagenew.php:143 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "" -#: actions/apifavoritecreate.php:120 -#, fuzzy -msgid "This status is already a favorite." -msgstr "זהו כבר זיהוי ה-Jabber שלך." - -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 -msgid "Could not create favorite." -msgstr "" - -#: actions/apifavoritedestroy.php:123 +#: actions/apifavoritedestroy.php:124 msgid "That status is not a favorite." msgstr "" -#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 -msgid "Could not delete favorite." -msgstr "" - -#: actions/apifriendshipscreate.php:109 -#, fuzzy +#: actions/apifriendshipscreate.php:110 msgid "Could not follow user: profile not found." -msgstr "נכשלה ההפניה לשרת: %s" +msgstr "שמירת הפרופיל נכשלה." -#: actions/apifriendshipscreate.php:118 +#: actions/apifriendshipscreate.php:119 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" -#: actions/apifriendshipsdestroy.php:109 -#, fuzzy -msgid "Could not unfollow user: User not found." -msgstr "נכשלה ההפניה לשרת: %s" - -#: actions/apifriendshipsdestroy.php:120 -#, fuzzy -msgid "You cannot unfollow yourself." -msgstr "עידכון המשתמש נכשל." - #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 -#, fuzzy -msgid "Could not determine source user." -msgstr "עידכון המשתמש נכשל." - -#: actions/apifriendshipsshow.php:142 -#, fuzzy -msgid "Could not find target user." -msgstr "עידכון המשתמש נכשל." - -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 +#: actions/apigroupcreate.php:168 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:212 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "כינוי יכול להכיל רק אותיות אנגליות קטנות ומספרים, וללא רווחים." -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 +#: actions/apigroupcreate.php:177 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:215 msgid "Nickname already in use. Try another one." msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 +#: actions/apigroupcreate.php:184 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:217 msgid "Not a valid nickname." msgstr "שם משתמש לא חוקי." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 +#: actions/apigroupcreate.php:200 actions/editapplication.php:215 #: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:224 msgid "Homepage is not a valid URL." msgstr "לאתר הבית יש כתובת לא חוקית." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 +#: actions/apigroupcreate.php:209 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:227 msgid "Full name is too long (max 255 chars)." msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 +#: actions/apigroupcreate.php:217 actions/editapplication.php:190 #: actions/newapplication.php:172 -#, fuzzy, php-format +#, php-format msgid "Description is too long (max %d chars)." -msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" +msgstr "שם המיקום ארוך מידי (מותר עד %d אותיות)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 +#: actions/apigroupcreate.php:228 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:234 msgid "Location is too long (max 255 chars)." msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 +#: actions/apigroupcreate.php:247 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format +#: actions/apigroupcreate.php:268 +#, php-format msgid "Invalid alias: \"%s\"." -msgstr "כתובת אתר הבית '%s' אינה חוקית" +msgstr "גודל לא חוקי." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format -msgid "Alias \"%s\" already in use. Try another one." -msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." - -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 +#: actions/apigroupcreate.php:290 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 +#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106 +#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy msgid "Group not found." -msgstr "לא נמצא" +msgstr "קוד האישור לא נמצא." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336 msgid "You are already a member of that group." -msgstr "כבר נכנסת למערכת!" +msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s." -msgstr "נכשלה ההפניה לשרת: %s" - -#: actions/apigroupleave.php:115 -#, fuzzy -msgid "You are not a member of this group." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s." -msgstr "נכשלה יצירת OpenID מתוך: %s" - -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 -#, fuzzy, php-format -msgid "%s's groups" -msgstr "פרופיל" - -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, fuzzy, php-format -msgid "%1$s groups %2$s is a member of." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#. TRANS: Message is used as a title. %s is a site name. -#. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 -#, php-format -msgid "%s groups" -msgstr "" - #: actions/apigrouplistall.php:96 #, php-format msgid "groups on %s" msgstr "" -#: actions/apimediaupload.php:99 -#, fuzzy -msgid "Upload failed." -msgstr "ההעלה" - #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." -msgstr "גודל לא חוקי." - #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 +#: actions/groupunblock.php:66 actions/imsettings.php:230 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 @@ -548,21 +333,6 @@ msgstr "גודל לא חוקי." msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 -#, fuzzy -msgid "Invalid nickname / password!" -msgstr "שם המשתמש או הסיסמה לא חוקיים" - -#: actions/apioauthauthorize.php:159 -#, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "שגיאה ביצירת שם המשתמש." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" - #: actions/apioauthauthorize.php:214 #, php-format msgid "" @@ -580,8 +350,8 @@ msgstr "" #. TRANS: Message given submitting a form with an unknown action in SMS settings. #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#: actions/emailsettings.php:290 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:277 lib/designsettings.php:304 msgid "Unexpected form submission." @@ -603,12 +373,6 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 -#, fuzzy -msgid "Account" -msgstr "אודות" - #: actions/apioauthauthorize.php:313 actions/login.php:252 #: actions/profilesettings.php:106 actions/register.php:431 #: actions/showgroup.php:245 actions/tagother.php:94 @@ -643,113 +407,42 @@ msgstr "" msgid "You may not delete another user's status." msgstr "" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 +#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 msgid "No such notice." msgstr "אין הודעה כזו." -#: actions/apistatusesretweet.php:83 -#, fuzzy -msgid "Cannot repeat your own notice." -msgstr "לא ניתן להירשם ללא הסכמה לרשיון" - -#: actions/apistatusesretweet.php:91 -#, fuzzy -msgid "Already repeated that notice." -msgstr "כבר נכנסת למערכת!" - -#: actions/apistatusesshow.php:139 -#, fuzzy -msgid "Status deleted." -msgstr "התמונה עודכנה." - #: actions/apistatusesshow.php:145 msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:221 +#: actions/apistatusesupdate.php:222 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 -#: lib/mailhandler.php:60 -#, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." - -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -#, fuzzy -msgid "Not found." -msgstr "לא נמצא" - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:307 actions/newnotice.php:181 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 -#, fuzzy -msgid "Unsupported format." -msgstr "פורמט התמונה אינו נתמך." - -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format -msgid "%1$s / Favorites from %2$s" -msgstr "הסטטוס של %1$s ב-%2$s " - -#: actions/apitimelinefavorites.php:119 -#, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "מיקרובלוג מאת %s" - -#: actions/apitimelinementions.php:118 -#, fuzzy, php-format -msgid "%1$s / Updates mentioning %2$s" -msgstr "הסטטוס של %1$s ב-%2$s " - #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 -#, php-format -msgid "%s public timeline" -msgstr "" - #: actions/apitimelinepublic.php:202 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format -msgid "Repeated to %s" -msgstr "תגובת עבור %s" - -#: actions/apitimelineretweetsofme.php:114 -#, fuzzy, php-format -msgid "Repeats of %s" -msgstr "תגובת עבור %s" - #: actions/apitimelinetag.php:105 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, fuzzy, php-format -msgid "Updates tagged with %1$s on %2$s!" -msgstr "מיקרובלוג מאת %s" - -#: actions/apitrends.php:87 -msgid "API method under construction." -msgstr "" - #: actions/attachment.php:73 -#, fuzzy msgid "No such attachment." -msgstr "אין מסמך כזה." +msgstr "אין הודעה כזו." #: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 #: actions/editgroup.php:84 actions/groupdesignsettings.php:84 @@ -772,23 +465,10 @@ msgstr "גודל לא חוקי." msgid "Avatar" msgstr "תמונה" -#: actions/avatarsettings.php:78 -#, php-format -msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" - -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 -#: actions/grouplogo.php:181 actions/remotesubscribe.php:191 -#: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy -msgid "User without matching profile." -msgstr "למשתמש אין פרופיל." - #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:254 -#, fuzzy msgid "Avatar settings" -msgstr "הגדרות" +msgstr "הגדרות הפרופיל" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:202 actions/grouplogo.php:262 @@ -800,25 +480,10 @@ msgstr "" msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 -#, fuzzy -msgid "Delete" -msgstr "מחק" - #: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "ההעלה" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 -msgid "Crop" -msgstr "" - -#: actions/avatarsettings.php:305 -#, fuzzy -msgid "No file uploaded." -msgstr "העלאה חלקית." - #: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" @@ -835,20 +500,9 @@ msgstr "התמונה עודכנה." msgid "Failed updating avatar." msgstr "עדכון התמונה נכשל." -#: actions/avatarsettings.php:397 -#, fuzzy -msgid "Avatar deleted." -msgstr "התמונה עודכנה." - #: actions/block.php:69 -#, fuzzy msgid "You already blocked that user." -msgstr "כבר נכנסת למערכת!" - -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy -msgid "Block user" -msgstr "אין משתמש כזה." +msgstr "זיהוי ה-Jabber כבר שייך למשתמש אחר." #: actions/block.php:138 msgid "" @@ -857,49 +511,12 @@ msgid "" "will not be notified of any @-replies from them." msgstr "" -#. TRANS: Button label on the user block form. -#. TRANS: Button label on the delete application form. -#. TRANS: Button label on the delete notice form. -#. TRANS: Button label on the delete user form. -#. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy -msgctxt "BUTTON" -msgid "No" -msgstr "לא" - -#. TRANS: Submit button title for 'No' when blocking a user. -#. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 -#, fuzzy -msgid "Do not block this user" -msgstr "אין משתמש כזה." - -#. TRANS: Button label on the user block form. -#. TRANS: Button label on the delete application form. -#. TRANS: Button label on the delete notice form. -#. TRANS: Button label on the delete user form. -#. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 -#, fuzzy -msgctxt "BUTTON" -msgid "Yes" -msgstr "כן" - -#. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -#, fuzzy -msgid "Block this user" -msgstr "אין משתמש כזה." - #: actions/block.php:187 msgid "Failed to save block information." msgstr "" +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. #: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 #: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 @@ -909,46 +526,20 @@ msgstr "" #: actions/groupunblock.php:86 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:170 +#: lib/command.php:383 msgid "No such group." -msgstr "אין הודעה כזו." - -#: actions/blockedfromgroup.php:97 -#, fuzzy, php-format -msgid "%s blocked profiles" -msgstr "למשתמש אין פרופיל." - -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format -msgid "%1$s blocked profiles, page %2$d" -msgstr "%s וחברים" +msgstr "אין משתמש כזה." #: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:288 -#, fuzzy -msgid "Unblock user from group" -msgstr "אין משתמש כזה." - -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Title for the form to unblock a user. +#: actions/blockedfromgroup.php:320 lib/unblockform.php:70 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 -#, fuzzy -msgid "Unblock this user" -msgstr "אין משתמש כזה." - -#. TRANS: Title for mini-posting window loaded from bookmarklet. -#: actions/bookmarklet.php:51 -#, fuzzy, php-format -msgid "Post to %s" -msgstr "תגובת עבור %s" - #: actions/confirmaddress.php:75 msgid "No confirmation code." msgstr "אין קוד אישור." @@ -961,12 +552,6 @@ msgstr "קוד האישור לא נמצא." msgid "That confirmation code is not for you!" msgstr "קוד האישור הזה אינו מיועד לך!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 -#, fuzzy, php-format -msgid "Unrecognized address type %s." -msgstr "סוג לא מזוהה של כתובת %s" - #. TRANS: Client error for an already confirmed email/jabbel/sms address. #: actions/confirmaddress.php:96 msgid "That address has already been confirmed." @@ -978,68 +563,39 @@ msgstr "כתובת זו כבר אושרה." #. TRANS: Server error thrown on database error removing a registered IM address. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 +#: actions/confirmaddress.php:116 actions/emailsettings.php:331 +#: actions/emailsettings.php:477 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:174 #: actions/profilesettings.php:283 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "עידכון המשתמש נכשל." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "" - #: actions/confirmaddress.php:146 -#, fuzzy msgid "Confirm address" -msgstr "אשר כתובת" +msgstr "אשר" #: actions/confirmaddress.php:161 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "הכתובת \"%s\" אושרה עבור חשבונך." -#: actions/conversation.php:99 -#, fuzzy -msgid "Conversation" -msgstr "מיקום" - #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "הודעות" -#: actions/deleteapplication.php:63 -#, fuzzy -msgid "You must be logged in to delete an application." -msgstr "עידכון המשתמש נכשל." - #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "להודעה אין פרופיל" - -#: actions/deleteapplication.php:78 actions/editapplication.php:77 -#: actions/showapplication.php:94 -#, fuzzy -msgid "You are not the owner of this application." -msgstr "לא שלחנו אלינו את הפרופיל הזה" +msgstr "קוד האישור לא נמצא." +#. TRANS: Client error text when there is a problem with the session token. #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#: lib/action.php:1315 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy -msgid "Delete application" -msgstr "אין הודעה כזו." - #: actions/deleteapplication.php:149 msgid "" "Are you sure you want to delete this application? This will clear all data " @@ -1047,25 +603,13 @@ msgid "" "connections." msgstr "" -#. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy -msgid "Do not delete this application" -msgstr "אין הודעה כזו." - -#. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 -#, fuzzy -msgid "Delete this application" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "לא מחובר." @@ -1080,56 +624,24 @@ msgid "" "be undone." msgstr "" -#: actions/deletenotice.php:109 actions/deletenotice.php:141 -msgid "Delete notice" -msgstr "" - #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" msgstr "" -#. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 -#, fuzzy -msgid "Do not delete this notice" -msgstr "אין הודעה כזו." - #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:158 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" -#: actions/deleteuser.php:67 -#, fuzzy -msgid "You cannot delete users." -msgstr "עידכון המשתמש נכשל." - -#: actions/deleteuser.php:74 -#, fuzzy -msgid "You can only delete local users." -msgstr "ניתן להשתמש במנוי המקומי!" - -#: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy -msgid "Delete user" -msgstr "מחק" - #: actions/deleteuser.php:136 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 "" -#. TRANS: Submit button title for 'Yes' when deleting a user. -#: actions/deleteuser.php:163 lib/deleteuserform.php:77 -#, fuzzy -msgid "Delete this user" -msgstr "אין משתמש כזה." - #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1137,45 +649,14 @@ msgstr "" msgid "Design settings for this StatusNet site." msgstr "" -#: actions/designadminpanel.php:318 -#, fuzzy -msgid "Invalid logo URL." -msgstr "גודל לא חוקי." - -#: actions/designadminpanel.php:322 -#, fuzzy, php-format -msgid "Theme not available: %s." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - #: actions/designadminpanel.php:426 -#, fuzzy msgid "Change logo" -msgstr "שנה סיסמה" - -#: actions/designadminpanel.php:431 -#, fuzzy -msgid "Site logo" -msgstr "הודעה חדשה" - -#: actions/designadminpanel.php:443 -#, fuzzy -msgid "Change theme" msgstr "שנה" -#: actions/designadminpanel.php:460 -#, fuzzy -msgid "Site theme" -msgstr "הודעה חדשה" - #: actions/designadminpanel.php:461 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 -#, fuzzy -msgid "Custom theme" -msgstr "הודעה חדשה" - #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" @@ -1189,13 +670,6 @@ msgstr "" msgid "Background" msgstr "" -#: actions/designadminpanel.php:496 -#, fuzzy, php-format -msgid "" -"You can upload a background image for the site. The maximum file size is %1" -"$s." -msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." - #. TRANS: Used as radio button label to add a background image. #: actions/designadminpanel.php:527 lib/designsettings.php:139 msgid "On" @@ -1214,30 +688,10 @@ msgstr "" msgid "Tile background image" msgstr "" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 -#, fuzzy -msgid "Change colours" -msgstr "שנה סיסמה" - -#: actions/designadminpanel.php:587 lib/designsettings.php:191 -#, fuzzy -msgid "Content" -msgstr "התחבר" - -#: actions/designadminpanel.php:600 lib/designsettings.php:204 -#, fuzzy -msgid "Sidebar" -msgstr "חיפוש" - #: actions/designadminpanel.php:613 lib/designsettings.php:217 msgid "Text" msgstr "טקסט" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy -msgid "Links" -msgstr "היכנס" - #: actions/designadminpanel.php:651 msgid "Advanced" msgstr "" @@ -1258,13 +712,13 @@ msgstr "" msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title +#. TRANS: Submit button title. #: actions/designadminpanel.php:685 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 #: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 +#: actions/useradminpanel.php:294 lib/applicationeditform.php:353 #: lib/designsettings.php:256 lib/groupeditform.php:202 msgid "Save" msgstr "שמור" @@ -1277,31 +731,15 @@ msgstr "" msgid "This notice is not a favorite!" msgstr "" -#: actions/disfavor.php:94 -#, fuzzy -msgid "Add to favorites" -msgstr "מועדפים" - #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "אין מסמך כזה." - -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "להודעה אין פרופיל" +msgstr "אין הודעה כזו." #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy -msgid "No such application." -msgstr "אין הודעה כזו." - #: actions/editapplication.php:161 msgid "Use this form to edit your application." msgstr "" @@ -1310,39 +748,18 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" - -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy -msgid "Name already in use. Try another one." -msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." - #: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy msgid "Description is required." -msgstr "הרשמות" +msgstr "ההרשמה נדחתה" #: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy -msgid "Source URL is not valid." -msgstr "לאתר הבית יש כתובת לא חוקית." - #: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." - #: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" @@ -1355,11 +772,6 @@ msgstr "" msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 -#, fuzzy -msgid "Could not update application." -msgstr "עידכון המשתמש נכשל." - #: actions/editgroup.php:56 #, php-format msgid "Edit %s group" @@ -1379,36 +791,14 @@ msgid "Use this form to edit the group." msgstr "" #: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format +#, php-format msgid "description is too long (max %d chars)." -msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 -#, fuzzy, php-format -msgid "Invalid alias: \"%s\"" -msgstr "כתובת אתר הבית '%s' אינה חוקית" - -#: actions/editgroup.php:258 -#, fuzzy -msgid "Could not update group." -msgstr "עידכון המשתמש נכשל." +msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." #. TRANS: Server exception thrown when creating group aliases failed. #: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy msgid "Could not create aliases." -msgstr "שמירת מידע התמונה נכשל" - -#: actions/editgroup.php:280 -#, fuzzy -msgid "Options saved." -msgstr "ההגדרות נשמרו." - -#. TRANS: Title for e-mail settings. -#: actions/emailsettings.php:61 -#, fuzzy -msgid "Email settings" -msgstr "הגדרות הפרופיל" +msgstr "עידכון המשתמש נכשל." #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1417,227 +807,117 @@ msgstr "הגדרות הפרופיל" msgid "Manage how you get email from %%site.name%%." msgstr "" -#. TRANS: Form legend for e-mail settings form. -#. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy -msgid "Email address" -msgstr "כתובת מסרים מידיים" - -#. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 -msgid "Current confirmed email address." -msgstr "" - #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:115 actions/emailsettings.php:162 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "הסר" +msgstr "שיחזור" -#: actions/emailsettings.php:122 -msgid "" -"Awaiting confirmation on this address. Check your inbox (and spam box!) for " -"a message with further instructions." -msgstr "" - -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "בטל" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:139 msgid "Email address, like \"UserName@example.org\"" msgstr "" -#. TRANS: Button label for adding an e-mail address in e-mail settings form. -#. TRANS: Button label for adding an IM address in IM settings form. -#. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 -#: actions/smssettings.php:162 -#, fuzzy -msgctxt "BUTTON" -msgid "Add" -msgstr "הוסף" - #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:151 actions/smssettings.php:171 msgid "Incoming email" msgstr "" #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:159 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" #. TRANS: Instructions for incoming e-mail address input form. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:168 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" -#. TRANS: Button label for adding an e-mail address to send notices from. -#. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 -#, fuzzy -msgctxt "BUTTON" -msgid "New" -msgstr "חדש" - -#. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy -msgid "Email preferences" -msgstr "העדפות" - #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 -msgid "Send me notices of new subscriptions through email." -msgstr "" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:190 msgid "Send me email when someone adds my notice as a favorite." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:197 msgid "Send me email when someone sends me a private message." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:203 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:209 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 +#: actions/emailsettings.php:216 msgid "I want to post notices by email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:223 msgid "Publish a MicroID for my email address." msgstr "" -#. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy -msgid "Email preferences saved." -msgstr "העדפות נשמרו." - #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:357 msgid "No email address." msgstr "" -#. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 -msgid "Cannot normalize that email address" -msgstr "" - -#. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 -#: actions/siteadminpanel.php:144 -msgid "Not a valid email address." -msgstr "" - -#. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 -msgid "That is already your email address." -msgstr "" - -#. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 -msgid "That email address already belongs to another user." -msgstr "" - #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:395 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "הכנסת קוד האישור נכשלה." -#. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 -msgid "" -"A confirmation code was sent to the email address you added. Check your " -"inbox (and spam box!) for the code and instructions on how to use it." -msgstr "" - #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:423 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "אין אישור ממתין שניתן לבטל." -#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy -msgid "That is the wrong email address." -msgstr "זוהי כתובת מסרים מידיים שגויה." - #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:442 msgid "Email confirmation cancelled." -msgstr "האישור בוטל." - -#. TRANS: Message given trying to remove an e-mail address that is not -#. TRANS: registered for the active user. -#: actions/emailsettings.php:458 -msgid "That is not your email address." -msgstr "" +msgstr "אין אישור ממתין שניתן לבטל." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:483 msgid "The email address was removed." -msgstr "הכתובת הוסרה." +msgstr "כתובת זו כבר אושרה." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:497 actions/smssettings.php:568 msgid "No incoming email address." msgstr "" -#. TRANS: Server error thrown on database error removing incoming e-mail address. -#. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 -#: actions/smssettings.php:578 actions/smssettings.php:602 -msgid "Couldn't update user record." -msgstr "" - #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:512 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "" #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:536 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "" @@ -1649,17 +929,6 @@ msgstr "" msgid "Disfavor favorite" msgstr "" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 -#: lib/publicgroupnav.php:93 -#, fuzzy -msgid "Popular notices" -msgstr "אין הודעה כזו." - -#: actions/favorited.php:67 -#, fuzzy, php-format -msgid "Popular notices, page %d" -msgstr "אין הודעה כזו." - #: actions/favorited.php:79 msgid "The most popular notices on the site right now." msgstr "" @@ -1687,11 +956,6 @@ msgstr "" msgid "%s's favorite notices" msgstr "" -#: actions/favoritesrss.php:115 -#, fuzzy, php-format -msgid "Updates favored by %1$s on %2$s!" -msgstr "מיקרובלוג מאת %s" - #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" @@ -1708,34 +972,17 @@ msgid "A selection of some great users on %s" msgstr "" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "הודעה חדשה" +msgstr "אין הודעה כזו." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "הודעה חדשה" - -#: actions/file.php:42 -#, fuzzy -msgid "No attachments." -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 "המשתמש אליו אתה מאזין אינו קיים." - #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" msgstr "ניתן להשתמש במנוי המקומי!" @@ -1745,54 +992,17 @@ msgid "That user has blocked you from subscribing." 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" - -#: actions/finishremotesubscribe.php:138 -#, fuzzy -msgid "Error updating remote profile." -msgstr "שגיאה בעדכון פרופיל מרוחק" - -#: actions/getfile.php:79 -#, fuzzy -msgid "No such file." -msgstr "אין הודעה כזו." +msgstr "ההרשמה אושרה" #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "אין הודעה כזו." - -#: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy -msgid "Invalid role." -msgstr "גודל לא חוקי." +msgstr "שמירת הפרופיל נכשלה." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" -#: actions/grantrole.php:75 -#, fuzzy -msgid "You cannot grant user roles on this site." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/grantrole.php:82 -#, fuzzy -msgid "User already has this role." -msgstr "למשתמש אין פרופיל." - #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:79 @@ -1814,21 +1024,6 @@ msgstr "" msgid "Only an admin can block group members." msgstr "" -#: actions/groupblock.php:95 -#, fuzzy -msgid "User is already blocked from group." -msgstr "למשתמש אין פרופיל." - -#: actions/groupblock.php:100 -#, fuzzy -msgid "User is not a member of group." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy -msgid "Block user from group" -msgstr "אין משתמש כזה." - #: actions/groupblock.php:160 #, php-format msgid "" @@ -1837,126 +1032,72 @@ msgid "" "the group in the future." msgstr "" -#. TRANS: Submit button title for 'No' when blocking a user from a group. -#: actions/groupblock.php:182 -#, fuzzy -msgid "Do not block this user from this group" -msgstr "נכשלה ההפניה לשרת: %s" - -#. TRANS: Submit button title for 'Yes' when blocking a user from a group. -#: actions/groupblock.php:189 -#, fuzzy -msgid "Block this user from this group" -msgstr "אין משתמש כזה." - #: actions/groupblock.php:206 msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "אין זיהוי." +msgstr "אין זיהוי Jabber כזה." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:144 -#, fuzzy -msgid "Group design" -msgstr "קבוצות" - #: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy -msgid "Couldn't update your design." -msgstr "עידכון המשתמש נכשל." - -#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy -msgid "Design preferences saved." -msgstr "העדפות נשמרו." - -#: actions/grouplogo.php:142 actions/grouplogo.php:195 -msgid "Group logo" -msgstr "" - -#: actions/grouplogo.php:153 -#, php-format -msgid "" -"You can upload a logo image for your group. The maximum file size is %s." -msgstr "" - #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:399 -#, fuzzy -msgid "Logo updated." -msgstr "התמונה עודכנה." - -#: actions/grouplogo.php:401 -#, fuzzy -msgid "Failed updating logo." -msgstr "עדכון התמונה נכשל." - -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" - -#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. -#: actions/grouprss.php:142 -#, fuzzy, php-format -msgid "Updates from members of %1$s on %2$s!" -msgstr "מיקרובלוג מאת %s" - #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" @@ -1977,31 +1118,6 @@ msgid "" "%%%%)" msgstr "" -#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 -#, fuzzy -msgid "Create a new group" -msgstr "צור חשבון חדש" - -#: actions/groupsearch.php:52 -#, fuzzy, 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 אותיות." - -#: actions/groupsearch.php:58 -#, fuzzy -msgid "Group search" -msgstr "חיפוש סיסמה" - -#: actions/groupsearch.php:79 actions/noticesearch.php:117 -#: actions/peoplesearch.php:83 -#, fuzzy -msgid "No results." -msgstr "אין תוצאות" - #: actions/groupsearch.php:82 #, php-format msgid "" @@ -2020,21 +1136,10 @@ msgstr "" msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 -#, fuzzy -msgid "User is not blocked from group." -msgstr "למשתמש אין פרופיל." - -#: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy -msgid "Error removing the block." -msgstr "שגיאה בשמירת המשתמש." - #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "הגדרות מסרים מידיים" +msgstr "הגדרות הפרופיל" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2048,19 +1153,6 @@ msgstr "" "אפשר לשלוח ולקבל בודעות דרך Jabber/GTalk [instant messages](%%doc.im%%) הגדר " "את כתובתך והעדפותיך למטה." -#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. -#: actions/imsettings.php:94 -#, fuzzy -msgid "IM is not available." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - -#. TRANS: Form legend for IM settings form. -#. TRANS: Field label for IM address input in IM settings form. -#: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy -msgid "IM address" -msgstr "כתובת מסרים מידיים" - #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." msgstr "כתובת מאושרת נוכחית של Jabber/GTalk." @@ -2078,7 +1170,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2088,64 +1183,53 @@ msgstr "" "החברים בתוכנת ההמסרים המידיים או GTalk שלך." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "העדפות" +msgstr "העדפות נשמרו." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "שלח לי הודעות דרך Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "פרסם הודעה כששורת הסטטוס שלי ב-Jabber/GTalk מתעדכנת." -#. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 -msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "" - -#. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 -msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" - #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:180 msgid "Preferences saved." msgstr "העדפות נשמרו." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "אין זיהוי Jabber כזה." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "לא ניתן לנרמל את זהות ה-Jabber הזה" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "לא עומד בכללים לזיהוי Jabber" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "זהו כבר זיהוי ה-Jabber שלך." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "זיהוי ה-Jabber כבר שייך למשתמש אחר." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2155,34 +1239,21 @@ msgstr "" "מידיים אליך." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "זוהי כתובת מסרים מידיים שגויה." -#. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy -msgid "Couldn't delete IM confirmation." -msgstr "הכנסת קוד האישור נכשלה." - #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "האישור בוטל." +msgstr "אין קוד אישור." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "זהו לא זיהוי ה-Jabber שלך." -#. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy -msgid "The IM address was removed." -msgstr "הכתובת הוסרה." - #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" @@ -2201,11 +1272,6 @@ msgstr "" msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "עידכון המשתמש נכשל." - #: actions/invite.php:72 #, php-format msgid "Invalid email address: %s" @@ -2219,13 +1285,9 @@ msgstr "" msgid "Invite new users" msgstr "" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" - #. TRANS: Whois output. #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:430 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2258,27 +1320,10 @@ msgstr "" msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 -msgid "Personal message" -msgstr "" - #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." msgstr "" -#. TRANS: Send button for inviting friends -#: actions/invite.php:198 -#, fuzzy -msgctxt "BUTTON" -msgid "Send" -msgstr "שלח" - -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 -#, php-format -msgid "%1$s has invited you to join them on %2$s" -msgstr "" - #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. #: actions/invite.php:231 #, php-format @@ -2315,14 +1360,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "אין כינוי" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2331,18 +1369,6 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 -#, fuzzy -msgid "You are not a member of that group." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format -msgid "%1$s left group %2$s" -msgstr "הסטטוס של %1$s ב-%2$s " - #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "כבר מחובר." @@ -2351,11 +1377,6 @@ msgstr "כבר מחובר." msgid "Incorrect username or password." msgstr "שם משתמש או סיסמה לא נכונים." -#: actions/login.php:154 actions/otp.php:120 -#, fuzzy -msgid "Error setting user. You are probably not authorized." -msgstr "לא מורשה." - #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" msgstr "היכנס" @@ -2383,47 +1404,13 @@ msgid "" msgstr "לצרכי אבטחה, הכנס מחדש את שם המשתמש והסיסמה לפני שתשנה את ההגדרות." #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." -msgstr "שם המשתמש או הסיסמה לא חוקיים" - -#: actions/login.php:295 -#, fuzzy, php-format -msgid "" -"Don't have a username yet? [Register](%%action.register%%) a new account." -msgstr "" -"היכנס בעזרת שם המשתמש והסיסמה שלך. עדיין אין לך שם משתמש? [הרשם](%%action." -"register%%) לחשבון " +msgstr "שם משתמש או סיסמה לא נכונים." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." msgstr "" -#: actions/makeadmin.php:96 -#, fuzzy, php-format -msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "למשתמש אין פרופיל." - -#: actions/makeadmin.php:133 -#, fuzzy, php-format -msgid "Can't get membership record for %1$s in group %2$s." -msgstr "נכשלה יצירת OpenID מתוך: %s" - -#: actions/makeadmin.php:146 -#, fuzzy, php-format -msgid "Can't make %1$s an admin for group %2$s." -msgstr "למשתמש אין פרופיל." - -#: actions/microsummary.php:69 -#, fuzzy -msgid "No current status." -msgstr "אין תוצאות" - -#: actions/newapplication.php:52 -#, fuzzy -msgid "New Application" -msgstr "אין הודעה כזו." - #: actions/newapplication.php:64 msgid "You must be logged in to register an application." msgstr "" @@ -2437,9 +1424,8 @@ msgid "Source URL is required." msgstr "" #: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy msgid "Could not create application." -msgstr "שמירת מידע התמונה נכשל" +msgstr "שמירת הפרופיל נכשלה." #: actions/newgroup.php:53 msgid "New group" @@ -2453,12 +1439,10 @@ msgstr "" msgid "New message" msgstr "הודעה חדשה" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 -msgid "You can't send a message to this user." -msgstr "" - -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481 +#: lib/command.php:582 msgid "No content!" msgstr "אין תוכן!" @@ -2466,22 +1450,20 @@ msgstr "אין תוכן!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:164 lib/command.php:506 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 -#, fuzzy -msgid "Message sent" -msgstr "הודעה חדשה" - -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:185 lib/command.php:514 #, php-format msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2489,11 +1471,6 @@ msgstr "" msgid "New notice" msgstr "הודעה חדשה" -#: actions/newnotice.php:217 -#, fuzzy -msgid "Notice posted" -msgstr "הודעות" - #: actions/noticesearch.php:68 #, php-format msgid "" @@ -2507,11 +1484,6 @@ msgstr "" msgid "Text search" msgstr "חיפוש טקסט" -#: actions/noticesearch.php:91 -#, fuzzy, php-format -msgid "Search results for \"%1$s\" on %2$s" -msgstr "חיפוש ברצף אחרי \"%s\"" - #: actions/noticesearch.php:121 #, php-format msgid "" @@ -2526,16 +1498,6 @@ msgid "" "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" -#: actions/noticesearchrss.php:96 -#, fuzzy, php-format -msgid "Updates with \"%s\"" -msgstr "מיקרובלוג מאת %s" - -#: actions/noticesearchrss.php:98 -#, fuzzy, php-format -msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "כל העידכונים התואמים את החיפוש אחרי \"%s\"" - #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." @@ -2574,11 +1536,6 @@ msgstr "" msgid "You have allowed the following applications to access you account." msgstr "" -#: actions/oauthconnectionssettings.php:175 -#, fuzzy -msgid "You are not a user of that application." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - #: actions/oauthconnectionssettings.php:186 #, php-format msgid "Unable to revoke access for app: %s." @@ -2593,45 +1550,27 @@ msgid "Developers can edit the registration settings for their applications " msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "להודעה אין פרופיל" +msgstr "למשתמש אין פרופיל." #: actions/oembed.php:87 actions/shownotice.php:175 #, php-format msgid "%1$s's status on %2$s" msgstr "הסטטוס של %1$s ב-%2$s " -#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, fuzzy, php-format -msgid "Content type %s not supported." -msgstr "התחבר" - #. TRANS: Error message displaying attachments. %s is the site's base URL. #: actions/oembed.php:163 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" -#. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 -msgid "Not a supported data format." -msgstr "" - #: actions/opensearch.php:64 msgid "People Search" msgstr "חיפוש אנשים" -#: actions/opensearch.php:67 -msgid "Notice Search" -msgstr "" - #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" -msgstr "הגדרות" +msgstr "הגדרות הפרופיל" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2649,39 +1588,13 @@ msgstr "" msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 -#, fuzzy -msgid "View profile designs" -msgstr "הגדרות הפרופיל" - #: actions/othersettings.php:123 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -#, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." - -#: actions/otp.php:69 -#, fuzzy -msgid "No user ID specified." -msgstr "הודעה חדשה" - -#: actions/otp.php:83 -#, fuzzy -msgid "No login token specified." -msgstr "הודעה חדשה" - #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "השרת לא החזיר כתובת פרופיל" - -#: actions/otp.php:95 -#, fuzzy -msgid "Invalid login token specified." -msgstr "תוכן ההודעה לא חוקי" +msgstr "לא התבקש אישור!" #: actions/otp.php:104 msgid "Login token expired." @@ -2705,16 +1618,6 @@ msgstr "" msgid "Change password" msgstr "שנה סיסמה" -#: actions/passwordsettings.php:69 -#, fuzzy -msgid "Change your password." -msgstr "שנה סיסמה" - -#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy -msgid "Password change" -msgstr "הסיסמה נשמרה." - #: actions/passwordsettings.php:104 msgid "Old password" msgstr "סיסמה ישנה" @@ -2740,10 +1643,6 @@ msgstr "זהה לסיסמה למעלה" msgid "Change" msgstr "שנה" -#: actions/passwordsettings.php:154 actions/register.php:237 -msgid "Password must be 6 or more characters." -msgstr "" - #: actions/passwordsettings.php:157 actions/register.php:240 msgid "Passwords don't match." msgstr "הסיסמאות לא תואמות." @@ -2765,7 +1664,7 @@ msgid "Password saved." msgstr "הסיסמה נשמרה." #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" @@ -2773,26 +1672,6 @@ msgstr "" msgid "Path and server settings for this StatusNet site." msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format -msgid "Theme directory not readable: %s." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - -#: actions/pathsadminpanel.php:163 -#, fuzzy, php-format -msgid "Avatar directory not writable: %s." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format -msgid "Background directory not writable: %s." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - -#: actions/pathsadminpanel.php:177 -#, fuzzy, php-format -msgid "Locales directory not readable: %s." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" @@ -2801,11 +1680,6 @@ msgstr "" msgid "Site" msgstr "" -#: actions/pathsadminpanel.php:238 -#, fuzzy -msgid "Server" -msgstr "שיחזור" - #: actions/pathsadminpanel.php:238 msgid "Site's server hostname." msgstr "" @@ -2814,11 +1688,6 @@ msgstr "" msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -#, fuzzy -msgid "Site path" -msgstr "הודעה חדשה" - #: actions/pathsadminpanel.php:246 msgid "Path to locales" msgstr "" @@ -2851,25 +1720,9 @@ msgstr "" msgid "Theme directory" msgstr "" -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "תמונה" - #: actions/pathsadminpanel.php:284 -#, fuzzy msgid "Avatar server" -msgstr "הגדרות" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "התמונה עודכנה." - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "התמונה עודכנה." +msgstr "תמונה" #: actions/pathsadminpanel.php:301 msgid "Backgrounds" @@ -2887,21 +1740,6 @@ msgstr "" msgid "Background directory" msgstr "" -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "סמס" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "שיחזור" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "הודעות" - #: actions/pathsadminpanel.php:325 msgid "Always" msgstr "" @@ -2914,20 +1752,10 @@ msgstr "" msgid "When to use SSL" msgstr "" -#: actions/pathsadminpanel.php:335 -#, fuzzy -msgid "SSL server" -msgstr "שיחזור" - #: actions/pathsadminpanel.php:336 msgid "Server to direct SSL requests to" msgstr "" -#: actions/pathsadminpanel.php:352 -#, fuzzy -msgid "Save paths" -msgstr "הודעה חדשה" - #: actions/peoplesearch.php:52 #, php-format msgid "" @@ -2941,20 +1769,9 @@ msgstr "" msgid "People search" msgstr "חיפוש סיסמה" -#: actions/peopletag.php:68 -#, fuzzy, php-format -msgid "Not a valid people tag: %s." -msgstr "לא עומד בכללים ל-OpenID." - -#: actions/peopletag.php:142 -#, fuzzy, php-format -msgid "Users self-tagged with %1$s - page %2$d" -msgstr "מיקרובלוג מאת %s" - #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "תוכן ההודעה לא חוקי" +msgstr "גודל לא חוקי." #: actions/postnotice.php:101 #, php-format @@ -2971,9 +1788,8 @@ msgid "" 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" @@ -2987,7 +1803,7 @@ msgstr "שם מלא" #. TRANS: Form input field label. #: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: lib/applicationeditform.php:235 lib/groupeditform.php:161 msgid "Homepage" msgstr "אתר בית" @@ -2995,16 +1811,6 @@ msgstr "אתר בית" msgid "URL of your homepage, blog, or profile on another site" msgstr "הכתובת של אתר הבית שלך, בלוג, או פרופיל באתר אחר " -#: actions/profilesettings.php:122 actions/register.php:468 -#, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - -#: actions/profilesettings.php:125 actions/register.php:471 -#, fuzzy -msgid "Describe yourself and your interests" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - #: actions/profilesettings.php:127 actions/register.php:473 msgid "Bio" msgstr "ביוגרפיה" @@ -3057,43 +1863,25 @@ msgid "" msgstr "" #: actions/profilesettings.php:228 actions/register.php:230 -#, fuzzy, php-format +#, php-format msgid "Bio is too long (max %d chars)." -msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" +msgstr "שם המיקום ארוך מידי (מותר עד %d אותיות)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." 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' אינה חוקית" - -#: actions/profilesettings.php:306 -msgid "Couldn't update user for autosubscribe." -msgstr "" - -#: actions/profilesettings.php:363 -#, fuzzy -msgid "Couldn't save location prefs." -msgstr "שמירת הפרופיל נכשלה." +msgstr "גודל לא חוקי." #: actions/profilesettings.php:375 msgid "Couldn't save profile." msgstr "שמירת הפרופיל נכשלה." -#: actions/profilesettings.php:383 -#, fuzzy -msgid "Couldn't save tags." -msgstr "שמירת הפרופיל נכשלה." - #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:391 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "ההגדרות נשמרו." @@ -3102,34 +1890,10 @@ msgstr "ההגדרות נשמרו." msgid "Beyond the page limit (%s)." msgstr "" -#: actions/public.php:92 -msgid "Could not retrieve public stream." -msgstr "" - -#: actions/public.php:130 -#, fuzzy, php-format -msgid "Public timeline, page %d" -msgstr "קו זמן ציבורי" - #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "קו זמן ציבורי" -#: actions/public.php:160 -#, fuzzy -msgid "Public Stream Feed (RSS 1.0)" -msgstr "הזנת זרם הציבורי" - -#: actions/public.php:164 -#, fuzzy -msgid "Public Stream Feed (RSS 2.0)" -msgstr "הזנת זרם הציבורי" - -#: actions/public.php:168 -#, fuzzy -msgid "Public Stream Feed (Atom)" -msgstr "הזנת זרם הציבורי" - #: actions/public.php:188 #, php-format msgid "" @@ -3164,11 +1928,6 @@ msgid "" "tool." msgstr "" -#: actions/publictagcloud.php:57 -#, fuzzy -msgid "Public tag cloud" -msgstr "הזנת זרם הציבורי" - #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " @@ -3218,10 +1977,6 @@ msgstr "שגיאה באישור הקוד." msgid "This confirmation code is too old. Please start again." msgstr "קוד אישור זה ישן מידי. אנא התחל מחדש." -#: actions/recoverpassword.php:111 -msgid "Could not update user with confirmed email address." -msgstr "" - #: actions/recoverpassword.php:152 msgid "" "If you have forgotten or lost your password, you can get a new one sent to " @@ -3232,10 +1987,6 @@ msgstr "" msgid "You have been identified. Enter a new password below. " msgstr "" -#: actions/recoverpassword.php:188 -msgid "Password recovery" -msgstr "" - #: actions/recoverpassword.php:191 msgid "Nickname or email address" msgstr "" @@ -3318,11 +2069,6 @@ msgstr "הסיסמה החדשה נשמרה בהצלחה. אתה מחובר למ msgid "Sorry, only invited people can register." msgstr "" -#: actions/register.php:99 -#, fuzzy -msgid "Sorry, invalid invitation code." -msgstr "שגיאה באישור הקוד." - #: actions/register.php:119 msgid "Registration successful" msgstr "" @@ -3339,10 +2085,6 @@ msgstr "" msgid "You can't register if you don't agree to the license." msgstr "לא ניתן להירשם ללא הסכמה לרשיון" -#: actions/register.php:219 -msgid "Email address already exists." -msgstr "" - #: actions/register.php:250 actions/register.php:272 msgid "Invalid username or password." msgstr "שם המשתמש או הסיסמה לא חוקיים" @@ -3353,18 +2095,10 @@ msgid "" "link up to friends and colleagues. " msgstr "" -#: actions/register.php:432 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "" - #: actions/register.php:437 msgid "6 or more characters. Required." msgstr " לפחות 6 אותיות. שדה חובה." -#: actions/register.php:441 -msgid "Same as password above. Required." -msgstr "" - #. TRANS: Link description in user account settings menu. #: actions/register.php:445 actions/register.php:449 #: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 @@ -3448,11 +2182,6 @@ msgstr "" msgid "Remote subscribe" msgstr "הרשמה מרוחקת" -#: actions/remotesubscribe.php:124 -#, fuzzy -msgid "Subscribe to a remote user" -msgstr "ההרשמה אושרה" - #: actions/remotesubscribe.php:129 msgid "User nickname" msgstr "כינוי משתמש" @@ -3478,48 +2207,17 @@ msgstr "הירשם כמנוי" msgid "Invalid profile URL (bad format)" msgstr "כתובת פרופיל לא חוקית (פורמט לא תקין)" -#: actions/remotesubscribe.php:168 -#, fuzzy -msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "Not a valid profile URL (no YADIS document)." - #: 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 "" -#: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy -msgid "No notice specified." -msgstr "הודעה חדשה" - -#: actions/repeat.php:76 -#, fuzzy -msgid "You can't repeat your own notice." -msgstr "לא ניתן להירשם ללא הסכמה לרשיון" - -#: actions/repeat.php:90 -#, fuzzy -msgid "You already repeated that notice." -msgstr "כבר נכנסת למערכת!" - -#: actions/repeat.php:114 lib/noticelist.php:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" -msgstr "צור" - -#: actions/repeat.php:119 -#, fuzzy -msgid "Repeated!" -msgstr "צור" +msgstr "איפוס" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3527,25 +2225,10 @@ msgstr "צור" msgid "Replies to %s" msgstr "תגובת עבור %s" -#: actions/replies.php:128 -#, fuzzy, php-format -msgid "Replies to %1$s, page %2$d" -msgstr "תגובת עבור %s" - -#: actions/replies.php:145 -#, fuzzy, php-format -msgid "Replies feed for %s (RSS 1.0)" -msgstr "הזנת הודעות של %s" - -#: actions/replies.php:152 -#, fuzzy, php-format -msgid "Replies feed for %s (RSS 2.0)" -msgstr "הזנת הודעות של %s" - #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "הזנת הודעות של %s" +msgstr "תגובת עבור %s" #: actions/replies.php:199 #, php-format @@ -3568,39 +2251,13 @@ msgid "" "newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/repliesrss.php:72 -#, fuzzy, php-format -msgid "Replies to %1$s on %2$s!" -msgstr "תגובת עבור %s" - -#: actions/revokerole.php:75 -#, fuzzy -msgid "You cannot revoke user roles on this site." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/revokerole.php:82 -#, fuzzy -msgid "User doesn't have this role." -msgstr "למשתמש אין פרופיל." - #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "התמונה עודכנה." - -#: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy -msgid "You cannot sandbox users on this site." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/sandbox.php:72 -#, fuzzy -msgid "User is already sandboxed." -msgstr "למשתמש אין פרופיל." +msgstr "סטטיסטיקה" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" @@ -3626,44 +2283,18 @@ msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "הגדרות" +msgstr "הגדרות הפרופיל" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." msgstr "" -#: actions/showapplication.php:157 -#, fuzzy -msgid "Application profile" -msgstr "להודעה אין פרופיל" - #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" -#. TRANS: Form input field label for application name. -#: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 -#, fuzzy -msgid "Name" -msgstr "כינוי" - -#. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy -msgid "Organization" -msgstr "מיקום" - -#. TRANS: Form input field label. -#: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 -#, fuzzy -msgid "Description" -msgstr "הרשמות" - #: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" @@ -3716,30 +2347,6 @@ msgstr "" msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" -#: actions/showfavorites.php:79 -#, fuzzy, php-format -msgid "%1$s's favorite notices, page %2$d" -msgstr "%s וחברים" - -#: actions/showfavorites.php:132 -msgid "Could not retrieve favorite notices." -msgstr "" - -#: actions/showfavorites.php:171 -#, fuzzy, php-format -msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "הזנות החברים של %s" - -#: actions/showfavorites.php:178 -#, fuzzy, php-format -msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "הזנות החברים של %s" - -#: actions/showfavorites.php:185 -#, fuzzy, php-format -msgid "Feed for favorites of %s (Atom)" -msgstr "הזנות החברים של %s" - #: actions/showfavorites.php:206 msgid "" "You haven't chosen any favorite notices yet. Click the fave button on " @@ -3765,65 +2372,24 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#: actions/showgroup.php:82 #, php-format msgid "%s group" msgstr "" -#: actions/showgroup.php:84 -#, fuzzy, php-format -msgid "%1$s group, page %2$d" -msgstr "כל המנויים" - #: actions/showgroup.php:227 -#, fuzzy msgid "Group profile" -msgstr "אין הודעה כזו." +msgstr "למשתמש אין פרופיל." #: actions/showgroup.php:272 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 -#, fuzzy -msgid "Note" -msgstr "הודעות" - #: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 -msgid "Group actions" -msgstr "" - -#: actions/showgroup.php:338 -#, fuzzy, php-format -msgid "Notice feed for %s group (RSS 1.0)" -msgstr "הזנת הודעות של %s" - -#: actions/showgroup.php:344 -#, fuzzy, php-format -msgid "Notice feed for %s group (RSS 2.0)" -msgstr "הזנת הודעות של %s" - -#: actions/showgroup.php:350 -#, fuzzy, php-format -msgid "Notice feed for %s group (Atom)" -msgstr "הזנת הודעות של %s" - -#: actions/showgroup.php:355 -#, fuzzy, php-format -msgid "FOAF for %s group" -msgstr "הזנת הודעות של %s" - -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 -#, fuzzy -msgid "Members" -msgstr "חבר מאז" - #: actions/showgroup.php:398 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 @@ -3834,11 +2400,6 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:439 -#, fuzzy -msgid "Created" -msgstr "צור" - #: actions/showgroup.php:455 #, php-format msgid "" @@ -3862,10 +2423,6 @@ msgstr "" msgid "Admins" msgstr "" -#: actions/showmessage.php:81 -msgid "No such message." -msgstr "" - #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." msgstr "" @@ -3880,41 +2437,11 @@ msgstr "" msgid "Message from %1$s on %2$s" msgstr "" -#: actions/shownotice.php:90 -#, fuzzy -msgid "Notice deleted." -msgstr "הודעות" - #: actions/showstream.php:73 #, php-format msgid " tagged %s" msgstr "" -#: actions/showstream.php:79 -#, fuzzy, php-format -msgid "%1$s, page %2$d" -msgstr "%s וחברים" - -#: actions/showstream.php:122 -#, fuzzy, php-format -msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "הזנת הודעות של %s" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "הזנת הודעות של %s" - -#: actions/showstream.php:136 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 2.0)" -msgstr "הזנת הודעות של %s" - -#: actions/showstream.php:143 -#, fuzzy, php-format -msgid "Notice feed for %s (Atom)" -msgstr "הזנת הודעות של %s" - #: actions/showstream.php:148 #, php-format msgid "FOAF for %s" @@ -3955,20 +2482,10 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 -#, fuzzy, php-format -msgid "Repeat of %s" -msgstr "תגובת עבור %s" - #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." msgstr "" -#: actions/silence.php:72 -#, fuzzy -msgid "User is already silenced." -msgstr "למשתמש אין פרופיל." - #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" msgstr "" @@ -3998,11 +2515,6 @@ msgstr "" msgid "General" msgstr "" -#: actions/siteadminpanel.php:224 -#, fuzzy -msgid "Site name" -msgstr "הודעה חדשה" - #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" @@ -4027,11 +2539,6 @@ msgstr "" msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:245 -#, fuzzy -msgid "Local" -msgstr "מיקום" - #: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" @@ -4069,43 +2576,21 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "הודעה חדשה" - -#: actions/sitenoticeadminpanel.php:67 -#, fuzzy -msgid "Edit site-wide message" -msgstr "הודעה חדשה" - -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy -msgid "Unable to save site notice." -msgstr "בעיה בשמירת ההודעה." +msgstr "הודעות" #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars." msgstr "" -#: actions/sitenoticeadminpanel.php:176 -#, fuzzy -msgid "Site notice text" -msgstr "הודעה חדשה" - #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy -msgid "Save site notice" -msgstr "הודעה חדשה" - #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "הגדרות מסרים מידיים" +msgstr "הגדרות הפרופיל" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4114,18 +2599,6 @@ msgstr "הגדרות מסרים מידיים" msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. -#: actions/smssettings.php:97 -#, fuzzy -msgid "SMS is not available." -msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" - -#. TRANS: Form legend for SMS settings form. -#: actions/smssettings.php:111 -#, fuzzy -msgid "SMS address" -msgstr "כתובת מסרים מידיים" - #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 msgid "Current confirmed SMS-enabled phone number." @@ -4136,38 +2609,20 @@ msgstr "" msgid "Awaiting confirmation on this phone number." msgstr "" -#. TRANS: Field label for SMS address input in SMS settings form. -#: actions/smssettings.php:142 -msgid "Confirmation code" -msgstr "" - #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." msgstr "" -#. TRANS: Button label to confirm SMS confirmation code in SMS settings. -#: actions/smssettings.php:148 -#, fuzzy -msgctxt "BUTTON" -msgid "Confirm" -msgstr "אשר" - #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 msgid "SMS phone number" msgstr "" -#. TRANS: SMS phone number input field instructions in SMS settings form. -#: actions/smssettings.php:156 -msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" - #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "העדפות" +msgstr "העדפות נשמרו." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4176,62 +2631,24 @@ msgid "" "from my carrier." msgstr "" -#. TRANS: Confirmation message for successful SMS preferences save. -#: actions/smssettings.php:315 -#, fuzzy -msgid "SMS preferences saved." -msgstr "העדפות נשמרו." - -#. TRANS: Message given saving SMS phone number without having provided one. -#: actions/smssettings.php:338 -msgid "No phone number." -msgstr "" - #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 msgid "No carrier selected." msgstr "" -#. TRANS: Message given saving SMS phone number that is already set. -#: actions/smssettings.php:352 -msgid "That is already your phone number." -msgstr "" - -#. TRANS: Message given saving SMS phone number that is already set for another user. -#: actions/smssettings.php:356 -msgid "That phone number already belongs to another user." -msgstr "" - #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "קוד האישור הזה אינו מיועד לך!" - -#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. -#: actions/smssettings.php:413 -msgid "That is the wrong confirmation number." msgstr "" +"קוד אישור נשלח אל כתובת המסרים המידיים שהוספת. עליך לאשר את %s לשליחת מסרים " +"מידיים אליך." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "האישור בוטל." - -#. TRANS: Message given trying to remove an SMS phone number that is not -#. TRANS: registered for the active user. -#: actions/smssettings.php:448 -msgid "That is not your phone number." -msgstr "" - -#. TRANS: Message given after successfully removing a registered SMS phone number. -#: actions/smssettings.php:470 -#, fuzzy -msgid "The SMS phone number was removed." -msgstr "הכתובת הוסרה." +msgstr "אין קוד אישור." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 @@ -4252,22 +2669,12 @@ msgid "" "email but isn't listed here, send email to let us know at %s." msgstr "" -#. TRANS: Message given saving SMS phone number confirmation code without having provided one. -#: actions/smssettings.php:548 -msgid "No code entered" -msgstr "" - #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" -#: actions/snapshotadminpanel.php:65 -#, fuzzy -msgid "Manage snapshot configuration" -msgstr "הרשמות" - #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." msgstr "" @@ -4312,51 +2719,15 @@ msgstr "" msgid "Snapshots will be sent to this URL" msgstr "" -#: actions/snapshotadminpanel.php:248 -#, fuzzy -msgid "Save snapshot settings" -msgstr "הגדרות" - -#: actions/subedit.php:70 -#, fuzzy -msgid "You are not subscribed to that profile." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - #. TRANS: Exception thrown when a subscription could not be stored on the server. #: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy msgid "Could not save subscription." -msgstr "יצירת המנוי נכשלה." +msgstr "הכנסת מנוי חדש נכשלה." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "אין הודעה כזו." - -#: actions/subscribe.php:117 -#, fuzzy -msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: actions/subscribe.php:145 -#, fuzzy -msgid "Subscribed" -msgstr "הירשם כמנוי" - -#: actions/subscribers.php:50 -#, fuzzy, php-format -msgid "%s subscribers" -msgstr "מנויים" - -#: actions/subscribers.php:52 -#, fuzzy, php-format -msgid "%1$s subscribers, page %2$d" -msgstr "כל המנויים" - #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." msgstr "אלה האנשים המאזינים להודעות שלך." @@ -4384,16 +2755,6 @@ msgid "" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "כל המנויים" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "כל המנויים" - #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." msgstr "אלה האנשים שלהודעות שלהם אתה מאזין." @@ -4413,55 +2774,15 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format -msgid "%s is not listening to anyone." -msgstr "%1$s כעת מאזין להודעות שלך ב-%2$s" - -#: actions/subscriptions.php:208 -#, fuzzy -msgid "Jabber" -msgstr "אין זיהוי Jabber כזה." - #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 msgid "SMS" msgstr "סמס" -#: actions/tag.php:69 -#, fuzzy, php-format -msgid "Notices tagged with %1$s, page %2$d" -msgstr "מיקרובלוג מאת %s" - -#: actions/tag.php:87 -#, fuzzy, php-format -msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "הזנת הודעות של %s" - -#: actions/tag.php:93 -#, fuzzy, php-format -msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "הזנת הודעות של %s" - -#: actions/tag.php:99 -#, fuzzy, php-format -msgid "Notice feed for tag %s (Atom)" -msgstr "הזנת הודעות של %s" - -#: actions/tagother.php:39 -#, fuzzy -msgid "No ID argument." -msgstr "אין מסמך כזה." - #: actions/tagother.php:65 #, php-format msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:76 -#, fuzzy -msgid "User profile" -msgstr "למשתמש אין פרופיל." - #: actions/tagother.php:81 actions/userauthorization.php:132 #: lib/userprofile.php:103 msgid "Photo" @@ -4483,43 +2804,16 @@ msgid "" 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 "" -#: actions/tagrss.php:35 -#, fuzzy -msgid "No such tag." -msgstr "אין הודעה כזו." - -#: actions/unblock.php:59 -#, fuzzy -msgid "You haven't blocked that user." -msgstr "כבר נכנסת למערכת!" - -#: actions/unsandbox.php:72 -#, fuzzy -msgid "User is not sandboxed." -msgstr "למשתמש אין פרופיל." - -#: actions/unsilence.php:72 -#, fuzzy -msgid "User is not silenced." -msgstr "למשתמש אין פרופיל." - #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "השרת לא החזיר כתובת פרופיל" - -#: actions/unsubscribe.php:98 -#, fuzzy -msgid "Unsubscribed" -msgstr "בטל מנוי" +msgstr "לא התבקש אישור!" #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format @@ -4527,13 +2821,6 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#. TRANS: User admin panel title -#: actions/useradminpanel.php:59 -#, fuzzy -msgctxt "TITLE" -msgid "User" -msgstr "מתשמש" - #: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" @@ -4566,9 +2853,8 @@ msgid "Maximum length of a profile bio in characters." msgstr "" #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "מחק" +msgstr "הודעה חדשה" #: actions/useradminpanel.php:235 msgid "New user welcome" @@ -4578,21 +2864,6 @@ msgstr "" msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:241 -#, fuzzy -msgid "Default subscription" -msgstr "כל המנויים" - -#: actions/useradminpanel.php:242 -#, fuzzy -msgid "Automatically subscribe new users to this user." -msgstr "ההרשמה אושרה" - -#: actions/useradminpanel.php:251 -#, fuzzy -msgid "Invitations" -msgstr "מיקום" - #: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" @@ -4605,16 +2876,6 @@ msgstr "" 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 "" -"בדוק את הפרטים כדי לוודא שברצונך להירשם כמנוי להודעות משתמש זה. אם אינך רוצה " -"להירשם, לחץ \"בטל\"." - #: actions/userauthorization.php:196 actions/version.php:167 msgid "License" msgstr "" @@ -4625,18 +2886,16 @@ msgstr "קבל" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "ההרשמה אושרה" +msgstr "לא שלחנו אלינו את הפרופיל הזה" #: actions/userauthorization.php:219 msgid "Reject" msgstr "דחה" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "כל המנויים" +msgstr "אשר מנוי" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4646,30 +2905,10 @@ msgstr "לא התבקש אישור!" msgid "Subscription authorized" msgstr "ההרשמה אושרה" -#: actions/userauthorization.php:256 -#, 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 " -"subscription. Your subscription token is:" -msgstr "" -"המנוי אושר, אבל לא התקבלה כתובת אליה ניתן לחזור. בדוק את הוראות האתר וחפש " -"כיצד לאשר מנוי. אסימון המנוי שלך הוא:" - #: actions/userauthorization.php:266 msgid "Subscription rejected" msgstr "ההרשמה נדחתה" -#: actions/userauthorization.php:268 -#, 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 "" -"המנוי נדחה, אבל לא התקבלה כתובת לחזרה. בדוק את הוראות האתר וחפש כיצד להשלים " -"דחיית מנוי." - #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." @@ -4695,21 +2934,6 @@ msgstr "" msgid "Avatar URL ‘%s’ is not valid." msgstr "" -#: actions/userauthorization.php:350 -#, fuzzy, php-format -msgid "Can’t read avatar URL ‘%s’." -msgstr "לא ניתן לקרוא את ה-URL '%s' של התמונה" - -#: actions/userauthorization.php:355 -#, fuzzy, php-format -msgid "Wrong image type for avatar URL ‘%s’." -msgstr "סוג התמונה של '%s' אינו מתאים" - -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy -msgid "Profile design" -msgstr "הגדרות הפרופיל" - #: actions/userdesignsettings.php:87 lib/designsettings.php:76 msgid "" "Customize the way your profile looks with a background image and a colour " @@ -4720,21 +2944,10 @@ msgstr "" msgid "Enjoy your hotdog!" msgstr "" -#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. -#: actions/usergroups.php:66 -#, fuzzy, php-format -msgid "%1$s groups, page %2$d" -msgstr "כל המנויים" - #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:159 -#, fuzzy, php-format -msgid "%s is not a member of any group." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." @@ -4751,11 +2964,6 @@ msgstr "" msgid "Updates from %1$s on %2$s!" msgstr "" -#: actions/version.php:75 -#, fuzzy, php-format -msgid "StatusNet %s" -msgstr "סטטיסטיקה" - #: actions/version.php:155 #, php-format msgid "" @@ -4794,12 +3002,6 @@ msgstr "" msgid "Plugins" msgstr "" -#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -#, fuzzy -msgid "Version" -msgstr "אישי" - #: actions/version.php:199 msgid "Author(s)" msgstr "" @@ -4838,43 +3040,6 @@ msgstr "" msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy -msgid "Invalid filename." -msgstr "גודל לא חוקי." - -#. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy -msgid "Group join failed." -msgstr "אין הודעה כזו." - -#. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy -msgid "Not part of group." -msgstr "עידכון המשתמש נכשל." - -#. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy -msgid "Group leave failed." -msgstr "אין הודעה כזו." - -#. TRANS: Server exception thrown when updating a local group fails. -#: classes/Local_group.php:42 -#, fuzzy -msgid "Could not update local group." -msgstr "עידכון המשתמש נכשל." - -#. TRANS: Exception thrown when trying creating a login token failed. -#. TRANS: %s is the user nickname for which token creation failed. -#: classes/Login_token.php:78 -#, fuzzy, php-format -msgid "Could not create login token for %s" -msgstr "שמירת מידע התמונה נכשל" - #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." @@ -4885,16 +3050,6 @@ msgstr "" msgid "You are banned from sending direct messages." msgstr "" -#. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 -msgid "Could not insert message." -msgstr "" - -#. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 -msgid "Could not update message with new URI." -msgstr "" - #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 @@ -4903,61 +3058,43 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" - -#. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 -#, fuzzy -msgid "Problem saving notice. Too long." -msgstr "בעיה בשמירת ההודעה." - -#. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 -#, fuzzy -msgid "Problem saving notice. Unknown user." -msgstr "בעיה בשמירת ההודעה." +msgstr "שגיאה בהכנסת התמונה." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:283 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:291 msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:358 classes/Notice.php:385 msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" -#. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 -#, fuzzy -msgid "Problem saving group inbox." -msgstr "בעיה בשמירת ההודעה." - #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4976,57 +3113,25 @@ msgstr "" msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" -#. TRANS: Exception thrown when a right for a non-existing user profile is checked. -#: classes/Remote_profile.php:54 -#, fuzzy -msgid "Missing profile." -msgstr "למשתמש אין פרופיל." - -#. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy -msgid "Unable to save tag." -msgstr "בעיה בשמירת ההודעה." - #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:75 lib/oauthstore.php:466 msgid "You have been banned from subscribing." msgstr "" -#. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -msgid "Already subscribed!" -msgstr "" - -#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 -#, fuzzy -msgid "User has blocked you." -msgstr "למשתמש אין פרופיל." - -#. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy -msgid "Not subscribed!" -msgstr "לא מנוי!" - #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. #: classes/Subscription.php:178 -#, fuzzy msgid "Could not delete self-subscription." -msgstr "מחיקת המנוי לא הצליחה." +msgstr "הכנסת מנוי חדש נכשלה." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. #: classes/Subscription.php:206 -#, fuzzy msgid "Could not delete subscription OMB token." -msgstr "מחיקת המנוי לא הצליחה." +msgstr "הכנסת מנוי חדש נכשלה." #. TRANS: Exception thrown when a subscription could not be deleted on the server. #: classes/Subscription.php:218 -#, fuzzy msgid "Could not delete subscription." -msgstr "מחיקת המנוי לא הצליחה." +msgstr "הכנסת מנוי חדש נכשלה." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. @@ -5037,55 +3142,29 @@ msgstr "" #. TRANS: Server exception thrown when creating a group failed. #: classes/User_group.php:496 -#, fuzzy msgid "Could not create group." -msgstr "שמירת מידע התמונה נכשל" +msgstr "עידכון המשתמש נכשל." #. TRANS: Server exception thrown when updating a group URI failed. #: classes/User_group.php:506 -#, fuzzy msgid "Could not set group URI." -msgstr "יצירת המנוי נכשלה." +msgstr "שמירת הפרופיל נכשלה." #. TRANS: Server exception thrown when setting group membership failed. #: classes/User_group.php:529 -#, fuzzy msgid "Could not set group membership." -msgstr "יצירת המנוי נכשלה." +msgstr "עידכון המשתמש נכשל." #. TRANS: Server exception thrown when saving local group information failed. #: classes/User_group.php:544 -#, fuzzy msgid "Could not save local group info." -msgstr "יצירת המנוי נכשלה." - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 -msgid "Change your profile settings" -msgstr "" - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 -#, fuzzy -msgid "Upload an avatar" -msgstr "עדכון התמונה נכשל." - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 -msgid "Change your password" -msgstr "" +msgstr "שמירת הפרופיל נכשלה." #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:130 msgid "Change email handling" msgstr "" -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy -msgid "Design your profile" -msgstr "למשתמש אין פרופיל." - #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:144 msgid "Other options" @@ -5096,231 +3175,119 @@ msgstr "" msgid "Other" msgstr "" -#. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format -msgid "%1$s - %2$s" -msgstr "הסטטוס של %1$s ב-%2$s " - #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:449 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:455 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -#, fuzzy -msgctxt "MENU" -msgid "Personal" -msgstr "אישי" - -#. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Change your email, avatar, password, profile" -msgstr "שנה סיסמה" - -#. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Connect to services" -msgstr "נכשלה ההפניה לשרת: %s" - #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:468 msgid "Connect" msgstr "התחבר" -#. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Change site configuration" -msgstr "הרשמות" - #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:474 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:478 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -#, fuzzy -msgctxt "MENU" -msgid "Invite" -msgstr "גודל לא חוקי." - #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:487 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy -msgctxt "MENU" -msgid "Logout" -msgstr "צא" - -#. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Create an account" -msgstr "צור חשבון חדש" - -#. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy -msgctxt "MENU" -msgid "Register" -msgstr "הירשם" - #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:501 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 -#, fuzzy -msgctxt "MENU" -msgid "Login" -msgstr "היכנס" - -#. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Help me!" -msgstr "עזרה" - -#: lib/action.php:497 -#, fuzzy -msgctxt "MENU" -msgid "Help" -msgstr "עזרה" - #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:513 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 -#, fuzzy -msgctxt "MENU" -msgid "Search" -msgstr "חיפוש" - -#. TRANS: DT element for site notice. String is hidden in default CSS. -#. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -#, fuzzy -msgid "Site notice" -msgstr "הודעה חדשה" - #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:605 msgid "Local views" msgstr "" -#. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -#, fuzzy -msgid "Page notice" -msgstr "הודעה חדשה" - -#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 -#, fuzzy -msgid "Secondary site navigation" -msgstr "הרשמות" - #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:784 msgid "Help" msgstr "עזרה" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:787 msgid "About" msgstr "אודות" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:790 msgid "FAQ" msgstr "רשימת שאלות נפוצות" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:795 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:799 msgid "Privacy" msgstr "פרטיות" #. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#: lib/action.php:802 msgid "Source" msgstr "מקור" #. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#: lib/action.php:808 msgid "Contact" msgstr "צור קשר" -#: lib/action.php:794 +#: lib/action.php:810 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:839 msgid "StatusNet software license" msgstr "" -#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 -#, fuzzy, php-format -msgid "" -"**%%site.name%%** is a microblogging service brought to you by [%%site." -"broughtby%%](%%site.broughtbyurl%%)." -msgstr "" -"**%%site.name%%** הוא שרות ביקרובלוג הניתן על ידי [%%site.broughtby%%](%%" -"site.broughtbyurl%%)." - #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:849 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** הוא שרות ביקרובלוג." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:856 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5331,277 +3298,220 @@ msgstr "" "s, המופצת תחת רשיון [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)" -#. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy -msgid "Site content license" -msgstr "הודעה חדשה" - #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:879 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:886 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:890 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:904 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1243 msgid "Pagination" msgstr "" -#. TRANS: Pagination message to go to a page displaying information more in the -#. TRANS: present than the currently displayed information. -#: lib/action.php:1203 -#, fuzzy -msgid "After" -msgstr "<< אחרי" - -#. TRANS: Pagination message to go to a page displaying information more in the -#. TRANS: past than the currently displayed information. -#: lib/action.php:1213 -#, fuzzy -msgid "Before" -msgstr "לפני >>" - #. TRANS: Client exception thrown when a feed instance is a DOMDocument. #: lib/activity.php:122 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:203 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:240 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:245 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy -msgid "Basic site configuration" -msgstr "הרשמות" - -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -#, fuzzy -msgctxt "MENU" -msgid "Site" -msgstr "הודעה חדשה" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -#, fuzzy -msgctxt "MENU" -msgid "Design" -msgstr "אישי" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "הרשמות" +msgstr "אין קוד אישור." #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115 msgid "User" msgstr "מתשמש" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy -msgid "Access configuration" -msgstr "הרשמות" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "הרשמות" +msgstr "אין קוד אישור." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "הרשמות" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy -msgid "Edit site notice" -msgstr "הודעה חדשה" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy -msgid "Snapshots configuration" -msgstr "הרשמות" +msgstr "אין קוד אישור." #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:175 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:212 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:217 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:258 lib/apiauth.php:290 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:178 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:182 +msgid "Failed to delete revoked token." +msgstr "" + #. TRANS: Form legend. -#: lib/applicationeditform.php:137 +#: lib/applicationeditform.php:129 msgid "Edit application" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy -msgid "Describe your application" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - #. TRANS: Form input field instructions. #: lib/applicationeditform.php:224 -#, fuzzy -msgid "URL of the homepage of this application" -msgstr "הכתובת של אתר הבית שלך, בלוג, או פרופיל באתר אחר " - -#. TRANS: Form input field label. -#: lib/applicationeditform.php:226 -#, fuzzy -msgid "Source URL" -msgstr "מקור" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. #: lib/applicationeditform.php:242 -#, fuzzy -msgid "URL for the homepage of the organization" -msgstr "הכתובת של אתר הבית שלך, בלוג, או פרופיל באתר אחר " - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:269 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:286 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:288 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:311 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:330 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:332 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:349 msgid "Cancel" msgstr "בטל" #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:135 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:137 msgid "read-only" msgstr "" #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#: lib/applicationlist.php:143 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:158 msgctxt "BUTTON" msgid "Revoke" -msgstr "הסר" +msgstr "שיחזור" #. TRANS: DT element label in attachment list. #: lib/attachmentlist.php:88 @@ -5613,29 +3523,20 @@ msgstr "" msgid "Author" msgstr "" -#. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy -msgid "Provider" -msgstr "פרופיל" - -#: lib/attachmentnoticesection.php:67 +#. TRANS: Title. +#: lib/attachmentnoticesection.php:68 msgid "Notices where this attachment appears" msgstr "" -#: lib/attachmenttagcloudsection.php:48 +#. TRANS: Title. +#: lib/attachmenttagcloudsection.php:49 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -#, fuzzy -msgid "Password changing failed" -msgstr "הסיסמה נשמרה." - -#: lib/authenticationplugin.php:236 -#, fuzzy -msgid "Password changing is not allowed" -msgstr "הסיסמה נשמרה." +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:70 +msgid "Block" +msgstr "" #: lib/channel.php:157 lib/channel.php:177 msgid "Command results" @@ -5649,46 +3550,35 @@ msgstr "" msgid "Command failed" msgstr "" -#: lib/command.php:83 lib/command.php:105 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "אין פרופיל תואם לפרופיל המרוחק " - -#: lib/command.php:99 lib/command.php:596 -#, fuzzy -msgid "User has no last notice" -msgstr "למשתמש אין פרופיל." - -#. TRANS: Message given requesting a profile for a non-existing user. -#. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" -msgstr "עידכון המשתמש נכשל." - #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "עידכון המשתמש נכשל." +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:185 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:231 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "תגובת עבור %s" +#: lib/command.php:240 +#, php-format +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:270 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5696,56 +3586,33 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:314 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "כבר נכנסת למערכת!" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "נכשלה ההפניה לשרת: %s" - -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 -#, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "נכשלה יצירת OpenID מתוך: %s" - -#. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format -msgid "Fullname: %s" -msgstr "שם מלא" - -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#: lib/command.php:360 #, php-format -msgid "Location: %s" +msgid "%1$s joined group %2$s." msgstr "" -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 #, php-format -msgid "Homepage: %s" +msgid "%1$s left group %2$s." msgstr "" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:446 #, php-format msgid "About: %s" msgstr "אודות: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#: lib/command.php:474 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5754,150 +3621,112 @@ msgstr "" #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:491 lib/xmppmanager.php:403 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" +msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 -msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "לא ניתן להירשם ללא הסכמה לרשיון" - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "כבר נכנסת למערכת!" - -#. TRANS: Message given having repeated a notice from another user. -#. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "הודעות" - -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:557 msgid "Error repeating notice." -msgstr "בעיה בשמירת ההודעה." +msgstr "שגיאה ביצירת שם המשתמש." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:592 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" +msgid "Notice too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#: lib/command.php:571 -#, fuzzy, php-format -msgid "Reply to %s sent" -msgstr "תגובת עבור %s" - -#: lib/command.php:573 -#, fuzzy -msgid "Error saving notice." -msgstr "בעיה בשמירת ההודעה." - -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:655 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 -#, fuzzy -msgid "Can't subscribe to OMB profiles by command." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:694 lib/command.php:804 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:724 lib/command.php:750 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 -msgid "Notification off." -msgstr "" - -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:731 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 -msgid "Notification on." -msgstr "" - -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:757 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:771 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:784 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "בטל מנוי" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 -#, fuzzy -msgid "You are not subscribed to anyone." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:836 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "לא שלחנו אלינו את הפרופיל הזה" msgstr[1] "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:800 -#, fuzzy -msgid "No one is subscribed to you." -msgstr "הרשמה מרוחקת" - -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:863 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "הרשמה מרוחקת" msgstr[1] "הרשמה מרוחקת" -#: lib/command.php:822 -#, fuzzy -msgid "You are not a member of any groups." -msgstr "לא שלחנו אלינו את הפרופיל הזה" - -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:890 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "לא שלחנו אלינו את הפרופיל הזה" msgstr[1] "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:905 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5939,11 +3768,6 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -#, fuzzy -msgid "No configuration file found. " -msgstr "אין קוד אישור." - #: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" @@ -5968,11 +3792,6 @@ msgstr "" msgid "Updates by SMS" msgstr "" -#: lib/connectsettingsaction.php:120 -#, fuzzy -msgid "Connections" -msgstr "התחבר" - #: lib/connectsettingsaction.php:121 msgid "Authorized connected applications" msgstr "" @@ -5981,17 +3800,6 @@ msgstr "" msgid "Database error" msgstr "" -#: lib/designsettings.php:105 -#, fuzzy -msgid "Upload file" -msgstr "ההעלה" - -#: lib/designsettings.php:109 -#, fuzzy -msgid "" -"You can upload your personal background image. The maximum file size is 2MB." -msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." - #: lib/designsettings.php:418 msgid "Design defaults restored." msgstr "" @@ -6000,15 +3808,6 @@ msgstr "" msgid "Disfavor this notice" msgstr "" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy -msgid "Favor this notice" -msgstr "אין הודעה כזו." - -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - #: lib/feed.php:85 msgid "RSS 1.0" msgstr "" @@ -6058,63 +3857,80 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" -#: lib/groupeditform.php:163 -#, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "הכתובת של אתר הבית שלך, בלוג, או פרופיל באתר אחר " - -#: lib/groupeditform.php:168 -#, fuzzy -msgid "Describe the group or topic" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - -#: lib/groupeditform.php:170 -#, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" - -#: lib/groupeditform.php:179 -#, fuzzy -msgid "" -"Location for the group, if any, like \"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 "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "אין משתמש כזה." - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "אין משתמש כזה." - -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "צא" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" @@ -6140,16 +3956,12 @@ msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לק msgid "Unsupported image file format." msgstr "פורמט התמונה אינו נתמך." -#: lib/imagefile.php:88 -#, fuzzy, php-format -msgid "That file is too big. The maximum file size is %s." -msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." - #: lib/imagefile.php:93 msgid "Partial upload." msgstr "העלאה חלקית." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:101 lib/mediafile.php:179 msgid "System error uploading file." msgstr "שגיאת מערכת בהעלאת הקובץ." @@ -6157,11 +3969,6 @@ msgstr "שגיאת מערכת בהעלאת הקובץ." msgid "Not an image or corrupt file." msgstr "זהו לא קובץ תמונה, או שחל בו שיבוש." -#: lib/imagefile.php:122 -#, fuzzy -msgid "Lost our file." -msgstr "אין הודעה כזו." - #: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" @@ -6184,31 +3991,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "היכנס" - -#: lib/leaveform.php:114 -#, fuzzy -msgid "Leave" -msgstr "שמור" - -#: lib/logingroupnav.php:80 -#, fuzzy -msgid "Login with a username and password" -msgstr "שם המשתמש או הסיסמה לא חוקיים" - -#: lib/logingroupnav.php:86 -#, fuzzy -msgid "Sign up for a new account" -msgstr "צור חשבון חדש" - -#. TRANS: Subject for address confirmation email -#: lib/mail.php:174 -msgid "Email address confirmation" -msgstr "" - #. TRANS: Body for address confirmation email. #: lib/mail.php:177 #, php-format @@ -6240,33 +4022,6 @@ msgid "" "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, fuzzy, php-format -msgid "" -"%1$s is now listening to your notices on %2$s.\n" -"\n" -"\t%3$s\n" -"\n" -"%4$s%5$s%6$s\n" -"Faithfully yours,\n" -"%7$s.\n" -"\n" -"----\n" -"Change your email address or notification options at %8$s\n" -msgstr "" -"%1$s מאזין כעת להודעות שלך ב %2$s. \n" -"\n" -"\t%3$s\n" -" שלך,\n" -" %4$s.\n" - -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format -msgid "Bio: %s" -msgstr "אודות: %s" - #. TRANS: Subject of notification mail for new posting email address #: lib/mail.php:304 #, php-format @@ -6287,17 +4042,6 @@ msgid "" "%4$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 -#, php-format -msgid "%s status" -msgstr "" - -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 -msgid "SMS confirmation" -msgstr "" - #. TRANS: Main body heading for SMS-by-email address confirmation message #: lib/mail.php:463 #, php-format @@ -6353,12 +4097,6 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%1$s כעת מאזין להודעות שלך ב-%2$s" - #. TRANS: Body for favorite notification email #: lib/mail.php:592 #, php-format @@ -6433,82 +4171,77 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:506 msgid "from" msgstr "" -#: lib/mailhandler.php:37 -msgid "Could not parse message." -msgstr "" - -#: lib/mailhandler.php:42 -msgid "Not a registered user." -msgstr "" - -#: lib/mailhandler.php:46 -msgid "Sorry, that is not your incoming email address." -msgstr "" - #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." msgstr "" -#: lib/mailhandler.php:228 -#, fuzzy, php-format -msgid "Unsupported message type: %s" -msgstr "פורמט התמונה אינו נתמך." - -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:99 lib/mediafile.php:125 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:145 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:151 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:157 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:165 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:169 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:173 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:189 lib/mediafile.php:232 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:209 lib/mediafile.php:251 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy -msgid "Could not determine file's MIME type." -msgstr "עידכון המשתמש נכשל." - -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:340 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:345 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 @@ -6519,57 +4252,25 @@ msgstr "" msgid "To" msgstr "אל" -#: lib/messageform.php:159 lib/noticeform.php:185 -#, fuzzy -msgid "Available characters" -msgstr "לפחות 6 אותיות" - -#: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy -msgctxt "Send button for sending notice" -msgid "Send" -msgstr "שלח" - -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "הודעה חדשה" - -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "מה המצב %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 -#, fuzzy -msgid "Share my location" -msgstr "שמירת הפרופיל נכשלה." - -#: lib/noticeform.php:215 -#, fuzzy -msgid "Do not share my location" -msgstr "שמירת הפרופיל נכשלה." - -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" -#. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 -#, fuzzy -msgid "N" -msgstr "לא" - #. TRANS: Used in coordinates as abbreviation of south #: lib/noticelist.php:438 msgid "S" @@ -6594,29 +4295,17 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:567 -#, fuzzy -msgid "in context" -msgstr "אין תוכן!" - -#: lib/noticelist.php:602 -#, fuzzy -msgid "Repeated by" -msgstr "צור" - -#: lib/noticelist.php:629 -msgid "Reply to this notice" +#: lib/noticelist.php:502 +msgid "web" msgstr "" #: lib/noticelist.php:630 -#, fuzzy -msgid "Reply" -msgstr "הגב" +msgid "Reply to this notice" +msgstr "" -#: lib/noticelist.php:674 -#, fuzzy -msgid "Notice repeated" -msgstr "הודעות" +#: lib/noticelist.php:631 +msgid "Reply" +msgstr "תגובות" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -6631,27 +4320,23 @@ msgid "Send a nudge to this user" msgstr "" #: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "שגיאה בהכנסת הפרופיל" +msgid "Error inserting new profile." +msgstr "" #: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "שגיאה בהכנסת התמונה." - -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "שגיאה בעדכון פרופיל מרוחק" +msgid "Error inserting avatar." +msgstr "" #: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "שגיאה בהכנסת פרופיל מרוחק" +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "הודעה חדשה" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:346 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:491 msgid "Couldn't insert new subscription." msgstr "הכנסת מנוי חדש נכשלה." @@ -6679,16 +4364,13 @@ msgstr "" msgid "Outbox" msgstr "" -#: lib/personalgroupnav.php:131 -msgid "Your sent messages" -msgstr "" - #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:116 msgid "Unknown" msgstr "" @@ -6704,16 +4386,6 @@ msgstr "כל המנויים" msgid "Subscribers" msgstr "מנויים" -#: lib/profileaction.php:161 -#, fuzzy -msgid "All subscribers" -msgstr "מנויים" - -#: lib/profileaction.php:191 -#, fuzzy -msgid "User ID" -msgstr "מתשמש" - #: lib/profileaction.php:196 msgid "Member since" msgstr "חבר מאז" @@ -6723,10 +4395,6 @@ msgstr "חבר מאז" msgid "Daily average" msgstr "" -#: lib/profileaction.php:264 -msgid "All groups" -msgstr "" - #: lib/profileformaction.php:123 msgid "Unimplemented method." msgstr "" @@ -6747,35 +4415,10 @@ msgstr "" msgid "Featured" msgstr "" -#: lib/publicgroupnav.php:92 -#, fuzzy -msgid "Popular" -msgstr "אנשים" - -#: lib/redirectingaction.php:95 -#, fuzzy -msgid "No return-to arguments." -msgstr "אין מסמך כזה." - -#: lib/repeatform.php:107 -#, fuzzy -msgid "Repeat this notice?" -msgstr "אין הודעה כזו." - #: lib/repeatform.php:132 msgid "Yes" msgstr "כן" -#: lib/repeatform.php:132 -#, fuzzy -msgid "Repeat this notice" -msgstr "אין הודעה כזו." - -#: lib/revokeroleform.php:91 -#, fuzzy, php-format -msgid "Revoke the \"%s\" role from this user" -msgstr "אין משתמש כזה." - #: lib/router.php:709 msgid "No single user defined for single-user mode." msgstr "" @@ -6784,28 +4427,16 @@ msgstr "" msgid "Sandbox" msgstr "" -#: lib/sandboxform.php:78 -#, fuzzy -msgid "Sandbox this user" -msgstr "אין משתמש כזה." - -#: lib/searchaction.php:120 -#, fuzzy -msgid "Search site" -msgstr "חיפוש" - -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:129 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "חיפוש" - -#: lib/searchaction.php:162 -#, fuzzy -msgid "Search help" -msgstr "חיפוש" +msgstr "" #: lib/searchgroupnav.php:80 msgid "People" @@ -6831,26 +4462,6 @@ msgstr "" msgid "More..." msgstr "" -#: lib/silenceform.php:67 -#, fuzzy -msgid "Silence" -msgstr "הודעה חדשה" - -#: lib/silenceform.php:78 -#, fuzzy -msgid "Silence this user" -msgstr "אין משתמש כזה." - -#: lib/subgroupnav.php:83 -#, fuzzy, php-format -msgid "People %s subscribes to" -msgstr "הרשמה מרוחקת" - -#: lib/subgroupnav.php:91 -#, fuzzy, php-format -msgid "People subscribed to %s" -msgstr "הרשמה מרוחקת" - #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" @@ -6875,11 +4486,6 @@ msgstr "" msgid "People Tagcloud as tagged" msgstr "" -#: lib/tagcloudsection.php:56 -#, fuzzy -msgid "None" -msgstr "לא" - #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6888,14 +4494,7 @@ msgstr "" msgid "The theme file is missing or the upload failed." msgstr "" -#: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy -msgid "Failed saving theme." -msgstr "עדכון התמונה נכשל." - -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" @@ -6908,22 +4507,21 @@ msgstr "" msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:218 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:224 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:241 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy -msgid "Error opening theme archive." -msgstr "שגיאה בעדכון פרופיל מרוחק" - #: lib/topposterssection.php:74 msgid "Top posters" msgstr "" @@ -6932,38 +4530,14 @@ msgstr "" msgid "Unsandbox" msgstr "" -#: lib/unsandboxform.php:80 -#, fuzzy -msgid "Unsandbox this user" -msgstr "אין משתמש כזה." - #: lib/unsilenceform.php:67 msgid "Unsilence" msgstr "" -#: lib/unsilenceform.php:78 -#, fuzzy -msgid "Unsilence this user" -msgstr "אין משתמש כזה." - -#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -msgid "Unsubscribe from this user" -msgstr "" - #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "בטל מנוי" -#: lib/usernoprofileexception.php:58 -#, fuzzy, php-format -msgid "User %s (%d) has no profile record." -msgstr "למשתמש אין פרופיל." - -#: lib/userprofile.php:117 -#, fuzzy -msgid "Edit Avatar" -msgstr "תמונה" - #: lib/userprofile.php:234 lib/userprofile.php:248 msgid "User actions" msgstr "" @@ -6972,11 +4546,6 @@ msgstr "" msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 -#, fuzzy -msgid "Edit profile settings" -msgstr "הגדרות הפרופיל" - #: lib/userprofile.php:264 msgid "Edit" msgstr "" @@ -6985,20 +4554,10 @@ msgstr "" msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:288 -#, fuzzy -msgid "Message" -msgstr "הודעה חדשה" - #: lib/userprofile.php:326 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 -#, fuzzy -msgid "User role" -msgstr "למשתמש אין פרופיל." - #: lib/userprofile.php:366 msgctxt "role" msgid "Administrator" @@ -7010,70 +4569,68 @@ msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1103 msgid "a few seconds ago" msgstr "לפני מספר שניות" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1106 msgid "about a minute ago" msgstr "לפני כדקה" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1110 #, php-format -msgid "about %d minutes ago" -msgstr "לפני כ-%d דקות" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1113 msgid "about an hour ago" msgstr "לפני כשעה" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1117 #, php-format -msgid "about %d hours ago" -msgstr "לפני כ-%d שעות" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1120 msgid "about a day ago" msgstr "לפני כיום" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1124 #, php-format -msgid "about %d days ago" -msgstr "לפני כ-%d ימים" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1127 msgid "about a month ago" msgstr "לפני כחודש" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1131 #, php-format -msgid "about %d months ago" -msgstr "לפני כ-%d חודשים" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1134 msgid "about a year ago" msgstr "לפני כשנה" -#: lib/webcolor.php:82 -#, fuzzy, php-format -msgid "%s is not a valid color!" -msgstr "לאתר הבית יש כתובת לא חוקית." - #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" - -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 860efa66ec..f53d6917f6 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -1,580 +1,829 @@ -# Translation of StatusNet to Upper Sorbian +# Translation of StatusNet - Core to Upper Sorbian (Hornjoserbsce) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Michawiki +# Author: Brion +# Author: McDutchie +# Author: Michawiki # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:33+0000\n" -"Language-Team: Dutch\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:53+0000\n" +"Language-Team: Upper Sorbian <http://translatewiki.net/wiki/Portal:hsb>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : (n%100==3 || " "n%100==4) ? 2 : 3)\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Přistup" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Nastajenja za sydłowy přistup" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrowanje" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Anonymnym wužiwarjam (njepřizjewjenym) wobhladowanje sydła zakazć?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Priwatny" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Jenož přeprosyć" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Nowe registrowanja znjemóžnić." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Začinjeny" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Přistupne nastajenja składować" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Składować" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Strona njeeksistuje." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Wužiwar njeeksistuje" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s a přećeljo, strona %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s a přećeljo" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Kanal za přećelow wužiwarja %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Kanal za přećelow wužiwarja %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Kanal za přećelow wužiwarja %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Ty a přećeljo" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Aktualizacije wot %1$s a přećelow na %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API-metoda njenamakana." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Tuta metoda wužaduje sej POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Wužiwar njeje so dał aktualizować." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Wužiwar nima profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Profil njeje so składować dał." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "Njeje móžno, designowe nastajenja składować." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Design njeda so aktualizować." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Hłowny" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s abonementow" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Fawority" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s skupinskich čłonow" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Njemóžeš so samoho blokować." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokowanje wužiwarja je so njeporadźiło." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Wotblokowanje wužiwarja je so njeporadźiło." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direktne powěsće z %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Wšě z %s pósłane direktne powěsće" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direktne powěsće do %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Wšě do %s pósłane direktne powěsće" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Žadyn powěsćowy tekst!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješkow." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješko." +msgstr[1] "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješce." +msgstr[2] "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješka." +msgstr[3] "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješkow." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Přijimowar njenamakany." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Njeje móžno, direktne powěsće wužiwarjam pósłać, kotřiž twoji přećeljo " "njejsu." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Status z tym ID njenamakany." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Tutón status je hižo faworit." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Faworit njeda so wutworić." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Tón status faworit njeje." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Faworit njeda so zhašeć." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Njebě móžno wužiwarja słědować: profil njenamakany." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "Njebě móžno wužiwarja słědować: %s je hižo na twojej lisćinje." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." -msgstr "" +msgstr "Njebě móžno slědowanje wužiwarja kónčić: wužiwar njenamakany." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Njemóžeš slědowanje swójskich aktiwitow blokować." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Dyrbitej so dwaj płaćiwej wužiwarskej ID abo wužiwarskej mjenje podać." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Dyrbitej so dwaj płaćiwej wužiwarskej ID abo wpřimjenje podać." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Žórłowy wužiwar njeda so postajić." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Cilowy wužiwar njeda so namakać." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Přimjeno smě jenož małe pismiki a cyfry wobsahować. Mjezery njejsu dowolene." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Žane płaćiwe přimjeno." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Startowa strona njeje płaćiwy URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "Dospołne mjeno je předołho (maks. 255 znamješkow)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Wopisanje je předołho (maks. %d znamješkow)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Wopisanje je předołho (maks. %d znamješko)." +msgstr[1] "Wopisanje je předołho (maks. %d znamješce)." +msgstr[2] "Wopisanje je předołho (maks. %d znamješka)." +msgstr[3] "Wopisanje je předołho (maks. %d znamješkow)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." msgstr "Městno je předołho (maks. 255 znamješkow)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Přewjele aliasow! Maksimum: %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Přewjele aliasow! Maks. %d dowoleny." +msgstr[1] "Přewjele aliasow! Maks, %d dowolenej." +msgstr[2] "Přewjele aliasow! Maks. %d dowolene." +msgstr[3] "Přewjele aliasow! Maks. %d dowolenych." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Njepłaćiwy alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" so hižo wužiwa. Spytaj druhi." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias njemóže samsny kaž přimjeno być." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Skupina njenamakana." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Sy hižo čłon teje skupiny." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Administratora tuteje skupiny je će zablokował." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Njebě móžno wužiwarja %1$s skupinje %2%s přidać." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Njejsy čłon tuteje skupiny." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Njebě móžno wužiwarja %1$s ze skupiny %2$s wotstronić." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Skupiny wužiwarja %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Skupiny na %1$s, w kotrychž wužiwar %2$s je čłon." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s skupinow" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "skupiny na %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Nahraće je so njeporadźiło." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Njepłaćiwe přizjewjenske znamješka." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." msgstr "Njepłaćiwy token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Naprašowanski token hižo awtorizowany." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Njepłaćiwe přimjeno abo hesło!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Zmylk datoweje banki při zhašenju wužiwarja OAuth-aplikacije." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Zmylk datoweje banki při zasunjenju oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Njewočakowane wotpósłanje formulara." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Aplikacija chce so z twojom kontom zwjazać" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Přistup dowolić abo wotpokazać" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -582,241 +831,620 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Přimjeno" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Hesło" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Wotpokazać" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Přetorhnyć" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Dowolić" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Přistup ke kontowym informacijam dowolić abo wotpokazać." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Přistup ke kontowym informacijam awtorizować." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Awtorizacija přetorhnjena." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Sy aplikaciju wuspěšnje awtorizował" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Sy %s wuspěšnje awtorizował" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Tuta metoda wužaduje sej POST abo DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Njemóžeš status druheho wužiwarja zničić." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Zdźělenka njeeksistuje." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Njemóžno twoju zdźělenku wospjetować." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Tuta zdźělenka bu hižo wospjetowana." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP-metoda so njepodpěruje." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Njepodpěrany format: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status zničeny." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Žadyn status z tym ID namakany." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Tuta zdźělenka njeda so zničić." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Zhašana zdźělenka %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "Klient dyrbi parameter 'status' z hódnotu podać." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješka." +msgstr[1] "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješce." +msgstr[2] "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješka." +msgstr[3] "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Njenamakany." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Wotpowědna zdźělenka njenamakana." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Njepodpěrany format." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" -msgstr "" +msgstr "%1$s / Fawority z %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "" +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Aktualizacije z %1$s wot %2$s / %3$s faworizowane" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Njebě móžno kanal za skupinu wutworić - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s aktualizacijow wote wšěch!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Njeimplementowana metoda." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" -msgstr "" +msgstr "Do %s wospjetowany" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" +msgstr "Aktualizacije z %1$s na %2$s markěrowane!" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Jenož wužiwar móže swojsku časowu lajstu přidać." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Jenož AtomPub za Atom-kanale akceptować." + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." msgstr "" -#: actions/apitrends.php:87 +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Wobsah zdźělenkow přepytać" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Zdźělenka z URI \"%s\" hižo eksistuje." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." +msgstr "API-metoda njeskónčena." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Wužiwar njenamakany." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Profil njeeksistuje." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" msgstr "" +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Nowy abonement njeda so zasunyć." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Wobsah zdźělenkow přepytać" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Njeznaty" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "K faworitam přidać" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Profil njeeksistuje." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s skupinskich čłonow" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Skupiny, w kotrychž %s je čłon" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Njeznaty" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Wšitcy čłonojo" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Dataja njeeksistuje." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Faworit njeda so zhašeć." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Skupina njeeksistuje." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Wšitcy čłonojo" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP-metoda so njepodpěruje." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Profil njeeksistuje." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Njejsy tón profil abonował." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Sebjeabonement njeda so zhašeć." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Ludźo, kotřiž su %s abonowali" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Njeznaty datajowy typ" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Přiwěšk njeeksistuje." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Žane přimjeno." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Žana wulkosć." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Njepłaćiwa wulkosć." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Awatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Móžeš swój wosobinski awatar nahrać. Maksimalna datajowa wulkosć je %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Wužiwar bjez hodźaceho so profila." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Nastajenja awatara" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Přehlad" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "Zničić" +msgstr "Zhašeć" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Nahrać" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" -msgstr "" +msgstr "Přirězać" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Žana dataja nahrata." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Naše datajowe daty su so zhubili." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Awatar zaktualizowany." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Aktualizowanje awatara je so njeporadźiło." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Awatar zničeny." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Sy tutoho wužiwarja hižo zablokował." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Wužiwarja blokować" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -825,175 +1453,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Ně" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Tutoho wužiwarja njeblokować" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Haj" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Tutoho wužiwarja blokować" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." -msgstr "" +msgstr "Njebě móžno blokěrowanske informacije składować." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Skupina njeeksistuje." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s je profile zablokował" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s zablokowa profile, stronu %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "Lisćina wužiwarjow, kotřiž buchu za tutu skupinu zablokowani." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Wužiwarja za skupinu wotblokować" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Wotblokować" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Tutoho wužiwarja wotblokować" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Na %s pósłać" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Žadyn wobkrućenski kod." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Wobkrućenski kod njenamakany." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Tutón wobkrućenski kod njeje za tebje!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Njespóznaty adresowy typ %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Tuta adresa bu hižo wobkrućena." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Wužiwar njeda aktualizować." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "E-mejlowe wobkrućenje njeda so zhašeć." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Adresowe wobkrućenje njeda so zhašeć." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Adresu wobkrućić" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adresa \"%s\" bu za twoje konto wobkrućena." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Konwersacija" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Zdźělenki" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Dyrbiš přizjewjeny być, zo by aplikaciju zničił." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Aplikaciska njenamakana." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Njejsy wobsedźer tuteje aplikacije." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Aplikaciju zničić" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1001,51 +1673,108 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Tutu aplikaciju njezničić" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Tutu aplikaciju zničić" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Dyrbiš přizjewjeny być, zo by skupinu zhašał." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Žane přimjeno abo žadyn ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Njesměš tutu skupinu zhašeć." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Skupina %s njeda so aktualizować." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Skupina %s zhašana" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Skupinu zhašeć" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Tuitu skupinu njezhašeć" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Tutu skupinu zhašeć" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Njepřizjewjeny." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Tuta zdźělenka njeda so zničić." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Zdźělenku wušmórnyć" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -1074,62 +1803,71 @@ msgstr "Tutoho wužiwarja wušmórnyć" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Design" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Designowe nastajenja za tute sydło StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Designowe nastajenja za tute sydło StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Njepłaćiwy logowy URL." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Njepłaćiwy SSL-URL loga." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Šat njesteji k dispoziciji: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Logo změnić" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo sydła" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL-logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Šat změnić" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Šat sydła" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Šat za sydło." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Swójski šat" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Móžeš swójski šat StatusNet jako .ZIP-archiw nahrać." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Pozadkowy wobraz změnić" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Pozadk" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1138,75 +1876,84 @@ msgstr "" "Móžeš pozadkowy wobraz za sydło nahrać. Maksimalna datajowa wulkosć je %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Zapinjeny" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Wupinjeny" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." -msgstr "" +msgstr "Pozadkowy wobraz zmóžnić abo znjemóžnić." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" -msgstr "" +msgstr "Pozadkowy wobraz kachlicować" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Barby změnić" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Wobsah" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Bóčnica" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Wotkazy" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Rozšěrjeny" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Swójski CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Standardne hódnoty wužiwać" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Standardne designy wobnowić" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Na standard wróćo stajić" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Składować" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Design składować" @@ -1223,109 +1970,129 @@ msgstr "K faworitam přidać" msgid "No such document \"%s\"" msgstr "Dokument \"%s\" njeeksistuje" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Aplikaciju wobdźěłać" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Aplikacija njeeksistuje." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Wužij tutón formular, zo by aplikaciju wobdźěłał." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Mjeno je trěbne." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "Mjeno je předołho (maks. 255 znamješkow)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Mjeno so hižo wužiwa. Spytaj druhe." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Wopisanje je trěbne." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Žórłowy URL je předołhi." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "URL žórła płaćiwy njeje." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organizacija je trěbna." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "Mjeno organizacije je předołho (maks. 255 znamješkow)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Startowa strona organizacije je trěbna." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." -msgstr "" +msgstr "Wróćowołanski URL je předołhi." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." -msgstr "" +msgstr "Wróćowołanski URL płaćiwy njeje." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Aplikacija njeda so aktualizować." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Skupinu %s wobdźěłać" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wutworił." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Dyrbiš administrator być, zo by skupinu wobdźěłał." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Wuž tutón formular, zo by skupinu wobdźěłał." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "wopisanje je předołho (maks. %d znamješkow)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Njepłaćiwy alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Skupina njeje so dała aktualizować." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Aliasy njejsu so dali wutworić." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Opcije składowane." @@ -1343,12 +2110,12 @@ msgstr "" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-mejlowa adresa" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Aktualna wobkrućena e-mejlowa adresa." @@ -1357,38 +2124,32 @@ msgstr "Aktualna wobkrućena e-mejlowa adresa." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Wotstronić" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Přetorhnyć" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-mejlowa adresa, kaž na př. \"WužiwarskeMjeno@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1396,110 +2157,117 @@ msgstr "Přidać" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Dochadźaca e-mejl" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Chcu zdźělenki přez e-mejl pósłać." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." +msgstr "Pósćel e-mejl na tutu adresu, zo by nowe zdźělenki pósłał." + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." msgstr "" #. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nowy" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-mejlowe nastajenja" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "Pósćel mi zdźělenki wo nowych abonementach přez e-mejl." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "E-mejl pósłać, hdyž něchtó moju powěsć jako faworit přidawa." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "E-mejl pósłać, hdyž něchtó priwatnu powěsć sćele." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "E-mejl pósłać, hdyž něchtó mi \"@-reply\" sćele." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "Přećelam dowolić mje storkać a mi e-mejl pósłać." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Chcu zdźělenki přez e-mejl pósłać." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "MicroID za moju e-mejlowu adresu publikować" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "E-mejlowe nastajenja składowane." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Žana e-mejlowa adresa." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" -msgstr "" +msgstr "Tuta e-mejlowa adresa njehodźi so normalizować" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Njepłaćiwa e-mejlowa adresa." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "To je hižo twoja e-mejlowa adresa." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Ta e-mejlowa adresa hižo słuša k druhemu wužiwarjej." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "" +msgstr "Wobkrućenski kod njehodźi so zasunyć." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1508,50 +2276,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." -msgstr "" +msgstr "Njeje žane njesćinjene wobkrućenje, kotrež da so přetorhnyć," #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "To je wopačna e-mejlowa adresa." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "E-mejlowe wobkrućenje njeda so zhašeć." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "E-mejlowe wobkrućenje přetorhnjene." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "To njeje twoja e-mejlowa adresa." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "E-mejlowa adresa bu wotstronjena." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Žana adresa za dochadźace e-mejle." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Datowa sadźba wužiwarja njeda so aktualizować." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Adresa za dochadźaće e-mejle wotstronjena." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nowa adresa za dochadźace e-mejle přidata." @@ -1559,11 +2333,11 @@ msgstr "Nowa adresa za dochadźace e-mejle přidata." msgid "This notice is already a favorite!" msgstr "Tuta zdźělenka je hižo faworit!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "" +msgstr "Z faworitow wotstronić" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Woblubowane zdźělenki" @@ -1595,15 +2369,15 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "Fawority wužiwarja %s" #: actions/favoritesrss.php:115 #, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "" +msgstr "Aktualizacije preferowane wot %1$s na %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1664,7 +2438,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Zmylk při aktualizaciji zdaleneho profila." @@ -1692,19 +2466,23 @@ msgstr "Njemóžeš wužiwarske róle na tutym sydle garantować." msgid "User already has this role." msgstr "Wužiwar hižo ma tutu rólu." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Žadyn profil podaty." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Žadyn profil z tym ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Žana skupina podata." @@ -1721,7 +2499,7 @@ msgstr "Wužiwar je hižo za skupinu zablokowany." msgid "User is not a member of group." msgstr "Wužiwar njeje čłon skupiny." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Wužiwarja za skupinu blokować" @@ -1765,10 +2543,12 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." -msgstr "" +msgstr "Twój design njeda so aktualizować." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." @@ -1786,6 +2566,14 @@ msgstr "" "Móžeš logowy wobraz za swoju skupinu nahrać. Maksimalna datajowa wulkosć je %" "s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Nahrać" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Přirězać" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" @@ -1798,49 +2586,56 @@ msgstr "Logo zaktualizowane." msgid "Failed updating logo." msgstr "Aktualizowanje loga je so njeporadźiło." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s skupinskich čłonow" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s skupinskich čłonow, strona %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Lisćina wužiwarjow w tutej skupinje." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blokować" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Tutoho wužiwarja blokować" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Wužiwarja k administratorej skupiny činić" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Za administratora pomjenować" +msgstr "K administratorej činić" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Tutoho wužiwarja k administratorej činić" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1893,7 +2688,7 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" -"Jeli njemóžeš skupinu namakać, kotruž pytaš, móžeš [ju wutworić] (%%action." +"Jeli njemóžeš skupinu namakać, kotruž pytaš, móžeš [ju wutworić](%%action." "newgroup%%)." #: actions/groupsearch.php:85 @@ -1903,15 +2698,18 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Jenož administrator móže skupinskich čłonow wotblokować." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Wužiwar njeje zablokowany za skupinu." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Zmylk při wotstronjenju blokowanja." @@ -1943,7 +2741,7 @@ msgstr "IM-adresa" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." -msgstr "" +msgstr "Aktualna wobkrućena adresa Jabber/GTalk." #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. @@ -1956,7 +2754,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1964,63 +2765,63 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "IM-nastajenja" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." -msgstr "" +msgstr "Pósćel mi zdźělenki přez Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "MicroID za moju adresu Jabber/GTalk publikować." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Nastajenja składowane." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Žadyn ID Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "" +msgstr "Tutón Jabber-ID njehodźi so normalizować" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Njepłaćiwy ID Jabber" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "To je hižo twój ID Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." -msgstr "" +msgstr "Jabber-ID hižo druhemu wužiwarjej słuša." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2028,28 +2829,28 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "to je wopačna IM-adresa." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "IM-wobkrućenje njeda so zhašeć." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "IM-wobkrućenje přetorhnjene." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "To njeje twój ID Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "IM-adresa bu wotstronjena." @@ -2068,93 +2869,137 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "To je twój dochadny póst, kotryž twoje priwatne dochadne powěsće nalistuje." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Přeprošenja buchu znjemóžnjene." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Dyrbiš přizjewjeny być, zo by druheho wužiwarja přeprosył, zo by wón %s " "wužiwał." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" +msgid "Invalid email address: %s." msgstr "Njepłaćiwa e-mejlowa adresa: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "Přeprošenja pósłane" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Nowych wužiwarjow přeprosyć" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Sy tutych wužiwarjow hižo abonował:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Sy tutoho wužiwarja hižo abonował:" +msgstr[1] "Sy tuteju wužiwarjow hižo abonował:" +msgstr[2] "Sy tutych wužiwarjow hižo abonował:" +msgstr[3] "Sy tutych wužiwarjow hižo abonował:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Tući ludźo su hižo wužiwarjo a ty sy jich awtomatisce abonował:" +msgstr[0] "Tuta wosoba je hižo wužiwar a ty sy awtomatisce abonował:" +msgstr[1] "" +"Tutaj wosobje stej hižo wužiwarjej a ty sy jeju awtomatisce abonował:" +msgstr[2] "Tući ludźo su hižo wužiwarjo a ty sy jich awtomatisce abonował:" +msgstr[3] "Tući ludźo su hižo wužiwarjo a ty sy jich awtomatisce abonował:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Přeprošenja, kotrež buchu na slědowacych ludźi pósłane:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Přeprošenje, kotrež bu na slědowacu wosobu pósłane:" +msgstr[1] "Přeprošeni, kotrejž buštej na slědowaceju wosobowludźi pósłanej:" +msgstr[2] "Přeprošenja, kotrež buchu na slědowacych ludźi pósłane:" +msgstr[3] "Přeprošenja, kotrež buchu na slědowacych ludźi pósłane:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu " "tutu słužbu wužiwali." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-mejlowe adresy" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresy přećelow, kotřiž maja so přeprosyć (jedna na linku)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Wosobinska powěsć" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Pósłać" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s je će přeprosył, na %2$s sobu činić" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2189,13 +3034,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Dyrbiš přizjewjeny być, zo by do skupiny zastupił." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Žane přimjeno abo žadyn ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s je do %2$s zastupił" @@ -2204,17 +3043,120 @@ msgstr "%1$s je do %2$s zastupił" msgid "You must be logged in to leave a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wopušćił." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Njejsy čłon teje skupiny." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s je skupinu %2$s wopušćił" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licenca" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licenca za tute sydło StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Njepłaćiwy wuběr licency." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Njepłaćiwy titul licency. Maksimalna dołhosć je 255 znamješkow." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Njepłaćiwy URL licency." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Njepłaćiwy URL wobraza licency." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Licencowy URL dyrbi prózdny abo płaćiwy URL być." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Licencowy wobraz dyrbi prózdny abo płaćiwy URL być." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Wuběr licency" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Priwatny" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Wšě prawa wuměnjene." + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Cresative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Typ" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Licencu wubrać" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Podrobnosće licency" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Wobsedźer" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Titul licency" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Titul licency." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL licency" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL za dalše informacije wo licency." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL wobraza licency" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL za wobraz, kotryž ma so z licencu zwobraznić." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Licencne nastajenja składować" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Hižo přizjewjeny." @@ -2235,11 +3177,11 @@ msgstr "Přizjewić" msgid "Login to site" msgstr "Při sydle přizjewić" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Składować" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" @@ -2289,66 +3231,76 @@ msgstr "Njeje móžno %1$s k administratorej w skupinje %2$s činić." msgid "No current status." msgstr "Žadyn aktualny status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nowa aplikacija" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Dyrbiš přizjewjeny być, zo by aplikaciju registrował." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Wužij tutón formular, zo by nowu aplikaciju registrował." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Žórłowy URL je trěbny." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Aplikacija njeda so wutworić." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nowa skupina" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Wužij tutón formular, zo by nowu skupinu wutworił." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nowa powěsć" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Njemóžeš tutomu wužiwarju powěsć pósłać." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Žadyn wobsah!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Žadyn přijimowar podaty." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Powěsć pósłana" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Direktna powěsć do %s pósłana." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Zmylk Ajax" @@ -2356,7 +3308,7 @@ msgstr "Zmylk Ajax" msgid "New notice" msgstr "Nowa zdźělenka" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Zdźělenka wotpósłana" @@ -2398,87 +3350,113 @@ msgstr "Aktualizacije z \"%s\"" #: actions/noticesearchrss.php:98 #, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "" +msgstr "Aktualizacije, kotrež pytanskemu zapřijeću %1$s na %2$s wotpowěduja!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "Stork wotpósłany" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "Stork wotpósłany!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Dyrbiš přizjewjeny być, zo by swoje aplikacije nalistował." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplikacije OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplikacije, za kotrež sy zregistrował" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Hišće njejsy aplikacije zregistrował." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Zwjazane aplikacije" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "" +msgid "The following connections exist for your account." +msgstr "Slědowace zwiski za twoje konto eksistuja." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Njejsy wužiwar tuteje aplikacije." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." +msgstr "Njemóžno přistup za aplikaciju cofnyć: %s-" + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "" +msgstr "Njejsy aplikacije za wužiwanje wašeho konta awtorizował." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Zdźělenka nima profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" -msgstr "" +msgstr "Status %1$s na %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Wobsahowy typ %s so njepodpěruje." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -2490,37 +3468,46 @@ msgstr "Ludźi pytać" msgid "Notice Search" msgstr "Zdźělenku pytać" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Druhe nastajenja" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Wšelake druhe opcije zrjadować." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (swobodna słužba)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" -msgstr "" +msgstr "URL skrótšić z" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "" +msgstr "Profilowe designy sej wobhladać" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." -msgstr "" +msgstr "Profilowe designy pokazać abo schować." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "" +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "Krótšenska słužba za URL je předołha (maks. 50 znamješkow)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2532,7 +3519,7 @@ msgstr "Žane přizjewjenske znamješko podate." #: actions/otp.php:90 msgid "No login token requested." -msgstr "" +msgstr "Žadyn přizjewjenski token trěbny." #: actions/otp.php:95 msgid "Invalid login token specified." @@ -2555,6 +3542,8 @@ msgstr "Wuchadny póst za %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"To je twój wuchadny póst, kotryž twoje priwatne powěsće nalistuje, kotrež sy " +"pósłał." #: actions/passwordsettings.php:58 msgid "Change password" @@ -2581,7 +3570,7 @@ msgid "6 or more characters" msgstr "6 abo wjace znamješkow" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Wobkrućić" @@ -2593,11 +3582,11 @@ msgstr "Samsne hesło kaž horjeka" msgid "Change" msgstr "Změnić" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Hesło dyrbi 6 abo wjace znamješkow měć." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Hesle so njekryjetej." @@ -2617,156 +3606,273 @@ msgstr "Nowe hesło njeda so składować." msgid "Password saved." msgstr "Hesło składowane." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Šćežki" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Šćežka a serwerowe nastajenja za tute sydło StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Šćežka a serwerowe nastajenja za tute sydło StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Šatowy zapis njeda so čitać: %s" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Do awataroweho zapisa njeda so pisać: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Do pozadkoweho zapisa njeda so pisać: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "Zapis lokalow njeda so čitać: %s" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "Njepłaćiwy SSL-serwer. Maksimalna dołhosć je 255 znamješkow." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Sydło" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Serwer" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Šćežka" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Sydłowa šćežka" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Sydłowa šćežka." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Šćežka k lokalam" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Zapis lokalow" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Zapisowa šćežka k lokalam" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Zapisowa šćežka k lokalam." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Šat" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Šatowy serwer" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Serwer za šaty." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Šatowa šćežka" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Webšćežka k šatam." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Šatowy zapis" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Awatary" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Awatarowy serwer" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Awatarowa šćežka" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Awatarowy zapis" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Pozadki" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Pozadkowy serwer" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Pozadkowa šćežka" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Pozadkowy zapis" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Ženje" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Druhdy" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Přeco" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "SSL wužiwać" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-serwer" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-serwer za šaty (standard: SSL-serwer)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-šćežka" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-šćežka k šatam (standard: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Zapis" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Zapis, hdźež šaty su." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Awatary" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Awatarowy serwer" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Serwer za awatary." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Awatarowa šćežka" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Webšćežka k awataram." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Awatarowy zapis" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Zapis, hdźež awatary su." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Pozadki" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Serwer za pozadki." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Webšćežka k pozadkam." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Serwer za pozadki na SSL-stronach." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Webšćežka k pozadkam na SSL-stronach." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Zapis, hdźež pozadki su." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Přiwěški" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Serwer za přiwěški." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Webšćežka k přiwěškam." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Serwer za přiwěški na SSL-stronach." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Serwer za přiwěški na SSL-stronach." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Zapis, hdźež přiwěški su." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Ženje" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Druhdy" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Přeco" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL wužiwać" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Šćežki składować" @@ -2800,137 +3906,185 @@ msgstr "Njepłaćiwy wobsah zdźělenki." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profilowe nastajenja" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Móžeš swoje wosobinske profilowe informacije aktualizować, zo bychu ludźo " "wjace wo tebi zhonili." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profilowe informacije" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" +"1-64 małopisanych pismikow abo ličbow, žane interpunkciske znamješka abo " +"mjezery." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Dospołne mjeno" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Startowa strona" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "URL twojeje startoweje strony, bloga abo profila na druhim sydle." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Wopisaj sebje a swoje zajimy z %d znamješkami" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Wopisaj sebje a swoje zajimy z %d znamješkom" +msgstr[1] "Wopisaj sebje a swoje zajimy z %d znamješkomaj" +msgstr[2] "Wopisaj sebje a swoje zajimy z %d znamješkami" +msgstr[3] "Wopisaj sebje a swoje zajimy z %d znamješkami" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Wopisaj sebje a swoje zajimy" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografija" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Městno" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Hdźež sy, na př. \"město, zwjazkowy kraj (abo region) , kraj\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Rěč" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Preferowana rěč" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Časowe pasmo" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "" +msgstr "W kotrym časowym pasmje sy zwjetša?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Biografija je předołha (maks. %d znamješkow)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Biografija je předołha (maks. %d znamješko)" +msgstr[1] ".Biografija je předołha (maks. %d znamješce)." +msgstr[2] "Biografija je předołha (maks. %d znamješka)." +msgstr[3] "Biografija je předołha (maks. %d znamješkow)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Časowe pasmo njeje wubrane." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "Mjeno rěče je předołhe (maks. 50 znamješkow)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" -msgstr "" +msgstr "Njepłaćiwa taflička: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Wužiwar njeda so za awtomatiske abonowanje aktualizować." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Nastajenja městna njedachu so składować." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Profil njeda so składować." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." -msgstr "" +msgstr "Taflički njedadźa so składować." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Nastajenja składowane." @@ -2941,12 +4095,12 @@ msgstr "Limit stronow (%s) překročeny." #: actions/public.php:92 msgid "Could not retrieve public stream." -msgstr "" +msgstr "Zjawny prud njeda so wotwołać." #: actions/public.php:130 #, php-format msgid "Public timeline, page %d" -msgstr "" +msgstr "Zjawna časowa lajsta, strona %d" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" @@ -2998,34 +4152,47 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" -msgstr "" +msgstr "Mróčel tafličkow" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -3033,11 +4200,11 @@ msgstr "Sy hižo přizjewjeny!" #: actions/recoverpassword.php:62 msgid "No such recovery code." -msgstr "" +msgstr "Njeznaty wobnowjenski kod." #: actions/recoverpassword.php:66 msgid "Not a recovery code." -msgstr "" +msgstr "Žadyn wobnowjenski kod." #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." @@ -3053,7 +4220,7 @@ msgstr "Tutón wobkrućenski kod je přestary. Prošu započń hišće raz." #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Wužiwar njeda so z wobkrućenej e-mejlowej adresu aktualizować." #: actions/recoverpassword.php:152 msgid "" @@ -3131,17 +4298,17 @@ msgstr "" #: actions/recoverpassword.php:357 msgid "Unexpected password reset." -msgstr "" +msgstr "Njewočakowane hesło wróćo stajene." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Hesło dyrbi 6 znamješkow abo wjace měć." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Hesło a jeho wobkrućenje so njekryjetej." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Zmylk při nastajenju wužiwarja." @@ -3149,7 +4316,7 @@ msgstr "Zmylk při nastajenju wužiwarja." msgid "New password successfully saved. You are now logged in." msgstr "Nowe hesło bu wuspěšnje składowane. Sy nětko přizjewjeny." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Wodaj, jenož přeprošeni ludźo móžeja so registrować." @@ -3161,7 +4328,7 @@ msgstr "Wodaj, njepłaćiwy přeprošenski kod." msgid "Registration successful" msgstr "Registrowanje wuspěšne" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrować" @@ -3169,80 +4336,86 @@ msgstr "Registrować" msgid "Registration not allowed." msgstr "Registracija njedowolena." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Njemóžeš so registrować, jeli njepřizwoleš do licency." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "E-mejlowa adresa hižo eksistuje." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Njepłaćiwe wužiwarske mjeno abo hesło." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" +"1-64 małopisanych pismikow abo ličbow, žane interpunkciske znamješka abo " +"mjezery. Trěbne." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 abo wjace znamješkow. Trěbne." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Jenake kaž hesło horjeka. Trěbne." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mejl" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Dlěše mjeno, wosebje twoje \"woprawdźite\" mjeno" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Wšě prawa wuměnjenjene." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3261,7 +4434,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3300,7 +4473,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abonować" @@ -3322,7 +4495,7 @@ msgstr "" #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "Jeno6 přizjewjeni wužiwarjo móža zdźělenki wospjetować." #: actions/repeat.php:64 actions/repeat.php:71 msgid "No notice specified." @@ -3336,7 +4509,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Wospjetowany" @@ -3345,30 +4518,30 @@ msgid "Repeated!" msgstr "Wospjetowany!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" -msgstr "" +msgstr "Wotmołwy na %s" #: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" -msgstr "" +msgstr "Wotmołwy na %1$s, strona %2$d" #: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "" +msgstr "Kanal wotmołwow za %s (RSS 1.0)" #: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "" +msgstr "Kanal wotmołwow za %s (RSS 2.0)" #: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" -msgstr "" +msgstr "Kanal wotmołwow za %s (Atom)" #: actions/replies.php:199 #, php-format @@ -3394,7 +4567,7 @@ msgstr "" #: actions/repliesrss.php:72 #, php-format msgid "Replies to %1$s on %2$s!" -msgstr "" +msgstr "Wotmołwy na %1$s na %2$s!" #: actions/revokerole.php:75 msgid "You cannot revoke user roles on this site." @@ -3410,21 +4583,21 @@ msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." -msgstr "" +msgstr "Njemóžeš wužiwarjow na tutym sydle do pěskoweho kašćika słać." #: actions/sandbox.php:72 msgid "User is already sandboxed." -msgstr "" +msgstr "Wužiwar je hižo w pěskowym kašćiku." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Posedźenja" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Nastajenja posedźenja za tute sydło StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3443,7 +4616,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sydłowe nastajenja składować" @@ -3456,28 +4628,29 @@ msgid "Application profile" msgstr "Aplikaciski profil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Symbol" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Mjeno" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organizacija" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistika" @@ -3495,6 +4668,11 @@ msgstr "Aplikaciske akcije" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Zničić" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Aplikaciske informacije" @@ -3536,22 +4714,22 @@ msgstr "Preferowane zdźělenki wot %1$s, strona %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Preferowane zdźělenki njedadźa so wobstarać." #: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "" +msgstr "Kanal za fawority wužiwarja %s (RSS 1.0)" #: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "" +msgstr "Kanal za fawority wužiwarja %s (RSS 2.0)" #: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "" +msgstr "Kanal za fawority wužiwarja %s (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3578,77 +4756,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "skupina %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s skupina, strona %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Skupinski profil" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" -msgstr "" +msgstr "Přispomnjenka" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Skupinske akcije" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" +msgstr "Zdźělenski kanal za skupinu %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" +msgstr "Zdźělenski kanal za skupinu %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" -msgstr "" +msgstr "Zdźělenski kanal za skupinu %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" -msgstr "" +msgstr "FOAF za skupinu %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Čłonojo" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Žadyn)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Wšitcy čłonojo" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Wutworjeny" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Čłonojo" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3658,7 +4863,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3667,24 +4875,31 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administratorojo" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Powěsć njeeksistuje." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "Jenož wotpósłar a přijimowar móžetaj tutu powěsć čitać." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Powěsć do %1$s na %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Powěsć wot %1$s na %2$s" @@ -3693,60 +4908,84 @@ msgstr "Powěsć wot %1$s na %2$s" msgid "Notice deleted." msgstr "Zdźělenka zničena." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr "" +msgid "%1$s tagged %2$s" +msgstr "%1$s z %2$s woznamjenjeny" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s z %2$s markěrowany, strona %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, strona %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Powěsćowy kanal za %1$s je %2$s (RSS 1.0) markěrował" -#: actions/showstream.php:129 -#, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "" - +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 #, php-format -msgid "Notice feed for %s (RSS 2.0)" -msgstr "" +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Zdźělenski kanal za %s (RSS 1.0)" -#: actions/showstream.php:143 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "Zdźělenski kanal za %s (RSS 2.0)" + +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" -msgstr "" +msgstr "Zdźělenski kanal za %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF za %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3755,7 +4994,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3763,18 +5004,19 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" -msgstr "" +msgstr "Wospjetowanje wot %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "" +msgstr "Njemóžeš wužiwarjam na tutym sydle hubu zatykać." #: actions/silence.php:72 msgid "User is already silenced." -msgstr "" +msgstr "Wužiwarjej je hižo huba zatykana." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" @@ -3795,7 +5037,7 @@ msgstr "Njeznata rěč \"%s\"." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." -msgstr "" +msgstr "Minimalna tekstowa dołhosć je 0 (njewobmjezowany)." #: actions/siteadminpanel.php:171 msgid "Dupe limit must be one or more seconds." @@ -3831,7 +5073,7 @@ msgstr "" #: actions/siteadminpanel.php:239 msgid "Contact email address for your site" -msgstr "" +msgstr "Kontaktowa e-mejlowa adresa za twoje sydło" #: actions/siteadminpanel.php:245 msgid "Local" @@ -3867,37 +5109,44 @@ msgstr "Maksimalna ličba znamješkow za zdźělenki." #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "Limit duplikatow" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Sydłowa zdźělenka" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Sydłodaloku powěsć wobdźěłać" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Njeje móžno, sydłowu zdźělenku składować." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Tekst sydłoweje zdźělenki" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Sydłowu zdźělenku składować" @@ -3926,12 +5175,12 @@ msgstr "SMS-adresa" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Aktualne wobkrućene telefonowe čisło z SMS-funkciju." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Wobkrućenje za tute telefonowe čisło so wočakuje." #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 @@ -3984,7 +5233,7 @@ msgstr "Žane telefonowe čisło." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 msgid "No carrier selected." -msgstr "" +msgstr "Žadyn poskićowar wubrany." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 @@ -4050,9 +5299,9 @@ msgstr "Žadyn kod zapodaty" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" -msgstr "" +msgstr "Njejapke fota" #: actions/snapshotadminpanel.php:65 msgid "Manage snapshot configuration" @@ -4060,7 +5309,7 @@ msgstr "Konfiguraciju wobrazowkoweho fota zrjadować" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." -msgstr "" +msgstr "Njepłaćiwa hódnota za wuwjedźenje njejapkeho fota." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." @@ -4068,7 +5317,7 @@ msgstr "" #: actions/snapshotadminpanel.php:144 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "Njepłaćiwy URL rozprawy njejapkeho fota." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4080,7 +5329,7 @@ msgstr "" #: actions/snapshotadminpanel.php:206 msgid "Data snapshots" -msgstr "" +msgstr "Njejapke fota datow" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" @@ -4096,7 +5345,7 @@ msgstr "" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "URL rozprawy" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" @@ -4106,12 +5355,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Nastajenja wobrazowkoweho fota składować" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Njejsy tón profil abonował." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Abonement njeda so składować." @@ -4119,10 +5370,6 @@ msgstr "Abonement njeda so składować." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Profil njeeksistuje." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Njemóžeš zdaleny profil OMB 0.1 z tutej akciju abonować." @@ -4131,63 +5378,86 @@ msgstr "Njemóžeš zdaleny profil OMB 0.1 z tutej akciju abonować." msgid "Subscribed" msgstr "Abonowany" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s abonentow" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s abonentow, strona %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s abonentow nima. Chceš prěni być?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"%s nima abonentow. Čehodla nochceš [konto registrować] (%%%%action.register%%" +"%%) a prěni być?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s abonementow" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s abonementow, strona %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4197,38 +5467,49 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "%s na nikoho njesłucha." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Zdźělenski kanal za %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "" +msgstr "Zdźělenki su z %1$s woznamjenjene, strona %2$d" #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "" +msgstr "Zdźělenski kanal za tafličku %s (RSS 1.0)" #: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "" +msgstr "Zdźělenski kanal za tafličku %s (RSS 2.0)" #: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "" +msgstr "Zdźělenski kanal za tafličku %s (Atom)" #: actions/tagother.php:39 msgid "No ID argument." @@ -4244,7 +5525,7 @@ msgid "User profile" msgstr "Wužiwarski profil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4265,15 +5546,16 @@ msgstr "" #: actions/tagother.php:200 msgid "Could not save tags." -msgstr "" +msgstr "Taflički njedadźa so składować." #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" +"wužij tutón formular, zo by swojim abonentam abo abonementam taflički přidał." #: actions/tagrss.php:35 msgid "No such tag." -msgstr "" +msgstr "Taflička njeeksistuje." #: actions/unblock.php:59 msgid "You haven't blocked that user." @@ -4281,11 +5563,11 @@ msgstr "Njejsy toho wužiwarja zablokował." #: actions/unsandbox.php:72 msgid "User is not sandboxed." -msgstr "" +msgstr "Wužiwar njeje w pěskowym kašćiku." #: actions/unsilence.php:72 msgid "User is not silenced." -msgstr "" +msgstr "Wužiwarjej huba zatykana njeje." #: actions/unsubscribe.php:77 msgid "No profile ID in request." @@ -4302,74 +5584,94 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Wužiwar" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Wužiwarske nastajenja za sydło StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Wužiwarske nastajenja za sydło StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Njepłaćiwy standardny abonement: '%1$s' wužiwar njeje." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" -msgstr "" +msgstr "Limit biografije" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nowi wužiwarjo" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Powitanje noweho wužiwarja" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Powitanski tekst za nowych wužiwarjow (maks. 255 znamješkow)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Standardny abonement" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." -msgstr "" +msgstr "Nowych wužiwarjow za tutoho wužiwarja abonować." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Přeprošenja" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Přeprošenja zmóžnjene" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Wužiwarske nastajenja składować" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Abonement awtorizować" @@ -4381,7 +5683,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licenca" @@ -4431,12 +5735,12 @@ msgstr "" #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "URI posłucharja'%s' njebu tu namakany" #: actions/userauthorization.php:308 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "URI posłucharki '%s' je předołhi." #: actions/userauthorization.php:314 #, php-format @@ -4446,7 +5750,7 @@ msgstr "" #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "Profilowy URL '%s' je za lokalneho wužiwarja." #: actions/userauthorization.php:345 #, php-format @@ -4456,18 +5760,20 @@ msgstr "URL awatara '%s' njeje płaćiwy" #: actions/userauthorization.php:350 #, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "" +msgstr "Awatarowy URL '%s' njeda so čitać." #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." msgstr "Wopačny wobrazowy typ za awatarowy URL '%s'." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" -msgstr "" +msgstr "Profilowy design" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4503,7 +5809,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Aktualizacije wot %1$s na %2$s!" @@ -4552,7 +5858,7 @@ msgid "Plugins" msgstr "Tykače" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Wersija" @@ -4560,60 +5866,113 @@ msgstr "Wersija" msgid "Author(s)" msgstr "Awtorojo" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Faworit" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s je zdźělenku %2$s jako faworit markěrował." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "URL '%s' njeda so předźěłać" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "Robin měni, zo něšto je njemóžno." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Njepłaćiwe datajowe mjeno." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Přizamknjenje k skupinje je so njeporadźiło." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Njeje dźěl skupiny." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Wopušćenje skupiny je so njeporadźiło." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Profilowy ID %s je njepłaćiwy." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Skupinski ID %s je njepłaćiwy." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Zastupić" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4632,94 +5991,108 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "Słanje direktnych powěsćow je ći zakazane." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Powěsć njeda so zasunyć." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." -msgstr "" +msgstr "Powěsć z nowym URI njeda so aktualizować." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Žadyn profil (%1$d) za zdźělenku (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Zmylk datoweje banki při zasunjenju hašeje taflički: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." -msgstr "" +msgstr "Zmylk při składowanju powěsće. Wona je předołha." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." -msgstr "" +msgstr "Zmylk při składowanju powěsće. Njeznaty wužiwar." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Słanje zdźělenkow na tutym sydle je ći zakazane." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." -msgstr "" +msgstr "Zmylk při składowanju powěsće." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "" +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Wotmołwa za %1$d, %2$d njeda so składować." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" -msgstr "" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4730,301 +6103,343 @@ msgid "Missing profile." msgstr "Falowacy profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Njeje móžno, tafličku składować." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." -msgstr "" +msgstr "Abonowanje je ći zakazane." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Hižo abonowany!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Wužiwar je će zablokował." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Njeje abonowany!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Sebjeabonement njeda so zhašeć." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Znamjo OMB-abonementa njeda so zhašeć." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Abonoment njeda so zhašeć ." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Slědować" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "" + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj do %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Žadyn jednotliwy wužiwar za modus jednotliweho wužiwarja definowany." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Skupina njeda so wutowrić." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "URI skupiny njeda so nastajić." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Skupinske čłonstwo njeda so stajić." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Informacije wo lokalnej skupinje njedachu so składować." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Twoje profilowe nastajenja změnić" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Awatar nahrać" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Twoje hesło změnić" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "" +msgstr "Twój profil wuhotować" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Druhe opcije" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Druhe" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Strona bjez titula" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Wjace pokazać" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" -msgstr "" +msgstr "Primarna sydłowa nawigacija" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Wosobinski" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Wašu e-mejl, waš awatar, waše hesło, waš profil změnić" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ze słužbami zwjazać" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Zwjazać" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Sydłowu konfiguraciju změnić" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Přećelow a kolegow přeprosyć, so tebi na %s přidružić" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Přeprosyć" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Ze sydła wotzjewić" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Wotzjewić" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Konto załožić" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrować" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Při sydle přizjewić" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Přizjewjenje" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomhaj!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Za ludźimi abo tekstom pytać" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Pytać" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "" +msgstr "Sydłowa zdźělenka" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" -msgstr "" +msgstr "Lokalne napohlady" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" -msgstr "" +msgstr "Zdźělenka strony" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" -msgstr "" +msgstr "Sekundarna sydłowa nawigacija" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Pomoc" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Wo" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Huste prašenja" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" -msgstr "" +msgstr "Wužiwarske wuměnjenja" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Priwatnosć" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Žórło" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" -msgstr "" +msgstr "Softwarowa licenca StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5032,13 +6447,16 @@ msgid "" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5047,516 +6465,671 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" -msgstr "" +msgstr "Licenca sydłoweho wobsaha" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" -msgstr "" +msgstr "Paginowanje" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Po" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Před" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Njemóžeš tute sydło změnić." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Změny na tutym woknje njejsu dowolene." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() njeimplementowany." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() njeimplementowany." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "" +msgstr "Njeje móžno, designowe nastajenje zhašeć." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Zakładna sydłowa konfiguracija" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Sydło" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "" +msgstr "Designowa konfiguracija" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Wužiwarska konfiguracija" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Wužiwar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Přistupna konfiguracija" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "" +msgstr "Konfiguracija šćežkow" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Konfiguracija posedźenjow" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Sydłowu zdźělenku wobdźěłać" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Konfiguracija wobrazowkowych fotow" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Aplikaciju wobdźěłać" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Anonymny přetrjebowar njeda so wutworić." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Anonymna OAuth-aplikacija njeda so wutworić." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Přistupny token njeda so wudać." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Symbol za tutu aplikaciju" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Wopisaj swoju aplikaciju z %d znamješkami" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Wopisaj swoju aplikaciju z %d znamješkami" +msgstr[1] "Wopisaj swoju aplikaciju z %d znamješkami" +msgstr[2] "Wopisaj swoju aplikaciju z %d znamješkami" +msgstr[3] "Wopisaj swoju aplikaciju z %d znamješkami" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Wopisaj swoju aplikaciju" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" -msgstr "" +msgstr "URL startoweje strony tuteje aplikacije" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL žórła" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organizacija, kotraž je za tutu aplikaciju zamołwita" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL za startowu stronu organizacije" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Wobhladowak" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Jenož čitajomny" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Popisujomny" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Přetorhnyć" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "popisujomny" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "jenož čitajomny" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Wotwołać" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Přiwěški" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Awtor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Poskićowar" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "" +msgstr "Taflički za tutón přiwěšk" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Změnjenje hesła je so njeporadźiło" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Změnjenje hesła je so njeporadźiło." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Změnjenje hesła njeje dowolene" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Změnjenje hesła njeje dowolene." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokować" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Přikazowe wuslědki" -#: lib/channel.php:229 lib/mailhandler.php:142 -msgid "Command complete" -msgstr "" +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Zmylk Ajax" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 +msgid "Command complete" +msgstr "Přikaz wuwjedźeny" + +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Přikaz je so njeporadźił" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Zdźělenka z tym ID njeeksistuje" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Zdźělenka z tym ID njeeksistuje." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Wužiwar nima poslednju powěsć" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Wužiwar nima poslednju powěsć." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Wužiwar z přimjenom %s njeda so namakać" +msgid "Could not find a user with nickname %s." +msgstr "" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Lokalny wužiwar z přimjenom %s njeda so namakać" +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Tutón přikaz hišće njeje implementowany." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Abonenementy: %1$s\n" +"Abonenća: %2$s\n" +"Zdźělenki: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." +msgstr "Zdźělenka je jako faworit markěrowana." + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." msgstr "" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Sy hižo čłon teje skupiny" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:405 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Njebě móžno wužiwarja %1$s skupinje %2%s přidać." +msgid "%1$s left group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Njebě móžno, wužiwarja %1$s ze skupiny %2$s wotstronić" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Dospołne mjeno: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Městno: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Startowa strona: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Wo: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Powěsć předołho - maksimalna wulkosć je %1$d znamješkow, ty sy %2$d pósłał" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Powěsć je předołho - maksimalna dołhosć je %1$d znamješko, ty sy %2$d pósłał." +msgstr[1] "" +"Powěsć je předołho - maksimalna dołhosć je %1$d znamješce, ty sy %2$d pósłał." +msgstr[2] "" +"Powěsć je předołho - maksimalna dołhosć je %1$d znamješka, ty sy %2$d pósłał." +msgstr[3] "" +"Powěsć je předołho - maksimalna dołhosć je %1$d znamješkow, ty sy %2$d " +"pósłał." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direktna powěsć do %s pósłana" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Zmylk při słanju direktneje powěsće," -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Njemóžeš swójsku powěsć wospjetować" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Tuta zdźělenka bu hižo wospjetowana" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Zdźělenka wot %s wospjetowana" +msgid "Notice from %s repeated." +msgstr "Powěsć wot %s wospjetowana." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Zmylk při wospjetowanju zdźělenki" -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Zdźělenka je předołho - maksimalna dołhosć je %1$d znamješko, ty sy %2$d " +"pósłał." +msgstr[1] "" +"Zdźělenka je předołho - maksimalna dołhosć je %1$d znamješce, ty sy %2$d " +"pósłał." +msgstr[2] "" +"Zdźělenka je předołho - maksimalna dołhosć je %1$d znamješka, ty sy %2$d " +"pósłał." +msgstr[3] "" +"Zdźělenka je předołho - maksimalna dołhosć je %1$d znamješkow, ty sy %2$d " +"pósłał." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Wotmołwa na %s pósłana" +msgid "Reply to %s sent." +msgstr "Wotmołwa na %s pósłana." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "" +msgstr "Zmylk při składowanju powěsće" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "Podaj mjeno wužiwarja, kotrehož chceš abonować" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "OMB-profile njedadźa so přez přikaz abonować." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "%s abonowany" +msgid "Subscribed to %s." +msgstr "%s abonowany." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Podaj mjeno wužiwarja, kotrehož chceš wotskazać" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "%s wotskazany" +msgid "Unsubscribed from %s." +msgstr "%s wotskazany." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Přikaz hišće njeimplementowany." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." -msgstr "" +msgstr "Zdźělenje znjemóžnjene." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." -msgstr "" +msgstr "Zdźělenje njeda so znjemóžnić." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." -msgstr "" +msgstr "Zdźělenje zmóžnjene." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." +msgstr "Zdźělenje njeda so zmóžnić." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Přizjewjenski přikaz je znjemóžnjeny." + +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 +#, php-format +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Přizjewjenski přikaz je znjemóžnjeny" - -#: lib/command.php:734 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgid "Unsubscribed %s." +msgstr "%s wotskazany." -#: lib/command.php:761 -#, php-format -msgid "Unsubscribed %s" -msgstr "%s wotskazany" - -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Njejsy nikoho abonował." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Sy tutu wosobu abonował:" @@ -5564,11 +7137,16 @@ msgstr[1] "Sy tutej wosobje abonował:" msgstr[2] "Sy tute wosoby abonował:" msgstr[3] "Sy tute wosoby abonował:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Nichtó njeje će abonował." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Tuta wosoba je će abonowała:" @@ -5576,11 +7154,16 @@ msgstr[1] "Tutej wosobje stej će abonowałoj:" msgstr[2] "Tute wosoby su će abonowali:" msgstr[3] "Tute wosoby su će abonowali:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Njejsy čłon w žanej skupinje." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sy čłon tuteje skupiny:" @@ -5588,7 +7171,8 @@ msgstr[1] "Sy čłon tuteju skupinow:" msgstr[2] "Sy čłon tutych skupinow:" msgstr[3] "Sy čłon tutych skupinow:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5630,50 +7214,72 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Žana konfiguraciska dataja namakana. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Žana konfiguraciska dataja namakana." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Sym na slědowacych městnach za konfiguraciskimi datajemi pytał: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Sym na slědowacych městnach konfiguraciske dataje pytał:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Móže być, zo chceš instalaciski program startować, zo by to porjedźił." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "K instalaciji" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Aktualizacije přez Instant Messenger (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Aktualizacije přez SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Zwiski" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Awtorizowane zwjazane aplikacije" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Zmylk w datowej bance" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Dataju nahrać" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5681,41 +7287,57 @@ msgstr "" "Móžeš swój wosobinski pozadkowy wobraz nahrać. Maksimalna datajowa wulkosć " "je 2 MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Zapinjeny" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Wupinjeny" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Wróćo stajić" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." -msgstr "" +msgstr "Designowe standardne nastajenja wobnowjene." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "" +msgstr "Tutu zdźělenku z faworitow wotstronić" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "" +msgstr "Tutu zdźělenku faworitam přidać" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Daty eksportować" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Kanale" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5746,9 +7368,15 @@ msgstr "Start" msgid "Grant this user the \"%s\" role" msgstr "" -#: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" +"1-64 małopisanych pismikow abo ličbow, žane interpunkciske znamješka abo " +"mjezery." + +#: lib/groupeditform.php:163 +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL startoweje strony abo bloga skupiny abo temy." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -5756,65 +7384,121 @@ msgstr "Skupinu abo temu wopisać" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Skupinu abo temu w %d znamješkach wopisać" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Skupinu abo temu w %d znamješce wopisać" +msgstr[1] "Skupinu abo temu w %d znamješkomaj wopisać" +msgstr[2] "Skupinu abo temu w %d znamješkach wopisać" +msgstr[3] "Skupinu abo temu w %d znamješkach wopisać" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Městno za skupinu, jeli eksistuje, na př. \"město, zwjazkowy kraj (abo " -"region), kraj\"" +"region), kraj\"." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Skupina" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Blokowany" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Skupina %s" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Čłonojo" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Čłonojo skupiny %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Zablokowany" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "Zablokowani wužiwarjo skupiny %s" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Kajkosće skupiny %s wobdźěłać" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "" +msgstr "Logo skupiny %s přidać abo wobdźěłać" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "" +msgstr "Design skupiny %s přidać abo wobdźěłać" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Skupiny z najwjace čłonami" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Skupiny z njawjace powěsćemi" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Taflički w zdźělenkach skupiny %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -5827,38 +7511,63 @@ msgstr "" msgid "Unsupported image file format." msgstr "Njepodpěrowany wobrazowy format." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Tuta dataja je přewulka. Maksimalna datajowa wulkosć je %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Dźělne nahraće." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Systemowy zmylk při nahrawanju dataje." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Žady wobraz abo žana wobškodźena dataja." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Naša dataja je so zhubiła." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Njeznaty datajowy typ" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d MB" +msgstr[1] "%d MB" +msgstr[2] "%d MB" +msgstr[3] "%d MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "KB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d KB" +msgstr[1] "%d KB" +msgstr[2] "%d KB" +msgstr[3] "%d KB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d B" +msgstr[1] "%d B" +msgstr[2] "%d B" +msgstr[3] "%d B" #: lib/jabber.php:387 #, php-format @@ -5870,10 +7579,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Njeznate žórło postoweho kašćika %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Zastupić" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Wopušćić" @@ -5886,44 +7591,53 @@ msgstr "Přizjewjenje z wužiwarskim mjenom a hesłom" msgid "Sign up for a new account" msgstr "Nowe konto registrować" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Wobkrućenje e-mejloweje adresy" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5932,26 +7646,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografija: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "Nowa e-mejlowa adresa za słanje do %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5961,34 +7679,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" -msgstr "" +msgstr "Status wužiwarja %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-wobkrućenje" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6004,14 +7727,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nowa priwatna powěsć wot %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6030,14 +7757,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) je twoju zdźělenku jako faworit přidał" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) je twoju zdźělenku jako faworit přidał" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6059,7 +7791,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6070,13 +7802,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) je zdźělenku k twojej kedźbnosći pósłał" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6113,7 +7852,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "wot" @@ -6133,232 +7872,284 @@ msgstr "Wodaj, to twoja adresa za dochadźace e-mejle njeje." msgid "Sorry, no incoming email allowed." msgstr "Wodaj, dochadźaće e-mejle njejsu dowolene." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Njepodpěrany powěsćowy typ: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Při składowanju twojeje dataje je zmylk w datowej bance wustupił. Prošu " "spytaj hišće raz." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Nahrata dataja bu jenož zdźěla nahrata." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Temporerny rjadowka faluje." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Dataju njeda so na tačel pisać." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Datajowe nahraće přez rozšěrjenje zastajene." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Dataja njeda so do ciloweho zapisa přesunyć." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "MIME-typ dataje njeda so zwěsćić." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Spytaj druhi format %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s njeje podpěrany datajowy typ na tutym serwerje." +msgid "\"%s\" is not a supported file type on this server." +msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Direktnu zdźělenku pósłać" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Přijimowarja wubrać:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Žani wzajomni abonenća." + +#: lib/messageform.php:153 msgid "To" msgstr "Komu" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "K dispoziciji stejace znamješka" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Pósłać" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Přimjeno smě jenož małe pismiki a cyfry wobsahować. Mjezery njejsu dowolene." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Přimjeno njemóže prózdne być." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Zdźělenku pósłać" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Što je, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Připowěsnyć" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Dataju připowěsnyć" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Městno dźělić" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Njedźěl moje městno" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "S" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "J" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "W" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "Z" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" -msgstr "" +msgstr "w" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "Web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "w konteksće" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Tutoho wužiwarja storčić" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Stork" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "Tutomu wužiwarjej stork pósłać" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Zmylk při zasunjenju noweho profila" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Zmylk při zasunjenju noweho profila." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Zmylk při zasunjenju awatara" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Zmylk při zasunjenju awatara." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Zmylk při aktualizowanju zdaleneho profila" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Zmylk při zasunjenju zdaleneho profila." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Zmylk při zasunjenju zdaleneho profila" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Dwójna zdźělenka." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Dwójna zdźělenka" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Nowy abonement njeda so zasunyć." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Wosobinski" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Wotmołwy" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Fawority" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Dochadny póst" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Twoje dochadźace powěsće" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Wuchadny póst" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Twoje pósłane powěsće" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Taflički w zdźělenkach wot %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Njeznaty" @@ -6413,7 +8204,7 @@ msgstr "" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "" +msgstr "Wuběrne" #: lib/publicgroupnav.php:92 msgid "Popular" @@ -6440,31 +8231,38 @@ msgstr "Tutu zdźělenku wospjetować" msgid "Revoke the \"%s\" role from this user" msgstr "Rólu \"%s\" tutoho wužiwarja wotwołać" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Žadyn jednotliwy wužiwar za modus jednotliweho wužiwarja definowany." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Strona njenamakana." #: lib/sandboxform.php:67 msgid "Sandbox" -msgstr "" +msgstr "Pěskowy kašćik" #: lib/sandboxform.php:78 msgid "Sandbox this user" -msgstr "" +msgstr "Tutoho wužiwarja do pěskoweho kašćika pósłać" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Pytanske sydło" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Klučowe hesła" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Pytać" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Pytanska pomoc" @@ -6494,11 +8292,11 @@ msgstr "Wjace..." #: lib/silenceform.php:67 msgid "Silence" -msgstr "" +msgstr "Hubu zatykać" #: lib/silenceform.php:78 msgid "Silence this user" -msgstr "" +msgstr "Tutomu wužiwarjej hubu zatykać" #: lib/subgroupnav.php:83 #, php-format @@ -6522,7 +8320,7 @@ msgstr "Přeprosyć" #: lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Přećelow a kolegow přeprosyć, so tebi na %s přidružić" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6538,45 +8336,59 @@ msgstr "" msgid "None" msgstr "Žadyn" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Njepłaćiwe šatowe mjeno." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "Šatowa dataja faluje abo nahraće je so njeporadźiło." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Składowanje šata je so njeporadźiło." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "Njepłaćiwy šat: špatna rjadowakowa struktura." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Zmylk při wočinjenju šatoweho archiwa." @@ -6584,13 +8396,19 @@ msgstr "Zmylk při wočinjenju šatoweho archiwa." msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Wotblokować" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 msgid "Unsandbox this user" -msgstr "" +msgstr "Tutoho wužiwarja z pěskoweho kašćika pušćić" #: lib/unsilenceform.php:67 msgid "Unsilence" @@ -6598,7 +8416,7 @@ msgstr "" #: lib/unsilenceform.php:78 msgid "Unsilence this user" -msgstr "" +msgstr "Tutoho wužiwarja wotprancować" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" @@ -6608,126 +8426,191 @@ msgstr "Tutoho wužiwarja wotskazać" msgid "Unsubscribe" msgstr "Wotskazać" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Wužiwar %s (%d) nima profil." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Wužiwar %1$s (%2$d) nima profilowu datowu sadźbu." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Awatar wobdźěłać" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Wužiwarske akcije" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Wužiwar so haša..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Profilowe nastajenja wobdźěłać" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Wobdźěłać" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Tutomu wužiwarja direktnu powěsć pósłać" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Powěsć" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderěrować" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Wužiwarska róla" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "před něšto sekundami" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "před něhdźe jednej mjeńšinu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "před %d mjeńšinami" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "před něhdźe jednej hodźinu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "před něhdźe %d hodźinami" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "před něhdźe jednym dnjom" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "před něhdźe %d dnjemi" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "před něhdźe jednym měsacom" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "před něhdźe %d měsacami" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "před něhdźe jednym lětom" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s płaćiwa barba njeje!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" "%s płaćiwa barba njeje! Wužij 3 heksadecimalne znamješka abo 6 " "heksadecimalnych znamješkow." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -"Powěsć je předołho - maksimalna wulkosć je %1$d znamješkow, ty sy %2$d " -"pósłał." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Powěsć je předołho. Maksimalna dołhosć je %1$d znamješko, ty sy %2$d pósłał." +msgstr[1] "" +"Powěsć je předołho. Maksimalna dołhosć je %1$d znamješce, ty sy %2$d pósłał." +msgstr[2] "" +"Powěsć je předołho. Maksimalna dołhosć je %1$d znamješka, ty sy %2$d pósłał." +msgstr[3] "" +"Powěsć je předołho. Maksimalna dołhosć je %1$d znamješkow, ty sy %2$d pósłał." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Njepłaćiwy XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Žadyn wužiwarsk podaty; wužiwa so wužiwar ze zawěsćenja." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" diff --git a/locale/hu/LC_MESSAGES/statusnet.po b/locale/hu/LC_MESSAGES/statusnet.po new file mode 100644 index 0000000000..9d60a8c20f --- /dev/null +++ b/locale/hu/LC_MESSAGES/statusnet.po @@ -0,0 +1,8718 @@ +# Translation of StatusNet - Core to Hungarian (Magyar) +# Expored from translatewiki.net +# +# Author: Bdamokos +# Author: Dani +# Author: Gerymate +# Author: Glanthor Reviol +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Core\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:54+0000\n" +"Language-Team: Hungarian <http://translatewiki.net/wiki/Portal:hu>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: hu\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Page title for Access admin panel that allows configuring site access. +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 +msgid "Access" +msgstr "Hozzáférés" + +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 +msgid "Site access settings" +msgstr "A webhely hozzáférhetőségének beállítása" + +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:151 +msgid "Registration" +msgstr "Regisztráció" + +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" +"Tiltsuk, hogy az anonim (be nem jelentkezett) felhasználók megnézhessék a " +"webhelyet?" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:157 +msgctxt "LABEL" +msgid "Private" +msgstr "Privát" + +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 +msgid "Make registration invitation only." +msgstr "Legyen a regisztráció meghíváshoz kötött." + +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:166 +msgid "Invite only" +msgstr "Csak meghívással" + +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 +msgid "Disable new registrations." +msgstr "Új regisztrációk tiltása." + +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:175 +msgid "Closed" +msgstr "Zárva" + +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 +msgid "Save access settings" +msgstr "Hozzáférések beállításainak mentése" + +#. TRANS: Tooltip for button to save access settings in site admin panel. +#. TRANS: Button label to save e-mail preferences. +#. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. +#. TRANS: Button label to save SMS preferences. +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 +msgctxt "BUTTON" +msgid "Save" +msgstr "Mentés" + +#. TRANS: Server error when page not found (404). +#. TRANS: Server error when page not found (404) +#: actions/all.php:68 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 +msgid "No such page." +msgstr "Nincs ilyen lap." + +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 +msgid "No such user." +msgstr "Nincs ilyen felhasználó." + +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:91 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s és barátai, %2$d oldal" + +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 +#, php-format +msgid "%s and friends" +msgstr "%s és barátai" + +#. TRANS: %s is user nickname. +#: actions/all.php:108 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "%s barátainak hírcsatornája (RSS 1.0)" + +#. TRANS: %s is user nickname. +#: actions/all.php:117 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "%s barátainak hírcsatornája (RSS 2.0)" + +#. TRANS: %s is user nickname. +#: actions/all.php:126 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "%s barátainak hírcsatornája (Atom)" + +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 +#, php-format +msgid "" +"This is the timeline for %s and friends but no one has posted anything yet." +msgstr "" +"Ez itt %s és barátai története, de eddig még senki nem küldött egyetlen hírt " +"sem." + +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 +#, php-format +msgid "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." +msgstr "" +"Iratkozz fel további emberek híreire, [csatlakozz egy csoporthoz](action." +"groups%%%%), vagy írj valamit te magad." + +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format +msgid "" +"Why not [register an account](%%%%action.register%%%%) and then nudge %s or " +"post a notice to them." +msgstr "" + +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 +msgid "You and friends" +msgstr "Te és a barátaid" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 +#, php-format +msgid "Updates from %1$s and friends on %2$s!" +msgstr "Frissítések %1$s felhasználótól, és barátok a következő oldalon: %2$s!" + +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 +msgid "API method not found." +msgstr "Az API-metódus nem található." + +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 +msgid "This method requires a POST." +msgstr "Ez a metódus POST-ot igényel." + +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 +msgid "" +"You must specify a parameter named 'device' with a value of one of: sms, im, " +"none." +msgstr "" + +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 +msgid "Could not update user." +msgstr "Nem sikerült frissíteni a felhasználót." + +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 +#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 +#: lib/profileaction.php:84 +msgid "User has no profile." +msgstr "A felhasználónak nincs profilja." + +#. TRANS: Server error displayed if a user profile could not be saved. +#: actions/apiaccountupdateprofile.php:147 +msgid "Could not save profile." +msgstr "Nem sikerült menteni a profilt." + +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. +#: actions/apiaccountupdateprofilebackgroundimage.php:108 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format +msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" +"The server was unable to handle that much POST data (%s bytes) due to its " +"current configuration." +msgstr[0] "" +"A szerver nem tudott feldolgozni ennyi POST-adatot (%s bájtot) a jelenlegi " +"konfigurációja miatt." +msgstr[1] "" +"A szerver nem tudott feldolgozni ennyi POST-adatot (%s bájtot) a jelenlegi " +"konfigurációja miatt." + +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 +#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 +#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 +msgid "Unable to save your design settings." +msgstr "Nem sikerült elmenteni a megjelenítési beállításaid." + +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 +msgid "Could not update your design." +msgstr "Nem sikerült frissíteni a megjelenítést." + +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s története" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Kedvencek" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s csoport tagjai" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 +msgid "You cannot block yourself!" +msgstr "Nem blokkolhatod saját magad!" + +#. TRANS: Server error displayed when blocking a user has failed. +#: actions/apiblockcreate.php:126 +msgid "Block user failed." +msgstr "Nem sikerült a felhasználó blokkolása." + +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 +msgid "Unblock user failed." +msgstr "Nem sikerült a felhasználó blokkjának feloldása." + +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 +#, php-format +msgid "Direct messages from %s" +msgstr "Közvetlen üzenetek tőle: %s" + +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:93 +#, php-format +msgid "All the direct messages sent from %s" +msgstr "%s által küldött összes közvetlen üzenetek" + +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 +#, php-format +msgid "Direct messages to %s" +msgstr "Közvetlen üzenetek neki: %s" + +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 +#, php-format +msgid "All the direct messages sent to %s" +msgstr "%s részére küldött összes közvetlen üzenet" + +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 +msgid "No message text!" +msgstr "Az üzenetnek nincs szövege!" + +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Ez túl hosszú. Az üzenet mérete legfeljebb %d karakter lehet." +msgstr[1] "Ez túl hosszú. Az üzenet mérete legfeljebb %d karakter lehet." + +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 +msgid "Recipient user not found." +msgstr "A címzett felhasználó nem található." + +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 +msgid "Can't send direct messages to users who aren't your friend." +msgstr "" +"Nem küldhetsz közvetlen üzenetet olyan felhasználóknak, akik nem a barátaid." + +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Ne küldj üzenetet magadnak, helyette mondd el halkan." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 +#: actions/apistatusesdestroy.php:121 +msgid "No status found with that ID." +msgstr "Nincs ilyen azonosítójú állapot." + +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. +#: actions/apifavoritecreate.php:120 +msgid "This status is already a favorite." +msgstr "Ez az állapotjelentés már a kedvenceid között van." + +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 +msgid "Could not create favorite." +msgstr "Nem sikerült létrehozni a kedvencet." + +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 +msgid "That status is not a favorite." +msgstr "Az az állapotjelentés nincs a kedvenceid között." + +#. TRANS: Client error displayed when removing a favourite has failed. +#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 +msgid "Could not delete favorite." +msgstr "Nem sikerült törölni a kedvencet." + +#. TRANS: Client error displayed when trying follow who's profile could not be found. +#: actions/apifriendshipscreate.php:109 +msgid "Could not follow user: profile not found." +msgstr "" + +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 +#, php-format +msgid "Could not follow user: %s is already on your list." +msgstr "Nem lehet követni a felhasználót: %s már a listádon van." + +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. +#: actions/apifriendshipsdestroy.php:109 +msgid "Could not unfollow user: User not found." +msgstr "Nem tudunk leválni a felhasználóról: nincs ilyen felhasználó." + +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 +msgid "You cannot unfollow yourself." +msgstr "Nem tudod nem figyelemmel követni magadat." + +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "" + +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 +msgid "Could not determine source user." +msgstr "Nem sikerült megállapítani a forrás felhasználót." + +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 +msgid "Could not find target user." +msgstr "A cél felhasználó nem található." + +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 +msgid "Nickname already in use. Try another one." +msgstr "A becenév már foglalt. Próbálj meg egy másikat." + +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 +msgid "Not a valid nickname." +msgstr "Nem érvényes becenév." + +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 +msgid "Homepage is not a valid URL." +msgstr "A honlap érvénytelen URL-cím." + +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." +msgstr "A teljes név túl hosszú (legfeljebb 255 karakter lehet)." + +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "A leírás túl hosszú (legfeljebb %d karakter lehet)." +msgstr[1] "A leírás túl hosszú (legfeljebb %d karakter lehet)." + +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." +msgstr "A hely túl hosszú (legfeljebb 255 karakter lehet)." + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Túl sok álnév! Legfeljebb %d lehet." +msgstr[1] "Túl sok álnév! Legfeljebb %d lehet." + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "Érvénytelen álnév: „%s”." + +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "A(z) „%s” álnév már használatban van. Próbálj meg egy másikat." + +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 +msgid "Alias can't be the same as nickname." +msgstr "Az álnév nem egyezhet meg a becenévvel." + +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 +msgid "Group not found." +msgstr "A csoport nem található." + +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 +msgid "You are already a member of that group." +msgstr "Már tagja vagy ennek a csoportnak." + +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +msgid "You have been blocked from that group by the admin." +msgstr "Az adminisztrátor blokkolt ebből a csoportból." + +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Nem sikerült %1$s felhasználót hozzáadni a %2$s csoporthoz." + +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. +#: actions/apigroupleave.php:115 +msgid "You are not a member of this group." +msgstr "Nem vagy tagja ennek a csoportnak." + +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "Nem sikerült %1$s felhasználót eltávolítani a %2$s csoportból." + +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 +#, php-format +msgid "%s's groups" +msgstr "%s csoportjai" + +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 +#, php-format +msgid "%1$s groups %2$s is a member of." +msgstr "" + +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. +#. TRANS: Message is used as a page title. %s is a nick name. +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 +#, php-format +msgid "%s groups" +msgstr "%s csoportok" + +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 +#, php-format +msgid "groups on %s" +msgstr "%s csoportok" + +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 +msgid "Upload failed." +msgstr "" + +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 +msgid "No oauth_token parameter provided." +msgstr "" + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." +msgstr "Érvénytelen token." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Nincs jogosultságod." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 +#: actions/groupblock.php:66 actions/grouplogo.php:312 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 +#: actions/register.php:172 actions/remotesubscribe.php:77 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 +#: actions/subscribe.php:86 actions/tagother.php:166 +#: actions/unsubscribe.php:69 actions/userauthorization.php:52 +#: lib/designsettings.php:310 +msgid "There was a problem with your session token. Try again, please." +msgstr "Probléma volt a munkameneted tokenjével. Kérlek, próbáld újra." + +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 +msgid "Invalid nickname / password!" +msgstr "Érvénytelen becenév / jelszó!" + +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "" + +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. +#. TRANS: Message given submitting a form with an unknown action in e-mail settings. +#. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. +#. TRANS: Message given submitting a form with an unknown action in SMS settings. +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 +#: actions/smssettings.php:277 lib/designsettings.php:321 +msgid "Unexpected form submission." +msgstr "Váratlan űrlapbeküldés." + +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 +msgid "An application would like to connect to your account" +msgstr "Egy alkalmazás szeretne csatlakozni a kontódhoz" + +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 +msgid "Allow or deny access" +msgstr "Elérés engedélyezése vagy tiltása" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" +msgid "Account" +msgstr "Kontó" + +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 +#: actions/userauthorization.php:145 lib/groupeditform.php:152 +#: lib/userprofile.php:134 +msgid "Nickname" +msgstr "Becenév" + +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Link description in user account settings menu. +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 +msgid "Password" +msgstr "Jelszó" + +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Mégse" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" +msgid "Allow" +msgstr "Engedjük" + +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." +msgstr "Engedélyezheted vagy megtilthatod a kontód megtekintését." + +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Nincs jogosultságod." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Nincs jogosultságod." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 +msgid "This method requires a POST or DELETE." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 +msgid "You may not delete another user's status." +msgstr "Nem törölheted más felhasználók állapotait." + +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 +msgid "No such notice." +msgstr "Nincs ilyen hír." + +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 +msgid "Cannot repeat your own notice." +msgstr "Nem ismételheted meg a saját híredet." + +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 +msgid "Already repeated that notice." +msgstr "Már megismételted azt a hírt." + +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Az API-metódus nem található." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Nem támogatott formátum." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 +msgid "Status deleted." +msgstr "Állapot törölve." + +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 +msgid "No status with that ID found." +msgstr "Nem található ilyen azonosítójú állapot." + +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "" + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Hír törlése" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 +#: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." +msgstr[1] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Az API-metódus nem található." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Egy hír legfeljebb %d karakterből állhat, a melléklet URL-jét is beleértve." +msgstr[1] "" +"Egy hír legfeljebb %d karakterből állhat, a melléklet URL-jét is beleértve." + +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 +msgid "Unsupported format." +msgstr "Nem támogatott formátum." + +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format +msgid "%1$s / Favorites from %2$s" +msgstr "%1$s / %2$s kedvencei" + +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "" + +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Nem sikerült a csoport frissítése." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "" + +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. +#: actions/apitimelinementions.php:131 +#, php-format +msgid "%1$s updates that reply to updates from %2$s / %3$s." +msgstr "" + +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 +#, php-format +msgid "%s public timeline" +msgstr "%s közösségi története" + +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 +#, php-format +msgid "%s updates from everyone!" +msgstr "%s-frissítések mindenki számára!" + +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 +#, php-format +msgid "Repeated to %s" +msgstr "" + +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 +#, php-format +msgid "Repeats of %s" +msgstr "" + +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 +#, php-format +msgid "Notices tagged with %s" +msgstr "Hírek %s címkével" + +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, php-format +msgid "Updates tagged with %1$s on %2$s!" +msgstr "" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Csak a felhasználó láthatja a saját postaládáját." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Keressünk a hírek tartalmában" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +msgid "API method under construction." +msgstr "Az API-metódus fejlesztés alatt áll." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Az API-metódus nem található." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Nincs ilyen profil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +msgid "Can't add someone else's subscription" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Keressünk a hírek tartalmában" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Ismeretlen művelet" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Hozzáadás a kedvencekhez" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Nincs ilyen profil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s csoport tagjai" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "A legtöbb tagból álló csoportok" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Ismeretlen művelet" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Összes tag" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Nincs ilyen fájl." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Nem sikerült törölni a kedvencet." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Nincs ilyen csoport." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Összes tag" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Az API-metódus nem található." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Nincs ilyen profil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Senkinek sem iratkoztál fel a híreire." + +#: actions/atompubshowsubscription.php:154 +msgid "Can't delete someone else's subscription" +msgstr "" + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Senki sem követ figyelemmel." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Ismeretlen fájltípus" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Nincs ilyen csatolmány." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 +#: actions/grouplogo.php:86 actions/groupmembers.php:76 +#: actions/grouprss.php:91 actions/showgroup.php:116 +msgid "No nickname." +msgstr "Nincs becenév." + +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 +msgid "No size." +msgstr "Nincs méret." + +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 +msgid "Invalid size." +msgstr "Érvénytelen méret." + +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. +#. TRANS: Link description in user account settings menu. +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 +msgid "Avatar" +msgstr "Avatar" + +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "Feltöltheted a személyes avatarodat. A fájl maximális mérete %s lehet." + +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 +#: actions/grouplogo.php:181 actions/remotesubscribe.php:191 +#: actions/userauthorization.php:72 actions/userrss.php:108 +msgid "User without matching profile." +msgstr "" + +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 +#: actions/grouplogo.php:254 +msgid "Avatar settings" +msgstr "Avatarbeállítások" + +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 +msgid "Original" +msgstr "Eredeti" + +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 +msgid "Preview" +msgstr "Előnézet" + +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" +msgid "Delete" +msgstr "Törlés" + +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" +msgid "Upload" +msgstr "Feltöltés" + +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" +msgid "Crop" +msgstr "Levágás" + +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 +msgid "No file uploaded." +msgstr "Nincs feltöltve fájl." + +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 +msgid "Pick a square area of the image to be your avatar" +msgstr "Válassz ki egy négyzet alakú területet a képből, ami az avatarod lesz" + +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 +msgid "Lost our file data." +msgstr "Elvesztettük az adatainkat." + +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 +msgid "Avatar updated." +msgstr "Avatar frissítve." + +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 +msgid "Failed updating avatar." +msgstr "Nem sikerült felölteni az avatart." + +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 +msgid "Avatar deleted." +msgstr "Avatar törölve." + +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 +msgid "You already blocked that user." +msgstr "Már blokkoltad azt a felhasználót." + +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 +msgid "Block user" +msgstr "Felhasználó blokkolása" + +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 +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 "" + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 +msgctxt "BUTTON" +msgid "No" +msgstr "Nem" + +#. TRANS: Submit button title for 'No' when blocking a user. +#. TRANS: Submit button title for 'No' when deleting a user. +#: actions/block.php:158 actions/deleteuser.php:156 +msgid "Do not block this user" +msgstr "Ne blokkoljuk ezt a felhasználót" + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 +msgctxt "BUTTON" +msgid "Yes" +msgstr "Igen" + +#. TRANS: Submit button title for 'Yes' when blocking a user. +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 +msgid "Block this user" +msgstr "Felhasználó blokkolása" + +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 +msgid "Failed to save block information." +msgstr "Nem sikerült elmenteni a blokkolási információkat." + +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 +#: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 +#: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 +#: actions/groupmembers.php:83 actions/groupmembers.php:90 +#: actions/grouprss.php:98 actions/grouprss.php:105 +#: actions/groupunblock.php:88 actions/joingroup.php:82 +#: actions/joingroup.php:93 actions/leavegroup.php:82 +#: actions/leavegroup.php:93 actions/makeadmin.php:86 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 +msgid "No such group." +msgstr "Nincs ilyen csoport." + +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format +msgid "%s blocked profiles" +msgstr "" + +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format +msgid "%1$s blocked profiles, page %2$d" +msgstr "" + +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 +msgid "A list of the users blocked from joining this group." +msgstr "A csoportból blokkolt felhasználók listája" + +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 +msgid "Unblock user from group" +msgstr "Oldjuk fel a felhasználó blokkolását a csoportban" + +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" +msgid "Unblock" +msgstr "Blokk feloldása" + +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 +msgid "Unblock this user" +msgstr "Ezen felhasználó blokkjának feloldása" + +#. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. +#: actions/bookmarklet.php:51 +#, php-format +msgid "Post to %s" +msgstr "Küldés ide: %s" + +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 +msgid "No confirmation code." +msgstr "Nincs megerősítő kód." + +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:80 +msgid "Confirmation code not found." +msgstr "A megerősítő kód nem található." + +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 +msgid "That confirmation code is not for you!" +msgstr "Ez a megerősítő kód nem hozzád tartozik!" + +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 +#, php-format +msgid "Unrecognized address type %s." +msgstr "" + +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 +msgid "That address has already been confirmed." +msgstr "Ez a cím már meg van erősítve." + +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. +#. TRANS: Server error thrown on database error updating e-mail preferences. +#. TRANS: Server error thrown on database error removing a registered e-mail address. +#. TRANS: Server error thrown on database error updating IM preferences. +#. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. +#. TRANS: Server error thrown on database error updating SMS preferences. +#. TRANS: Server error thrown on database error removing a registered SMS phone number. +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 +#: actions/smssettings.php:464 +msgid "Couldn't update user." +msgstr "Nem sikerült frissíteni a felhasználót." + +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Nem sikerült törölni az e-mail cím megerősítését." + +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 +msgid "Confirm address" +msgstr "Cím ellenőrzése" + +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 +#, php-format +msgid "The address \"%s\" has been confirmed for your account." +msgstr "A(z) „%s” cím meg van erősítve a fiókodhoz." + +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 +msgid "Conversation" +msgstr "Beszélgetés" + +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 +#: lib/profileaction.php:229 lib/searchgroupnav.php:82 +msgid "Notices" +msgstr "Hírek" + +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 +msgid "You must be logged in to delete an application." +msgstr "" + +#. TRANS: Client error displayed trying to delete an application that does not exist. +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "" + +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "" + +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 +msgid "There was a problem with your session token." +msgstr "" + +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 +msgid "Delete application" +msgstr "Alkalmazás törlése" + +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting an application. +#: actions/deleteapplication.php:161 +msgid "Do not delete this application" +msgstr "" + +#. TRANS: Submit button title for 'Yes' when deleting an application. +#: actions/deleteapplication.php:167 +msgid "Delete this application" +msgstr "" + +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Be kell jelentkezned hogy elhagyhass egy csoportot." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nincs nicknév vagy azonosító." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Nem vagy tagja ennek a csoportnak." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Nem sikerült a csoport frissítése." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s csatlakozott a(z) %2$s csoporthoz" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Felhasználó törlése" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Biztosan törölni szeretnéd ezt a felhasználót? Ezzel minden róla szóló " +"adatot törlünk az adatbázisból, biztonsági mentés nélkül." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Ne töröljük ezt a hírt" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Töröljük ezt a felhasználót" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. +#. TRANS: Client error message thrown when trying to access the admin panel while not logged in. +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 +#: actions/tagother.php:33 actions/unsubscribe.php:52 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 +#: lib/settingsaction.php:72 +msgid "Not logged in." +msgstr "Nem vagy bejelentkezve." + +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "" + +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 +msgid "Delete notice" +msgstr "Hír törlése" + +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 +msgid "Are you sure you want to delete this notice?" +msgstr "Biztosan törölni szeretnéd ezt a hírt?" + +#. TRANS: Submit button title for 'No' when deleting a notice. +#: actions/deletenotice.php:159 +msgid "Do not delete this notice" +msgstr "Ne töröljük ezt a hírt" + +#. TRANS: Submit button title for 'Yes' when deleting a notice. +#: actions/deletenotice.php:166 lib/noticelist.php:672 +msgid "Delete this notice" +msgstr "Töröljük ezt a hírt" + +#: actions/deleteuser.php:67 +msgid "You cannot delete users." +msgstr "Nem törölhetsz felhasználókat." + +#: actions/deleteuser.php:74 +msgid "You can only delete local users." +msgstr "Csak helyi felhasználókat tudsz törölni." + +#: actions/deleteuser.php:110 actions/deleteuser.php:133 +msgid "Delete user" +msgstr "Felhasználó törlése" + +#: actions/deleteuser.php:136 +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 "" +"Biztosan törölni szeretnéd ezt a felhasználót? Ezzel minden róla szóló " +"adatot törlünk az adatbázisból, biztonsági mentés nélkül." + +#. TRANS: Submit button title for 'Yes' when deleting a user. +#: actions/deleteuser.php:163 lib/deleteuserform.php:77 +msgid "Delete this user" +msgstr "Töröljük ezt a felhasználót" + +#. TRANS: Message used as title for design settings for the site. +#. TRANS: Link description in user account settings menu. +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 +msgid "Design" +msgstr "Megjelenés" + +#: actions/designadminpanel.php:74 +msgid "Design settings for this StatusNet site" +msgstr "" + +#: actions/designadminpanel.php:335 +msgid "Invalid logo URL." +msgstr "Érvénytelen logó URL." + +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Érvénytelen logó URL." + +#: actions/designadminpanel.php:344 +#, php-format +msgid "Theme not available: %s." +msgstr "" + +#: actions/designadminpanel.php:448 +msgid "Change logo" +msgstr "Logó megváltoztatása" + +#: actions/designadminpanel.php:453 +msgid "Site logo" +msgstr "Oldal logója" + +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Oldal logója" + +#: actions/designadminpanel.php:469 +msgid "Change theme" +msgstr "Téma megváltoztatása" + +#: actions/designadminpanel.php:486 +msgid "Site theme" +msgstr "Webhely-téma" + +#: actions/designadminpanel.php:487 +msgid "Theme for the site." +msgstr "A webhely témája." + +#: actions/designadminpanel.php:493 +msgid "Custom theme" +msgstr "" + +#: actions/designadminpanel.php:497 +msgid "You can upload a custom StatusNet theme as a .ZIP archive." +msgstr "" + +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 +msgid "Change background image" +msgstr "Háttérkép megváltoztatása" + +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 +msgid "Background" +msgstr "Háttér" + +#: actions/designadminpanel.php:522 +#, php-format +msgid "" +"You can upload a background image for the site. The maximum file size is %1" +"$s." +msgstr "" + +#. TRANS: Used as radio button label to add a background image. +#: actions/designadminpanel.php:553 +msgid "On" +msgstr "Be" + +#. TRANS: Used as radio button label to not add a background image. +#: actions/designadminpanel.php:570 +msgid "Off" +msgstr "Ki" + +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 +msgid "Turn background image on or off." +msgstr "Háttérkép be- vagy kikapcsolása." + +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +msgid "Tile background image" +msgstr "Háttérkép csempézése" + +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 +msgid "Change colours" +msgstr "Színek megváltoztatása" + +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 +msgid "Content" +msgstr "Tartalom" + +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 +msgid "Sidebar" +msgstr "Oldalsáv" + +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 +msgid "Text" +msgstr "Szöveg" + +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 +msgid "Links" +msgstr "Hivatkozások" + +#: actions/designadminpanel.php:677 +msgid "Advanced" +msgstr "" + +#: actions/designadminpanel.php:681 +msgid "Custom CSS" +msgstr "" + +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 +msgid "Use defaults" +msgstr "Alapértelmezések használata" + +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 +msgid "Restore default designs" +msgstr "" + +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 +msgid "Reset back to default" +msgstr "Visszaállítás az alapértelmezettre" + +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 +msgid "Save" +msgstr "Mentés" + +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 +msgid "Save design" +msgstr "Design mentése" + +#: actions/disfavor.php:81 +msgid "This notice is not a favorite!" +msgstr "Ez a hír nincs a kedvenceid között!" + +#: actions/disfavor.php:94 +msgid "Add to favorites" +msgstr "Hozzáadás a kedvencekhez" + +#: actions/doc.php:158 +#, php-format +msgid "No such document \"%s\"" +msgstr "Nincs ilyen dokumentum: „%s”" + +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" + +#. TRANS: Client error displayed trying to edit an application while not logged in. +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "" + +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 +msgid "No such application." +msgstr "Nincs ilyen alkalmazás." + +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 +msgid "Use this form to edit your application." +msgstr "" + +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 +msgid "Name is required." +msgstr "A név szükséges." + +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." +msgstr "A név túl hosszú (max 255 karakter lehet)." + +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 +msgid "Name already in use. Try another one." +msgstr "A név már foglalt. Próbálj egy másikat." + +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 +msgid "Description is required." +msgstr "A leírás megadása kötelező." + +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 +msgid "Source URL is too long." +msgstr "A forrás URL túl hosszú." + +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 +msgid "Source URL is not valid." +msgstr "A forrás URL nem érvényes." + +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 +msgid "Organization is required." +msgstr "A szervezet szükséges." + +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." +msgstr "A szervezet túl hosszú (255 karakter lehet)." + +#: actions/editapplication.php:226 actions/newapplication.php:202 +msgid "Organization homepage is required." +msgstr "Szükséges a szervezet honlapja." + +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 +msgid "Callback is too long." +msgstr "" + +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 +msgid "Callback URL is not valid." +msgstr "" + +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 +msgid "Could not update application." +msgstr "" + +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 +#, php-format +msgid "Edit %s group" +msgstr "%s csoport szerkesztése" + +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. +#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 +msgid "You must be logged in to create a group." +msgstr "Csoport létrehozásához be kell jelentkezned." + +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 +msgid "You must be an admin to edit the group." +msgstr "" + +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 +msgid "Use this form to edit the group." +msgstr "Ezen űrlap segítségével szerkesztheted a csoportot." + +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 +#, php-format +msgid "Invalid alias: \"%s\"" +msgstr "Érvénytelen álnév: „%s”" + +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 +msgid "Could not update group." +msgstr "Nem sikerült a csoport frissítése." + +#. TRANS: Server error displayed when group aliases could not be added. +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:279 classes/User_group.php:529 +msgid "Could not create aliases." +msgstr "Nem sikerült létrehozni az álneveket." + +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 +msgid "Options saved." +msgstr "Beállítások elmentve." + +#. TRANS: Title for e-mail settings. +#: actions/emailsettings.php:61 +msgid "Email settings" +msgstr "Email beállítások" + +#. TRANS: E-mail settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/emailsettings.php:76 +#, php-format +msgid "Manage how you get email from %%site.name%%." +msgstr "Beállíthatod, milyen email-eket kapj a(z) %%site.name%% webhelyről." + +#. TRANS: Form legend for e-mail settings form. +#. TRANS: Field label for e-mail address input in e-mail settings form. +#: actions/emailsettings.php:107 actions/emailsettings.php:133 +msgid "Email address" +msgstr "Email-cím" + +#. TRANS: Form note in e-mail settings form. +#: actions/emailsettings.php:113 +msgid "Current confirmed email address." +msgstr "A jelenleg megerősített e-mail cím." + +#. TRANS: Button label to remove a confirmed e-mail address. +#. TRANS: Button label for removing a set sender e-mail address to post notices from. +#. TRANS: Button label to remove a confirmed IM address. +#. TRANS: Button label to remove a confirmed SMS address. +#. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. +#: actions/emailsettings.php:116 actions/emailsettings.php:183 +#: actions/imsettings.php:116 actions/smssettings.php:124 +#: actions/smssettings.php:180 +msgctxt "BUTTON" +msgid "Remove" +msgstr "Eltávolítás" + +#: actions/emailsettings.php:123 +msgid "" +"Awaiting confirmation on this address. Check your inbox (and spam box!) for " +"a message with further instructions." +msgstr "" +"Megerősítés várása a címről. Ellenőrizd a beérkező leveleidet (és a " +"spameket!), hogy megkaptad-e az üzenetet, ami a további teendőket " +"tartalmazza." + +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 +msgid "Email address, like \"UserName@example.org\"" +msgstr "E-mail cím, például „FelhasználóNév@example.org”" + +#. TRANS: Button label for adding an e-mail address in e-mail settings form. +#. TRANS: Button label for adding an IM address in IM settings form. +#. TRANS: Button label for adding a SMS phone number in SMS settings form. +#: actions/emailsettings.php:144 actions/imsettings.php:151 +#: actions/smssettings.php:162 +msgctxt "BUTTON" +msgid "Add" +msgstr "Hozzáadás" + +#. TRANS: Form legend for incoming e-mail settings form. +#. TRANS: Form legend for incoming SMS settings form. +#: actions/emailsettings.php:152 actions/smssettings.php:171 +msgid "Incoming email" +msgstr "Bejövő email" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Szeretnék email segítségével közzétenni." + +#. TRANS: Form instructions for incoming e-mail form in e-mail settings. +#. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. +#: actions/emailsettings.php:180 actions/smssettings.php:178 +msgid "Send email to this address to post new notices." +msgstr "Erre a címre küldj emailt új hír közzétételéhez." + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "" + +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + +#. TRANS: Button label for adding an e-mail address to send notices from. +#. TRANS: Button label for adding an SMS e-mail address to send notices from. +#: actions/emailsettings.php:199 actions/smssettings.php:189 +msgctxt "BUTTON" +msgid "New" +msgstr "Új" + +#. TRANS: Form legend for e-mail preferences form. +#: actions/emailsettings.php:208 +msgid "Email preferences" +msgstr "E-mail beállítások" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:216 +msgid "Send me notices of new subscriptions through email." +msgstr "Kapjak email-t, ha valaki feliratkozott a híreimre." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:222 +msgid "Send me email when someone adds my notice as a favorite." +msgstr "" +"Kapjak emailt róla, ha valaki kedvenceként jelöl meg egy általam küldött " +"hírt." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:229 +msgid "Send me email when someone sends me a private message." +msgstr "Kapjak emailt róla, ha valaki privát üzenetet küld nekem." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:235 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "Kapjak emailt róla, ha valaki \"@-választ\" küld nekem." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:241 +msgid "Allow friends to nudge me and send me an email." +msgstr "Megengedem a barátaimnak, hogy megbökjenek és emailt küldjenek nekem." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:247 +msgid "Publish a MicroID for my email address." +msgstr "MicroID közzététele az e-mail címemhez." + +#. TRANS: Confirmation message for successful e-mail preferences save. +#: actions/emailsettings.php:368 +msgid "Email preferences saved." +msgstr "E-mail beállítások elmentve." + +#. TRANS: Message given saving e-mail address without having provided one. +#: actions/emailsettings.php:388 +msgid "No email address." +msgstr "Nincs e-mail cím." + +#. TRANS: Message given saving e-mail address that cannot be normalised. +#: actions/emailsettings.php:396 +msgid "Cannot normalize that email address" +msgstr "Nem sikerült normalizálni az e-mail címet" + +#. TRANS: Message given saving e-mail address that not valid. +#: actions/emailsettings.php:401 actions/register.php:212 +#: actions/siteadminpanel.php:144 +msgid "Not a valid email address." +msgstr "Érvénytelen email cím." + +#. TRANS: Message given saving e-mail address that is already set. +#: actions/emailsettings.php:405 +msgid "That is already your email address." +msgstr "Jelenleg is ez az e-mail címed." + +#. TRANS: Message given saving e-mail address that is already set for another user. +#: actions/emailsettings.php:409 +msgid "That email address already belongs to another user." +msgstr "Ez az e-mail cím egy másik felhasználóhoz tartozik." + +#. TRANS: Server error thrown on database error adding e-mail confirmation code. +#. TRANS: Server error thrown on database error adding IM confirmation code. +#. TRANS: Server error thrown on database error adding SMS confirmation code. +#: actions/emailsettings.php:426 actions/imsettings.php:351 +#: actions/smssettings.php:373 +msgid "Couldn't insert confirmation code." +msgstr "Nem sikerült beilleszteni a megerősítő kódot." + +#. TRANS: Message given saving valid e-mail address that is to be confirmed. +#: actions/emailsettings.php:433 +msgid "" +"A confirmation code was sent to the email address you added. Check your " +"inbox (and spam box!) for the code and instructions on how to use it." +msgstr "" +"Elküldtük a megerősítő kódot az általad megadott e-mail címre. Ellenőrizd a " +"beérkező leveleidet (és a spameket!), hogy megkaptad-e az üzenetet, ami a " +"további teendőket tartalmazza." + +#. TRANS: Message given canceling e-mail address confirmation that is not pending. +#. TRANS: Message given canceling IM address confirmation that is not pending. +#. TRANS: Message given canceling SMS phone number confirmation that is not pending. +#: actions/emailsettings.php:454 actions/imsettings.php:386 +#: actions/smssettings.php:408 +msgid "No pending confirmation to cancel." +msgstr "Nincs várakozó megerősítés, amit vissza lehetne vonni." + +#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. +#: actions/emailsettings.php:459 +msgid "That is the wrong email address." +msgstr "" + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Nem sikerült törölni az e-mail cím megerősítését." + +#. TRANS: Message given after successfully canceling e-mail address confirmation. +#: actions/emailsettings.php:473 +msgid "Email confirmation cancelled." +msgstr "" + +#. TRANS: Message given trying to remove an e-mail address that is not +#. TRANS: registered for the active user. +#: actions/emailsettings.php:493 +msgid "That is not your email address." +msgstr "Ez nem a te e-mail címed." + +#. TRANS: Message given after successfully removing a registered e-mail address. +#: actions/emailsettings.php:514 +msgid "The email address was removed." +msgstr "" + +#: actions/emailsettings.php:528 actions/smssettings.php:568 +msgid "No incoming email address." +msgstr "Nincs bejövő e-mail cím." + +#. TRANS: Server error thrown on database error removing incoming e-mail address. +#. TRANS: Server error thrown on database error adding incoming e-mail address. +#: actions/emailsettings.php:540 actions/emailsettings.php:565 +#: actions/smssettings.php:578 actions/smssettings.php:602 +msgid "Couldn't update user record." +msgstr "Nem sikerült frissíteni a felhasználó rekordját." + +#. TRANS: Message given after successfully removing an incoming e-mail address. +#: actions/emailsettings.php:544 actions/smssettings.php:581 +msgid "Incoming email address removed." +msgstr "A bejövő email címet eltávolítottuk." + +#. TRANS: Message given after successfully adding an incoming e-mail address. +#: actions/emailsettings.php:569 actions/smssettings.php:605 +msgid "New incoming email address added." +msgstr "Új bejövő e-mail cím hozzáadva." + +#: actions/favor.php:79 +msgid "This notice is already a favorite!" +msgstr "Ez a hír már a kedvenceid között van!" + +#: actions/favor.php:92 lib/disfavorform.php:144 +msgid "Disfavor favorite" +msgstr "Kedvenc eltávolítása" + +#: actions/favorited.php:65 lib/popularnoticesection.php:62 +#: lib/publicgroupnav.php:93 +msgid "Popular notices" +msgstr "Népszerű hírek" + +#: actions/favorited.php:67 +#, php-format +msgid "Popular notices, page %d" +msgstr "Népszerű hírek, %d oldal" + +#: actions/favorited.php:79 +msgid "The most popular notices on the site right now." +msgstr "Most épp a webhely legnépszerűbb hírei" + +#: actions/favorited.php:150 +msgid "Favorite notices appear on this page but no one has favorited one yet." +msgstr "" +"Ezen az oldalon kedvencnek jelölt hírek jelennek meg, de még egyet sem tett " +"senki a kedvencévé." + +#: 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 "" + +#: actions/favorited.php:156 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to add a " +"notice to your favorites!" +msgstr "" + +#: actions/favoritesrss.php:111 actions/showfavorites.php:77 +#: lib/personalgroupnav.php:118 +#, php-format +msgid "%s's favorite notices" +msgstr "%s kedvenc hírei" + +#: actions/favoritesrss.php:115 +#, php-format +msgid "Updates favored by %1$s on %2$s!" +msgstr "" + +#: actions/featured.php:69 lib/featureduserssection.php:87 +#: lib/publicgroupnav.php:89 +msgid "Featured users" +msgstr "Kiemelt felhasználók" + +#: actions/featured.php:71 +#, php-format +msgid "Featured users, page %d" +msgstr "Kiemelt felhasználók, %d. oldal" + +#: actions/featured.php:99 +#, php-format +msgid "A selection of some great users on %s" +msgstr "" + +#: actions/file.php:34 +msgid "No notice ID." +msgstr "Nincs hír-ID." + +#: actions/file.php:38 +msgid "No notice." +msgstr "Nincs hír." + +#: actions/file.php:42 +msgid "No attachments." +msgstr "Nincs melléklet." + +#: actions/file.php:51 +msgid "No uploaded attachments." +msgstr "Nincs feltöltött melléklet." + +#: actions/finishremotesubscribe.php:69 +msgid "Not expecting this response!" +msgstr "Nem várt válasz!" + +#: actions/finishremotesubscribe.php:80 +msgid "User being listened to does not exist." +msgstr "A felhasználó akire figyelsz nem létezik." + +#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 +msgid "You can use the local subscription!" +msgstr "Figyelemmel követheted helyben!" + +#: actions/finishremotesubscribe.php:99 +msgid "That user has blocked you from subscribing." +msgstr "Az a felhasználó blokkolta hogy figyelemmel kövesd." + +#: actions/finishremotesubscribe.php:110 +msgid "You are not authorized." +msgstr "Nincs jogosultságod." + +#: actions/finishremotesubscribe.php:113 +msgid "Could not convert request token to access token." +msgstr "" + +#: actions/finishremotesubscribe.php:118 +msgid "Remote service uses unknown version of OMB protocol." +msgstr "" + +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 +msgid "Error updating remote profile." +msgstr "Nem sikerült frissíteni a távoli profilt." + +#: actions/getfile.php:79 +msgid "No such file." +msgstr "Nincs ilyen fájl." + +#: actions/getfile.php:83 +msgid "Cannot read file." +msgstr "A fájl nem olvasható." + +#: actions/grantrole.php:62 actions/revokerole.php:62 +msgid "Invalid role." +msgstr "Érvénytelen szerep." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +msgid "You cannot grant user roles on this site." +msgstr "" + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "A felhasználónak már van ilyen szerepe." + +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. +#: actions/groupblock.php:71 actions/groupunblock.php:71 +#: actions/makeadmin.php:71 actions/subedit.php:49 +#: lib/profileformaction.php:79 +msgid "No profile specified." +msgstr "Nincs profil megadva." + +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 +#: actions/unsubscribe.php:84 lib/profileformaction.php:86 +msgid "No profile with that ID." +msgstr "Nincs ilyen azonosítóval rendelkező profil." + +#: actions/groupblock.php:81 actions/groupunblock.php:82 +#: actions/makeadmin.php:81 +msgid "No group specified." +msgstr "Nincs csoport megadva." + +#: actions/groupblock.php:91 +msgid "Only an admin can block group members." +msgstr "Csak az adminisztrátor blokkolhat csoporttagokat." + +#: actions/groupblock.php:95 +msgid "User is already blocked from group." +msgstr "Ez a felhasználó már blokkolva van a csoportból." + +#: actions/groupblock.php:100 +msgid "User is not a member of group." +msgstr "Ez a felhasználó nem a csoport tagja." + +#: actions/groupblock.php:134 actions/groupmembers.php:364 +msgid "Block user from group" +msgstr "Felhasználó blokkolása a csoportból" + +#: actions/groupblock.php:160 +#, php-format +msgid "" +"Are you sure you want to block user \"%1$s\" from the group \"%2$s\"? They " +"will be removed from the group, unable to post, and unable to subscribe to " +"the group in the future." +msgstr "" +"Biztosan blokkolni szeretnéd \"%1$s\" felhasználót a \"%2$s\" csoportból? A " +"blokkolt felhasználók el lesznek távolítva a csoportból, nem küldhetnek " +"híreket, és nem tudják majd figyelemmel követni a csoportot a jövőben." + +#. TRANS: Submit button title for 'No' when blocking a user from a group. +#: actions/groupblock.php:182 +msgid "Do not block this user from this group" +msgstr "Ne blokkoljuk ezt a felhasználót ebből a csoportból" + +#. TRANS: Submit button title for 'Yes' when blocking a user from a group. +#: actions/groupblock.php:189 +msgid "Block this user from this group" +msgstr "Felhasználó blokkolása a csoportból" + +#: actions/groupblock.php:206 +msgid "Database error blocking user from group." +msgstr "" +"Adatbázishiba történt a felhasználó csoportból történő blokkolása során." + +#: actions/groupbyid.php:74 actions/userbyid.php:70 +msgid "No ID." +msgstr "Nincs ID." + +#: actions/groupdesignsettings.php:68 +msgid "You must be logged in to edit a group." +msgstr "Csoport szerkesztéséhez be kell jelentkezned." + +#: actions/groupdesignsettings.php:144 +msgid "Group design" +msgstr "A csoport megjelenése" + +#: actions/groupdesignsettings.php:155 +msgid "" +"Customize the way your group looks with a background image and a colour " +"palette of your choice." +msgstr "" + +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 +#: lib/designsettings.php:405 lib/designsettings.php:427 +msgid "Couldn't update your design." +msgstr "Nem sikerült frissíteni a designt." + +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +msgid "Design preferences saved." +msgstr "Design beállítások elmentve." + +#: actions/grouplogo.php:142 actions/grouplogo.php:195 +msgid "Group logo" +msgstr "Csoport logója" + +#: actions/grouplogo.php:153 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Feltöltés" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Levágás" + +#: actions/grouplogo.php:365 +msgid "Pick a square area of the image to be the logo." +msgstr "" + +#: actions/grouplogo.php:399 +msgid "Logo updated." +msgstr "Logó frissítve." + +#: actions/grouplogo.php:401 +msgid "Failed updating logo." +msgstr "Nem sikerült a logó feltöltése." + +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 +#, php-format +msgid "%s group members" +msgstr "%s csoport tagjai" + +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format +msgid "%1$s group members, page %2$d" +msgstr "" + +#: actions/groupmembers.php:122 +msgid "A list of the users in this group." +msgstr "A csoportban lévő felhasználók listája." + +#: actions/groupmembers.php:186 +msgid "Admin" +msgstr "Adminisztrátor" + +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" +msgid "Block" +msgstr "" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 +msgid "Make user an admin of the group" +msgstr "A felhasználó legyen a csoport kezelője" + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" +msgid "Make Admin" +msgstr "" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" +msgid "Make this user an admin" +msgstr "" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#: actions/grouprss.php:142 +#, php-format +msgid "Updates from members of %1$s on %2$s!" +msgstr "" + +#: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 +#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 +msgid "Groups" +msgstr "Csoportok" + +#: actions/groups.php:64 +#, php-format +msgid "Groups, page %d" +msgstr "Csoportok, %d. oldal" + +#: actions/groups.php:90 +#, php-format +msgid "" +"%%%%site.name%%%% groups let you find and talk with people of similar " +"interests. After you join a group you can send messages to all other members " +"using the syntax \"!groupname\". Don't see a group you like? Try [searching " +"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" +"%%%%)" +msgstr "" + +#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 +msgid "Create a new group" +msgstr "Új csoport létrehozása" + +#: actions/groupsearch.php:52 +#, 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 "" +"Csoport keresése a %%site.name%% webhelyen név, helyszín vagy leírás " +"alapján. Szóközökkel válaszd el a keresett kifejezéseket; legalább 3 " +"karaktert adj meg." + +#: actions/groupsearch.php:58 +msgid "Group search" +msgstr "Csoport-keresés" + +#: actions/groupsearch.php:79 actions/noticesearch.php:117 +#: actions/peoplesearch.php:83 +msgid "No results." +msgstr "Nincs találat." + +#: actions/groupsearch.php:82 +#, php-format +msgid "" +"If you can't find the group you're looking for, you can [create it](%%action." +"newgroup%%) yourself." +msgstr "" +"Ha nem találod a csoportot amit keresel, [létrehozhatod](%%action.newgroup%" +"%) saját magad." + +#: actions/groupsearch.php:85 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and [create the group](%%" +"action.newgroup%%) yourself!" +msgstr "" + +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 +msgid "Only an admin can unblock group members." +msgstr "" + +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 +msgid "User is not blocked from group." +msgstr "A felhasználó nincs blokkolva a csoportból." + +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 +msgid "Error removing the block." +msgstr "Hiba a blokkolás feloldása közben." + +#. TRANS: Title for instance messaging settings. +#: actions/imsettings.php:60 +msgid "IM settings" +msgstr "IM beállítások" + +#. TRANS: Instant messaging settings page instructions. +#. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. +#. TRANS: the order and formatting of link text and link should remain unchanged. +#: actions/imsettings.php:74 +#, php-format +msgid "" +"You can send and receive notices through Jabber/GTalk [instant messages](%%" +"doc.im%%). Configure your address and settings below." +msgstr "" + +#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. +#: actions/imsettings.php:94 +msgid "IM is not available." +msgstr "IM nem elérhető." + +#. TRANS: Form legend for IM settings form. +#. TRANS: Field label for IM address input in IM settings form. +#: actions/imsettings.php:106 actions/imsettings.php:136 +msgid "IM address" +msgstr "IM-cím" + +#: actions/imsettings.php:113 +msgid "Current confirmed Jabber/GTalk address." +msgstr "" + +#. TRANS: Form note in IM settings form. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:124 +#, php-format +msgid "" +"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " +"message with further instructions. (Did you add %s to your buddy list?)" +msgstr "" + +#. TRANS: IM address input field instructions in IM settings form. +#. TRANS: %s is the IM address set for the site. +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 +#, php-format +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 "" + +#. TRANS: Form legend for IM preferences form. +#: actions/imsettings.php:158 +msgid "IM preferences" +msgstr "Azonnali üzenetküldő beállításai" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:163 +msgid "Send me notices through Jabber/GTalk." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:169 +msgid "Post a notice when my Jabber/GTalk status changes." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:175 +msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." +msgstr "" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:182 +msgid "Publish a MicroID for my Jabber/GTalk address." +msgstr "" + +#. TRANS: Confirmation message for successful IM preferences save. +#: actions/imsettings.php:290 actions/othersettings.php:190 +msgid "Preferences saved." +msgstr "Beállítások elmentve." + +#. TRANS: Message given saving IM address without having provided one. +#: actions/imsettings.php:312 +msgid "No Jabber ID." +msgstr "Nincs Jabber-azonosító." + +#. TRANS: Message given saving IM address that cannot be normalised. +#: actions/imsettings.php:320 +msgid "Cannot normalize that Jabber ID" +msgstr "Nem lehet normalizálni a Jabber azonosítót" + +#. TRANS: Message given saving IM address that not valid. +#: actions/imsettings.php:325 +msgid "Not a valid Jabber ID" +msgstr "Érvénytelen Jabber-azonosító" + +#. TRANS: Message given saving IM address that is already set. +#: actions/imsettings.php:329 +msgid "That is already your Jabber ID." +msgstr "Jelenleg is ez a Jabber-azonosítód." + +#. TRANS: Message given saving IM address that is already set for another user. +#: actions/imsettings.php:333 +msgid "Jabber ID already belongs to another user." +msgstr "Ez a Jabber-azonosító már egy másik felhasználóhoz tartozik." + +#. TRANS: Message given saving valid IM address that is to be confirmed. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:361 +#, php-format +msgid "" +"A confirmation code was sent to the IM address you added. You must approve %" +"s for sending messages to you." +msgstr "" + +#. TRANS: Message given canceling IM address confirmation for the wrong IM address. +#: actions/imsettings.php:391 +msgid "That is the wrong IM address." +msgstr "Ez a hibás IM-cím." + +#. TRANS: Server error thrown on database error canceling IM address confirmation. +#: actions/imsettings.php:400 +msgid "Couldn't delete IM confirmation." +msgstr "" + +#. TRANS: Message given after successfully canceling IM address confirmation. +#: actions/imsettings.php:405 +msgid "IM confirmation cancelled." +msgstr "" + +#. TRANS: Message given trying to remove an IM address that is not +#. TRANS: registered for the active user. +#: actions/imsettings.php:427 +msgid "That is not your Jabber ID." +msgstr "Ez nem a te Jabber-azonosítód." + +#. TRANS: Message given after successfully removing a registered IM address. +#: actions/imsettings.php:450 +msgid "The IM address was removed." +msgstr "" + +#: actions/inbox.php:59 +#, php-format +msgid "Inbox for %1$s - page %2$d" +msgstr "" + +#: actions/inbox.php:62 +#, php-format +msgid "Inbox for %s" +msgstr "%s bejövő postafiókja" + +#: actions/inbox.php:115 +msgid "This is your inbox, which lists your incoming private messages." +msgstr "Ez a postaládád, ahol láthatod a neked küldött privát üzeneteket." + +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 +msgid "Invites have been disabled." +msgstr "A meghívások tiltva vannak." + +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 +#, php-format +msgid "You must be logged in to invite other users to use %s." +msgstr "" + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." +msgstr "Érvénytelen e-mail cím: %s" + +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" +msgstr "Meghívó(k) elküldve" + +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 +msgid "Invite new users" +msgstr "Új felhasználó meghívása" + +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Ezen felhasználók híreire már feliratkoztál:" +msgstr[1] "Ezen felhasználók híreire már feliratkoztál:" + +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" +msgid "%1$s (%2$s)" +msgstr "%1$s - %2$s" + +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" +"These people are already users and you were automatically subscribed to them:" +msgstr[0] "" +"Ők már felhasználók és automatikusan felirattunk az általuk küldött hírekre:" +msgstr[1] "" +"Ők már felhasználók és automatikusan felirattunk az általuk küldött hírekre:" + +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Meghívók elküldve a következő embereknek:" +msgstr[1] "Meghívók elküldve a következő embereknek:" + +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 +msgid "" +"You will be notified when your invitees accept the invitation and register " +"on the site. Thanks for growing the community!" +msgstr "" + +#. TRANS: Form instructions. +#: actions/invite.php:190 +msgid "" +"Use this form to invite your friends and colleagues to use this service." +msgstr "" +"Ezen űrlap segítségével meghívhatsz barátokat és kollégákat erre a " +"szolgáltatásra." + +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 +msgid "Email addresses" +msgstr "E-mail címek" + +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 +msgid "Addresses of friends to invite (one per line)" +msgstr "A meghívandó barátaid címei (soronként egy)" + +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 +msgid "Personal message" +msgstr "Személyes üzenet" + +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 +msgid "Optionally add a personal message to the invitation." +msgstr "Megadhatsz egy személyes üzenetet a meghívóhoz." + +#. TRANS: Send button for inviting friends +#: actions/invite.php:231 +msgctxt "BUTTON" +msgid "Send" +msgstr "Küldés" + +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 +#, php-format +msgid "%1$s has invited you to join them on %2$s" +msgstr "" + +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 +#, php-format +msgid "" +"%1$s has invited you to join them on %2$s (%3$s).\n" +"\n" +"%2$s is a micro-blogging service that lets you keep up-to-date with people " +"you know and people who interest you.\n" +"\n" +"You can also share news about yourself, your thoughts, or your life online " +"with people who know about you. It's also great for meeting new people who " +"share your interests.\n" +"\n" +"%1$s said:\n" +"\n" +"%4$s\n" +"\n" +"You can see %1$s's profile page on %2$s here:\n" +"\n" +"%5$s\n" +"\n" +"If you'd like to try the service, click on the link below to accept the " +"invitation.\n" +"\n" +"%6$s\n" +"\n" +"If not, you can ignore this message. Thanks for your patience and your " +"time.\n" +"\n" +"Sincerely, %2$s\n" +msgstr "" + +#: actions/joingroup.php:60 +msgid "You must be logged in to join a group." +msgstr "Be kell jelentkezned, ha csatlakozni szeretnél a csoporthoz." + +#: actions/joingroup.php:141 +#, php-format +msgid "%1$s joined group %2$s" +msgstr "%1$s csatlakozott a(z) %2$s csoporthoz" + +#: actions/leavegroup.php:60 +msgid "You must be logged in to leave a group." +msgstr "Be kell jelentkezned hogy elhagyhass egy csoportot." + +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 +msgid "You are not a member of that group." +msgstr "Nem vagy tagja annak a csoportnak." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Érvénytelen SSL szerver. A maximális hossz 255 karakter." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privát" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + +#: actions/login.php:102 actions/otp.php:62 actions/register.php:144 +msgid "Already logged in." +msgstr "Már be vagy jelentkezve." + +#: actions/login.php:148 +msgid "Incorrect username or password." +msgstr "Rossz felhasználónév vagy jelszó." + +#: actions/login.php:154 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "" + +#: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 +msgid "Login" +msgstr "Bejelentkezés" + +#: actions/login.php:249 +msgid "Login to site" +msgstr "Bejelentkezés az oldalra" + +#: actions/login.php:258 actions/register.php:491 +msgid "Remember me" +msgstr "Emlékezz rám" + +#: actions/login.php:259 actions/register.php:493 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"A jövőben legyen automatikus a bejelentkezés; csak ha egyedül használod a " +"számítógépet!" + +#: actions/login.php:269 +msgid "Lost or forgotten password?" +msgstr "Elvesztetted vagy elfelejtetted a jelszavad?" + +#: actions/login.php:288 +msgid "" +"For security reasons, please re-enter your user name and password before " +"changing your settings." +msgstr "" + +#: actions/login.php:292 +msgid "Login with your username and password." +msgstr "" + +#: actions/login.php:295 +#, php-format +msgid "" +"Don't have a username yet? [Register](%%action.register%%) a new account." +msgstr "" + +#: actions/makeadmin.php:92 +msgid "Only an admin can make another user an admin." +msgstr "Csak kezelő tehet egy másik felhasználót kezelővé." + +#: actions/makeadmin.php:96 +#, php-format +msgid "%1$s is already an admin for group \"%2$s\"." +msgstr "%1$s már kezelője a \"%2$s\" csoportnak." + +#: actions/makeadmin.php:133 +#, php-format +msgid "Can't get membership record for %1$s in group %2$s." +msgstr "" + +#: actions/makeadmin.php:146 +#, php-format +msgid "Can't make %1$s an admin for group %2$s." +msgstr "Nem sikerült %1$s-t a %2$s csoport kezelőjévé tenni." + +#: actions/microsummary.php:69 +msgid "No current status." +msgstr "Nincs aktuális állapot." + +#. TRANS: This is the title of the form for adding a new application. +#: actions/newapplication.php:52 +#, fuzzy +msgid "New application" +msgstr "Új alkalmazás" + +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 +msgid "You must be logged in to register an application." +msgstr "" + +#: actions/newapplication.php:147 +msgid "Use this form to register a new application." +msgstr "" + +#: actions/newapplication.php:184 +msgid "Source URL is required." +msgstr "Meg kell adnod forrás URL-t." + +#: actions/newapplication.php:266 actions/newapplication.php:275 +msgid "Could not create application." +msgstr "Nem sikerült létrehozni az alkalmazást." + +#. TRANS: Title for form to create a group. +#: actions/newgroup.php:53 +msgid "New group" +msgstr "Új csoport" + +#. TRANS: Form instructions for group create form. +#: actions/newgroup.php:110 +msgid "Use this form to create a new group." +msgstr "Ezen az űrlapon tudsz új csoportot létrehozni." + +#: actions/newmessage.php:71 actions/newmessage.php:234 +msgid "New message" +msgstr "Új üzenet" + +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 +msgid "You can't send a message to this user." +msgstr "Ennek a felhasználónak nem küldhetsz üzenetet." + +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 +msgid "No content!" +msgstr "Nincs tartalom!" + +#: actions/newmessage.php:161 +msgid "No recipient specified." +msgstr "Nincs címzett megadva." + +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 +msgid "" +"Don't send a message to yourself; just say it to yourself quietly instead." +msgstr "Ne küldj üzenetet magadnak, helyette mondd el halkan." + +#: actions/newmessage.php:184 +msgid "Message sent" +msgstr "Üzenet elküldve" + +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 +#, php-format +msgid "Direct message to %s sent." +msgstr "Közvetlen üzenet ment %s részére." + +#: actions/newmessage.php:213 actions/newnotice.php:264 +msgid "Ajax Error" +msgstr "Ajax-hiba" + +#: actions/newnotice.php:69 +msgid "New notice" +msgstr "Új hír" + +#: actions/newnotice.php:230 +msgid "Notice posted" +msgstr "Hír elküldve" + +#: actions/noticesearch.php:68 +#, php-format +msgid "" +"Search for notices on %%site.name%% by their contents. Separate search terms " +"by spaces; they must be 3 characters or more." +msgstr "" + +#: actions/noticesearch.php:78 +msgid "Text search" +msgstr "Szöveg keresése" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%1$s\" on %2$s" +msgstr "" + +#: actions/noticesearch.php:121 +#, php-format +msgid "" +"Be the first to [post on this topic](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" +msgstr "" + +#: actions/noticesearch.php:124 +#, php-format +msgid "" +"Why not [register an account](%%%%action.register%%%%) and be the first to " +"[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" +msgstr "" + +#: actions/noticesearchrss.php:96 +#, php-format +msgid "Updates with \"%s\"" +msgstr "" + +#: actions/noticesearchrss.php:98 +#, php-format +msgid "Updates matching search term \"%1$s\" on %2$s!" +msgstr "" + +#: actions/nudge.php:85 +msgid "" +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." +msgstr "" + +#: actions/nudge.php:94 +msgid "Nudge sent" +msgstr "Megböktük" + +#: actions/nudge.php:97 +msgid "Nudge sent!" +msgstr "Megböktük!" + +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 +msgid "You must be logged in to list your applications." +msgstr "" + +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 +msgid "OAuth applications" +msgstr "" + +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 +msgid "Applications you have registered" +msgstr "" + +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 +#, php-format +msgid "You have not registered any applications yet." +msgstr "" + +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 +msgid "Connected applications" +msgstr "" + +#. TRANS: Instructions for OAuth connection settings. +#: actions/oauthconnectionssettings.php:83 +msgid "The following connections exist for your account." +msgstr "" + +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 +msgid "You are not a user of that application." +msgstr "" + +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, php-format +msgid "Unable to revoke access for application: %s." +msgstr "" + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 +msgid "You have not authorized any applications to use your account." +msgstr "" + +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" + +#: actions/oembed.php:80 actions/shownotice.php:100 +msgid "Notice has no profile." +msgstr "" + +#: actions/oembed.php:83 actions/shownotice.php:172 +#, php-format +msgid "%1$s's status on %2$s" +msgstr "" + +#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') +#: actions/oembed.php:168 +#, php-format +msgid "Content type %s not supported." +msgstr "" + +#. TRANS: Error message displaying attachments. %s is the site's base URL. +#: actions/oembed.php:172 +#, php-format +msgid "Only %s URLs over plain HTTP please." +msgstr "" + +#. TRANS: Client error on an API request with an unsupported data format. +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 +msgid "Not a supported data format." +msgstr "Nem támogatott adatformátum." + +#: actions/opensearch.php:64 +msgid "People Search" +msgstr "Emberek keresése" + +#: actions/opensearch.php:67 +msgid "Notice Search" +msgstr "Hírek keresése" + +#: actions/othersettings.php:59 +msgid "Other settings" +msgstr "Egyéb beállítások" + +#. TRANS: Instructions for tab "Other" in user profile settings. +#: actions/othersettings.php:71 +msgid "Manage various other options." +msgstr "Számos egyéb beállítás kezelése." + +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 +msgid " (free service)" +msgstr " (ingyenes szolgáltatás)" + +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 +msgid "Shorten URLs with" +msgstr "" + +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 +msgid "Automatic shortening service to use." +msgstr "" + +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 +msgid "View profile designs" +msgstr "" + +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 +msgid "Show or hide profile designs." +msgstr "" + +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "A nyelv túl hosszú (legfeljebb 50 karakter lehet)." + +#: actions/otp.php:69 +msgid "No user ID specified." +msgstr "" + +#: actions/otp.php:83 +msgid "No login token specified." +msgstr "" + +#: actions/otp.php:90 +msgid "No login token requested." +msgstr "" + +#: actions/otp.php:95 +msgid "Invalid login token specified." +msgstr "" + +#: actions/otp.php:104 +msgid "Login token expired." +msgstr "" + +#: actions/outbox.php:58 +#, php-format +msgid "Outbox for %1$s - page %2$d" +msgstr "%1$s kimenő postafiókja - %2$d. oldal" + +#: actions/outbox.php:61 +#, php-format +msgid "Outbox for %s" +msgstr "%s kimenő postafiókja" + +#: actions/outbox.php:116 +msgid "This is your outbox, which lists private messages you have sent." +msgstr "Ez az elküldött privát üzeneteid postafiókja." + +#: actions/passwordsettings.php:58 +msgid "Change password" +msgstr "Jelszó megváltoztatása" + +#: actions/passwordsettings.php:69 +msgid "Change your password." +msgstr "Változtasd meg a jelszavadat." + +#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +msgid "Password change" +msgstr "Jelszó megváltoztatása" + +#: actions/passwordsettings.php:104 +msgid "Old password" +msgstr "Régi jelszó" + +#: actions/passwordsettings.php:108 actions/recoverpassword.php:235 +msgid "New password" +msgstr "Új jelszó" + +#: actions/passwordsettings.php:109 +msgid "6 or more characters" +msgstr "6 vagy több karakter" + +#: actions/passwordsettings.php:112 actions/recoverpassword.php:239 +#: actions/register.php:441 +msgid "Confirm" +msgstr "Megerősítés" + +#: actions/passwordsettings.php:113 actions/recoverpassword.php:240 +msgid "Same as password above" +msgstr "Ugyanaz mint a fenti jelszó" + +#: actions/passwordsettings.php:117 +msgid "Change" +msgstr "Változtassunk" + +#: actions/passwordsettings.php:154 actions/register.php:238 +msgid "Password must be 6 or more characters." +msgstr "A jelszónak legalább 6 karakterből kell állnia." + +#: actions/passwordsettings.php:157 actions/register.php:241 +msgid "Passwords don't match." +msgstr "A jelszavak nem egyeznek." + +#: actions/passwordsettings.php:165 +msgid "Incorrect old password" +msgstr "Érvénytelen a régi jelszó" + +#: actions/passwordsettings.php:181 +msgid "Error saving user; invalid." +msgstr "Hiba a felhasználó mentésekor; érvénytelen." + +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 +msgid "Can't save new password." +msgstr "Az új jelszót nem sikerült elmenteni." + +#: actions/passwordsettings.php:192 actions/recoverpassword.php:211 +msgid "Password saved." +msgstr "Jelszó elmentve." + +#. TRANS: Title for Paths admin panel. +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 +msgid "Paths" +msgstr "Útvonalak" + +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format +msgid "Theme directory not readable: %s." +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. +#: actions/pathsadminpanel.php:163 +#, php-format +msgid "Avatar directory not writable: %s." +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format +msgid "Background directory not writable: %s." +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, php-format +msgid "Locales directory not readable: %s." +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 +msgid "Invalid SSL server. The maximum length is 255 characters." +msgstr "Érvénytelen SSL szerver. A maximális hossz 255 karakter." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 +msgid "Site" +msgstr "Webhely" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 +msgid "Server" +msgstr "Szerver" + +#: actions/pathsadminpanel.php:242 +msgid "Site's server hostname." +msgstr "A webhely kiszolgálójának neve." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 +msgid "Path" +msgstr "Útvonal" + +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." +msgstr "Webhely útvonala" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Avatar-könyvtár" + +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." +msgstr "A nyelvi fájlok elérési útvonala" + +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 +msgid "Fancy URLs" +msgstr "" + +#: actions/pathsadminpanel.php:265 +msgid "Use fancy (more readable and memorable) URLs?" +msgstr "" + +#: actions/pathsadminpanel.php:272 +msgid "Theme" +msgstr "Téma" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "A webhely témája." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "SSL-kiszolgáló" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Webhely útvonala" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Avatar-könyvtár" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "A nyelvi fájlok elérési útvonala" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatarok" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatar-kiszolgáló" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "A webhely témája." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Nem sikerült felölteni az avatart." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatar-könyvtár" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "A nyelvi fájlok elérési útvonala" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Hátterek" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "A webhely témája." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "A nyelvi fájlok elérési útvonala" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Csatolmányok" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "A webhely témája." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Nincs melléklet." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "A webhely témája." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "A nyelvi fájlok elérési útvonala" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Soha" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Időnként" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Mindig" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL használata" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Mikor használjunk SSL-t" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 +msgid "Save paths" +msgstr "Elérési útvonalak mentése" + +#: actions/peoplesearch.php:52 +#, php-format +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 "" +"Keressünk embereket a %%site.name%% webhelyen a nevük, lakhelyük vagy " +"érdeklődési körük alapján. A kifejezéseket válaszd el szóközökkel; legalább " +"3 betűből kell állniuk." + +#: actions/peoplesearch.php:58 +msgid "People search" +msgstr "Emberkereső" + +#: actions/peopletag.php:68 +#, php-format +msgid "Not a valid people tag: %s." +msgstr "" + +#: actions/peopletag.php:142 +#, php-format +msgid "Users self-tagged with %1$s - page %2$d" +msgstr "" + +#: actions/postnotice.php:95 +msgid "Invalid notice content." +msgstr "Érvénytelen megjegyzéstartalom." + +#: actions/postnotice.php:101 +#, php-format +msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "A hír licence ‘%1$s’ nem kompatibilis a webhely licencével ‘%2$s’." + +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 +msgid "Profile settings" +msgstr "Profilbeállítások" + +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 +msgid "" +"You can update your personal profile info here so people know more about you." +msgstr "" +"Itt frissítheted a személyes információkat magadról, hogy az emberek minél " +"többet tudhassanak rólad." + +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 +msgid "Profile information" +msgstr "Személyes profil" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 kisbetű vagy számjegy, nem lehet benne írásjel vagy szóköz" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 +msgid "Full name" +msgstr "Teljes név" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Form input field label. +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 +msgid "Homepage" +msgstr "Honlap" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." +msgstr "" +"A honlapodhoz, blogodhoz, vagy egy másik webhelyen lévő profilodhoz tartozó " +"URL" + +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Jellemezd önmagad és az érdeklődési köröd %d karakterben" +msgstr[1] "Jellemezd önmagad és az érdeklődési köröd %d karakterben" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 +msgid "Describe yourself and your interests" +msgstr "Jellemezd önmagad és az érdeklődési köröd" + +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 +msgid "Bio" +msgstr "Életrajz" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 +msgid "Location" +msgstr "Helyszín" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 +msgid "Where you are, like \"City, State (or Region), Country\"" +msgstr "Merre vagy, mint pl. \"Város, Megye, Ország\"" + +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 +msgid "Share my current location when posting notices" +msgstr "Tegyük közzé az aktuális tartózkodási helyem amikor híreket küldök" + +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 +#: actions/tagother.php:209 lib/subscriptionlist.php:106 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 +msgid "Tags" +msgstr "Címkék" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 +msgid "" +"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "" +"Címkék magadhoz (betűk, számok, -, ., és _), vesszővel vagy szóközzel " +"elválasztva" + +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 +msgid "Language" +msgstr "Nyelv" + +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 +msgid "Preferred language" +msgstr "Előnyben részesített nyelv" + +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 +msgid "Timezone" +msgstr "Időzóna" + +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 +msgid "What timezone are you normally in?" +msgstr "Általában melyik időzónában vagy?" + +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 +msgid "" +"Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "" +"Automatikusan iratkozzunk fel mindazok híreire, aki feliratkoznak a mieinkre " +"(nem embereknek való)" + +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Az bemutatkozás túl hosszú (max %d karakter)." +msgstr[1] "Az bemutatkozás túl hosszú (max %d karakter)." + +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 +msgid "Timezone not selected." +msgstr "Nem választottál időzónát." + +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "A nyelv túl hosszú (legfeljebb 50 karakter lehet)." + +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format +msgid "Invalid tag: \"%s\"" +msgstr "Érvénytelen címke: \"%s\"" + +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +msgid "Couldn't update user for autosubscribe." +msgstr "Nem sikerült a felhasználónak automatikus feliratkozást beállítani." + +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 +msgid "Couldn't save location prefs." +msgstr "Nem sikerült a helyszín beállításait elmenteni." + +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 +msgid "Couldn't save profile." +msgstr "Nem sikerült elmenteni a profilt." + +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 +msgid "Couldn't save tags." +msgstr "Nem sikerült a címkéket elmenteni." + +#. TRANS: Confirmation shown when user profile settings are saved. +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 +msgid "Settings saved." +msgstr "A beállításokat elmentettük." + +#: actions/public.php:83 +#, php-format +msgid "Beyond the page limit (%s)." +msgstr "" + +#: actions/public.php:92 +msgid "Could not retrieve public stream." +msgstr "" + +#: actions/public.php:130 +#, php-format +msgid "Public timeline, page %d" +msgstr "Közösségi történet, %d. oldal" + +#: actions/public.php:132 lib/publicgroupnav.php:79 +msgid "Public timeline" +msgstr "Közösségi történet" + +#: actions/public.php:160 +msgid "Public Stream Feed (RSS 1.0)" +msgstr "" + +#: actions/public.php:164 +msgid "Public Stream Feed (RSS 2.0)" +msgstr "" + +#: actions/public.php:168 +msgid "Public Stream Feed (Atom)" +msgstr "" + +#: actions/public.php:188 +#, php-format +msgid "" +"This is the public timeline for %%site.name%% but no one has posted anything " +"yet." +msgstr "Ez itt %%site.name%% közösségi története, de még senki nem írt semmit." + +#: actions/public.php:191 +msgid "Be the first to post!" +msgstr "Légy az első aki ír!" + +#: actions/public.php:195 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post!" +msgstr "Ha [regisztrálnál](%%action.register%%), te írhatnád az első hírt!" + +#: actions/public.php:242 +#, 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. [Join now](%%action.register%%) to share notices about yourself with " +"friends, family, and colleagues! ([Read more](%%doc.help%%))" +msgstr "" +"%%site.name%% - egy [mikroblog](http://hu.wikipedia.org/wiki/" +"Mikroblog#Mikroblog), mely a szabad [StatusNet](http://status.net/) " +"szoftveren fut.\n" +"[Csatlakozz](%%action.register%%), és küldj híreket magadról a barátaidnak, " +"a családodnak, a munkatársaidnak! ([Tudj meg többet](%%doc.help%%))" + +#: actions/public.php:247 +#, 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 "" + +#. TRANS: Title for public tag cloud. +#: actions/publictagcloud.php:57 +msgid "Public tag cloud" +msgstr "Nyilvános címkefelhő" + +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" +msgstr "%s legnépszerűbb címkéi mostanában " + +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 +#, php-format +msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." +msgstr "" + +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 +msgid "Be the first to post one!" +msgstr "Küld be te az első hírt!" + +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post " +"one!" +msgstr "" + +#: actions/publictagcloud.php:146 +msgid "Tag cloud" +msgstr "Címkefelhő" + +#: actions/recoverpassword.php:36 +msgid "You are already logged in!" +msgstr "Már be vagy jelentkezve!" + +#: actions/recoverpassword.php:62 +msgid "No such recovery code." +msgstr "Nincs ilyen visszaállítási kód." + +#: actions/recoverpassword.php:66 +msgid "Not a recovery code." +msgstr "Nem visszaállítási kód." + +#: actions/recoverpassword.php:73 +msgid "Recovery code for unknown user." +msgstr "" + +#: actions/recoverpassword.php:86 +msgid "Error with confirmation code." +msgstr "" + +#: actions/recoverpassword.php:97 +msgid "This confirmation code is too old. Please start again." +msgstr "" + +#: actions/recoverpassword.php:111 +msgid "Could not update user with confirmed email address." +msgstr "Nem sikerült a felhasználó frissítése a megerősített e-mail címmel." + +#: 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 "" + +#: actions/recoverpassword.php:188 +msgid "Password recovery" +msgstr "Jelszó visszaállítása" + +#: actions/recoverpassword.php:191 +msgid "Nickname or email address" +msgstr "Becenév vagy email cím" + +#: actions/recoverpassword.php:193 +msgid "Your nickname on this server, or your registered email address." +msgstr "" + +#: actions/recoverpassword.php:199 actions/recoverpassword.php:200 +msgid "Recover" +msgstr "Alaphelyzetbe állítás" + +#: actions/recoverpassword.php:208 +msgid "Reset password" +msgstr "Jelszó alaphelyzetbe állítása" + +#: actions/recoverpassword.php:209 +msgid "Recover password" +msgstr "Elfelejtett jelszó" + +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 +msgid "Password recovery requested" +msgstr "Jelszó visszaállítás kérvényezve" + +#: actions/recoverpassword.php:213 +msgid "Unknown action" +msgstr "Ismeretlen művelet" + +#: actions/recoverpassword.php:236 +msgid "6 or more characters, and don't forget it!" +msgstr "6 vagy több karakter, és ne felejtsd el!" + +#: actions/recoverpassword.php:243 +msgid "Reset" +msgstr "Alaphelyzet" + +#: actions/recoverpassword.php:252 +msgid "Enter a nickname or email address." +msgstr "Adj meg egy nicknevet vagy email címet." + +#: actions/recoverpassword.php:282 +msgid "No user with that email address or username." +msgstr "" + +#: actions/recoverpassword.php:299 +msgid "No registered email address for that user." +msgstr "" + +#: actions/recoverpassword.php:313 +msgid "Error saving address confirmation." +msgstr "" + +#: actions/recoverpassword.php:338 +msgid "" +"Instructions for recovering your password have been sent to the email " +"address registered to your account." +msgstr "" + +#: actions/recoverpassword.php:357 +msgid "Unexpected password reset." +msgstr "" + +#: actions/recoverpassword.php:365 +#, fuzzy +msgid "Password must be 6 characters or more." +msgstr "A jelszónak legalább 6 karakterből kell állnia." + +#: actions/recoverpassword.php:369 +msgid "Password and confirmation do not match." +msgstr "A jelszó és a megerősítése nem egyeznek meg." + +#: actions/recoverpassword.php:388 actions/register.php:256 +msgid "Error setting user." +msgstr "Hiba a felhasználó beállításakor." + +#: actions/recoverpassword.php:395 +msgid "New password successfully saved. You are now logged in." +msgstr "" + +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 +msgid "Sorry, only invited people can register." +msgstr "Elnézést, de csak meghívóval lehet regisztrálni." + +#: actions/register.php:99 +msgid "Sorry, invalid invitation code." +msgstr "" + +#: actions/register.php:119 +msgid "Registration successful" +msgstr "A regisztráció sikeres" + +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 +msgid "Register" +msgstr "Regisztráció" + +#: actions/register.php:142 +msgid "Registration not allowed." +msgstr "A regisztráció nem megengedett." + +#: actions/register.php:209 +msgid "You can't register if you don't agree to the license." +msgstr "Nem tudsz regisztrálni ha nem fogadod el a licencet." + +#: actions/register.php:218 +msgid "Email address already exists." +msgstr "Az e-mail cím már létezik." + +#: actions/register.php:251 actions/register.php:273 +msgid "Invalid username or password." +msgstr "Érvénytelen felhasználónév vagy jelszó." + +#: actions/register.php:351 +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:433 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." +msgstr "" +"1-64 kisbetű vagy számjegy, nem lehet írásjel vagy szóköz benne. Szükséges." + +#: actions/register.php:438 +msgid "6 or more characters. Required." +msgstr "6 vagy több karakter. Kötelező." + +#: actions/register.php:442 +msgid "Same as password above. Required." +msgstr "Ugyanaz mint a jelszó fentebb. Szükséges." + +#. TRANS: Link description in user account settings menu. +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 +msgid "Email" +msgstr "E-mail" + +#: actions/register.php:447 actions/register.php:451 +msgid "Used only for updates, announcements, and password recovery" +msgstr "" +"Csak frissítéskor, fontos közlemények esetén és jelszóproblémák orvoslására " +"használjuk" + +#: actions/register.php:458 +msgid "Longer name, preferably your \"real\" name" +msgstr "Hosszabb név, célszerűen a \"valódi\" neved" + +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" +"A honlapodhoz, blogodhoz, vagy egy másik webhelyen lévő profilodhoz tartozó " +"URL" + +#: actions/register.php:524 +#, php-format +msgid "" +"I understand that content and data of %1$s are private and confidential." +msgstr "" + +#: actions/register.php:534 +#, php-format +msgid "My text and files are copyright by %1$s." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. +#: actions/register.php:538 +msgid "My text and files remain under my own copyright." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. +#: actions/register.php:541 +msgid "All rights reserved." +msgstr "" + +#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. +#: actions/register.php:546 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: actions/register.php:589 +#, php-format +msgid "" +"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " +"want to...\n" +"\n" +"* Go to [your profile](%2$s) and post your first message.\n" +"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send " +"notices through instant messages.\n" +"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that " +"share your interests. \n" +"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " +"others more about you. \n" +"* Read over the [online docs](%%%%doc.help%%%%) for features you may have " +"missed. \n" +"\n" +"Thanks for signing up and we hope you enjoy using this service." +msgstr "" + +#: actions/register.php:613 +msgid "" +"(You should receive a message by email momentarily, with instructions on how " +"to confirm your email address.)" +msgstr "" +"(Hamarosan kapnod kell egy e-mailt az e-mail címed megerősítésére vonatkozó " +"utasításokkal.)" + +#: actions/remotesubscribe.php:98 +#, php-format +msgid "" +"To subscribe, you can [login](%%action.login%%), or [register](%%action." +"register%%) a new account. If you already have an account on a [compatible " +"microblogging site](%%doc.openmublog%%), enter your profile URL below." +msgstr "" + +#: actions/remotesubscribe.php:112 +msgid "Remote subscribe" +msgstr "Távoli feliratkozás" + +#: actions/remotesubscribe.php:124 +msgid "Subscribe to a remote user" +msgstr "" + +#: actions/remotesubscribe.php:129 +msgid "User nickname" +msgstr "Felhasználó beceneve" + +#: actions/remotesubscribe.php:130 +msgid "Nickname of the user you want to follow" +msgstr "" + +#: actions/remotesubscribe.php:133 +msgid "Profile URL" +msgstr "Profil URL" + +#: actions/remotesubscribe.php:134 +msgid "URL of your profile on another compatible microblogging service" +msgstr "" + +#: actions/remotesubscribe.php:137 lib/subscribeform.php:139 +#: lib/userprofile.php:411 +msgid "Subscribe" +msgstr "Kövessük" + +#: actions/remotesubscribe.php:159 +msgid "Invalid profile URL (bad format)" +msgstr "" + +#: actions/remotesubscribe.php:168 +msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." +msgstr "" + +#: actions/remotesubscribe.php:176 +msgid "That’s a local profile! Login to subscribe." +msgstr "" + +#: actions/remotesubscribe.php:183 +msgid "Couldn’t get a request token." +msgstr "" + +#: actions/repeat.php:57 +msgid "Only logged-in users can repeat notices." +msgstr "" + +#: actions/repeat.php:64 actions/repeat.php:71 +msgid "No notice specified." +msgstr "Nincs hír megjelölve." + +#: actions/repeat.php:76 +msgid "You can't repeat your own notice." +msgstr "" + +#: actions/repeat.php:90 +msgid "You already repeated that notice." +msgstr "" + +#: actions/repeat.php:114 lib/noticelist.php:691 +msgid "Repeated" +msgstr "" + +#: actions/repeat.php:119 +msgid "Repeated!" +msgstr "" + +#: actions/replies.php:126 actions/repliesrss.php:68 +#: lib/personalgroupnav.php:108 +#, php-format +msgid "Replies to %s" +msgstr "" + +#: actions/replies.php:128 +#, php-format +msgid "Replies to %1$s, page %2$d" +msgstr "" + +#: actions/replies.php:145 +#, php-format +msgid "Replies feed for %s (RSS 1.0)" +msgstr "" + +#: actions/replies.php:152 +#, php-format +msgid "Replies feed for %s (RSS 2.0)" +msgstr "" + +#: actions/replies.php:159 +#, php-format +msgid "Replies feed for %s (Atom)" +msgstr "" + +#: actions/replies.php:199 +#, php-format +msgid "" +"This is the timeline showing replies to %1$s but %2$s hasn't received a " +"notice to them yet." +msgstr "" + +#: actions/replies.php:204 +#, php-format +msgid "" +"You can engage other users in a conversation, subscribe to more people or " +"[join groups](%%action.groups%%)." +msgstr "" + +#: actions/replies.php:206 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#: actions/repliesrss.php:72 +#, php-format +msgid "Replies to %1$s on %2$s!" +msgstr "" + +#: actions/revokerole.php:75 +msgid "You cannot revoke user roles on this site." +msgstr "" + +#: actions/revokerole.php:82 +msgid "User doesn't have this role." +msgstr "" + +#: actions/rsd.php:146 actions/version.php:159 +msgid "StatusNet" +msgstr "StatusNet" + +#: actions/sandbox.php:65 actions/unsandbox.php:65 +msgid "You cannot sandbox users on this site." +msgstr "" + +#: actions/sandbox.php:72 +msgid "User is already sandboxed." +msgstr "" + +#. TRANS: Menu item for site administration +#: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:379 +msgid "Sessions" +msgstr "Munkamenetek" + +#: actions/sessionsadminpanel.php:65 +msgid "Session settings for this StatusNet site" +msgstr "" + +#: actions/sessionsadminpanel.php:175 +msgid "Handle sessions" +msgstr "Kezeljük a munkameneteket" + +#: actions/sessionsadminpanel.php:177 +msgid "Whether to handle sessions ourselves." +msgstr "Mi magunk kezeljük-e a munkameneteket." + +#: actions/sessionsadminpanel.php:181 +msgid "Session debugging" +msgstr "" + +#: actions/sessionsadminpanel.php:183 +msgid "Turn on debugging output for sessions." +msgstr "" + +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +msgid "Save site settings" +msgstr "Mentsük el a webhely beállításait" + +#: actions/showapplication.php:82 +msgid "You must be logged in to view an application." +msgstr "" + +#: actions/showapplication.php:157 +msgid "Application profile" +msgstr "" + +#. TRANS: Form input field label for application icon. +#: actions/showapplication.php:159 lib/applicationeditform.php:173 +msgid "Icon" +msgstr "Ikon" + +#. TRANS: Form input field label for application name. +#: actions/showapplication.php:169 actions/version.php:197 +#: lib/applicationeditform.php:190 +msgid "Name" +msgstr "Név" + +#. TRANS: Form input field label. +#: actions/showapplication.php:178 lib/applicationeditform.php:227 +msgid "Organization" +msgstr "Szervezet" + +#. TRANS: Form input field label. +#: actions/showapplication.php:187 actions/version.php:200 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 +msgid "Description" +msgstr "Leírás" + +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 +#: lib/profileaction.php:187 +msgid "Statistics" +msgstr "Statisztika" + +#: actions/showapplication.php:203 +#, php-format +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "" + +#: actions/showapplication.php:213 +msgid "Application actions" +msgstr "" + +#: actions/showapplication.php:236 +msgid "Reset key & secret" +msgstr "" + +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Törlés" + +#: actions/showapplication.php:261 +msgid "Application info" +msgstr "" + +#: actions/showapplication.php:263 +msgid "Consumer key" +msgstr "" + +#: actions/showapplication.php:268 +msgid "Consumer secret" +msgstr "" + +#: actions/showapplication.php:273 +msgid "Request token URL" +msgstr "" + +#: actions/showapplication.php:278 +msgid "Access token URL" +msgstr "" + +#: actions/showapplication.php:283 +msgid "Authorize URL" +msgstr "" + +#: actions/showapplication.php:288 +msgid "" +"Note: We support HMAC-SHA1 signatures. We do not support the plaintext " +"signature method." +msgstr "" + +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" + +#: actions/showfavorites.php:79 +#, php-format +msgid "%1$s's favorite notices, page %2$d" +msgstr "" + +#: actions/showfavorites.php:132 +msgid "Could not retrieve favorite notices." +msgstr "Nem sikerült a kedvenc híreket lekérni." + +#: actions/showfavorites.php:171 +#, php-format +msgid "Feed for favorites of %s (RSS 1.0)" +msgstr "%s kedvenceinek RSS 1.0 hírcsatornája" + +#: actions/showfavorites.php:178 +#, php-format +msgid "Feed for favorites of %s (RSS 2.0)" +msgstr "%s kedvenceinek RSS 2.0 hírcsatornája" + +#: actions/showfavorites.php:185 +#, php-format +msgid "Feed for favorites of %s (Atom)" +msgstr "%s kedvenceinek Atom hírcsatornája" + +#: actions/showfavorites.php:206 +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:208 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" +msgstr "" + +#: actions/showfavorites.php:212 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" +msgstr "" + +#: actions/showfavorites.php:243 +msgid "This is a way to share what you like." +msgstr "Ez az egyik módja annak, hogy megoszd amit kedvelsz." + +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 +#, php-format +msgid "%s group" +msgstr "%s csoport" + +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format +msgid "%1$s group, page %2$d" +msgstr "%1$s csoport, %2$d. oldal" + +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 +msgid "Group profile" +msgstr "Csoportprofil" + +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 +msgid "URL" +msgstr "URL-cím" + +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 +msgid "Note" +msgstr "Megjegyzés" + +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 +msgid "Aliases" +msgstr "Álnevek" + +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +msgid "Group actions" +msgstr "Csoport-tevékenységek" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format +msgid "Notice feed for %s group (RSS 1.0)" +msgstr "%s csoport RSS 1.0 hírcsatornája" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format +msgid "Notice feed for %s group (RSS 2.0)" +msgstr "%s csoport RSS 2.0 hírcsatornája" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format +msgid "Notice feed for %s group (Atom)" +msgstr "%s csoport Atom hírcsatornája" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, php-format +msgid "FOAF for %s group" +msgstr "FOAF a %s csoportnak" + +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 +msgid "Members" +msgstr "Tagok" + +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 +#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 +#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "(nincs)" + +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 +msgid "All members" +msgstr "Összes tag" + +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" +msgid "Created" +msgstr "Létrehoztuk" + +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Tagok" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 +#, 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. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" +"**%s** egy felhasználói csoport a %%%%site.name%%%% webhelyen - ami egy " +"[mikroblog](http://hu.wikipedia.org/wiki/Mikroblog#Mikroblog), mely a szabad " +"[StatusNet](http://status.net/) szoftveren fut. A csoport tagjai rövid " +"üzeneteket írnak az életükről és az érdeklődési körükkel kapcsolatban.\n" +"[Csatlakozz](%%%%action.register%%%%), és légy tagja ennek a csoportnak - és " +"még sok másiknak is! ([Tudj meg többet](%%%%doc.help%%%%))" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, 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 "" + +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 +msgid "Admins" +msgstr "Adminisztrátorok" + +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 +msgid "No such message." +msgstr "Nincs ilyen üzenet." + +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 +msgid "Only the sender and recipient may read this message." +msgstr "Csak a küldő és a címzett olvashatja ezt az üzenetet." + +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, php-format +msgid "Message to %1$s on %2$s" +msgstr "" + +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, php-format +msgid "Message from %1$s on %2$s" +msgstr "" + +#: actions/shownotice.php:90 +msgid "Notice deleted." +msgstr "A hírt töröltük." + +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr " %s megcímkézve" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s és barátai, %2$d oldal" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format +msgid "%1$s, page %2$d" +msgstr "" + +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format +msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" +msgstr "RSS 1.0 csatorna %1$s %2$s címkéjű híreiből" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "%s RSS 1.0 hírcsatornája" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "%s RSS 2.0 hírcsatornája" + +#: actions/showstream.php:152 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "%s Atom hírcsatornája" + +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, php-format +msgid "FOAF for %s" +msgstr "" + +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Ez %1$s története, de %2$s még nem tett közzé hírt." + +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 +msgid "" +"Seen anything interesting recently? You haven't posted any notices yet, now " +"would be a good time to start :)" +msgstr "" + +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format +msgid "" +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." +msgstr "" + +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, 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. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" +"**%s** %%%%site.name%%%% felhasználó, ami egy [mikroblog](http://hu." +"wikipedia.org/wiki/Mikroblog#Mikroblog) szolgáltatás, mely a szabad " +"[StatusNet](http://status.net/) szoftverre épült. [Csatlakozz](%%%%action." +"register%%%%) és kövesd nyomon **%s** pletykáit - és még rengeteg mást! " +"([Tudj meg többet](%%%%doc.help%%%%))" + +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, 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 "" +"**%s** %%%%site.name%%%% felhasználó, [mikroblogot](http://hu.wikipedia.org/" +"wiki/Mikroblog#Mikroblog) ír egy webhelyen, ami a szabad [StatusNet](http://" +"status.net/) szoftverre épült. " + +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, php-format +msgid "Repeat of %s" +msgstr "%s ismétlése" + +#: actions/silence.php:65 actions/unsilence.php:65 +msgid "You cannot silence users on this site." +msgstr "Ezen a webhelyen nem hallgattathatod el a felhasználókat." + +#: actions/silence.php:72 +msgid "User is already silenced." +msgstr "A felhasználó már el van hallgattatva." + +#: actions/siteadminpanel.php:69 +msgid "Basic settings for this StatusNet site" +msgstr "" + +#: actions/siteadminpanel.php:133 +msgid "Site name must have non-zero length." +msgstr "A webhely nevének legalább egy karakter hosszúnak kell lennie." + +#: actions/siteadminpanel.php:141 +msgid "You must have a valid contact email address." +msgstr "Valódi kapcsolattartó email címet kell megadnod." + +#: actions/siteadminpanel.php:159 +#, php-format +msgid "Unknown language \"%s\"." +msgstr "Ismeretlen nyelv: \"%s\"." + +#: actions/siteadminpanel.php:165 +msgid "Minimum text limit is 0 (unlimited)." +msgstr "" + +#: actions/siteadminpanel.php:171 +msgid "Dupe limit must be one or more seconds." +msgstr "" + +#: actions/siteadminpanel.php:221 +msgid "General" +msgstr "Általános" + +#: actions/siteadminpanel.php:224 +msgid "Site name" +msgstr "A webhely neve" + +#: actions/siteadminpanel.php:225 +msgid "The name of your site, like \"Yourcompany Microblog\"" +msgstr "" + +#: actions/siteadminpanel.php:229 +msgid "Brought by" +msgstr "" + +#: actions/siteadminpanel.php:230 +msgid "Text used for credits link in footer of each page" +msgstr "" + +#: actions/siteadminpanel.php:234 +msgid "Brought by URL" +msgstr "" + +#: actions/siteadminpanel.php:235 +msgid "URL used for credits link in footer of each page" +msgstr "" + +#: actions/siteadminpanel.php:239 +msgid "Contact email address for your site" +msgstr "A webhelyhez tartozó kapcsolattartó email cím" + +#: actions/siteadminpanel.php:245 +msgid "Local" +msgstr "Helyi" + +#: actions/siteadminpanel.php:256 +msgid "Default timezone" +msgstr "Alapértelmezett időzóna" + +#: actions/siteadminpanel.php:257 +msgid "Default timezone for the site; usually UTC." +msgstr "A webhely alapértelmezett időzónája; többnyire GMT+1." + +#: actions/siteadminpanel.php:262 +msgid "Default language" +msgstr "Alapértelmezett nyelv" + +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" + +#: actions/siteadminpanel.php:271 +msgid "Limits" +msgstr "Korlátok" + +#: actions/siteadminpanel.php:274 +msgid "Text limit" +msgstr "Szöveg hosszának korlátja" + +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." +msgstr "A hírek maximális karakterszáma." + +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" +msgstr "Duplázások korlátja" + +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." +msgstr "" + +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 +msgid "Site Notice" +msgstr "" + +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 +msgid "Edit site-wide message" +msgstr "" + +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 +msgid "Unable to save site notice." +msgstr "" + +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "" + +#. TRANS: Label for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:176 +msgid "Site notice text" +msgstr "" + +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "" + +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 +msgid "Save site notice" +msgstr "" + +#. TRANS: Title for SMS settings. +#: actions/smssettings.php:59 +msgid "SMS settings" +msgstr "SMS beállítások" + +#. TRANS: SMS settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/smssettings.php:74 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" + +#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. +#: actions/smssettings.php:97 +msgid "SMS is not available." +msgstr "Az SMS nem elérhető." + +#. TRANS: Form legend for SMS settings form. +#: actions/smssettings.php:111 +msgid "SMS address" +msgstr "" + +#. TRANS: Form guide in SMS settings form. +#: actions/smssettings.php:120 +msgid "Current confirmed SMS-enabled phone number." +msgstr "" + +#. TRANS: Form guide in IM settings form. +#: actions/smssettings.php:133 +msgid "Awaiting confirmation on this phone number." +msgstr "Ez a telefonszám ellenőrzésre vár." + +#. TRANS: Field label for SMS address input in SMS settings form. +#: actions/smssettings.php:142 +msgid "Confirmation code" +msgstr "" + +#. TRANS: Form field instructions in SMS settings form. +#: actions/smssettings.php:144 +msgid "Enter the code you received on your phone." +msgstr "Add meg a kódot amit a telefonodra kaptál." + +#. TRANS: Button label to confirm SMS confirmation code in SMS settings. +#: actions/smssettings.php:148 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Megerősítés" + +#. TRANS: Field label for SMS phone number input in SMS settings form. +#: actions/smssettings.php:153 +msgid "SMS phone number" +msgstr "SMS telefonszám" + +#. TRANS: SMS phone number input field instructions in SMS settings form. +#: actions/smssettings.php:156 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "" + +#. TRANS: Form legend for SMS preferences form. +#: actions/smssettings.php:195 +msgid "SMS preferences" +msgstr "" + +#. TRANS: Checkbox label in SMS preferences form. +#: actions/smssettings.php:201 +msgid "" +"Send me notices through SMS; I understand I may incur exorbitant charges " +"from my carrier." +msgstr "" + +#. TRANS: Confirmation message for successful SMS preferences save. +#: actions/smssettings.php:315 +msgid "SMS preferences saved." +msgstr "" + +#. TRANS: Message given saving SMS phone number without having provided one. +#: actions/smssettings.php:338 +msgid "No phone number." +msgstr "Nincs telefonszám." + +#. TRANS: Message given saving SMS phone number without having selected a carrier. +#: actions/smssettings.php:344 +msgid "No carrier selected." +msgstr "" + +#. TRANS: Message given saving SMS phone number that is already set. +#: actions/smssettings.php:352 +msgid "That is already your phone number." +msgstr "" + +#. TRANS: Message given saving SMS phone number that is already set for another user. +#: actions/smssettings.php:356 +msgid "That phone number already belongs to another user." +msgstr "" + +#. TRANS: Message given saving valid SMS phone number that is to be confirmed. +#: actions/smssettings.php:384 +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 "" + +#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. +#: actions/smssettings.php:413 +msgid "That is the wrong confirmation number." +msgstr "" + +#. TRANS: Message given after successfully canceling SMS phone number confirmation. +#: actions/smssettings.php:427 +msgid "SMS confirmation cancelled." +msgstr "" + +#. TRANS: Message given trying to remove an SMS phone number that is not +#. TRANS: registered for the active user. +#: actions/smssettings.php:448 +msgid "That is not your phone number." +msgstr "" + +#. TRANS: Message given after successfully removing a registered SMS phone number. +#: actions/smssettings.php:470 +msgid "The SMS phone number was removed." +msgstr "" + +#. TRANS: Label for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:511 +msgid "Mobile carrier" +msgstr "Mobilszolgáltató" + +#. TRANS: Default option for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:516 +msgid "Select a carrier" +msgstr "Válassz egy szolgáltatót" + +#. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. +#. TRANS: %s is an administrative contact's e-mail address. +#: actions/smssettings.php:525 +#, php-format +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 "" + +#. TRANS: Message given saving SMS phone number confirmation code without having provided one. +#: actions/smssettings.php:548 +msgid "No code entered" +msgstr "Nincs kód megadva" + +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:395 +msgid "Snapshots" +msgstr "Pillanatképek" + +#: actions/snapshotadminpanel.php:65 +msgid "Manage snapshot configuration" +msgstr "" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "" + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "" + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "" + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during web hit" +msgstr "" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Adat pillanatképek" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Gyakoriság" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL jelentése" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "" + +#: actions/snapshotadminpanel.php:248 +msgid "Save snapshot settings" +msgstr "" + +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 +msgid "You are not subscribed to that profile." +msgstr "" + +#. TRANS: Server error displayed when updating a subscription fails with a database error. +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:89 classes/Subscription.php:141 +msgid "Could not save subscription." +msgstr "" + +#: actions/subscribe.php:77 +msgid "This action only accepts POST requests." +msgstr "" + +#: actions/subscribe.php:117 +msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." +msgstr "" + +#: actions/subscribe.php:145 +msgid "Subscribed" +msgstr "Feliratkozott" + +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 +#, php-format +msgid "%s subscribers" +msgstr "" + +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 +msgid "These are the people who listen to your notices." +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 +#, php-format +msgid "These are the people who listen to %s's notices." +msgstr "Ezek azok az emberek, akik odafigyelnek %s híreire." + +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +msgid "" +"You have no subscribers. Try subscribing to people you know and they might " +"return the favor." +msgstr "" + +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 +#, php-format +msgid "%s has no subscribers. Want to be the first?" +msgstr "" + +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, php-format +msgid "" +"%s has no subscribers. Why not [register an account](%%%%action.register%%%" +"%) and be the first?" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 +msgid "These are the people whose notices you listen to." +msgstr "Ezek azok az emberek, akiknek a híreire odafigyelsz." + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 +#, php-format +msgid "These are the people whose notices %s listens to." +msgstr "" + +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 +#, php-format +msgid "" +"You're not listening to anyone's notices right now, try subscribing to " +"people you know. Try [people search](%%action.peoplesearch%%), look for " +"members in groups you're interested in and in our [featured users](%%action." +"featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " +"automatically subscribe to people you already follow there." +msgstr "" + +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format +msgid "%s is not listening to anyone." +msgstr "%s nem követ figyelemmel senkit." + +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%s Atom hírcsatornája" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 +msgid "Jabber" +msgstr "Jabber" + +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 +msgid "SMS" +msgstr "SMS" + +#: actions/tag.php:69 +#, php-format +msgid "Notices tagged with %1$s, page %2$d" +msgstr "" + +#: actions/tag.php:87 +#, php-format +msgid "Notice feed for tag %s (RSS 1.0)" +msgstr "%s címke RSS 1.0 hírcsatornája" + +#: actions/tag.php:93 +#, php-format +msgid "Notice feed for tag %s (RSS 2.0)" +msgstr "%s címke RSS 2.0 hírcsatornája" + +#: actions/tag.php:99 +#, php-format +msgid "Notice feed for tag %s (Atom)" +msgstr "%s címke Atom hírcsatornája" + +#: actions/tagother.php:39 +msgid "No ID argument." +msgstr "" + +#: actions/tagother.php:65 +#, php-format +msgid "Tag %s" +msgstr "" + +#: actions/tagother.php:77 lib/userprofile.php:76 +msgid "User profile" +msgstr "Felhasználói profil" + +#: actions/tagother.php:81 actions/userauthorization.php:132 +#: lib/userprofile.php:107 +msgid "Photo" +msgstr "Fénykép" + +#: actions/tagother.php:141 +msgid "Tag user" +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 +msgid "Could not save tags." +msgstr "" + +#: actions/tagother.php:236 +msgid "Use this form to add tags to your subscribers or subscriptions." +msgstr "" + +#: actions/tagrss.php:35 +msgid "No such tag." +msgstr "Nincs ilyen címke." + +#: actions/unblock.php:59 +msgid "You haven't blocked that user." +msgstr "" + +#: actions/unsandbox.php:72 +msgid "User is not sandboxed." +msgstr "" + +#: actions/unsilence.php:72 +msgid "User is not silenced." +msgstr "" + +#: actions/unsubscribe.php:77 +msgid "No profile ID in request." +msgstr "" + +#: actions/unsubscribe.php:98 +msgid "Unsubscribed" +msgstr "" + +#: actions/updateprofile.php:64 actions/userauthorization.php:337 +#, php-format +msgid "" +"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "" + +#. TRANS: User admin panel title +#: actions/useradminpanel.php:58 +msgctxt "TITLE" +msgid "User" +msgstr "" + +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" + +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 +msgid "Invalid bio limit. Must be numeric." +msgstr "" + +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Érvénytelen SSL szerver. A maximális hossz 255 karakter." + +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "" + +#. TRANS: Link description in user account settings menu. +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 +msgid "Profile" +msgstr "Profil" + +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 +msgid "Bio Limit" +msgstr "Bemutatkozás méretkorlátja" + +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 +msgid "Maximum length of a profile bio in characters." +msgstr "" + +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:231 +msgid "New users" +msgstr "Új felhasználók" + +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 +msgid "New user welcome" +msgstr "" + +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "A teljes név túl hosszú (legfeljebb 255 karakter lehet)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 +msgid "Default subscription" +msgstr "" + +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 +msgid "Automatically subscribe new users to this user." +msgstr "" + +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 +msgid "Invitations" +msgstr "Meghívások" + +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 +msgid "Invitations enabled" +msgstr "A meghívások engedélyezve vannak" + +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 +msgid "Whether to allow users to invite new users." +msgstr "" + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + +#: actions/userauthorization.php:105 +msgid "Authorize subscription" +msgstr "Feliratkozás engedélyezése" + +#: actions/userauthorization.php:110 +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 "" + +#. TRANS: Menu item for site administration +#: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 +msgid "License" +msgstr "Licenc" + +#: actions/userauthorization.php:217 +msgid "Accept" +msgstr "Elfogadás" + +#: actions/userauthorization.php:218 lib/subscribeform.php:115 +#: lib/subscribeform.php:139 +msgid "Subscribe to this user" +msgstr "" + +#: actions/userauthorization.php:219 +msgid "Reject" +msgstr "Visszautasítás" + +#: actions/userauthorization.php:220 +msgid "Reject this subscription" +msgstr "" + +#: actions/userauthorization.php:232 +msgid "No authorization request!" +msgstr "" + +#: actions/userauthorization.php:254 +msgid "Subscription authorized" +msgstr "" + +#: actions/userauthorization.php:256 +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 " +"subscription. Your subscription token is:" +msgstr "" + +#: actions/userauthorization.php:266 +msgid "Subscription rejected" +msgstr "" + +#: actions/userauthorization.php:268 +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 "" + +#: actions/userauthorization.php:303 +#, php-format +msgid "Listener URI ‘%s’ not found here." +msgstr "" + +#: actions/userauthorization.php:308 +#, php-format +msgid "Listenee URI ‘%s’ is too long." +msgstr "" + +#: actions/userauthorization.php:314 +#, php-format +msgid "Listenee URI ‘%s’ is a local user." +msgstr "" + +#: actions/userauthorization.php:329 +#, php-format +msgid "Profile URL ‘%s’ is for a local user." +msgstr "" + +#: actions/userauthorization.php:345 +#, php-format +msgid "Avatar URL ‘%s’ is not valid." +msgstr "" + +#: actions/userauthorization.php:350 +#, php-format +msgid "Can’t read avatar URL ‘%s’." +msgstr "" + +#: actions/userauthorization.php:355 +#, php-format +msgid "Wrong image type for avatar URL ‘%s’." +msgstr "" + +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 +msgid "Profile design" +msgstr "" + +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 +msgid "" +"Customize the way your profile looks with a background image and a colour " +"palette of your choice." +msgstr "" + +#: actions/userdesignsettings.php:282 +msgid "Enjoy your hotdog!" +msgstr "" + +#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. +#: actions/usergroups.php:66 +#, php-format +msgid "%1$s groups, page %2$d" +msgstr "" + +#: actions/usergroups.php:132 +msgid "Search for more groups" +msgstr "" + +#: actions/usergroups.php:159 +#, php-format +msgid "%s is not a member of any group." +msgstr "" + +#: actions/usergroups.php:164 +#, php-format +msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." +msgstr "" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom group notice feed. +#. TRANS: %1$s is a group name, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom user notice feed. +#. TRANS: %1$s is a user name, %2$s is a site name. +#: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 +#: lib/atomusernoticefeed.php:75 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + +#: actions/version.php:75 +#, php-format +msgid "StatusNet %s" +msgstr "" + +#: actions/version.php:155 +#, php-format +msgid "" +"This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " +"Inc. and contributors." +msgstr "" + +#: actions/version.php:163 +msgid "Contributors" +msgstr "Közreműködők" + +#: actions/version.php:170 +msgid "" +"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. " +msgstr "" + +#: actions/version.php:176 +msgid "" +"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. " +msgstr "" + +#: actions/version.php:182 +#, php-format +msgid "" +"You should have received a copy of the GNU Affero General Public License " +"along with this program. If not, see %s." +msgstr "" + +#: actions/version.php:191 +msgid "Plugins" +msgstr "" + +#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. +#: actions/version.php:198 lib/action.php:885 +msgid "Version" +msgstr "" + +#: actions/version.php:199 +msgid "Author(s)" +msgstr "Szerző(k)" + +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Kedvelem" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) az általad küldött hírt hozzáadta a kedvenceihez" + +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:156 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:188 +msgid "Robin thinks something is impossible." +msgstr "" + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, php-format +msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:276 classes/File.php:291 +msgid "Invalid filename." +msgstr "" + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:51 +msgid "Group join failed." +msgstr "" + +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:64 +msgid "Not part of group." +msgstr "" + +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:72 +msgid "Group leave failed." +msgstr "" + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Hiba a felhasználó mentésekor; érvénytelen." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Csatlakozzunk" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 +msgid "Could not update local group." +msgstr "" + +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 +#, php-format +msgid "Could not create login token for %s" +msgstr "" + +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:45 +msgid "You are banned from sending direct messages." +msgstr "" + +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:69 +msgid "Could not insert message." +msgstr "" + +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:80 +msgid "Could not update message with new URI." +msgstr "" + +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "" + +#. TRANS: Server exception. %s are the error details. +#: classes/Notice.php:193 +#, php-format +msgid "Database error inserting hashtag: %s" +msgstr "" + +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:270 +msgid "Problem saving notice. Too long." +msgstr "" + +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:275 +msgid "Problem saving notice. Unknown user." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:281 +msgid "" +"Too many notices too fast; take a breather and post again in a few minutes." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:288 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" + +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:296 +msgid "You are banned from posting notices on this site." +msgstr "" + +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:363 classes/Notice.php:390 +msgid "Problem saving notice." +msgstr "Probléma merült fel a hír mentése közben." + +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:1012 +msgid "Problem saving group inbox." +msgstr "" + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Nem sikerült menteni a profilt." + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: classes/Notice.php:1645 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s - %2$s" + +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:798 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:807 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "" + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:338 +msgid "Unable to save tag." +msgstr "" + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:77 lib/oauthstore.php:482 +msgid "You have been banned from subscribing." +msgstr "Eltiltottak a feliratkozástól." + +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:82 +msgid "Already subscribed!" +msgstr "Már feliratkoztál!" + +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:87 +msgid "User has blocked you." +msgstr "A felhasználó blokkolt." + +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:176 +msgid "Not subscribed!" +msgstr "Nem követed figyelemmel!" + +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:183 +msgid "Could not delete self-subscription." +msgstr "" + +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:211 +msgid "Could not delete subscription OMB token." +msgstr "" + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:223 +msgid "Could not delete subscription." +msgstr "" + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s feliratkozott a híreidre a %2$s webhelyen." + +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:395 +#, php-format +msgid "Welcome to %1$s, @%2$s!" +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:511 +msgid "Could not create group." +msgstr "Nem sikerült létrehozni a csoportot." + +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:521 +msgid "Could not set group URI." +msgstr "" + +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:544 +msgid "Could not set group membership." +msgstr "Nem sikerült beállítani a csoporttagságot." + +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:559 +msgid "Could not save local group info." +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:104 +msgid "Change your profile settings" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:111 +msgid "Upload an avatar" +msgstr "Avatar feltöltése" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:118 +msgid "Change your password" +msgstr "Változtasd meg a jelszavad" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:125 +msgid "Change email handling" +msgstr "Email kezelés megváltoztatása" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:132 +msgid "Design your profile" +msgstr "" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:139 +msgid "Other options" +msgstr "További opciók" + +#. TRANS: Link description in user account settings menu. +#: lib/accountsettingsaction.php:141 +msgid "Other" +msgstr "Más egyéb" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: lib/action.php:148 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" + +#. TRANS: Page title for a page without a title set. +#: lib/action.php:164 +msgid "Untitled page" +msgstr "Név nélküli oldal" + +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +msgid "Primary site navigation" +msgstr "Elsődleges navigáció" + +#. TRANS: Tooltip for main menu option "Personal" +#: lib/action.php:537 +msgctxt "TOOLTIP" +msgid "Personal profile and friends timeline" +msgstr "" + +#. TRANS: Main menu option when logged in for access to personal profile and friends timeline +#: lib/action.php:540 +msgctxt "MENU" +msgid "Personal" +msgstr "" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:542 +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Kontó" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:547 +msgctxt "TOOLTIP" +msgid "Connect to services" +msgstr "" + +#. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services +#: lib/action.php:550 +msgid "Connect" +msgstr "Kapcsolódás" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:553 +msgctxt "TOOLTIP" +msgid "Change site configuration" +msgstr "" + +#. TRANS: Main menu option when logged in and site admin for access to site configuration +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 +msgctxt "MENU" +msgid "Admin" +msgstr "" + +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:560 +#, php-format +msgctxt "TOOLTIP" +msgid "Invite friends and colleagues to join you on %s" +msgstr "" + +#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users +#: lib/action.php:563 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:569 +msgctxt "TOOLTIP" +msgid "Logout from the site" +msgstr "" + +#. TRANS: Main menu option when logged in to log out the current user +#: lib/action.php:572 +msgctxt "MENU" +msgid "Logout" +msgstr "" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:577 +msgctxt "TOOLTIP" +msgid "Create an account" +msgstr "" + +#. TRANS: Main menu option when not logged in to register a new account +#: lib/action.php:580 +msgctxt "MENU" +msgid "Register" +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:583 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:589 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "" + +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 +msgctxt "MENU" +msgid "Help" +msgstr "" + +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:595 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#. TRANS: Menu item for site administration +#: lib/action.php:620 lib/adminpanelaction.php:387 +msgid "Site notice" +msgstr "A webhely híre" + +#. TRANS: DT element for local views block. String is hidden in default CSS. +#: lib/action.php:687 +msgid "Local views" +msgstr "" + +#. TRANS: DT element for page notice. String is hidden in default CSS. +#: lib/action.php:757 +msgid "Page notice" +msgstr "" + +#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. +#: lib/action.php:858 +msgid "Secondary site navigation" +msgstr "Másodlagos navigáció" + +#. TRANS: Secondary navigation menu option leading to help on StatusNet. +#: lib/action.php:864 +msgid "Help" +msgstr "Súgó" + +#. TRANS: Secondary navigation menu option leading to text about StatusNet site. +#: lib/action.php:867 +msgid "About" +msgstr "Névjegy" + +#. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. +#: lib/action.php:870 +msgid "FAQ" +msgstr "GyIK" + +#. TRANS: Secondary navigation menu option leading to Terms of Service. +#: lib/action.php:875 +msgid "TOS" +msgstr "Felhasználási feltételek" + +#. TRANS: Secondary navigation menu option leading to privacy policy. +#: lib/action.php:879 +msgid "Privacy" +msgstr "" + +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 +msgid "Source" +msgstr "Forrás" + +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 +msgid "Contact" +msgstr "Kapcsolat" + +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 +msgid "Badge" +msgstr "" + +#. TRANS: DT element for StatusNet software license. +#: lib/action.php:921 +msgid "StatusNet software license" +msgstr "A StatusNet szoftver licence" + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 +#, php-format +msgid "" +"**%%site.name%%** is a microblogging service brought to you by [%%site." +"broughtby%%](%%site.broughtbyurl%%)." +msgstr "" + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. +#: lib/action.php:931 +#, php-format +msgid "**%%site.name%%** is a microblogging service." +msgstr "" + +#. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 +#, php-format +msgid "" +"It runs the [StatusNet](http://status.net/) microblogging software, version %" +"s, available under the [GNU Affero General Public License](http://www.fsf." +"org/licensing/licenses/agpl-3.0.html)." +msgstr "" + +#. TRANS: DT element for StatusNet site content license. +#: lib/action.php:954 +msgid "Site content license" +msgstr "A webhely tartalmára vonatkozó licenc" + +#. TRANS: Content license displayed when license is set to 'private'. +#. TRANS: %1$s is the site name. +#: lib/action.php:961 +#, php-format +msgid "Content and data of %1$s are private and confidential." +msgstr "" + +#. TRANS: Content license displayed when license is set to 'allrightsreserved'. +#. TRANS: %1$s is the copyright owner. +#: lib/action.php:968 +#, php-format +msgid "Content and data copyright by %1$s. All rights reserved." +msgstr "" + +#. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. +#: lib/action.php:972 +msgid "Content and data copyright by contributors. All rights reserved." +msgstr "" + +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 +#, php-format +msgid "All %1$s content and data are available under the %2$s license." +msgstr "" + +#. TRANS: DT element for pagination (previous/next, etc.). +#: lib/action.php:1340 +msgid "Pagination" +msgstr "" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: present than the currently displayed information. +#: lib/action.php:1351 +msgid "After" +msgstr "Utána" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: past than the currently displayed information. +#: lib/action.php:1361 +msgid "Before" +msgstr "Előtte" + +#. TRANS: Client exception thrown when a feed instance is a DOMDocument. +#: lib/activity.php:125 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "" + +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Fénykép" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 +msgid "Can't handle remote content yet." +msgstr "" + +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 +msgid "Can't handle embedded XML content yet." +msgstr "" + +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 +msgid "Can't handle embedded Base64 content yet." +msgstr "" + +#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. +#: lib/adminpanelaction.php:96 +msgid "You cannot make changes to this site." +msgstr "Nem tudsz változtatni ezen a webhelyen." + +#. TRANS: Client error message throw when a certain panel's settings cannot be changed. +#: lib/adminpanelaction.php:108 +msgid "Changes to that panel are not allowed." +msgstr "Azon a panelen nem szabad változtatni." + +#. TRANS: Client error message. +#: lib/adminpanelaction.php:222 +msgid "showForm() not implemented." +msgstr "" + +#. TRANS: Client error message +#: lib/adminpanelaction.php:250 +msgid "saveSettings() not implemented." +msgstr "" + +#. TRANS: Client error message thrown if design settings could not be deleted in +#. TRANS: the admin panel Design. +#: lib/adminpanelaction.php:274 +msgid "Unable to delete design setting." +msgstr "Nem sikerült törölni a megjelenés beállításait." + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:337 +msgid "Basic site configuration" +msgstr "A webhely elemi beállításai" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:339 +msgctxt "MENU" +msgid "Site" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:345 +msgid "Design configuration" +msgstr "A megjelenés beállításai" + +#. TRANS: Menu item for site administration +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 +msgctxt "MENU" +msgid "Design" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:353 +msgid "User configuration" +msgstr "A felhasználók beállításai" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 +msgid "User" +msgstr "Felhasználó" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:361 +msgid "Access configuration" +msgstr "A jogosultságok beállításai" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:369 +msgid "Paths configuration" +msgstr "Az útvonalak beállításai" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:377 +msgid "Sessions configuration" +msgstr "Munkamenetek beállításai" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:385 +msgid "Edit site notice" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:393 +msgid "Snapshots configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + +#. TRANS: Client error 401. +#: lib/apiauth.php:111 +msgid "API resource requires read-write access, but you only have read access." +msgstr "" + +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Nem sikerült létrehozni az álneveket." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Nem sikerült létrehozni az alkalmazást." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Nem sikerült az üzenetet feldolgozni." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:178 +msgid "Icon for this application" +msgstr "" + +#. TRANS: Form input field instructions. +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Jellemezd a csoportot vagy a témát %d karakterben" +msgstr[1] "Jellemezd a csoportot vagy a témát %d karakterben" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:205 +msgid "Describe your application" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:216 +msgid "URL of the homepage of this application" +msgstr "" + +#. TRANS: Form input field label. +#: lib/applicationeditform.php:218 +msgid "Source URL" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:225 +msgid "Organization responsible for this application" +msgstr "" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:234 +msgid "URL for the homepage of the organization" +msgstr "A szervezet honlapjának URL-je" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:243 +msgid "URL to redirect to after authentication" +msgstr "Hitelesítés után átirányítás erre az URL-re" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:271 +msgid "Browser" +msgstr "Böngésző" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:288 +msgid "Desktop" +msgstr "Asztal" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:290 +msgid "Type of application, browser or desktop" +msgstr "" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:314 +msgid "Read-only" +msgstr "Csak olvasható" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:334 +msgid "Read-write" +msgstr "Írható-olvasható" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:336 +msgid "Default access for this application: read-only, or read-write" +msgstr "" + +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 +msgid "Cancel" +msgstr "Mégse" + +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + +#. TRANS: Application access type +#: lib/applicationlist.php:260 +msgid "read-write" +msgstr "" + +#. TRANS: Application access type +#: lib/applicationlist.php:262 +msgid "read-only" +msgstr "" + +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 +#, php-format +msgid "Approved %1$s - \"%2$s\" access." +msgstr "" + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + +#. TRANS: Button label +#: lib/applicationlist.php:298 +msgctxt "BUTTON" +msgid "Revoke" +msgstr "" + +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:294 +msgid "Author" +msgstr "Szerző" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:308 +msgid "Provider" +msgstr "Szolgáltató" + +#. TRANS: Title. +#: lib/attachmentnoticesection.php:67 +msgid "Notices where this attachment appears" +msgstr "Hírek, ahol ez a melléklet megjelenik" + +#. TRANS: Title. +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "Címkék ehhez a melléklethez" + +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." +msgstr "A jelszó megváltoztatása sikertelen" + +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." +msgstr "A jelszó megváltoztatása nem engedélyezett" + +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokkolás" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 +msgid "Command results" +msgstr "" + +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax-hiba" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 +msgid "Command complete" +msgstr "" + +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 +msgid "Command failed" +msgstr "" + +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "" + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "" + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:128 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "" + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" + +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 +msgid "It does not make a lot of sense to nudge yourself!" +msgstr "" + +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "" + +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" +"Figyelemmel követ: %1$s\n" +"Figyelemmel követik: %2$s\n" +"Hírek: %3$s" + +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 +msgid "Notice marked as fave." +msgstr "A hír kedveltként van megjelölve." + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s - %2$s" + +#. TRANS: Whois output. %s is the full name of the queried user. +#: lib/command.php:430 +#, php-format +msgid "Fullname: %s" +msgstr "Teljes név: %s" + +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format +msgid "Location: %s" +msgstr "Helyszín: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, php-format +msgid "Homepage: %s" +msgstr "Honlap: %s" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:442 +#, php-format +msgid "About: %s" +msgstr "" + +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#. TRANS: Message given if content is too long. %1$sd is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." +msgstr[1] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." + +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +msgid "Error sending direct message." +msgstr "Hiba a közvetlen üzenet küldése közben." + +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "" + +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 +msgid "Error repeating notice." +msgstr "Hiba a hír ismétlésekor." + +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." +msgstr[1] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "" + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 +msgid "Error saving notice." +msgstr "Hiba a hír elmentésekor." + +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "" + +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" + +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 +#, php-format +msgid "Subscribed to %s." +msgstr "" + +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "" + +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "" + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +msgid "Command not yet implemented." +msgstr "" + +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +msgid "Notification off." +msgstr "Ne legyenek értesítések." + +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 +msgid "Can't turn off notification." +msgstr "" + +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +msgid "Notification on." +msgstr "Legyenek értesítések." + +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +msgid "Can't turn on notification." +msgstr "" + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "" + +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 +#, php-format +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "" + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" + +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 +msgid "You are not subscribed to anyone." +msgstr "Senkinek sem iratkoztál fel a híreire." + +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 +msgid "You are subscribed to this person:" +msgid_plural "You are subscribed to these people:" +msgstr[0] "Ezen személy híreire iratkoztál fel:" +msgstr[1] "Ezen emberek híreire iratkoztál fel:" + +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 +msgid "No one is subscribed to you." +msgstr "Senki sem követ figyelemmel." + +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 +msgid "This person is subscribed to you:" +msgid_plural "These people are subscribed to you:" +msgstr[0] "Ez a személy iratkozott fel a híreidre:" +msgstr[1] "Ezek az emberek iratkoztak fel a híreidre:" + +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 +msgid "You are not a member of any groups." +msgstr "Nem vagy tagja semmilyen csoportnak." + +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 +msgid "You are a member of this group:" +msgid_plural "You are a member of these groups:" +msgstr[0] "Ennek a csoportnak vagy tagja:" +msgstr[1] "Ezeknek a csoportoknak vagy tagja:" + +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow <nickname> - 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 <nickname> - unsubscribe from user\n" +"d <nickname> <text> - direct message to user\n" +"get <nickname> - get last notice from user\n" +"whois <nickname> - get profile info on user\n" +"lose <nickname> - force user to stop following you\n" +"fav <nickname> - add user's last notice as a 'fave'\n" +"fav #<notice_id> - add notice with the given id as a 'fave'\n" +"repeat #<notice_id> - repeat a notice with a given id\n" +"repeat <nickname> - repeat the last notice from user\n" +"reply #<notice_id> - reply to notice with a given id\n" +"reply <nickname> - reply to the last notice from user\n" +"join <group> - join group\n" +"login - Get a link to login to the web interface\n" +"drop <group> - leave group\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub <nickname> - same as 'follow'\n" +"unsub <nickname> - same as 'leave'\n" +"last <nickname> - same as 'get'\n" +"on <nickname> - not yet implemented.\n" +"off <nickname> - not yet implemented.\n" +"nudge <nickname> - remind a user to update.\n" +"invite <phone number> - not yet implemented.\n" +"track <word> - not yet implemented.\n" +"untrack <word> - 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" +msgstr "" + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "Nem találtunk konfigurációs fájlt. " + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "A következő helyeken kerestem konfigurációs fájlokat: " + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 +msgid "You may wish to run the installer to fix this." +msgstr "A telepítő futtatása kijavíthatja ezt." + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 +msgid "Go to the installer." +msgstr "Menj a telepítőhöz." + +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" +msgid "IM" +msgstr "" + +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 +msgid "Updates by instant messenger (IM)" +msgstr "" + +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 +msgid "Updates by SMS" +msgstr "" + +#. TRANS: Menu item for OuAth connection settings. +#: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" +msgid "Connections" +msgstr "Kapcsolatok" + +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +msgid "Authorized connected applications" +msgstr "" + +#: lib/dberroraction.php:59 +msgid "Database error" +msgstr "Adatbázishiba" + +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 +msgid "Upload file" +msgstr "Fájl feltöltése" + +#. TRANS: Instructions for form on profile design page. +#: lib/designsettings.php:109 +msgid "" +"You can upload your personal background image. The maximum file size is 2MB." +msgstr "" + +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Be" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Ki" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Alaphelyzet" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +msgid "Design defaults restored." +msgstr "" + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 +msgid "Disfavor this notice" +msgstr "Nem kedvelem ezt a hírt" + +#: lib/favorform.php:114 lib/favorform.php:143 +msgid "Favor this notice" +msgstr "Kedvelem ezt a hírt" + +#: lib/feed.php:84 +msgid "RSS 1.0" +msgstr "" + +#: lib/feed.php:86 +msgid "RSS 2.0" +msgstr "RSS 2.0" + +#: lib/feed.php:88 +msgid "Atom" +msgstr "Atom" + +#: lib/feed.php:90 +msgid "FOAF" +msgstr "" + +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" + +#: lib/galleryaction.php:121 +msgid "Filter tags" +msgstr "Szűrjük a címkéket" + +#: lib/galleryaction.php:131 +msgid "All" +msgstr "Összes" + +#: lib/galleryaction.php:139 +msgid "Select tag to filter" +msgstr "Válassz egy címkét amire szűrjünk" + +#: lib/galleryaction.php:140 +msgid "Tag" +msgstr "Címke" + +#: lib/galleryaction.php:141 +msgid "Choose a tag to narrow list" +msgstr "Válassz egy címkét hogy szűkítsük a listát" + +#: lib/galleryaction.php:143 +msgid "Go" +msgstr "Menjünk" + +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kisbetű vagy számjegy, nem lehet benne írásjel vagy szóköz" + +#: lib/groupeditform.php:163 +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." +msgstr "A csoporthoz vagy témához tartozó honlap illetve blog URL-je" + +#: lib/groupeditform.php:168 +msgid "Describe the group or topic" +msgstr "Jellemezd a csoportot vagy a témát" + +#: lib/groupeditform.php:170 +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Jellemezd a csoportot vagy a témát %d karakterben" +msgstr[1] "Jellemezd a csoportot vagy a témát %d karakterben" + +#: lib/groupeditform.php:182 +#, fuzzy +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "" +"A csoport földrajzi elhelyezkedése, ha van ilyen, pl. \"Város, Megye, Ország" +"\"" + +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Extra becenevek a csoport számára, vesszővel vagy szóközökkel elválasztva, " +"legfeljebb %d" +msgstr[1] "" +"Extra becenevek a csoport számára, vesszővel vagy szóközökkel elválasztva, " +"legfeljebb %d" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. +#: lib/groupsbymemberssection.php:71 +msgid "Groups with most members" +msgstr "A legtöbb tagból álló csoportok" + +#. TRANS: Title for groups with the most posts section. +#: lib/groupsbypostssection.php:71 +msgid "Groups with most posts" +msgstr "A legtöbb hírt küldött csoportok" + +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 +#, php-format +msgid "Tags in %s group's notices" +msgstr "Címkék a(z) %s csoport híreiben" + +#. TRANS: Client exception 406 +#: lib/htmloutputter.php:104 +msgid "This page is not available in a media type you accept" +msgstr "" + +#: lib/imagefile.php:72 +msgid "Unsupported image file format." +msgstr "Nem támogatott képformátum." + +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "Az a fájl túl nagy. A maximális fájlméret %s." + +#: lib/imagefile.php:95 +msgid "Partial upload." +msgstr "Részleges feltöltés." + +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 +msgid "System error uploading file." +msgstr "" + +#: lib/imagefile.php:111 +msgid "Not an image or corrupt file." +msgstr "" + +#: lib/imagefile.php:160 +msgid "Lost our file." +msgstr "Elvesztettük a fájlt." + +#: lib/imagefile.php:197 lib/imagefile.php:237 +msgid "Unknown file type" +msgstr "Ismeretlen fájltípus" + +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" + +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" + +#: lib/jabber.php:387 +#, php-format +msgid "[%s]" +msgstr "[%s]" + +#: lib/jabber.php:567 +#, php-format +msgid "Unknown inbox source %d." +msgstr "" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "Távozzunk" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "Bejelentkezés felhasználónévvel és jelszóval" + +#: lib/logingroupnav.php:86 +msgid "Sign up for a new account" +msgstr "Új kontó igénylése" + +#. TRANS: Subject for address confirmation email. +#: lib/mail.php:174 +msgid "Email address confirmation" +msgstr "E-mail cím megerősítése" + +#. TRANS: Body for address confirmation email. +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format +msgid "" +"Hey, %1$s.\n" +"\n" +"Someone just entered this email address on %2$s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%3$s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%2$s\n" +msgstr "" +"Heló, %s.\n" +"\n" +"Valaki épp most adta meg ezt az email címet a %s webhelyen.\n" +"\n" +"Ha te voltál, és meg szeretnéd erősíteni a bejegyzésed, használt ezt az URL-" +"t:\n" +"\n" +"%s\n" +"\n" +"Ha nem te voltál, egyszerűen hagyd ezt figyelmen kívül.\n" +"\n" +"Köszönjük a türelmed, \n" +"%s\n" + +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 +#, php-format +msgid "%1$s is now listening to your notices on %2$s." +msgstr "%1$s feliratkozott a híreidre a %2$s webhelyen." + +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 +#, php-format +msgid "" +"If you believe this account is being used abusively, you can block them from " +"your subscribers list and report as spam to site administrators at %s" +msgstr "" + +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%2$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %7$s\n" +msgstr "" +"%1$s feliratkozott a híreidre a %2$s webhelyen.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Őszinte híved,\n" +"%7$s.\n" +"\n" +"----\n" +"Az email címed és az üzenetekre vonatkozó beállításaid itt változtathatod " +"meg: %8$s\n" + +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format +msgid "Bio: %s" +msgstr "Bemutatkozás: %s" + +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, php-format +msgid "New email address for posting to %s" +msgstr "" + +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, php-format +msgid "" +"You have a new posting address on %1$s.\n" +"\n" +"Send email to %2$s to post new messages.\n" +"\n" +"More email instructions at %3$s.\n" +"\n" +"Faithfully yours,\n" +"%1$s" +msgstr "" + +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 +#, php-format +msgid "%s status" +msgstr "%s állapota" + +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 +msgid "SMS confirmation" +msgstr "SMS megerősítés" + +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 +#, php-format +msgid "%s: confirm you own this phone number with this code:" +msgstr "" + +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 +#, php-format +msgid "You've been nudged by %s" +msgstr "%s megbökött téged." + +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 +#, 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" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%4$s\n" +msgstr "" +"%1$s (%2$s) azon tűnődött, mi lehet veled mostanában, és arra hív, küldj " +"valami hírt.\n" +"\n" +"Úgyhogy hadd halljunk felőled :)\n" +"\n" +"%3$s\n" +"\n" +"Ne erre az email-re válaszolj; az nem jut el a címzetthez.\n" +"\n" +"Mély tisztelettel,\n" +"%4$s\n" + +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 +#, php-format +msgid "New private message from %s" +msgstr "Új privát üzenetet küldött neked %s" + +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%5$s\n" +msgstr "" +"%1$s (%2$s) privát üzenetet küldött neked:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"Itt válaszolhatsz az üzenetre:\n" +"\n" +"%4$s\n" +"\n" +"Ne erre az email-re válaszolj; az nem jut el a címzetthez.\n" +"\n" +"Mély tisztelettel,\n" +"%5$s\n" + +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%s (@%s) az általad küldött hírt hozzáadta a kedvenceihez" + +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 +#, php-format +msgid "" +"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" +"\n" +"The URL of your notice is:\n" +"\n" +"%3$s\n" +"\n" +"The text of your notice is:\n" +"\n" +"%4$s\n" +"\n" +"You can see the list of %1$s's favorites here:\n" +"\n" +"%5$s\n" +"\n" +"Faithfully yours,\n" +"%6$s\n" +msgstr "" +"%1$s (@%7$s) hozzáadta azt a hírt a kedvenceihez, amit innen küldtél: %2$s.\n" +"\n" +"Az általad küldött hír URL-je:\n" +"\n" +"%3$s\n" +"\n" +"És így szólt:\n" +"\n" +"%4$s\n" +"\n" +"%1$s kedvenceinek listáját itt láthatod:\n" +"\n" +"%5$s\n" +"\n" +"Őszinte híved,\n" +"%6$s\n" + +#. TRANS: Line in @-reply notification e-mail. %s is conversation URL. +#: lib/mail.php:672 +#, php-format +msgid "" +"The full conversation can be read here:\n" +"\n" +"\t%s" +msgstr "" + +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s (@%s) figyelmedbe ajánlott egy hírt" + +#. TRANS: Body of @-reply notification e-mail. +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 +#, php-format +msgid "" +"%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" +"\n" +"The notice is here:\n" +"\n" +"\t%3$s\n" +"\n" +"It reads:\n" +"\n" +"\t%4$s\n" +"\n" +"%5$sYou can reply back here:\n" +"\n" +"\t%6$s\n" +"\n" +"The list of all @-replies for you here:\n" +"\n" +"%7$s\n" +"\n" +"Faithfully yours,\n" +"%2$s\n" +"\n" +"P.S. You can turn off these email notifications here: %8$s\n" +msgstr "" + +#: lib/mailbox.php:89 +msgid "Only the user can read their own mailboxes." +msgstr "Csak a felhasználó láthatja a saját postaládáját." + +#: 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 "" +"Nem jött személyes üzeneted. Küldhetsz privát üzeneteket, hogy párbeszédbe " +"keveredj más felhasználókkal. Olyan üzenetet küldhetnek neked emberek, amit " +"csak te láthatsz." + +#: lib/mailbox.php:228 lib/noticelist.php:521 +msgid "from" +msgstr "írta" + +#: lib/mailhandler.php:37 +msgid "Could not parse message." +msgstr "Nem sikerült az üzenetet feldolgozni." + +#: lib/mailhandler.php:42 +msgid "Not a registered user." +msgstr "Nem egy regisztrált felhasználó." + +#: lib/mailhandler.php:46 +msgid "Sorry, that is not your incoming email address." +msgstr "Sajnos az nem a te bejövő email-címed." + +#: lib/mailhandler.php:50 +msgid "Sorry, no incoming email allowed." +msgstr "Sajnos a bejövő email nincs engedélyezve." + +#: lib/mailhandler.php:229 +#, php-format +msgid "Unsupported message type: %s" +msgstr "Nem támogatott üzenet-típus: %s" + +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 +msgid "There was a database error while saving your file. Please try again." +msgstr "Adatbázis-hiba történt a fájlod elmentése közben. Kérlek próbáld újra." + +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 +msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." +msgstr "" + +#. TRANS: Client exception. +#: lib/mediafile.php:200 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form." +msgstr "" + +#. TRANS: Client exception. +#: lib/mediafile.php:206 +msgid "The uploaded file was only partially uploaded." +msgstr "A feltöltött fájl csak részben van feltöltve." + +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 +msgid "Missing a temporary folder." +msgstr "Hiányzik egy ideiglenes mappa." + +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 +msgid "Failed to write file to disk." +msgstr "Nem sikerült a fájlt lemezre írni." + +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 +msgid "File upload stopped by extension." +msgstr "A fájl feltöltése megszakadt a kiterjedése/kiterjesztése miatt." + +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 +msgid "File exceeds user's quota." +msgstr "A fájl mérete meghaladja a felhasználónak megengedettet." + +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 +msgid "File could not be moved to destination directory." +msgstr "Nem sikerült a fájlt áthelyezni a célkönyvtárba." + +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 +msgid "Could not determine file's MIME type." +msgstr "Nem sikerült a fájl MIME-típusát megállapítani." + +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 +#, php-format +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" + +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 +#, php-format +msgid "\"%s\" is not a supported file type on this server." +msgstr "" + +#: lib/messageform.php:120 +msgid "Send a direct notice" +msgstr "Küldjünk egy üzenetet közvetlenül" + +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Válassz egy szolgáltatót" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Nem követed figyelemmel!" + +#: lib/messageform.php:153 +msgid "To" +msgstr "Címzett" + +#: lib/messageform.php:166 lib/noticeform.php:186 +msgid "Available characters" +msgstr "Használható karakterek" + +#: lib/messageform.php:185 lib/noticeform.php:237 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "A becenév csak kisbetűket és számokat tartalmazhat, szóközök nélkül." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "Küldjünk egy hírt" + +#: lib/noticeform.php:174 +#, php-format +msgid "What's up, %s?" +msgstr "Mi hír, %s?" + +#: lib/noticeform.php:193 +msgid "Attach" +msgstr "Csatolás" + +#: lib/noticeform.php:197 +msgid "Attach a file" +msgstr "Csatoljunk egy állományt" + +#: lib/noticeform.php:213 +msgid "Share my location" +msgstr "Tegyük közzé a hollétemet" + +#: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Ne tegyük közzé a hollétemet" + +#: lib/noticeform.php:217 +msgid "" +"Sorry, retrieving your geo location is taking longer than expected, please " +"try again later" +msgstr "" + +#. TRANS: Used in coordinates as abbreviation of north +#: lib/noticelist.php:451 +msgid "N" +msgstr "É" + +#. TRANS: Used in coordinates as abbreviation of south +#: lib/noticelist.php:453 +msgid "S" +msgstr "D" + +#. TRANS: Used in coordinates as abbreviation of east +#: lib/noticelist.php:455 +msgid "E" +msgstr "K" + +#. TRANS: Used in coordinates as abbreviation of west +#: lib/noticelist.php:457 +msgid "W" +msgstr "Ny" + +#: lib/noticelist.php:459 +#, php-format +msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" +msgstr "" + +#: lib/noticelist.php:468 +msgid "at" +msgstr "" + +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 +msgid "in context" +msgstr "előzmény" + +#: lib/noticelist.php:618 +msgid "Repeated by" +msgstr "Megismételte:" + +#: lib/noticelist.php:645 +msgid "Reply to this notice" +msgstr "Válaszoljunk erre a hírre" + +#: lib/noticelist.php:646 +msgid "Reply" +msgstr "Válasz" + +#: lib/noticelist.php:690 +msgid "Notice repeated" +msgstr "A hírt megismételtük" + +#: lib/nudgeform.php:116 +msgid "Nudge this user" +msgstr "Bökjük meg ezt a felhasználót" + +#: lib/nudgeform.php:128 +msgid "Nudge" +msgstr "Megbök" + +#: lib/nudgeform.php:128 +msgid "Send a nudge to this user" +msgstr "Bökjük meg ezt a felhasználót" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" + +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" + +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" + +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" + +#: lib/oauthstore.php:507 +msgid "Couldn't insert new subscription." +msgstr "" + +#: lib/personalgroupnav.php:102 +msgid "Personal" +msgstr "Személyes" + +#: lib/personalgroupnav.php:107 +msgid "Replies" +msgstr "Válaszok" + +#: lib/personalgroupnav.php:117 +msgid "Favorites" +msgstr "Kedvencek" + +#: lib/personalgroupnav.php:128 +msgid "Inbox" +msgstr "" + +#: lib/personalgroupnav.php:129 +msgid "Your incoming messages" +msgstr "A bejövő üzeneteid" + +#: lib/personalgroupnav.php:133 +msgid "Outbox" +msgstr "" + +#: lib/personalgroupnav.php:134 +msgid "Your sent messages" +msgstr "A küldött üzeneteid" + +#: lib/personaltagcloudsection.php:56 +#, php-format +msgid "Tags in %s's notices" +msgstr "Címkék %s híreiben" + +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 +msgid "Unknown" +msgstr "" + +#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 +msgid "Subscriptions" +msgstr "Feliratkozások" + +#: lib/profileaction.php:126 +msgid "All subscriptions" +msgstr "Összes feliratkozás" + +#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 +msgid "Subscribers" +msgstr "Feliratkozók" + +#: lib/profileaction.php:161 +msgid "All subscribers" +msgstr "Minden feliratkozott" + +#: lib/profileaction.php:191 +msgid "User ID" +msgstr "Felhasználói azonosító" + +#: lib/profileaction.php:196 +msgid "Member since" +msgstr "Tagság kezdete:" + +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:235 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:264 +msgid "All groups" +msgstr "Összes csoport" + +#: lib/profileformaction.php:123 +msgid "Unimplemented method." +msgstr "" + +#: lib/publicgroupnav.php:78 +msgid "Public" +msgstr "" + +#: lib/publicgroupnav.php:82 +msgid "User groups" +msgstr "A felhasználó csoportjai" + +#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 +msgid "Recent tags" +msgstr "" + +#: lib/publicgroupnav.php:88 +msgid "Featured" +msgstr "" + +#: lib/publicgroupnav.php:92 +msgid "Popular" +msgstr "Népszerű" + +#: lib/redirectingaction.php:95 +msgid "No return-to arguments." +msgstr "" + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "Megismételjük ezt a hírt?" + +#: lib/repeatform.php:132 +msgid "Yes" +msgstr "Igen" + +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "Ismételjük meg ezt a hírt" + +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Az API-metódus nem található." + +#: lib/sandboxform.php:67 +msgid "Sandbox" +msgstr "Homokozó" + +#: lib/sandboxform.php:78 +msgid "Sandbox this user" +msgstr "" + +#. TRANS: Fieldset legend for the search form. +#: lib/searchaction.php:120 +msgid "Search site" +msgstr "" + +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 +msgid "Keyword(s)" +msgstr "" + +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" +msgid "Search" +msgstr "" + +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 +msgid "Search help" +msgstr "" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "" + +#: lib/searchgroupnav.php:81 +msgid "Find people on this site" +msgstr "Emberek keresése az oldalon" + +#: lib/searchgroupnav.php:83 +msgid "Find content of notices" +msgstr "Keressünk a hírek tartalmában" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "Csoportok keresése az oldalon" + +#: lib/section.php:89 +msgid "Untitled section" +msgstr "Névtelen szakasz" + +#: lib/section.php:106 +msgid "More..." +msgstr "Tovább…" + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "" + +#: lib/silenceform.php:78 +msgid "Silence this user" +msgstr "" + +#: lib/subgroupnav.php:83 +#, php-format +msgid "People %s subscribes to" +msgstr "" + +#: lib/subgroupnav.php:91 +#, php-format +msgid "People subscribed to %s" +msgstr "" + +#: lib/subgroupnav.php:99 +#, php-format +msgid "Groups %s is a member of" +msgstr "" + +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Meghívás" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "" + +#: lib/subscriberspeopleselftagcloudsection.php:48 +#: lib/subscriptionspeopleselftagcloudsection.php:48 +msgid "People Tagcloud as self-tagged" +msgstr "" + +#: lib/subscriberspeopletagcloudsection.php:48 +#: lib/subscriptionspeopletagcloudsection.php:48 +msgid "People Tagcloud as tagged" +msgstr "" + +#: lib/tagcloudsection.php:56 +msgid "None" +msgstr "" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Érvénytelen megjegyzéstartalom." + +#: lib/themeuploader.php:50 +msgid "This server cannot handle theme uploads without ZIP support." +msgstr "" + +#: lib/themeuploader.php:58 lib/themeuploader.php:61 +msgid "The theme file is missing or the upload failed." +msgstr "" + +#: lib/themeuploader.php:91 lib/themeuploader.php:102 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 +msgid "Failed saving theme." +msgstr "" + +#: lib/themeuploader.php:147 +msgid "Invalid theme: bad directory structure." +msgstr "" + +#: lib/themeuploader.php:166 +#, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" + +#: lib/themeuploader.php:179 +msgid "Invalid theme archive: missing file css/display.css" +msgstr "" + +#: lib/themeuploader.php:219 +msgid "" +"Theme contains invalid file or folder name. Stick with ASCII letters, " +"digits, underscore, and minus sign." +msgstr "" + +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 +#, php-format +msgid "Theme contains file of type '.%s', which is not allowed." +msgstr "" + +#: lib/themeuploader.php:260 +msgid "Error opening theme archive." +msgstr "" + +#: lib/topposterssection.php:74 +msgid "Top posters" +msgstr "" + +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Blokk feloldása" + +#: lib/unsandboxform.php:69 +msgid "Unsandbox" +msgstr "" + +#: lib/unsandboxform.php:80 +msgid "Unsandbox this user" +msgstr "" + +#: lib/unsilenceform.php:67 +msgid "Unsilence" +msgstr "" + +#: lib/unsilenceform.php:78 +msgid "Unsilence this user" +msgstr "" + +#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +msgid "Unsubscribe from this user" +msgstr "" + +#: lib/unsubscribeform.php:137 +msgid "Unsubscribe" +msgstr "" + +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "A felhasználónak nincs profilja." + +#: lib/userprofile.php:119 +msgid "Edit Avatar" +msgstr "" + +#: lib/userprofile.php:236 lib/userprofile.php:250 +msgid "User actions" +msgstr "Felhasználói műveletek" + +#: lib/userprofile.php:239 +msgid "User deletion in progress..." +msgstr "" + +#: lib/userprofile.php:265 +msgid "Edit profile settings" +msgstr "" + +#: lib/userprofile.php:266 +msgid "Edit" +msgstr "Szerkesztés" + +#: lib/userprofile.php:289 +msgid "Send a direct message to this user" +msgstr "" + +#: lib/userprofile.php:290 +msgid "Message" +msgstr "Üzenet" + +#: lib/userprofile.php:331 +msgid "Moderate" +msgstr "Moderálás" + +#: lib/userprofile.php:369 +msgid "User role" +msgstr "Felhasználói szerepkör" + +#: lib/userprofile.php:371 +msgctxt "role" +msgid "Administrator" +msgstr "Adminisztrátor" + +#: lib/userprofile.php:372 +msgctxt "role" +msgid "Moderator" +msgstr "Moderátor" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1306 +msgid "a few seconds ago" +msgstr "pár másodperce" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1309 +msgid "about a minute ago" +msgstr "körülbelül egy perce" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1313 +#, php-format +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1316 +msgid "about an hour ago" +msgstr "körülbelül egy órája" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1320 +#, php-format +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1323 +msgid "about a day ago" +msgstr "körülbelül egy napja" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1327 +#, php-format +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1330 +msgid "about a month ago" +msgstr "körülbelül egy hónapja" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1334 +#, php-format +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1337 +msgid "about a year ago" +msgstr "körülbelül egy éve" + +#: lib/webcolor.php:80 +#, php-format +msgid "%s is not a valid color!" +msgstr "" + +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "" + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." +msgstr[1] "Az túl hosszú. Egy hír legfeljebb %d karakterből állhat." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Érvénytelen méret." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index ccde993d4a..e21225d63a 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -1,153 +1,192 @@ -# Translation of StatusNet to Interlingua +# Translation of StatusNet - Core to Interlingua (Interlingua) +# Expored from translatewiki.net # -# Author@translatewiki.net: McDutchie +# Author: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:12:24+0000\n" -"Language-Team: Interlingua\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:56+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Accesso" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Configurationes de accesso al sito" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registration" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Prohibir al usatores anonyme (sin session aperte) de vider le sito?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Private" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Permitter le registration solmente al invitatos." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Solmente per invitation" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Disactivar le creation de nove contos." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Claudite" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Salveguardar configurationes de accesso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Salveguardar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Pagina non existe." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." -msgstr "Usator non existe." +msgstr "Iste usator non existe." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amicos, pagina %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amicos" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Syndication pro le amicos de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Syndication pro le amicos de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Syndication pro le amicos de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -155,7 +194,9 @@ msgstr "" "Isto es le chronologia pro %s e su amicos, ma necuno ha ancora publicate " "alique." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -164,8 +205,9 @@ msgstr "" "Proba subscriber te a altere personas, [face te membro de un gruppo](%%" "action.groups%%) o publica alique tu mesme." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -174,7 +216,11 @@ msgstr "" "Tu pote tentar [dar un pulsata a %1$s](../%2$s) in su profilo o [publicar un " "message a su attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -183,59 +229,80 @@ msgstr "" "Proque non [registrar un conto](%%%%action.register%%%%) e postea dar un " "pulsata a %s o publicar un message a su attention." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Tu e amicos" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Actualisationes de %1$s e su amicos in %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Methodo API non trovate." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Iste methodo require un POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -243,349 +310,527 @@ msgstr "" "Tu debe specificar un parametro nominate 'device' con un del valores: sms, " "im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Non poteva actualisar le usator." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Le usator non ha un profilo." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Non poteva salveguardar le profilo." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Le servitor non ha potite tractar tante datos POST (%s byte) a causa de su " +"configuration actual." +msgstr[1] "" "Le servitor non ha potite tractar tante datos POST (%s bytes) a causa de su " "configuration actual." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Impossibile salveguardar le configurationes del apparentia." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Non poteva actualisar le apparentia." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Principal" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Chronologia de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Subscriptiones de %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favorites" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membros del gruppo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Tu non pote blocar te mesme!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Le blocada del usator ha fallite." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Le disblocada del usator ha fallite." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Messages directe de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Tote le messages directe inviate de %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Messages directe a %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Tote le messages directe inviate a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Message sin texto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Isto es troppo longe. Le maximo es %d characteres." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +"Isto es troppo longe. Le dimension maxime de messages es %d characteres." +msgstr[1] "" +"Isto es troppo longe. Le dimension maxime de messages es %d characteres." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Usator destinatario non trovate." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Non pote inviar messages directe a usatores que non es tu amicos." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Non invia un message a te mesme; il suffice susurrar lo discretemente." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Nulle stato trovate con iste ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Iste stato es ja favorite." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Non poteva crear le favorite." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Iste stato non es favorite." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Non poteva deler le favorite." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Non poteva sequer le usator: profilo non trovate." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Non poteva sequer le usator: %s es ja in tu lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Non poteva cessar de sequer le usator: Usator non trovate." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Tu non pote cessar de sequer te mesme." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "Duo IDs o pseudonymos valide debe esser fornite." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Non poteva determinar le usator de origine." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Non poteva trovar le usator de destination." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Pseudonymo ja in uso. Proba un altere." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Non un pseudonymo valide." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Le pagina personal non es un URL valide." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Le nomine complete es troppo longe (max. 255 characteres)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Le nomine complete es troppo longe (maximo 255 characteres)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Description es troppo longe (max %d charachteres)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Description es troppo longe (maximo %d characteres)." +msgstr[1] "Description es troppo longe (maximo %d characteres)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Loco es troppo longe (max. 255 characteres)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Loco es troppo longe (maximo 255 characteres)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Troppo de aliases! Maximo: %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Troppo de aliases! Solmente un es permittite." +msgstr[1] "Troppo de aliases! Maximo permittite: %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Alias invalide: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Le alias \"%s\" es ja in uso. Proba un altere." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Le alias non pote esser identic al pseudonymo." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Gruppo non trovate." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Tu es ja membro de iste gruppo." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Le administrator te ha blocate de iste gruppo." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Tu non es membro de iste gruppo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Non poteva remover le usator %1$s del gruppo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Gruppos de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Gruppos de %1$s del quales %2$s es membro." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Gruppos de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "gruppos in %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Le incargamento ha fallite." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Indicio de requesta o verificator invalide." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Nulle parametro oauth_token fornite." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Indicio invalide." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Indicio de requesta invalide." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Indicio de requesta jam autorisate." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nomine de usator o contrasigno invalide!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" -"Error del base de datos durante le deletion del usator del application OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" -"Error del base de datos durante le insertion del usator del application " -"OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Le indicio de requesta %s ha essite autorisate. Per favor excambia lo pro un " -"indicio de accesso." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Le indicio de requesta %s ha essite refusate e revocate." +"Error del base de datos durante le insertion de oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Submission de formulario inexpectate." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Un application vole connecter se a tu conto" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permitter o refusar accesso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Un application vole poter <strong>%3$s</strong> le datos de tu conto de %4" +"$s. Tu debe solmente dar accesso a tu conto de %4$s a tertie personas in le " +"quales tu ha confidentia." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -596,245 +841,631 @@ msgstr "" "<strong>%3$s</strong> le datos de tu conto de %4$s. Tu debe solmente dar " "accesso a tu conto de %4$s a tertie personas in le quales tu ha confidentia." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Conto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Pseudonymo" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Contrasigno" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Refusar" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancellar" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Permitter" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Permitter o refusar accesso al informationes de tu conto." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autorisar le accesso al informationes de tu conto." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Autorisation cancellate." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Le indicio de requesta %s ha essite revocate." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Application autorisate con successo" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Per favor retorna al application e entra le sequente codice de securitate " +"pro completar le processo." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Autorisation de %s succedite" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Per favor retorna a %s e entra le sequente codice de securitate pro " +"completar le processo." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Iste methodo require un commando POST o DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Tu non pote deler le stato de un altere usator." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Nota non trovate." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Non pote repeter tu proprie nota." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Iste nota ha ja essite repetite." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "Methodo HTTP non supportate." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Formato non supportate: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Stato delite." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Nulle stato trovate con iste ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Le deletion es solmente possibile con le formato Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Non pote deler iste nota." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Nota %d delite" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Le cliente debe fornir un parametro 'status' con un valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" -"Isto es troppo longe. Le longitude maximal del notas es %d characteres." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" +"Isto es troppo longe. Le longitude maximal de notas es %d character." +msgstr[1] "" +"Isto es troppo longe. Le longitude maximal de notas es %d characteres." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Non trovate." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Nota genitor non trovate." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" -"Le longitude maximal del notas es %d characteres, includente le URL " -"adjungite." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Le longitude maximal de notas es %d character, includente le URL adjungite." +msgstr[1] "" +"Le longitude maximal de notas es %d characteres, includente le URL adjungite." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato non supportate." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favorites de %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s actualisationes favoritisate per %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s actualisationes favoritisate per %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Non poteva generar un syndication pro le gruppo %s." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualisationes que mentiona %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" "Actualisationes de %1$s que responde al actualisationes de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Chronologia public de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Actualisationes de totes in %s!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Non implementate." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetite a %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repetitiones de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas con etiquetta %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualisationes con etiquetta %1$s in %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Solmente le usator pote adder cosas a su proprie chronologia." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Solmente acceptar AtomPub pro syndicationes in Atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "Message Atom debe esser un entrata Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "Message Atom debe esser un entrata Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "Message Atom debe esser un entrata Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Solmente le activitates POST es possibile." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Impossibile manear le typo de objecto de activitate \"%s\"" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Cercar in contento de notas" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Un nota con le URI \"%s\" jam existe." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Message AtomPub con URI de attention incognite %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Methodo API in construction." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Usator non trovate." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Profilo non existe." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Non poteva inserer nove subscription." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Solmente le activitates POST es possibile." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Solmente le activitates POST es possibile." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Incognite" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Adder al favorites" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Profilo non existe." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membros del gruppo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Gruppos del quales %s es membro" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Solmente le activitates POST es possibile." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Incognite" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Tote le membros" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "File non existe." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Non poteva deler le favorite." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Gruppo non existe." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Tote le membros" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Methodo HTTP non supportate." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Profilo non existe." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Tu non es subscribite a iste profilo." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Non poteva deler auto-subscription." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Personas qui seque %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Solmente le activitates POST es possibile." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Typo de file incognite" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Annexo non existe." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Nulle pseudonymo." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Nulle dimension." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Dimension invalide." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Tu pote incargar tu avatar personal. Le dimension maximal del file es %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Usator sin profilo correspondente" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuration del avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Previsualisation" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Deler" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Incargar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Taliar" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Nulle file incargate." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Selige un area quadrate del imagine pro facer lo tu avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Datos del file perdite." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar actualisate." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Actualisation del avatar fallite." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar delite." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Tu ha ja blocate iste usator." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blocar usator" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -846,175 +1477,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Non blocar iste usator" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Si" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blocar iste usator" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Falleva de salveguardar le information del blocada." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Gruppo non existe." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s profilos blocate" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profilos blocate, pagina %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Un lista del usatores excludite del membrato de iste gruppo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Disblocar le usator del gruppo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Disblocar" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Disblocar iste usator" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Publicar in %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Nulle codice de confirmation." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Codice de confirmation non trovate." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Iste codice de confirmation non es pro te!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Le typo de adresse %s non es recognoscite." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Iste adresse ha ja essite confirmate." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Non poteva actualisar usator." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Non poteva deler confirmation de e-mail." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Non poteva deler le confirmation de adresse." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmar adresse" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Le adresse \"%s\" ha essite confirmate pro tu conto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversation" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Tu debe aperir un session pro deler un application." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Application non trovate." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Tu non es le proprietario de iste application." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Il habeva un problema con tu indicio de session." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Deler application" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1025,31 +1700,88 @@ msgstr "" "de usator." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Non deler iste application" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Deler iste application" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Tu debe aperir un session pro deler un gruppo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nulle pseudonymo o ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Tu non ha le permission de deler iste gruppo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Non poteva deler le gruppo %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Deleva gruppo %s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Deler gruppo" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Es tu secur de voler deler iste gruppo? Isto radera tote le datos super le " +"gruppo del base de datos, sin copia de reserva. Le messages public in iste " +"gruppo restara totevia in le chronologias individual." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Non deler iste gruppo" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Deler iste gruppo" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Tu non ha aperite un session." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Non pote deler iste nota." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1057,21 +1789,24 @@ msgstr "" "Tu es super le puncto de deler permanentemente un nota. Un vice facite, isto " "non pote esser disfacite." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Deler nota" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Es tu secur de voler deler iste nota?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Non deler iste nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1102,64 +1837,73 @@ msgstr "Deler iste usator" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Apparentia" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Configuration del apparentia de iste sito StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Configuration del apparentia de iste sito StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL de logotypo invalide." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "URL de logotypo SSL invalide." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Thema non disponibile: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Cambiar logotypo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logotypo del sito" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logotypo SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Cambiar thema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Thema del sito" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Le thema de apparentia pro le sito." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Apparentia personalisate" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" "Es possibile incargar un apparentia personalisate de StatusNet in un " "archivo .ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Cambiar imagine de fundo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fundo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1169,75 +1913,84 @@ msgstr "" "file es %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Active" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Non active" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Activar o disactivar le imagine de fundo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Tegular le imagine de fundo" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Cambiar colores" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contento" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra lateral" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Ligamines" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avantiate" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalisate" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Usar predefinitiones" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaurar apparentias predefinite" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Revenir al predefinitiones" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Salveguardar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Salveguardar apparentia" @@ -1254,109 +2007,129 @@ msgstr "Adder al favorites" msgid "No such document \"%s\"" msgstr "Le documento \"%s\" non existe." -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Modificar application" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Tu debe aperir un session pro modificar un application." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Application non trovate." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Usa iste formulario pro modificar le application." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Le nomine es requirite." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." -msgstr "Le nomine es troppo longe (max. 255 characteres)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "Le nomine es troppo longe (maximo 255 characteres)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Nomine ja in uso. Proba un altere." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Le description es requirite." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Le URL de origine es troppo longe." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Le URL de origine non es valide." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Le organisation es requirite." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "Le organisation es troppo longe (max. 255 characteres)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "Le organisation es troppo longe (maximo 255 characteres)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Le sito web del organisation es requirite." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." -msgstr "Le reappello (callback) es troppo longe." +msgstr "Le appello de retorno es troppo longe." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." -msgstr "Le URL de reappello (callback) non es valide." +msgstr "Le URL de retorno non es valide." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Non poteva actualisar application." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Modificar gruppo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Tu debe aperir un session pro crear un gruppo." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Tu debe esser administrator pro modificar le gruppo." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Usa iste formulario pro modificar le gruppo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "description es troppo longe (max %d chars)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias invalide: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Non poteva actualisar gruppo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Non poteva crear aliases." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Optiones salveguardate." @@ -1374,12 +2147,12 @@ msgstr "Configurar como reciper e-mail de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Adresse de e-mail" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Adresse de e-mail actualmente confirmate." @@ -1388,14 +2161,14 @@ msgstr "Adresse de e-mail actualmente confirmate." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Remover" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1403,25 +2176,19 @@ msgstr "" "Attende confirmation de iste adresse. Verifica tu cassa de entrata (e de " "spam!) pro un message con ulterior instructiones." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancellar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Le adresse de e-mail, como \"nomine@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1429,111 +2196,118 @@ msgstr "Adder" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "E-mail entrante" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Io vole publicar notas per e-mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Invia e-mail a iste adresse pro publicar nove notas." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Face un nove adresse de e-mail per le qual publicar; cancella le vetule." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nove" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferentias de e-mail" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Inviar me notificationes de nove subscriptiones per e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Inviar me e-mail quando alcuno adde mi nota al favorites." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Inviar me e-mail quando alcuno me invia un message private." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Inviar me e-mail quando alcuno me invia un \"responsa @\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Permitte que amicos me pulsa e me invia e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Io vole publicar notas per e-mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publicar un MicroID pro mi adresse de e-mail." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Preferentias de e-mail salveguardate." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Nulle adresse de e-mail." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Non pote normalisar iste adresse de e-mail" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adresse de e-mail invalide." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Isto es ja tu adresse de e-mail." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Iste adresse de e-mail pertine ja a un altere usator." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Non poteva inserer le codice de confirmation." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1545,50 +2319,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Nulle confirmation pendente a cancellar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Iste adresse de e-mail es erronee." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Non poteva deler confirmation de e-mail." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Confirmation de e-mail cancellate." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Isto non es tu adresse de e-mail." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Le adresse de e-mail ha essite removite." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Nulle adresse de e-mail entrante." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Non poteva actualisar le datos del usator." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Adresse de e-mail entrante removite." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nove adresse de e-mail entrante addite." @@ -1596,11 +2376,11 @@ msgstr "Nove adresse de e-mail entrante addite." msgid "This notice is already a favorite!" msgstr "Iste nota es ja favorite!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Disfavorir favorite" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Notas popular" @@ -1637,7 +2417,7 @@ msgstr "" "nota a tu favorites!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Notas favorite de %s" @@ -1706,7 +2486,7 @@ msgstr "Non poteva converter le indicio de requesta in un indicio de accesso." msgid "Remote service uses unknown version of OMB protocol." msgstr "Le servicio remote usa un version incognite del protocollo OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Error durante le actualisation del profilo remote." @@ -1734,19 +2514,23 @@ msgstr "Tu non pote conceder rolos a usatores in iste sito." msgid "User already has this role." msgstr "Le usator ha ja iste rolo." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Nulle profilo specificate." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Non existe un profilo con iste ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Nulle gruppo specificate." @@ -1763,7 +2547,7 @@ msgstr "Le usator es ja blocate del gruppo." msgid "User is not a member of group." msgstr "Le usator non es membro del gruppo." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Blocar usator del gruppo" @@ -1812,8 +2596,10 @@ msgstr "" "Personalisa le apparentia de tu gruppo con un imagine de fundo e un paletta " "de colores de tu preferentia." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Non poteva actualisar tu apparentia." @@ -1833,6 +2619,14 @@ msgstr "" "Tu pote incargar un imagine pro le logotypo de tu gruppo. Le dimension " "maximal del file es %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Incargar" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Taliar" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selige un area quadrate del imagine que devenira le logotypo." @@ -1845,48 +2639,55 @@ msgstr "Logotypo actualisate." msgid "Failed updating logo." msgstr "Falleva de actualisar le logotypo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membros del gruppo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros del gruppo %1$s, pagina %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Un lista de usatores in iste gruppo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blocar" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Blocar iste usator" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Facer le usator administrator del gruppo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Facer administrator" +msgstr "Facer admin" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Facer iste usator administrator" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Chronologia de %s" +msgstr "Facer iste usator un administrator" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1959,15 +2760,18 @@ msgstr "" "Proque non [registrar un conto](%%action.register%%) e [crear le gruppo](%%" "action.newgroup%%) tu mesme?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Solmente un administrator pote disblocar membros de un gruppo." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Le usator non es blocate del gruppo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Error de remover le blocada." @@ -2016,7 +2820,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2027,65 +2834,65 @@ msgstr "" "in GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferentias de messageria instantanee" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Inviar me notas per Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Publicar un nota quando mi stato de Jabber/GTalk cambia." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Inviar me responsas per Jabber/GTalk de personas al quales io non es " "subscribite." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publicar un MicroID pro mi adresse Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferentias confirmate." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Nulle ID de Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Non pote normalisar iste ID de Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "ID de Jabber non valide" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Isto es ja tu ID de Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Le ID de Jabber pertine ja a un altere usator." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2095,28 +2902,28 @@ msgstr "" "instantanee specificate. Tu debe approbar que %s invia messages a te." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Iste adresse de messageria instantanee es erronee." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Non poteva deler confirmation de messageria instantanee." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Confirmation de messageria instantanee cancellate." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Isto non es tu ID de Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Le adresse de messageria instantanee ha essite removite." @@ -2136,51 +2943,78 @@ msgstr "" "Isto es tu cassa de entrata, que lista le messages private que tu ha " "recipite." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Le invitationes ha essite disactivate." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Tu debe aperir un session pro invitar altere usatores a usar %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Adresse de e-mail invalide: %s" +msgid "Invalid email address: %s." +msgstr "Adresse de e-mail invalide: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Invitation(es) inviate" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Invitationes inviate" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invitar nove usatores" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Tu es a subscribite a iste usatores:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Tu es ja subscribite a iste usator:" +msgstr[1] "Tu es ja subscribite a iste usatores:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Iste persona es ja usator e tu ha essite automaticamente subscribite a ille:" +msgstr[1] "" "Iste personas es ja usatores e tu ha essite automaticamente subscribite a " "illes:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitation(es) inviate al sequente personas:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitation inviate al sequente persona:" +msgstr[1] "Invitationes inviate al sequente personas:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2188,42 +3022,53 @@ msgstr "" "Tu recipera notification quando tu invitatos accepta le invitation e se " "registra in le sito. Gratias pro facer crescer le communitate!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Usa iste formulario pro invitar tu amicos e collegas a usar iste servicio." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Adresses de e-mail" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresses de amicos a invitar (un per linea)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Message personal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Si tu vole, adde un message personal al invitation." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Inviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s te ha invitate a accompaniar le/la in %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2284,32 +3129,131 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Tu debe aperir un session pro facer te membro de un gruppo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Nulle pseudonymo o ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "%1$s es ora membro del gruppo %2$s" +msgstr "%1$s se jungeva al gruppo %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." msgstr "Tu debe aperir un session pro quitar un gruppo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Tu non es membro de iste gruppo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s quitava le gruppo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licentia" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licentia pro iste sito StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Selection de licentia invalide." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Tu debe specificar le proprietario del contento si tu usa le licentia \"Tote " +"derectos reservate\"." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Titulo de licentia invalide. Longitude maximal es 255 characteres." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "URL de licentia invalide." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "URL de imagine de licentia invalide." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Le URL de licentia debe esser vacue o un URL valide." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Le imagine de licentia debe esser vacue o un URL valide." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Selection de licentia" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Private" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Tote le derectos reservate" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Typo" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Selige licentia" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Detalios de licentia" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Proprietario" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nomine del proprietario del contento del sito (si applicabile)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Titulo de licentia" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Le titulo del licentia." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL del licentia" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL pro ulterior informationes super le licentia." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL del imagine del licentia" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Le URL de un imagine a monstrar con le licentia." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Salveguardar configurationes de licentia" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Tu es jam authenticate." @@ -2331,11 +3275,11 @@ msgstr "Aperir session" msgid "Login to site" msgstr "Authenticar te a iste sito" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Memorar me" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Aperir session automaticamente in le futuro; non pro computatores usate in " @@ -2387,68 +3331,76 @@ msgstr "Non pote facer %1$s administrator del gruppo %2$s." msgid "No current status." msgstr "Nulle stato actual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nove application" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Tu debe aperir un session pro registrar un application." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Usa iste formulario pro registrar un nove application." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Le URL de origine es requirite." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Non poteva crear application." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nove gruppo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Usa iste formulario pro crear un nove gruppo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nove message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Tu non pote inviar un message a iste usator." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Nulle contento!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Nulle destinatario specificate." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." -msgstr "" -"Non invia un message a te mesme; il suffice sussurar lo a te mesme in su " -"loco." +msgstr "Non invia un message a te mesme; il suffice susurrar lo discretemente." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Message inviate" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Message directe a %s inviate." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Error de Ajax" @@ -2456,7 +3408,7 @@ msgstr "Error de Ajax" msgid "New notice" msgstr "Nove nota" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Nota publicate" @@ -2509,7 +3461,8 @@ msgstr "Actualisationes correspondente al termino de recerca \"%1$s\" in %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Iste usator non accepta pulsatas o non ha ancora confirmate o fornite su " "adresse de e-mail." @@ -2522,74 +3475,101 @@ msgstr "Pulsata inviate" msgid "Nudge sent!" msgstr "Pulsata inviate!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Tu debe aperir un session pro listar tu applicationes." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Applicationes OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Applicationes que tu ha registrate" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Tu non ha ancora registrate alcun application." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Applicationes connectite" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Tu ha permittite al sequente applicationes de acceder a tu conto." +msgid "The following connections exist for your account." +msgstr "Le sequente connexiones existe pro tu conto." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Tu non es usator de iste application." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Impossibile revocar le accesso del application: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Tu ha revocate con successo le accesso de %1$s e le indicio de accesso " +"comenciante con %2$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Tu non ha autorisate alcun application a usar tu conto." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Le programmatores pote modificar le parametros de registration pro lor " -"applicationes " +"Es tu un programmator? [Registra un application cliente OAuth](%s) a usar " +"con iste installation de StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Le nota ha nulle profilo." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Le stato de %1$s in %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Le typo de contento %s non es supportate." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Solmente le URLs %s es permittite super HTTP simple." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -2601,37 +3581,47 @@ msgstr "Recerca de personas" msgid "Notice Search" msgstr "Rercerca de notas" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Altere configurationes" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Gestion de varie altere optiones." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (servicio gratuite)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Accurtar URLs con" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Le servicio de accurtamento automatic a usar." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Vider apparentias de profilo" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Monstrar o celar apparentias de profilo." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Le servicio de accurtamento de URL es troppo longe (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "" +"Le servicio de accurtamento de URL es troppo longe (maximo 50 characteres)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2693,7 +3683,7 @@ msgid "6 or more characters" msgstr "6 o plus characteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmar" @@ -2705,11 +3695,11 @@ msgstr "Identic al contrasigno hic supra" msgid "Change" msgstr "Cambiar" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Le contrasigno debe haber al minus 6 characteres." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Le contrasignos non corresponde." @@ -2729,156 +3719,273 @@ msgstr "Non pote salveguardar le nove contrasigno." msgid "Password saved." msgstr "Contrasigno salveguardate." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Camminos" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Configuration de cammino e servitor pro iste sito StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Configuration de cammino e servitor pro iste sito StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Directorio de thema non legibile: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Directorio de avatar non scriptibile: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Directorio de fundo non scriptibile: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Directorio de localitates non scriptibile: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servitor SSL invalide. Le longitude maximal es 255 characteres." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Sito" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servitor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nomine de host del servitor del sito." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Cammino" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Cammino del sito" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Cammino del sito." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Cammino al localitates" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Directorio de localisation" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Cammino al directorio de localitates" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Cammino al directorio de localisation." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URLs de luxo" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Usar URLs de luxo (plus legibile e memorabile)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Thema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servitor de themas" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Servitor pro apparentias." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Cammino al themas" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Cammino web verso apparentias." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directorio del themas" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatares" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servitor de avatares" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Cammino al avatares" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directorio del avatares" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fundos" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servitor de fundos" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Cammino al fundos" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directorio al fundos" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nunquam" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Alcun vices" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Usar SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quando usar SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servitor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Servitor verso le qual diriger le requestas SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "Servitor SSL pro apparentias (predefinition: servitor SSL)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Cammino SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "Cammino SSL verso apparentias (predefinition: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Directorio" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Cammino a ubi se trova le apparentias." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatares" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servitor de avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Servitor pro avatares." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Cammino al avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Cammino web verso avatares." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directorio del avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Cammino a ubi se trova le avatares." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fundos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Servitor pro fundos de schermo." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Cammino web verso fundos de schermo." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Servitor pro fundos de schermo in paginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Cammino web verso fundos de schermo in paginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Cammino a ubi se trova le fundos de schermo." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Annexos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Servitor pro annexos." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Cammino web verso annexos." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Servitor pro annexos in paginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Cammino web verso annexos in paginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Cammino a ubi se trova le annexos." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nunquam" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Alcun vices" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Usar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Quando usar SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Servitor verso le qual diriger le requestas SSL." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Salveguardar camminos" @@ -2916,140 +4023,182 @@ msgstr "" "Le licentia del nota ‘%1$s’ non es compatibile con le licentia del sito ‘%2" "$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configurationes del profilo" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Tu pote actualisar hic le informationes personal de tu profilo a fin que le " "gente pote facer plus de te." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Information de profilo" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 minusculas o numeros, sin punctuation o spatios" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 minusculas o numeros, sin punctuation o spatios." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nomine complete" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Pagina personal" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL de tu pagina personal, blog o profilo in un altere sito" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "URL de tu pagina personal, blog o profilo in un altere sito." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Describe te e tu interesses in %d characteres" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Describe te e tu interesses in %d character" +msgstr[1] "Describe te e tu interesses in %d characteres" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Describe te e tu interesses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Bio" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Loco" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Ubi tu es, como \"Citate, Stato (o Region), Pais\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Divulgar mi loco actual quando io publica notas" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etiquettas" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Lingua" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Lingua preferite" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso horari" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "In que fuso horari es tu normalmente?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Bio es troppo longe (max %d chars)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Bio es troppo longe (maximo %d character)." +msgstr[1] "Bio es troppo longe (maximo %d characteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso horari non seligite." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Lingua es troppo longe (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Lingua es troppo longe (maximo 50 characteres)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiquetta invalide: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Non poteva actualisar usator pro autosubscription." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Non poteva salveguardar le preferentias de loco." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Non poteva salveguardar profilo." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Non poteva salveguardar etiquettas." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Preferentias confirmate." @@ -3127,26 +4276,39 @@ msgstr "" "Isto es %%site.name%%, un servicio de [micro-blog](http://ia.wikipedia.org/" "wiki/Microblog) a base del software libere [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Etiquettario public" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Istes es le etiquettas recente le plus popular in %s " +msgid "These are most popular recent tags on %s" +msgstr "Istes es le etiquettas recente le plus popular in %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "Nulle persona ha ancora publicate un nota con un [hashtag](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Sia le prime a publicar un!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3155,7 +4317,7 @@ msgstr "" "Proque non [registrar un conto](%%action.register%%) e devenir le prime a " "publicar un?" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Etiquettario" @@ -3268,14 +4430,14 @@ msgid "Unexpected password reset." msgstr "Reinitialisation inexpectate del contrasigno." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Le contrasigno debe haber 6 characteres o plus." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Contrasigno e confirmation non corresponde." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Error durante le configuration del usator." @@ -3283,7 +4445,7 @@ msgstr "Error durante le configuration del usator." msgid "New password successfully saved. You are now logged in." msgstr "Nove contrasigno salveguardate con successo. Tu session es ora aperte." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Pardono, solmente le personas invitate pote registrar se." @@ -3295,27 +4457,27 @@ msgstr "Pardono, le codice de invitation es invalide." msgid "Registration successful" msgstr "Registration succedite" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Crear conto" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "Registration non permittite." +msgstr "Creation de conto non permittite." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Tu non pote crear un conto si tu non accepta le licentia." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Le adresse de e-mail existe ja." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nomine de usator o contrasigno invalide." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3323,58 +4485,62 @@ msgstr "" "Con iste formulario tu pote crear un nove conto. Postea, tu pote publicar " "notas e mitter te in contacto con amicos e collegas. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "1-64 minusculas o numeros, sin punctuation o spatios. Requirite." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 o plus characteres. Requirite." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Identic al contrasigno hic supra. Requirite." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Usate solmente pro actualisationes, notificationes e recuperation de " "contrasigno" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nomine plus longe, preferibilemente tu nomine \"real\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL de tu pagina personal, blog o profilo in un altere sito" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "io comprende que le contento e datos de %1$s es private e confidential." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Le derecto de autor pro mi texto e files es in possession de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Le derecto de autor pro mi texto e files resta in mi possession." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Tote le derectos reservate." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3384,7 +4550,7 @@ msgstr "" "contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " "telephono." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3416,7 +4582,7 @@ msgstr "" "\n" "Gratias pro inscriber te, e nos spera que iste servicio te place." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3461,7 +4627,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de tu profilo in un altere servicio de microblogging compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscriber" @@ -3499,7 +4665,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:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetite" @@ -3508,7 +4674,7 @@ msgid "Repeated!" msgstr "Repetite!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Responsas a %s" @@ -3587,13 +4753,13 @@ msgstr "Usator es ja in cassa de sablo." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessiones" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Parametros de session pro iste sito StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Parametros de session pro iste sito StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3612,7 +4778,6 @@ msgid "Turn on debugging output for sessions." msgstr "Producer informationes technic pro cercar defectos in sessiones." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salveguardar configurationes del sito" @@ -3625,28 +4790,29 @@ msgid "Application profile" msgstr "Profilo del application" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icone" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nomine" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisation" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statisticas" @@ -3664,6 +4830,11 @@ msgstr "Actiones de application" msgid "Reset key & secret" msgstr "Reinitialisar clave e secreto" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Deler" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Info del application" @@ -3757,77 +4928,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Isto es un modo de condivider lo que te place." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Gruppo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Gruppo %1$s, pagina %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliases" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Actiones del gruppo" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syndication de notas pro le gruppo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Amico de un amico pro le gruppo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nulle)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Tote le membros" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Create" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Membros" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3842,7 +5040,10 @@ msgstr "" "lor vita e interesses. [Crea un conto](%%%%action.register%%%%) pro devenir " "parte de iste gruppo e multe alteres! ([Lege plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3855,24 +5056,31 @@ msgstr "" "[StatusNet](http://status.net/). Su membros condivide breve messages super " "lor vita e interesses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administratores" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Message non existe." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Solmente le expeditor e destinatario pote leger iste message." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Message a %1$s in %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Message de %1$s in %2$s" @@ -3881,48 +5089,68 @@ msgstr "Message de %1$s in %2$s" msgid "Notice deleted." msgstr "Nota delite." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " con etiquetta %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s etiquettate con %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s etiquettate con %2$s, pagina %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pagina %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Syndication de notas pro %1$s con etiquetta %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Syndication de notas pro %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Syndication de notas pro %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Syndication de notas pro %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "Amico de un amico pro %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Isto es le chronologia pro %1$s, ma %2$s non ha ancora publicate alique." +"Isto es le chronologia pro %1$s, ma %1$s non ha ancora publicate alique." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3930,7 +5158,9 @@ msgstr "" "Videva tu qualcosa de interessante recentemente? Tu non ha ancora publicate " "alcun nota, dunque iste es un bon momento pro comenciar :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3939,7 +5169,9 @@ msgstr "" "Tu pote tentar dar un pulsata a %1$s o [publicar un nota a su attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3953,7 +5185,9 @@ msgstr "" "pro sequer le notas de **%s** e multe alteres! ([Lege plus](%%%%doc.help%%%" "%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3964,7 +5198,8 @@ msgstr "" "(http://en.wikipedia.org/wiki/Microblog) a base del software libere " "[StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetition de %s" @@ -3979,7 +5214,7 @@ msgstr "Usator es ja silentiate." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" -msgstr "Configurationes de base pro iste sito de StatusNet" +msgstr "Configurationes de base pro iste sito StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -4078,32 +5313,39 @@ msgstr "" "Quante tempore (in secundas) le usatores debe attender ante de poter " "publicar le mesme cosa de novo." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Aviso del sito" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Modificar message a tote le sito" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Impossibile salveguardar le aviso del sito." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Le longitude maxime del aviso a tote le sito es 255 characteres." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Texto del aviso del sito" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -"Le texto del aviso a tote le sito (max. 255 characteres; HTML permittite)" +"Le texto del aviso a tote le sito (maximo 255 characteres; HTML permittite)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Salveguardar aviso del sito" @@ -4263,7 +5505,7 @@ msgstr "Nulle codice entrate" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Instantaneos" @@ -4319,12 +5561,14 @@ msgstr "Le instantaneos essera inviate a iste URL" msgid "Save snapshot settings" msgstr "Salveguardar configuration de instantaneos" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Tu non es subscribite a iste profilo." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Non poteva salveguardar le subscription." @@ -4332,10 +5576,6 @@ msgstr "Non poteva salveguardar le subscription." msgid "This action only accepts POST requests." msgstr "Iste action accepta solmente le requestas de typo POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Profilo non existe." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Tu non pote subscriber te a un profilo remote OMB 0.1 con iste action." @@ -4344,39 +5584,55 @@ msgstr "Tu non pote subscriber te a un profilo remote OMB 0.1 con iste action." msgid "Subscribed" msgstr "Subscribite" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Subscriptores a %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Subscriptores a %1$s, pagina %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Iste personas seque tu notas." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Iste personas seque le notas de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"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 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s non ha subscriptores. Vole esser le prime?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4385,26 +5641,31 @@ msgstr "" "%s non ha subscriptores. Proque non [crear un conto](%%%%action.register%%%" "%) e esser le prime?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Subscriptiones de %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Subscriptiones de %1$s, pagina %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Tu seque le notas de iste personas." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "%s seque le notas de iste personas." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4420,16 +5681,27 @@ msgstr "" "action.twittersettings%%), tu pote automaticamente subscriber te a personas " "que tu ja seque la." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s non seque alcuno." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Syndication de notas pro %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4467,7 +5739,7 @@ msgid "User profile" msgstr "Profilo del usator" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Photo" @@ -4532,74 +5804,94 @@ msgstr "" "licentia del sito ‘%2$s’." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Usator" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Configurationes de usator pro iste sito de StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Configurationes de usator pro iste sito de StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Limite de biographia invalide. Debe esser un numero." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "Texto de benvenita invalide. Longitude maximal es 255 characteres." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Texto de benvenita invalide. Longitude maxime es 255 characteres." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Subscription predefinite invalide: '%1$s' non es usator." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profilo" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Limite de biographia" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Le longitude maximal del biographia de un profilo in characteres." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nove usatores" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Message de benvenita a nove usatores" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "Texto de benvenita pro nove usatores (max. 255 characteres)" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Texto de benvenita pro nove usatores (maximo 255 characteres)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Subscription predefinite" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Subscriber automaticamente le nove usatores a iste usator." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitationes" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Invitationes activate" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Si le usatores pote invitar nove usatores." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Salveguardar configurationes de usator" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorisar subscription" @@ -4613,7 +5905,9 @@ msgstr "" "Per favor verifica iste detalios pro assecurar te que tu vole subscriber te " "al notas de iste usator. Si tu non ha requestate isto, clicca \"Rejectar\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licentia" @@ -4701,11 +5995,13 @@ msgstr "Non pote leger URL de avatar ‘%s’." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Typo de imagine incorrecte pro URL de avatar ‘%s’." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Apparentia del profilo" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4744,7 +6040,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Actualisationes de %1$s in %2$s!" @@ -4805,7 +6101,7 @@ msgid "Plugins" msgstr "Plug-ins" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Version" @@ -4813,62 +6109,111 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(es)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Favorir" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s marcava le nota %2$s como favorite." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Impossibile processar le URL '%s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin pensa que alique es impossibile." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Nulle file pote esser plus grande que %1$d byte e le file que tu inviava ha %" +"2$d bytes. Tenta incargar un version minus grande." +msgstr[1] "" "Nulle file pote esser plus grande que %1$d bytes e le file que tu inviava ha " "%2$d bytes. Tenta incargar un version minus grande." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Un file de iste dimension excederea tu quota de usator de %d bytes." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Un file de iste dimension excederea tu quota de usator de %d byte." +msgstr[1] "Un file de iste dimension excederea tu quota de usator de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Un file de iste dimension excederea tu quota mensual de %d bytes." +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Un file de iste dimension excederea tu quota mensual de %d byte." +msgstr[1] "Un file de iste dimension excederea tu quota mensual de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nomine de file invalide." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Le inscription al gruppo ha fallite." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Non es membro del gruppo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Le cancellation del membrato del gruppo ha fallite." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Le ID de profilo %s es invalide." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Le ID de gruppo %s es invalide." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Inscriber" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s se ha jungite al gruppo %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4887,17 +6232,17 @@ msgid "No database name or DSN found anywhere." msgstr "Nulle nomine de base de datos o DSN trovate." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Il te es prohibite inviar messages directe." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Non poteva inserer message." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Non poteva actualisar message con nove URI." @@ -4909,23 +6254,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Nulle profilo (%1$d) trovate pro le nota (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Error in base de datos durante insertion del marca (hashtag): %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problema salveguardar nota. Troppo longe." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problema salveguardar nota. Usator incognite." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4933,7 +6278,7 @@ msgstr "" "alcun minutas." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4942,43 +6287,57 @@ msgstr "" "novo post alcun minutas." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Il te es prohibite publicar notas in iste sito." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problema salveguardar nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "Mal typo fornite a saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "Mal typo fornite a saveKnownGroups." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Non poteva salveguardar le responsa pro %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "Non pote revocar le rolo \"%1$s\" del usator #%2$d; non existe." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4991,301 +6350,343 @@ msgid "Missing profile." msgstr "Profilo mancante." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Impossibile salveguardar le etiquetta." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Tu ha essite blocate del subscription." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Ja subscribite!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Le usator te ha blocate." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Non subscribite!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Non poteva deler auto-subscription." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Non poteva deler le indicio OMB del subscription." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Non poteva deler subscription." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Sequer" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s seque ora %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Nulle signule usator definite pro le modo de singule usator." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Codice in modo de usator singule appellate sin esser activate." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Non poteva crear gruppo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Non poteva definir le URL del gruppo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Non poteva configurar le membrato del gruppo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Non poteva salveguardar le informationes del gruppo local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Cambiar le optiones de tu profilo" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Incargar un avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Cambiar tu contrasigno" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Modificar le tractamento de e-mail" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Designar tu profilo" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Altere optiones" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Altere" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Pagina sin titulo" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Monstrar plus" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navigation primari del sito" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personal e chronologia de amicos" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar tu e-mail, avatar, contrasigno, profilo" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Conto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connecter a servicios" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Connecter" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modificar le configuration del sito" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invitar amicos e collegas a accompaniar te in %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar le session del sito" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Clauder session" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear un conto" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Crear conto" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Authenticar te a iste sito" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Aperir session" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Adjuta me!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Adjuta" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cercar personas o texto" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Cercar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Aviso del sito" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vistas local" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Aviso de pagina" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navigation secundari del sito" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Adjuta" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "A proposito" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "CdS" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Confidentialitate" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Fonte" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contacto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Insignia" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licentia del software StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5295,13 +6696,16 @@ msgstr "" "%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** es un servicio de microblog." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5313,348 +6717,458 @@ msgstr "" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licentia del contento del sito" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contento e datos de %1$s es private e confidential." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Contento e datos sub copyright de %1$s. Tote le derectos reservate." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Contento e datos sub copyright del contributores. Tote le derectos reservate." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Tote le contento e datos de %1$s es disponibile sub le licentia %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Pagination" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Post" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Ante" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "Expectava le elemento-radice de un syndication, ma recipeva un documento XML " "integre." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Photo" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Non pote ancora tractar contento remote." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Non pote ancora tractar contento XML incastrate." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Non pote ancora tractar contento Base64 incastrate." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Tu non pote facer modificationes in iste sito." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Le modification de iste pannello non es permittite." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() non implementate." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementate." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Impossibile deler configuration de apparentia." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuration basic del sito" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuration del apparentia" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Apparentia" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuration del usator" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usator" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuration del accesso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuration del camminos" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuration del sessiones" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Modificar aviso del sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuration del instantaneos" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Definir licentia del sito" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Le ressource de API require accesso pro lectura e scriptura, ma tu ha " "solmente accesso pro lectura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Modificar application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Nulle application pro iste clave de consumitor." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Mal indicio de accesso." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Nulle usator pro iste indicio." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Non poteva authenticar te." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Non poteva crear consumitor anonyme." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Non poteva crear application OAuth anonyme." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" +"Non poteva trovar un profilo e application associate con le indicio de " +"requesta." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Non poteva emitter le indicio de accesso." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Error del base de datos durante le insertion del usator del application " +"OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Tentava revocar un indicio non cognoscite." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Falleva de deler le indicio revocate." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icone pro iste application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Describe tu application in %d characteres" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Describe tu application in %d character" +msgstr[1] "Describe tu application in %d characteres" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Describe tu application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL del pagina initial de iste application" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL de origine" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organisation responsabile de iste application" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL del pagina initial del organisation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL verso le qual rediriger post authentication" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navigator" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Scriptorio" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Typo de application, navigator o scriptorio" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Lectura solmente" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lectura e scriptura" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Accesso predefinite pro iste application: lectura solmente, o lectura e " "scriptura" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancellar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " per " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lectura-scriptura" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "lectura solmente" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Accesso \"%2$s\" approbate le %1$s." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Indicio de accesso comenciante con: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revocar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Annexos" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "Le elemento \"author\" debe continer un elemento \"name\"." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Providitor" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Notas ubi iste annexo appare" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etiquettas pro iste annexo" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Cambio del contrasigno fallite" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Cambio del contrasigno fallite." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Cambio del contrasigno non permittite" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Cambio del contrasigno non permittite." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blocar" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultatos del commando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Error de AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Commando complete" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Commando fallite" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Non existe un nota con iste ID" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Non existe un nota con iste ID." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Usator non ha ultime nota" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Le usator non ha un ultime nota." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Non poteva trovar un usator con pseudonymo %s" +msgid "Could not find a user with nickname %s." +msgstr "Non poteva trovar un usator con pseudonymo %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Non poteva trovar un usator local con pseudonymo %s" +msgid "Could not find a local user with nickname %s." +msgstr "Non poteva trovar un usator local con pseudonymo %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Pardono, iste commando non es ancora implementate." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Non ha multe senso pulsar te mesme!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Pulsata inviate a %s" +msgid "Nudge sent to %s." +msgstr "Pulsata inviate a %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5665,55 +7179,64 @@ msgstr "" "Subscriptores: %2$s\n" "Notas: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Nota marcate como favorite." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Tu es ja membro de iste gruppo" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s se jungeva al gruppo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Non poteva remover le usator %1$s del gruppo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s quitava le gruppo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nomine complete: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Loco: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Pagina personal: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "A proposito: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5722,146 +7245,176 @@ msgstr "" "%s es un profilo remote; tu pote solmente inviar messages directe a usatores " "super le mesme servitor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Message troppo longe - maximo es %1$d characteres, tu inviava %2$d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Message troppo longe - maximo es %1$d character, tu inviava %2$d." +msgstr[1] "Message troppo longe - maximo es %1$d characteres, tu inviava %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Message directe a %s inviate" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Error durante le invio del message directe." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Non pote repeter tu proprie nota" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Iste nota ha ja essite repetite" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Nota de %s repetite" +msgid "Notice from %s repeated." +msgstr "Nota de %s repetite." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Error durante le repetition del nota." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Nota troppo longe - maximo es %d characteres, tu inviava %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Nota troppo longe - maximo es %1$d character, tu inviava %2$d." +msgstr[1] "Nota troppo longe - maximo es %1$d characteres, tu inviava %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Responsa a %s inviate" +msgid "Reply to %s sent." +msgstr "Responsa a %s inviate." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Errur durante le salveguarda del nota." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Specifica le nomine del usator al qual subscriber te" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Specifica le nomine del usator al qual subscriber te." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Impossibile subscriber se a profilos OMB per medio de un commando." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subscribite a %s" +msgid "Subscribed to %s." +msgstr "Subscribite a %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Specifica le nomine del usator al qual cancellar le subscription" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Specifica le nomine del usator al qual cancellar le subscription." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Subscription a %s cancellate" +msgid "Unsubscribed from %s." +msgstr "Subscription a %s cancellate." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Commando non ancora implementate." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notification disactivate." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Non pote disactivar notification." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notification activate." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Non pote activar notification." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Le commando de apertura de session es disactivate" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Le commando de apertura de session es disactivate." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" "Iste ligamine pote esser usate solmente un vice, e es valide durante " -"solmente 2 minutas: %s" +"solmente 2 minutas: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Subscription de %s cancellate" +msgid "Unsubscribed %s." +msgstr "Subscription de %s cancellate." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Tu non es subscribite a alcuno." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Tu es subscribite a iste persona:" msgstr[1] "Tu es subscribite a iste personas:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Necuno es subscribite a te." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Iste persona es subscribite a te:" msgstr[1] "Iste personas es subscribite a te:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Tu non es membro de alcun gruppo." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Tu es membro de iste gruppo:" msgstr[1] "Tu es membro de iste gruppos:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5941,50 +7494,72 @@ msgstr "" "tracks - non ancora implementate.\n" "tracking - non ancora implementate.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Nulle file de configuration trovate. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Nulle file de configuration trovate." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Io cercava files de configuration in le sequente locos: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Io cercava files de configuration in le sequente locos:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Considera executar le installator pro reparar isto." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Ir al installator." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Actualisationes per messageria instantanee (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Actualisationes per SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Connexiones" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Applicationes autorisate connectite" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Error de base de datos" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Incargar file" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5992,41 +7567,57 @@ msgstr "" "Tu pote actualisar tu imagine de fundo personal. Le dimension maximal del " "file es 2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Active" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Non active" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reinitialisar" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Apparentia predefinite restaurate." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Disfavorir iste nota" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Favorir iste nota" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Favorir" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Amico de un amico" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportar datos" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Syndicationes" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6057,9 +7648,13 @@ msgstr "Ir" msgid "Grant this user the \"%s\" role" msgstr "Conceder le rolo \"%s\" a iste usator" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL del pagina initial o blog del gruppo o topico" +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL del pagina initial o blog del gruppo o topico." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6067,62 +7662,116 @@ msgstr "Describe le gruppo o topico" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Describe le gruppo o topico in %d characteres" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Describe le gruppo o topico in %d character o minus" +msgstr[1] "Describe le gruppo o topico in %d characteres o minus" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -"Loco del gruppo, si existe, como \"Citate, Provincia (o Region), Pais\"" +"Loco del gruppo, si existe, como \"Citate, Provincia (o Region), Pais\"." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" -"Pseudonymos additional pro le gruppo, separate per commas o spatios, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Pseudonymo additional pro le gruppo. Solmente %d alias es permittite." +msgstr[1] "" +"Pseudonymos additional pro le gruppo, separate per commas o spatios. Un " +"maximo de %d aliases es permittite." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Gruppo" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Gruppo %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membros" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membros del gruppo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Blocate" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "%s usatores blocate" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Modificar proprietates del gruppo %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logotypo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Adder o modificar logotypo de %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Adder o modificar apparentia de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Gruppos con le plus membros" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Gruppos con le plus messages" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Etiquettas in le notas del gruppo %s" @@ -6136,38 +7785,57 @@ msgstr "Iste pagina non es disponibile in un formato que tu accepta" msgid "Unsupported image file format." msgstr "Formato de file de imagine non supportate." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Iste file es troppo grande. Le dimension maximal es %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Incargamento partial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Error de systema durante le incargamento del file." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Le file non es un imagine o es defectuose." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "File perdite." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Typo de file incognite" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dMB" +msgstr[1] "%dMB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "KB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dKB" +msgstr[1] "%dKB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dB" +msgstr[1] "%dB" #: lib/jabber.php:387 #, php-format @@ -6179,10 +7847,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Fonte de cassa de entrata \"%s\" incognite" -#: lib/joinform.php:114 -msgid "Join" -msgstr "Inscriber" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Quitar" @@ -6195,48 +7859,53 @@ msgstr "Aperir session con nomine de usator e contrasigno" msgid "Sign up for a new account" msgstr "Crear un nove conto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmation del adresse de e-mail" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Salute %s,\n" +"Salute %1$s,\n" "\n" -"Alcuno entrava ante un momento iste adresse de e-mail in %s.\n" +"Alcuno entrava ante un momento iste adresse de e-mail in %2$s.\n" "\n" "Si isto esseva tu, e tu vole confirmar le adresse, usa le URL hic infra:\n" "\n" -"%s\n" +"%3$s\n" "\n" "Si non, simplemente ignora iste message.\n" "\n" "Gratias pro tu attention,\n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s seque ora tu notas in %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6246,8 +7915,12 @@ msgstr "" "lista de subscriptores e reportar lo como spam al administratores del sito a " "%s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6256,10 +7929,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s seque ora tu notas in %2$s.\n" "\n" @@ -6267,25 +7940,29 @@ msgstr "" "\n" "%4$s%5$s%6$s\n" "Cordialmente,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Cambia tu adresse de e-mail o optiones de notification a %8$s\n" +"Cambia tu adresse de e-mail o optiones de notification a %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nove adresse de e-mail pro publicar in %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6295,7 +7972,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Tu ha un nove adresse pro publication in %1$s.\n" "\n" @@ -6304,33 +7981,38 @@ msgstr "" "Ulterior informationes se trova a %3$s.\n" "\n" "Cordialmente,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Stato de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmation SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: confirma que tu possede iste numero de telephono con iste codice:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s te ha pulsate" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6357,14 +8039,18 @@ msgstr "" "Con salutes cordial,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nove message private de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6397,14 +8083,19 @@ msgstr "" "Con salutes cordial,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) ha addite tu nota como favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) ha addite tu nota como favorite" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6443,7 +8134,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6454,13 +8145,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) ha inviate un nota a tu attention" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) ha inviate un nota a tu attention" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6522,9 +8220,9 @@ msgstr "" "altere usatores in conversation. Altere personas pote inviar te messages que " "solmente tu pote leger." -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "de" +msgstr "via" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6542,22 +8240,25 @@ msgstr "Pardono, isto non es tu adresse de e-mail entrante." msgid "Sorry, no incoming email allowed." msgstr "Pardono, le reception de e-mail non es permittite." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Typo de message non supportate: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Un error de base de datos occurreva durante le salveguarda de tu file. Per " "favor reproba." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Le file incargate excede le directiva upload_max_filesize in php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6565,87 +8266,133 @@ msgstr "" "Le file incargate excede le directiva MAX_FILE_SIZE specificate in le " "formulario HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Le file incargate ha solmente essite incargate partialmente." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Manca un dossier temporari." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Falleva de scriber le file in disco." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Incargamento de file stoppate per un extension." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "File excede quota del usator." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "File non poteva esser displaciate in le directorio de destination." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Non poteva determinar le typo MIME del file." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Tenta usar un altere formato %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" non es un typo de file supportate in iste servitor. Tenta usar un " +"altere formato de %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s non es un typo de file supportate in iste servitor." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" non es un typo de file supportate in iste servitor." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Inviar un nota directe" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Selige destinatario:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Nulle subscriptores mutual." + +#: lib/messageform.php:153 msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Characteres disponibile" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Inviar" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Le pseudonymo pote solmente haber minusculas e numeros, sin spatios." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Le pseudonymo non pote esser vacue." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Le pseudonymo non pote haber plus de %d character." +msgstr[1] "Le pseudonymo non pote haber plus de %d characteres." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Inviar un nota" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Como sta, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Annexar" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Annexar un file" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Divulgar mi loco" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Non divulgar mi loco" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6654,51 +8401,55 @@ msgstr "" "previste. Per favor reproba plus tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" -msgstr "a" +msgstr "in" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "in contexto" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Responder a iste nota" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Nota repetite" @@ -6714,55 +8465,52 @@ msgstr "Pulsar" msgid "Send a nudge to this user" msgstr "Inviar un pulsata a iste usator" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Error durante le insertion del nove profilo" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Error durante le insertion del nove profilo." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Error durante le insertion del avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Error durante le insertion del avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Error in actualisar le profilo remote" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Error durante le insertion del profilo remote." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Error durante le insertion del profilo remote" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Nota duplicate." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicar nota" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Non poteva inserer nove subscription." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Responsas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favorites" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Cassa de entrata" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Tu messages recipite" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Cassa de exito" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Tu messages inviate" @@ -6771,7 +8519,8 @@ msgstr "Tu messages inviate" msgid "Tags in %s's notices" msgstr "Etiquettas in le notas de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Incognite" @@ -6853,9 +8602,10 @@ msgstr "Repeter iste nota" msgid "Revoke the \"%s\" role from this user" msgstr "Revocar le rolo \"%s\" de iste usator" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Nulle signule usator definite pro le modo de singule usator." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Pagina non trovate." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6865,19 +8615,25 @@ msgstr "Cassa de sablo" msgid "Sandbox this user" msgstr "Mitter iste usator in le cassa de sablo" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Cercar in sito" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Parola(s)-clave" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Cercar" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Adjuta super le recerca" @@ -6951,6 +8707,11 @@ msgstr "Nube de etiquetta de personas como etiquettate" msgid "None" msgstr "Nulle" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Nomine de apparentia invalide." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6962,27 +8723,32 @@ msgid "The theme file is missing or the upload failed." msgstr "Le file del apparentia manca o le incargamento ha fallite." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Salveguarda del apparentia fallite." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Apparentia invalide: mal structura de directorios." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Le apparentia incargate es troppo voluminose; debe occupar minus de %d byte " +"in forma non comprimite." +msgstr[1] "" "Le apparentia incargate es troppo voluminose; debe occupar minus de %d bytes " "in forma non comprimite." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Archivo de apparentia invalide: manca le file css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6990,13 +8756,18 @@ msgstr "" "Le apparentia contine un nomine de file o dossier invalide. Limita te a " "litteras ASCII, digitos, sublineamento, e signo minus." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"Le thema contine nomines de extension de file insecur; pote esser insecur." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" "Le apparentia contine un file del typo '.%s', le qual non es permittite." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Error durante le apertura del archivo del apparentia." @@ -7004,6 +8775,12 @@ msgstr "Error durante le apertura del archivo del apparentia." msgid "Top posters" msgstr "Qui scribe le plus" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Disblocar" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Retirar del cassa de sablo" @@ -7028,122 +8805,173 @@ msgstr "Cancellar subscription a iste usator" msgid "Unsubscribe" msgstr "Cancellar subscription" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Le usator %s (%d) non ha un profilo." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Le usator %1$s (%2$d) non ha un registro de profilo." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Modificar avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Actiones de usator" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Deletion del usator in curso…" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Modificar configuration de profilo" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Modificar" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Inviar un message directe a iste usator" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Message" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rolo de usator" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "alcun secundas retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "circa un minuta retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "circa %d minutas retro" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "circa un minuta retro" +msgstr[1] "circa %d minutas retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "circa un hora retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "circa %d horas retro" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "circa un hora retro" +msgstr[1] "circa %d horas retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "circa un die retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "circa %d dies retro" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "circa un die retro" +msgstr[1] "circa %d dies retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "circa un mense retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "circa %d menses retro" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "circa un mense retro" +msgstr[1] "circa %d menses retro" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "circa un anno retro" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s non es un color valide!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s non es un color valide! Usa 3 o 6 characteres hexadecimal." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Message troppo longe - maximo es %1$d characteres, tu inviava %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "Usator incognite. Vade a %s pro adder tu adresse a tu conto." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Message troppo longe. Maximo es %1$d character, tu inviava %2$d." +msgstr[1] "Message troppo longe. Maximo es %1$d characteres, tu inviava %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "XML invalide." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "XML invalide, radice XRD mancante." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Obtene copia de reserva ex file '%s'." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Nulle usator specificate; le usator de reserva es usate." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d entrata in copia de reserva." +msgstr[1] "%d entratas in copia de reserva." diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 701d0f1d45..b1b012969b 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -1,96 +1,109 @@ -# Translation of StatusNet to Icelandic +# Translation of StatusNet - Core to Icelandic (Íslenska) +# Expored from translatewiki.net # -# Author@translatewiki.net: McDutchie +# Author: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:37+0000\n" -"Language-Team: Icelandic\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:57+0000\n" +"Language-Team: Icelandic <http://translatewiki.net/wiki/Portal:is>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=2; plural=(n % 100 != 1 && n % 100 != 21 && n % 100 !" -"= 31 && n % 100 != 41 && n % 100 != 51 && n % 100 != 61 && n % 100 != 71 && " -"n % 100 != 81 && n % 100 != 91);\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 #, fuzzy msgid "Access" msgstr "Samþykkja" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 #, fuzzy msgid "Site access settings" msgstr "Stillingar fyrir mynd" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 #, fuzzy msgid "Registration" msgstr "Nýskrá" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 #, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Friðhelgi" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 #, fuzzy msgid "Invite only" msgstr "Bjóða" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "Stillingar fyrir mynd" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 #, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Vista" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 @@ -98,507 +111,742 @@ msgstr "Vista" msgid "No such page." msgstr "Ekkert þannig merki." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Enginn svoleiðis notandi." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format +#: actions/all.php:91 +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s og vinirnir, síða %d" +msgstr "%s og vinirnir" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s og vinirnir" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 +#, fuzzy msgid "You and friends" -msgstr "" +msgstr "%s og vinirnir" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Færslur frá %1$s og vinum á %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "Aðferð í forritsskilum fannst ekki!" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Þessi aðferð krefst POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "Gat ekki uppfært notanda." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Notandi hefur enga persónulega síðu." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "Gat ekki vistað persónulega síðu." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Gat ekki uppfært hóp." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Rás %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s áskriftir" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Uppáhald" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Hópmeðlimir %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 #, fuzzy msgid "You cannot block yourself!" msgstr "Gat ekki uppfært notanda." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Mistókst að loka á notanda." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Mistókst að opna fyrir notanda." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, fuzzy, php-format msgid "Direct messages from %s" msgstr "Bein skilaboð til %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Öll bein skilaboð send frá %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Bein skilaboð til %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Öll bein skilaboð til %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Enginn texti í skilaboðum!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Þetta er of langt. Hámarkslengd skilaboða er 140 tákn." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Þetta er of langt. Hámarkslengd babls er %d tákn." +msgstr[1] "Þetta er of langt. Hámarkslengd babls er %d tákn." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Móttakandi fannst ekki." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Gat ekki sent bein skilaboð til notenda sem eru ekki vinir þínir." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Ekki senda þér skilaboð. Þú getur sagt þetta í hljóði við sjálfa(n) þig í " +"staðinn." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Engin staða fundin með þessu kenni." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 #, fuzzy msgid "This status is already a favorite." msgstr "Þetta babl er nú þegar í uppáhaldi!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Gat ekki búið til uppáhald." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 #, fuzzy msgid "That status is not a favorite." msgstr "Þetta babl er ekki í uppáhaldi!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Gat ekki eytt uppáhaldi." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Get ekki fylgst með notanda: Notandinn finnst ekki." +msgstr "" +"Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" "Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Get ekki fylgst með notanda: Notandinn finnst ekki." +msgstr "" +"Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 #, fuzzy msgid "You cannot unfollow yourself." msgstr "Gat ekki uppfært notanda." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "Tvo notendakenni eða skjáarnöfn verða að vera uppgefin." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 +#, fuzzy msgid "Could not determine source user." -msgstr "" +msgstr "Gat ekki uppfært notanda." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 +#, fuzzy msgid "Could not find target user." -msgstr "" +msgstr "Gat ekki uppfært notanda." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ekki tækt stuttnefni." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Heimasíða er ekki gild vefslóð." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Staðsetning er of löng (í mesta lagi %d stafir)." +msgstr[1] "Staðsetning er of löng (í mesta lagi %d stafir)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "Ógilt merki: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, php-format +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "" +msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Aðferð í forritsskilum fannst ekki!" +msgstr "Fannst ekki." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 #, fuzzy msgid "You are already a member of that group." msgstr "Þú ert nú þegar meðlimur í þessum hópi" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Gat ekki bætt notandanum %s í hópinn %s" +msgstr "Gat ekki skráð hópmeðlimi." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 #, fuzzy msgid "You are not a member of this group." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s" +msgstr "Gat ekki búið til hóp." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, fuzzy, php-format msgid "%s's groups" msgstr "Hópar %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "Hópar sem %s er meðlimur í" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Hópar %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, fuzzy, php-format msgid "groups on %s" msgstr "Hópsaðgerðir" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "Misheppnuð skipun" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Ótækt bablinnihald" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "Ótæk stærð." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Þú ert ekki áskrifandi." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Það kom upp vandamál með setutókann þinn. Vinsamlegast reyndu aftur." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 #, fuzzy msgid "Invalid nickname / password!" msgstr "Ótækt notendanafn eða lykilorð." -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Villa kom upp í stillingu notanda." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Bjóst ekki við innsendingu eyðublaðs." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -606,248 +854,633 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Aðgangur" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Stuttnefni" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Lykilorð" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" - -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 #, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Hætta við" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Allt" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Enginn staðfestingarlykill." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Þú ert ekki áskrifandi." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Þú ert ekki áskrifandi." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Þessi aðferð krefst POST eða DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Þú getur ekki eytt stöðu annars notanda." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ekkert svoleiðis babl." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 #, fuzzy msgid "Cannot repeat your own notice." msgstr "Get ekki kveikt á tilkynningum." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Eyða þessu babli" +msgstr "Get ekki eytt þessu babli." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Aðferð í forritsskilum fannst ekki!" + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Skráarsnið myndar ekki stutt." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "" -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Engin staða með þessu kenni fannst." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Get ekki eytt þessu babli." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Eyða babli" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Þetta er of langt. Hámarkslengd babls er 140 tákn." +msgstr[1] "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Fannst ekki." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Aðferð í forritsskilum fannst ekki!" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 #, fuzzy msgid "Unsupported format." msgstr "Skráarsnið myndar ekki stutt." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format -msgid "%1$s / Favorites from %2$s" -msgstr "%s / Uppáhaldsbabl frá %s" - -#: actions/apitimelinefavorites.php:119 -#, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s færslur gerðar að uppáhaldsbabli af %s / %s." - -#: actions/apitimelinementions.php:118 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format -msgid "%1$s / Updates mentioning %2$s" -msgstr "" +msgid "%1$s / Favorites from %2$s" +msgstr "Staða %1$s á %2$s" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s færslur sem svara færslum frá %2$s / %3$s." + +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Gat ekki uppfært hóp." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, fuzzy, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "Staða %1$s á %2$s" + +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s færslur sem svara færslum frá %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Almenningsrás %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s færslur frá öllum!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Skipun hefur ekki verið fullbúin" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "Svör við %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "Svör við %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Babl merkt með %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" +msgstr "Færslur frá %1$s á %2$s!" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Aðeins notandinn getur lesið hans eigin pósthólf." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." msgstr "" -#: actions/apitrends.php:87 +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Finna innihald babls" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Enginn persónuleg síða með þessu einkenni." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Aðferð í forritsskilum er í þróun." -#: actions/attachment.php:73 -msgid "No such attachment." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Aðferð í forritsskilum fannst ekki!" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ekkert svoleiðis babl." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" msgstr "" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Gat ekki sett inn nýja áskrift." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Finna innihald babls" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Óþekkt aðgerð" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Bæta við sem uppáhaldsbabli" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Ekkert svoleiðis babl." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Hópmeðlimir %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Hópar sem %s er meðlimur í" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Óþekkt aðgerð" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Allir meðlimir" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ekkert svoleiðis babl." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Gat ekki eytt uppáhaldi." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Enginn þannig hópur." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Allir meðlimir" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Aðferð í forritsskilum fannst ekki!" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ekkert svoleiðis babl." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Þú ert ekki áskrifandi." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Gat ekki vistað áskrift." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Fólk sem eru áskrifendur að %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Óþekkt skráargerð" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +#, fuzzy +msgid "No such attachment." +msgstr "Ekkert þannig merki." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Ekkert stuttnefni." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Engin stærð." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ótæk stærð." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Mynd" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 -#, php-format +#, fuzzy, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" +msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Notandi með enga persónulega síðu sem passar við" +msgstr "Notandi hefur enga persónulega síðu." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Stillingar fyrir mynd" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Upphafleg mynd" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forsýn" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Eyða" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Hlaða upp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Skera af" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "Engin persónuleg síða tilgreind" -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" "Veldu ferningslaga svæði á upphaflegu myndinni sem einkennismyndina þína" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Týndum skráargögnunum okkar" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Mynd hefur verið uppfærð." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Mistókst að uppfæra mynd" -#: actions/avatarsettings.php:397 -msgid "Avatar deleted." -msgstr "" - -#: actions/block.php:69 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 #, fuzzy -msgid "You already blocked that user." -msgstr "Þú hefur nú þegar lokað á þennan notanda." +msgid "Avatar deleted." +msgstr "Mynd hefur verið uppfærð." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 +msgid "You already blocked that user." +msgstr "Þú ert nú þegar í áskrift að þessum notendum:" + +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Loka á notanda" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -856,184 +1489,229 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Nei" +msgstr "Athugasemd" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 #, fuzzy msgid "Do not block this user" msgstr "Opna á þennan notanda" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "Já" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Loka á þennan notanda" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Mistókst að vista upplýsingar um notendalokun" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Enginn þannig hópur." -#: actions/blockedfromgroup.php:97 -#, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, fuzzy, php-format msgid "%s blocked profiles" -msgstr "" +msgstr "Persónuleg síða notanda" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s og vinirnir, síða %d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 +#, fuzzy msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "Listi yfir notendur í þessum hóp." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 +#, fuzzy msgid "Unblock user from group" -msgstr "" +msgstr "Mistókst að opna fyrir notanda." -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Opna" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Opna á þennan notanda" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Ljósmynd" +msgstr "Svör við %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Enginn staðfestingarlykill." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Staðfestingarlykill fannst ekki." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Þessi staðfestingarlykill er ekki fyrir þig!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Óþekkt gerð tölvupóstfangs %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Þetta tölvupóstfang hefur nú þegar verið staðfest." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Gat ekki uppfært notanda." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Gat ekki eytt tölvupóstsstaðfestingu." -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Staðfesta tölvupóstfang" +msgstr "Núverandi staðfesta tölvupóstfangið." -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" "Þetta tölvupóstfang, \"%s\", hefur verið staðfest fyrir aðganginn þinn." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 +#, fuzzy msgid "Conversation" -msgstr "" +msgstr "Staðfestingarlykill" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Babl" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." +msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Babl hefur enga persónulega síðu" +msgstr "Staðfestingarlykill fannst ekki." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 #, fuzzy msgid "You are not the owner of this application." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Það komu upp vandamál varðandi setutókann þinn." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 #, fuzzy msgid "Delete application" msgstr "Ekkert svoleiðis babl." -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1041,53 +1719,116 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy +#: actions/deleteapplication.php:161 msgid "Do not delete this application" -msgstr "Gat ekki uppfært hóp." +msgstr "Get ekki eytt þessu babli." #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "Eyða þessu babli" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ekkert stuttnefni." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Þú ert ekki meðlimur í þessum hópi." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Gat ekki uppfært hóp." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "Staða %1$s á %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Eyða" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Get ekki eytt þessu babli." + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Eyða þessu babli" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ekki innskráð(ur)." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Get ekki eytt þessu babli." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Eyða babli" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Ertu viss um að þú viljir eyða þessu babli?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 +#, fuzzy msgid "Do not delete this notice" -msgstr "" +msgstr "Get ekki eytt þessu babli." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1120,69 +1861,79 @@ msgstr "Eyða þessu babli" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Ótæk stærð." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Ótæk stærð." + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Þessi síða er ekki aðgengileg í " -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 #, fuzzy msgid "Change logo" msgstr "Breyta" -#: actions/designadminpanel.php:431 -#, fuzzy +#: actions/designadminpanel.php:453 msgid "Site logo" -msgstr "Bjóða" +msgstr "Babl vefsíðunnar" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Babl vefsíðunnar" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Breyta" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 #, fuzzy msgid "Site theme" msgstr "Babl vefsíðunnar" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 #, fuzzy msgid "Theme for the site." msgstr "Skrá þig út af síðunni" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Babl vefsíðunnar" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1190,75 +1941,88 @@ msgid "" msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 +#, fuzzy msgid "Change colours" -msgstr "" +msgstr "Breyta lykilorðinu þínu" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 +#, fuzzy msgid "Content" -msgstr "" +msgstr "Tengjast" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 +#, fuzzy msgid "Sidebar" -msgstr "" +msgstr "Leita" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texti" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 +#, fuzzy msgid "Links" -msgstr "" +msgstr "Innskráning" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Vista" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "" @@ -1271,133 +2035,151 @@ msgid "Add to favorites" msgstr "Bæta við sem uppáhaldsbabli" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Ekkert svoleiðis skjal." +msgstr "Ekkert svoleiðis babl." -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Aðrir valkostir" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 #, fuzzy msgid "You must be logged in to edit an application." msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Ekkert svoleiðis babl." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "Notaðu þetta eyðublað til að breyta hópnum." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 #, fuzzy msgid "Name is required." msgstr "Sama og lykilorðið hér fyrir ofan. Nauðsynlegt." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 #, fuzzy msgid "Description is required." msgstr "Lýsing" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "Heimasíða er ekki gild vefslóð." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." +msgid "Organization is too long (maximum 255 characters)." msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Gat ekki uppfært hóp." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Breyta hópnum %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "Þú verður að vera stjórnandi til að geta breytt hópnum" +msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Notaðu þetta eyðublað til að breyta hópnum." -#: actions/editgroup.php:205 actions/newgroup.php:145 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 -#, php-format msgid "Invalid alias: \"%s\"" -msgstr "" +msgstr "Ógilt merki: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Gat ekki uppfært hóp." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 +#, fuzzy msgid "Could not create aliases." -msgstr "" +msgstr "Gat ekki búið til uppáhald." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Valmöguleikar vistaðir." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Tölvupóstsstillingar" +msgstr "Stillingar persónulegrar síðu" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1408,13 +2190,13 @@ msgstr "Stilla það hvernig þú færð tölvupóst frá %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 #, fuzzy msgid "Email address" msgstr "Tölvupóstföng" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Núverandi staðfesta tölvupóstfangið." @@ -1423,15 +2205,14 @@ msgstr "Núverandi staðfesta tölvupóstfangið." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "Fjarlægja" +msgstr "Endurheimta" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1439,26 +2220,19 @@ msgstr "" "Býð eftir staðfestingu frá þessu netfangi. Athugaðu innhólfið þitt (og " "ruslpóstinn þinn!). Þar ættu að vera skilaboð með ítarlegri leiðbeiningum." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Hætta við" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Tölvupóstfang eins og \"notandi@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1467,113 +2241,120 @@ msgstr "Bæta við" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Móttökutölvupóstur" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Ég vil babla í gegnum tölvupóst." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Sendu tölvupóst á þetta póstfang til þess að senda inn nýtt babl." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Búa til nýtt tölvupóstfang til að senda til. Skrifar yfir það gamla." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Nýtt" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Stillingar" +msgstr "Tölvupóstföng" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Sendu mér tilkynningu varðandi nýjar áskriftir í gegnum tölvupóst." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Senda mér tölvupóst þegar einhver setur babl í mér í uppáhald hjá sér." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Senda mér tölvupóst þegar einhver sendir mér persónuleg skilaboð." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 +#, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "Senda mér tölvupóst þegar einhver sendir mér persónuleg skilaboð." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Leyfa vinum að ýta við mér og senda mér tölvupóst." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Ég vil babla í gegnum tölvupóst." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Birta MicroID fyrir tölvupóstfangið mitt." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "Stillingar vistaðar." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Ekkert tölvupóstfang." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Get ekki staðlað þetta tölvupóstfang" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ekki tækt tölvupóstfang." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Þetta er nú þegar tölvupóstfangið þitt." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Þetta tölvupóstfang tilheyrir öðrum notanda." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Gat ekki sett inn staðfestingarlykil." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1585,53 +2366,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Engin staðfesting í bið sem þarf að hætta við." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Þetta er rangt snarskilaboðafang." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Gat ekki eytt tölvupóstsstaðfestingu." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Hætt við staðfestingu." +msgstr "Engin staðfesting í bið sem þarf að hætta við." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Þetta er ekki tölvupóstfangið þitt." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Tölvupóstfangið hefur verið fjarlægt." +msgstr "Móttökutölvupóstfang fjarlægt." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ekkert móttökutölvupóstfang." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Gat ekki uppfært skráarfærslu notanda." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Móttökutölvupóstfang fjarlægt." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nýju móttökutölvupóstfangi bætt við." @@ -1639,11 +2424,11 @@ msgstr "Nýju móttökutölvupóstfangi bætt við." msgid "This notice is already a favorite!" msgstr "Þetta babl er nú þegar í uppáhaldi!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Ekki lengur í uppáhaldi" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Vinsælt babl" @@ -1675,7 +2460,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Uppáhaldsbabl %s" @@ -1737,9 +2522,8 @@ msgid "That user has blocked you from subscribing." msgstr "Þessi notandi hefur bannað þér að gerast áskrifandi" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Engin heimild." +msgstr "Þú ert ekki áskrifandi." #: actions/finishremotesubscribe.php:113 #, fuzzy @@ -1751,7 +2535,7 @@ msgstr "Gat ekki breytt beiðnistókum í aðgangstóka." msgid "Remote service uses unknown version of OMB protocol." msgstr "Óþekkt útgáfa OMB samskiptamátans." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Villa kom upp í uppfærslu persónulegrar fjarsíðu" @@ -1776,47 +2560,54 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Þú getur ekki sent þessum notanda skilaboð." +msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." #: actions/grantrole.php:82 #, fuzzy msgid "User already has this role." msgstr "Notandi hefur enga persónulega síðu." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Engin persónuleg síða tilgreind" -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Engin persónulega síða með þessu einkenni" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 +#, fuzzy msgid "No group specified." -msgstr "" +msgstr "Engin persónuleg síða tilgreind" #: actions/groupblock.php:91 msgid "Only an admin can block group members." msgstr "" #: actions/groupblock.php:95 +#, fuzzy msgid "User is already blocked from group." -msgstr "" +msgstr "Notandinn hefur lokað á þig." #: actions/groupblock.php:100 +#, fuzzy msgid "User is not a member of group." -msgstr "" +msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 +#, fuzzy msgid "Block user from group" -msgstr "" +msgstr "Loka á notanda" #: actions/groupblock.php:160 #, php-format @@ -1828,30 +2619,33 @@ msgstr "" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 +#, fuzzy msgid "Do not block this user from this group" -msgstr "" +msgstr "Listi yfir notendur í þessum hóp." #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 +#, fuzzy msgid "Block this user from this group" -msgstr "" +msgstr "Listi yfir notendur í þessum hóp." #: actions/groupblock.php:206 msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Ekkert einkenni" +msgstr "Ekkert Jabber-kenni" #: actions/groupdesignsettings.php:68 +#, fuzzy msgid "You must be logged in to edit a group." -msgstr "" +msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." #: actions/groupdesignsettings.php:144 +#, fuzzy msgid "Group design" -msgstr "" +msgstr "Hópar" #: actions/groupdesignsettings.php:155 msgid "" @@ -1859,28 +2653,42 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 +#, fuzzy msgid "Couldn't update your design." -msgstr "" +msgstr "Gat ekki uppfært hóp." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +#, fuzzy msgid "Design preferences saved." -msgstr "" +msgstr "Stillingar vistaðar." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Einkennismynd hópsins" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "" +msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Hlaða upp" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Skera af" #: actions/grouplogo.php:365 +#, fuzzy msgid "Pick a square area of the image to be the logo." msgstr "" +"Veldu ferningslaga svæði á upphaflegu myndinni sem einkennismyndina þína" #: actions/grouplogo.php:399 msgid "Logo updated." @@ -1890,49 +2698,56 @@ msgstr "Einkennismynd uppfærð." msgid "Failed updating logo." msgstr "Tókst ekki að uppfæra einkennismynd" -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Hópmeðlimir %s" -#: actions/groupmembers.php:103 -#, fuzzy, php-format +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format msgid "%1$s group members, page %2$d" -msgstr "Hópmeðlimir %s, síða %d" +msgstr "Hópmeðlimir %s" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Listi yfir notendur í þessum hóp." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Stjórnandi" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Loka" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Rás %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, fuzzy, php-format @@ -1964,11 +2779,13 @@ msgid "Create a new group" msgstr "Búa til nýjan hóp" #: actions/groupsearch.php:52 -#, php-format +#, fuzzy, 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 "" +"Leita að fólki á %%site.name%% eftir nafni, staðsetningu eða áhugamáli. " +"Leitarorð eru aðskilin með bili og verða að vera að minnsta kosti 3 tákn." #: actions/groupsearch.php:58 msgid "Group search" @@ -1976,8 +2793,9 @@ msgstr "Hópleit" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 +#, fuzzy msgid "No results." -msgstr "" +msgstr "Niðurstöður skipunar" #: actions/groupsearch.php:82 #, php-format @@ -1993,23 +2811,26 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 +#, fuzzy msgid "User is not blocked from group." -msgstr "" +msgstr "Notandinn hefur lokað á þig." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Vill kom upp við að aflétta notendalokun." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Snarskilaboðastillingar" +msgstr "Stillingar fyrir mynd" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2033,9 +2854,8 @@ msgstr "Þessi síða er ekki aðgengileg í " #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "Snarskilaboðafang" +msgstr "Tölvupóstföng" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2055,7 +2875,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2066,65 +2889,64 @@ msgstr "" "á GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Stillingar" +msgstr "Stillingar vistaðar." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Sendur mér babl í gegnum Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Senda inn babl þegar Jabber/GTalk staðan breytist." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Sendu mér svör í gegnum Jabber/GTalk frá fólki sem ég er ekki áskrifandi að." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Birta MicroID fyrir Jabber/GTalk netfangið mitt." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Stillingar vistaðar." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Ekkert Jabber-kenni" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Get ekki staðlað þetta Jabber kenni" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Ekki tækt Jabber-kenni" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Þetta er nú þegar Jabber-kennið þitt." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber-kennið tilheyrir öðrum notanda." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2134,33 +2956,31 @@ msgstr "" "við. Þú verður að leyfa %s að senda snarskilaboð til þín." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Þetta er rangt snarskilaboðafang." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Gat ekki eytt tölvupóstsstaðfestingu." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Hætt við staðfestingu." +msgstr "Enginn staðfestingarlykill." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Þetta er ekki Jabber-kennið þitt." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Tölvupóstfangið hefur verið fjarlægt." +msgstr "Móttökutölvupóstfang fjarlægt." #: actions/inbox.php:59 #, fuzzy, php-format @@ -2177,50 +2997,81 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Þetta er innhólfið þitt sem sýnir persónuleg skilaboð sem voru send til þín." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "Þú verður að vera innskráð(ur) til að geta boðið öðrum að nota %s" - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" +msgid "You must be logged in to invite other users to use %s." +msgstr "Þú verður að hafa skráð þig inn til að bæta þér í hóp." + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Ótækt tölvupóstfang: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Boðskort hefur verið sent út" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Bjóða nýjum notendum að vera með" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Þú ert nú þegar í áskrift að þessum notendum:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Þú ert nú þegar í áskrift að þessum notendum:" +msgstr[1] "Þú ert nú þegar í áskrift að þessum notendum:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Þetta fólk er nú þegar notendur og þú varðst sjálfkrafa áskrifandi að þeim:" +msgstr[1] "" "Þetta fólk er nú þegar notendur og þú varðst sjálfkrafa áskrifandi að þeim:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Boðskort sent á eftirfarandi aðila:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Boðskort sent á eftirfarandi aðila:" +msgstr[1] "Boðskort sent á eftirfarandi aðila:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2228,44 +3079,55 @@ msgstr "" "Við sendum þér tilkynningu þegar þeir sem þú býður samþykkja boðskortið og " "skrá sig á síðuna. Takk fyrir að stækka samfélagið!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Notaðu þetta eyðublað til þess að bjóða vinum þínum og kunningjum að nota " "þessa örbloggsþjónustu." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Tölvupóstföng" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Tölvupóstfang vina sem þú vilt bjóða (eitt póstfang í hverja línu)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Persónuleg skilaboð" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Senda" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s hefur boðið þér að slást í hópinn með þeim á %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2326,14 +3188,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Þú verður að hafa skráð þig inn til að bæta þér í hóp." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Ekkert stuttnefni." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s bætti sér í hópinn %s" @@ -2342,16 +3197,121 @@ msgstr "%s bætti sér í hópinn %s" msgid "You must be logged in to leave a group." msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Þú ert ekki meðlimur í þessum hópi." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s gekk úr hópnum %s" +msgstr "Staða %1$s á %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Friðhelgi" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2374,11 +3334,11 @@ msgstr "Innskráning" msgid "Login to site" msgstr "Skrá þig inn á síðuna" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Muna eftir mér" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Sjálfvirk innskráning í framtíðinni. Ekki nota þetta á tölvu sem aðrir deila " @@ -2434,72 +3394,83 @@ msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s" msgid "No current status." msgstr "Engin núverandi staða" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" +msgid "New application" msgstr "Ekkert svoleiðis babl." -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "Notaðu þetta eyðublað til að búa til nýjan hóp." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Gat ekki búið til uppáhald." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nýr hópur" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Notaðu þetta eyðublað til að búa til nýjan hóp." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Ný skilaboð" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Þú getur ekki sent þessum notanda skilaboð." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Ekkert innihald!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Enginn móttökuaðili tilgreindur." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Ekki senda þér skilaboð. Þú getur sagt þetta í hljóði við sjálfa(n) þig í " "staðinn." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 +#, fuzzy msgid "Message sent" -msgstr "" +msgstr "Skilaboð" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Bein skilaboð send til %s" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax villa" @@ -2507,7 +3478,7 @@ msgstr "Ajax villa" msgid "New notice" msgstr "Nýtt babl" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Babl sent inn" @@ -2549,14 +3520,15 @@ msgid "Updates with \"%s\"" msgstr "" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Allar færslur sem passa við \"%s\"" +msgstr "Færslur frá %1$s á %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Þessi notandi leyfir ekki að ýta við sér eða hefur ekki staðfest eða skráð " "tölvupóstinn sinn." @@ -2569,76 +3541,100 @@ msgstr "Ýtt við notanda" msgid "Nudge sent!" msgstr "Ýtt við notanda!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 #, fuzzy msgid "You must be logged in to list your applications." msgstr "Þú verður að hafa skráð þig inn til að bæta þér í hóp." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 #, fuzzy msgid "OAuth applications" msgstr "Aðrir valkostir" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Notaðu þetta eyðublað til að breyta hópnum." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Babl hefur enga persónulega síðu" +msgstr "Notandi hefur enga persónulega síðu." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Staða %1$s á %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -2650,37 +3646,47 @@ msgstr "Leit að fólki" msgid "Notice Search" msgstr "Leit í babli" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Aðrar stillingar" +msgstr "Stillingar fyrir mynd" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Sjá um ýmsar aðrar stillingar." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Þjónusta sem sér um sjálfkrafa styttingu." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 +#, fuzzy msgid "View profile designs" -msgstr "" +msgstr "Stillingar persónulegrar síðu" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "" "Þjónusta sjálfvirkrar vefslóðastyttingar er of löng (í mesta lagi 50 stafir)." @@ -2695,9 +3701,8 @@ msgid "No login token specified." msgstr "Engin persónuleg síða tilgreind" #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Ekkert einkenni persónulegrar síðu í beiðni." +msgstr "Engin heimildarbeiðni!" #: actions/otp.php:95 #, fuzzy @@ -2749,7 +3754,7 @@ msgid "6 or more characters" msgstr "6 eða fleiri tákn" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Staðfesta" @@ -2761,11 +3766,11 @@ msgstr "Sama og lykilorðið hér fyrir ofan" msgid "Change" msgstr "Breyta" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Lykilorð verður að vera að minnsta kosti 6 tákn." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Lykilorðin passa ekki saman." @@ -2785,166 +3790,292 @@ msgstr "Get ekki vistað nýja lykilorðið." msgid "Password saved." msgstr "Lykilorð vistað." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Þessi síða er ekki aðgengileg í " +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Þessi síða er ekki aðgengileg í " -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Þessi síða er ekki aðgengileg í " -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Þessi síða er ekki aðgengileg í " -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 #, fuzzy msgid "Site" msgstr "Bjóða" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 #, fuzzy msgid "Server" msgstr "Endurheimta" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" +msgid "Site path." msgstr "Babl vefsíðunnar" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Þessi síða er ekki aðgengileg í " + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "" - -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 #, fuzzy -msgid "Avatars" -msgstr "Mynd" +msgid "Server for themes." +msgstr "Skrá þig út af síðunni" -#: actions/pathsadminpanel.php:284 -#, fuzzy -msgid "Avatar server" -msgstr "Stillingar fyrir mynd" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "Mynd hefur verið uppfærð." - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "SMS" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Endurheimta" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "Babl" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 #, fuzzy msgid "SSL server" msgstr "Endurheimta" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Babl vefsíðunnar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +#, fuzzy +msgid "Avatars" +msgstr "Mynd" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +#, fuzzy +msgid "Avatar server" +msgstr "Stillingar fyrir mynd" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Skrá þig út af síðunni" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +#, fuzzy +msgid "Avatar path" +msgstr "Mynd hefur verið uppfærð." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Mistókst að uppfæra mynd" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Skrá þig út af síðunni" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Skrá þig út af síðunni" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Ekkert svoleiðis skjal." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Skrá þig út af síðunni" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +#, fuzzy +msgid "SSL" +msgstr "SMS" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +#, fuzzy +msgid "Never" +msgstr "Endurheimta" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +#, fuzzy +msgid "Sometimes" +msgstr "Babl" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Babl vefsíðunnar" @@ -2963,9 +4094,9 @@ msgid "People search" msgstr "Leit að fólki" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "Ekki gilt persónumerki: %s" +msgstr "Ekki tækt tölvupóstfang." #: actions/peopletag.php:142 #, fuzzy, php-format @@ -2973,154 +4104,198 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Notendur sjálfmerktir með %s - síða %d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Ótækt bablinnihald" +msgstr "Ótæk stærð." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Stillingar persónulegrar síðu" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Þú getur uppfært persónulegu síðuna þína hér þannig að fólk geti lært meira " "um þig." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Upplýsingar á persónulegri síðu" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 lágstafir eða tölustafir, engin greinarmerki eða bil" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Fullt nafn" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Heimasíða" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "" "Veffang heimasíðunnar þinnar, bloggsins þíns eða persónulegrar síðu á öðru " "vefsvæði" -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Lýstu þér og áhugamálum þínum í 140 táknum" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Lýstu þér og áhugamálum þínum í 140 táknum" +msgstr[1] "Lýstu þér og áhugamálum þínum í 140 táknum" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 #, fuzzy msgid "Describe yourself and your interests" msgstr "Lýstu þér og þínum " -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Lýsing" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Staðsetning" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Staðsetning þín, eins og \"borg, sýsla, land\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Merki" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Tungumál" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Tungumál (ákjósanlegt)" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tímabelti" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Í hvaða tímabelti eru í rauninni?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Lýsingin er of löng (í mesta lagi 140 tákn)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Staðsetning er of löng (í mesta lagi %d stafir)." +msgstr[1] "Staðsetning er of löng (í mesta lagi %d stafir)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tímabelti ekki valið." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Tungumál er of langt (í mesta lagi 50 stafir)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ógilt merki: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Gat ekki uppfært notanda í sjálfvirka áskrift." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Gat ekki vistað merki." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Gat ekki vistað persónulega síðu." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Gat ekki vistað merki." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Stillingar vistaðar." @@ -3188,32 +4363,45 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Merkjaský almenningsins" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Þetta eru vinsælustu nýlegu merkin á %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Merkjaský" @@ -3248,22 +4436,27 @@ msgid "Could not update user with confirmed email address." msgstr "Gat ekki uppfært notanda með staðfestu tölvupóstfangi." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"Leiðbeiningar um það hvernig þú getur endurheimt lykilorðið þitt hafa verið " +"sendar á tölvupóstfangið sem er tengt notendaaðganginum þínum." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Beiðni um að endurheimta lykilorð hefur verið send inn" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Sláðu inn stuttnefni eða tölvupóstfang." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3326,14 +4519,15 @@ msgid "Unexpected password reset." msgstr "Bjóst ekki við endurstillingu lykilorðs." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Lykilorð verður að vera 6 tákn eða fleiri." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Lykilorð og staðfesting passa ekki saman." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Villa kom upp í stillingu notanda." @@ -3341,19 +4535,20 @@ msgstr "Villa kom upp í stillingu notanda." msgid "New password successfully saved. You are now logged in." msgstr "Tókst að vista nýtt lykilorð. Þú ert núna innskráð(ur)" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Afsakið en aðeins fólki sem er boðið getur nýskráð sig." #: actions/register.php:99 +#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "" +msgstr "Villa kom upp varðandi staðfestingarlykilinn." #: actions/register.php:119 msgid "Registration successful" msgstr "Nýskráning tókst" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Nýskrá" @@ -3361,82 +4556,88 @@ msgstr "Nýskrá" msgid "Registration not allowed." msgstr "Nýskráning ekki leyfð." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Þú getur ekki nýskráð þig nema þú samþykkir leyfið." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Tölvupóstfang er nú þegar skráð." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Ótækt notendanafn eða lykilorð." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 lágstafir eða tölustafir, engin greinarmerki eða bil. Nauðsynlegt." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 eða fleiri tákn. Nauðsynlegt" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Sama og lykilorðið hér fyrir ofan. Nauðsynlegt." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Tölvupóstur" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Aðeins notað fyrir uppfærslur, tilkynningar og endurheimtingu lykilorða." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Lengra nafn, ákjósalegast að það sé \"rétta\" nafnið þitt" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" +"Veffang heimasíðunnar þinnar, bloggsins þíns eða persónulegrar síðu á öðru " +"vefsvæði" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3469,7 +4670,7 @@ msgstr "" "\n" "Takk fyrir að skrá þig og við vonum að þú njótir þjónustunnar." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3494,8 +4695,9 @@ msgid "Remote subscribe" msgstr "Fara í fjaráskrift" #: actions/remotesubscribe.php:124 +#, fuzzy msgid "Subscribe to a remote user" -msgstr "" +msgstr "Gerast áskrifandi að þessum notanda" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -3514,7 +4716,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Veffang persónulegrar síðu á samvirkandi örbloggsþjónustu" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Gerast áskrifandi" @@ -3559,7 +4761,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -3569,15 +4771,15 @@ msgid "Repeated!" msgstr "" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Svör við %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Skilaboð til %1$s á %2$s" +msgstr "Svör við %s" #: actions/replies.php:145 #, php-format @@ -3590,9 +4792,9 @@ msgid "Replies feed for %s (RSS 2.0)" msgstr "" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Bablveita fyrir hópinn %s" +msgstr "Svör við %s" #: actions/replies.php:199 #, php-format @@ -3621,9 +4823,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Skilaboð til %1$s á %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Þú getur ekki sent þessum notanda skilaboð." +msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." #: actions/revokerole.php:82 #, fuzzy @@ -3646,12 +4847,12 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3671,7 +4872,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Stillingar fyrir mynd" @@ -3687,30 +4887,31 @@ msgid "Application profile" msgstr "Babl hefur enga persónulega síðu" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Stuttnefni" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 #, fuzzy msgid "Organization" msgstr "Uppröðun" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Tölfræði" @@ -3728,6 +4929,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Eyða" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3812,77 +5018,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s hópurinn" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "Hópmeðlimir %s, síða %d" +msgstr "Hópar, síða %d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Hópssíðan" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "Vefslóð" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Athugasemd" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Hópsaðgerðir" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s hópurinn" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Meðlimir" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ekkert)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Allir meðlimir" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "" +msgstr "Í sviðsljósinu" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Meðlimir" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3892,7 +5127,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3901,24 +5139,32 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 +#, fuzzy msgid "Admins" -msgstr "" +msgstr "Stjórnandi" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Engin þannig skilaboð." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Aðeins sendandi og móttakandi geta lesið þessi skilaboð." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Skilaboð til %1$s á %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Skilaboð frá %1$s á %2$s" @@ -3928,60 +5174,84 @@ msgstr "Skilaboð frá %1$s á %2$s" msgid "Notice deleted." msgstr "Babl sent inn" -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "" - -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid "%1$s, page %2$d" -msgstr "%s og vinirnir, síða %d" +msgid "%1$s tagged %2$s" +msgstr "Hópar, síða %d" -#: actions/showstream.php:122 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Babl merkt með %s" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format +msgid "%1$s, page %2$d" +msgstr "Hópar, síða %d" + +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, fuzzy, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Bablveita fyrir %s" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "" -#: actions/showstream.php:148 -#, php-format +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, fuzzy, php-format msgid "FOAF for %s" -msgstr "" +msgstr "Úthólf %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3990,7 +5260,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3998,7 +5270,8 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Svör við %s" @@ -4021,9 +5294,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Ekki tækt tölvupóstfang" +msgstr "Ekki tækt tölvupóstfang." #: actions/siteadminpanel.php:159 #, php-format @@ -4114,44 +5386,50 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "Babl vefsíðunnar" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Ný skilaboð" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Vandamál komu upp við að vista babl." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "Babl vefsíðunnar" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "Babl vefsíðunnar" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "SMS stillingar" +msgstr "Stillingar fyrir mynd" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4168,9 +5446,8 @@ msgstr "Þessi síða er ekki aðgengileg í " #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Snarskilaboðafang" +msgstr "Tölvupóstföng" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4201,9 +5478,8 @@ msgstr "Staðfesta" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "SMS símanúmer" +msgstr "Ekkert símanúmer." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4212,9 +5488,8 @@ msgstr "Símanúmer, með svæðisnúmeri ef við á, án greinarmerkja eða bil #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Stillingar" +msgstr "Stillingar vistaðar." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4253,10 +5528,14 @@ msgstr "Þetta símanúmer tilheyri nú þegar öðrum notanda." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 +#, 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 "" +"Staðfestingarlykill var sendur á tölvupóstfangið sem þú varst að bæta við. " +"Athugaðu innhólfið þitt (og ruslpóstinn þinn!). Þar ætti " +"staðfestingarlykillinn að vera og leiðbeingar um hvernig eigi að nota hann. " #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4265,9 +5544,8 @@ msgstr "Þetta er rangur staðfestingarlykill." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Hætt við staðfestingu." +msgstr "SMS staðfesting" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4310,14 +5588,13 @@ msgstr "Enginn lykill sleginn inn" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Stikl aðalsíðu" +msgstr "Staðfesting tölvupóstfangs" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4368,12 +5645,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Stillingar fyrir mynd" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Þú ert ekki áskrifandi." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Gat ekki vistað áskrift." @@ -4381,11 +5660,6 @@ msgstr "Gat ekki vistað áskrift." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Ekkert svoleiðis babl." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4395,63 +5669,84 @@ msgstr "Þú ert ekki áskrifandi." msgid "Subscribed" msgstr "Þú ert nú í áskrift" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s áskrifendur" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%s áskrifendur, síða %d" +msgstr "%s áskrifendur" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Þetta er fólkið sem hlustar á bablið í þér." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Þetta er fólkið sem hlustar á bablið í %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format -msgid "%s subscriptions" +msgid "%1$s subscriptions, page %2$d" msgstr "%s áskriftir" -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "%s áskriftir, síða %d" - -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Þetta er fólkið sem þú hlustar á bablið í." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Þetta er fólkið sem %s hlustar á bablið í." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4461,23 +5756,34 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, fuzzy, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "%1$s er að hlusta á bablið þitt á %2$s." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Svör við %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber snarskilaboðaþjónusta" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Notendur sjálfmerktir með %s - síða %d" +msgstr "Babl merkt með %s" #: actions/tag.php:87 #, php-format @@ -4509,7 +5815,7 @@ msgid "User profile" msgstr "Persónuleg síða notanda" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Ljósmynd" @@ -4547,9 +5853,8 @@ msgid "No such tag." msgstr "Ekkert þannig merki." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Þú hefur nú þegar lokað á þennan notanda." +msgstr "Þú ert ekki áskrifandi." #: actions/unsandbox.php:72 #, fuzzy @@ -4562,9 +5867,8 @@ msgid "User is not silenced." msgstr "Notandi hefur enga persónulega síðu." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Ekkert einkenni persónulegrar síðu í beiðni." +msgstr "Engin persónulega síða með þessu einkenni" #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4577,82 +5881,103 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "Notandi" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Persónuleg síða" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Bjóða nýjum notendum að vera með" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Allar áskriftir" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Gerast sjálfkrafa áskrifandi að hverjum þeim sem gerist áskrifandi að þér " "(best fyrir ómannlega notendur)" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Boðskort hefur verið sent út" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Boðskort hefur verið sent út" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Heimila áskriftir" @@ -4668,7 +5993,9 @@ msgstr "" "gerast áskrifandi að babli þessa notanda. Ef þú baðst ekki um að gerast " "áskrifandi að babli, smelltu þá á \"Hætta við\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "" @@ -4686,8 +6013,9 @@ msgid "Reject" msgstr "Hafna" #: actions/userauthorization.php:220 +#, fuzzy msgid "Reject this subscription" -msgstr "" +msgstr "%s áskriftir" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4757,11 +6085,14 @@ msgstr "Get ekki lesið slóðina fyrir myndina '%s'" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Röng gerð myndar fyrir '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 +#, fuzzy msgid "Profile design" -msgstr "" +msgstr "Stillingar persónulegrar síðu" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4773,18 +6104,18 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "Hópmeðlimir %s, síða %d" +msgstr "Hópar, síða %d" #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" #: actions/usergroups.php:159 -#, php-format +#, fuzzy, php-format msgid "%s is not a member of any group." -msgstr "" +msgstr "Þú ert ekki meðlimur í þessum hópi." #: actions/usergroups.php:164 #, php-format @@ -4797,7 +6128,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Færslur frá %1$s á %2$s!" @@ -4846,7 +6177,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 #, fuzzy msgid "Version" msgstr "Persónulegt" @@ -4855,64 +6186,111 @@ msgstr "Persónulegt" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Uppáhald" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Senda mér tölvupóst þegar einhver setur babl í mér í uppáhald hjá sér." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Ótæk stærð." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Hópssíðan" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Gat ekki uppfært hóp." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Hópssíðan" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Villa kom upp í vistun notanda: ótækt." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Gerast meðlimur" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4932,18 +6310,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Villa kom upp við að senda bein skilaboð" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Gat ekki skeytt skilaboðum inn í." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Gat ekki uppfært skilaboð með nýju veffangi." @@ -4955,23 +6333,24 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" +msgstr "Villa kom upp við að setja inn mynd" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 +#, fuzzy msgid "Problem saving notice. Too long." -msgstr "" +msgstr "Vandamál komu upp við að vista babl." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Gat ekki vistað babl. Óþekktur notandi." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4979,51 +6358,68 @@ msgstr "" "mínútur." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 +#, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"Of mikið babl í einu; slakaðu aðeins á og haltu svo áfram eftir nokkrar " +"mínútur." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Gat ekki vistað áskrift." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5035,256 +6431,283 @@ msgid "Missing profile." msgstr "Notandi hefur enga persónulega síðu." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Vandamál komu upp við að vista babl." +msgstr "Gat ekki vistað merki." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 #, fuzzy msgid "You have been banned from subscribing." msgstr "Þessi notandi hefur bannað þér að gerast áskrifandi" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Ekki í áskrift!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Notandinn hefur lokað á þig." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Ekki í áskrift!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Gat ekki eytt áskrift." +msgstr "Gat ekki vistað áskrift." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Gat ekki eytt áskrift." +msgstr "Gat ekki vistað áskrift." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Gat ekki eytt áskrift." +msgstr "Gat ekki vistað áskrift." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s er að hlusta á bablið þitt á %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 -#, php-format +#: classes/User.php:395 +#, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" +msgstr "Skilaboð til %1$s á %2$s" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." msgstr "" #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Gat ekki búið til hóp." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Gat ekki skráð hópmeðlimi." +msgstr "Gat ekki búið til hóp." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Gat ekki skráð hópmeðlimi." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "Gat ekki vistað áskrift." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Breyta persónulegu stillingunum þínum" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Hlaða upp einkennismynd" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Breyta lykilorðinu þínu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Breyta tölvupóstumsjón" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 +#, fuzzy msgid "Design your profile" -msgstr "" +msgstr "Persónuleg síða notanda" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Aðrir valkostir" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Annað" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, fuzzy, php-format msgid "%1$s - %2$s" msgstr "%1$s (%2$s)" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Ónafngreind síða" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Stikl aðalsíðu" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persónuleg síða og vinarás" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Persónulegt" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "" -"Breyttu tölvupóstinum þínum, einkennismyndinni þinni, lykilorðinu þínu, " -"persónulegu síðunni þinni" +msgstr "Breyta lykilorðinu þínu" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Aðgangur" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Gat ekki framsent til vefþjóns: %s" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Tengjast" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Stikl aðalsíðu" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Stjórnandi" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjóða vinum og vandamönnum að slást í hópinn á %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Bjóða" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Skrá þig út af síðunni" +msgstr "Skrá þig inn á síðuna" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "Útskráning" +msgstr "Einkennismerki" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Búa til aðgang" +msgstr "Búa til nýjan hóp" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Nýskrá" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Skrá þig inn á síðuna" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Innskráning" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Hjálp!" +msgstr "Hjálp" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hjálp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Leita að fólki eða texta" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5292,71 +6715,77 @@ msgstr "Leita" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Babl vefsíðunnar" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Staðbundin sýn" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Babl síðunnar" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Stikl undirsíðu" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hjálp" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Um" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Spurt og svarað" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Friðhelgi" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Frumþula" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Tengiliður" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 +#, fuzzy msgid "Badge" -msgstr "" +msgstr "Pot" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Hugbúnaðarleyfi StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5366,13 +6795,16 @@ msgstr "" "broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** er örbloggsþjónusta." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5384,364 +6816,475 @@ msgstr "" "licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 #, fuzzy msgid "Site content license" msgstr "Hugbúnaðarleyfi StatusNet" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Uppröðun" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Eftir" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Áður" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Ljósmynd" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Þú getur ekki sent þessum notanda skilaboð." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Nýskráning ekki leyfð." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "Skipun hefur ekki verið fullbúin" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "Skipun hefur ekki verið fullbúin" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "Staðfesting tölvupóstfangs" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Bjóða" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "SMS staðfesting" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Persónulegt" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "SMS staðfesting" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Notandi" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "SMS staðfesting" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "SMS staðfesting" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "SMS staðfesting" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "Babl vefsíðunnar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "SMS staðfesting" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Gat ekki búið til uppáhald." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Gat ekki búið til uppáhald." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Gat ekki skeytt skilaboðum inn í." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" +msgstr[1] "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" +msgstr "Lýsing" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "Vefslóð vefsíðu hópsins eða umfjöllunarefnisins" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Frumþula" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "Vefslóð vefsíðu hópsins eða umfjöllunarefnisins" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Hætta við" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Fjarlægja" +msgstr "Endurheimta" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 +#, fuzzy msgid "Provider" -msgstr "" +msgstr "Forsýn" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Lykilorðabreyting" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Lykilorðabreyting" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Loka" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Niðurstöður skipunar" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax villa" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Fullkláruð skipun" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Misheppnuð skipun" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Enginn persónuleg síða með þessu einkenni." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "Notandi hefur ekkert nýtt babl" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Gat ekki uppfært notanda með staðfestu tölvupóstfangi." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Gat ekki uppfært notanda með staðfestu tölvupóstfangi." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Fyrirgefðu en þessi skipun hefur ekki enn verið útbúin." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Ýtt við notanda" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5749,207 +7292,249 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Babl gert að uppáhaldi." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Þú ert nú þegar meðlimur í þessum hópi" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Gat ekki bætt notandanum %s í hópinn %s" +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Fullt nafn: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Staðsetning: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Heimasíða: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Um: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgstr[1] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Bein skilaboð send til %s" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Villa kom upp við að senda bein skilaboð" -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Get ekki kveikt á tilkynningum." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Eyða þessu babli" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Babl sent inn" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Vandamál komu upp við að vista babl." +msgstr "Villa kom upp í stillingu notanda." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgstr[1] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "Svara þessu babli" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Vandamál komu upp við að vista babl." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "Tilgreindu nafn notandans sem þú vilt gerast áskrifandi að" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Þú ert ekki áskrifandi." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Nú ert þú áskrifandi að %s" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "Tilgreindu nafn notandans sem þú vilt hætta sem áskrifandi að" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Nú ert þú ekki lengur áskrifandi að %s" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Skipun hefur ekki verið fullbúin" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Tilkynningar af." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Get ekki slökkt á tilkynningum." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Tilkynningar á." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Get ekki kveikt á tilkynningum." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Nú ert þú ekki lengur áskrifandi að %s" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Þú ert ekki áskrifandi." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Þú ert nú þegar í áskrift að þessum notendum:" msgstr[1] "Þú ert nú þegar í áskrift að þessum notendum:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Gat ekki leyft öðrum að gerast áskrifandi að þér." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Gat ekki leyft öðrum að gerast áskrifandi að þér." msgstr[1] "Gat ekki leyft öðrum að gerast áskrifandi að þér." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Þú ert ekki meðlimur í þessum hópi." msgstr[1] "Þú ert ekki meðlimur í þessum hópi." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5991,94 +7576,137 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Enginn staðfestingarlykill." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Boðskort sent á eftirfarandi aðila:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 #, fuzzy msgid "Go to the installer." msgstr "Skrá þig inn á síðuna" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "Snarskilaboð" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Færslur sendar með snarskilaboðaþjónustu (instant messaging)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Færslur sendar með SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Tengjast" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 +#, fuzzy msgid "Upload file" -msgstr "" +msgstr "Hlaða upp" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 #, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Endurstilla" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Taka þetta babl út sem uppáhald" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Setja þetta babl í uppáhald" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Uppáhald" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Flytja út gögn" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6110,8 +7738,13 @@ msgstr "Áfram" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 lágstafir eða tölustafir, engin greinarmerki eða bil" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "Vefslóð vefsíðu hópsins eða umfjöllunarefnisins" #: lib/groupeditform.php:168 @@ -6121,60 +7754,113 @@ msgstr "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" +msgstr[1] "Lýstu hópnum eða umfjöllunarefninu með 140 táknum" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Staðsetning hópsins, ef einhver, eins og \"Borg, landshluti, land\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Hópur" +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" -#: lib/groupnav.php:101 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 -#, php-format -msgid "Edit %s group properties" -msgstr "Breyta hópstillingum %s" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Einkennismerki" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Bæta við eða breyta einkennismerki %s" - +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Hóparnir með flestu meðlimina" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Hóparnir með mesta bablið" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Merki í babli %s hópsins" @@ -6189,38 +7875,57 @@ msgstr "" msgid "Unsupported image file format." msgstr "Skráarsnið myndar ekki stutt." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Upphal að hluta til." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Kerfisvilla kom upp við upphal skráar." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Annaðhvort ekki mynd eða þá að skráin er gölluð." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Týndum skránni okkar" -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Óþekkt skráargerð" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6232,10 +7937,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "Gerast meðlimur" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Hætta sem meðlimur" @@ -6248,44 +7949,53 @@ msgstr "Skráðu þig inn með notendanafni og lykilorði" msgid "Sign up for a new account" msgstr "Búðu til nýjan aðgang" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Staðfesting tölvupóstfangs" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s er að hlusta á bablið þitt á %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6294,29 +8004,31 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "" -"Lýsing: %s\n" -"\n" +msgstr "Staðsetning: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nýtt tölvupóstfang til að senda á %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6325,7 +8037,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Þú hefur nýtt bablpóstfang á %1$s.\n" "\n" @@ -6336,31 +8048,36 @@ msgstr "" "Með kærri kveðju,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Staða %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS staðfesting" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Býð eftir staðfestingu varðandi þetta símanúmer." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s ýtti við þér" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6376,14 +8093,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Ný persónuleg skilaboð frá %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6402,14 +8123,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s heldur upp á babl frá þér" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "Senda mér tölvupóst þegar einhver setur babl í mér í uppáhald hjá sér." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6431,7 +8157,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6439,13 +8165,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6482,7 +8215,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 #, fuzzy msgid "from" msgstr "frá" @@ -6503,163 +8236,217 @@ msgstr "Afsakið en þetta er ekki móttökutölvupóstfangið þitt." msgid "Sorry, no incoming email allowed." msgstr "Því miður er móttökutölvupóstur ekki leyfður." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Skráarsnið myndar ekki stutt." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Gat ekki eytt uppáhaldi." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Senda bein skilaboð" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Veldu farsímafyrirtæki" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Ekki í áskrift!" + +#: lib/messageform.php:153 msgid "To" msgstr "Til" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Leyfileg tákn" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Senda" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Senda babl" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Hvað er að frétta %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Gat ekki vistað merki." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Gat ekki vistað merki." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "Nei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 -msgid "in context" +#: lib/noticelist.php:517 +msgid "web" msgstr "" -#: lib/noticelist.php:602 +#: lib/noticelist.php:583 +#, fuzzy +msgid "in context" +msgstr "Ekkert innihald!" + +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -6676,56 +8463,52 @@ msgstr "Pot" msgid "Send a nudge to this user" msgstr "Ýta við þessum notanda" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Villa kom upp við að setja inn nýja persónulega síðu" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Villa kom upp við að setja inn mynd" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Villa kom upp í uppfærslu persónulegrar fjarsíðu" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Villa kom upp við að setja inn persónulega fjarsíðu" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Eyða babli" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Gat ekki sett inn nýja áskrift." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persónulegt" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Svör" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Uppáhald" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Innhólf" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Mótteknu skilaboðin þín" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Úthólf" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Skilaboð sem þú hefur sent" @@ -6734,7 +8517,8 @@ msgstr "Skilaboð sem þú hefur sent" msgid "Tags in %s's notices" msgstr "Merki í babli %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "Óþekkt aðgerð" @@ -6756,8 +8540,9 @@ msgid "All subscribers" msgstr "Allir áskrifendur" #: lib/profileaction.php:191 +#, fuzzy msgid "User ID" -msgstr "" +msgstr "Notandi" #: lib/profileaction.php:196 msgid "Member since" @@ -6820,9 +8605,11 @@ msgstr "Svara þessu babli" msgid "Revoke the \"%s\" role from this user" msgstr "" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Aðferð í forritsskilum fannst ekki!" #: lib/sandboxform.php:67 #, fuzzy @@ -6834,22 +8621,30 @@ msgstr "Innhólf" msgid "Sandbox this user" msgstr "Opna á þennan notanda" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 +#, fuzzy msgid "Search site" -msgstr "" +msgstr "Leita" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Leita" - -#: lib/searchaction.php:162 -msgid "Search help" msgstr "" +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 +#, fuzzy +msgid "Search help" +msgstr "Leita" + #: lib/searchgroupnav.php:80 msgid "People" msgstr "Fólk" @@ -6922,6 +8717,12 @@ msgstr "" msgid "None" msgstr "Ekkert" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ótæk stærð." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6931,45 +8732,58 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Mistókst að uppfæra mynd" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Villa kom upp í uppfærslu persónulegrar fjarsíðu" +msgstr "Vill kom upp við að aflétta notendalokun." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Aðalbablararnir" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Opna" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6996,123 +8810,180 @@ msgstr "Hætta sem áskrifandi að þessum notanda" msgid "Unsubscribe" msgstr "Fara úr áskrift" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Notandi hefur enga persónulega síðu." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 +#, fuzzy msgid "Edit Avatar" -msgstr "" +msgstr "Mynd" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Notandaaðgerðir" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 +#, fuzzy msgid "Edit profile settings" -msgstr "" +msgstr "Stillingar persónulegrar síðu" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Senda bein skilaboð til þessa notanda" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Skilaboð" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "Persónuleg síða notanda" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "fyrir nokkrum sekúndum" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "fyrir um einni mínútu síðan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "fyrir um %d mínútum síðan" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "fyrir um einum klukkutíma síðan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "fyrir um %d klukkutímum síðan" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "fyrir um einum degi síðan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "fyrir um %d dögum síðan" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "fyrir um einum mánuði síðan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "fyrir um %d mánuðum síðan" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "fyrir um einu ári síðan" -#: lib/webcolor.php:82 -#, php-format -msgid "%s is not a valid color!" -msgstr "" - -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" - -#: lib/xmppmanager.php:403 +#: lib/webcolor.php:80 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgid "%s is not a valid color!" +msgstr "Heimasíða er ekki gild vefslóð." + +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "Heimasíða er ekki gild vefslóð." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" +msgstr[1] "" +"Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ótæk stærð." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Engin persónuleg síða tilgreind" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 5bb079af7e..4c394f8a1e 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -1,157 +1,196 @@ -# Translation of StatusNet to Italian +# Translation of StatusNet - Core to Italian (Italiano) +# Expored from translatewiki.net # -# Author@translatewiki.net: HalphaZ -# Author@translatewiki.net: Milocasagrande -# Author@translatewiki.net: Nemo bis +# Author: HalphaZ +# Author: Milocasagrande +# Author: Nemo bis # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:38+0000\n" -"Language-Team: Italian\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:10:59+0000\n" +"Language-Team: Italian <http://translatewiki.net/wiki/Portal:it>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Accesso" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Impostazioni di accesso al sito" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrazione" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Proibire agli utenti anonimi (che non hanno effettuato l'accesso) di vedere " "il sito?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privato" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Rende la registrazione solo su invito" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Solo invito" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Disabilita la creazione di nuovi account" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Chiuso" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Salva impostazioni di accesso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Salva" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Pagina inesistente." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utente inesistente." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amici, pagina %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amici" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed degli amici di %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed degli amici di %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed degli amici di %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -159,7 +198,9 @@ msgstr "" "Questa è l'attività di %s e i suoi amici, ma nessuno ha ancora scritto " "qualche cosa." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -168,79 +209,102 @@ msgstr "" "Prova ad abbonarti a più persone, [entra in un gruppo](%%action.groups%%) o " "scrivi un messaggio." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puoi provare a [richiamare %1$s](../%2$s) dal suo profilo o [scrivere " -"qualche cosa alla sua attenzione](%%%%action.newnotice%%%%?status_textarea=%3" -"$s)." +"[Scrivi qualche cosa](%%%%action.newnotice%%%%?status_textarea=%s) su questo " +"argomento!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." -msgstr "" -"Perché non [crei un account](%%%%action.register%%%%) e richiami %s o scrivi " -"un messaggio alla sua attenzione." +msgstr "Perché non [crei un accout](%%action.register%%) e ne scrivi uno tu!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Tu e i tuoi amici" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Messaggi da %1$s e amici su %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Metodo delle API non trovato." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Questo metodo richiede POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -248,352 +312,535 @@ msgstr "" "È necessario specificare un parametro chiamato \"device\" con un valore tra: " "\"sms\", \"im\" o \"none\"." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Impossibile aggiornare l'utente." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "L'utente non ha un profilo." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Impossibile salvare il profilo." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Il server non è in grado di gestire tutti quei dati POST (%s byte) con la " +"configurazione attuale." +msgstr[1] "" "Il server non è in grado di gestire tutti quei dati POST (%s byte) con la " "configurazione attuale." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Impossibile salvare la impostazioni dell'aspetto." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Impossibile aggiornare l'aspetto." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Attività di %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Abbonamenti di %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Preferiti" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membri del gruppo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Non puoi bloccarti!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blocco dell'utente non riuscito." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Sblocco dell'utente non riuscito." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Messaggi diretti da %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Tutti i messaggi diretti inviati da %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Messaggi diretti a %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Tutti i messaggi diretti inviati a %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Nessun testo nel messaggio!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Troppo lungo. La dimensione massima di un messaggio è di %d caratteri." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +"Troppo lungo. La dimensione massima di un messaggio è di %d caratteri." +msgstr[1] "" +"Troppo lungo. La dimensione massima di un messaggio è di %d caratteri." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Destinatario non trovato." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Non puoi inviare messaggi diretti a utenti che non sono tuoi amici." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Non inviarti un messaggio, piuttosto ripetilo a voce dolcemente." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Nessuno messaggio trovato con quel ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Questo messaggio è già un preferito." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Impossibile creare un preferito." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Questo messaggio non è un preferito." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Impossibile eliminare un preferito." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Impossibile seguire l'utente: utente non trovato." +msgstr "Impossibile non seguire l'utente: utente non trovato." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Impossibile seguire l'utente: %s è già nel tuo elenco." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Impossibile non seguire l'utente: utente non trovato." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Non puoi non seguirti." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Devono essere forniti due ID utente o nominativi." +msgid "Two valid IDs or nick names must be supplied." +msgstr "Devono essere forniti due ID o screen_names." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Impossibile determinare l'utente sorgente." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Impossibile trovare l'utente destinazione." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Il soprannome deve essere composto solo da lettere minuscole e numeri, senza " -"spazi." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Soprannome già in uso. Prova con un altro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Non è un soprannome valido." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "L'indirizzo della pagina web non è valido." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Nome troppo lungo (max 255 caratteri)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "La descrizione è troppo lunga (max %d caratteri)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "La descrizione è troppo lunga (max %d caratteri)." +msgstr[1] "La descrizione è troppo lunga (max %d caratteri)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Ubicazione troppo lunga (max 255 caratteri)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Troppi alias! Massimo %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Troppi alias! Massimo %d." +msgstr[1] "Troppi alias! Massimo %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Alias non valido: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "L'alias \"%s\" è già in uso. Prova con un altro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "L'alias non può essere lo stesso del soprannome." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Gruppo non trovato." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Fai già parte di quel gruppo." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "L'amministratore ti ha bloccato l'accesso a quel gruppo." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Non fai parte di questo gruppo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Impossibile rimuovere l'utente %1$s dal gruppo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Gruppi di %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Gruppi del sito %1$s a cui %2$s è iscritto." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Gruppi di %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "Gruppi su %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Carica file" +msgstr "Caricamento non riuscito." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Token di accesso specificato non valido." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Nessun parametro oauth_token fornito." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Token non valido." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Autorizzazione non presente." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Si è verificato un problema con il tuo token di sessione. Prova di nuovo." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nome utente o password non valido." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Errore nel database nell'eliminare l'applicazione utente OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Errore nel database nell'inserire l'applicazione utente OAuth." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Il token di richiesta %s è stato autorizzato. Scambiarlo con un token di " -"accesso." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Il token di richiesta %s è stato rifiutato o revocato." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Invio del modulo inaspettato." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Un'applicazione vorrebbe collegarsi al tuo account" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Consenti o nega l'accesso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"L'applicazione <strong>%1$s</strong> di <strong>%2$s</strong> vorrebbe poter " +"<strong>%3$s</strong> ai dati del tuo account %4$s. È consigliato fornire " +"accesso al proprio account %4$s solo ad applicazioni di cui ci si può fidare." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -604,242 +851,629 @@ msgstr "" "<strong>%3$s</strong> ai dati del tuo account %4$s. È consigliato fornire " "accesso al proprio account %4$s solo ad applicazioni di cui ci si può fidare." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Account" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Soprannome" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Password" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Nega" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Annulla" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Consenti" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "Consenti o nega l'accesso alle informazioni del tuo account." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Conferma della messaggistica annullata." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "Il token di richiesta %s è stato rifiutato o revocato." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Autorizzazione non presente." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Autorizzazione non presente." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Questo metodo richiede POST o DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Non puoi eliminare il messaggio di un altro utente." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Nessun messaggio." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Non puoi ripetere un tuo messaggio." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Hai già ripetuto quel messaggio." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Metodo delle API non trovato." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato non supportato." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Messaggio eliminato." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Nessuno stato trovato con quel ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Impossibile eliminare questo messaggio." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Elimina messaggio" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "Il client deve fornire un parametro \"status\" con un valore." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Troppo lungo. Lunghezza massima %d caratteri." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Troppo lungo. Lunghezza massima %d caratteri." +msgstr[1] "Troppo lungo. Lunghezza massima %d caratteri." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Non trovato." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Metodo delle API non trovato." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"La dimensione massima di un messaggio è di %d caratteri, compreso l'URL." +msgstr[1] "" "La dimensione massima di un messaggio è di %d caratteri, compreso l'URL." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato non supportato." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Preferiti da %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s aggiornamenti preferiti da %2$s / %3$s" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Impossibile aggiornare il gruppo." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Messaggi che citano %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s messaggi in risposta a quelli da %2$s / %3$s" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Attività pubblica di %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Aggiornamenti di %s da tutti!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Metodo non implementato" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Ripetuto a %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Ripetizioni di %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Messaggi etichettati con %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Messaggi etichettati con %1$s su %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Solo l'utente può leggere la propria casella di posta." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Trova contenuto dei messaggi" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Un messaggio con quel ID non esiste." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Metodo delle API in lavorazione." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Metodo delle API non trovato." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Nessun profilo." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Impossibile inserire un nuovo abbonamento." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Trova contenuto dei messaggi" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Sconosciuto" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Aggiungi ai preferiti" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Nessun profilo." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membri del gruppo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Gruppi di cui %s fa parte" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Sconosciuto" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Tutti i membri" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Nessun file." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Impossibile eliminare un preferito." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Nessuna gruppo." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Tutti i membri" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Metodo delle API non trovato." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Nessun profilo." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Non hai una abbonamento a quel profilo." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Impossibile salvare l'abbonamento." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Persone abbonate a %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tipo di file sconosciuto" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Nessun allegato." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Nessun soprannome." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Nessuna dimensione." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Dimensione non valida." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Immagine" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Puoi caricare la tua immagine personale. La dimensione massima del file è %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Utente senza profilo corrispondente." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Impostazioni immagine" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Originale" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Anteprima" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Elimina" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Carica" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Ritaglia" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Nessun file caricato." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Scegli un'area quadrata per la tua immagine personale" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perso il nostro file di dati." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Immagine aggiornata." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Aggiornamento dell'immagine non riuscito." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Immagine eliminata." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Hai già bloccato quell'utente." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blocca utente" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -851,175 +1485,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "No" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Non bloccare questo utente" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Sì" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blocca questo utente" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Salvataggio delle informazioni per il blocco non riuscito." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Nessuna gruppo." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "Profili bloccati di %s" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Profili bloccati di %1$s, pagina %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Un elenco degli utenti a cui è bloccato l'accesso a questo gruppo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Sblocca l'utente dal gruppo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Sblocca" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Sblocca questo utente" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Invia a %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Nessun codice di conferma." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Codice di conferma non trovato." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Quel codice di conferma non è per te!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Tipo di indirizzo %s non riconosciuto." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Quell'indirizzo è già stato confermato." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Impossibile aggiornare l'utente." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Impossibile eliminare l'email di conferma." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Impossibile eliminare la conferma della messaggistica." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Conferma indirizzo" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "L'indirizzo \"%s\" è stato confermato per il tuo account." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversazione" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Messaggi" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Devi eseguire l'accesso per eliminare un'applicazione." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Applicazione non trovata." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Questa applicazione non è di tua proprietà." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Si è verificato un problema con il tuo token di sessione." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Elimina applicazione" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1029,31 +1709,93 @@ msgstr "" "riguardo all'applicazione dal database, comprese tutte le connessioni utente." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Non eliminare l'applicazione" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Elimina l'applicazione" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Devi eseguire l'accesso per lasciare un gruppo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nessun soprannome o ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Non fai parte di questo gruppo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Impossibile aggiornare il gruppo." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s ha lasciato il gruppo %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Elimina utente" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Vuoi eliminare questo utente? Questa azione eliminerà tutti i dati " +"dell'utente dal database, senza una copia di sicurezza." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Non eliminare il messaggio" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Elimina questo utente" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Accesso non effettuato." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Impossibile eliminare questo messaggio." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1061,21 +1803,24 @@ msgstr "" "Stai per eliminare definitivamente un messaggio. Una volta fatto non sarà " "possibile recuperarlo." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Elimina messaggio" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Vuoi eliminare questo messaggio?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1106,62 +1851,73 @@ msgstr "Elimina questo utente" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Aspetto" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Impostazioni dell'aspetto per questo sito di StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Impostazioni dell'aspetto per questo sito StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL del logo non valido." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL del logo non valido." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema non disponibile: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Modifica logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo del sito" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Logo del sito" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Modifica tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema del sito" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema per questo sito." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Tema personalizzato" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Puoi caricare un tema per StatusNet personalizzato come un file ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Modifica l'immagine di sfondo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Sfondo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1171,75 +1927,84 @@ msgstr "" "file è di %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "On" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Off" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Abilita o disabilita l'immagine di sfondo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Affianca l'immagine di sfondo" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Modifica colori" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Contenuto" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra laterale" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Testo" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Collegamenti" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avanzate" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalizzato" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Usa predefiniti" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Ripristina i valori predefiniti" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Reimposta i valori predefiniti" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Salva" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Salva aspetto" @@ -1256,109 +2021,131 @@ msgstr "Aggiungi ai preferiti" msgid "No such document \"%s\"" msgstr "Nessun documento \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Modifica applicazione" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Devi eseguire l'accesso per modificare un'applicazione." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Nessuna applicazione." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Usa questo modulo per modificare la tua applicazione." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Il nome è richiesto." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Il nome è troppo lungo (max 255 caratteri)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Nome già in uso. Prova con un altro." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "La descrizione è richiesta." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "L'URL sorgente è troppo lungo." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "L'URL sorgente non è valido." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "L'organizzazione è richiesta." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "L'organizzazione è troppo lunga (max 255 caratteri)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Il sito web dell'organizzazione è richiesto." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Il callback è troppo lungo." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "L'URL di callback non è valido." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Impossibile aggiornare l'applicazione." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Modifica il gruppo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Devi eseguire l'accesso per creare un gruppo." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Devi essere amministratore per modificare il gruppo." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Usa questo modulo per modificare il gruppo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "La descrizione è troppo lunga (max %d caratteri)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias non valido: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Impossibile aggiornare il gruppo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Impossibile creare gli alias." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Opzioni salvate." @@ -1376,12 +2163,12 @@ msgstr "Gestisci la ricezione delle email da %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Indirizzo email" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Indirizzo email attualmente confermato." @@ -1390,14 +2177,14 @@ msgstr "Indirizzo email attualmente confermato." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Rimuovi" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1406,25 +2193,19 @@ msgstr "" "posta (e anche la posta indesiderata!) per un messaggio con ulteriori " "istruzioni." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Annulla" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Indirizzo email, del tipo \"nomeutente@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1432,113 +2213,120 @@ msgstr "Aggiungi" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Email di ricezione" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Voglio inviare i messaggi via email" + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Invia le email a questo indirizzo per scrivere nuovi messaggi." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Crea un nuovo indirizzo email a cui inviare i messaggi e rimuovi quello " "vecchio." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nuovo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferenze dell'email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Inviami avvisi di nuovi abbonamenti via email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Inviami un'email quando qualcuno aggiunge un mio messaggio ai preferiti" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Inviami un'email quando qualcuno mi invia un messaggio privato" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Inviami un'email quando qualcuno mi invia una \"@-risposta\"" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Consenti ai miei amici di richiamarmi e inviami un'email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Voglio inviare i messaggi via email" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Pubblica un MicroID per il mio indirizzo email" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Preferenze dell'email salvate." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Nessun indirizzo email." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Impossibile normalizzare quell'indirizzo email" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Non è un indirizzo email valido." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Quello è già il tuo indirizzo email." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Quell'indirizzo email appartiene già a un altro utente." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Impossibile inserire il codice di conferma." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1550,50 +2338,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Nessuna conferma da annullare." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Quello è l'indirizzo email sbagliato." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Impossibile eliminare l'email di conferma." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Conferma dell'email annullata." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Quello non è il tuo indirizzo email." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "L'indirizzo email è stato rimosso." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Nessun indirizzo email di ricezione." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Impossibile aggiornare il record dell'utente." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Indirizzo email di ricezione rimosso." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Nuovo indirizzo email di ricezione aggiunto." @@ -1601,11 +2395,11 @@ msgstr "Nuovo indirizzo email di ricezione aggiunto." msgid "This notice is already a favorite!" msgstr "Questo messaggio è già un preferito!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Rimuovi preferito" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Messaggi famosi" @@ -1643,7 +2437,7 @@ msgstr "" "tra i tuoi preferiti!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Messaggi preferiti di %s" @@ -1712,7 +2506,7 @@ msgstr "Impossibile convertire il token di richiesta in uno di accesso." msgid "Remote service uses unknown version of OMB protocol." msgstr "Il servizio remoto usa una versione del protocollo OMB sconosciuta." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Errore nell'aggiornare il profilo remoto." @@ -1740,19 +2534,23 @@ msgstr "Non puoi concedere i ruoli agli utenti su questo sito." msgid "User already has this role." msgstr "L'utente ricopre già questo ruolo." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Nessun profilo specificato." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Nessun profilo con quel ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Nessun gruppo specificato." @@ -1769,7 +2567,7 @@ msgstr "L'utente è già bloccato dal gruppo." msgid "User is not a member of group." msgstr "L'utente non fa parte del gruppo." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Blocca l'utente dal gruppo" @@ -1818,8 +2616,10 @@ msgstr "" "Personalizza l'aspetto del tuo gruppo con un'immagine di sfondo e dei colori " "personalizzati." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Impossibile aggiornare l'aspetto." @@ -1839,6 +2639,14 @@ msgstr "" "Puoi caricare un'immagine per il logo del tuo gruppo. La dimensione massima " "del file è di %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Carica" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Ritaglia" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Scegli un'area quadrata dell'immagine per il logo." @@ -1851,48 +2659,55 @@ msgstr "Logo aggiornato." msgid "Failed updating logo." msgstr "Aggiornamento del logo non riuscito." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membri del gruppo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membri del gruppo %1$s, pagina %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Un elenco degli utenti in questo gruppo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Amministra" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blocca" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Blocca questo utente" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Rende l'utente amministratore del gruppo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Rendi amm." +msgstr "Rendi amministratore" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Rende questo utente un amministratore" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Attività di %s" +msgstr "Fa diventare questo utente un amministratore" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1965,15 +2780,18 @@ msgstr "" "Perché non [crei un account](%%action.register%%) e [crei tu il gruppo](%%" "action.newgroup%%)!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Solo gli amministratori possono sbloccare i membri del gruppo." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "L'utente non è bloccato dal gruppo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Errore nel rimuovere il blocco." @@ -2024,7 +2842,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2035,63 +2856,63 @@ msgstr "" "di messaggistica o su GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferenze messaggistica" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Inviami i messaggi via Jabber/GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Pubblica un messaggio quando il mio stato Jabber/GTalk cambia" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Inviami le risposte delle persone a cui sono abbonato via Jabber/GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Pubblica un MicroID per il mio indirizzo Jabber/GTalk" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferenze salvate." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Nessun ID di Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Impossibile normalizzare quell'ID Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Non è un ID Jabber valido" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Quello è già il tuo ID di Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "ID Jabber già assegnato a un altro utente." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2101,35 +2922,35 @@ msgstr "" "istantanea che hai aggiunto. Devi approvare %s affinché ti invii messaggi." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Quello è l'indirizzo di messaggistica sbagliato." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Impossibile eliminare la conferma della messaggistica." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Conferma della messaggistica annullata." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Quello non è il tuo ID di Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "L'indirizzo di messaggistica è stato rimosso." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "Casella posta in arrivo di %s - pagina %2$d" +msgstr "Casella posta in arrivo di %1$s - pagina %2$d" #: actions/inbox.php:62 #, php-format @@ -2142,49 +2963,81 @@ msgstr "" "Questa è la casella della tua posta in arrivo, contiene i messaggi privati " "ricevuti." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Gli inviti sono stati disabilitati." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Devi eseguire l'accesso per invitare altri utenti a usare %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Indirizzo email non valido: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Inviti inviati" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invita nuovi utenti" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Hai già un abbonamento a questi utenti:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Hai già un abbonamento a questi utenti:" +msgstr[1] "Hai già un abbonamento a questi utenti:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Queste persone sono già utenti e hai un abbonamento automatico a loro:" +msgstr[0] "" +"Queste persone sono già utenti e hai un abbonamento automatico a loro:" +msgstr[1] "" +"Queste persone sono già utenti e hai un abbonamento automatico a loro:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Inviti inviati alle seguenti persone:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Inviti inviati alle seguenti persone:" +msgstr[1] "Inviti inviati alle seguenti persone:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2192,43 +3045,54 @@ msgstr "" "Riceverai una notifica quando i tuoi invitati accetteranno e si " "registreranno sul sito. Grazie per l'aiuto ad accrescere la comunità!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Usa questo modulo per invitare i tuoi amici e colleghi a usare questo " "servizio." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Indirizzi email" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Indirizzi email di amici da invitare (uno per riga)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Messaggio personale" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Puoi aggiungere un messaggio personale agli inviti." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Invia" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "Hai ricevuto un invito per seguire %1$s su %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2289,13 +3153,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Devi eseguire l'accesso per iscriverti a un gruppo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Nessun soprannome o ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s fa ora parte del gruppo %2$s" @@ -2304,17 +3162,123 @@ msgstr "%1$s fa ora parte del gruppo %2$s" msgid "You must be logged in to leave a group." msgstr "Devi eseguire l'accesso per lasciare un gruppo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Non fai parte di quel gruppo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ha lasciato il gruppo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licenza" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "La licenza per questo sito StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Selezione della licenza non valida." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"È necessario specificare il proprietario dei contenuti quando viene usata la " +"licenza \"Tutti i diritti riservati\"." + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Titolo della licenza non valido. Lunghezza massima 255 caratteri." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Indirizzo della licenza non valido." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Indirizzo immagine della licenza non valido." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "L'indirizzo della licenza deve essere vuoto o un URL valido." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "L'immagine della licenza deve essere vuota o un URL valido." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Selezione licenza" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privato" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Tutti i diritti riservati" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Tipo" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Seleziona licenza" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Dettagli licenza" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Proprietario" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nome del proprietario dei contenuti del sito (se applicabile)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Titolo licenza" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Il titolo della licenza." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Indirizzo licenza" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "Indirizzo per informazioni aggiuntive riguardo la licenza." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "Indirizzo immagine licenza" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Indirizzo di un'immagine da visualizzare con la licenza." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Salva impostazioni licenza" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Accesso già effettuato." @@ -2335,11 +3299,11 @@ msgstr "Accedi" msgid "Login to site" msgstr "Accedi al sito" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Ricordami" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Accedi automaticamente in futuro; non per computer condivisi!" @@ -2390,66 +3354,77 @@ msgstr "Impossibile rendere %1$s un amministratore del gruppo %2$s" msgid "No current status." msgstr "Nessun messaggio corrente." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Nuova applicazione" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Devi eseguire l'accesso per registrare un'applicazione." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Usa questo modulo per registrare un'applicazione." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "L'URL sorgente è richiesto." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Impossibile creare l'applicazione." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nuovo gruppo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Usa questo modulo per creare un nuovo gruppo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nuovo messaggio" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Non puoi inviare un messaggio a questo utente." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Nessun contenuto!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Nessun destinatario specificato." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Non inviarti un messaggio, piuttosto ripetilo a voce dolcemente." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Messaggio inviato" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Messaggio diretto a %s inviato." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Errore di Ajax" @@ -2457,7 +3432,7 @@ msgstr "Errore di Ajax" msgid "New notice" msgstr "Nuovo messaggio" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Messaggio inviato" @@ -2510,7 +3485,8 @@ msgstr "Messaggi che corrispondono al termine \"%1$s\" su %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Questo utente non consente i richiami oppure non ha confermato o impostato " "ancora il suo indirizzo email." @@ -2523,74 +3499,98 @@ msgstr "Richiamo inviato" msgid "Nudge sent!" msgstr "Richiamo inviato!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Devi eseguire l'accesso per poter elencare le tue applicazioni." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Applicazioni OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Applicazioni che hai registrato" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Non hai ancora registrato alcuna applicazione." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Applicazioni collegate" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +#, fuzzy +msgid "The following connections exist for your account." msgstr "Hai consentito alle seguenti applicazioni di accedere al tuo account." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Non sei un utente di quella applicazione." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "Impossibile revocare l'accesso per l'applicazione: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Non hai autorizzato alcuna applicazione all'uso del tuo account." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Gli sviluppatori possono modificare le impostazioni di registrazione per le " -"loro applicazioni " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Il messaggio non ha un profilo." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Stato di %1$s su %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Tipo di contenuto %s non supportato." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Solo URL %s attraverso HTTP semplice." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -2602,36 +3602,46 @@ msgstr "Cerca persone" msgid "Notice Search" msgstr "Cerca messaggi" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Altre impostazioni" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Gestisci altre opzioni." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (servizio libero)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Accorcia gli URL con" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Servizio di autoriduzione da usare" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Visualizza aspetto" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Mostra o nasconde gli aspetti del profilo" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Il servizio di riduzione degli URL è troppo lungo (max 50 caratteri)." #: actions/otp.php:69 @@ -2695,7 +3705,7 @@ msgid "6 or more characters" msgstr "6 o più caratteri" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Conferma" @@ -2707,11 +3717,11 @@ msgstr "Stessa password di sopra" msgid "Change" msgstr "Modifica" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "La password deve essere di 6 o più caratteri." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Le password non corrispondono." @@ -2731,156 +3741,291 @@ msgstr "Impossibile salvare la nuova password." msgid "Password saved." msgstr "Password salvata." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Percorsi" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Percorso e impostazioni server per questo sito StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Percorso e impostazioni del server per questo sito StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Directory del tema non leggibile: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Directory delle immagini degli utenti non scrivibile: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Directory degli sfondi non scrivibile: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Directory delle localizzazioni non leggibile: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Server SSL non valido. La lunghezza massima è di 255 caratteri." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Sito" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Server" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nome host del server" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Percorso" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Percorso del sito" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Percorso alle localizzazioni" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Directory del tema" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "Percorso della directory alle localizzazioni" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URL semplici" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Usare gli URL semplici (più leggibili e facili da ricordare)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Server del tema" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Tema per questo sito." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Percorso del tema" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directory del tema" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Immagini" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Server dell'immagine" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Percorso dell'immagine" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directory dell'immagine" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Sfondi" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Server dello sfondo" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Percorso dello sfondo" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directory dello sfondo" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Mai" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Qualche volta" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Usa SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quando usare SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Server SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Percorso del sito" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Directory del tema" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Percorso della directory alle localizzazioni" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Immagini" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Server dell'immagine" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Tema per questo sito." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Percorso dell'immagine" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Aggiornamento dell'immagine non riuscito." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directory dell'immagine" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Percorso della directory alle localizzazioni" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Sfondi" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Tema per questo sito." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Percorso della directory alle localizzazioni" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Allegati" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Tema per questo sito." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Nessun allegato." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Tema per questo sito." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Percorso della directory alle localizzazioni" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Mai" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Qualche volta" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Usa SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Quando usare SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "Server a cui dirigere le richieste SSL" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Salva percorsi" @@ -2918,141 +4063,186 @@ msgstr "" "La licenza \"%1$s\" del messaggio non è compatibile con la licenza del sito " "\"%2$s\"." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Impostazioni del profilo" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Qui puoi aggiornare le informazioni del tuo profilo personale, così gli " "altri potranno conoscere qualcosa in più su di te." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Informazioni sul profilo" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "1-64 lettere minuscole o numeri, senza spazi o simboli di punteggiatura" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nome" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Pagina web" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL della tua pagina web, blog o profilo su un altro sito" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descriviti assieme ai tuoi interessi in %d caratteri" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descriviti assieme ai tuoi interessi in %d caratteri" +msgstr[1] "Descriviti assieme ai tuoi interessi in %d caratteri" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Descrivi te e i tuoi interessi" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografia" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Ubicazione" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Dove ti trovi, tipo \"città, regione, stato\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Condividi la mia posizione attuale quando invio messaggi" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etichette" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Lingua" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Lingua preferita" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso orario" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "In che fuso orario risiedi solitamente?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "La biografia è troppo lunga (max %d caratteri)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "La biografia è troppo lunga (max %d caratteri)." +msgstr[1] "La biografia è troppo lunga (max %d caratteri)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso orario non selezionato" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "La lingua è troppo lunga (max 50 caratteri)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etichetta non valida: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Impossibile aggiornare l'utente per auto-abbonarsi." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Impossibile salvare le preferenze della posizione." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Impossibile salvare il profilo." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Impossibile salvare le etichette." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Impostazioni salvate." @@ -3130,32 +4320,45 @@ msgstr "" "wiki/Microblogging) basato sul software libero [StatusNet](http://status." "net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Insieme delle etichette" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Queste sono le etichette più usate e recenti su %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Nessuno ha ancora scritto un messaggio con un [hashtag](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Scrivilo tu!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "Perché non [crei un accout](%%action.register%%) e ne scrivi uno tu!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Insieme delle etichette" @@ -3269,14 +4472,15 @@ msgid "Unexpected password reset." msgstr "Ripristino della password inaspettato." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "La password deve essere lunga almeno 6 caratteri." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La password e la conferma non corrispondono." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Errore nell'impostare l'utente." @@ -3284,7 +4488,7 @@ msgstr "Errore nell'impostare l'utente." msgid "New password successfully saved. You are now logged in." msgstr "Nuova password salvata con successo. Hai effettuato l'accesso." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Solo le persone invitate possono registrarsi." @@ -3296,7 +4500,7 @@ msgstr "Codice di invito non valido." msgid "Registration successful" msgstr "Registrazione riuscita" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrati" @@ -3304,19 +4508,19 @@ msgstr "Registrati" msgid "Registration not allowed." msgstr "Registrazione non consentita." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Non puoi registrarti se non accetti la licenza." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Indirizzo email già esistente." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nome utente o password non valido." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3325,57 +4529,61 @@ msgstr "" "successivamente inviare messaggi e metterti in contatto con i tuoi amici e " "colleghi. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 lettere minuscole o numeri, niente punteggiatura o spazi; richiesto" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 o più caratteri; richiesta" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Stessa password di sopra; richiesta" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Email" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Usata solo per aggiornamenti, annunci e recupero password" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nome completo, preferibilmente il tuo \"vero\" nome" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL della tua pagina web, blog o profilo su un altro sito" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Comprendo che i contenuti e i dati di %1$s sono privati e confidenziali." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "I miei testi e i miei file sono copyright di %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "I miei testi e file restano sotto il mio diretto copyright." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Tutti i diritti riservati." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3385,7 +4593,7 @@ msgstr "" "dati personali: password, indirizzo email, indirizzo messaggistica " "istantanea e numero di telefono." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3419,7 +4627,7 @@ msgstr "" "Grazie per la tua iscrizione e speriamo tu possa divertiti usando questo " "servizio." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3464,7 +4672,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del tuo profilo su un altro servizio di microblog compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abbonati" @@ -3502,7 +4710,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Ripetuti" @@ -3511,7 +4719,7 @@ msgid "Repeated!" msgstr "Ripetuti!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Risposte a %s" @@ -3537,13 +4745,11 @@ msgid "Replies feed for %s (Atom)" msgstr "Feed delle risposte di %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "" -"Questa è l'attività delle risposte a %1$s, ma %2$s non ha ricevuto ancora " -"alcun messaggio." +msgstr "Questa è l'attività di %1$s, ma %2$s non ha ancora scritto nulla." #: actions/replies.php:204 #, php-format @@ -3555,13 +4761,13 @@ msgstr "" "[entrare in qualche gruppo](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Puoi provare a [richiamare %1$s](../%2$s) o [scrivere qualche cosa alla sua " -"attenzione](%%%%action.newnotice%%%%?status_textarea=%s)." +"[Scrivi qualche cosa](%%%%action.newnotice%%%%?status_textarea=%s) su questo " +"argomento!" #: actions/repliesrss.php:72 #, php-format @@ -3590,13 +4796,13 @@ msgstr "L'utente è già nella \"sandbox\"." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessioni" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Impostazioni di sessione per questo sito di StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Impostazioni sessione per questo sito StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3615,7 +4821,6 @@ msgid "Turn on debugging output for sessions." msgstr "Abilita il debug per le sessioni" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salva impostazioni" @@ -3628,28 +4833,29 @@ msgid "Application profile" msgstr "Profilo applicazione" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icona" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nome" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organizzazione" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistiche" @@ -3667,6 +4873,11 @@ msgstr "Azioni applicazione" msgid "Reset key & secret" msgstr "Reimposta chiave e segreto" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Elimina" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informazioni applicazione" @@ -3736,100 +4947,128 @@ msgstr "" "forma di cuore per salvare i messaggi e rileggerli in un altro momento." #: actions/showfavorites.php:208 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" "%s non ha aggiunto alcun messaggio tra i suoi preferiti. Scrivi qualche cosa " -"di interessante in modo che lo inserisca tra i suoi preferiti. :)" +"di interessante in modo che lo inserisca tra i suoi preferiti! :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s non ha aggiunto alcun messaggio tra i suoi preferiti. Perché non [crei un " -"account](%%%%action.register%%%%) e quindi scrivi qualche cosa di " -"interessante in modo che lo inserisca tra i suoi preferiti. :)" +"Perché non [crei un account](%%action.register%%) e aggiungi un messaggio " +"tra i tuoi preferiti!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Questo è un modo per condividere ciò che ti piace." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Gruppo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Gruppi di %1$s, pagina %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Azioni dei gruppi" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed dei messaggi per il gruppo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF per il gruppo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membri" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(nessuno)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Tutti i membri" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Creato" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Membri" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3845,7 +5084,10 @@ msgstr "" "stesso](%%%%action.register%%%%) per far parte di questo gruppo e di molti " "altri! ([Maggiori informazioni](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3857,24 +5099,31 @@ msgstr "" "(http://it.wikipedia.org/wiki/Microblogging) basato sul software libero " "[StatusNet](http://status.net/)." -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Amministratori" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Nessun messaggio." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Solo mittente e destinatario possono leggere questo messaggio." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Messaggio a %1$s su %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Messaggio da %1$s su %2$s" @@ -3883,47 +5132,67 @@ msgstr "Messaggio da %1$s su %2$s" msgid "Notice deleted." msgstr "Messaggio eliminato." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " etichettati con %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, pagina %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Messaggi etichettati con %1$s, pagina %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pagina %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Feed dei messaggi per %1$s etichettati con %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Feed dei messaggi per %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Feed dei messaggi per %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Feed dei messaggi per %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF per %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Questa è l'attività di %1$s, ma %2$s non ha ancora scritto nulla." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3931,16 +5200,20 @@ msgstr "" "Visto niente di interessante? Non hai scritto ancora alcun messaggio, questo " "potrebbe essere un buon momento per iniziare! :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Puoi provare a richiamare %1$s o [scrivere qualche cosa che attiri la sua " -"attenzione](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"[Scrivi qualche cosa](%%%%action.newnotice%%%%?status_textarea=%s) su questo " +"argomento!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3954,7 +5227,9 @@ msgstr "" "i messaggi di **%s** e di molti altri! ([Maggiori informazioni](%%%%doc.help%" "%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3965,7 +5240,8 @@ msgstr "" "it.wikipedia.org/wiki/Microblogging) basato sul software libero [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Ripetizione di %s" @@ -4079,31 +5355,40 @@ msgstr "" "Quanto tempo gli utenti devono attendere (in secondi) prima di inviare " "nuovamente lo stesso messaggio" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Messaggio del sito" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Modifica il messaggio del sito" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Impossibile salvare il messaggio del sito." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "La dimensione massima del messaggio del sito è di 255 caratteri." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Testo messaggio del sito" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "Testo messaggio del sito (massimo 255 caratteri, HTML consentito)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Salva messaggio" @@ -4263,7 +5548,7 @@ msgstr "Nessun codice inserito" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Snapshot" @@ -4319,12 +5604,14 @@ msgstr "Gli snapshot verranno inviati a questo URL" msgid "Save snapshot settings" msgstr "Salva impostazioni snapshot" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Non hai una abbonamento a quel profilo." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Impossibile salvare l'abbonamento." @@ -4332,10 +5619,6 @@ msgstr "Impossibile salvare l'abbonamento." msgid "This action only accepts POST requests." msgstr "Quest'azione accetta solo richieste POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Nessun profilo." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4345,39 +5628,56 @@ msgstr "" msgid "Subscribed" msgstr "Abbonati" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Abbonati a %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Abbonati a %1$s, pagina %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Queste sono le persone che ti seguono." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Queste sono le persone che seguono %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Non hai alcun abbonato. Prova ad abbonarti a qualcuno che conosci e magari " "loro potrebbero fare lo stesso" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s non ha abbonati. Vuoi abbonarti tu?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4386,26 +5686,31 @@ msgstr "" "%s non ha abbonati. Perché non [crei un account](%%%%action.register%%%%) e " "ti abboni tu?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Abbonamenti di %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Abbonamenti di %1$s, pagina %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Queste sono le persone che stai seguendo." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Queste sono le persone seguite da %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4420,16 +5725,27 @@ msgstr "" "[usi Twitter](%%action.twittersettings%%), puoi abbonarti automaticamente " "alle persone che già seguivi lì." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s non sta seguendo nessuno." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Feed dei messaggi per %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4467,7 +5783,7 @@ msgid "User profile" msgstr "Profilo utente" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Fotografia" @@ -4533,75 +5849,97 @@ msgstr "" "licenza \"%2$s\" di questo sito." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Utente" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Impostazioni utente per questo sito StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Impostazioni utente per questo sito StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Limite per la biografia non valido. Deve essere numerico." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" "Testo di benvenuto non valido. La lunghezza massima è di 255 caratteri." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Abbonamento predefinito non valido: \"%1$s\" non è un utente." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profilo" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Limite biografia" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Lunghezza massima in caratteri della biografia" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nuovi utenti" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Messaggio per nuovi utenti" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Messaggio di benvenuto per nuovi utenti (max 255 caratteri)" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Abbonamento predefinito" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Abbonare automaticamente i nuovi utenti a questo utente" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Inviti" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Inviti abilitati" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Indica se consentire agli utenti di invitarne di nuovi" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Salva impostazioni utente" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizza abbonamento" @@ -4615,7 +5953,9 @@ msgstr "" "Controlla i dettagli seguenti per essere sicuro di volerti abbonare ai " "messaggi di questo utente. Se non hai richiesto ciò, fai clic su \"Rifiuta\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licenza" @@ -4703,11 +6043,13 @@ msgstr "Impossibile leggere l'URL \"%s\" dell'immagine." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipo di immagine errata per l'URL \"%s\"." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Aspetto del profilo" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4745,7 +6087,7 @@ msgstr "Prova a [cercare dei gruppi](%%action.groupsearch%%) e iscriviti." #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Messaggi da %1$s su %2$s!" @@ -4806,7 +6148,7 @@ msgid "Plugins" msgstr "Plugin" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versione" @@ -4814,65 +6156,115 @@ msgstr "Versione" msgid "Author(s)" msgstr "Autori" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Preferisci" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) ha aggiunto il tuo messaggio tra i suoi preferiti" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "Impossibile elaborare l'indirizzo \"%s\"" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "Si è verificato qualche cosa di impossibile." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Nessun file può superare %d byte e il file inviato era di %d byte. Prova a " -"caricarne una versione più piccola." +msgstr[0] "" +"Nessun file può superare %1$d byte e il file inviato era di %2$d byte. Prova " +"a caricarne una versione più piccola." +msgstr[1] "" +"Nessun file può superare %1$d byte e il file inviato era di %2$d byte. Prova " +"a caricarne una versione più piccola." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Un file di questa dimensione supererebbe la tua quota utente di %d byte." +msgstr[1] "" "Un file di questa dimensione supererebbe la tua quota utente di %d byte." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Un file di questa dimensione supererebbe la tua quota mensile di %d byte." +msgstr[1] "" "Un file di questa dimensione supererebbe la tua quota mensile di %d byte." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Dimensione non valida." +msgstr "Nome file non valido." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Ingresso nel gruppo non riuscito." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Non si fa parte del gruppo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Uscita dal gruppo non riuscita." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "L'ID di profilo %s non è valido." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Errore nel salvare l'utente; non valido." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Iscriviti" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "L'utente %1$s è entrato nel gruppo %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4888,20 +6280,20 @@ msgstr "Impossibile creare il token di accesso per %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Non è stato trovato un nome di database o DNS." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Ti è proibito inviare messaggi diretti." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Impossibile inserire il messaggio." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Impossibile aggiornare il messaggio con il nuovo URI." @@ -4910,26 +6302,26 @@ msgstr "Impossibile aggiornare il messaggio con il nuovo URI." #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Non c'è alcun profilo (%1$d) per il messaggio (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Errore del database nell'inserire un hashtag: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problema nel salvare il messaggio. Troppo lungo." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problema nel salvare il messaggio. Utente sconosciuto." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4937,7 +6329,7 @@ msgstr "" "qualche minuto." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4946,353 +6338,408 @@ msgstr "" "nuovo tra qualche minuto." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Ti è proibito inviare messaggi su questo sito." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "Fornito un tipo errato per saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Impossibile salvare le informazioni del gruppo locale." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" +"Impossibile revocare il ruolo \"%1$s\" per l'utente n° %2$d: non esiste." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"Impossibile revocare il ruolo \"%1$s\" per l'utente n° %2$d: errore nel " +"database." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "L'utente non ha un profilo." +msgstr "Profilo mancante." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Impossibile salvare il messaggio del sito." +msgstr "Impossibile salvare l'etichetta." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Non ti è possibile abbonarti." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Hai già l'abbonamento!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "L'utente non ti consente di seguirlo." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Non hai l'abbonamento!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Impossibile eliminare l'auto-abbonamento." +msgstr "Impossibile salvare l'abbonamento." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Impossibile eliminare il token di abbonamento OMB." +msgstr "Impossibile salvare l'abbonamento." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Impossibile eliminare l'abbonamento." +msgstr "Impossibile salvare l'abbonamento." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Segui" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "L'utente %1$s è entrato nel gruppo %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Nessun utente singolo definito per la modalità single-user." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Impossibile creare il gruppo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Impossibile impostare l'URI del gruppo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Impossibile salvare le informazioni del gruppo locale." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Modifica le impostazioni del tuo profilo" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Carica un'immagine" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Modifica la tua password" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Modifica la gestione dell'email" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Progetta il tuo profilo" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Altre opzioni" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Altro" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Pagina senza nome" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Esplorazione sito primaria" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personale e attività degli amici" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personale" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifica la tua email, immagine, password o il tuo profilo" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Account" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connettiti con altri servizi" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Connetti" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifica la configurazione del sito" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Amministra" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita amici e colleghi a seguirti su %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Invita" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Termina la tua sessione sul sito" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Esci" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un account" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrati" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Accedi al sito" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Accedi" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Aiutami!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Aiuto" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca persone o del testo" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Cerca" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Messaggio del sito" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Viste locali" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Pagina messaggio" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Esplorazione secondaria del sito" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Aiuto" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Informazioni" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "TOS" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacy" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Sorgenti" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contatti" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Badge" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licenza del software StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5302,13 +6749,16 @@ msgstr "" "(%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** è un servizio di microblog." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5320,34 +6770,35 @@ msgstr "" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licenza del contenuto del sito" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "I contenuti e i dati di %1$s sono privati e confidenziali." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "I contenuti e i dati sono copyright di %1$s. Tutti i diritti riservati." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "I contenuti e i dati sono forniti dai collaboratori. Tutti i diritti " "riservati." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" @@ -5355,314 +6806,425 @@ msgstr "" "licenza %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginazione" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Successivi" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Precedenti" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Atteso un elemento root del feed, ma ricevuto un documento XML intero." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Fotografia" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Impossibile gestire contenuti remoti." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Impossibile gestire contenuti XML incorporati." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Impossibile gestire contenuti Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Non puoi apportare modifiche al sito." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Le modifiche al pannello non sono consentite." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() non implementata." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementata." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Impossibile eliminare le impostazioni dell'aspetto." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configurazione di base" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configurazione aspetto" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Aspetto" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configurazione utente" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Utente" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configurazione di accesso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configurazione percorsi" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configurazione sessioni" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Modifica messaggio del sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configurazione snapshot" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Imposta licenza" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Le risorse API richiedono accesso lettura-scrittura, ma si dispone del solo " "accesso in lettura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Modifica applicazione" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Nessuna applicazione per quella chiave." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Token di accesso errato." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Nessun utente per quel token." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Impossibile autenticarti." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Impossibile creare gli alias." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Impossibile creare l'applicazione." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Impossibile inserire il messaggio." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Errore nel database nell'inserire l'applicazione utente OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Tentativo di revocare un token sconosciuto." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Eliminazione del token revocato non riuscita." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icona per questa applicazione" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Descrivi l'applicazione in %d caratteri" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Descrivi l'applicazione in %d caratteri" +msgstr[1] "Descrivi l'applicazione in %d caratteri" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Descrivi l'applicazione" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL della pagina web di questa applicazione" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL sorgente" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organizzazione responsabile per questa applicazione" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL della pagina web dell'organizzazione" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL verso cui redirigere dopo l'autenticazione" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Browser" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipo di applicazione, browser o desktop" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Sola lettura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lettura-scrittura" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Accesso predefinito per questa applicazione, sola lettura o lettura-scrittura" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Annulla" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "Lettura-scrittura" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "Sola lettura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Approvata %1$s - Accesso \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revoca" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Allegati" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "L'elemento author deve contenere un elemento name." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autore" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Provider" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Messaggi in cui appare questo allegato" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etichette per questo allegato" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Modifica della password non riuscita" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "La modifica della password non è permessa" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blocca" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Risultati comando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Errore di Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Comando completato" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Comando non riuscito" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Un messaggio con quel ID non esiste" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Un messaggio con quel ID non esiste." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "L'utente non ha un ultimo messaggio." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Impossibile trovare un utente col soprannome %s" +msgid "Could not find a user with nickname %s." +msgstr "Impossibile trovare un utente col soprannome %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Impossibile trovare un utente locale col soprannome %s" +msgid "Could not find a local user with nickname %s." +msgstr "Impossibile trovare un utente locale dal soprannome %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Questo comando non è ancora implementato." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Non ha molto senso se cerchi di richiamarti!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Richiamo inviato a %s" +msgid "Nudge sent to %s." +msgstr "Richiamo inviato a %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5673,55 +7235,64 @@ msgstr "" "Abbonati: %2$s\n" "Messaggi: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Messaggio indicato come preferito." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Fai già parte di quel gruppo" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s." +msgid "%1$s joined group %2$s." +msgstr "L'utente %1$s è entrato nel gruppo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Impossibile rimuovere l'utente %1$s dal gruppo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s ha lasciato il gruppo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Posizione: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Pagina web: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Informazioni: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5730,146 +7301,176 @@ msgstr "" "%s è un profilo remoto. È possibile inviare messaggi privati solo agli " "utenti sullo stesso server." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." +msgstr[1] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Messaggio diretto a %s inviato." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Errore nell'inviare il messaggio diretto." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Impossibile ripetere un proprio messaggio" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Hai già ripetuto quel messaggio" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Messaggio da %s ripetuto" +msgid "Notice from %s repeated." +msgstr "Messaggio da %s ripetuto." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Errore nel ripetere il messaggio." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Messaggio troppo lungo: massimo %d caratteri, inviati %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." +msgstr[1] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Risposta a %s inviata" +msgid "Reply to %s sent." +msgstr "Risposta a %s inviata." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Errore nel salvare il messaggio." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "Specifica il nome dell'utente a cui abbonarti." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Impossibile abbonarsi ai profili OMB attraverso un comando." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Abbonati a %s" +msgid "Subscribed to %s." +msgstr "Abbonati a %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "Specifica il nome dell'utente da cui annullare l'abbonamento." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Abbonamento a %s annullato" +msgid "Unsubscribed from %s." +msgstr "Abbonamento a %s annullato." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Comando non ancora implementato." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notifiche disattivate." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Impossibile disattivare le notifiche." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notifiche attivate." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Impossibile attivare le notifiche." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Il comando di accesso è disabilitato" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Il comando di accesso è disabilitato." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Questo collegamento è utilizzabile una sola volta ed è valido solo per 2 " -"minuti: %s" +"Questo collegamento è utilizzabile una sola volta ed è valido per 2 minuti: %" +"s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "%s ha annullato l'abbonamento" +msgid "Unsubscribed %s." +msgstr "Abbonamento di %s annullato." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Il tuo abbonamento è stato annullato." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Persona di cui hai già un abbonamento:" msgstr[1] "Persone di cui hai già un abbonamento:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Nessuno è abbonato ai tuoi messaggi." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Questa persona è abbonata ai tuoi messaggi:" msgstr[1] "Queste persone sono abbonate ai tuoi messaggi:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Non fai parte di alcun gruppo." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Non fai parte di questo gruppo:" msgstr[1] "Non fai parte di questi gruppi:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5951,52 +7552,79 @@ msgstr "" "tracks - non ancora implementato\n" "tracking - non ancora implementato\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Non è stato trovato alcun file di configurazione. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "I file di configurazione sono stati cercati in questi posti: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" "Potrebbe essere necessario lanciare il programma d'installazione per " "correggere il problema." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Vai al programma d'installazione." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Messaggi via messaggistica istantanea (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Messaggi via SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Connessioni" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Applicazioni collegate autorizzate" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Errore del database" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Carica file" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6004,41 +7632,60 @@ msgstr "" "Puoi caricare la tua immagine di sfondo. La dimensione massima del file è di " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "On" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Off" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reimposta" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Valori predefiniti ripristinati." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Togli questo messaggio dai preferiti" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Rendi questo messaggio un preferito" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Preferisci" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Esporta dati" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Feed" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6069,8 +7716,14 @@ msgstr "Vai" msgid "Grant this user the \"%s\" role" msgstr "Concedi a questo utente il ruolo \"%s\"" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 lettere minuscole o numeri, senza spazi o simboli di punteggiatura" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL della pagina web, blog del gruppo o l'argomento" #: lib/groupeditform.php:168 @@ -6078,62 +7731,116 @@ msgid "Describe the group or topic" msgstr "Descrivi il gruppo o l'argomento" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Descrivi il gruppo o l'argomento in %d caratteri" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Descrivi il gruppo o l'argomento in %d caratteri" +msgstr[1] "Descrivi il gruppo o l'argomento in %d caratteri" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Dove è situato il gruppo, tipo \"città, regione, stato\"" -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Soprannomi aggiuntivi per il gruppo, separati da virgole o spazi, max %d" +msgstr[1] "" "Soprannomi aggiuntivi per il gruppo, separati da virgole o spazi, max %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Gruppo" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Gruppo %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membri" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membri del gruppo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Bloccato" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "Utenti bloccati di %s" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Modifica le proprietà del gruppo %s" +msgstr "Modifica proprietà di %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Aggiungi o modifica il logo di %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Aggiungi o modifica l'aspetto di %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "I gruppi più numerosi" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "I gruppi con più messaggi" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Etichette nei messaggi del gruppo %s" @@ -6147,38 +7854,57 @@ msgstr "Questa pagina non è disponibile in un tipo di supporto che tu accetti" msgid "Unsupported image file format." msgstr "Formato file immagine non supportato." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Quel file è troppo grande. La dimensione massima è %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Caricamento parziale." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Errore di sistema nel caricare il file." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Non è un'immagine o il file è danneggiato." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Perso il nostro file." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tipo di file sconosciuto" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6190,10 +7916,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Sorgente casella in arrivo %d sconosciuta." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Iscriviti" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Lascia" @@ -6206,27 +7928,29 @@ msgstr "Accedi con nome utente e password" msgid "Sign up for a new account" msgstr "Iscriviti per un nuovo account" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Conferma indirizzo email" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Ciao %s.\n" "\n" @@ -6242,13 +7966,16 @@ msgstr "" "Grazie per il tuo tempo, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s sta ora seguendo i tuoi messaggi su %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6258,9 +7985,13 @@ msgstr "" "dall'elenco dei tuoi abbonati e segnalarlo come spam all'amministratore del " "sito presso %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6268,10 +7999,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s sta ora seguendo i tuoi messaggi su %2$s.\n" "\n" @@ -6284,21 +8015,25 @@ msgstr "" "----\n" "Modifica il tuo indirizzo email o le opzioni di notifica presso %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografia: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nuovo indirizzo email per inviare messaggi a %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6307,7 +8042,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Hai un nuovo indirizzo di invio su %1$s.\n" "\n" @@ -6318,32 +8053,37 @@ msgstr "" "Cordiali saluti,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "stato di %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Conferma SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" "%s: conferma che questo numero di telefono sia tuo utilizzando questo codice:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s ti ha richiamato" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6370,14 +8110,18 @@ msgstr "" "Cordiali saluti,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nuovo messaggio privato da %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6410,14 +8154,19 @@ msgstr "" "Cordiali saluti,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) ha aggiunto il tuo messaggio tra i suoi preferiti" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6456,7 +8205,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6467,13 +8216,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) ti ha inviato un messaggio" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6536,7 +8292,7 @@ msgstr "" "iniziare una conversazione con altri utenti. Altre persone possono mandare " "messaggi riservati solamente a te." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "via" @@ -6556,21 +8312,24 @@ msgstr "Quella non è la tua email di ricezione." msgid "Sorry, no incoming email allowed." msgstr "Email di ricezione non consentita." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Tipo di messaggio non supportato: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Si è verificato un errore nel database nel salvare il file. Prova di nuovo." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Il file caricato eccede la direttiva upload_max_filesize in php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6578,87 +8337,137 @@ msgstr "" "Il file caricato eccede la direttiva MAX_FILE_SIZE specificata nel modulo " "HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Il file caricato è stato caricato solo parzialmente." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Manca una directory temporanea." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Scrittura del file su disco non riuscita." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Caricamento del file bloccato dall'estensione." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Il file supera la quota dell'utente." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Impossibile spostare il file nella directory di destinazione." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Impossibile determinare il tipo MIME del file." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Prova a usare un altro formato per %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" non è un tipo di file supportato su questo server. Prova a usare un " +"formato %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s non è un tipo di file supportato su server." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" non è un tipo di file supportata su questo server." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Invia un messaggio diretto" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Seleziona licenza" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Non hai l'abbonamento!" + +#: lib/messageform.php:153 msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caratteri disponibili" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Invia" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Il soprannome deve essere composto solo da lettere minuscole e numeri, senza " +"spazi." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Invia un messaggio" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Cosa succede, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Allega" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Allega un file" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Condividi la mia posizione" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Non condividere la mia posizione" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6667,51 +8476,55 @@ msgstr "" "previsto. Riprova più tardi." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "presso" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "in una discussione" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -6727,55 +8540,52 @@ msgstr "Richiama" msgid "Send a nudge to this user" msgstr "Invia un richiamo a questo utente" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Errore nell'inserire il nuovo profilo" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Errore nell'inserire il nuovo profilo." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Errore nell'inserire l'immagine" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Errore nell'inserire l'immagine." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Errore nell'aggiornare il profilo remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Errore nell'inserire il profilo remoto." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Errore nell'inserire il profilo remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Messaggio duplicato." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Messaggio duplicato" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Impossibile inserire un nuovo abbonamento." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personale" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Risposte" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Preferiti" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "In arrivo" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "I tuoi messaggi in arrivo" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Inviati" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "I tuoi messaggi inviati" @@ -6784,7 +8594,8 @@ msgstr "I tuoi messaggi inviati" msgid "Tags in %s's notices" msgstr "Etichette nei messaggi di %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Sconosciuto" @@ -6866,9 +8677,11 @@ msgstr "Ripeti questo messaggio" msgid "Revoke the \"%s\" role from this user" msgstr "Revoca il ruolo \"%s\" a questo utente" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Nessun utente singolo definito per la modalità single-user." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Metodo delle API non trovato." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6878,19 +8691,25 @@ msgstr "Sandbox" msgid "Sandbox this user" msgstr "Metti questo utente nella \"sandbox\"" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Cerca nel sito" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Parole" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Cerca" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Aiuto sulla ricerca" @@ -6964,6 +8783,12 @@ msgstr "Insieme delle etichette delle persone come etichettate" msgid "None" msgstr "Nessuno" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nome file non valido." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6974,26 +8799,30 @@ msgid "The theme file is missing or the upload failed." msgstr "Manca il file del tema o il caricamento non è riuscito." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Salvataggio del tema non riuscito." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Tema non valido: struttura directory non corretta." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Il tema caricato è troppo grande, deve essere meno di %d byte non compresso." +msgstr[1] "" "Il tema caricato è troppo grande, deve essere meno di %d byte non compresso." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "File di tema non valido: manca il file css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7001,12 +8830,17 @@ msgstr "" "Il tema contiene file non o nomi di cartelle non validi. Utilizzare " "solamente caratteri ASCII, numeri, il trattino basso e il segno meno." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"Il tema contiene file con estensioni non sicure: potrebbe non essere sicuro." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Il tema contiene file di tipo \".%s\" che non sono supportati." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Errore nell'aprire il file del tema." @@ -7014,6 +8848,13 @@ msgstr "Errore nell'aprire il file del tema." msgid "Top posters" msgstr "Chi scrive più messaggi" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Sblocca" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Unsandbox" @@ -7038,122 +8879,174 @@ msgstr "Annulla l'abbonamento da questo utente" msgid "Unsubscribe" msgstr "Disabbonati" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "L'utente %s (%d) non ha un profilo." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "L'utente non ha un profilo." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Modifica immagine" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Azioni utente" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Eliminazione utente..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Modifica impostazioni del profilo" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Modifica" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Invia un messaggio diretto a questo utente" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Messaggio" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Modera" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Ruolo dell'utente" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Amministratore" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderatore" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "pochi secondi fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "circa un minuto fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "circa %d minuti fa" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "circa un minuto fa" +msgstr[1] "circa %d minuti fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "circa un'ora fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "circa %d ore fa" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "circa un'ora fa" +msgstr[1] "circa %d ore fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "circa un giorno fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "circa %d giorni fa" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "circa un giorno fa" +msgstr[1] "circa %d giorni fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "circa un mese fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "circa %d mesi fa" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "circa un mese fa" +msgstr[1] "circa %d mesi fa" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "circa un anno fa" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s non è un colore valido." -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s non è un colore valido. Usa 3 o 6 caratteri esadecimali." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." +msgstr[1] "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Dimensione non valida." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Nessun utente specificato: viene usato l'utente di backup." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, fuzzy, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d voci nel backup." +msgstr[1] "%d voci nel backup." diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index fab6b3d780..2ebba88b18 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -1,165 +1,206 @@ -# Translation of StatusNet to Japanese +# Translation of StatusNet - Core to Japanese (日本語) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Fryed-peach -# Author@translatewiki.net: Sonoda -# Author@translatewiki.net: Whym +# Author: Brion +# Author: Calamari +# Author: Fryed-peach +# Author: Sonoda +# Author: Whym +# Author: 青子守歌 # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:41+0000\n" -"Language-Team: Japanese\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:00+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "アクセス" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "サイトアクセス設定" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "登録" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "匿名ユーザー(ログインしていません)がサイトを見るのを禁止しますか?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "プライベート" +msgstr "プライバシー" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "招待のみ登録する" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "招待のみ" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "新規登録を無効。" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "閉じられた" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "アクセス設定の保存" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 #, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "保存" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "そのようなページはありません。" +msgstr "そのようなタグはありません。" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "そのようなユーザはいません。" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s と友人、ページ %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s と友人" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s の友人のフィード (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s の友人のフィード (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s の友人のフィード (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "これは %s と友人のタイムラインです。まだ誰も投稿していません。" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -168,78 +209,104 @@ msgstr "" "もっと多くの人をフォローしてみましょう。[グループに参加](%%action.groups%%) " "してみたり、何か投稿してみましょう。" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"プロフィールから [%1$s さんに合図](../%2$s) したり、[知らせたいことについて投" -"稿](%%%%action.newnotice%%%%?status_textarea=%3$s) したりできます。" +"最初の [このトピック投稿](%%%%action.newnotice%%%%?status_textarea=%s) をして" +"ください!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"[アカウントを登録](%%%%action.register%%%%) して %s さんに合図したり、お知ら" -"せを送ってみませんか。" +"なぜ [アカウント登録](%%action.register%%) しないのですか。そして最初の投稿を" +"してください!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "あなたと友人" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "%2$s に %1$s と友人からの更新があります!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API メソッドが見つかりません。" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "このメソッドには POST が必要です。" -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 #, fuzzy msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " @@ -248,353 +315,526 @@ msgstr "" "「device」という名前の引数を、次の中から値を選んで、指定する必要があります: " "sms, im, none" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "ユーザを更新できませんでした。" -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "ユーザはプロフィールをもっていません。" +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "プロフィールを保存できませんでした。" +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" "サーバーの現在の構成が理由で、大量の POST データ (%sバイト) を処理することが" "できませんでした。" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "あなたのデザイン設定を保存できません。" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "デザインを更新できませんでした。" -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s のタイムライン" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s フォローしている" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "お気に入り" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s グループメンバー" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "自分自身をブロックすることはできません!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "ユーザのブロックに失敗しました。" -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "ユーザのブロック解除に失敗しました。" -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "%s からのダイレクトメッセージ" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "%s から送られた全てのダイレクトメッセージ" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "%s へのダイレクトメッセージ" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "%s へ送った全てのダイレクトメッセージ" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "メッセージの本文がありません!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "長すぎます。メッセージは最大 %d 字までです。" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "長すぎます。メッセージは最大 %d 字までです。" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "受け取り手のユーザが見つかりません。" -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "友人でないユーザにダイレクトメッセージを送ることはできません。" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"自分自身にメッセージを送ることはできません; かわりに独り言を言いましょう。" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "そのIDのステータスが見つかりません。" +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "このステータスはすでにお気に入りです。" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "お気に入りを作成できません。" -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "そのステータスはお気に入りではありません。" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "お気に入りを取り消すことができません。" +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "ユーザをフォローできませんでした: ユーザが見つかりません。" +msgstr "ユーザのフォローを停止できませんでした: ユーザが見つかりません。" -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" "ユーザをフォローできませんでした: %s は既にあなたのリストに入っています。" +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "ユーザのフォローを停止できませんでした: ユーザが見つかりません。" -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "自分自身をフォロー停止することはできません。" -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "ふたつのIDかスクリーンネームが必要です。" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "ソースユーザーを決定できません。" -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "ターゲットユーザーを見つけられません。" -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"ニックネームには、小文字アルファベットと数字のみ使用できます。スペースは使用" -"できません。" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "有効なニックネームではありません。" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "ホームページのURLが不適切です。" -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "フルネームが長すぎます。(255字まで)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "記述が長すぎます。(最長140字)" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "記述が長すぎます。(最長%d字)" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "場所が長すぎます。(255字まで)" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "別名が多すぎます! 最大 %d。" +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "別名が多すぎます! 最大 %d。" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "不正な別名: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "別名 \"%s\" は既に使用されています。他のものを試してみて下さい。" -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "別名はニックネームと同じではいけません。" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "グループが見つかりません!" +msgstr "見つかりません。" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "すでにこのグループのメンバーです。" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "管理者によってこのグループからブロックされています。" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "ユーザ %1$s はグループ %2$s に参加できません。" +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "このグループのメンバーではありません。" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "ユーザ %1$s をグループ %2$s から削除できません。" -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s のグループ" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "グループ %s はメンバー" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s グループ" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "%s 上のグループ" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "ファイルアップロード" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "不正なログイントークンが指定されています。" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "oauth_token パラメータは提供されませんでした。" -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "不正なトークン。" -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "認証されていません。" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "あなたのセッショントークンに問題がありました。再度お試しください。" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "不正なユーザ名またはパスワード。" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "OAuth アプリケーションユーザの削除時DBエラー。" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "OAuth アプリケーションユーザの追加時DBエラー。" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"リクエストトークン %s は承認されました。 アクセストークンとそれを交換してくだ" -"さい。" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "リクエストトークン%sは、拒否されて、取り消されました。" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "予期せぬフォーム送信です。" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "アプリケーションはあなたのアカウントに接続したいです" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "アクセスを許可または拒絶" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -602,241 +842,628 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "アカウント" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "ニックネーム" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "パスワード" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "拒絶" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +#, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "中止" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "許可" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "アカウント情報へのアクセスを許可するか、または拒絶してください。" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "確認コードがありません。" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "リクエストトークン%sは、拒否されて、取り消されました。" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "認証されていません。" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "認証されていません。" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "このメソッドには POST か DELETE が必要です。" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "他のユーザのステータスを消すことはできません。" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "そのようなつぶやきはありません。" -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "あなたのつぶやきを繰り返せません。" -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "すでにつぶやきを繰り返しています。" -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API メソッドが見つかりません。" + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "サポート外の形式です。" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "ステータスを削除しました。" -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "そのIDでのステータスはありません。" +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "このつぶやきを削除できません。" + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "つぶやき削除" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "長すぎます。つぶやきは最大 140 字までです。" +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "長すぎます。つぶやきは最大 %d 字までです。" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "見つかりません。" +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API メソッドが見つかりません。" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "つぶやきは URL を含めて最大 %d 字までです。" +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "つぶやきは URL を含めて最大 %d 字までです。" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "サポート外の形式です。" -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / %2$s からのお気に入り" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s は %2$s でお気に入りを更新しました / %2$s。" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "グループを更新できません。" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / %2$s について更新" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%2$s からアップデートに答える %1$s アップデート" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s のパブリックタイムライン" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "皆からの %s アップデート!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "未実装のメソッド。" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "%s への返信" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "%s の返信" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s とタグ付けされたつぶやき" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s に %1$s による更新があります!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "ユーザだけがかれら自身のメールボックスを読むことができます。" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "つぶやきの内容を探す" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "その ID によるつぶやきは存在していません" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API メソッドが工事中です。" +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "API メソッドが見つかりません。" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "そのようなファイルはありません。" + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "サブスクリプションを追加できません" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "つぶやきの内容を探す" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "不明" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "お気に入りに加える" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "そのようなファイルはありません。" + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s グループメンバー" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "グループ %s はメンバー" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "不明" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "全てのメンバー" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "そのようなファイルはありません。" + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "お気に入りを取り消すことができません。" + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "そのようなグループはありません。" + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "全てのメンバー" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API メソッドが見つかりません。" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "そのようなファイルはありません。" + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "あなたはそのプロファイルにフォローされていません。" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "フォローを保存できません。" + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "人々は %s をフォローしました。" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "不明なファイルタイプ" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "そのような添付はありません。" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "ニックネームがありません。" -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "サイズがありません。" -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "不正なサイズ。" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "アバター" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "自分のアバターをアップロードできます。最大サイズは%sです。" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "合っているプロフィールのないユーザ" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "アバター設定" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "オリジナル" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "プレビュー" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "削除" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "アップロード" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "切り取り" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "プロファイル記述がありません。" -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "あなたのアバターとなるイメージを正方形で指定" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "ファイルデータを紛失しました。" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "アバターが更新されました。" -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "アバターの更新に失敗しました。" -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "アバターが削除されました。" -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "そのユーザはすでにブロック済みです。" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "ユーザをブロック" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 #, fuzzy msgid "" "Are you sure you want to block this user? Afterwards, they will be " @@ -849,177 +1476,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "No" +msgstr "ノート" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "このユーザをアンブロックする" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 -#, fuzzy +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" -msgstr "Yes" +msgstr "はい" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "このユーザをブロックする" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "ブロック情報の保存に失敗しました。" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "そのようなグループはありません。" -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s ブロックされたプロファイル" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s ブロックされたプロファイル、ページ %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "このグループへの参加をブロックされたユーザのリスト。" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "グループからのアンブロックユーザ" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "アンブロック" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "このユーザをアンブロックする" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "投稿" +msgstr "%s 上のグループ" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "確認コードがありません。" +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "確認コードが見つかりません。" -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "その確認コードはあなたのものではありません!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "不明なアドレスタイプ %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "そのアドレスは既に承認されています。" +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "ユーザを更新できません" -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "メール承認を削除できません" -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "アドレスの確認" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "アドレス \"%s\" はあなたのアカウントとして承認されています。" -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "会話" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "つぶやき" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "アプリケーションを削除するにはログインしていなければなりません。" +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "アプリケーションが見つかりません。" -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "このアプリケーションのオーナーではありません。" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "あなたのセッショントークンに関する問題がありました。" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "アプリケーション削除" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 #, fuzzy msgid "" "Are you sure you want to delete this application? This will clear all data " @@ -1030,31 +1701,94 @@ msgstr "" "ベースからユーザに関するすべてのデータをクリアします。" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "このアプリケーションを削除しないでください" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "このアプリケーションを削除" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "グループから離れるにはログインしていなければなりません。" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "ニックネームがありません。" + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "このグループのメンバーではありません。" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "グループを更新できません。" + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s はグループ %2$s に残りました。" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "ユーザ削除" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"あなたは本当にこのユーザを削除したいですか? これはバックアップなしでデータ" +"ベースからユーザに関するすべてのデータをクリアします。" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "このつぶやきを削除できません。" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "このユーザを削除" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "ログインしていません。" -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "このつぶやきを削除できません。" - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1062,21 +1796,24 @@ msgstr "" "あなたはつぶやきを永久に削除しようとしています。 これが完了するとそれを元に戻" "すことはできません。" -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "つぶやき削除" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "本当にこのつぶやきを削除しますか?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -1107,63 +1844,74 @@ msgstr "このユーザを削除" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "デザイン" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "この StatusNet サイトのデザイン設定。" +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "不正なロゴ URL" -#: actions/designadminpanel.php:322 -#, fuzzy, php-format -msgid "Theme not available: %s." -msgstr "テーマが利用できません: %s" +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "不正なロゴ URL" -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:344 +#, php-format +msgid "Theme not available: %s." +msgstr "IM が利用不可。" + +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "ロゴの変更" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "サイトロゴ" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "サイトロゴ" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "テーマ変更" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "サイトテーマ" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "サイトのテーマ" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "サイトテーマ" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "バックグラウンドイメージの変更" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "バックグラウンド" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1173,75 +1921,84 @@ msgstr "" "イズは %1$s。" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "オン" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "オフ" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "バックグラウンドイメージのオンまたはオフ。" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "タイルバックグラウンドイメージ" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "色の変更" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "内容" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "サイドバー" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "テキスト" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "リンク" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "デフォルトを使用" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "デフォルトデザインに戻す。" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "デフォルトへリセットする" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "保存" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "デザインの保存" @@ -1258,109 +2015,131 @@ msgstr "お気に入りに加える" msgid "No such document \"%s\"" msgstr "そのようなドキュメントはありません。\"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "アプリケーション編集" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "アプリケーションを編集するにはログインしていなければなりません。" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "そのようなアプリケーションはありません。" -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "このフォームを使ってアプリケーションを編集します。" -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "名前は必須です。" -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "名前が長すぎます。(最大255字まで)" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "概要が必要です。" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "ソースURLが長すぎます。" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "ソースURLが不正です。" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "組織が必要です。" -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "組織が長すぎます。(最大255字)" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "組織のホームページが必要です。" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "コールバックが長すぎます。" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "コールバックURLが不正です。" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "アプリケーションを更新できません。" -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "%s グループを編集" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "グループを作るにはログインしていなければなりません。" -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "グループを編集するには管理者である必要があります。" -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "このフォームを使ってグループを編集します。" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "記述が長すぎます。(最長 %d 字)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "不正な別名: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "グループを更新できません。" +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "別名を作成できません。" -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "オプションが保存されました。" @@ -1378,12 +2157,12 @@ msgstr "%%site.name%% からのメールを管理。" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "メールアドレス" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "現在確認されているメールアドレス。" @@ -1392,15 +2171,14 @@ msgstr "現在確認されているメールアドレス。" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "削除" +msgstr "回復" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1408,26 +2186,19 @@ msgstr "" "このアドレスは承認待ちです。受信ボックス(とスパムボックス)に追加の指示が書" "かれたメッセージが届いていないか確認してください。" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "中止" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "メールアドレス、\"UserName@example.org\" のような" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1436,116 +2207,122 @@ msgstr "追加" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "入ってくるメール" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "メールでつぶやきを投稿したい。" + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "新しいつぶやき投稿にこのアドレスへメールする" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "投稿のための新しいEメールアドレスを作ります; 古い方を取り消します。" +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "New" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "設定" +msgstr "メールアドレス" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "メールで新規フォローの通知を私に送ってください。" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "だれかがお気に入りとして私のつぶやきを加えたら、メールを私に送ってください。" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "だれかがプライベート・メッセージを私に送るときには、メールを私に送ってくださ" "い。" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "だれかが\"@-返信\"を私を送るときには、メールを私に送ってください、" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "友達が私に合図とメールを送ることを許可する。" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "メールでつぶやきを投稿したい。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "私のメールアドレスのためにMicroIDを発行してください。" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "デザイン設定が保存されました。" #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "メールアドレスがありません。" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "そのメールアドレスを正規化できません" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "有効なメールアドレスではありません。" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "これはすでにあなたのメールアドレスです。" #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "このメールアドレスは既に他の人が使っています。" #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "承認コードを追加できません" #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1557,53 +2334,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "承認待ちのものはありません。" #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "その IM アドレスは不正です。" +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "メール承認を削除できません" + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "承認作業が中止されました。" +msgstr "承認待ちのものはありません。" #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "これはあなたのメールアドレスではありません。" #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "アドレスは削除されました。" +msgstr "入ってくるメールアドレスは削除されました。" -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "入ってくるメールアドレスではありません。" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "ユーザレコードを更新できません。" #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "入ってくるメールアドレスは削除されました。" #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "新しい入ってくるメールアドレスが追加されました。" @@ -1611,11 +2392,11 @@ msgstr "新しい入ってくるメールアドレスが追加されました。 msgid "This notice is already a favorite!" msgstr "このつぶやきはすでにお気に入りです!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "お気に入りをやめる" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "人気のつぶやき" @@ -1653,7 +2434,7 @@ msgstr "" "気に入りにつぶやきを加える最初になりましょう!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s のお気に入りのつぶやき" @@ -1723,7 +2504,7 @@ msgid "Remote service uses unknown version of OMB protocol." msgstr "" "リモートサービスは、不明なバージョンの OMB プロトコルを使用しています。" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "リモートプロファイル更新エラー" @@ -1755,19 +2536,23 @@ msgstr "あなたはこのサイトのサンドボックスユーザができま msgid "User already has this role." msgstr "ユーザは既に黙っています。" +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "プロファイル記述がありません。" -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "そのIDのプロファイルがありません。" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "グループ記述がありません。" @@ -1784,7 +2569,7 @@ msgstr "ユーザはすでにグループからブロックされています。 msgid "User is not a member of group." msgstr "ユーザはグループのメンバーではありません。" -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "グループからユーザをブロック" @@ -1832,8 +2617,10 @@ msgstr "" "あなたが選んだパレットの色とバックグラウンドイメージであなたのグループをカス" "タマイズしてください。" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "あなたのデザインを更新できません。" @@ -1853,6 +2640,14 @@ msgstr "" "あなたのグループ用にロゴイメージをアップロードできます。最大ファイルサイズは " "%s。" +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "アップロード" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "切り取り" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "ロゴとなるイメージの正方形を選択。" @@ -1865,48 +2660,55 @@ msgstr "ロゴが更新されました。" msgid "Failed updating logo." msgstr "ロゴの更新に失敗しました。" -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s グループメンバー" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s グループメンバー、ページ %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "このグループのユーザのリスト。" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "管理者" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "ブロック" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "ユーザをグループの管理者にする" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "管理者にする" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "このユーザを管理者にする" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s のタイムライン" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1979,15 +2781,18 @@ msgstr "" "なぜ[アカウント登録](%%action.register%%) や [グループ作成](%%action.newgroup" "%%) しないのか!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "管理者だけがグループメンバーをアンブロックできます。" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "ユーザはグループからブロックされていません。" -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "ブロックの削除エラー" @@ -2036,7 +2841,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2046,66 +2854,65 @@ msgstr "" "IMクライアントやGTalkに追加して下さい。" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "設定" +msgstr "設定が保存されました。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Jabber/GTalk で私に通知を送って下さい。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Jabber/GTalkのステータスが変更された時に通知を送る。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Jabber/GTalkを通して回答を、私がフォローされていない人々から私に送ってくださ" "い。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "私のJabber/GTalkアドレスのためにMicroIDを発行してください。" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "設定が保存されました。" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Jabbar ID はありません。" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "その Jabbar ID を正規化できません" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "有効な Jabber ID ではありません。" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "その Jabber ID は既にあなたのものです。" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID jは既に別のユーザが使用しています。" #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2115,33 +2922,31 @@ msgstr "" "ようにするには%sを承認してください。" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "その IM アドレスは不正です。" #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "メール承認を削除できません" #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "承認作業が中止されました。" +msgstr "確認コードがありません。" #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "その Jabber ID はあなたのものではありません。" #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "アドレスは削除されました。" +msgstr "入ってくるメールアドレスは削除されました。" #: actions/inbox.php:59 #, php-format @@ -2158,51 +2963,78 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "これはあなたの受信箱です、やってきたプライベートメッセージをリストします。" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "招待は無効にされました。" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "他のユーザが%sを使用するよう誘うためにはログインしなければなりません。" - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" +msgid "You must be logged in to invite other users to use %s." +msgstr "グループを編集するにはログインしていなければなりません。" + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "不正なメールアドレス:%s'" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "招待を送りました。" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "新しいユーザを招待" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "すでにこれらのユーザをフォローしています:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "すでにこれらのユーザをフォローしています:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" "これらの人々は既にユーザです、そして、あなたは自動的に彼らにフォローされまし" "た:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "招待を以下の人々に送信しました:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "招待を以下の人々に送信しました:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2210,43 +3042,54 @@ msgstr "" "あなたの招待参加者が招待に応じて、サイトに登録すると、あなたに通知されるで" "しょう。 コミュニティを広げてくださってありがとうございます!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "友人や同僚がこのサービスを利用するようこのフォームを使用して誘ってください。" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "メールアドレス" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "招待する友人のアドレス (一行に一つ)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "パーソナルメッセージ" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "任意に招待にパーソナルメッセージを加えてください。" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "投稿" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s があなたを %2$s へ招待しました" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2307,14 +3150,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "グループに入るためにはログインしなければなりません。" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "ニックネームがありません。" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s はグループ %2$s に参加しました" @@ -2323,17 +3159,121 @@ msgstr "%1$s はグループ %2$s に参加しました" msgid "You must be logged in to leave a group." msgstr "グループから離れるにはログインしていなければなりません。" -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "あなたはそのグループのメンバーではありません。" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s はグループ %2$s に残りました。" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "ライセンス" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "このStatusNetサイトのライセンス" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "不正なウェルカムテキスト。最大長は255字です。" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "プライベート" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "既にログインしています。" @@ -2354,11 +3294,11 @@ msgstr "ログイン" msgid "Login to site" msgstr "サイトへログイン" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "ログイン状態を保持" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "以降は自動的にログインする。共用コンピューターでは避けましょう!" @@ -2407,71 +3347,80 @@ msgid "Can't make %1$s an admin for group %2$s." msgstr "%1$s をグループ %2$s の管理者にすることはできません" #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." -msgstr "現在のステータスはありません" +msgstr "結果なし。" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "新しいアプリケーション" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "アプリケーションを登録するにはログインしていなければなりません。" -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "このフォームを使って新しいアプリケーションを登録します。" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "ソースURLが必要です。" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "アプリケーションを作成できません。" +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "新しいグループ" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "このフォームを使って新しいグループを作成します。" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "新しいメッセージ" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "このユーザにメッセージを送ることはできません。" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "コンテンツがありません!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "受取人が書かれていません。" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "自分自身にメッセージを送ることはできません; かわりに独り言を言いましょう。" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "メッセージを送りました" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "ダイレクトメッセージを %s に送りました" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax エラー" @@ -2479,7 +3428,7 @@ msgstr "Ajax エラー" msgid "New notice" msgstr "新しいつぶやき" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "つぶやきを投稿しました" @@ -2531,7 +3480,8 @@ msgstr "\"%2$s\" 上の検索語 \"$1$s\" に一致するすべての更新" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "このユーザは、合図を許可していないか、確認されていた状態でないか、メール設定" "をしていません。" @@ -2544,75 +3494,99 @@ msgstr "合図を送った" msgid "Nudge sent!" msgstr "合図を送った!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "アプリケーションをリストするにはログインしていなければなりません。" -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth アプリケーション" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "あなたが登録したアプリケーション" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "あなたはまだなんのアプリケーションも登録していません。" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "接続されたアプリケーション" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "あなたのアカウントにアクセスする以下のアプリケーションを許可しました。" +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "あなたはそのアプリケーションのユーザではありません。" -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, fuzzy, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "アプリケーションのための取消しアクセスができません: " -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" "あなたは、どんなアプリケーションもあなたのアカウントを使用するのを認可してい" "ません。" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "開発者は彼らのアプリケーションのために登録設定を編集できます " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "つぶやきにはプロファイルはありません。" +msgstr "ユーザはプロフィールをもっていません。" -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%2$s における %1$s のステータス" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "内容種別 " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -2624,36 +3598,46 @@ msgstr "ピープル検索" msgid "Notice Search" msgstr "つぶやき検索" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "その他の設定" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "他のオプションを管理。" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "(フリーサービス)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "URLを短くします" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "使用する自動短縮サービス。" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "プロファイルデザインを表示" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "プロファイルデザインの表示または非表示" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL 短縮サービスが長すぎます。(最大50字)" #: actions/otp.php:69 @@ -2717,7 +3701,7 @@ msgid "6 or more characters" msgstr "6文字以上" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "パスワード確認" @@ -2729,11 +3713,11 @@ msgstr "上と同じパスワード" msgid "Change" msgstr "変更" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "パスワードは6文字以上にする必要があります。" -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "パスワードが一致しません。" @@ -2753,156 +3737,291 @@ msgstr "新しいパスワードを保存できません。" msgid "Password saved." msgstr "パスワードが保存されました。" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "パス" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "パスと StatusNet サイトのサーバー設定" +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." -msgstr "テーマディレクトリが読み込めません: %s" +msgstr "テーマディレクトリ" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "アバターディレクトリに書き込みできません: %s" +msgstr "アバターディレクトリ" -#: actions/pathsadminpanel.php:169 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format msgid "Background directory not writable: %s." -msgstr "バックグラウンドディレクトリに書き込みできません : %s" +msgstr "バックグラウンドディレクトリ" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "場所ディレクトリが読み込めません: %s" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "不正な SSL サーバー。最大 255 文字まで。" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "サイト" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "サーバー" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "サイトのサーバーホスト名" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "パス" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "サイトパス" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "ロケールのパス" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "テーマディレクトリ" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "ロケールへのディレクトリパス" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Fancy URL (読みやすく忘れにくい) を使用しますか?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "テーマ" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "テーマサーバー" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "サイトのテーマ" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "テーマパス" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "テーマディレクトリ" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "アバター" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "アバターサーバー" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "アバターパス" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "アバターディレクトリ" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "バックグラウンド" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "バックグラウンドサーバー" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "バックグラウンドパス" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "バックグラウンドディレクトリ" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "ときどき" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "いつも" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "SSL 使用" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "SSL 使用時" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSLサーバ" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "サイトパス" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "テーマディレクトリ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "ロケールへのディレクトリパス" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "アバター" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "アバターサーバー" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "サイトのテーマ" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "アバターパス" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "アバターの更新に失敗しました。" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "アバターディレクトリ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "ロケールへのディレクトリパス" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "バックグラウンド" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "サイトのテーマ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "ロケールへのディレクトリパス" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "添付" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "サイトのテーマ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "そのような添付はありません。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "サイトのテーマ" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "ロケールへのディレクトリパス" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "ときどき" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "いつも" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL 使用" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "SSL 使用時" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "ダイレクト SSL リクエストを向けるサーバ" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "保存パス" @@ -2920,9 +4039,9 @@ msgid "People search" msgstr "ピープルサーチ" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "正しいタグではありません: %s" +msgstr "有効なメールアドレスではありません。" #: actions/peopletag.php:142 #, php-format @@ -2930,9 +4049,8 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "ユーザ自身がつけたタグ %1$s - ページ %2$d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "不正なつぶやき内容" +msgstr "不正なトークン。" #: actions/postnotice.php:101 #, php-format @@ -2940,139 +4058,182 @@ msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’. msgstr "" "つぶやきライセンス ‘%1$s’ はサイトライセンス ‘%2$s’ と互換性がありません。" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "プロファイル設定" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "あなたのことについて知ってもらうために、ここでプロファイル情報を更新できま" "す。" -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "プロファイル情報" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64文字の、小文字アルファベットか数字で、スペースや句読点は除く" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "フルネーム" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "ホームページ" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "ホームページ、ブログ、プロファイル、その他サイトの URL" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "%d字以内で自分自身と自分の興味について書いてください" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "%d字以内で自分自身と自分の興味について書いてください" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "自分自身と自分の興味について書いてください" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "自己紹介" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "場所" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "自分のいる場所。例:「都市, 都道府県 (または地域), 国」" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "つぶやきを投稿するときには私の現在の場所を共有してください" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "タグ" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "自分自身についてのタグ (アルファベット、数字、-、.、_)、カンマまたは空白区切" "りで" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "言語" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "ご希望の言語" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "タイムゾーン" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "普段のタイムゾーンはどれですか?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "自分をフォローしている者を自動的にフォローする (BOTに最適)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "自己紹介が長すぎます (最長140文字)。" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "自己紹介が長すぎます (最長%d文字)。" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "タイムゾーンが選ばれていません。" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "言語が長すぎます。(最大50字)" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "不正なタグ: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "自動フォローのためのユーザを更新できませんでした。" -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "場所情報を保存できません。" -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "プロファイルを保存できません" -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "タグを保存できません。" +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "設定が保存されました。" @@ -3152,26 +4313,39 @@ msgstr "" "net/)を基にした[マイクロブロギング](http://en.wikipedia.org/wiki/Micro-" "blogging) サービス。" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "パブリックタグクラウド" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "これらは %s の人気がある最近のタグです " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "まだだれも [ハッシュタグ](%%doc.tags%%) 付きのつぶやきを投稿していません。" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "投稿する1番目になってください!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3180,7 +4354,7 @@ msgstr "" "なぜ [アカウント登録](%%action.register%%) しないのですか。そして最初の投稿を" "してください!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "タグクラウド" @@ -3291,14 +4465,15 @@ msgid "Unexpected password reset." msgstr "予期せぬパスワードのリセットです。" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "パスワードは6字以上でなければいけません。" #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "パスワードと確認が一致しません。" -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "ユーザ設定エラー" @@ -3306,7 +4481,7 @@ msgstr "ユーザ設定エラー" msgid "New password successfully saved. You are now logged in." msgstr "新しいパスワードの保存に成功しました。ログインしています。" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "すみません、招待された人々だけが登録できます。" @@ -3318,7 +4493,7 @@ msgstr "すみません、不正な招待コード。" msgid "Registration successful" msgstr "登録成功" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "登録" @@ -3326,19 +4501,19 @@ msgstr "登録" msgid "Registration not allowed." msgstr "登録は許可されていません。" -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "ライセンスに同意頂けない場合は登録できません。" -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "メールアドレスが既に存在します。" -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "不正なユーザ名またはパスワード。" -#: actions/register.php:350 +#: actions/register.php:351 #, fuzzy msgid "" "With this form you can create a new account. You can then post notices and " @@ -3347,63 +4522,67 @@ msgstr "" "このフォームで新しいアカウントを作成できます。 次につぶやきを投稿して、友人や" "同僚にリンクできます。 " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64文字の、小文字アルファベットか数字で、スペースや句読点は除く。必須です。" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6文字以上。必須です。" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "上のパスワードと同じです。 必須。" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "メール" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "更新、アナウンス、パスワードリカバリーでのみ使用されます。" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "長い名前" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "ホームページ、ブログ、プロファイル、その他サイトの URL" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "個人情報を除く: パスワード、メールアドレス、IMアドレス、電話番号" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3436,7 +4615,7 @@ msgstr "" "参加してくださってありがとうございます。私たちはあなたがこのサービスを楽しん" "で使ってくれることを願っています。" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3481,7 +4660,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "プロファイルサービスまたはマイクロブロギングサービスのURL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "フォロー" @@ -3520,7 +4699,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "繰り返された" @@ -3529,7 +4708,7 @@ msgid "Repeated!" msgstr "繰り返されました!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "%s への返信" @@ -3555,13 +4734,11 @@ msgid "Replies feed for %s (Atom)" msgstr "%s の返信フィード (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "" -"これは %1$s への返信を表示したタイムラインです、しかし %2$s はまだつぶやきを" -"受け取っていません。" +msgstr "これは %1$s のタイムラインですが、%2$s はまだなにも投稿していません。" #: actions/replies.php:204 #, php-format @@ -3573,13 +4750,13 @@ msgstr "" "ループに加わる](%%action.groups%%)ことができます。" #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"あなたは [%1$s に合図](../%2$s) するか、[その人宛てに何かを投稿](%%%%action." -"newnotice%%%%?status_textarea=%3$s)することができます。" +"最初の [このトピック投稿](%%%%action.newnotice%%%%?status_textarea=%s) をして" +"ください!" #: actions/repliesrss.php:72 #, php-format @@ -3610,13 +4787,13 @@ msgstr "ユーザはすでにサンドボックスです。" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "セッション" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "この StatusNet サイトのセッション設定。" +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3635,7 +4812,6 @@ msgid "Turn on debugging output for sessions." msgstr "セッションのためのデバッグ出力をオン。" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "サイト設定の保存" @@ -3648,28 +4824,29 @@ msgid "Application profile" msgstr "アプリケーションプロファイル" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "アイコン" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "名前" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "組織" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "概要" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "統計データ" @@ -3687,6 +4864,11 @@ msgstr "アプリケーションアクション" msgid "Reset key & secret" msgstr "key と secret のリセット" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "削除" + #: actions/showapplication.php:261 msgid "Application info" msgstr "アプリケーション情報" @@ -3767,91 +4949,119 @@ msgstr "" "加えることおもしろいものを投稿してください:)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s はまだお気に入りに少しのつぶやきも加えていません。 なぜ [アカウント登録](%" -"%%%action.register%%%%) しないのですか。そして、彼らがお気に入りに加えるおも" -"しろい何かを投稿しませんか:)" +"なぜ [アカウント登録](%%action.register%%) しないのですか、そして、あなたのお" +"気に入りにつぶやきを加える最初になりましょう!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "これは、あなたが好きなことを共有する方法です。" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s グループ" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s グループ、ページ %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "グループプロファイル" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "ノート" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "別名" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "グループアクション" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s グループのつぶやきフィード (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s グループのつぶやきフィード (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s グループのつぶやきフィード (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "%s グループの FOAF" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "メンバー" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(なし)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "全てのメンバー" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "作成日" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "メンバー" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3866,7 +5076,10 @@ msgstr "" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3879,24 +5092,31 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "管理者" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "そのようなメッセージはありません。" -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "送信者と受取人だけがこのメッセージを読めます。" -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "%2$s 上の %1$s へのメッセージ" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "%2$s 上の %1$s からのメッセージ" @@ -3905,47 +5125,67 @@ msgstr "%2$s 上の %1$s からのメッセージ" msgid "Notice deleted." msgstr "つぶやきを削除しました。" -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "タグ付けされた %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s、ページ %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s とタグ付けされたつぶやき、ページ %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s、ページ %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "%1$sの%2$sとタグ付けされたつぶやきフィード (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "%sのつぶやきフィード (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "%sのつぶやきフィード (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "%sのつぶやきフィード (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "%s の FOAF" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "これは %1$s のタイムラインですが、%2$s はまだなにも投稿していません。" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3953,16 +5193,20 @@ msgstr "" "最近おもしろいものは何でしょう? あなたは少しのつぶやきも投稿していませんが、" "いまは始める良い時でしょう:)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"あなたは、%1$s に合図するか、[またはその人宛に何かを投稿](%%%%action." -"newnotice%%%%?status_textarea=%2$s) することができます。" +"最初の [このトピック投稿](%%%%action.newnotice%%%%?status_textarea=%s) をして" +"ください!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3976,7 +5220,9 @@ msgstr "" "%%%%)して、**%s** のつぶやきなどをフォローしましょう! ([もっと読む](%%%%doc." "help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3987,7 +5233,8 @@ msgstr "" "[StatusNet](http://status.net/)を基にした[マイクロブロギング](http://en." "wikipedia.org/wiki/Micro-blogging) サービス。" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "%s の繰り返し" @@ -4001,9 +5248,8 @@ msgid "User is already silenced." msgstr "ユーザは既に黙っています。" #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "この StatusNet サイトの基本設定。" +msgstr "この StatusNet サイトのデザイン設定。" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -4076,9 +5322,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "サイトのデフォルトタイムゾーン; 通常UTC。" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "デフォルトサイト言語" +msgstr "ご希望の言語" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -4106,35 +5351,43 @@ msgstr "" "どれくらい長い間(秒)、ユーザは、再び同じものを投稿するのを待たなければならな" "いか。" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "サイトつぶやき" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "新しいメッセージ" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "あなたのデザイン設定を保存できません。" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "プロファイル自己紹介の最大文字長。" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "サイトつぶやき" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "サイトつぶやき" @@ -4202,9 +5455,8 @@ msgstr "電話番号、句読点またはスペースがない、市街番号付 #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "設定" +msgstr "設定が保存されました。" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4257,9 +5509,8 @@ msgstr "それは間違った確認番号です。" #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "承認作業が中止されました。" +msgstr "SMS確認" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4302,14 +5553,13 @@ msgstr "コードが入力されていません" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "スナップショット" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "サイト設定の変更" +msgstr "セッション設定" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4360,12 +5610,14 @@ msgstr "このURLにスナップショットを送るでしょう" msgid "Save snapshot settings" msgstr "サイト設定の保存" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "あなたはそのプロファイルにフォローされていません。" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "フォローを保存できません。" @@ -4373,11 +5625,6 @@ msgstr "フォローを保存できません。" msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "そのようなファイルはありません。" - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4387,39 +5634,56 @@ msgstr "あなたはそのプロファイルにフォローされていません msgid "Subscribed" msgstr "フォローしている" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "フォローされている" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s フォローされている、ページ %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "あなたのつぶやきを聞いている人" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "%s のつぶやきを聞いている人" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "あなたには、フォローしている人が全くいません。 あなたが知っている人々をフォ" "ローしてみてください。そうすれば、彼らはお気に入りを返すかもしれません。" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s にはフォローしている人がいません。最初の人になりますか?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4428,26 +5692,31 @@ msgstr "" "%s にはフォローしている人がいません。なぜ[アカウント登録](%%%%action.register" "%%%%)して最初にならないのですか?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s フォローしている" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s フォローしている、ページ %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "あなたがつぶやきを聞いている人" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "%s がつぶやきを聞いている人" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4463,16 +5732,27 @@ msgstr "" "twittersettings%%)であれば、あなたは自動的に既にフォローしている人々をフォ" "ローできます。" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s はだれも言うことを聞いていません。" -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%sのつぶやきフィード (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4510,7 +5790,7 @@ msgid "User profile" msgstr "ユーザプロファイル" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "写真" @@ -4557,9 +5837,8 @@ msgid "User is not silenced." msgstr "ユーザはサイレンスではありません。" #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "リクエスト内にプロファイルIDがありません。" +msgstr "ログイントークンが要求されていません。" #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4574,75 +5853,97 @@ msgstr "" "りません。" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "ユーザ" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "この StatusNet サイトのユーザ設定。" +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "不正な自己紹介制限。数字である必要があります。" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "不正なウェルカムテキスト。最大長は255字です。" -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "不正なデフォルトフォローです: '%1$s' はユーザではありません。" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "プロファイル" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "自己紹介制限" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "プロファイル自己紹介の最大文字長。" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "新しいユーザ" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "新しいユーザを歓迎" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "新しいユーザへのウェルカムテキスト (最大255字)。" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "デフォルトフォロー" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "自動的にこのユーザに新しいユーザをフォローしてください。" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "招待" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "招待が可能" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "ユーザが新しいユーザを招待するのを許容するかどうか。" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "フォローを承認" @@ -4656,7 +5957,9 @@ msgstr "" "ユーザのつぶやきをフォローするには詳細を確認して下さい。だれかのつぶやきを" "フォローするために尋ねない場合は、\"Reject\" をクリックして下さい。" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "ライセンス" @@ -4744,11 +6047,13 @@ msgstr "アバターURL を読み取れません '%s'" msgid "Wrong image type for avatar URL ‘%s’." msgstr "アバター URL '%s' は不正な画像形式。" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "プロファイルデザイン" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4787,7 +6092,7 @@ msgstr "[グループを探して](%%action.groupsearch%%)それに加入して #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "%1$s から %2$s 上の更新をしました!" @@ -4838,7 +6143,7 @@ msgid "Plugins" msgstr "プラグイン" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "バージョン" @@ -4846,66 +6151,110 @@ msgstr "バージョン" msgid "Author(s)" msgstr "作者" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "お気に入り" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) はお気に入りとしてあなたのつぶやきを加えました" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" "どんなファイルも %d バイトより大きくてはいけません、そして、あなたが送った" "ファイルは %d バイトでした。より小さいバージョンをアップロードするようにして" "ください。" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" "これほど大きいファイルはあなたの%dバイトのユーザ割当てを超えているでしょう。" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" "これほど大きいファイルはあなたの%dバイトの毎月の割当てを超えているでしょう。" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "不正なサイズ。" #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "グループ参加に失敗しました。" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "グループの一部ではありません。" #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "グループ脱退に失敗しました。" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "ユーザ保存エラー; 不正なユーザ" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "参加" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4925,17 +6274,17 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "あなたはダイレクトメッセージを送るのが禁止されています。" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "メッセージを追加できません。" #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "新しいURIでメッセージをアップデートできませんでした。" @@ -4947,30 +6296,30 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "ハッシュタグ追加 DB エラー: %s" +msgstr "OAuth アプリケーションユーザの追加時DBエラー。" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "つぶやきを保存する際に問題が発生しました。長すぎです。" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "つぶやきを保存する際に問題が発生しました。不明なユーザです。" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "多すぎるつぶやきが速すぎます; 数分間の休みを取ってから再投稿してください。" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4979,43 +6328,57 @@ msgstr "" "い。" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止されています。" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "フォローを保存できません。" + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5027,252 +6390,276 @@ msgid "Missing profile." msgstr "ユーザはプロフィールをもっていません。" #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "あなたのデザイン設定を保存できません。" +msgstr "タグをを保存できません。" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "あなたはフォローが禁止されました。" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "すでにフォローしています!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "ユーザはあなたをブロックしました。" #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "フォローしていません!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "自己フォローを削除できません。" +msgstr "フォローを保存できません。" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "フォローを削除できません" +msgstr "フォローを保存できません。" #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "フォローを削除できません" +msgstr "フォローを保存できません。" + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s は %2$s であなたのつぶやきを聞いています。" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "single-user モードのためのシングルユーザが定義されていません。" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "グループを作成できません。" #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "グループメンバーシップをセットできません。" +msgstr "グループを作成できません。" #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "グループメンバーシップをセットできません。" #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "フォローを保存できません。" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "プロファイル設定の変更" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "アバターのアップロード" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "パスワードの変更" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "メールの扱いを変更" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "あなたのプロファイルをデザイン" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "その他のオプション" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "その他" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "名称未設定ページ" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "プライマリサイトナビゲーション" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "パーソナルプロファイルと友人のタイムライン" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "パーソナル" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "メールアドレス、アバター、パスワード、プロパティの変更" +msgstr "パスワードの変更" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "アカウント" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -#, fuzzy +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "サービスへ接続" +msgstr "接続" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "接続" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "サイト設定の変更" +msgstr "基本サイト設定" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "管理者" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "友人や同僚が %s で加わるよう誘ってください。" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "招待" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "サイトからログアウト" +msgstr "サイトのテーマ" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "ログアウト" +msgstr "ロゴ" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "アカウントを作成" +msgstr "新しいグループを作成" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "登録" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "サイトへログイン" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "ログイン" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "助けて!" +msgstr "ヘルプ" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "ヘルプ" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 -#, fuzzy +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "人々かテキストを検索" +msgstr "もっとグループを検索" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5280,71 +6667,76 @@ msgstr "検索" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "サイトつぶやき" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "ローカルビュー" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "ページつぶやき" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "セカンダリサイトナビゲーション" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "ヘルプ" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "About" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "よくある質問" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "プライバシー" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "ソース" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "連絡先" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "バッジ" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet ソフトウェアライセンス" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5354,13 +6746,16 @@ msgstr "" "イクロブログサービスです。 " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** はマイクロブログサービスです。" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5372,352 +6767,464 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html)。" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "サイト内容ライセンス" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "ページ化" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "<<後" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "前>>" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "写真" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "あなたはこのサイトへの変更を行うことができません。" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "そのパネルへの変更は許可されていません。" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() は実装されていません。" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() は実装されていません。" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "デザイン設定を削除できません。" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "基本サイト設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "サイト" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "デザイン設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "デザイン" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "ユーザ設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "ユーザ" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "アクセス設定" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "パス設定" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "セッション設定" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "サイトつぶやき" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "パス設定" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "APIリソースは読み書きアクセスが必要です、しかしあなたは読みアクセスしか持って" "いません。" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "アプリケーション編集" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "別名を作成できません。" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "アプリケーションを作成できません。" + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "メッセージを追加できません。" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "OAuth アプリケーションユーザの追加時DBエラー。" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "このアプリケーションのアイコン" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "あなたのアプリケーションを %d 字以内記述" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "あなたのアプリケーションを %d 字以内記述" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "あなたのアプリケーションを記述" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "このアプリケーションのホームページの URL" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "ソース URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "このアプリケーションに責任がある組織" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "組織のホームページのURL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "認証の後にリダイレクトするURL" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "ブラウザ" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "デスクトップ" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "アプリケーション、ブラウザ、またはデスクトップのタイプ" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "リードオンリー" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "リードライト" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "このアプリケーションのためのデフォルトアクセス: リードオンリー、またはリード" "ライト" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "中止" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 #, fuzzy msgid "read-write" msgstr "リードライト" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 #, fuzzy msgid "read-only" msgstr "リードオンリー" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "取消し" +msgstr "回復" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "添付" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "作者" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "プロバイダ" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "この添付が現れるつぶやき" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "この添付のタグ" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "パスワード変更に失敗しました" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "パスワード変更は許可されていません" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "ブロック" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "コマンド結果" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax エラー" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "コマンド完了" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "コマンド失敗" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +#, fuzzy +msgid "Notice with that id does not exist." msgstr "その ID によるつぶやきは存在していません" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "ユーザはまだつぶやいていません" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." +msgstr "利用者はまだつぶやいていません" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." msgstr "ユーザを更新できません" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "ユーザを更新できません" +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "すみません、このコマンドはまだ実装されていません。" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "それは自分自身への合図で多くは意味がありません!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, php-format -msgid "Nudge sent to %s" +#: lib/command.php:238 +#, fuzzy, php-format +msgid "Nudge sent to %s." msgstr "%s へ合図を送りました" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5728,197 +7235,237 @@ msgstr "" "フォローされている: %2$s\n" "つぶやき: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "お気に入りにされているつぶやき。" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "あなたは既にそのグループに参加しています。" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "ユーザ %1$s はグループ %2$s に参加できません。" +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "ユーザ %1$s をグループ %2$s から削除できません。" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "フルネーム: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "場所: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "ホームページ: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "About: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "メッセージが長すぎます - 最大 %1$d 字、あなたが送ったのは %2$d。" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "メッセージが長すぎます - 最大 %1$d 字、あなたが送ったのは %2$d。" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "ダイレクトメッセージを %s に送りました" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "ダイレクトメッセージ送信エラー。" -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "自分のつぶやきを繰り返すことはできません" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "すでにこのつぶやきは繰り返されています" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, php-format -msgid "Notice from %s repeated" +#: lib/command.php:553 +#, fuzzy, php-format +msgid "Notice from %s repeated." msgstr "%s からつぶやきが繰り返されています" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "つぶやき繰り返しエラー" -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "つぶやきが長すぎます - 最大 %d 字、あなたが送ったのは %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "つぶやきが長すぎます - 最大 %d 字、あなたが送ったのは %d" -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "%s へ返信を送りました" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "つぶやき保存エラー。" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "フォローするユーザの名前を指定してください" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." +msgstr "フォローする利用者の名前を指定してください" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "あなたはそのプロファイルにフォローされていません。" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "%s をフォローしました" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "フォローをやめるユーザの名前を指定してください" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "%s のフォローをやめる" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "コマンドはまだ実装されていません。" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "通知オフ。" -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "通知をオフできません。" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "通知オン。" -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "通知をオンできません。" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +#, fuzzy +msgid "Login command is disabled." msgstr "ログインコマンドが無効になっています。" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "このリンクは、かつてだけ使用可能であり、2分間だけ良いです: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "%s のフォローをやめる" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "あなたはだれにもフォローされていません。" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "あなたはこの人にフォローされています:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "誰もフォローしていません。" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "この人はあなたにフォローされている:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "あなたはどのグループのメンバーでもありません。" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "あなたはこのグループのメンバーではありません:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5960,52 +7507,79 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "コンフィギュレーションファイルがありません。 " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "私は以下の場所でコンフィギュレーションファイルを探しました: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" "あなたは、これを修理するためにインストーラを動かしたがっているかもしれませ" "ん。" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "インストーラへ。" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "インスタントメッセンジャー(IM)での更新" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "SMSでの更新" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "接続" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "承認された接続アプリケーション" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "データベースエラー" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "ファイルアップロード" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6013,41 +7587,60 @@ msgstr "" "自分のバックグラウンド画像をアップロードできます。最大ファイルサイズは 2MB で" "す。" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "オン" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "オフ" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "リセット" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "デフォルトのデザインを回復。" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "このつぶやきのお気に入りをやめる" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "このつぶやきをお気に入りにする" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "お気に入り" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "データのエクスポート" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6078,8 +7671,13 @@ msgstr "移動" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64文字の、小文字アルファベットか数字で、スペースや句読点は除く" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "グループやトピックのホームページやブログの URL" #: lib/groupeditform.php:168 @@ -6087,61 +7685,113 @@ msgid "Describe the group or topic" msgstr "グループやトピックを記述" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "グループやトピックを %d 字以内記述" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "グループやトピックを %d 字以内記述" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"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 "グループのエクストラニックネーム、カンマまたはスペース区切り、最大 %d" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"グループのエクストラニックネーム、カンマまたはスペース区切り、最大 %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "グループ" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "ブロック" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s ブロックユーザ" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "%s グループプロパティを編集" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "ロゴ" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "%s ロゴの追加や編集" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format -msgid "Add or edit %s design" -msgstr "%s デザインの追加や編集" +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "メンバー数が多いグループ" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "投稿が多いグループ" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "%s グループのつぶやきにあるタグ" @@ -6155,38 +7805,54 @@ msgstr "このページはあなたが承認したメディアタイプでは利 msgid "Unsupported image file format." msgstr "サポート外の画像形式です。" -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ファイルが大きすぎます。最大ファイルサイズは %s 。" -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "不完全なアップロード。" -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "ファイルのアップロードでシステムエラー" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "画像ではないかファイルが破損しています。" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "ファイルを紛失。" -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "不明なファイルタイプ" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" #: lib/jabber.php:387 #, php-format @@ -6198,10 +7864,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "不明な受信箱のソース %d。" -#: lib/joinform.php:114 -msgid "Join" -msgstr "参加" - #: lib/leaveform.php:114 msgid "Leave" msgstr "離れる" @@ -6214,27 +7876,29 @@ msgstr "ユーザ名とパスワードでログイン" msgid "Sign up for a new account" msgstr "新しいアカウントでサインアップ" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "メールアドレス確認" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "こんにちは、%s\n" "\n" @@ -6249,21 +7913,28 @@ msgstr "" "ありがとうございます。\n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s は %2$s であなたのつぶやきを聞いています。" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6272,10 +7943,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s は %2$s であなたのつぶやきを聞いています。\n" "\n" @@ -6288,20 +7959,24 @@ msgstr "" "----\n" "%8$s でメールアドレスか通知オプションを変えてください。\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "自己紹介: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "%s へ投稿のための新しいメールアドレス" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6311,7 +7986,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "あなたは %1$s に関する新しい投稿アドレスを持っています。\n" "\n" @@ -6322,31 +7997,36 @@ msgstr "" "忠実である、あなたのもの、\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s の状態" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS確認" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "この電話番号は確認待ちです。" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "あなたは %s に合図されています" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, fuzzy, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6373,14 +8053,18 @@ msgstr "" "敬具\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "%s からの新しいプライベートメッセージ" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, fuzzy, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6413,14 +8097,19 @@ msgstr "" "敬具\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) はお気に入りとしてあなたのつぶやきを加えました" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6459,7 +8148,7 @@ msgstr "" "%6%s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6467,13 +8156,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) はあなた宛てにつぶやきを送りました" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6513,7 +8209,7 @@ msgstr "" "に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" "メッセージを送ることができます。" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "from" @@ -6533,24 +8229,27 @@ msgstr "すみません、それはあなたの入って来るメールアドレ msgid "Sorry, no incoming email allowed." msgstr "すみません、入ってくるメールは許可されていません。" -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "サポート外のメッセージタイプ: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "データベースエラーがあなたのファイルを保存しているときにありました。 再試行し" "てください。" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "アップロードされたファイルは php.ini の upload_max_filesize ディレクティブを" "超えています。" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6558,88 +8257,135 @@ msgstr "" "アップロードされたファイルはHTMLフォームで指定された MAX_FILE_SIZE ディレク" "ティブを超えています。" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "アップロードされたファイルは部分的にアップロードされていただけです。" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "一時フォルダを失いました。" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "ディスクへのファイル書き込みに失敗しました。" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "エクステンションによってファイルアップロードを中止しました。" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "ファイルはユーザの割当てを超えています。" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "ファイルを目的ディレクトリに動かすことができませんでした。" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "ファイルのMIMEタイプを決定できません。" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "別の %s フォーマットを試してください。" +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s はこのサーバのサポートしているファイルタイプではありません。" +msgid "\"%s\" is not a supported file type on this server." +msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "直接つぶやきを送る" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "キャリア選択" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "フォローしていません!" + +#: lib/messageform.php:153 msgid "To" msgstr "To" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "利用可能な文字" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "投稿" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"ニックネームには、小文字アルファベットと数字のみ使用できます。スペースは使用" +"できません。" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "つぶやきを送る" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "最近どう %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "添付" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "ファイル添付" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "あなたの場所を共有する" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "あなたの場所を共有しない" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6648,55 +8394,59 @@ msgstr "" "度試みてください" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "北" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 #, fuzzy msgid "S" msgstr "南" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 #, fuzzy msgid "E" msgstr "東" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 #, fuzzy msgid "W" msgstr "西" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "at" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -6712,55 +8462,52 @@ msgstr "合図" msgid "Send a nudge to this user" msgstr "このユーザへ合図を送る" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "プロファイル追加エラー" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "アバター追加エラー" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "リモートプロファイル更新エラー" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "リモートプロファイル追加エラー" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "重複したつぶやき" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "サブスクリプションを追加できません" -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "パーソナル" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "返信" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "お気に入り" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "受信箱" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "あなたの入ってくるメッセージ" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "送信箱" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "あなたが送ったメッセージ" @@ -6769,7 +8516,8 @@ msgstr "あなたが送ったメッセージ" msgid "Tags in %s's notices" msgstr "%s のつぶやきのタグ" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "不明" @@ -6840,7 +8588,7 @@ msgstr "このつぶやきを繰り返しますか?" #: lib/repeatform.php:132 msgid "Yes" -msgstr "Yes" +msgstr "はい" #: lib/repeatform.php:132 msgid "Repeat this notice" @@ -6851,9 +8599,11 @@ msgstr "このつぶやきを繰り返す" msgid "Revoke the \"%s\" role from this user" msgstr "このグループからこのユーザをブロック" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "single-user モードのためのシングルユーザが定義されていません。" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API メソッドが見つかりません。" #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6863,19 +8613,25 @@ msgstr "サンドボックス" msgid "Sandbox this user" msgstr "このユーザをサンドボックス" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "サイト検索" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "キーワード" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "検索" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "ヘルプ検索" @@ -6949,6 +8705,12 @@ msgstr "タグ付けとしての人々タグクラウド" msgid "None" msgstr "なし" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "不正なサイズ。" + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6958,45 +8720,57 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "アバターの更新に失敗しました。" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "リモートプロファイル更新エラー" +msgstr "ブロックの削除エラー" #: lib/topposterssection.php:74 msgid "Top posters" msgstr "上位投稿者" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "アンブロック" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "アンサンドボックス" @@ -7021,126 +8795,173 @@ msgstr "この利用者からのフォローを解除する" msgid "Unsubscribe" msgstr "フォロー解除" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "ユーザはプロフィールをもっていません。" -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "アバターを編集する" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "利用者アクション" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "プロファイル設定編集" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "編集" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "この利用者にダイレクトメッセージを送る" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "メッセージ" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 #, fuzzy msgid "Moderate" msgstr "管理" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "ユーザプロファイル" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "管理者" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 #, fuzzy msgctxt "role" msgid "Moderator" msgstr "管理" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "数秒前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "約 1 分前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "約 %d 分前" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "約 1 時間前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "約 %d 時間前" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "約 1 日前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "約 %d 日前" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "約 1 ヵ月前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "約 %d ヵ月前" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "約 1 年前" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%sは有効な色ではありません!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s は有効な色ではありません! 3か6の16進数を使ってください。" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "メッセージが長すぎます - 最大 %1$d 字、あなたが送ったのは %2$d。" +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "メッセージが長すぎます - 最大 %1$d 字、あなたが送ったのは %2$d。" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "不正なサイズ。" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "ユーザIDの記述がありません。" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/ka/LC_MESSAGES/statusnet.po b/locale/ka/LC_MESSAGES/statusnet.po new file mode 100644 index 0000000000..adbb1df2a1 --- /dev/null +++ b/locale/ka/LC_MESSAGES/statusnet.po @@ -0,0 +1,8888 @@ +# Translation of StatusNet - Core to Georgian (ქართული) +# Expored from translatewiki.net +# +# Author: Zaal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Core\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:01+0000\n" +"Language-Team: Georgian <http://translatewiki.net/wiki/Portal:ka>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ka\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" + +#. TRANS: Page title for Access admin panel that allows configuring site access. +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 +msgid "Access" +msgstr "შესვლა" + +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 +msgid "Site access settings" +msgstr "საიტზე შესვლის პარამეტრები" + +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:151 +msgid "Registration" +msgstr "რეგისტრაცია" + +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "აეკრძალოს ანონიმურ (არაავტორიზირებულ) მომხმარებლებს საიტის ნახვა?" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:157 +msgctxt "LABEL" +msgid "Private" +msgstr "პირადი" + +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 +msgid "Make registration invitation only." +msgstr "რეგისტრაცია მხოლოდ მოწვევით." + +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:166 +msgid "Invite only" +msgstr "მხოლოდ მოწვევით" + +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 +msgid "Disable new registrations." +msgstr "ახალი რეგისტრაციების გაუქმება." + +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:175 +msgid "Closed" +msgstr "დახურული" + +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 +msgid "Save access settings" +msgstr "შეინახე შესვლის პარამეტრები" + +#. TRANS: Tooltip for button to save access settings in site admin panel. +#. TRANS: Button label to save e-mail preferences. +#. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. +#. TRANS: Button label to save SMS preferences. +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 +msgctxt "BUTTON" +msgid "Save" +msgstr "შეინახე" + +#. TRANS: Server error when page not found (404). +#. TRANS: Server error when page not found (404) +#: actions/all.php:68 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 +msgid "No such page." +msgstr "ასეთი გვერდი არ არსებობს." + +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 +msgid "No such user." +msgstr "ასეთი მომხმარებელი არ არსებობს." + +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:91 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s და მეგობრები, გვერდი %2$d" + +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 +#, php-format +msgid "%s and friends" +msgstr " %s და მეგობრები" + +#. TRANS: %s is user nickname. +#: actions/all.php:108 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "" + +#. TRANS: %s is user nickname. +#: actions/all.php:117 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "" + +#. TRANS: %s is user nickname. +#: actions/all.php:126 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "" + +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 +#, php-format +msgid "" +"This is the timeline for %s and friends but no one has posted anything yet." +msgstr "" +"ეს არის $s-ს და მეგობრების განახლებების ნაკადი, მაგრამ ჯერჯერობით არავის " +"დაუპოსტავს." + +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 +#, php-format +msgid "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." +msgstr "" +" გახდი მეტი მომხმარებლის მიმდევარი, [გაწევრიანდი ჯგუფში](%%action.groups%%) " +"ან თავად დაპოსტე რამე." + +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) from their profile or [post something " +"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format +msgid "" +"Why not [register an account](%%%%action.register%%%%) and then nudge %s or " +"post a notice to them." +msgstr "" +"[გახსენი ანგარიში](%%%%action.register%%%%) და გამოეხმაურე %s-ს ან დაუტოვე " +"შეტყობინება." + +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 +msgid "You and friends" +msgstr "შენ და მეგობრები" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 +#, php-format +msgid "Updates from %1$s and friends on %2$s!" +msgstr " %1$s და მეგობრების განახლებები %2$s-ზე!" + +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 +msgid "API method not found." +msgstr "API მეთოდი ვერ მოიძებნა." + +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 +msgid "This method requires a POST." +msgstr "ეს მეთოდი მოითხოვს POST-ს." + +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 +msgid "" +"You must specify a parameter named 'device' with a value of one of: sms, im, " +"none." +msgstr "" +"აუცილებელია პარამეტრ 'device'-ს მიუთითოთ შემდეგი მნიშვნელობებიდან ერთერთი: " +"sms, im, none." + +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 +msgid "Could not update user." +msgstr "მომხმარებლის განახლება ვერ მოხერხდა." + +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 +#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 +#: lib/profileaction.php:84 +msgid "User has no profile." +msgstr "მომხმარებელს პროფილი არ გააჩნია." + +#. TRANS: Server error displayed if a user profile could not be saved. +#: actions/apiaccountupdateprofile.php:147 +msgid "Could not save profile." +msgstr "პროფილის შენახვა ვერ მოხერხდა." + +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. +#: actions/apiaccountupdateprofilebackgroundimage.php:108 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format +msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" +"The server was unable to handle that much POST data (%s bytes) due to its " +"current configuration." +msgstr[0] "" +"სამწუხაროდ სერვერმა ვერ გაუძლო ამდენ POST მონაცემებს (%s ბაიტი) მიმდინარე " +"კონფიგურაციის გამო." + +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 +#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 +#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 +msgid "Unable to save your design settings." +msgstr "სამწუხაროდ თქვენი დიზაინის პარამეტრების შენახვა ვერ მოხერხდა." + +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 +msgid "Could not update your design." +msgstr "დიზაინის განახლება ვერ მოხერხდა." + +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s-ის ნაკადი" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s გამოწერები" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "რჩეულები" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s ჯგუფის წევრი" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 +msgid "You cannot block yourself!" +msgstr "საკუთარი თავის დაბლოკვა შეუძლებელია." + +#. TRANS: Server error displayed when blocking a user has failed. +#: actions/apiblockcreate.php:126 +msgid "Block user failed." +msgstr "მომხმარებლის დაბლოკვა ვერ მოხერხდა." + +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 +msgid "Unblock user failed." +msgstr "ვერ მოხერხდა მომხმარებელზე ბლოკის მოხსნა." + +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 +#, php-format +msgid "Direct messages from %s" +msgstr "პირდაპირი შეტყობინებები %s-სგან" + +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:93 +#, php-format +msgid "All the direct messages sent from %s" +msgstr "%s-ს მიერ გამოგზავნილი ყველა პირდაპირი შეტყობინება" + +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 +#, php-format +msgid "Direct messages to %s" +msgstr "%s-სთვის გაგზავნილი პირდაპირი შეტყობინებები" + +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 +#, php-format +msgid "All the direct messages sent to %s" +msgstr "%s-სთვის გაგზავნილი ყველა პირდაპირი შეტყობინება" + +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 +msgid "No message text!" +msgstr "შეტყობინების ტექსტი არ არის!" + +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "ეს ძალიან გრძელია. შეტყობინებაში დასაშვებია %d სიმბოლო." + +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 +msgid "Recipient user not found." +msgstr "მიმღები მომხმარებელი ვერ მოიძებნა." + +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 +msgid "Can't send direct messages to users who aren't your friend." +msgstr "ვერ გაუგზავნი პირდაპირ შეტყობინებას იმას, ვისთანაც არ მეგობრობ." + +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "ნუ გაუგზავნი შეტყობინებას საკუთარ თავს; უბრალოდ ჩუმად ჩაუჩურჩულე." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 +#: actions/apistatusesdestroy.php:121 +msgid "No status found with that ID." +msgstr "სტატუსი ასეთი ID-თ ვერ მოიძებნა." + +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. +#: actions/apifavoritecreate.php:120 +msgid "This status is already a favorite." +msgstr "ეს სტატუსი უკვე ფავორიტია." + +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 +msgid "Could not create favorite." +msgstr "ფავორიტის შექმნა ვერ მოხერხდა." + +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 +msgid "That status is not a favorite." +msgstr "ეს სტატუსი არა არის ფავორიტი." + +#. TRANS: Client error displayed when removing a favourite has failed. +#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 +msgid "Could not delete favorite." +msgstr "ფავორიტის წაშლა ვერ მოხერხდა." + +#. TRANS: Client error displayed when trying follow who's profile could not be found. +#: actions/apifriendshipscreate.php:109 +msgid "Could not follow user: profile not found." +msgstr "ამ მომხმარებლის მიმდევარი ვერ გახდებით, რადგან პროფილი ვერ მოიძებნა" + +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 +#, php-format +msgid "Could not follow user: %s is already on your list." +msgstr "თქვენ უკვე ხართ %s-ის მიმდევარი." + +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. +#: actions/apifriendshipsdestroy.php:109 +msgid "Could not unfollow user: User not found." +msgstr "მომხმარებლის ჩამოშორება ვერ მოხერხდა. მომხმარებელი ვერ მოიძებნა." + +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 +msgid "You cannot unfollow yourself." +msgstr "საკუთარი თავის ჩამოშორება შეუძლებელია." + +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." +msgstr "საჭიროა 2 სწორი სახელის ან ID-ს მოწოდება." + +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 +msgid "Could not determine source user." +msgstr "ავტორი მომხმარებლის განსაზღვრა ვერ მოხერხდა." + +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 +msgid "Could not find target user." +msgstr "სასურველი მომხმარებელი ვერ მოიძებნა." + +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 +msgid "Nickname already in use. Try another one." +msgstr "მეტსახელი უკვე გამოყენებულია. სცადე სხვა." + +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 +msgid "Not a valid nickname." +msgstr "მეტსახელი არასწორია." + +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 +msgid "Homepage is not a valid URL." +msgstr "სასტარტო გვერდი არასწორი URL-ია." + +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." +msgstr "სრული სახელი ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)." + +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "აღწერა ძალიან გრძელია (არაუმეტეს %d სიმბოლო)." + +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." +msgstr "ადგილმდებარეობა ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)." + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "" + +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 +msgid "Alias can't be the same as nickname." +msgstr "" + +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 +msgid "Group not found." +msgstr "ჯგუფი ვერ მოიძებნა." + +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 +msgid "You are already a member of that group." +msgstr "თქვენ უკვე ხართ ამ ჯგუფის წევრი." + +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +msgid "You have been blocked from that group by the admin." +msgstr "თქვენ დაბლოკილი ხართ ამ ჯგუფიდან ადმინისტრატორის მიერ." + +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "ვერ მოხერხდა მომხმარებელ %1$s-სთან ერთად ჯგუფ %2$s-ში გაერთიანება." + +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. +#: actions/apigroupleave.php:115 +msgid "You are not a member of this group." +msgstr "თვენ არ ხართ ამ ჯგუფის წევრი." + +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "მომხმარებლ %1$s-ის გარიცხვა ჯგუფიდან %2$s ვერ მოხერხდა." + +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 +#, php-format +msgid "%s's groups" +msgstr "%s-ს ჯგუფები" + +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 +#, php-format +msgid "%1$s groups %2$s is a member of." +msgstr "%1$s-ს ის ჯგუფები რომლებშიც გაერთიანებულია %2$s." + +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. +#. TRANS: Message is used as a page title. %s is a nick name. +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 +#, php-format +msgid "%s groups" +msgstr "%s ჯგუფები" + +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 +#, php-format +msgid "groups on %s" +msgstr "ჯგუფები %s-ზე" + +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 +msgid "Upload failed." +msgstr "ატვირთვა ვერ მოხერხდა." + +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 +msgid "No oauth_token parameter provided." +msgstr "oauth_token პარამეტრი არ არის მოწოდებული." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." +msgstr "არასწორი როლი." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "თქვენ არ ხართ ავტორიზირებული." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 +#: actions/groupblock.php:66 actions/grouplogo.php:312 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 +#: actions/register.php:172 actions/remotesubscribe.php:77 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 +#: actions/subscribe.php:86 actions/tagother.php:166 +#: actions/unsubscribe.php:69 actions/userauthorization.php:52 +#: lib/designsettings.php:310 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 +msgid "Invalid nickname / password!" +msgstr "არასწორი მეტსახელი / პაროლი!" + +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." +msgstr "ბაზამ დაუშვა შეცდომა OAuth აპლიკაციის მომხმარებლის ჩასმისას." + +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. +#. TRANS: Message given submitting a form with an unknown action in e-mail settings. +#. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. +#. TRANS: Message given submitting a form with an unknown action in SMS settings. +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 +#: actions/smssettings.php:277 lib/designsettings.php:321 +msgid "Unexpected form submission." +msgstr "" + +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 +msgid "An application would like to connect to your account" +msgstr "აპლიკაციას უნდა რომ დაუკავშირდეს თქვენს ანგარიშს" + +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 +msgid "Allow or deny access" +msgstr "დოუშვი ან აკრძალე შესვლა" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 +#, php-format +msgid "" +"The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " +"the ability to <strong>%3$s</strong> your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" +msgid "Account" +msgstr "ანგარიში" + +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 +#: actions/userauthorization.php:145 lib/groupeditform.php:152 +#: lib/userprofile.php:134 +msgid "Nickname" +msgstr "მეტსახელი" + +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Link description in user account settings menu. +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 +msgid "Password" +msgstr "პაროლი" + +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "გაუქმება" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" +msgid "Allow" +msgstr "დაშვება" + +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." +msgstr "დაუშვი ან აკრძალე წვდომა თქვენი ანგარიშის ინფორმაციაზე." + +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "IM დასტური გაუქმდა." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "თქვენ არ ხართ ავტორიზირებული." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "თქვენ არ ხართ ავტორიზირებული." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 +msgid "This method requires a POST or DELETE." +msgstr "ეს მეთოდი მოითხოვს POST-ს ან DELETE-ს." + +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 +msgid "You may not delete another user's status." +msgstr "სხვა მომხმარებლის სტატუსის წაშლა არ შეგიძლიათ." + +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 +msgid "No such notice." +msgstr "ასეთი შეტყობინება არ არსებობს." + +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 +msgid "Cannot repeat your own notice." +msgstr "საკუთარი შეტყობინების გამეორება არ შეიძლება." + +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 +msgid "Already repeated that notice." +msgstr "ეს შეტყობინება უკვე გამეორებულია." + +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API მეთოდი ვერ მოიძებნა." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "ფორმატი არ არის მხარდაჭერილი." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 +msgid "Status deleted." +msgstr "სტატუსი წაშლილია." + +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 +msgid "No status with that ID found." +msgstr "ასეთი ID-ს სტატუსი ვერ მოიძებნა." + +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "ამ შეტყობინების წაშლა შეუძლებელია." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "შეტყობინების წაშლა" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 +#: lib/mailhandler.php:60 +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "შეტყობინების დასაძვები ზომაა %d სიმბოლო." + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API მეთოდი ვერ მოიძებნა." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "შეყობინების დასაშვები ზომაა %d სიმბოლო მიმაგრებული URL-ის ჩათვლით." + +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 +msgid "Unsupported format." +msgstr "ფორმატი არ არის მხარდაჭერილი." + +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format +msgid "%1$s / Favorites from %2$s" +msgstr "" + +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "განახლებები არჩეული %1$s-ს მიერ %2$s-ზე!" + +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "ჯგუფის განახლება ვერ მოხერხდა." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "" + +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. +#: actions/apitimelinementions.php:131 +#, php-format +msgid "%1$s updates that reply to updates from %2$s / %3$s." +msgstr "" + +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 +#, php-format +msgid "%s public timeline" +msgstr "%s საჯარო ნაკადი" + +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 +#, php-format +msgid "%s updates from everyone!" +msgstr "%s განახლებები ყველასგან!" + +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "მეთოდი განუხორციელებელია." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 +#, php-format +msgid "Repeated to %s" +msgstr "" + +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 +#, php-format +msgid "Repeats of %s" +msgstr "" + +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 +#, php-format +msgid "Notices tagged with %s" +msgstr "შეტყობინებები მონიშნული როგორც %s" + +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, php-format +msgid "Updates tagged with %1$s on %2$s!" +msgstr "განახლებები მონიშნული როგორც %1$s %2$s-ზე!" + +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "მხოლოდ მომხმარებელს შეუძლია თავისი ფოსტის წაკითხვა." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "მოძებნე შეტყობინებებში" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "შეტყობინებები ამ ID-თ არ არსებობს." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +msgid "API method under construction." +msgstr "API მეთოდი დამუშავების პროცესშია." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "API მეთოდი ვერ მოიძებნა." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "ასეთი პროფილი არ არსებობს." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "ახალი გამოწერის ჩასმა ვერ მოხერხდა." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "მოძებნე შეტყობინებებში" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "უცნობი" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "რჩეულებში დამატება" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "ასეთი პროფილი არ არსებობს." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s ჯგუფის წევრი" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%1$s-ს ის ჯგუფები რომლებშიც გაერთიანებულია %2$s." + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "უცნობი" + +#: actions/atompubmembershipfeed.php:263 +msgid "Already a member." +msgstr "" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "ასეთი ფაილი არ არსებობს." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "ფავორიტის წაშლა ვერ მოხერხდა." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "ასეთი ჯგუფი ვერ მოიძებნა." + +#: actions/atompubshowmembership.php:90 +msgid "Not a member" +msgstr "" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API მეთოდი ვერ მოიძებნა." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "ასეთი პროფილი არ არსებობს." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "თქვენ არ გაქვთ გამოწერილი ამ პროფილის განახლებები." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "საკუთარი გამოწერის წაშლა ვერ ხერხდება." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "%s-ს გამოწერა დასრულდა წარმატებით." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "ფაილის ტიპი უცნობია" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "ასეთი მიმაგრებული დოკუმენტი ვერ მოიძებნა." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 +#: actions/grouplogo.php:86 actions/groupmembers.php:76 +#: actions/grouprss.php:91 actions/showgroup.php:116 +msgid "No nickname." +msgstr "მეტსახელი უცნობია." + +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 +msgid "No size." +msgstr "ზომა უცნობია." + +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 +msgid "Invalid size." +msgstr "ზომა არასწორია." + +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. +#. TRANS: Link description in user account settings menu. +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 +msgid "Avatar" +msgstr "ავატარი" + +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "" +"თქვენ შეგიძლიათ ატვირთოთ პერსონალური ავატარი. ფაილის დასაშვები ზომაა %s." + +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 +#: actions/grouplogo.php:181 actions/remotesubscribe.php:191 +#: actions/userauthorization.php:72 actions/userrss.php:108 +msgid "User without matching profile." +msgstr "მომხმარებელი შესაბამისი პროფილის გარეშე." + +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 +#: actions/grouplogo.php:254 +msgid "Avatar settings" +msgstr "ავატარის პარამეტრები." + +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 +msgid "Original" +msgstr "ორიგინალი" + +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 +msgid "Preview" +msgstr "წინასწარი გადახედვა" + +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" +msgid "Delete" +msgstr "წაშლა" + +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" +msgid "Upload" +msgstr "ატვირთვა" + +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" +msgid "Crop" +msgstr "მოჭრა" + +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 +msgid "No file uploaded." +msgstr "არცერთი ფაილი არ ატვირთულა" + +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 +msgid "Pick a square area of the image to be your avatar" +msgstr "აირჩიეთ სურათის კვადრატული მონაკვეთი თქვენი ავატარისთვის" + +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 +msgid "Lost our file data." +msgstr "" + +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 +msgid "Avatar updated." +msgstr "ავატარი განახლდა." + +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 +msgid "Failed updating avatar." +msgstr "ავატარის განახლება ვერ მოხერხდა." + +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 +msgid "Avatar deleted." +msgstr "ავატარი წაიშალა." + +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 +msgid "You already blocked that user." +msgstr "თქვენ უკვე დაბლოკეთ ეს მომხმარებელი." + +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 +msgid "Block user" +msgstr "მომხმარებლის დაბლოკვა" + +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 +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 "" + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 +msgctxt "BUTTON" +msgid "No" +msgstr "არა" + +#. TRANS: Submit button title for 'No' when blocking a user. +#. TRANS: Submit button title for 'No' when deleting a user. +#: actions/block.php:158 actions/deleteuser.php:156 +msgid "Do not block this user" +msgstr "არ დაბლოკო ეს მომხმარებელი" + +#. TRANS: Button label on the user block form. +#. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. +#. TRANS: Button label on the delete notice form. +#. TRANS: Button label on the delete user form. +#. TRANS: Button label on the form to block a user from a group. +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 +msgctxt "BUTTON" +msgid "Yes" +msgstr "დიახ" + +#. TRANS: Submit button title for 'Yes' when blocking a user. +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 +msgid "Block this user" +msgstr "დაბლოკე ეს მომხმარებელი" + +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 +msgid "Failed to save block information." +msgstr "დაბლოკვის შესახებ ინფორმაციის შენახვა ვერ მოხერხდა." + +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 +#: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 +#: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 +#: actions/groupmembers.php:83 actions/groupmembers.php:90 +#: actions/grouprss.php:98 actions/grouprss.php:105 +#: actions/groupunblock.php:88 actions/joingroup.php:82 +#: actions/joingroup.php:93 actions/leavegroup.php:82 +#: actions/leavegroup.php:93 actions/makeadmin.php:86 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 +msgid "No such group." +msgstr "ასეთი ჯგუფი ვერ მოიძებნა." + +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format +msgid "%s blocked profiles" +msgstr "%s დაბლოკილი პროფილი" + +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format +msgid "%1$s blocked profiles, page %2$d" +msgstr "%1$s დაბლოკილი პროფილი, გვერდი %2$d" + +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 +msgid "A list of the users blocked from joining this group." +msgstr "ამ ჯგუფში გაწევრიანებისგან დაბლოკილ მომხმარებელთა სია." + +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 +msgid "Unblock user from group" +msgstr "მომხმარებლის ბლოკირების მოხსნა ჯგუფიდან" + +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" +msgid "Unblock" +msgstr "ბლოკირების მოხსნა" + +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 +msgid "Unblock this user" +msgstr "მომხმარებლის ბლოკირების მოხსნა" + +#. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. +#: actions/bookmarklet.php:51 +#, php-format +msgid "Post to %s" +msgstr "დაუპოსტე %s-ს" + +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 +msgid "No confirmation code." +msgstr "დასადასტურებელი კოდი არ არის." + +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:80 +msgid "Confirmation code not found." +msgstr "დასადასტურებელი კოდი ვერ მოიძებნა." + +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 +msgid "That confirmation code is not for you!" +msgstr "ეს დასადასტურებელი კოდი თქვენთვის არ არის!" + +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 +#, php-format +msgid "Unrecognized address type %s." +msgstr "მისამართის ამოუცნობი ტიპი %s." + +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 +msgid "That address has already been confirmed." +msgstr "ეს მისამართი უკვე დადასტურებულია." + +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. +#. TRANS: Server error thrown on database error updating e-mail preferences. +#. TRANS: Server error thrown on database error removing a registered e-mail address. +#. TRANS: Server error thrown on database error updating IM preferences. +#. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. +#. TRANS: Server error thrown on database error updating SMS preferences. +#. TRANS: Server error thrown on database error removing a registered SMS phone number. +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 +#: actions/smssettings.php:464 +msgid "Couldn't update user." +msgstr "მომხმარებლის განახლება ვერ მოხერხდა." + +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "IM დასტურის წაშლა ვერ მოხერხდა." + +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 +msgid "Confirm address" +msgstr "მისამართის დასტური" + +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 +#, php-format +msgid "The address \"%s\" has been confirmed for your account." +msgstr "მისამართი \"%s\" დადასტურდა თქვენი ანგარიშისთვის." + +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 +msgid "Conversation" +msgstr "საუბარი" + +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 +#: lib/profileaction.php:229 lib/searchgroupnav.php:82 +msgid "Notices" +msgstr "შეტყობინებები" + +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 +msgid "You must be logged in to delete an application." +msgstr "აპლიკაციის წასაშლელად საჭიროა ავროტიზაცია." + +#. TRANS: Client error displayed trying to delete an application that does not exist. +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "აპლიკაცია ვერ მოიძებნა." + +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "თქვენ არ ხართ ამ აპლიკაციის მფლობელი." + +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 +msgid "There was a problem with your session token." +msgstr "" + +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 +msgid "Delete application" +msgstr "აპლიკაციის წაშლა" + +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" +"ნამდვილად გნებავთ ამ აპლიკაციის წაშლა? ეს მოქმედება წაშლის ყველანაირ " +"მონაცემებს ამ აპლიკაციის შესახებ, ყველა შეერთებული მომხმარებლის ჩათვლით." + +#. TRANS: Submit button title for 'No' when deleting an application. +#: actions/deleteapplication.php:161 +msgid "Do not delete this application" +msgstr "არ წაშალო ეს აპლიკაცია" + +#. TRANS: Submit button title for 'Yes' when deleting an application. +#: actions/deleteapplication.php:167 +msgid "Delete this application" +msgstr "აპლიკაციის წაშლა" + +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "გჯუფის დატოვებისათვის საჭიროა ავტორიზაცია." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "მეტსახელი ან ID უცნობია." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "თვენ არ ხართ ამ ჯგუფის წევრი." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "ჯგუფის განახლება ვერ მოხერხდა." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s-მა დატოვა ჯგუფი %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "მომხმარებლის წაშლა" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"ნამდვილად გნებავთ ამ მომხმარებლის წაშლა? ეს მოქმედება წაშლის ყველა მონაცემს " +"მომხმარებლის შესახებ სარეზერვო ასლის გარეშე." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "არ წაშალო ეს შეტყობინება" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "ამ მომხმარებლის წაშლა" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. +#. TRANS: Client error message thrown when trying to access the admin panel while not logged in. +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 +#: actions/tagother.php:33 actions/unsubscribe.php:52 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 +#: lib/settingsaction.php:72 +msgid "Not logged in." +msgstr "ავტორიზებული არ ხართ." + +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "თქვენ შეტყობინების სამუდამოდ წაშლას აპირებთ. ეს მოქმედება შეუქცევადია." + +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 +msgid "Delete notice" +msgstr "შეტყობინების წაშლა" + +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 +msgid "Are you sure you want to delete this notice?" +msgstr "ნამდვილად გსურთ ამ შეტყობინების წაშლა?" + +#. TRANS: Submit button title for 'No' when deleting a notice. +#: actions/deletenotice.php:159 +msgid "Do not delete this notice" +msgstr "არ წაშალო ეს შეტყობინება" + +#. TRANS: Submit button title for 'Yes' when deleting a notice. +#: actions/deletenotice.php:166 lib/noticelist.php:672 +msgid "Delete this notice" +msgstr "შეტყობინების წაშლა" + +#: actions/deleteuser.php:67 +msgid "You cannot delete users." +msgstr "თქვენ ვერ შეძლებთ მომხმარებლების წაშლას." + +#: actions/deleteuser.php:74 +msgid "You can only delete local users." +msgstr "თქვენ მხოლოდ ადგილობრივი მომხმარებლების წაშლა გძალუძთ." + +#: actions/deleteuser.php:110 actions/deleteuser.php:133 +msgid "Delete user" +msgstr "მომხმარებლის წაშლა" + +#: actions/deleteuser.php:136 +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 "" +"ნამდვილად გნებავთ ამ მომხმარებლის წაშლა? ეს მოქმედება წაშლის ყველა მონაცემს " +"მომხმარებლის შესახებ სარეზერვო ასლის გარეშე." + +#. TRANS: Submit button title for 'Yes' when deleting a user. +#: actions/deleteuser.php:163 lib/deleteuserform.php:77 +msgid "Delete this user" +msgstr "ამ მომხმარებლის წაშლა" + +#. TRANS: Message used as title for design settings for the site. +#. TRANS: Link description in user account settings menu. +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 +msgid "Design" +msgstr "ამ მომხმარებლის წაშლა" + +#: actions/designadminpanel.php:74 +msgid "Design settings for this StatusNet site" +msgstr "" + +#: actions/designadminpanel.php:335 +msgid "Invalid logo URL." +msgstr "ლოგოს არასწორი URL-ი" + +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "ლოგოს არასწორი URL-ი" + +#: actions/designadminpanel.php:344 +#, php-format +msgid "Theme not available: %s." +msgstr "იერსახე არ არის ხელმისაწვდომი %s." + +#: actions/designadminpanel.php:448 +msgid "Change logo" +msgstr "შეცვალე ლოგო" + +#: actions/designadminpanel.php:453 +msgid "Site logo" +msgstr "საიტის ლოგო" + +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "საიტის ლოგო" + +#: actions/designadminpanel.php:469 +msgid "Change theme" +msgstr "შეცვალე იერსახე" + +#: actions/designadminpanel.php:486 +msgid "Site theme" +msgstr "საიტის იერსახე" + +#: actions/designadminpanel.php:487 +msgid "Theme for the site." +msgstr "იერსახე ამ საიტისთვის" + +#: actions/designadminpanel.php:493 +msgid "Custom theme" +msgstr "საკუთარი იერსახე" + +#: actions/designadminpanel.php:497 +msgid "You can upload a custom StatusNet theme as a .ZIP archive." +msgstr "" +"თქვენ შეგიძლიათ ატვირთოთ საკუთარი StatusNet–იერსახე .ZIP არქივის სახით." + +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 +msgid "Change background image" +msgstr "შეცვალე ფონური სურათი" + +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 +msgid "Background" +msgstr "ფონი" + +#: actions/designadminpanel.php:522 +#, php-format +msgid "" +"You can upload a background image for the site. The maximum file size is %1" +"$s." +msgstr "" +"თქვენ შეგიძლიათ ატვუირთოთ ფონური სურათი ამ საიტისთვის. ფაილის დასაშვები " +"ზომაა %1$s." + +#. TRANS: Used as radio button label to add a background image. +#: actions/designadminpanel.php:553 +msgid "On" +msgstr "ჩართვა" + +#. TRANS: Used as radio button label to not add a background image. +#: actions/designadminpanel.php:570 +msgid "Off" +msgstr "გამორთვა" + +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 +msgid "Turn background image on or off." +msgstr "ჩართე ან გამორთე ფონური სურათის ფუნქცია." + +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +msgid "Tile background image" +msgstr "გაამრავლე ფონური სურათი" + +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 +msgid "Change colours" +msgstr "შეცვალე ფერები" + +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 +msgid "Content" +msgstr "შიგთავსი" + +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 +msgid "Sidebar" +msgstr "გვერდითი პანელი" + +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 +msgid "Text" +msgstr "ტექსტი" + +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 +msgid "Links" +msgstr "ბმულები" + +#: actions/designadminpanel.php:677 +msgid "Advanced" +msgstr "მეტი პარამეტრები" + +#: actions/designadminpanel.php:681 +msgid "Custom CSS" +msgstr "საკუთარი CSS" + +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 +msgid "Use defaults" +msgstr "გამოიყენე პირვანდელი მდგომარეობა" + +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 +msgid "Restore default designs" +msgstr "დააბრუნე პირვანდელი დიზაინი" + +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 +msgid "Reset back to default" +msgstr "პირვანდელის პარამეტრების დაბრუნება" + +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 +msgid "Save" +msgstr "შენახვა" + +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 +msgid "Save design" +msgstr "შეინახე დიზაინი" + +#: actions/disfavor.php:81 +msgid "This notice is not a favorite!" +msgstr "ეს შეტყობინება არ არის რჩეული!" + +#: actions/disfavor.php:94 +msgid "Add to favorites" +msgstr "რჩეულებში დამატება" + +#: actions/doc.php:158 +#, php-format +msgid "No such document \"%s\"" +msgstr "ასეთი დოკუმენტი არ არის \"%s\"" + +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "ჩაასწორე აპლიკაცია" + +#. TRANS: Client error displayed trying to edit an application while not logged in. +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "აპლიკაციის ჩასასწორებლად საჭიროა ავროტიზაცია." + +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 +msgid "No such application." +msgstr "ასეთი აპლიკაცია არ არის." + +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 +msgid "Use this form to edit your application." +msgstr "აპლიკაციაში ცვლილებების შესატანად გამოიყენეთ ეს ფორმა." + +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 +msgid "Name is required." +msgstr "სახელი სავალდებულოა." + +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." +msgstr "სახელი ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)." + +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 +msgid "Name already in use. Try another one." +msgstr "სახელი უკვე გამოყენებულია. სცადე სხვა." + +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 +msgid "Description is required." +msgstr "აღწერა სავალდებულოა." + +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 +msgid "Source URL is too long." +msgstr "წყაროს URL ძალიან გრძელია." + +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 +msgid "Source URL is not valid." +msgstr "წყაროს URL არასწორია." + +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 +msgid "Organization is required." +msgstr "ორგანიზაცია სავალდებულოა." + +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." +msgstr "ორგანიზაცია ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)." + +#: actions/editapplication.php:226 actions/newapplication.php:202 +msgid "Organization homepage is required." +msgstr "ორგანიზაციის ვებ. გვერდი სავალდებულოა." + +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 +msgid "Callback is too long." +msgstr "" + +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 +msgid "Callback URL is not valid." +msgstr "" + +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 +msgid "Could not update application." +msgstr "აპლიკაციის განახლება ვერ მოხერხდა." + +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 +#, php-format +msgid "Edit %s group" +msgstr "%s ჯგუფის რედაქტირება" + +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. +#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 +msgid "You must be logged in to create a group." +msgstr "გჯუფის შესაქმნელად საჭიროა ავტორიზაცია." + +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 +msgid "You must be an admin to edit the group." +msgstr "ჯგუფის რედაქტირებისათვის საჭიროა ადმინის უფლებები." + +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 +msgid "Use this form to edit the group." +msgstr "ჯგუფის რედაქტირებისათვის გამოიყენეთ ეს ფორმა." + +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 +#, php-format +msgid "Invalid alias: \"%s\"" +msgstr "" + +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 +msgid "Could not update group." +msgstr "ჯგუფის განახლება ვერ მოხერხდა." + +#. TRANS: Server error displayed when group aliases could not be added. +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:279 classes/User_group.php:529 +msgid "Could not create aliases." +msgstr "" + +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 +msgid "Options saved." +msgstr "პარამეტრები შენახულია." + +#. TRANS: Title for e-mail settings. +#: actions/emailsettings.php:61 +msgid "Email settings" +msgstr "ელ. ფოსტის პარამეტრები" + +#. TRANS: E-mail settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/emailsettings.php:76 +#, php-format +msgid "Manage how you get email from %%site.name%%." +msgstr "%%site.name%%–სგან ელ. ფოსტის მიღების მართვა." + +#. TRANS: Form legend for e-mail settings form. +#. TRANS: Field label for e-mail address input in e-mail settings form. +#: actions/emailsettings.php:107 actions/emailsettings.php:133 +msgid "Email address" +msgstr "ელ. ფოსტის მისამართი" + +#. TRANS: Form note in e-mail settings form. +#: actions/emailsettings.php:113 +msgid "Current confirmed email address." +msgstr "მიმდინარე დადასტურებული ელ. ფოსტის მისამართი." + +#. TRANS: Button label to remove a confirmed e-mail address. +#. TRANS: Button label for removing a set sender e-mail address to post notices from. +#. TRANS: Button label to remove a confirmed IM address. +#. TRANS: Button label to remove a confirmed SMS address. +#. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. +#: actions/emailsettings.php:116 actions/emailsettings.php:183 +#: actions/imsettings.php:116 actions/smssettings.php:124 +#: actions/smssettings.php:180 +msgctxt "BUTTON" +msgid "Remove" +msgstr "წაშლა" + +#: actions/emailsettings.php:123 +msgid "" +"Awaiting confirmation on this address. Check your inbox (and spam box!) for " +"a message with further instructions." +msgstr "" +"ამ მისამართის დასტური მოლოდინშია. შეამოწმეთ ფოსტა (და სპამის ყუთიც!) " +"შემდგომი ინსტრუქციებისათვის." + +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 +msgid "Email address, like \"UserName@example.org\"" +msgstr "ელ. ფოსტის მისამართი, როგორც \"UserName@example.org\"" + +#. TRANS: Button label for adding an e-mail address in e-mail settings form. +#. TRANS: Button label for adding an IM address in IM settings form. +#. TRANS: Button label for adding a SMS phone number in SMS settings form. +#: actions/emailsettings.php:144 actions/imsettings.php:151 +#: actions/smssettings.php:162 +msgctxt "BUTTON" +msgid "Add" +msgstr "დამატება" + +#. TRANS: Form legend for incoming e-mail settings form. +#. TRANS: Form legend for incoming SMS settings form. +#: actions/emailsettings.php:152 actions/smssettings.php:171 +msgid "Incoming email" +msgstr "შემომავალი ელ. ფოსტა" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "მინდა დავპოსტო შეტყობინებები ელ. ფოსტით." + +#. TRANS: Form instructions for incoming e-mail form in e-mail settings. +#. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. +#: actions/emailsettings.php:180 actions/smssettings.php:178 +msgid "Send email to this address to post new notices." +msgstr "გააგზავნე ელ. ფოსტა ამ მისამართზე ახალი შეტყობინებების დასაპოსტად." + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "" + +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + +#. TRANS: Button label for adding an e-mail address to send notices from. +#. TRANS: Button label for adding an SMS e-mail address to send notices from. +#: actions/emailsettings.php:199 actions/smssettings.php:189 +msgctxt "BUTTON" +msgid "New" +msgstr "ახალი" + +#. TRANS: Form legend for e-mail preferences form. +#: actions/emailsettings.php:208 +msgid "Email preferences" +msgstr "ელ. ფოსტის პარამეტრები" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:216 +msgid "Send me notices of new subscriptions through email." +msgstr "" +"გამომიგზავნე შეტყობინებები ახალი გამოწერების შესახებ ელ. ფოსტის საშუალებით." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:222 +msgid "Send me email when someone adds my notice as a favorite." +msgstr "" +"გამომიგზავნე ელ. წერილი როდესაც ვინმე ჩემს შეტყობინებას რჩეულებში დაიმატებს." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:229 +msgid "Send me email when someone sends me a private message." +msgstr "გამომიგზავნე ელ. წერილი როდესაც ვინმე პირად შეტყობინებას მომწერს." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:235 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "გამომიგზავნე წერილი როდესაც ვინმე გამომიგზავნის \"@-პასუხს\"." + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:241 +msgid "Allow friends to nudge me and send me an email." +msgstr "" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:247 +msgid "Publish a MicroID for my email address." +msgstr "გამოაქვეყნე MicroID ჩემი ელ. ფოსტის მისამართისთვის." + +#. TRANS: Confirmation message for successful e-mail preferences save. +#: actions/emailsettings.php:368 +msgid "Email preferences saved." +msgstr "ელ. ფოსტის პარამეტრები შენახულია." + +#. TRANS: Message given saving e-mail address without having provided one. +#: actions/emailsettings.php:388 +msgid "No email address." +msgstr " ელ. ფოსტის მისამართი მითითებული არ არის." + +#. TRANS: Message given saving e-mail address that cannot be normalised. +#: actions/emailsettings.php:396 +msgid "Cannot normalize that email address" +msgstr "" + +#. TRANS: Message given saving e-mail address that not valid. +#: actions/emailsettings.php:401 actions/register.php:212 +#: actions/siteadminpanel.php:144 +msgid "Not a valid email address." +msgstr "არასწორი ელ. ფოსტის მისამართი." + +#. TRANS: Message given saving e-mail address that is already set. +#: actions/emailsettings.php:405 +msgid "That is already your email address." +msgstr "ეს უკვე არის თქვენი ელ. ფოსტის მისამართი." + +#. TRANS: Message given saving e-mail address that is already set for another user. +#: actions/emailsettings.php:409 +msgid "That email address already belongs to another user." +msgstr "ეს ელ. ფოსტის მისამართი დაკავებულია." + +#. TRANS: Server error thrown on database error adding e-mail confirmation code. +#. TRANS: Server error thrown on database error adding IM confirmation code. +#. TRANS: Server error thrown on database error adding SMS confirmation code. +#: actions/emailsettings.php:426 actions/imsettings.php:351 +#: actions/smssettings.php:373 +msgid "Couldn't insert confirmation code." +msgstr "დასტურის კოდის ჩასმა ვერ მოხერხდა." + +#. TRANS: Message given saving valid e-mail address that is to be confirmed. +#: actions/emailsettings.php:433 +msgid "" +"A confirmation code was sent to the email address you added. Check your " +"inbox (and spam box!) for the code and instructions on how to use it." +msgstr "" +"დასადასტურებელი კოდი გამოგზავნილია თქვენს მიერ მითითებულ ელ. ფოსტის " +"მისამართზე. შეამოწმეთ საფოსტო ყუთი (და სპამის ყუთიც!), რომ მიიღოთ " +"დასადასტურებელი კოდი და ინსტრუქცია გამოყენებისთვის." + +#. TRANS: Message given canceling e-mail address confirmation that is not pending. +#. TRANS: Message given canceling IM address confirmation that is not pending. +#. TRANS: Message given canceling SMS phone number confirmation that is not pending. +#: actions/emailsettings.php:454 actions/imsettings.php:386 +#: actions/smssettings.php:408 +msgid "No pending confirmation to cancel." +msgstr "გასაუქმებელიარაფერია. არ არის მომლოდინე დასტური." + +#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. +#: actions/emailsettings.php:459 +msgid "That is the wrong email address." +msgstr "ეს არასწორი ელ. ფოსტის მისამართია." + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "ელ. ფოსტის დადასტურების წაშლა ვერ მოხერხდა." + +#. TRANS: Message given after successfully canceling e-mail address confirmation. +#: actions/emailsettings.php:473 +msgid "Email confirmation cancelled." +msgstr "ელ. ფოსტის დადასტურება გაუქმებულია." + +#. TRANS: Message given trying to remove an e-mail address that is not +#. TRANS: registered for the active user. +#: actions/emailsettings.php:493 +msgid "That is not your email address." +msgstr "ეს არ არის თქვენი ელ. ფოსტის მისამართი." + +#. TRANS: Message given after successfully removing a registered e-mail address. +#: actions/emailsettings.php:514 +msgid "The email address was removed." +msgstr "ელ. ფოსტის მისამართი მოშორებულია." + +#: actions/emailsettings.php:528 actions/smssettings.php:568 +msgid "No incoming email address." +msgstr "შემომავალი ელ. ფოსტის მისამართი არ არის." + +#. TRANS: Server error thrown on database error removing incoming e-mail address. +#. TRANS: Server error thrown on database error adding incoming e-mail address. +#: actions/emailsettings.php:540 actions/emailsettings.php:565 +#: actions/smssettings.php:578 actions/smssettings.php:602 +msgid "Couldn't update user record." +msgstr "მომხმარებლის ჩანაწერის განახლება ვერ მოხერხდა." + +#. TRANS: Message given after successfully removing an incoming e-mail address. +#: actions/emailsettings.php:544 actions/smssettings.php:581 +msgid "Incoming email address removed." +msgstr "შემომავალი ელ. ფოსტის მისამართი მოშორებულია." + +#. TRANS: Message given after successfully adding an incoming e-mail address. +#: actions/emailsettings.php:569 actions/smssettings.php:605 +msgid "New incoming email address added." +msgstr "დამატებულია ახალი შემომავალი ელ. ფოსტა." + +#: actions/favor.php:79 +msgid "This notice is already a favorite!" +msgstr "ეს შეტყობინება უკვე რჩეულია!" + +#: actions/favor.php:92 lib/disfavorform.php:144 +msgid "Disfavor favorite" +msgstr "რჩეულის გაუქმება" + +#: actions/favorited.php:65 lib/popularnoticesection.php:62 +#: lib/publicgroupnav.php:93 +msgid "Popular notices" +msgstr "პოპულარული შეტყობინებები" + +#: actions/favorited.php:67 +#, php-format +msgid "Popular notices, page %d" +msgstr "პოპულარული შეტყობინებები, გვერდი %d" + +#: actions/favorited.php:79 +msgid "The most popular notices on the site right now." +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 "" +"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 +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:118 +#, php-format +msgid "%s's favorite notices" +msgstr "%s-ს რჩეული შეტყობინებები" + +#: actions/favoritesrss.php:115 +#, php-format +msgid "Updates favored by %1$s on %2$s!" +msgstr "განახლებები არჩეული %1$s-ს მიერ %2$s-ზე!" + +#: actions/featured.php:69 lib/featureduserssection.php:87 +#: lib/publicgroupnav.php:89 +msgid "Featured users" +msgstr "წარმოდგენილი მომხმარებლები" + +#: actions/featured.php:71 +#, php-format +msgid "Featured users, page %d" +msgstr "წარმოდგენილი მომხმარებლები, გვერდი $d" + +#: actions/featured.php:99 +#, php-format +msgid "A selection of some great users on %s" +msgstr "ზოგიერთ ჩინებულ მომხმარებელთა განყოფილება %s-ზე" + +#: actions/file.php:34 +msgid "No notice ID." +msgstr "შეტყობინების ID არ არის." + +#: actions/file.php:38 +msgid "No notice." +msgstr "შეტყობინება არ არის." + +#: actions/file.php:42 +msgid "No attachments." +msgstr "მიმაგრებული დოკუმენტი არ არის." + +#: actions/file.php:51 +msgid "No uploaded attachments." +msgstr "ატვირთული მიმაგრებული დოკუმენტი არ არის." + +#: actions/finishremotesubscribe.php:69 +msgid "Not expecting this response!" +msgstr "ეს უკუქმედება არ არის მოსალოდნელი." + +#: actions/finishremotesubscribe.php:80 +msgid "User being listened to does not exist." +msgstr "მისადევნებელი მომხმარებელი არ არსებობს." + +#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 +msgid "You can use the local subscription!" +msgstr "შეგიძლიათ გამოიყენოთ ადგილობრივი გამოწერა!" + +#: actions/finishremotesubscribe.php:99 +msgid "That user has blocked you from subscribing." +msgstr "ამ მომხმარებელმა აგიკრძალათ მიდევნება." + +#: actions/finishremotesubscribe.php:110 +msgid "You are not authorized." +msgstr "თქვენ არ ხართ ავტორიზირებული." + +#: actions/finishremotesubscribe.php:113 +msgid "Could not convert request token to access token." +msgstr "" + +#: actions/finishremotesubscribe.php:118 +msgid "Remote service uses unknown version of OMB protocol." +msgstr "დაშორებული სერვისი OMB პროტოკოლის უცნობ ვერსიას იყენებს." + +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 +msgid "Error updating remote profile." +msgstr "შეცდომა დაშორებული პროფილის განახლებისას." + +#: actions/getfile.php:79 +msgid "No such file." +msgstr "ასეთი ფაილი არ არსებობს." + +#: actions/getfile.php:83 +msgid "Cannot read file." +msgstr "ფაილის წაკითხვა ვერ ხერხდება." + +#: actions/grantrole.php:62 actions/revokerole.php:62 +msgid "Invalid role." +msgstr "არასწორი როლი." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "ეს როლი დარეზერვებულია და გამოყენება შეუძლებელია." + +#: actions/grantrole.php:75 +msgid "You cannot grant user roles on this site." +msgstr "თქვენ არ შეგიძლიათ როლების მინიჭება ამ საიტზე." + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "მომხმარებელს უკვე აქვს ეს როლი." + +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. +#: actions/groupblock.php:71 actions/groupunblock.php:71 +#: actions/makeadmin.php:71 actions/subedit.php:49 +#: lib/profileformaction.php:79 +msgid "No profile specified." +msgstr "პროფილი მითითებული არ არის." + +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 +#: actions/unsubscribe.php:84 lib/profileformaction.php:86 +msgid "No profile with that ID." +msgstr "ასეთი ID-ს მქონე პროფილი ვერ მოიძებნა." + +#: actions/groupblock.php:81 actions/groupunblock.php:82 +#: actions/makeadmin.php:81 +msgid "No group specified." +msgstr "ჯგუფი მითითებული არ არის." + +#: actions/groupblock.php:91 +msgid "Only an admin can block group members." +msgstr "მხოლოდ ადმინს შეუძლია ჯგუფიდან მომხმარებლების გარიცხვა." + +#: actions/groupblock.php:95 +msgid "User is already blocked from group." +msgstr "მომხმარებელი უკვე გარიცხულია ჯგუფიდან." + +#: actions/groupblock.php:100 +msgid "User is not a member of group." +msgstr "მომხმარებელი არ არის ჯგუფის წევრი." + +#: actions/groupblock.php:134 actions/groupmembers.php:364 +msgid "Block user from group" +msgstr "მომხმარებლის გარიცხვა ჯგუფიდან." + +#: actions/groupblock.php:160 +#, php-format +msgid "" +"Are you sure you want to block user \"%1$s\" from the group \"%2$s\"? They " +"will be removed from the group, unable to post, and unable to subscribe to " +"the group in the future." +msgstr "" +"ნამდვილად გნებავთ გარიცხოთ \"%1$s\" ჯგუფიდან \"%2$s\"? ის გამოირიცხება " +"ჯგუფიდან, ვეღარ შეძლებს დაპოსტვას და ვეღარ გაწევრიანდება ამ ჯგუფში " +"მომავალშიც." + +#. TRANS: Submit button title for 'No' when blocking a user from a group. +#: actions/groupblock.php:182 +msgid "Do not block this user from this group" +msgstr "არ გარიცხო ემ მომხმარებელი ამ ჯგუფიდან" + +#. TRANS: Submit button title for 'Yes' when blocking a user from a group. +#: actions/groupblock.php:189 +msgid "Block this user from this group" +msgstr "გარიცხე ეს მომხმარებელი ამ ჯგუფიდან" + +#: actions/groupblock.php:206 +msgid "Database error blocking user from group." +msgstr "მომხმარებლის ჯგუფიდან გარიცხვისას მოხდა შეცდომა ბაზაში." + +#: actions/groupbyid.php:74 actions/userbyid.php:70 +msgid "No ID." +msgstr "ID უცნობია." + +#: actions/groupdesignsettings.php:68 +msgid "You must be logged in to edit a group." +msgstr "ჯგუფის რედაქტირებისათვის საჭიროა ავტორიზაცია." + +#: actions/groupdesignsettings.php:144 +msgid "Group design" +msgstr "ჯგუფის დიზაინი" + +#: actions/groupdesignsettings.php:155 +msgid "" +"Customize the way your group looks with a background image and a colour " +"palette of your choice." +msgstr "" +"აირჩიეთ, როგორ გნებავთ გამოიყურებოდეს თქვენი ჯგუფი ფონური სურათისა და ფერთა " +"პალიტრის შეცვლით." + +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 +#: lib/designsettings.php:405 lib/designsettings.php:427 +msgid "Couldn't update your design." +msgstr "დიზაინის განახლება ვერ მოხერხდა." + +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +msgid "Design preferences saved." +msgstr "დიზაინის პარამეტრები შენახულია." + +#: actions/grouplogo.php:142 actions/grouplogo.php:195 +msgid "Group logo" +msgstr "ჯგუფის ლოგო" + +#: actions/grouplogo.php:153 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" +"თქვენ შეგიძლიათ ატვირთოთ ლოგოს თქვენი ჯგუფისათვის. ფაილის დასაშვები ზომაა %s." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "ატვირთვა" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "მოჭრა" + +#: actions/grouplogo.php:365 +msgid "Pick a square area of the image to be the logo." +msgstr "აირჩიეთ სურათის კვადრატული მონაკვეთი ლოგოსათვის." + +#: actions/grouplogo.php:399 +msgid "Logo updated." +msgstr "ლოგო განახლდა." + +#: actions/grouplogo.php:401 +msgid "Failed updating logo." +msgstr "ლოგოს განახლება ვერ მოხერხდა." + +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 +#, php-format +msgid "%s group members" +msgstr "%s ჯგუფის წევრი" + +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format +msgid "%1$s group members, page %2$d" +msgstr "%1$s ჯგუფის წევრი, გვერდი %2$d" + +#: actions/groupmembers.php:122 +msgid "A list of the users in this group." +msgstr "ამ ჯგუფის წევრების სია." + +#: actions/groupmembers.php:186 +msgid "Admin" +msgstr "ადმინი" + +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" +msgid "Block" +msgstr "" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 +msgid "Make user an admin of the group" +msgstr "მიანიჭე მომხმარებელს ჯგუფის ადმინობა" + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" +msgid "Make Admin" +msgstr "" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" +msgid "Make this user an admin" +msgstr "" + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#: actions/grouprss.php:142 +#, php-format +msgid "Updates from members of %1$s on %2$s!" +msgstr "%1$s-ის წევრების განახლებები %2$s-ზე!" + +#: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 +#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 +msgid "Groups" +msgstr "ჯგუფები" + +#: actions/groups.php:64 +#, php-format +msgid "Groups, page %d" +msgstr "ჯგუფები, გვერდი $d" + +#: actions/groups.php:90 +#, php-format +msgid "" +"%%%%site.name%%%% groups let you find and talk with people of similar " +"interests. After you join a group you can send messages to all other members " +"using the syntax \"!groupname\". Don't see a group you like? Try [searching " +"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" +"%%%%)" +msgstr "" +"%%%%site.name%%%%-ის ჯგუფები გაძლევთ საშუალებას მოძებნოთ და ესაუბროთ მსგავსი " +"ინტერესების მქონე ხალხს. ჯგუფში გაერთიანების შემდეგ, შეძლებთ მიწეროთ " +"შეტყობინებები ჯგუფის სხვა წევრებს ასეთი სინტაქსით - \"!ჯგუფის სახელი\". ვერ " +"ხედავთ მოსაწონ ჯგუფს? სცადეთ [ძიება](%%%%action.groupsearch%%%%) ან " +"[შექმენით საკუთარი!](%%%%action.newgroup%%%%)" + +#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 +msgid "Create a new group" +msgstr "შექმენი ახალი ჯგუფი" + +#: actions/groupsearch.php:52 +#, 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 სიმბოლოზე მეტი უნდა " +"იყოს." + +#: actions/groupsearch.php:58 +msgid "Group search" +msgstr "ჯგუფის ძიება" + +#: actions/groupsearch.php:79 actions/noticesearch.php:117 +#: actions/peoplesearch.php:83 +msgid "No results." +msgstr "უშედეგოდ." + +#: actions/groupsearch.php:82 +#, php-format +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 +msgid "" +"Why not [register an account](%%action.register%%) and [create the group](%%" +"action.newgroup%%) yourself!" +msgstr "" +"[დაარეგისტრირეთ ანგარიში](%%action.register%%) და [შექმენით ჯგუფი](%%action." +"newgroup%%) თვითონ!" + +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 +msgid "Only an admin can unblock group members." +msgstr "მხოლოდ ადმინს შეუძლია ჯგუფის წევრისთვის ბლოკის მოხსნა." + +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 +msgid "User is not blocked from group." +msgstr "მომხმარებელი არ არის დაბლოკილი ჯგუფიდან." + +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 +msgid "Error removing the block." +msgstr "შეცდომა ბლოკის მოხსნისას." + +#. TRANS: Title for instance messaging settings. +#: actions/imsettings.php:60 +msgid "IM settings" +msgstr "IM პარამეტრები" + +#. TRANS: Instant messaging settings page instructions. +#. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. +#. TRANS: the order and formatting of link text and link should remain unchanged. +#: actions/imsettings.php:74 +#, php-format +msgid "" +"You can send and receive notices through Jabber/GTalk [instant messages](%%" +"doc.im%%). Configure your address and settings below." +msgstr "" +"თქვენ შეგიძლიათ მიიღოთ და გააგზავნოთ შეტყობინებები Jabber/GTalk [ჩეთით](%%" +"doc.im%%). მომართეთ თქვენი მისამართი და პარამეტრები ქვევით." + +#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. +#: actions/imsettings.php:94 +msgid "IM is not available." +msgstr "IM არ არის ხელმისაწვდომი." + +#. TRANS: Form legend for IM settings form. +#. TRANS: Field label for IM address input in IM settings form. +#: actions/imsettings.php:106 actions/imsettings.php:136 +msgid "IM address" +msgstr "IM მისამართი" + +#: actions/imsettings.php:113 +msgid "Current confirmed Jabber/GTalk address." +msgstr "მიმდინარე დადასტურებული Jabber/GTalk მისამართი." + +#. TRANS: Form note in IM settings form. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:124 +#, php-format +msgid "" +"Awaiting confirmation on this address. Check your Jabber/GTalk account for a " +"message with further instructions. (Did you add %s to your buddy list?)" +msgstr "" +"ამ მისამართის დადასტურება მოლოდინშია. შეამოწმეთ თქვენი Jabber/GTalk ანგარიში " +"შეტყობინებისათვის შემდგომი ინსტრუქციებით. (დაიმატეთ %s მეგობრების სიაში?)" + +#. TRANS: IM address input field instructions in IM settings form. +#. TRANS: %s is the IM address set for the site. +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 +#, php-format +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 "" +"Jabber ან GTalk მისამართი, როგორც \"UserName@example.org\". პირველ რიგში " +"დარწმუნდით, რომ დაიმატეთ %s მეგობრების სიაში თქვენს IM კლიენტში ან GTalk-ში." + +#. TRANS: Form legend for IM preferences form. +#: actions/imsettings.php:158 +msgid "IM preferences" +msgstr "IM პარამეტრები" + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:163 +msgid "Send me notices through Jabber/GTalk." +msgstr "გამომიგზავნე შეტყობინებები Jabber/GTalk-ის მეშვეობით." + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:169 +msgid "Post a notice when my Jabber/GTalk status changes." +msgstr "დაპოსტე შეტყობინება, როდესაც ჩემი Jabber/GTalk სტატუსი შეიცვლება." + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:175 +msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." +msgstr "" +"გამომიგზავნე პასუხები Jabber/GTalk-ით ხალხისგან, რომლთა მიმდევარი არ ვარ." + +#. TRANS: Checkbox label in IM preferences form. +#: actions/imsettings.php:182 +msgid "Publish a MicroID for my Jabber/GTalk address." +msgstr "გამოაქვეყნე MicroID ჩემი Jabber/GTalk მისამართისთვის." + +#. TRANS: Confirmation message for successful IM preferences save. +#: actions/imsettings.php:290 actions/othersettings.php:190 +msgid "Preferences saved." +msgstr "პარამეტრები შენახულია." + +#. TRANS: Message given saving IM address without having provided one. +#: actions/imsettings.php:312 +msgid "No Jabber ID." +msgstr "Jabber ID უცნობია." + +#. TRANS: Message given saving IM address that cannot be normalised. +#: actions/imsettings.php:320 +msgid "Cannot normalize that Jabber ID" +msgstr "Jabber ID-ს ნორმალიზაცია ვერ ხერხდება" + +#. TRANS: Message given saving IM address that not valid. +#: actions/imsettings.php:325 +msgid "Not a valid Jabber ID" +msgstr "არასწორი Jabber ID" + +#. TRANS: Message given saving IM address that is already set. +#: actions/imsettings.php:329 +msgid "That is already your Jabber ID." +msgstr "ეს უკვე არის თქვენი Jabber ID." + +#. TRANS: Message given saving IM address that is already set for another user. +#: actions/imsettings.php:333 +msgid "Jabber ID already belongs to another user." +msgstr "Jabber ID უკვე ეკუთვნის სხვა მომხმარებელს." + +#. TRANS: Message given saving valid IM address that is to be confirmed. +#. TRANS: %s is the IM address set for the site. +#: actions/imsettings.php:361 +#, php-format +msgid "" +"A confirmation code was sent to the IM address you added. You must approve %" +"s for sending messages to you." +msgstr "" +"დასტურის კოდი გამოგზავნილია თქვენს IM მისამართზე. თქვენ უნდა მისცეთ უფლება %" +"s-ს გამოგიგზავნოთ შეტყობინებები." + +#. TRANS: Message given canceling IM address confirmation for the wrong IM address. +#: actions/imsettings.php:391 +msgid "That is the wrong IM address." +msgstr "ეს არასწორი IM მისამართია." + +#. TRANS: Server error thrown on database error canceling IM address confirmation. +#: actions/imsettings.php:400 +msgid "Couldn't delete IM confirmation." +msgstr "IM დასტურის წაშლა ვერ მოხერხდა." + +#. TRANS: Message given after successfully canceling IM address confirmation. +#: actions/imsettings.php:405 +msgid "IM confirmation cancelled." +msgstr "IM დასტური გაუქმდა." + +#. TRANS: Message given trying to remove an IM address that is not +#. TRANS: registered for the active user. +#: actions/imsettings.php:427 +msgid "That is not your Jabber ID." +msgstr "ეს არ არის თქვენი Jabber ID" + +#. TRANS: Message given after successfully removing a registered IM address. +#: actions/imsettings.php:450 +msgid "The IM address was removed." +msgstr "IM მისამართი მოშორებულია." + +#: actions/inbox.php:59 +#, php-format +msgid "Inbox for %1$s - page %2$d" +msgstr "%1$s-ის შემომავალი ფოსტა - გვერდი %2$d" + +#: actions/inbox.php:62 +#, php-format +msgid "Inbox for %s" +msgstr "%s-ის შემომავალი ფოსტა" + +#: actions/inbox.php:115 +msgid "This is your inbox, which lists your incoming private messages." +msgstr "" +"ეს არის თქვენი საფოსტო ყუთი, რომელშიც ჩამოთვლილია შემომავალი პირადი წერილები." + +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 +msgid "Invites have been disabled." +msgstr "მოწვევები გათიშულია." + +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 +#, php-format +msgid "You must be logged in to invite other users to use %s." +msgstr "%s-ში სხვა მომხმარებლების დასაპატიჯებლად საწიროა ავტორიზაცია." + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." +msgstr "არასწორი ელექტრონული ფოსტის მისამართი: %s" + +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" +msgstr "მოწვევა/მოწვევები გაგზავნილია" + +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 +msgid "Invite new users" +msgstr "დაპატიჯე ახალი მომხმარებლები" + +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "თქვენ უკვე გამოწერილი გაქვთ ამ მომხმარებლების განახლებები:" + +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" +"These people are already users and you were automatically subscribed to them:" +msgstr[0] "" +"ეს ხალხი უკვე არიან მომხმარებლები და თქვენ ავტომატურად გახდით მათი " +"განახლებების გამომწერები:" + +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "მოწვევა გაიგზავნა შემდეგ ხალხთან:" + +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 +msgid "" +"You will be notified when your invitees accept the invitation and register " +"on the site. Thanks for growing the community!" +msgstr "" +"თქვენ მოგივათ შეტყობინება როდესაც მოწვევის მიმღებები მიიღებენ თქვენს " +"დაპატიჟებას და დარეგისტრირდებიან საიტზე. გმადლობთ რომ ეხმარებით წევრების " +"ზრდას!" + +#. TRANS: Form instructions. +#: actions/invite.php:190 +msgid "" +"Use this form to invite your friends and colleagues to use this service." +msgstr "" +"გამოიყენეთ ეს ფორმა რომ დაპატიჟოთ მეგობრები და კოლეგები ამ სერვისის " +"გამოსაყენებლად." + +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 +msgid "Email addresses" +msgstr "ელ. ფოსტის მისამართები" + +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 +msgid "Addresses of friends to invite (one per line)" +msgstr "დასაპატიჟებელი მოგობრების მისამართები (თითო ხაზზე თითო)" + +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 +msgid "Personal message" +msgstr "პირადი შეტყობინება" + +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 +msgid "Optionally add a personal message to the invitation." +msgstr "დაუმატეთ პირადი შეტყობინება მოწვევას (არასავალდებულო)." + +#. TRANS: Send button for inviting friends +#: actions/invite.php:231 +msgctxt "BUTTON" +msgid "Send" +msgstr "გაგზავნა" + +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 +#, php-format +msgid "%1$s has invited you to join them on %2$s" +msgstr "%1$s-მა დაგპატიჟათ რომ შეუერთდეთ მას %2$s-ზე" + +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 +#, php-format +msgid "" +"%1$s has invited you to join them on %2$s (%3$s).\n" +"\n" +"%2$s is a micro-blogging service that lets you keep up-to-date with people " +"you know and people who interest you.\n" +"\n" +"You can also share news about yourself, your thoughts, or your life online " +"with people who know about you. It's also great for meeting new people who " +"share your interests.\n" +"\n" +"%1$s said:\n" +"\n" +"%4$s\n" +"\n" +"You can see %1$s's profile page on %2$s here:\n" +"\n" +"%5$s\n" +"\n" +"If you'd like to try the service, click on the link below to accept the " +"invitation.\n" +"\n" +"%6$s\n" +"\n" +"If not, you can ignore this message. Thanks for your patience and your " +"time.\n" +"\n" +"Sincerely, %2$s\n" +msgstr "" +"%1$s-მა დაგპატიჟათ რომ გაერთიენდეთ %2$s-ზე (%3$s).\n" +"\n" +"%2$s არის მიკრო-ბლოგინგის სერვისი, რომელიც შესაძლებლობას გაძლევთ საქმის " +"კურსში იყოთ თქვენს ნაცნობებთან და საინტერესო ხალხთან.\n" +"\n" +"თქვენ შეგიძლიათ გაუზიაროთ სიახლეები თქვენს შესახებ, თქვენი აზრები, ან თქვენი " +"ინტერნეტ-ცხოვრება ხალხს ვინც გიცნობთ. %2$s საუკეთესოა ახალი ადამიანების " +"გასაცნობათ, ვინც იზიარებენ თქვენს ინტერესებს.\n" +"\n" +"%1$s გწერთ:\n" +"\n" +"%4$s\n" +"\n" +"თქვენ შეგიძლიათ ნახოთ %1$s-ის პროფილის გვერდი %2$s-ზე აქ:\n" +"\n" +"%5$s\n" +"\n" +"თუ გსურთ ამ სერვისით სარგებლობა, მაშინ დააწკაპუნეთ ქვევით მოცემულ ლინკზე " +"მოწვევის მისაღებად.\n" +"\n" +"%6$s\n" +"\n" +"თუ არა, მაშინ შეგიძლიათ არ მიაქციოთ ყურადღება ამ წერილს. გმადლობთ " +"მოთმინებისთვის და დათმობილი დროსთვის.\n" +"\n" +"პატივისცემით, %2$s\n" + +#: actions/joingroup.php:60 +msgid "You must be logged in to join a group." +msgstr "გჯუფში გაწევრიანებისათვის საჭიროა ავტორიზაცია." + +#: actions/joingroup.php:141 +#, php-format +msgid "%1$s joined group %2$s" +msgstr "%1$s გაწევრიანდა ჯგუფში %2$s" + +#: actions/leavegroup.php:60 +msgid "You must be logged in to leave a group." +msgstr "გჯუფის დატოვებისათვის საჭიროა ავტორიზაცია." + +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 +msgid "You are not a member of that group." +msgstr "თვენ არ ხართ ამ ჯგუფის წევრი." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "%1$s-მა დატოვა ჯგუფი %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "არასწორი მისასალმებელი ტექსტი. სიმბოლოების მაქს. რაოდენობაა 255." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + +#: actions/login.php:102 actions/otp.php:62 actions/register.php:144 +msgid "Already logged in." +msgstr "უკვე ავტორიზირებული ხართ." + +#: actions/login.php:148 +msgid "Incorrect username or password." +msgstr "არასწორი მომხმარებლის სახელი ან პაროლი." + +#: actions/login.php:154 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "" + +#: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 +msgid "Login" +msgstr "შესვლა" + +#: actions/login.php:249 +msgid "Login to site" +msgstr "საიტზე შესვლა" + +#: actions/login.php:258 actions/register.php:491 +msgid "Remember me" +msgstr "დამიმახსოვრე" + +#: actions/login.php:259 actions/register.php:493 +msgid "Automatically login in the future; not for shared computers!" +msgstr "მომავალში ავტომატურად შემიყვანე; არა საზიარო კომპიუტერებისათვის!" + +#: actions/login.php:269 +msgid "Lost or forgotten password?" +msgstr "დაკარგეთ ან დაგავიწყდათ პაროლი?" + +#: actions/login.php:288 +msgid "" +"For security reasons, please re-enter your user name and password before " +"changing your settings." +msgstr "" +"უსაფრთხოების მიზნებისათვის, გთხოვთ შეიყვანოთ თქვენი მომხ. სახელი და პაროლი " +"პარამეტრების შეცვლამდე." + +#: actions/login.php:292 +msgid "Login with your username and password." +msgstr "შედი საკუთარი მომხ. სახელით და პაროლით." + +#: actions/login.php:295 +#, php-format +msgid "" +"Don't have a username yet? [Register](%%action.register%%) a new account." +msgstr "" +"ჯერ კიდევ არ გაქვთ მომხ. სახელი? [დაარეგისტრირე](%%action.register%%) ახალი " +"ანგარიში." + +#: actions/makeadmin.php:92 +msgid "Only an admin can make another user an admin." +msgstr "მხოლოდ ადმინს შეძლია სხვა მომხმარებელი ადმინად აქციოს." + +#: actions/makeadmin.php:96 +#, php-format +msgid "%1$s is already an admin for group \"%2$s\"." +msgstr "%1$s უკვე არის \"%2$s\" ჯგუფის ადმინი." + +#: actions/makeadmin.php:133 +#, php-format +msgid "Can't get membership record for %1$s in group %2$s." +msgstr "%1$s–ის წევრობის ჩანაწერის გამოთხოვნა %2$s ჯგუფიდან ვერ მოხერხდა." + +#: actions/makeadmin.php:146 +#, php-format +msgid "Can't make %1$s an admin for group %2$s." +msgstr "%1$s–ის %2$s ჯგუფის ადმინად ქცევა ვერ ხერხდება." + +#: actions/microsummary.php:69 +msgid "No current status." +msgstr "მიმდინარე სტატუსი არ არის." + +#. TRANS: This is the title of the form for adding a new application. +#: actions/newapplication.php:52 +#, fuzzy +msgid "New application" +msgstr "ახალი აპლიკაცია" + +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 +msgid "You must be logged in to register an application." +msgstr "აპლიკაციის დასარეგისტრირებლად საჭიროა ავროტიზაცია." + +#: actions/newapplication.php:147 +msgid "Use this form to register a new application." +msgstr "აპლიკაციაში დასარეგისტრირებლად გამოიყენეთ ეს ფორმა." + +#: actions/newapplication.php:184 +msgid "Source URL is required." +msgstr "წყაროს URL სავალდებულოა." + +#: actions/newapplication.php:266 actions/newapplication.php:275 +msgid "Could not create application." +msgstr "აპლიკაციის შექმნა ვერ მოხერხდა." + +#. TRANS: Title for form to create a group. +#: actions/newgroup.php:53 +msgid "New group" +msgstr "ახალი ჯგუფი" + +#. TRANS: Form instructions for group create form. +#: actions/newgroup.php:110 +msgid "Use this form to create a new group." +msgstr "ახალი ჯგუფის შესაქმნელად გამოიყენეთ ეს ფორმა." + +#: actions/newmessage.php:71 actions/newmessage.php:234 +msgid "New message" +msgstr "ახალი შეტყობინება" + +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 +msgid "You can't send a message to this user." +msgstr "ამ მომხმარებელს შეტყობინებას ვერ გაუგზავნი." + +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 +msgid "No content!" +msgstr "შიგთავსი არ არის!" + +#: actions/newmessage.php:161 +msgid "No recipient specified." +msgstr "მიმღები მითითებული არ არის." + +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 +msgid "" +"Don't send a message to yourself; just say it to yourself quietly instead." +msgstr "ნუ გაუგზავნი შეტყობინებას საკუთარ თავს; უბრალოდ ჩუმად ჩაუჩურჩულე." + +#: actions/newmessage.php:184 +msgid "Message sent" +msgstr "შეტყობინება გაგზავნილია" + +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 +#, php-format +msgid "Direct message to %s sent." +msgstr "პირდაპირი შეტყობინება გაეგზავნა %s–ს." + +#: actions/newmessage.php:213 actions/newnotice.php:264 +msgid "Ajax Error" +msgstr "Ajax შეცდომა" + +#: actions/newnotice.php:69 +msgid "New notice" +msgstr "ახალი შეტყობინება" + +#: actions/newnotice.php:230 +msgid "Notice posted" +msgstr "შეტყობინება დაიპოსტა" + +#: actions/noticesearch.php:68 +#, php-format +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 სიმბოლოზე მეტი უნდა იყოს." + +#: actions/noticesearch.php:78 +msgid "Text search" +msgstr "ტექსტური ძიება" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%1$s\" on %2$s" +msgstr "\"%1$s\"–ს ძიების შედეგები %2$s–ზე" + +#: actions/noticesearch.php:121 +#, php-format +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 +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 +#, php-format +msgid "Updates with \"%s\"" +msgstr "განახლებები \"%s\"–თ" + +#: actions/noticesearchrss.php:98 +#, php-format +msgid "Updates matching search term \"%1$s\" on %2$s!" +msgstr "განახლებები, რომლებიც შეიცავენ საძიებო სიტყვას \"%1$s\" %2$s–ზე!" + +#: actions/nudge.php:85 +msgid "" +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." +msgstr "" + +#: actions/nudge.php:94 +msgid "Nudge sent" +msgstr "" + +#: actions/nudge.php:97 +msgid "Nudge sent!" +msgstr "" + +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 +msgid "You must be logged in to list your applications." +msgstr "თქვენი აპლიკაციების სიის სანახავად საჭიროა ავროტიზაცია." + +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 +msgid "OAuth applications" +msgstr "OAuth აპლიკაციები" + +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 +msgid "Applications you have registered" +msgstr "თქვენს მიერ დარეგისტრირებული აპლიკაციები" + +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 +#, php-format +msgid "You have not registered any applications yet." +msgstr "თქვენ ჯერჯერობით არცერთი აპლიკაცია არ დაგირეგისტრირებიათ." + +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 +msgid "Connected applications" +msgstr "მიერთებული აპლიკაციები" + +#. TRANS: Instructions for OAuth connection settings. +#: actions/oauthconnectionssettings.php:83 +msgid "The following connections exist for your account." +msgstr "" + +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 +msgid "You are not a user of that application." +msgstr "თქვენ არ ხართ ამ აპლიკაციის მომხმარებელი." + +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "%s აპლიკაციის მიერ ზვდომის გაუქმება ვერ ხერხდება." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 +msgid "You have not authorized any applications to use your account." +msgstr "" +"თქვენ არცერთი აპლიკაციისთვის არ მიგიციათ თქვენი ანგარიშის გამოყენების უფლება." + +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" + +#: actions/oembed.php:80 actions/shownotice.php:100 +msgid "Notice has no profile." +msgstr "შეტყობინებას პრფილი არ გააჩნია." + +#: actions/oembed.php:83 actions/shownotice.php:172 +#, php-format +msgid "%1$s's status on %2$s" +msgstr "%1$s–ის სტატუსი %2$s–ზე" + +#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') +#: actions/oembed.php:168 +#, php-format +msgid "Content type %s not supported." +msgstr "შიგთავსის ტიპი %s არ არის მხარდაჭერილი." + +#. TRANS: Error message displaying attachments. %s is the site's base URL. +#: actions/oembed.php:172 +#, php-format +msgid "Only %s URLs over plain HTTP please." +msgstr "გთხოვთ გამოიყენოთ მხოლოდ %s URL–ები წმინდა HTTP მეთოდით." + +#. TRANS: Client error on an API request with an unsupported data format. +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 +msgid "Not a supported data format." +msgstr "მონაცემთა ფორმატი მხარდაჭერილი არ არის." + +#: actions/opensearch.php:64 +msgid "People Search" +msgstr "პიროვნებების ძიება" + +#: actions/opensearch.php:67 +msgid "Notice Search" +msgstr "შეტყობინებების ძიება" + +#: actions/othersettings.php:59 +msgid "Other settings" +msgstr "სხვა პარამეტრები" + +#. TRANS: Instructions for tab "Other" in user profile settings. +#: actions/othersettings.php:71 +msgid "Manage various other options." +msgstr "სხა მრავალნაირი პარამეტრების მართვა." + +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 +msgid " (free service)" +msgstr " (უფასო სერვისი)" + +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 +msgid "Shorten URLs with" +msgstr "შეამოკლე URL–ები შემდეგით" + +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 +msgid "Automatic shortening service to use." +msgstr "გამოსაყენებელი შემოკლების ავტომატური სერვისი." + +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 +msgid "View profile designs" +msgstr "პროფილის დიზაინების ნახვა" + +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 +msgid "Show or hide profile designs." +msgstr "აჩვენე ან დამალე პროფილის დიზაინები." + +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "URL–ს შემოკლების სერვისი ძალიან გრძელია (მაქს. 50 სიმბოლო)." + +#: actions/otp.php:69 +msgid "No user ID specified." +msgstr "მომხმარებლის ID მითითებული არ არის." + +#: actions/otp.php:83 +msgid "No login token specified." +msgstr "" + +#: actions/otp.php:90 +msgid "No login token requested." +msgstr "" + +#: actions/otp.php:95 +msgid "Invalid login token specified." +msgstr "" + +#: actions/otp.php:104 +msgid "Login token expired." +msgstr "" + +#: actions/outbox.php:58 +#, php-format +msgid "Outbox for %1$s - page %2$d" +msgstr "%1$s-ის გამავალი ფოსტა - გვერდი %2$d" + +#: actions/outbox.php:61 +#, php-format +msgid "Outbox for %s" +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" +msgstr "შეცვალეთ პაროლი" + +#: actions/passwordsettings.php:69 +msgid "Change your password." +msgstr "შეცვალეთ თქვენი პაროლი." + +#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +msgid "Password change" +msgstr "პაროლის შეცვლა" + +#: actions/passwordsettings.php:104 +msgid "Old password" +msgstr "ძველი პაროლი" + +#: actions/passwordsettings.php:108 actions/recoverpassword.php:235 +msgid "New password" +msgstr "ახალი პაროლი" + +#: actions/passwordsettings.php:109 +msgid "6 or more characters" +msgstr "6 ან მეტი სიმბოლო" + +#: actions/passwordsettings.php:112 actions/recoverpassword.php:239 +#: actions/register.php:441 +msgid "Confirm" +msgstr "ვადასტურებ" + +#: actions/passwordsettings.php:113 actions/recoverpassword.php:240 +msgid "Same as password above" +msgstr "იგივე რაც ზედა პაროლი" + +#: actions/passwordsettings.php:117 +msgid "Change" +msgstr "შეცვლა" + +#: actions/passwordsettings.php:154 actions/register.php:238 +msgid "Password must be 6 or more characters." +msgstr "პაროლი უნდა შედგებოდეს 6 ან მეტი სიმბოლოსგან." + +#: actions/passwordsettings.php:157 actions/register.php:241 +msgid "Passwords don't match." +msgstr "პაროლები არ ემთხვევა." + +#: actions/passwordsettings.php:165 +msgid "Incorrect old password" +msgstr "არასწორი ძველი პაროლი" + +#: actions/passwordsettings.php:181 +msgid "Error saving user; invalid." +msgstr "შეცდომა მომხმარებლის შენახვისას; არასწორი." + +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 +msgid "Can't save new password." +msgstr "ვერ ვინახავ ახალ პაროლს." + +#: actions/passwordsettings.php:192 actions/recoverpassword.php:211 +msgid "Password saved." +msgstr "პაროლი შენახულია." + +#. TRANS: Title for Paths admin panel. +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 +msgid "Paths" +msgstr "გზები" + +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format +msgid "Theme directory not readable: %s." +msgstr "იერსახის დირექტორია არ არის წაკითხვადი: %s." + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. +#: actions/pathsadminpanel.php:163 +#, php-format +msgid "Avatar directory not writable: %s." +msgstr "ავატარის დირექტორია არ არის ჩაწერადი: %s." + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, php-format +msgid "Background directory not writable: %s." +msgstr "ფონის დირექტორია არ არის ჩაწერადი: %s." + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, php-format +msgid "Locales directory not readable: %s." +msgstr "" + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 +msgid "Invalid SSL server. The maximum length is 255 characters." +msgstr "არასწორი SSL სერვერი. მაქსიმალური სიგრძე არის 255 სიმბოლო." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 +msgid "Site" +msgstr "საიტი" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 +msgid "Server" +msgstr "სერვერი" + +#: actions/pathsadminpanel.php:242 +msgid "Site's server hostname." +msgstr "საიტის სერვერის ჰოსტის სახელი." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 +msgid "Path" +msgstr "გზა" + +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." +msgstr "საიტის გზა" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "იერსახის დირექტორია" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "" + +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 +msgid "Fancy URLs" +msgstr "ლამაზი URL–ები" + +#: actions/pathsadminpanel.php:265 +msgid "Use fancy (more readable and memorable) URLs?" +msgstr "გამოვიყენო ლამაზი (მეტად კითხვადი და დასამახსოვრებელი) URL–ები?" + +#: actions/pathsadminpanel.php:272 +msgid "Theme" +msgstr "იერსახე" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "იერსახე ამ საიტისთვის" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "SSL სერვერი" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "საიტის გზა" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "იერსახის დირექტორია" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "ავატარები" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "ავატარების სერვერი" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "იერსახე ამ საიტისთვის" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "ავატარების გზა" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "ავატარის განახლება ვერ მოხერხდა." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "ავატარების დირექტორია" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "ფონები" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "იერსახე ამ საიტისთვის" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "მიმაგრებები" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "იერსახე ამ საიტისთვის" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "მიმაგრებული დოკუმენტი არ არის." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "იერსახე ამ საიტისთვის" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "არასდროს" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "ზოგჯერ" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "მუდამ" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "გამოიყენე SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "როდის გამოვიყენო SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." +msgstr "სერვერი რომელზეც მიემართოს SSL მოთხოვნები" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 +msgid "Save paths" +msgstr "გზების დამახსოვრება" + +#: actions/peoplesearch.php:52 +#, php-format +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 სიმბოლოზე მეტი უნდა " +"იყოს." + +#: actions/peoplesearch.php:58 +msgid "People search" +msgstr "პიროვნებების ძიება" + +#: actions/peopletag.php:68 +#, php-format +msgid "Not a valid people tag: %s." +msgstr "პიროვნებების არასწორი სანიშნე: %s." + +#: actions/peopletag.php:142 +#, php-format +msgid "Users self-tagged with %1$s - page %2$d" +msgstr "" +"მომხმარებლები რომლებმაც საკუთარი თავი მონიშნეს როგორც %1$s – გვერდი %2$d" + +#: actions/postnotice.php:95 +msgid "Invalid notice content." +msgstr "შეტყობინების არასწორი შიგთავსი." + +#: actions/postnotice.php:101 +#, php-format +msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "შეტყობინების ლიცენზია ‘%1$s’ შეუთავსებელია საიტის ლიცენზიასთან ‘%2$s’." + +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 +msgid "Profile settings" +msgstr "პროფილის პარამეტრები" + +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 +msgid "" +"You can update your personal profile info here so people know more about you." +msgstr "" +"აქ შეგიძლიათ განაახლოთ ინფორმაცია თქვენ პროფილზე, რომ ხალხმა მეტი გაიგოს " +"თქვენს შესახებ." + +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 +msgid "Profile information" +msgstr "ინფორმაცია პროფილზე" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1–64 პატარა ასოები ან ციფრები. პუნქტუაციები ან სივრცეები დაუშვებელია" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 +msgid "Full name" +msgstr "სრული სახელი" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Form input field label. +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 +msgid "Homepage" +msgstr "ვებ. გვერსი" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." +msgstr "თქვენი ვებ. გვერდის URL, ბლოგი, ან პროფილი სხვა საიტზე" + +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "აღწერეთ საკუთარი თავი და თქვენი ინტერესები %d სიმბოლოთი" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 +msgid "Describe yourself and your interests" +msgstr "აღწერეთ საკუთარი თავი და თქვენი ინტერესები" + +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 +msgid "Bio" +msgstr "ბიოგრაფია" + +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 +msgid "Location" +msgstr "მდებარეობა" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 +msgid "Where you are, like \"City, State (or Region), Country\"" +msgstr "რომელ ქალაქში, რეგიონში, ქვეყანაში ხართ?" + +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 +msgid "Share my current location when posting notices" +msgstr "გააზიარე ჩემი მდებარეობა შეტყობინებების დაპოსტვისას" + +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 +#: actions/tagother.php:209 lib/subscriptionlist.php:106 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 +msgid "Tags" +msgstr "სანიშნეები" + +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 +msgid "" +"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "" +"საკუთარი სანიშნეები (ასოები, ციფრები, -, ., და _). გამოყავით მძიმით ან " +"სივრცით" + +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 +msgid "Language" +msgstr "ენა" + +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 +msgid "Preferred language" +msgstr "სასურველი ენა" + +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 +msgid "Timezone" +msgstr "დროის სარტყელი" + +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 +msgid "What timezone are you normally in?" +msgstr "რომელ დროის სარტყელში ხართ ხომლე ჩვეულებრივ?" + +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 +msgid "" +"Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "" +"ავტომატურად გამოიწერე ის ვინც მე გამომიწერს (საუკეთესოა არა ადამიანებისთვის)" + +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "ბიოგრაფია ძალიან გრძელია (არაუმეტეს %d სიმბოლო)." + +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 +msgid "Timezone not selected." +msgstr "დროის სარტყელი არ არის არჩეული." + +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "ენა ძალიან გრძელია (არაუმეტეს 50 სიმბოლო)." + +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format +msgid "Invalid tag: \"%s\"" +msgstr "არასწორი სანიშნე: \"%s\"" + +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +msgid "Couldn't update user for autosubscribe." +msgstr "მომხმარებლის განახლება ავტოგამოწერისათვის ვერ მოხერხდა." + +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 +msgid "Couldn't save location prefs." +msgstr "მდებარეობის პარამეტრების შენახვა ვერ მოხერხდა." + +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 +msgid "Couldn't save profile." +msgstr "პროფილის შენახვა ვერ მოხერხდა." + +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 +msgid "Couldn't save tags." +msgstr "სანიშნეების შენახვა ვერ მოხერხდა." + +#. TRANS: Confirmation shown when user profile settings are saved. +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 +msgid "Settings saved." +msgstr "პარამეტრები შენახულია." + +#: actions/public.php:83 +#, php-format +msgid "Beyond the page limit (%s)." +msgstr "გვერსიდ საზღვრის მიღმა (%s)." + +#: actions/public.php:92 +msgid "Could not retrieve public stream." +msgstr "საჯარო ნაკადის გამოთხოვნა ვერ ხერხდება." + +#: actions/public.php:130 +#, php-format +msgid "Public timeline, page %d" +msgstr "საჯარო განახლებების ნაკადი, გვერდი %d" + +#: actions/public.php:132 lib/publicgroupnav.php:79 +msgid "Public timeline" +msgstr "საჯარო განახლებების ნაკადი" + +#: actions/public.php:160 +msgid "Public Stream Feed (RSS 1.0)" +msgstr "" + +#: actions/public.php:164 +msgid "Public Stream Feed (RSS 2.0)" +msgstr "" + +#: actions/public.php:168 +msgid "Public Stream Feed (Atom)" +msgstr "" + +#: actions/public.php:188 +#, php-format +msgid "" +"This is the public timeline for %%site.name%% but no one has posted anything " +"yet." +msgstr "" +"ეს არის საჯარო განახლებების ნაკადი, მაგრამ ჯერჯერობით არავის დაუპოსტავს." + +#: actions/public.php:191 +msgid "Be the first to post!" +msgstr "დაპოსტე პირველმა!" + +#: actions/public.php:195 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post!" +msgstr "[დარეგისტრირდი](%%action.register%%) და დაპოსტე პირველმა!" + +#: actions/public.php:242 +#, 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. [Join now](%%action.register%%) to share notices about yourself with " +"friends, family, and colleagues! ([Read more](%%doc.help%%))" +msgstr "" +"ეს არის %%site.name%%, [მიკრო–ბლოგინგის](http://en.wikipedia.org/wiki/Micro-" +"blogging) სერვისი, დაფუძნებული უფასო [StatusNet](http://status.net/) კოდზე. " +"[შემოგვიერთდი ახლავე](%%action.register%%) და გაუზიარე შეტყობინებები " +"მეგობრებს, ოჯახის წევრებს და კოლეგებს! ([გაიგე მეტი](%%doc.help%%))" + +#: actions/public.php:247 +#, 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 "" +"რს არის %%site.name%%, [მიკრო–ბლოგინგის](http://en.wikipedia.org/wiki/Micro-" +"blogging) სერვისი, დაფუძნებული უფასო [StatusNet](http://status.net/) კოდზე." + +#. TRANS: Title for public tag cloud. +#: actions/publictagcloud.php:57 +msgid "Public tag cloud" +msgstr "საჯარო სანიშნეების ღრუბელი." + +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" +msgstr "ეს არის ყველაზე პოპულარული სანიშნეები %s–ზე " + +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 +#, php-format +msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." +msgstr "ჯერჯერობით არავის დაუპოსტავს შეტყობინება [hashtag](%%doc.tags%%)–ით." + +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 +msgid "Be the first to post one!" +msgstr "დაპოსტე პირველმა!" + +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 +#, php-format +msgid "" +"Why not [register an account](%%action.register%%) and be the first to post " +"one!" +msgstr "[დარეგისტრირდი](%%action.register%%) და დაპოსტე პირველმა!" + +#: actions/publictagcloud.php:146 +msgid "Tag cloud" +msgstr "სანიშნეების ღრუბელი" + +#: actions/recoverpassword.php:36 +msgid "You are already logged in!" +msgstr "თქვენ უკვე ავტორიზირებული ხართ!" + +#: actions/recoverpassword.php:62 +msgid "No such recovery code." +msgstr "ასეთი აღსადგენი კოდი არ არსებობს." + +#: actions/recoverpassword.php:66 +msgid "Not a recovery code." +msgstr "ეს არ არის აღსადგენი კოდი." + +#: actions/recoverpassword.php:73 +msgid "Recovery code for unknown user." +msgstr "აღსადგენი კოდი უცნობი მომხმარებლისთვის." + +#: actions/recoverpassword.php:86 +msgid "Error with confirmation code." +msgstr "სადასტურე კოდს შეცდომა აქვს." + +#: actions/recoverpassword.php:97 +msgid "This confirmation code is too old. Please start again." +msgstr "სადასტურე კოდი ძალიან გრძელია. გთხოვთ ხელახლა დაიწყოთ." + +#: actions/recoverpassword.php:111 +msgid "Could not update user with confirmed email address." +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 "თქვენ იდენტიფიცირებული ხართ, შეიყვანეთ ახალი პაროლი ქვევით. " + +#: actions/recoverpassword.php:188 +msgid "Password recovery" +msgstr "პაროლის აღდგენა" + +#: actions/recoverpassword.php:191 +msgid "Nickname or email address" +msgstr "მეტსახელი ან ელ. ფოსტის მისამართი" + +#: actions/recoverpassword.php:193 +msgid "Your nickname on this server, or your registered email address." +msgstr "თქვენი მეტსახელი ამ სერვერზე, ან რეგისტრირებული ელ. ფოსტის მისამართი." + +#: actions/recoverpassword.php:199 actions/recoverpassword.php:200 +msgid "Recover" +msgstr "აღდგენა" + +#: actions/recoverpassword.php:208 +msgid "Reset password" +msgstr "პაროლის გადაყენება" + +#: actions/recoverpassword.php:209 +msgid "Recover password" +msgstr "პაროლის აღდგენა" + +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 +msgid "Password recovery requested" +msgstr "პაროლის აღდგენა მოთხოვნილია" + +#: actions/recoverpassword.php:213 +msgid "Unknown action" +msgstr "უცნობი მოქმედება" + +#: actions/recoverpassword.php:236 +msgid "6 or more characters, and don't forget it!" +msgstr "6 ან მეტი სიმბოლო, და არ დაგავიწყდეთ!" + +#: actions/recoverpassword.php:243 +msgid "Reset" +msgstr "გადაყენება" + +#: actions/recoverpassword.php:252 +msgid "Enter a nickname or email address." +msgstr "შეიყვანეთ მეტსახელი ან ელ. ფოსტის მისამართი." + +#: actions/recoverpassword.php:282 +msgid "No user with that email address or username." +msgstr "ასეთი ელ. ფოსტის მისამართით ან სახელით არ არსებობს." + +#: actions/recoverpassword.php:299 +msgid "No registered email address for that user." +msgstr "ამ მომხმარებლისთვის ვერ მოიძებნა რეგისტრირებული ელ. ფოსტის მისამართი." + +#: actions/recoverpassword.php:313 +msgid "Error saving address confirmation." +msgstr "მისამართის დადასტურების სენახვისას მოხდა შეცდომა." + +#: actions/recoverpassword.php:338 +msgid "" +"Instructions for recovering your password have been sent to the email " +"address registered to your account." +msgstr "" +"პაროლის აღსადგენი ინსტრუქციები გამოიგზავნა თქვენს ანგარიშთან ასოცირებულ ელ. " +"ფოსტაზე." + +#: actions/recoverpassword.php:357 +msgid "Unexpected password reset." +msgstr "პაროლის მოულოდნელი გადაყენება." + +#: actions/recoverpassword.php:365 +#, fuzzy +msgid "Password must be 6 characters or more." +msgstr "პაროლი უნდა შედგებოდეს 6 ან მეტი სიმბოლოსგან." + +#: actions/recoverpassword.php:369 +msgid "Password and confirmation do not match." +msgstr "პაროლი და დასტური არ ემთხვევა." + +#: actions/recoverpassword.php:388 actions/register.php:256 +msgid "Error setting user." +msgstr "მომხმარებელის დაყენებისას მოხდა შეცდომა." + +#: actions/recoverpassword.php:395 +msgid "New password successfully saved. You are now logged in." +msgstr "ახალი პაროლი წარმატებით იქნა შენახული. თქვენ ახლა ავტორიზირებული ხართ." + +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 +msgid "Sorry, only invited people can register." +msgstr "ბოდიშს გიხდით, დარეგისტრირება მხოლოდ მოწვევითაა შესაძლებელი." + +#: actions/register.php:99 +msgid "Sorry, invalid invitation code." +msgstr "ბოდიშს გიხდით, მოსაწვევი კოდი არასწორია." + +#: actions/register.php:119 +msgid "Registration successful" +msgstr "რეგისტრაცია წარმატებით დასრულდა" + +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 +msgid "Register" +msgstr "რეგისტრაცია" + +#: actions/register.php:142 +msgid "Registration not allowed." +msgstr "რეგისტრაცია არ არის დაშვებული." + +#: actions/register.php:209 +msgid "You can't register if you don't agree to the license." +msgstr "ვერ დარეგისტრირდებით თუ არ დაეთანხმებით ლიცენზიის პირობებს." + +#: actions/register.php:218 +msgid "Email address already exists." +msgstr "ელ. ფოსტის მისამართი უკვე არსებობს." + +#: actions/register.php:251 actions/register.php:273 +msgid "Invalid username or password." +msgstr "არასწორი მომხმარებლის სახელი ან პაროლი." + +#: actions/register.php:351 +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:433 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." +msgstr "" +"1–64 პატარა ასოები ან ციფრები. პუნქტუაციები ან სივრცეები დაუშვებელია. " +"სავალდებულო." + +#: actions/register.php:438 +msgid "6 or more characters. Required." +msgstr "6 ან მეტი სიმბოლო. სავალდებულო." + +#: actions/register.php:442 +msgid "Same as password above. Required." +msgstr "იგივე, რაც პაროლი ზევით. სავალდებულო." + +#. TRANS: Link description in user account settings menu. +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 +msgid "Email" +msgstr "ელ. ფოსტა" + +#: actions/register.php:447 actions/register.php:451 +msgid "Used only for updates, announcements, and password recovery" +msgstr "" +"გამოიყენება მხოლოდ განახლებებისთვის, განცხადებებისთვის და პაროლის აღსადგენად" + +#: actions/register.php:458 +msgid "Longer name, preferably your \"real\" name" +msgstr "გრძელი სახელი, სასურველია თქვენი ნამდვილი სახელი" + +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "თქვენი ვებ. გვერდის URL, ბლოგი, ან პროფილი სხვა საიტზე" + +#: actions/register.php:524 +#, php-format +msgid "" +"I understand that content and data of %1$s are private and confidential." +msgstr "" +"მე ვაცნობიერებ, რომ %1$s–ის შიგთავსი და მონაცემები არის პირადული და " +"კონციდენციალური." + +#: actions/register.php:534 +#, php-format +msgid "My text and files are copyright by %1$s." +msgstr "ჩემი ტექსტის და ფაილების საავტორო უფლება ეკუტვნის %1$s–ს." + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. +#: actions/register.php:538 +msgid "My text and files remain under my own copyright." +msgstr "ჩემი ტექსტი და ფაილები ჩემივე საკუთრებაა." + +#. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. +#: actions/register.php:541 +msgid "All rights reserved." +msgstr "ყველა უფლება დაცულია." + +#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. +#: actions/register.php:546 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"ჩემი ტექსტი და ფაილები ხელმისაწვდომია %s–ით, გარდა ამ პირადი ინფორმაციისა: " +"პაროლი, ელ. ფოსტის მისამართი, IM მისამართი და ტელეფონის ნომერი." + +#: actions/register.php:589 +#, php-format +msgid "" +"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " +"want to...\n" +"\n" +"* Go to [your profile](%2$s) and post your first message.\n" +"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send " +"notices through instant messages.\n" +"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that " +"share your interests. \n" +"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell " +"others more about you. \n" +"* Read over the [online docs](%%%%doc.help%%%%) for features you may have " +"missed. \n" +"\n" +"Thanks for signing up and we hope you enjoy using this service." +msgstr "" +"გილოცავთ %1$s! და მოგესალმებით %%%%site.name%%%%–ზე. თქვენი შემდეგი ნაბიჯები " +"შეიძლება იყოს...\n" +"\n" +"* გადადი [შენს პროფილზე](%2$s) და დაპოსტე შენი პიორველი შეტყობინება.\n" +"* დაამატე [Jabber/GTalk მისამართები](%%%%action.imsettings%%%%), რომ " +"გააგზავნო შეტყობინებები შენი ჩათ–კლიენტიდან.\n" +"* [მოძებნე ადამიანები](%%%%action.peoplesearch%%%%) რომლებსაც შეიძლება " +"იცნობ, ან ვისთანაც იზიარებ ინტერესებს.\n" +"* განაახლე შენი [პროფილის პარამეტრები](%%%%action.profilesettings%%%%), რომ " +"მეტი გააგებინო სხვებს შენ შესახებ.\n" +"* გადაიკითხე [დოკუმენტაცია](%%%%doc.help%%%%) იმ შესაძლებლობების გასაგებად, " +"რომლებიც შეიძლება გამოგრჩენოდა.\n" +"\n" +"გმადლობთ რომ დარეგისტრირდით. იმედი გვაქვს ისიამოვნებთ ამ სერვისით." + +#: actions/register.php:613 +msgid "" +"(You should receive a message by email momentarily, with instructions on how " +"to confirm your email address.)" +msgstr "" +"(თქვენ უნდა მიიღოს ელ. წერილი მომენტალურად. ინსტრუქციებით, თუ როგორ " +"დაადასტუროთ თქვენი ელ. ფოსტის მისამართი.)" + +#: actions/remotesubscribe.php:98 +#, php-format +msgid "" +"To subscribe, you can [login](%%action.login%%), or [register](%%action." +"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.register%%) ახალი ანგარიში. თუ თქვენ უკვე გაქვთ " +"ანგარიში [თავსებად მიკრობლოგინგის საიტზე](%%doc.openmublog%%), მაშინ " +"შეიყვანეთ თქვენი პროფილის URL ქვევით." + +#: actions/remotesubscribe.php:112 +msgid "Remote subscribe" +msgstr "დაშორებული გამოწერა" + +#: actions/remotesubscribe.php:124 +msgid "Subscribe to a remote user" +msgstr "გამოიწერე დაშორებული მომხმარებელი" + +#: actions/remotesubscribe.php:129 +msgid "User nickname" +msgstr "მომხმარებლის მეტსახელი" + +#: actions/remotesubscribe.php:130 +msgid "Nickname of the user you want to follow" +msgstr "მომხმარებლის მეტსახელი რომელსაც გინდათ რომ მიჰყვეთ" + +#: actions/remotesubscribe.php:133 +msgid "Profile URL" +msgstr "პროფილის URL" + +#: actions/remotesubscribe.php:134 +msgid "URL of your profile on another compatible microblogging service" +msgstr "თქვენი პროფილის URL სხვა თავსებად მიკრობლოგინგის სერვისზე" + +#: actions/remotesubscribe.php:137 lib/subscribeform.php:139 +#: lib/userprofile.php:411 +msgid "Subscribe" +msgstr "გამოწერა" + +#: actions/remotesubscribe.php:159 +msgid "Invalid profile URL (bad format)" +msgstr "პროფილის არასწორი URL (ცუდი ფორმატი)" + +#: actions/remotesubscribe.php:168 +msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." +msgstr "" +"ეს არ არის პროფილის სწორი URL (YADIS დოკუმენტი არ არის, ან არასწორი XRDS–ა " +"განსაზღვრული)." + +#: actions/remotesubscribe.php:176 +msgid "That’s a local profile! Login to subscribe." +msgstr "ეს ადგილობრივი პროფილია! შედით რომ გამოიწეროთ." + +#: actions/remotesubscribe.php:183 +msgid "Couldn’t get a request token." +msgstr "" + +#: actions/repeat.php:57 +msgid "Only logged-in users can repeat notices." +msgstr "მხოლოდ ავტორიზირებულ მომხმარებლებს შეუძლიათ შეტყობინებების გამეორება." + +#: actions/repeat.php:64 actions/repeat.php:71 +msgid "No notice specified." +msgstr "შეტყობინება მითითებული არ არის." + +#: actions/repeat.php:76 +msgid "You can't repeat your own notice." +msgstr "საკუთარი შეტყობინების გამეორება არ შეიძლება." + +#: actions/repeat.php:90 +msgid "You already repeated that notice." +msgstr "თქვენ უკვე გაიმეორეთ ეს შეტყობინება." + +#: actions/repeat.php:114 lib/noticelist.php:691 +msgid "Repeated" +msgstr "გამეორებული" + +#: actions/repeat.php:119 +msgid "Repeated!" +msgstr "გამეორებული!" + +#: actions/replies.php:126 actions/repliesrss.php:68 +#: lib/personalgroupnav.php:108 +#, php-format +msgid "Replies to %s" +msgstr "პასუხები %s–ს" + +#: actions/replies.php:128 +#, php-format +msgid "Replies to %1$s, page %2$d" +msgstr "პასუხები %1$s–ს, გვერდი %2$d" + +#: actions/replies.php:145 +#, php-format +msgid "Replies feed for %s (RSS 1.0)" +msgstr "" + +#: actions/replies.php:152 +#, php-format +msgid "Replies feed for %s (RSS 2.0)" +msgstr "" + +#: actions/replies.php:159 +#, php-format +msgid "Replies feed for %s (Atom)" +msgstr "" + +#: actions/replies.php:199 +#, php-format +msgid "" +"This is the timeline showing replies to %1$s but %2$s hasn't received a " +"notice to them yet." +msgstr "" +"ეს არის პასუხების ნაკადი %1$s–სთვის, მაგრამ %2$s–ს ჯერ არ მიუღია შეტყობინება " +"მათ შესახებ." + +#: actions/replies.php:204 +#, php-format +msgid "" +"You can engage other users in a conversation, subscribe to more people or " +"[join groups](%%action.groups%%)." +msgstr "" +"თქვენ შეგიძლიათ ჩაერთოთ საუბარში სხვა მომხმარებლებთან ერთად, გამოიწეროთ მეტი " +"პიროვნებების განახლებები, ან [გაწევრიანდეთ ჯგუფში](%%action.groups%%)." + +#: actions/replies.php:206 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." +"newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#: actions/repliesrss.php:72 +#, php-format +msgid "Replies to %1$s on %2$s!" +msgstr "პასუხები %1$s–ს %2$s–ზე!" + +#: actions/revokerole.php:75 +msgid "You cannot revoke user roles on this site." +msgstr "თქვენ არ შეგიძლიათ მომხმარებლის როლის გაუქმება ამ საიტზე." + +#: actions/revokerole.php:82 +msgid "User doesn't have this role." +msgstr "მომხმარებელს არ გააჩნია ეს როლი." + +#: actions/rsd.php:146 actions/version.php:159 +msgid "StatusNet" +msgstr "StatusNet" + +#: actions/sandbox.php:65 actions/unsandbox.php:65 +msgid "You cannot sandbox users on this site." +msgstr "თქვენ ვერ შეძლებთ მომხმარებლების იზოლირებას ამ საიტზე." + +#: actions/sandbox.php:72 +msgid "User is already sandboxed." +msgstr "მომხმარებელი უკვე იზოლირებულია." + +#. TRANS: Menu item for site administration +#: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:379 +msgid "Sessions" +msgstr "სესიები" + +#: actions/sessionsadminpanel.php:65 +msgid "Session settings for this StatusNet site" +msgstr "" + +#: actions/sessionsadminpanel.php:175 +msgid "Handle sessions" +msgstr "სესიების მართვა" + +#: actions/sessionsadminpanel.php:177 +msgid "Whether to handle sessions ourselves." +msgstr "ვმართოთ თუ არა სესიები ჩვენით." + +#: actions/sessionsadminpanel.php:181 +msgid "Session debugging" +msgstr "სესიების შეცდომების გამოსწორება (debugging)" + +#: actions/sessionsadminpanel.php:183 +msgid "Turn on debugging output for sessions." +msgstr "" + +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +msgid "Save site settings" +msgstr "საიტის პარამეტრების შენახვა" + +#: actions/showapplication.php:82 +msgid "You must be logged in to view an application." +msgstr "აპლიკაციის სანახავად საჭიროა ავროტიზაცია." + +#: actions/showapplication.php:157 +msgid "Application profile" +msgstr "აპლიკაციის პროფილი" + +#. TRANS: Form input field label for application icon. +#: actions/showapplication.php:159 lib/applicationeditform.php:173 +msgid "Icon" +msgstr "" + +#. TRANS: Form input field label for application name. +#: actions/showapplication.php:169 actions/version.php:197 +#: lib/applicationeditform.php:190 +msgid "Name" +msgstr "დასახელება" + +#. TRANS: Form input field label. +#: actions/showapplication.php:178 lib/applicationeditform.php:227 +msgid "Organization" +msgstr "ორგანიზაცია" + +#. TRANS: Form input field label. +#: actions/showapplication.php:187 actions/version.php:200 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 +msgid "Description" +msgstr "აღწერა" + +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 +#: lib/profileaction.php:187 +msgid "Statistics" +msgstr "სტატისტიკა" + +#: actions/showapplication.php:203 +#, php-format +msgid "Created by %1$s - %2$s access by default - %3$d users" +msgstr "" + +#: actions/showapplication.php:213 +msgid "Application actions" +msgstr "აპლიკაციის მოქმედებები" + +#: actions/showapplication.php:236 +msgid "Reset key & secret" +msgstr "გასაღების და საიდუმლოს გადაყენება" + +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "წაშლა" + +#: actions/showapplication.php:261 +msgid "Application info" +msgstr "ინფო აპლიკაციაზე" + +#: actions/showapplication.php:263 +msgid "Consumer key" +msgstr "მომხმარებლის გასაღები" + +#: actions/showapplication.php:268 +msgid "Consumer secret" +msgstr "მომხმარებლის საიდუმლო" + +#: actions/showapplication.php:273 +msgid "Request token URL" +msgstr "" + +#: actions/showapplication.php:278 +msgid "Access token URL" +msgstr "" + +#: actions/showapplication.php:283 +msgid "Authorize URL" +msgstr "URL-ის ავტორიზაცია" + +#: actions/showapplication.php:288 +msgid "" +"Note: We support HMAC-SHA1 signatures. We do not support the plaintext " +"signature method." +msgstr "" +"შენიშვნა: ჩვენ მხარს ვუჭერთ HMAC-SHA1 ხელმოწერებს. ჩვენ არ ვუჭერთ მხარს " +"მხოლოდ ტექსტური ხელმოწერის მეთოდს." + +#: actions/showapplication.php:309 +msgid "Are you sure you want to reset your consumer key and secret?" +msgstr "" +"დარწმუნებული ხართ რომ გნებავთ თქვენი მომხმარებლის გასაღების და საიდუმლოს " +"გადაყენება?" + +#: actions/showfavorites.php:79 +#, php-format +msgid "%1$s's favorite notices, page %2$d" +msgstr "%1$s-ის რჩეული შეტყობინებები, გვერდი %2$d" + +#: actions/showfavorites.php:132 +msgid "Could not retrieve favorite notices." +msgstr "რჩეული შეტყობინებების გამოთხოვნა ვერ მოხერხდა." + +#: actions/showfavorites.php:171 +#, php-format +msgid "Feed for favorites of %s (RSS 1.0)" +msgstr "" + +#: actions/showfavorites.php:178 +#, php-format +msgid "Feed for favorites of %s (RSS 2.0)" +msgstr "" + +#: actions/showfavorites.php:185 +#, php-format +msgid "Feed for favorites of %s (Atom)" +msgstr "" + +#: actions/showfavorites.php:206 +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:208 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Post something interesting they " +"would add to their favorites :)" +msgstr "" + +#: actions/showfavorites.php:212 +#, php-format +msgid "" +"%s hasn't added any favorite notices yet. Why not [register an account](%%%%" +"action.register%%%%) and then post something interesting they would add to " +"their favorites :)" +msgstr "" + +#: actions/showfavorites.php:243 +msgid "This is a way to share what you like." +msgstr "" + +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 +#, php-format +msgid "%s group" +msgstr "" + +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format +msgid "%1$s group, page %2$d" +msgstr "" + +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 +msgid "Group profile" +msgstr "" + +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 +msgid "URL" +msgstr "" + +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 +msgid "Note" +msgstr "შენიშვნა" + +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 +msgid "Aliases" +msgstr "" + +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 +msgid "Group actions" +msgstr "" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format +msgid "Notice feed for %s group (RSS 1.0)" +msgstr "" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format +msgid "Notice feed for %s group (RSS 2.0)" +msgstr "" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format +msgid "Notice feed for %s group (Atom)" +msgstr "" + +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 +#, php-format +msgid "FOAF for %s group" +msgstr "" + +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 +msgid "Members" +msgstr "წევრები" + +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 +#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 +#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "(არცერთი)" + +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 +msgid "All members" +msgstr "" + +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" +msgid "Created" +msgstr "შექმნილია" + +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "წევრები" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 +#, 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. [Join now](%%%%action.register%%%%) to become part " +"of this group and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, 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 "" + +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 +msgid "Admins" +msgstr "" + +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 +msgid "No such message." +msgstr "" + +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 +msgid "Only the sender and recipient may read this message." +msgstr "" + +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, php-format +msgid "Message to %1$s on %2$s" +msgstr "" + +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, php-format +msgid "Message from %1$s on %2$s" +msgstr "" + +#: actions/shownotice.php:90 +msgid "Notice deleted." +msgstr "" + +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s - %2$s" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "შეტყობინებები მონიშნული %1$s-ით, გვერდი %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format +msgid "%1$s, page %2$d" +msgstr "" + +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format +msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" +msgstr "" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "" + +#: actions/showstream.php:152 +#, php-format +msgid "Notice feed for %s (Atom)" +msgstr "" + +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, php-format +msgid "FOAF for %s" +msgstr "" + +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "" +"ეს არის $s-ს და მეგობრების განახლებების ნაკადი, მაგრამ ჯერჯერობით არავის " +"დაუპოსტავს." + +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 +msgid "" +"Seen anything interesting recently? You haven't posted any notices yet, now " +"would be a good time to start :)" +msgstr "" + +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format +msgid "" +"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" +"%?status_textarea=%2$s)." +msgstr "" + +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, 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. [Join now](%%%%action.register%%%%) to " +"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" +msgstr "" + +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, 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 "" + +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, php-format +msgid "Repeat of %s" +msgstr "" + +#: actions/silence.php:65 actions/unsilence.php:65 +msgid "You cannot silence users on this site." +msgstr "თქვენ ვერ შეძლებთ მომხმარებლების დადუმებას ამ საიტზე." + +#: actions/silence.php:72 +msgid "User is already silenced." +msgstr "მომხმარებელი უკვე დადუმებულია." + +#: actions/siteadminpanel.php:69 +msgid "Basic settings for this StatusNet site" +msgstr "ამ საიტის ძირითადი პარამეტრები" + +#: actions/siteadminpanel.php:133 +msgid "Site name must have non-zero length." +msgstr "საიტის სახელი არ უნდა იყოს ნულოვანი სიგრძის." + +#: actions/siteadminpanel.php:141 +msgid "You must have a valid contact email address." +msgstr "თქვენ უნდა გქონდეთ ნამდვილი საკონტაქტო ელ. ფოსტის მისამართი." + +#: actions/siteadminpanel.php:159 +#, php-format +msgid "Unknown language \"%s\"." +msgstr "უცნობი ენა \"%s\"." + +#: actions/siteadminpanel.php:165 +msgid "Minimum text limit is 0 (unlimited)." +msgstr "ტექსტის მინიმალური ზღვარია 0 (ულიმიტო)." + +#: actions/siteadminpanel.php:171 +msgid "Dupe limit must be one or more seconds." +msgstr "" + +#: actions/siteadminpanel.php:221 +msgid "General" +msgstr "ძირითადი" + +#: actions/siteadminpanel.php:224 +msgid "Site name" +msgstr "საიტის სახელი" + +#: actions/siteadminpanel.php:225 +msgid "The name of your site, like \"Yourcompany Microblog\"" +msgstr "თქვენი საიტის სახელი, როგორც \"თქვენი კომპანიის მიკრობლოგი\"" + +#: actions/siteadminpanel.php:229 +msgid "Brought by" +msgstr "" + +#: actions/siteadminpanel.php:230 +msgid "Text used for credits link in footer of each page" +msgstr "ტექსტი გამოყენებული თითოეული გვერდის ბოლოს კრედიტებისთვის" + +#: actions/siteadminpanel.php:234 +msgid "Brought by URL" +msgstr "მომწოდებლის URL" + +#: actions/siteadminpanel.php:235 +msgid "URL used for credits link in footer of each page" +msgstr "URL გამოყენებული კრედიტებისათვის თითოეული გვერდი ბოლოს" + +#: actions/siteadminpanel.php:239 +msgid "Contact email address for your site" +msgstr "თქვენი საიტის საკონტაქტო ელ. ფოსტის მისამართი" + +#: actions/siteadminpanel.php:245 +msgid "Local" +msgstr "ლოკალური" + +#: actions/siteadminpanel.php:256 +msgid "Default timezone" +msgstr "პირვანდელი დროის სარტყელი" + +#: actions/siteadminpanel.php:257 +msgid "Default timezone for the site; usually UTC." +msgstr "პირვანდელი დროის სარტყელი ამ საიტისთვის; ძირითადად UTC." + +#: actions/siteadminpanel.php:262 +msgid "Default language" +msgstr "პირვანდელი ენა" + +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "საიტის ენა, როდესაც ბროუზერის ავტოდამდგენი არ არის ხელმისაწვდომი" + +#: actions/siteadminpanel.php:271 +msgid "Limits" +msgstr "ზღვრები" + +#: actions/siteadminpanel.php:274 +msgid "Text limit" +msgstr "ტექსტის ზღვარი" + +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." +msgstr "შეტყობინების სიმბოლოთა მაქსიმალური რაოდენობა." + +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" +msgstr "" + +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." +msgstr "" +"რამდენი ხანი (წამებში) უნდა ელოდოს მომხმარებელი რომ დაპოსტოს ერთი და იგივე." + +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 +msgid "Site Notice" +msgstr "საიტის შეტყობინება" + +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 +msgid "Edit site-wide message" +msgstr "ჩაასწორე საიტის მომცველი შეტყობინება" + +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 +msgid "Unable to save site notice." +msgstr "საიტის შეტყობინების შენახვა ვერ მოხერხდა." + +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "საიტის მომცველი შეტყობინების მაქს. ზომაა 255 სიმბოლო." + +#. TRANS: Label for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:176 +msgid "Site notice text" +msgstr "საიტის შეტყობინების ტექსტი" + +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "საერთო სასაიტო შეტყობინების ტექსტი (მაქს. 255 სიმბოლო; HTML შეიძლება)" + +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 +msgid "Save site notice" +msgstr "შეინახე საერთოსასაიტო შეტყობინება" + +#. TRANS: Title for SMS settings. +#: actions/smssettings.php:59 +msgid "SMS settings" +msgstr "SMS პარამეტრები" + +#. TRANS: SMS settings page instructions. +#. TRANS: %%site.name%% is the name of the site. +#: actions/smssettings.php:74 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" +"თქვენ შეგიძლიათ მიიღოთ SMS შეტყობინებები %%site.name%%-სგან ელ. ფოსტის " +"საშუალებით." + +#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. +#: actions/smssettings.php:97 +msgid "SMS is not available." +msgstr "SMS არ არის ხელმისაწვდომი." + +#. TRANS: Form legend for SMS settings form. +#: actions/smssettings.php:111 +msgid "SMS address" +msgstr "SMS მისამართი" + +#. TRANS: Form guide in SMS settings form. +#: actions/smssettings.php:120 +msgid "Current confirmed SMS-enabled phone number." +msgstr "მიმდინარე დადასტურებული SMS გააქტიურებული ტელ. ნომერი." + +#. TRANS: Form guide in IM settings form. +#: actions/smssettings.php:133 +msgid "Awaiting confirmation on this phone number." +msgstr "ამ ტელ. ნომრის დასტური მოლოდინშია." + +#. TRANS: Field label for SMS address input in SMS settings form. +#: actions/smssettings.php:142 +msgid "Confirmation code" +msgstr "დასტურის კოდი" + +#. TRANS: Form field instructions in SMS settings form. +#: actions/smssettings.php:144 +msgid "Enter the code you received on your phone." +msgstr "შეიყვანეთ კოდი, რომელიც მიიღეთ თქვენს ტელეფონზე." + +#. TRANS: Button label to confirm SMS confirmation code in SMS settings. +#: actions/smssettings.php:148 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "დასტური" + +#. TRANS: Field label for SMS phone number input in SMS settings form. +#: actions/smssettings.php:153 +msgid "SMS phone number" +msgstr "SMS ტელეფონის ნომერი" + +#. TRANS: SMS phone number input field instructions in SMS settings form. +#: actions/smssettings.php:156 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "ტელ. ნომერი, პუნქტუაციის ან სივრცეების გარეშე, ქვეყნის კოდით." + +#. TRANS: Form legend for SMS preferences form. +#: actions/smssettings.php:195 +msgid "SMS preferences" +msgstr "SMS კონფიგურაცია" + +#. TRANS: Checkbox label in SMS preferences form. +#: actions/smssettings.php:201 +msgid "" +"Send me notices through SMS; I understand I may incur exorbitant charges " +"from my carrier." +msgstr "" +"გამომიგზავნე ცნობები SMS-ით; ვაცნობიერებ, რომ შესაძლებელია ჩემმა ოპერატორმა " +"საგრძნობი გადასახადები დამაკისროს." + +#. TRANS: Confirmation message for successful SMS preferences save. +#: actions/smssettings.php:315 +msgid "SMS preferences saved." +msgstr "SMS კონფიგურაცია შენახულია." + +#. TRANS: Message given saving SMS phone number without having provided one. +#: actions/smssettings.php:338 +msgid "No phone number." +msgstr "ტელეფონის ნომერი არ არის." + +#. TRANS: Message given saving SMS phone number without having selected a carrier. +#: actions/smssettings.php:344 +msgid "No carrier selected." +msgstr "ოპერატორი შერჩეული არ არის." + +#. TRANS: Message given saving SMS phone number that is already set. +#: actions/smssettings.php:352 +msgid "That is already your phone number." +msgstr "ეს უკვე არის ტქვენი ტელეფონის მისამართი." + +#. TRANS: Message given saving SMS phone number that is already set for another user. +#: actions/smssettings.php:356 +msgid "That phone number already belongs to another user." +msgstr "ეს ტელეფონის ნომერი სხვას ეკუთვნის." + +#. TRANS: Message given saving valid SMS phone number that is to be confirmed. +#: actions/smssettings.php:384 +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 "" +"დასადასტურებელი კოდი გამოგზავნილია თქვენს მიერ მითითებულ ტელეფონის ნომერზე. " +"შეამოწმეთ შეამოწმეთ თქვენი ტელეფონი, რომ მიიღოთ დასადასტურებელი კოდი და " +"ინსტრუქცია გამოყენებისთვის." + +#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. +#: actions/smssettings.php:413 +msgid "That is the wrong confirmation number." +msgstr "ეს დასტურის კოდი არასწორია." + +#. TRANS: Message given after successfully canceling SMS phone number confirmation. +#: actions/smssettings.php:427 +msgid "SMS confirmation cancelled." +msgstr "SMS დადასტურება გაუქმებულია." + +#. TRANS: Message given trying to remove an SMS phone number that is not +#. TRANS: registered for the active user. +#: actions/smssettings.php:448 +msgid "That is not your phone number." +msgstr "ეს არ არის თქვენი ნომერი." + +#. TRANS: Message given after successfully removing a registered SMS phone number. +#: actions/smssettings.php:470 +msgid "The SMS phone number was removed." +msgstr "SMS ტელეფონის ნომერი წაშლილია." + +#. TRANS: Label for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:511 +msgid "Mobile carrier" +msgstr "მობილური ოპერატორი" + +#. TRANS: Default option for mobile carrier dropdown menu in SMS settings. +#: actions/smssettings.php:516 +msgid "Select a carrier" +msgstr "აირჩიეთ ოპერატორი" + +#. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings. +#. TRANS: %s is an administrative contact's e-mail address. +#: actions/smssettings.php:525 +#, php-format +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." + +#. TRANS: Message given saving SMS phone number confirmation code without having provided one. +#: actions/smssettings.php:548 +msgid "No code entered" +msgstr "კოდი არ არის შეყვანილი" + +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:395 +msgid "Snapshots" +msgstr "წინა ვერსიები" + +#: actions/snapshotadminpanel.php:65 +msgid "Manage snapshot configuration" +msgstr "წინა ვერსიების მართვა" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "წინა ვერსიის გაშვების არასწორი მონაცემი." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "წინა ვერსიის სიხშირე ციფრი უნდა იყოს." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "" + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during web hit" +msgstr "" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "როდის გაეგზავნოს სტატისტიკური მონაცემები status.net სერვერს" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "სიხშირე" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "მდგომარეობა გაიგზავნება ამ URL-ზე" + +#: actions/snapshotadminpanel.php:248 +msgid "Save snapshot settings" +msgstr "დაიმახსოვრე მდგომარეობის პარამეტრები" + +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 +msgid "You are not subscribed to that profile." +msgstr "თქვენ არ გაქვთ გამოწერილი ამ პროფილის განახლებები." + +#. TRANS: Server error displayed when updating a subscription fails with a database error. +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:89 classes/Subscription.php:141 +msgid "Could not save subscription." +msgstr "გამოწერის დამახსოვრება ვერ მოხერხდა." + +#: actions/subscribe.php:77 +msgid "This action only accepts POST requests." +msgstr "ეს მოქმედება მხოლოდ POST მოთხოვნებს იღებს." + +#: actions/subscribe.php:117 +msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." +msgstr "" +"თქვენ არ შეგიძლიათ გამოიწეროთ 0მბ-იანი 0.1 დაშორებული პროფილი ამ მოქმედებით." + +#: actions/subscribe.php:145 +msgid "Subscribed" +msgstr "გამოწერილია" + +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 +#, php-format +msgid "%s subscribers" +msgstr "%s გამომწერი" + +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "%1$s გამომწერი, გვერდი %2$d" + +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 +msgid "These are the people who listen to your notices." +msgstr "არის ხალხი, ვინც თქვენს შეტყობინებებს თვალ-ყურს ადევნებს." + +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 +#, php-format +msgid "These are the people who listen to %s's notices." +msgstr "არის ხალხი, ვინც %s-ს შეტყობინებებს თვალ-ყურს ადევნებს." + +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy +msgid "" +"You have no subscribers. Try subscribing to people you know and they might " +"return the favor." +msgstr "" +"თქვენ არ გყავთ გამომწერები. სცადეთ გამოიწეროთ თქვენი ნაცნობების განახლებები " +"და შესაძლოა იგივეთი გიპასუხონ" + +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 +#, php-format +msgid "%s has no subscribers. Want to be the first?" +msgstr "%s არ ჰყავს გამომწერები. გინდა გახდე პირველი?" + +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, php-format +msgid "" +"%s has no subscribers. Why not [register an account](%%%%action.register%%%" +"%) and be the first?" +msgstr "" +"%s არ ჰყავს გამომწერები. [დარეგისტრირდი](%%%%action.register%%%%) და გახდი " +"პირველი." + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format +msgid "%1$s subscriptions, page %2$d" +msgstr "%1$s გამოწერები, გვერდი %2$d" + +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 +msgid "These are the people whose notices you listen to." +msgstr "ეს არის ხალხი, ვის შეტყობინებებსაც უსმენთ." + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 +#, php-format +msgid "These are the people whose notices %s listens to." +msgstr "ეს არის ხალხი ვის შეტყობინებებსაც ყურს უგდებს %s." + +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 +#, php-format +msgid "" +"You're not listening to anyone's notices right now, try subscribing to " +"people you know. Try [people search](%%action.peoplesearch%%), look for " +"members in groups you're interested in and in our [featured users](%%action." +"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%%), შეგიძლიათ ავტომატურად გამოიწეროთ ხალხი, რომლებსაც " +"იქ მიჰყვებით." + +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format +msgid "%s is not listening to anyone." +msgstr "%s არავის უსმენს." + +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 +msgid "Jabber" +msgstr "Jabber" + +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 +msgid "SMS" +msgstr "SMS" + +#: actions/tag.php:69 +#, php-format +msgid "Notices tagged with %1$s, page %2$d" +msgstr "შეტყობინებები მონიშნული %1$s-ით, გვერდი %2$d" + +#: actions/tag.php:87 +#, php-format +msgid "Notice feed for tag %s (RSS 1.0)" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 1.0)" + +#: actions/tag.php:93 +#, php-format +msgid "Notice feed for tag %s (RSS 2.0)" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 2.0)" + +#: actions/tag.php:99 +#, php-format +msgid "Notice feed for tag %s (Atom)" +msgstr "შეტყობინებების RSS მონიშნული %s-თ (Atom)" + +#: actions/tagother.php:39 +msgid "No ID argument." +msgstr "" + +#: actions/tagother.php:65 +#, php-format +msgid "Tag %s" +msgstr "სანიშნე %s" + +#: actions/tagother.php:77 lib/userprofile.php:76 +msgid "User profile" +msgstr "მომხმარებლის პროფილი" + +#: actions/tagother.php:81 actions/userauthorization.php:132 +#: lib/userprofile.php:107 +msgid "Photo" +msgstr "ფოტო" + +#: actions/tagother.php:141 +msgid "Tag user" +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 +msgid "Could not save tags." +msgstr "სანიშნეების შენახვა ვერ მოხერხდა." + +#: actions/tagother.php:236 +msgid "Use this form to add tags to your subscribers or subscriptions." +msgstr "" +"გამოიყენეთ ეს ფორმა, რომ მიანიჭოთ სანიშნეები თქვენს გამოწერებს ან " +"გამომწერებს." + +#: actions/tagrss.php:35 +msgid "No such tag." +msgstr "ასეთი სანიშნე არ არსებობს." + +#: actions/unblock.php:59 +msgid "You haven't blocked that user." +msgstr "თქვენ არ დაგიბლოკავთ ეს მომხმარებელი." + +#: actions/unsandbox.php:72 +msgid "User is not sandboxed." +msgstr "მომხმარებელი არ არის იზოლირებული." + +#: actions/unsilence.php:72 +msgid "User is not silenced." +msgstr "მომხმარებელი არ არის დადუმებული." + +#: actions/unsubscribe.php:77 +msgid "No profile ID in request." +msgstr "არცერთი პროფილის ID არ არის მოთხოვნილი." + +#: actions/unsubscribe.php:98 +msgid "Unsubscribed" +msgstr "გამოწერა გაუქმებულია" + +#: actions/updateprofile.php:64 actions/userauthorization.php:337 +#, php-format +msgid "" +"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." +msgstr "" +"გამოსაწერი მომხმარებლის ნაკადის ლიცენზია ‘%1$s’ შეუთავსებელია საიტის " +"ლიცენზიასთან ‘%2$s’." + +#. TRANS: User admin panel title +#: actions/useradminpanel.php:58 +msgctxt "TITLE" +msgid "User" +msgstr "მომხმარებელი" + +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" + +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 +msgid "Invalid bio limit. Must be numeric." +msgstr "ბიოგრაფიის არასწორი ლიმიტი. უნდა იყოს ციფრი." + +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "არასწორი მისასალმებელი ტექსტი. სიმბოლოების მაქს. რაოდენობაა 255." + +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "" + +#. TRANS: Link description in user account settings menu. +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 +msgid "Profile" +msgstr "პროფილი" + +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 +msgid "Bio Limit" +msgstr "ბიოგრაფიის ლიმიტი" + +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 +msgid "Maximum length of a profile bio in characters." +msgstr "პროფილის ბიოგრაფიის მაქსიმალური ზომა სიმბოლოებში." + +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:231 +msgid "New users" +msgstr "ახალი მომხმარებლები" + +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 +msgid "New user welcome" +msgstr "ახალი მომხმარებლის მისალმება" + +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "მისალმების ტექსტი ახალი მომხმარებლებისთვის (მაქს. 255 სიმბოლო)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 +msgid "Default subscription" +msgstr "" + +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 +msgid "Automatically subscribe new users to this user." +msgstr "ავტომატურად გამოაწერინე ამ მომხმარებელს ახალი მომხმარებლები." + +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 +msgid "Invitations" +msgstr "მოსაწვევეი" + +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 +msgid "Invitations enabled" +msgstr "მოსაწვევები გააქტიურებულია" + +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 +msgid "Whether to allow users to invite new users." +msgstr "მიეცეთ თუ არა მომხმარებლებს სხვების მოწვევის უფლება." + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + +#: actions/userauthorization.php:105 +msgid "Authorize subscription" +msgstr "გამოწერის ავტორიზაცია" + +#: actions/userauthorization.php:110 +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 "" +"გთხოვთ გადახედოთ ამ დეტალებს, რომ დარწმუნდეთ რომ გინდათ ამ მომხმარებლის " +"განახლებების გამოწერა. თუ თქვენ არ გინდოდათ გამოწერა, მაშინ გააჭირეთ ღილაკს " +"\"უარყოფა\"." + +#. TRANS: Menu item for site administration +#: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 +msgid "License" +msgstr "ლიცენზია" + +#: actions/userauthorization.php:217 +msgid "Accept" +msgstr "მიღება" + +#: actions/userauthorization.php:218 lib/subscribeform.php:115 +#: lib/subscribeform.php:139 +msgid "Subscribe to this user" +msgstr "გამოიწერე ეს მომხმარებელი" + +#: actions/userauthorization.php:219 +msgid "Reject" +msgstr "უარყოფა" + +#: actions/userauthorization.php:220 +msgid "Reject this subscription" +msgstr "ამ გამოწერის უარყოფა" + +#: actions/userauthorization.php:232 +msgid "No authorization request!" +msgstr "ავტორიზაციის მოთხოვნა არ არის!" + +#: actions/userauthorization.php:254 +msgid "Subscription authorized" +msgstr "გამოწერა ავტორიზირებულია" + +#: actions/userauthorization.php:256 +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 " +"subscription. Your subscription token is:" +msgstr "" +"გამოწერა ავტორიზირებულია, მაგრამ უკან დასაბრუნებელი URL არ მოწოდებულა. " +"გადაამოწმეთ საიტის ინსტრუქციებში გამოწერის ავტორიზირების დეტალები. თქვენი " +"გამოწერის ტოკენია:" + +#: actions/userauthorization.php:266 +msgid "Subscription rejected" +msgstr "გამოწერა უარყოფილია" + +#: actions/userauthorization.php:268 +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 "" +"გამოწერა უარყოფილია, მაგრამ უკან დასაბრუნებელი URL არ მოწოდებულა. " +"გადაამოწმეთ საიტის ინსტრუქციებში გამოწერის მთლიანად უარყოფის შესახებ " +"დეტალები." + +#: actions/userauthorization.php:303 +#, php-format +msgid "Listener URI ‘%s’ not found here." +msgstr "მსმენელის URI ‘%s’ აქ ვერ მოიძებნა." + +#: actions/userauthorization.php:308 +#, php-format +msgid "Listenee URI ‘%s’ is too long." +msgstr "" + +#: actions/userauthorization.php:314 +#, php-format +msgid "Listenee URI ‘%s’ is a local user." +msgstr "" + +#: actions/userauthorization.php:329 +#, php-format +msgid "Profile URL ‘%s’ is for a local user." +msgstr "პროფილის URL ‘%s’ ლოკალური მომხმარებლისთვისაა განკუთვნილი." + +#: actions/userauthorization.php:345 +#, php-format +msgid "Avatar URL ‘%s’ is not valid." +msgstr "ავატარის URL ‘%s’ არ არის სწორი." + +#: actions/userauthorization.php:350 +#, php-format +msgid "Can’t read avatar URL ‘%s’." +msgstr "ვერ ვკითხულობ ავატარის URL ‘%s’." + +#: actions/userauthorization.php:355 +#, php-format +msgid "Wrong image type for avatar URL ‘%s’." +msgstr "ავატარის სურათის ფორმატი არასწორია URL ‘%s’." + +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 +msgid "Profile design" +msgstr "პროფილის დიზაინი" + +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 +msgid "" +"Customize the way your profile looks with a background image and a colour " +"palette of your choice." +msgstr "" +"აირჩიეთ, როგორ გნებავთ გამოიყურებოდეს თქვენი პროფილი ფონური სურათისა და " +"ფერთა პალიტრის შეცვლით." + +#: actions/userdesignsettings.php:282 +msgid "Enjoy your hotdog!" +msgstr "ისიამოვნეთ ჰოთ დოგით!" + +#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. +#: actions/usergroups.php:66 +#, php-format +msgid "%1$s groups, page %2$d" +msgstr "%1$s ჯგუფი, გვერდი %2$d" + +#: actions/usergroups.php:132 +msgid "Search for more groups" +msgstr "მოძებნე მეტი ჯგუფები" + +#: actions/usergroups.php:159 +#, php-format +msgid "%s is not a member of any group." +msgstr "მომხმარებელი %s არ არის არცერთი ჯგუფის წევრი." + +#: actions/usergroups.php:164 +#, php-format +msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." +msgstr "სცადეთ [ჯგუფების მოძებნა](%%action.groupsearch%%) გაერთიენდით მათში." + +#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom group notice feed. +#. TRANS: %1$s is a group name, %2$s is a site name. +#. TRANS: Message is used as a subtitle in atom user notice feed. +#. TRANS: %1$s is a user name, %2$s is a site name. +#: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 +#: lib/atomusernoticefeed.php:75 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "%1$s-ს განახლებები %2$s-ზე!" + +#: actions/version.php:75 +#, php-format +msgid "StatusNet %s" +msgstr "StatusNet %s" + +#: actions/version.php:155 +#, php-format +msgid "" +"This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " +"Inc. and contributors." +msgstr "" +"ეს საიტი მუშაობს %1$s-ის %2$s ვერსიაზე, ყველა უფლება დაცულია 2008-2010 " +"StatusNet, Inc. და წვლილის შემომტანები." + +#: actions/version.php:163 +msgid "Contributors" +msgstr "წვლილის შემომტანები" + +#: actions/version.php:170 +msgid "" +"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. " +msgstr "" +"StatusNet არის უფასო კოდი: თქვენ შეგიძლიათ მისი გავრცელება ან/და გადაკეთება " +"GNU Affero ძირითადი საჯარო ლიცენზიის პირობების თანახმად, როგორც " +"გამოქვეყნებულია Free Software Foundation-ის მიერ, ან ლიცენზიის 3 ვერსიით, ან " +"ნებისმიერი უფრო ახალი ვერსიით. " + +#: actions/version.php:176 +msgid "" +"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. " +msgstr "" +"ეს პროგრამა ვრცელდება იმ იმედით, რომ გამოსადეგი იქნება, მაგრამ არ იძლევა " +"არანაირ გარანტიებს; არც თუნდაც პატარა გარანტიას მის გაყიდვადობაზე ან " +"კონკრეტული მიზნისთვის თავსებადობაზე. იხილეთ GNU Affero ძირითადი საჯარო " +"ლიცენზია მეტი ინფორმაციისთვის." + +#: actions/version.php:182 +#, php-format +msgid "" +"You should have received a copy of the GNU Affero General Public License " +"along with this program. If not, see %s." +msgstr "" +"თქვენ უნდა მიგეღოთ GNU Affero ძირითადი საჯარო ლიცენზიის ასლი ამ პროგრამასთან " +"ერთად. თუ არა, იხილეთ %s." + +#: actions/version.php:191 +msgid "Plugins" +msgstr "დამატებები" + +#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. +#: actions/version.php:198 lib/action.php:885 +msgid "Version" +msgstr "ვერსია" + +#: actions/version.php:199 +msgid "Author(s)" +msgstr "ავტორი(ები)" + +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "რჩეული" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s-მა (@%s) დაამატა თქვენი შეტყობინება თავის რჩეულებში" + +#. TRANS: Server exception thrown when a URL cannot be processed. +#: classes/File.php:156 +#, php-format +msgid "Cannot process URL '%s'" +msgstr "ვერ ვამოუშავებ URL '%s'" + +#. TRANS: Server exception thrown when... Robin thinks something is impossible! +#: classes/File.php:188 +msgid "Robin thinks something is impossible." +msgstr "რობინი ფიქრობს რაღაც შეუძლებელია." + +#. TRANS: Message given if an upload is larger than the configured maximum. +#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format +msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" +"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgstr[0] "" +"ფაილი არ შეიძლება იყოს %1$d ბაიტზე მეტი, თქვენ მიერ გაგზავნილი კი %2$d ბაიტი " +"იყო. სცადეთ უფრო პატარა ვერსიის ატვირთვა." + +#. TRANS: Message given if an upload would exceed user quota. +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"ასეთი ზომის ფაილმა შეიძლება გადააჭარბოს თქვენთვის გამოყოფილ კვოტას, %d ბაიტს." + +#. TRANS: Message given id an upload would exceed a user's monthly quota. +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"ასეთი ზომის ფაილმა შეიძლება გადააჭარბოს თქვენთვის გამოყოფილ თვიურ კვოტას, %d " +"ბაიტს." + +#. TRANS: Client exception thrown if a file upload does not have a valid name. +#: classes/File.php:276 classes/File.php:291 +msgid "Invalid filename." +msgstr "ფაილის არასწორი სახელი." + +#. TRANS: Exception thrown when joining a group fails. +#: classes/Group_member.php:51 +msgid "Group join failed." +msgstr "ჯგუფში გაწევრიანება ვერ მოხერხდა." + +#. TRANS: Exception thrown when trying to leave a group the user is not a member of. +#: classes/Group_member.php:64 +msgid "Not part of group." +msgstr "ჯგუფის წევრი არ ხართ." + +#. TRANS: Exception thrown when trying to leave a group fails. +#: classes/Group_member.php:72 +msgid "Group leave failed." +msgstr "ჯგუფის დატოვება ვერ მოხერხდა." + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "შეცდომა მომხმარებლის შენახვისას; არასწორი." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "გაერთიანება" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + +#. TRANS: Server exception thrown when updating a local group fails. +#: classes/Local_group.php:42 +msgid "Could not update local group." +msgstr "ლოკალური ჯგუფის განახლება ვერ მოხერხდა." + +#. TRANS: Exception thrown when trying creating a login token failed. +#. TRANS: %s is the user nickname for which token creation failed. +#: classes/Login_token.php:78 +#, php-format +msgid "Could not create login token for %s" +msgstr "შესასვლელი ტოკენის შექმნა %s-სთვის ვერ მოხერხდა." + +#. TRANS: Exception thrown when database name or Data Source Name could not be found. +#: classes/Memcached_DataObject.php:533 +msgid "No database name or DSN found anywhere." +msgstr "ბაზის სახელი ან DSN ვერსად ვერ მოიძებნა." + +#. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. +#: classes/Message.php:45 +msgid "You are banned from sending direct messages." +msgstr "თქვენ აგეკრძალათ პირდაპირი შეტყობინებების გაგზავნის უფლება." + +#. TRANS: Message given when a message could not be stored on the server. +#: classes/Message.php:69 +msgid "Could not insert message." +msgstr "შეტყობინების ჩასმა ვერ მოხერხდა." + +#. TRANS: Message given when a message could not be updated on the server. +#: classes/Message.php:80 +msgid "Could not update message with new URI." +msgstr "შეტყობინების ახალი URI-თ განახლება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when a user profile for a notice cannot be found. +#. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). +#: classes/Notice.php:98 +#, php-format +msgid "No such profile (%1$d) for notice (%2$d)." +msgstr "ასეთი პროფილი (%1$d) შეტყობინებისათვის (%2$d) არ არსებობს." + +#. TRANS: Server exception. %s are the error details. +#: classes/Notice.php:193 +#, php-format +msgid "Database error inserting hashtag: %s" +msgstr "ბაზის შეცდომა hashtag-ის ჩასმისას: %s" + +#. TRANS: Client exception thrown if a notice contains too many characters. +#: classes/Notice.php:270 +msgid "Problem saving notice. Too long." +msgstr "პრობლემა შეტყობინების შენახვისას. ძალიან გრძელია." + +#. TRANS: Client exception thrown when trying to save a notice for an unknown user. +#: classes/Notice.php:275 +msgid "Problem saving notice. Unknown user." +msgstr "პრობლემა შეტყობინების შენახვისას. მომხმარებელი უცნობია." + +#. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. +#: classes/Notice.php:281 +msgid "" +"Too many notices too fast; take a breather and post again in a few minutes." +msgstr "" +"ძალიან ბევრი შეტყობინება მოკლე დროში; ცოტა დაისვენეთ და რამდენიმე წუთში " +"კიდევ დაპოსტეთ." + +#. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. +#: classes/Notice.php:288 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" +"ძალიან ბევრი დუბლირებული შეტყობინებები მოკლე პერიოდში. ცოტა დაისვენეთ და " +"რამდენიმე წუთში ისევ დაპოსტეთ." + +#. TRANS: Client exception thrown when a user tries to post while being banned. +#: classes/Notice.php:296 +msgid "You are banned from posting notices on this site." +msgstr "თქვენ აგეკრძალათ ამ საიტზე შეტყობინებების დაპოსტვა." + +#. TRANS: Server exception thrown when a notice cannot be saved. +#. TRANS: Server exception thrown when a notice cannot be updated. +#: classes/Notice.php:363 classes/Notice.php:390 +msgid "Problem saving notice." +msgstr "პრობლემა შეტყობინების შენახვისას." + +#. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "saveKnownGroups-სათვის არასწორი ტიპია მოწოდებული" + +#. TRANS: Server exception thrown when an update for a group inbox fails. +#: classes/Notice.php:1012 +msgid "Problem saving group inbox." +msgstr "პრობლემა ჯგუფის ინდექსის შენახვისას." + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "ჯგუფის ლოკალური ინფორმაციის დამახსოვრება ვერ მოხერხდა." + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: classes/Notice.php:1645 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:798 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." +msgstr "" +"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; არ არსებობს." + +#. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. +#. TRANS: %1$s is the role name, %2$s is the user ID (number). +#: classes/Profile.php:807 +#, php-format +msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." +msgstr "" +"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; მონაცემთა ბაზის " +"შეცდომა." + +#. TRANS: Exception thrown when a right for a non-existing user profile is checked. +#: classes/Remote_profile.php:54 +msgid "Missing profile." +msgstr "პროფილი არ არსებობს." + +#. TRANS: Exception thrown when a tag cannot be saved. +#: classes/Status_network.php:338 +msgid "Unable to save tag." +msgstr "სანიშნეს დამახსოვრება ვერ ხერხდება." + +#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. +#: classes/Subscription.php:77 lib/oauthstore.php:482 +msgid "You have been banned from subscribing." +msgstr "თქვენ აგეკრძალათ გამოწერა." + +#. TRANS: Exception thrown when trying to subscribe while already subscribed. +#: classes/Subscription.php:82 +msgid "Already subscribed!" +msgstr "უკვე გამოწერილია!" + +#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. +#: classes/Subscription.php:87 +msgid "User has blocked you." +msgstr "მომხმარებელმა დაგბლოკათ." + +#. TRANS: Exception thrown when trying to unsibscribe without a subscription. +#: classes/Subscription.php:176 +msgid "Not subscribed!" +msgstr "არ გაქვთ გამოწერილი!" + +#. TRANS: Exception thrown when trying to unsubscribe a user from themselves. +#: classes/Subscription.php:183 +msgid "Could not delete self-subscription." +msgstr "საკუთარი გამოწერის წაშლა ვერ ხერხდება." + +#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. +#: classes/Subscription.php:211 +msgid "Could not delete subscription OMB token." +msgstr "გამოწერის წაშლა ვერ მოხერხდა. 0მბ-იანი ტოკენი" + +#. TRANS: Exception thrown when a subscription could not be deleted on the server. +#: classes/Subscription.php:223 +msgid "Could not delete subscription." +msgstr "გამოწერის წაშლა ვერ მოხერხდა." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე." + +#. TRANS: Notice given on user registration. +#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. +#: classes/User.php:395 +#, php-format +msgid "Welcome to %1$s, @%2$s!" +msgstr "გამარჯობა @%2$s, კეთილი იყოს თქვენი მობრძანება %1$s-ზე!" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "ერთი მომხმარებელი არ განსაზღვრულა ერთარედთი-მომხმარებლის რეჟიმისთვის." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + +#. TRANS: Server exception thrown when creating a group failed. +#: classes/User_group.php:511 +msgid "Could not create group." +msgstr "ჯგუფის შექმნა ვერ მოხერხდა." + +#. TRANS: Server exception thrown when updating a group URI failed. +#: classes/User_group.php:521 +msgid "Could not set group URI." +msgstr "ჯგუფის URI-ს მინიჭება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when setting group membership failed. +#: classes/User_group.php:544 +msgid "Could not set group membership." +msgstr "ჯგუფის წევრობის მინიჭება ვერ მოხერხდა." + +#. TRANS: Server exception thrown when saving local group information failed. +#: classes/User_group.php:559 +msgid "Could not save local group info." +msgstr "ჯგუფის ლოკალური ინფორმაციის დამახსოვრება ვერ მოხერხდა." + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:104 +msgid "Change your profile settings" +msgstr "შეცვალე პროფილის პარამეტრები" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:111 +msgid "Upload an avatar" +msgstr "ატვირთე ავატარი" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:118 +msgid "Change your password" +msgstr "შეცვალე პაროლი" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:125 +msgid "Change email handling" +msgstr "ელ. ფოსტის მართვა" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:132 +msgid "Design your profile" +msgstr "პროფილის პარამეტრები" + +#. TRANS: Link title attribute in user account settings menu. +#: lib/accountsettingsaction.php:139 +msgid "Other options" +msgstr "სხვა ოფციები" + +#. TRANS: Link description in user account settings menu. +#: lib/accountsettingsaction.php:141 +msgid "Other" +msgstr "სხვა" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: lib/action.php:148 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" + +#. TRANS: Page title for a page without a title set. +#: lib/action.php:164 +msgid "Untitled page" +msgstr "უსათაურო გვერდი" + +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +msgid "Primary site navigation" +msgstr "საიტის ძირითადი ნავიგაცია" + +#. TRANS: Tooltip for main menu option "Personal" +#: lib/action.php:537 +msgctxt "TOOLTIP" +msgid "Personal profile and friends timeline" +msgstr "პირადი პროფილი და მეგობრების ნაკადი" + +#. TRANS: Main menu option when logged in for access to personal profile and friends timeline +#: lib/action.php:540 +msgctxt "MENU" +msgid "Personal" +msgstr "პირადი" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:542 +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "შეცვალე ელ. ფოსტა, ავატარი, პაროლი, პროფილი" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "ანგარიში" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:547 +msgctxt "TOOLTIP" +msgid "Connect to services" +msgstr "სერვისებთან დაკავშირება" + +#. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services +#: lib/action.php:550 +msgid "Connect" +msgstr "კავშირი" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:553 +msgctxt "TOOLTIP" +msgid "Change site configuration" +msgstr "საიტის კონფიგურაცია" + +#. TRANS: Main menu option when logged in and site admin for access to site configuration +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 +msgctxt "MENU" +msgid "Admin" +msgstr "ადმინი" + +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:560 +#, php-format +msgctxt "TOOLTIP" +msgid "Invite friends and colleagues to join you on %s" +msgstr "მოიწვიე მეგობრები და კოლეგები %s-ზე" + +#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users +#: lib/action.php:563 +msgctxt "MENU" +msgid "Invite" +msgstr "მოწვევა" + +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:569 +msgctxt "TOOLTIP" +msgid "Logout from the site" +msgstr "გასვლა საიტიდან" + +#. TRANS: Main menu option when logged in to log out the current user +#: lib/action.php:572 +msgctxt "MENU" +msgid "Logout" +msgstr "გასვლა" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:577 +msgctxt "TOOLTIP" +msgid "Create an account" +msgstr "გახსენი ანგარიში" + +#. TRANS: Main menu option when not logged in to register a new account +#: lib/action.php:580 +msgctxt "MENU" +msgid "Register" +msgstr "რეგისტრაცია" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:583 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "საიტზე შესვლა" + +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 +msgctxt "MENU" +msgid "Login" +msgstr "შესვლა" + +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:589 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "დამეხმარეთ!" + +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 +msgctxt "MENU" +msgid "Help" +msgstr "დახმარება" + +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:595 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "მოძებნე ხალხი ან ტექსტი" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 +msgctxt "MENU" +msgid "Search" +msgstr "ძიება" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#. TRANS: Menu item for site administration +#: lib/action.php:620 lib/adminpanelaction.php:387 +msgid "Site notice" +msgstr "საიტის შეტყობინება" + +#. TRANS: DT element for local views block. String is hidden in default CSS. +#: lib/action.php:687 +msgid "Local views" +msgstr "ლოკალური ხედები" + +#. TRANS: DT element for page notice. String is hidden in default CSS. +#: lib/action.php:757 +msgid "Page notice" +msgstr "გვერდის შეტყობინება" + +#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. +#: lib/action.php:858 +msgid "Secondary site navigation" +msgstr "საიტის მეორადი ნავიგაცია" + +#. TRANS: Secondary navigation menu option leading to help on StatusNet. +#: lib/action.php:864 +msgid "Help" +msgstr "დახმარება" + +#. TRANS: Secondary navigation menu option leading to text about StatusNet site. +#: lib/action.php:867 +msgid "About" +msgstr "საიტის შესახებ" + +#. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. +#: lib/action.php:870 +msgid "FAQ" +msgstr "ხდკ" + +#. TRANS: Secondary navigation menu option leading to Terms of Service. +#: lib/action.php:875 +msgid "TOS" +msgstr "მპ" + +#. TRANS: Secondary navigation menu option leading to privacy policy. +#: lib/action.php:879 +msgid "Privacy" +msgstr "პირადი" + +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 +msgid "Source" +msgstr "წყარო" + +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 +msgid "Contact" +msgstr "კონტაქტი" + +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 +msgid "Badge" +msgstr "იარლიყი" + +#. TRANS: DT element for StatusNet software license. +#: lib/action.php:921 +msgid "StatusNet software license" +msgstr "StatusNet კოდის ლიცენზია" + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 +#, php-format +msgid "" +"**%%site.name%%** is a microblogging service brought to you by [%%site." +"broughtby%%](%%site.broughtbyurl%%)." +msgstr "" +"**%%site.name%%** არის მიკრობლოგინგის სერვისი მოწოდებული [%%site.broughtby%%]" +"(%%site.broughtbyurl%%)-ს მიერ." + +#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. +#: lib/action.php:931 +#, php-format +msgid "**%%site.name%%** is a microblogging service." +msgstr "**%%site.name%%** არის მიკრობლოგინგის სერვისი." + +#. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 +#, php-format +msgid "" +"It runs the [StatusNet](http://status.net/) microblogging software, version %" +"s, available under the [GNU Affero General Public License](http://www.fsf." +"org/licensing/licenses/agpl-3.0.html)." +msgstr "" +"ის მუშაობს [StatusNet](http://status.net/) მიკრობლოგინგის კოდზე, ვერსია %s, " +"რომელიც ხელმისაწვდომია [GNU Affero ძირითადი საჯარო ლიცენზიით](http://www.fsf." +"org/licensing/licenses/agpl-3.0.html)." + +#. TRANS: DT element for StatusNet site content license. +#: lib/action.php:954 +msgid "Site content license" +msgstr "საიტის შიგთავსის ლიცენზია" + +#. TRANS: Content license displayed when license is set to 'private'. +#. TRANS: %1$s is the site name. +#: lib/action.php:961 +#, php-format +msgid "Content and data of %1$s are private and confidential." +msgstr "%1$s ის შიგთავსი და მონაცემები არის პირადული და კონფიდენციალური." + +#. TRANS: Content license displayed when license is set to 'allrightsreserved'. +#. TRANS: %1$s is the copyright owner. +#: lib/action.php:968 +#, php-format +msgid "Content and data copyright by %1$s. All rights reserved." +msgstr "შიგთავსი და მონაცემები %1$s-ის საკუთრებაა. ყველა უფლება დაცულია." + +#. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. +#: lib/action.php:972 +msgid "Content and data copyright by contributors. All rights reserved." +msgstr "" +"შიგთავსი და მონაცემები წვლილის შემტანების საკუთრებაა. ყველა უფლება დაცულია." + +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 +#, php-format +msgid "All %1$s content and data are available under the %2$s license." +msgstr "%1$s-ს მთლიანი შიგთავსი და მონაცემები ხელმისაწვდომია %2$s ლიცენზიით." + +#. TRANS: DT element for pagination (previous/next, etc.). +#: lib/action.php:1340 +msgid "Pagination" +msgstr "გვერდებათ დაყოფა" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: present than the currently displayed information. +#: lib/action.php:1351 +msgid "After" +msgstr "შემდეგი" + +#. TRANS: Pagination message to go to a page displaying information more in the +#. TRANS: past than the currently displayed information. +#: lib/action.php:1361 +msgid "Before" +msgstr "წინა" + +#. TRANS: Client exception thrown when a feed instance is a DOMDocument. +#: lib/activity.php:125 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "" + +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "ფოტო" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 +msgid "Can't handle remote content yet." +msgstr "ჯერჯერობით ვერ ვამუშავებ დაშორებულ შიგთავსს." + +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 +msgid "Can't handle embedded XML content yet." +msgstr "" + +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 +msgid "Can't handle embedded Base64 content yet." +msgstr "" + +#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. +#: lib/adminpanelaction.php:96 +msgid "You cannot make changes to this site." +msgstr "თქვენ არ გაქვთ ამ საიტზე ცვლილებების შეტანის უფლება." + +#. TRANS: Client error message throw when a certain panel's settings cannot be changed. +#: lib/adminpanelaction.php:108 +msgid "Changes to that panel are not allowed." +msgstr "ამ პანელის ცვლილებები არ არის დაშვებული." + +#. TRANS: Client error message. +#: lib/adminpanelaction.php:222 +msgid "showForm() not implemented." +msgstr "showForm() არ არის განხორციელებული." + +#. TRANS: Client error message +#: lib/adminpanelaction.php:250 +msgid "saveSettings() not implemented." +msgstr "saveSettings() არ არის განხორციელებული." + +#. TRANS: Client error message thrown if design settings could not be deleted in +#. TRANS: the admin panel Design. +#: lib/adminpanelaction.php:274 +msgid "Unable to delete design setting." +msgstr "დიზაინის პარამეტრების წაშლა ვერ ხერხდება." + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:337 +msgid "Basic site configuration" +msgstr "საიტის ძირითადი კონფიგურაცია" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:339 +msgctxt "MENU" +msgid "Site" +msgstr "საიტი" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:345 +msgid "Design configuration" +msgstr "დიზაინის კონფიგურაცია" + +#. TRANS: Menu item for site administration +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 +msgctxt "MENU" +msgid "Design" +msgstr "დიზაინი" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:353 +msgid "User configuration" +msgstr "მომხმარებლის კონფიგურაცია" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 +msgid "User" +msgstr "მომხმარებელი" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:361 +msgid "Access configuration" +msgstr "შესვლის კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:369 +msgid "Paths configuration" +msgstr "გზების კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:377 +msgid "Sessions configuration" +msgstr "სესიების კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:385 +msgid "Edit site notice" +msgstr "საიტის შეტყობინების რედაქტირება" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:393 +msgid "Snapshots configuration" +msgstr "წინა ვერსიების კონფიგურაცია" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + +#. TRANS: Client error 401. +#: lib/apiauth.php:111 +msgid "API resource requires read-write access, but you only have read access." +msgstr "" +"API რესურსი მოითხოვს ჩაწერა-წაკითხვის წვდომას, მაგრამ თვენ მხოლოდ წაკითხვის " +"უფლება გაქვთ." + +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "ჯგუფის შექმნა ვერ მოხერხდა." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "აპლიკაციის შექმნა ვერ მოხერხდა." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "შეტყობინების ჩასმა ვერ მოხერხდა." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "ბაზამ დაუშვა შეცდომა OAuth აპლიკაციის მომხმარებლის ჩასმისას." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:178 +msgid "Icon for this application" +msgstr "ამ აპლიკაციის ხატულა" + +#. TRANS: Form input field instructions. +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "აღწერეთ თქვენი აპლიკაცია %d სიმბოლოთი" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:205 +msgid "Describe your application" +msgstr "აღწერეთ თქვენი აპლიკაცია" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:216 +msgid "URL of the homepage of this application" +msgstr "აპლიკაციის საწყისი გვერდის URL" + +#. TRANS: Form input field label. +#: lib/applicationeditform.php:218 +msgid "Source URL" +msgstr "წყაროს URL" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:225 +msgid "Organization responsible for this application" +msgstr "ამ აპლიკაციაზე პასუხისმგებელი ორგანიზაცია" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:234 +msgid "URL for the homepage of the organization" +msgstr "ორგანიზაციის საწყისი გვერდის URL" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:243 +msgid "URL to redirect to after authentication" +msgstr "ავტორიზაციის შემდეგ გადასამისამართებელი URL" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:271 +msgid "Browser" +msgstr "ბროუზერი" + +#. TRANS: Radio button label for application type +#: lib/applicationeditform.php:288 +msgid "Desktop" +msgstr "ინსტალირებადი" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:290 +msgid "Type of application, browser or desktop" +msgstr "აპლიკაციის ტიპი, ბროუზერისთვის ან ინსტალირებადი" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:314 +msgid "Read-only" +msgstr "მხოლოდ წაკითხვადი" + +#. TRANS: Radio button label for access type. +#: lib/applicationeditform.php:334 +msgid "Read-write" +msgstr "კიტხვა-წერადი" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:336 +msgid "Default access for this application: read-only, or read-write" +msgstr "" +"შესვლის პირვანდელი მდგომარეობა ამ აპლიკაციისთვის: მხოლოდ წაკითხვადი, ან " +"კითხვა-წერადი" + +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 +msgid "Cancel" +msgstr "გაუქმება" + +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + +#. TRANS: Application access type +#: lib/applicationlist.php:260 +msgid "read-write" +msgstr "კიტხვა-წერადი" + +#. TRANS: Application access type +#: lib/applicationlist.php:262 +msgid "read-only" +msgstr "მხოლოდ წაკითხვადი" + +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 +#, php-format +msgid "Approved %1$s - \"%2$s\" access." +msgstr "დამტკიცებულია %1$s - \"%2$s\" შესვლა" + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + +#. TRANS: Button label +#: lib/applicationlist.php:298 +msgctxt "BUTTON" +msgid "Revoke" +msgstr "უკუგება" + +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:294 +msgid "Author" +msgstr "ავტორი" + +#. TRANS: DT element label in attachment list item. +#: lib/attachmentlist.php:308 +msgid "Provider" +msgstr "მომწოდებელი" + +#. TRANS: Title. +#: lib/attachmentnoticesection.php:67 +msgid "Notices where this attachment appears" +msgstr "შეტყობინებები სადაც ეს მიმაგრება გამოჩენილა" + +#. TRANS: Title. +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "ამ მიმაგრების სანიშნეები" + +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." +msgstr "პაროლის ცვლილება ჩაიშალა" + +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." +msgstr "პაროლის ცვლილება არ არის ნებადართული" + +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "ბლოკირება" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 +msgid "Command results" +msgstr "ბრძანების შედეგები" + +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax შეცდომა" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 +msgid "Command complete" +msgstr "ბრძანება დასრულდა" + +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 +msgid "Command failed" +msgstr "ბრძანება ჩაიშალა" + +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "შეტყობინებები ამ ID-თ არ არსებობს." + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "მომხმარებელს არ გააჩნია ბოლო შეტყობინება." + +#. TRANS: Message given requesting a profile for a non-existing user. +#. TRANS: %s is the nickname of the user for which the profile could not be found. +#: lib/command.php:128 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "მომხმარებელი მეტსახელით %s ვერ მოიძებნა." + +#. TRANS: Message given getting a non-existing user. +#. TRANS: %s is the nickname of the user that could not be found. +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "ლოკალური მომხმარებელი მეტსახელით %s ვერ მოიძებნა." + +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 +msgid "Sorry, this command is not yet implemented." +msgstr "ბოდიში, ეს ბრძანება ჯერ არ არის განხორციელებული." + +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 +msgid "It does not make a lot of sense to nudge yourself!" +msgstr "" + +#. TRANS: Message given having nudged another user. +#. TRANS: %s is the nickname of the user that was nudged. +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "" + +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" +"გამოწერები: %1$s\n" +"გამომწერები: %2$s\n" +"შეტყობინებები: %3$s" + +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 +msgid "Notice marked as fave." +msgstr "შეტყობინება მონიშნულია რჩეულად." + +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "%1$s გაწევრიანდა ჯგუფში %2$s." + +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "%1$s-მა დატოვა ჯგუფი %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#. TRANS: Whois output. %s is the full name of the queried user. +#: lib/command.php:430 +#, php-format +msgid "Fullname: %s" +msgstr "სრული სახელი: %s" + +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format +msgid "Location: %s" +msgstr "მდებარეობა: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, php-format +msgid "Homepage: %s" +msgstr "გვერდი: %s" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:442 +#, php-format +msgid "About: %s" +msgstr "%s-ის შესახებ" + +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" +"%s დაშორებული პროფილია; პირდაპირი შეტყობინებების გაგზავნა მხოლოდ იგივე " +"სერვერზე მყოფ მომხმარებელთანაა შესააძლებელი." + +#. TRANS: Message given if content is too long. %1$sd is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ " +"გააგზავნეთ %2$d." + +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +msgid "Error sending direct message." +msgstr "შეცდომა პირდაპირი შეტყობინების გაგზავნისას." + +#. TRANS: Message given having repeated a notice from another user. +#. TRANS: %s is the name of the user for which the notice was repeated. +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "შეტყობინება %s-გან გამეორდა." + +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 +msgid "Error repeating notice." +msgstr "შეცდომა შეტყობინების გამეორებისას." + +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ " +"გააგზავნეთ %2$d." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "პასუხი %s-ს გაეგზავნა." + +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 +msgid "Error saving notice." +msgstr "შეცდომა შეტყობინების შენახვისას." + +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "მიუთითეთ მომხმარებლის სახელი, რომელსაც გინდათ ყური დაუგდოთ." + +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" + +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 +#, php-format +msgid "Subscribed to %s." +msgstr "%s-ს გამოწერა დასრულდა წარმატებით." + +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "მიუთითეთ მომხმარებლის სახელი, რომ გამოწერა გააუქმოთ." + +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "%s-ს გამოწერა გაუქმდა." + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +msgid "Command not yet implemented." +msgstr "ბრძანება ჯერ არ არის შემუშავებული." + +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +msgid "Notification off." +msgstr "" + +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 +msgid "Can't turn off notification." +msgstr "" + +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +msgid "Notification on." +msgstr "" + +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +msgid "Can't turn on notification." +msgstr "" + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "" + +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 +#, php-format +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "" + +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" + +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 +msgid "You are not subscribed to anyone." +msgstr "" + +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 +msgid "You are subscribed to this person:" +msgid_plural "You are subscribed to these people:" +msgstr[0] "" + +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 +msgid "No one is subscribed to you." +msgstr "" + +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 +msgid "This person is subscribed to you:" +msgid_plural "These people are subscribed to you:" +msgstr[0] "" + +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 +msgid "You are not a member of any groups." +msgstr "" + +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 +msgid "You are a member of this group:" +msgid_plural "You are a member of these groups:" +msgstr[0] "" + +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow <nickname> - 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 <nickname> - unsubscribe from user\n" +"d <nickname> <text> - direct message to user\n" +"get <nickname> - get last notice from user\n" +"whois <nickname> - get profile info on user\n" +"lose <nickname> - force user to stop following you\n" +"fav <nickname> - add user's last notice as a 'fave'\n" +"fav #<notice_id> - add notice with the given id as a 'fave'\n" +"repeat #<notice_id> - repeat a notice with a given id\n" +"repeat <nickname> - repeat the last notice from user\n" +"reply #<notice_id> - reply to notice with a given id\n" +"reply <nickname> - reply to the last notice from user\n" +"join <group> - join group\n" +"login - Get a link to login to the web interface\n" +"drop <group> - leave group\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub <nickname> - same as 'follow'\n" +"unsub <nickname> - same as 'leave'\n" +"last <nickname> - same as 'get'\n" +"on <nickname> - not yet implemented.\n" +"off <nickname> - not yet implemented.\n" +"nudge <nickname> - remind a user to update.\n" +"invite <phone number> - not yet implemented.\n" +"track <word> - not yet implemented.\n" +"untrack <word> - 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" +msgstr "" + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." +msgstr "კონფიგურაციის ფაილი ვერ მოიძებნა. " + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "კონფიგურაციის ფაილები შემდეგ ადგილებში ვეძებე: " + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 +msgid "You may wish to run the installer to fix this." +msgstr "თუ გინდათ ინსტალატორი გაუშვით ამის გასასწორებლად." + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 +msgid "Go to the installer." +msgstr "გადადი ამ ინსტალატორზე." + +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" +msgid "IM" +msgstr "IM" + +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 +msgid "Updates by instant messenger (IM)" +msgstr "განახლებები ჩათ კლიენტისგან (IM)" + +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 +msgid "Updates by SMS" +msgstr "განახლებები SMS-თ" + +#. TRANS: Menu item for OuAth connection settings. +#: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" +msgid "Connections" +msgstr "შეერთებები" + +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +msgid "Authorized connected applications" +msgstr "ავტორიზირებული შეერთებული აპლიკაციები" + +#: lib/dberroraction.php:59 +msgid "Database error" +msgstr "მონაცემთა ბაზის შეცდომა" + +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 +msgid "Upload file" +msgstr "ფაილის ატვირთვა" + +#. TRANS: Instructions for form on profile design page. +#: lib/designsettings.php:109 +msgid "" +"You can upload your personal background image. The maximum file size is 2MB." +msgstr "" +"თქვენ შეგიძლიათ ატვირთოთ პერსონალური ფონური სურათი. ფაილის დასაშვები ზომაა " +"2მბ." + +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "ჩართვა" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "გამორთვა" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "გადაყენება" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +msgid "Design defaults restored." +msgstr "დიზაინის პირველადი პარამეტრები დაბრუნებულია." + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 +msgid "Disfavor this notice" +msgstr "ამოშალე რჩეულებიდან ეს შეტყობინება" + +#: lib/favorform.php:114 lib/favorform.php:143 +msgid "Favor this notice" +msgstr "ჩაამატე რჩეულებში ეს შეტყობინება" + +#: lib/feed.php:84 +msgid "RSS 1.0" +msgstr "RSS 1.0" + +#: lib/feed.php:86 +msgid "RSS 2.0" +msgstr "RSS 2.0" + +#: lib/feed.php:88 +msgid "Atom" +msgstr "Atom" + +#: lib/feed.php:90 +msgid "FOAF" +msgstr "FOAF" + +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" + +#: lib/galleryaction.php:121 +msgid "Filter tags" +msgstr "სანიშნეების გაფილტვრა" + +#: lib/galleryaction.php:131 +msgid "All" +msgstr "ყველა" + +#: lib/galleryaction.php:139 +msgid "Select tag to filter" +msgstr "აირჩიე გასაფილტრი სანიშნე" + +#: lib/galleryaction.php:140 +msgid "Tag" +msgstr "სანიშნე" + +#: lib/galleryaction.php:141 +msgid "Choose a tag to narrow list" +msgstr "სიის გასაფილტრად აირჩიე სანიშნე" + +#: lib/galleryaction.php:143 +msgid "Go" +msgstr "წინ" + +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "მიანიჭე ამ მომხმარებელს \"%s\" როლი" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1–64 პატარა ასოები ან ციფრები. პუნქტუაციები ან სივრცეები დაუშვებელია" + +#: lib/groupeditform.php:163 +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." +msgstr "საწყისი გვერდის URL, ან ჯგუფის/თემის ბლოგი" + +#: lib/groupeditform.php:168 +msgid "Describe the group or topic" +msgstr "აღწერე ჯგუფი ან თემა" + +#: lib/groupeditform.php:170 +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "არწერე ჯგუფი ან თემა %d სიმბოლოთი" + +#: lib/groupeditform.php:182 +#, fuzzy +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "" +"ჯგუფის მდებარეობა არსებობის შემთხვევაში. მაგ.: \"ქალაქი, ქვეყანა (ან რეგიონი)" +"\"" + +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"ჯგუფის დამატებითი მეტსახელები. გამოყავით მძიმით ან სივრცით. მაქსიმუმ %d " +"სიმბოლო" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. +#: lib/groupsbymemberssection.php:71 +msgid "Groups with most members" +msgstr "ჯგუფები უმეტესი მომხმარებლებით" + +#. TRANS: Title for groups with the most posts section. +#: lib/groupsbypostssection.php:71 +msgid "Groups with most posts" +msgstr "ჯგუფები უმეტესი პოსტებით" + +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 +#, php-format +msgid "Tags in %s group's notices" +msgstr "%s ჯგუფის შეტყობინებებში გამოყენებული სანიშნეები" + +#. TRANS: Client exception 406 +#: lib/htmloutputter.php:104 +msgid "This page is not available in a media type you accept" +msgstr "ეს გვერდი მიუწვდომელია იმ მედია ფორმატში რომელსაც თქვენ იღებთ" + +#: lib/imagefile.php:72 +msgid "Unsupported image file format." +msgstr "სურათის ფორმატი მხარდაჭერილი არ არის." + +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "ეს ფაილი ძალიან დიდია. ფაილის მაქს. ზომაა %s." + +#: lib/imagefile.php:95 +msgid "Partial upload." +msgstr "ნაწილობრივი ატვირთვა." + +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 +msgid "System error uploading file." +msgstr "სისტემური შეცდომა ფაილის ატვირთვისას." + +#: lib/imagefile.php:111 +msgid "Not an image or corrupt file." +msgstr "სურათი არ არის, ან ფაილი დაზიანებულია." + +#: lib/imagefile.php:160 +msgid "Lost our file." +msgstr "ფაილი დაიკარგა." + +#: lib/imagefile.php:197 lib/imagefile.php:237 +msgid "Unknown file type" +msgstr "ფაილის ტიპი უცნობია" + +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "მბ" + +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "კბ" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" + +#: lib/jabber.php:387 +#, php-format +msgid "[%s]" +msgstr "[%s]" + +#: lib/jabber.php:567 +#, php-format +msgid "Unknown inbox source %d." +msgstr "" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "დატოვება" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "შედი მომხ. სახელით და პაროლით." + +#: lib/logingroupnav.php:86 +msgid "Sign up for a new account" +msgstr "ახალი ანგარიშის გერისტრაცია" + +#. TRANS: Subject for address confirmation email. +#: lib/mail.php:174 +msgid "Email address confirmation" +msgstr "ელ. ფოსტის მისამართის დადასტურება" + +#. TRANS: Body for address confirmation email. +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format +msgid "" +"Hey, %1$s.\n" +"\n" +"Someone just entered this email address on %2$s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%3$s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%2$s\n" +msgstr "" +"გამარჯობა %s.\n" +"\n" +"ვიღაცამ ეხლახანს ეს ელ. ფოსტის მისამართი %s-ზე შეიყვანა.\n" +"\n" +"თუ ეს თქვენ იყავით, მაშინ დასადასტურებლად მიფყევით ამ ბმულს:\n" +"\n" +"%s\n" +"\n" +"თუ არა, უბრალოდ არ მიაქციოთ ამ წერილს ყურადღება.\n" +"\n" +"გმადლობთ რომ დრო დაგვითმეთ,\n" +"%s\n" + +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 +#, php-format +msgid "%1$s is now listening to your notices on %2$s." +msgstr "%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე." + +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 +#, php-format +msgid "" +"If you believe this account is being used abusively, you can block them from " +"your subscribers list and report as spam to site administrators at %s" +msgstr "" +"ტუ თქვენ გგონიათ, რომ ეს ანგარიში არაკეთილსინგისიერად გამოიყენება, შეგიძლიათ " +"დაბლოკოთ ის თქვნი გამომწერებიდან და უჩივლოთ მას საიტის ადმინისტრაციასთან აქ %" +"s" + +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%2$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %7$s\n" +msgstr "" +"%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე.\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"პატივისცემით,\n" +"%7$s.\n" +"\n" +"----\n" +"შეცვალეთ თქვენი ელ. ფოსტის მისამართი ან შეტყობინებების პარამეტრები აქ %8$s\n" + +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format +msgid "Bio: %s" +msgstr "ბიოგრაფია: %s" + +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, php-format +msgid "New email address for posting to %s" +msgstr "%s-ზე დასაპოსტი ახალი ელ. ფოსტის მისამართი" + +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format +msgid "" +"You have a new posting address on %1$s.\n" +"\n" +"Send email to %2$s to post new messages.\n" +"\n" +"More email instructions at %3$s.\n" +"\n" +"Faithfully yours,\n" +"%1$s" +msgstr "" +"თქვენ ახალი დასაპოსტი ელ. ფოსტის მისამართი გაქვთ %1$s-ზე.\n" +"\n" +"გააგზავნეთ ელ. წერილი %2$s-ზე, რომ დაპოსტოთ ახალი შეტყობინებები.\n" +"\n" +"მეტი ინსტრუქციები ელ. ფოსტის შესახებ აქ %3$s.\n" +"\n" +"პატივისცემით,\n" +"%4$s" + +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 +#, php-format +msgid "%s status" +msgstr "%s სტატუსი" + +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 +msgid "SMS confirmation" +msgstr "SMS დადასტურება" + +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 +#, php-format +msgid "%s: confirm you own this phone number with this code:" +msgstr "" +"%s: დაადასტურეთ, რომ ეს მობილურის ნომერი მართლაც თქვენია ამ კოდის მეშვეობით:" + +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 +#, php-format +msgid "You've been nudged by %s" +msgstr "" + +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 +#, 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" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"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" + +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 +#, php-format +msgid "New private message from %s" +msgstr "ახალი პირადი შეტყობინება %s-სგან" + +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"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" + +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%s-მა (@%s) დაამატა თქვენი შეტყობინება თავის რჩეულებში" + +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 +#, php-format +msgid "" +"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" +"\n" +"The URL of your notice is:\n" +"\n" +"%3$s\n" +"\n" +"The text of your notice is:\n" +"\n" +"%4$s\n" +"\n" +"You can see the list of %1$s's favorites here:\n" +"\n" +"%5$s\n" +"\n" +"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" + +#. TRANS: Line in @-reply notification e-mail. %s is conversation URL. +#: lib/mail.php:672 +#, php-format +msgid "" +"The full conversation can be read here:\n" +"\n" +"\t%s" +msgstr "" +"მთლიანი საუბრის წაკითხვა შესაძლებელია აქ:\n" +"\n" +"%s" + +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%s-მა (@%s) გამოაგზავნა შეტყობინება თქვენს საყურადღებოდ" + +#. TRANS: Body of @-reply notification e-mail. +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 +#, php-format +msgid "" +"%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" +"\n" +"The notice is here:\n" +"\n" +"\t%3$s\n" +"\n" +"It reads:\n" +"\n" +"\t%4$s\n" +"\n" +"%5$sYou can reply back here:\n" +"\n" +"\t%6$s\n" +"\n" +"The list of all @-replies for you here:\n" +"\n" +"%7$s\n" +"\n" +"Faithfully yours,\n" +"%2$s\n" +"\n" +"P.S. You can turn off these email notifications here: %8$s\n" +msgstr "" + +#: lib/mailbox.php:89 +msgid "Only the user can read their own mailboxes." +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:228 lib/noticelist.php:521 +msgid "from" +msgstr "ვისგან" + +#: lib/mailhandler.php:37 +msgid "Could not parse message." +msgstr "შეტყობინების გაცრა (გა-parse-ვა) ვერ მოხერხდა." + +#: lib/mailhandler.php:42 +msgid "Not a registered user." +msgstr "მომხმარებელი რეგისტრირებული არ არის." + +#: lib/mailhandler.php:46 +msgid "Sorry, that is not your incoming email address." +msgstr "" +"ბოდიში, მაგრამ ეს არ არის თქვენი რეგისტრირებული შემომავალი ელ. ფოსტის " +"მისამართი." + +#: lib/mailhandler.php:50 +msgid "Sorry, no incoming email allowed." +msgstr "ბოდიში, შემომავალი ელ. ფოსტის მისამართი არ არის დაშვებული." + +#: lib/mailhandler.php:229 +#, php-format +msgid "Unsupported message type: %s" +msgstr "შეტყობინების ტიპი არ არის მხარდაჭერილი: %s" + +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 +msgid "There was a database error while saving your file. Please try again." +msgstr "ფაილის შენახვისას მოხდა მონაცემთა ბაზის შეცდომა. გთხოვთ კიდევ სცადოთ." + +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 +msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." +msgstr "" +"ასატვირთი ფაილი სცდება ფაილის დაშვებულ ზომას. upload_max_filesize დირექტივა " +"php.ini-ში." + +#. TRANS: Client exception. +#: lib/mediafile.php:200 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form." +msgstr "" +"ასატვირთი ფაილი სცდება MAX_FILE_SIZE დირექტივას, რომელიც მითითებული იყო HTML " +"ფორმაში." + +#. TRANS: Client exception. +#: lib/mediafile.php:206 +msgid "The uploaded file was only partially uploaded." +msgstr "ასატვირთი ფაილი მხოლოდ ნაწილობრივ აიტვირთა." + +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 +msgid "Missing a temporary folder." +msgstr "დროებითი საქაღალდე ვერ მოიძებნა." + +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 +msgid "Failed to write file to disk." +msgstr "ფაილის დისკზე ჩაწერა ვერ მოხერხდა." + +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 +msgid "File upload stopped by extension." +msgstr "ფაილის არვირთვა გაჩერდა გაფართოების გამო." + +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 +msgid "File exceeds user's quota." +msgstr "ფაილი სცდება მომხმარებლის კვოტას." + +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 +msgid "File could not be moved to destination directory." +msgstr "ფაილის გადატანა დანიშნულების დირექტორიაში ვერ მოხერხდა." + +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 +msgid "Could not determine file's MIME type." +msgstr "ფაილის MIME ტიპი ვერ დადგინდა." + +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 +#, php-format +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" + +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 +#, php-format +msgid "\"%s\" is not a supported file type on this server." +msgstr "" + +#: lib/messageform.php:120 +msgid "Send a direct notice" +msgstr "გააგზავნე პირდაპირი შეტყობინება" + +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "აირჩიეთ ოპერატორი" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "არ გაქვთ გამოწერილი!" + +#: lib/messageform.php:153 +msgid "To" +msgstr "ვის" + +#: lib/messageform.php:166 lib/noticeform.php:186 +msgid "Available characters" +msgstr "ხელმისაწვდომი სიმბოლოები" + +#: lib/messageform.php:185 lib/noticeform.php:237 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "გაგზავნა" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "მეტსახელში დასაშვებია მხოლოდ პატარა ასოები და ციფრები." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "შეტყობინების გაგზავნა" + +#: lib/noticeform.php:174 +#, php-format +msgid "What's up, %s?" +msgstr "რა არის ახალი %s?" + +#: lib/noticeform.php:193 +msgid "Attach" +msgstr "ფაილის მიმაგრება" + +#: lib/noticeform.php:197 +msgid "Attach a file" +msgstr "მიამაგრე ფაილი" + +#: lib/noticeform.php:213 +msgid "Share my location" +msgstr "გააზიარე ჩემი მდებარეობა" + +#: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "არ გააზიარო ჩემი მდებარეობა" + +#: lib/noticeform.php:217 +msgid "" +"Sorry, retrieving your geo location is taking longer than expected, please " +"try again later" +msgstr "" +"ბოდიში, როგორც ჩანს ადგილმდებარეობის დადგენას ჩვეულებრივზე მეტი ხანი " +"სჭირდება, გთხოვთ სცადოთ მოგვიანებით" + +#. TRANS: Used in coordinates as abbreviation of north +#: lib/noticelist.php:451 +msgid "N" +msgstr "ჩ" + +#. TRANS: Used in coordinates as abbreviation of south +#: lib/noticelist.php:453 +msgid "S" +msgstr "ს" + +#. TRANS: Used in coordinates as abbreviation of east +#: lib/noticelist.php:455 +msgid "E" +msgstr "ა" + +#. TRANS: Used in coordinates as abbreviation of west +#: lib/noticelist.php:457 +msgid "W" +msgstr "დ" + +#: lib/noticelist.php:459 +#, 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:468 +msgid "at" +msgstr "" + +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 +msgid "in context" +msgstr "" + +#: lib/noticelist.php:618 +msgid "Repeated by" +msgstr "" + +#: lib/noticelist.php:645 +msgid "Reply to this notice" +msgstr "უპასუხე ამ შეტყობინებას" + +#: lib/noticelist.php:646 +msgid "Reply" +msgstr "პასუხი" + +#: lib/noticelist.php:690 +msgid "Notice repeated" +msgstr "შეტყობინება გამეორებულია" + +#: lib/nudgeform.php:116 +msgid "Nudge this user" +msgstr "" + +#: lib/nudgeform.php:128 +msgid "Nudge" +msgstr "" + +#: lib/nudgeform.php:128 +msgid "Send a nudge to this user" +msgstr "" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" + +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" + +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" + +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" + +#: lib/oauthstore.php:507 +msgid "Couldn't insert new subscription." +msgstr "ახალი გამოწერის ჩასმა ვერ მოხერხდა." + +#: lib/personalgroupnav.php:102 +msgid "Personal" +msgstr "პირადი" + +#: lib/personalgroupnav.php:107 +msgid "Replies" +msgstr "პასუხები" + +#: lib/personalgroupnav.php:117 +msgid "Favorites" +msgstr "რჩეულები" + +#: lib/personalgroupnav.php:128 +msgid "Inbox" +msgstr "შემომავალი წერილების ყუთი" + +#: lib/personalgroupnav.php:129 +msgid "Your incoming messages" +msgstr "თქვენი შემომავალი შეტყობინებები" + +#: lib/personalgroupnav.php:133 +msgid "Outbox" +msgstr "გამავალი წერილების ყუთი" + +#: lib/personalgroupnav.php:134 +msgid "Your sent messages" +msgstr "თქვენი გაგზავნილი წერილები" + +#: lib/personaltagcloudsection.php:56 +#, php-format +msgid "Tags in %s's notices" +msgstr "%s-ს შეტყობინებებში გამოყენებული სანიშნეები" + +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 +msgid "Unknown" +msgstr "უცნობი" + +#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 +msgid "Subscriptions" +msgstr "გამოწერები" + +#: lib/profileaction.php:126 +msgid "All subscriptions" +msgstr "ყველა გამოწერა" + +#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 +msgid "Subscribers" +msgstr "გამომწერები" + +#: lib/profileaction.php:161 +msgid "All subscribers" +msgstr "ყველა გამომწერი" + +#: lib/profileaction.php:191 +msgid "User ID" +msgstr "მომხმარებლის იდ" + +#: lib/profileaction.php:196 +msgid "Member since" +msgstr "" + +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:235 +msgid "Daily average" +msgstr "დღიური საშუალო" + +#: lib/profileaction.php:264 +msgid "All groups" +msgstr "ყველა ჯგუფი" + +#: lib/profileformaction.php:123 +msgid "Unimplemented method." +msgstr "მეთოდი განუხორციელებელია." + +#: lib/publicgroupnav.php:78 +msgid "Public" +msgstr "საჯარო" + +#: lib/publicgroupnav.php:82 +msgid "User groups" +msgstr "" + +#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 +msgid "Recent tags" +msgstr "ბოლო სანიშნეები" + +#: lib/publicgroupnav.php:88 +msgid "Featured" +msgstr "" + +#: lib/publicgroupnav.php:92 +msgid "Popular" +msgstr "პოპულარული" + +#: lib/redirectingaction.php:95 +msgid "No return-to arguments." +msgstr "" + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "გავიმეორო ეს შეტყობინება?" + +#: lib/repeatform.php:132 +msgid "Yes" +msgstr "დიახ" + +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "შეტყობინების გამეორება" + +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "ჩამოართვი \"%s\" როლი ამ მომხმარებელს" + +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API მეთოდი ვერ მოიძებნა." + +#: lib/sandboxform.php:67 +msgid "Sandbox" +msgstr "" + +#: lib/sandboxform.php:78 +msgid "Sandbox this user" +msgstr "ამ მომხმარებლის იზოლირება" + +#. TRANS: Fieldset legend for the search form. +#: lib/searchaction.php:120 +msgid "Search site" +msgstr "ძიება საიტზე" + +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 +msgid "Keyword(s)" +msgstr "საკვანძო სიტყვები" + +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" +msgid "Search" +msgstr "" + +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 +msgid "Search help" +msgstr "ძიება დახმარებაში" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "ადამიანები" + +#: lib/searchgroupnav.php:81 +msgid "Find people on this site" +msgstr "მოძებნე ადამიანები ამ საიტზე" + +#: lib/searchgroupnav.php:83 +msgid "Find content of notices" +msgstr "მოძებნე შეტყობინებებში" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "მოძებნე ჯგუფები ამ საიტზე" + +#: lib/section.php:89 +msgid "Untitled section" +msgstr "უსათაურო სექცია" + +#: lib/section.php:106 +msgid "More..." +msgstr "მეტი..." + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "დადუმება" + +#: lib/silenceform.php:78 +msgid "Silence this user" +msgstr "ამ მომხმარებლის დადუმება" + +#: lib/subgroupnav.php:83 +#, php-format +msgid "People %s subscribes to" +msgstr "" + +#: lib/subgroupnav.php:91 +#, php-format +msgid "People subscribed to %s" +msgstr "" + +#: lib/subgroupnav.php:99 +#, php-format +msgid "Groups %s is a member of" +msgstr "" + +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "მოწვევა" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "მოიწვიე მეგობრები და კოლეგები %s-ზე" + +#: lib/subscriberspeopleselftagcloudsection.php:48 +#: lib/subscriptionspeopleselftagcloudsection.php:48 +msgid "People Tagcloud as self-tagged" +msgstr "მომხმარებლების სანიშნეების ღრუბელი (თვითმონიშნული)" + +#: lib/subscriberspeopletagcloudsection.php:48 +#: lib/subscriptionspeopletagcloudsection.php:48 +msgid "People Tagcloud as tagged" +msgstr "მომხმარებლების სანიშნეების ღრუბელი (როგორც სხვებმა მონიშნეს)" + +#: lib/tagcloudsection.php:56 +msgid "None" +msgstr "არაფერი" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "ფაილის არასწორი სახელი." + +#: lib/themeuploader.php:50 +msgid "This server cannot handle theme uploads without ZIP support." +msgstr "ამ სერვერს არ შეუძლია თემების ატვირთვა ZIP-ის მხარდაჭერის გარეშე." + +#: lib/themeuploader.php:58 lib/themeuploader.php:61 +msgid "The theme file is missing or the upload failed." +msgstr "თემის ფაილი არ არის, ან ატვირთვა ვერ მოხერხდა." + +#: lib/themeuploader.php:91 lib/themeuploader.php:102 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 +msgid "Failed saving theme." +msgstr "თემის შენახვა ჩაიშალა." + +#: lib/themeuploader.php:147 +msgid "Invalid theme: bad directory structure." +msgstr "არასწორი თემა: დირექტორიების არასწორი სტრუქტურა." + +#: lib/themeuploader.php:166 +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"ატვირთული თემა ძალიან დიდია; შეუკუმშავი უნდა იყოს %d ბაიტზე ნაკლები." + +#: lib/themeuploader.php:179 +msgid "Invalid theme archive: missing file css/display.css" +msgstr "თემის არასწორი არქივი: ფაილი css/display.css არ არის" + +#: lib/themeuploader.php:219 +msgid "" +"Theme contains invalid file or folder name. Stick with ASCII letters, " +"digits, underscore, and minus sign." +msgstr "" +"თემა შეიცავს ფაილის ან საქაღალდის არასწორ სახელს. გამოიყენეთ ASCII ასოები, " +"ციფრები, ქვედა ტირე, და მინუსის ნიშანი." + +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"თემა ფაილის გაფართოებების საშიშ სახელებს შეიცავს; შეიძლება არ იყოს უსაფრთხო." + +#: lib/themeuploader.php:242 +#, php-format +msgid "Theme contains file of type '.%s', which is not allowed." +msgstr "თემა შეიცავს ფაილის ტიპს '.%s', რომელიც აკრძალულია." + +#: lib/themeuploader.php:260 +msgid "Error opening theme archive." +msgstr "თემის არქივის გახსნისას მოხდა შეცდომა." + +#: lib/topposterssection.php:74 +msgid "Top posters" +msgstr "საუკეთესო მპოსტავები" + +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "ბლოკირების მოხსნა" + +#: lib/unsandboxform.php:69 +msgid "Unsandbox" +msgstr "იზოლირების მოხსნა" + +#: lib/unsandboxform.php:80 +msgid "Unsandbox this user" +msgstr "ამ მომხმარებლის იზოლირების მოხსნა" + +#: lib/unsilenceform.php:67 +msgid "Unsilence" +msgstr "დადუმების მოხსნა" + +#: lib/unsilenceform.php:78 +msgid "Unsilence this user" +msgstr "ამ მომხმარებლის დადუმების მოხსნა" + +#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +msgid "Unsubscribe from this user" +msgstr "ამ მომხმარებლის გამოწერის გაუქმება" + +#: lib/unsubscribeform.php:137 +msgid "Unsubscribe" +msgstr "გამოწერის გაუქმება" + +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "მომხმარებელს პროფილი არ გააჩნია." + +#: lib/userprofile.php:119 +msgid "Edit Avatar" +msgstr "ავატარის რედაქტირება" + +#: lib/userprofile.php:236 lib/userprofile.php:250 +msgid "User actions" +msgstr "მომხმარებლის მოქმედებები" + +#: lib/userprofile.php:239 +msgid "User deletion in progress..." +msgstr "მომხმარებლის წაშლა პროგრესშია..." + +#: lib/userprofile.php:265 +msgid "Edit profile settings" +msgstr "პროფილის პარამეტრების რედაქტირება" + +#: lib/userprofile.php:266 +msgid "Edit" +msgstr "რედაქტირება" + +#: lib/userprofile.php:289 +msgid "Send a direct message to this user" +msgstr "გაუგზავნე პირდაპირი შეტყობინება ამ მომხმარებელს" + +#: lib/userprofile.php:290 +msgid "Message" +msgstr "შეტყობინება" + +#: lib/userprofile.php:331 +msgid "Moderate" +msgstr "მოდერაცია" + +#: lib/userprofile.php:369 +msgid "User role" +msgstr "მომხმარებლის როლი" + +#: lib/userprofile.php:371 +msgctxt "role" +msgid "Administrator" +msgstr "ადმინისტრატორი" + +#: lib/userprofile.php:372 +msgctxt "role" +msgid "Moderator" +msgstr "მოდერატორი" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1306 +msgid "a few seconds ago" +msgstr "რამდენიმე წამის წინ" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1309 +msgid "about a minute ago" +msgstr "დაახლოებით 1 წუთის წინ" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1313 +#, php-format +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1316 +msgid "about an hour ago" +msgstr "დაახლოებით 1 საათის წინ" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1320 +#, php-format +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1323 +msgid "about a day ago" +msgstr "დაახლოებით 1 დღის წინ" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1327 +#, php-format +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1330 +msgid "about a month ago" +msgstr "დაახლოებით 1 თვის წინ" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1334 +#, php-format +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" + +#. TRANS: Used in notices to indicate when the notice was made compared to now. +#: lib/util.php:1337 +msgid "about a year ago" +msgstr "დაახლოებით 1 წლის წინ" + +#: lib/webcolor.php:80 +#, php-format +msgid "%s is not a valid color!" +msgstr "%s არ არის სწორი ფერი!" + +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "" +"%s არ არის სწორი ფერი! გამოიყენეთ 3 ან 6 სიმბოლოიანი თექვსმეტობითი ციფრი." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ " +"გააგზავნეთ %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "ზომა არასწორია." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "მომხმარებლის ID მითითებული არ არის." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 8ba2443a63..a93947898d 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -1,161 +1,202 @@ -# Translation of StatusNet to Korean +# Translation of StatusNet - Core to Korean (한국어) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Changwoo -# Author@translatewiki.net: Twkang +# Author: Brion +# Author: Changwoo +# Author: Twkang # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:12:37+0000\n" -"Language-Team: Korean\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:02+0000\n" +"Language-Team: Korean <http://translatewiki.net/wiki/Portal:ko>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "접근" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "사이트 접근 설정" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "등록" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "로그인하지 않은 익명 이용자의 사이트 보기 금지" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "비공개" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "초대받은 경우만 등록허용" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "초대 전용" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "신규회원등록 기능차단" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "폐쇄" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "접근 설정을 저장" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "저장" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "해당하는 페이지 없음" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "해당하는 이용자 없음" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%s 및 친구들, %d 페이지" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s 및 친구들" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s의 친구들에 대한 피드 (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s의 친구들에 대한 피드 (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s의 친구들에 대한 피드 (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "%s 및 친구들의 타임라인이지만, 아직 아무도 글을 작성하지 않았습니다." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -164,425 +205,626 @@ msgstr "" "더 많은 사람들을 구독해 보거나, [그룹에 참가](%%action.groups%%) 또는 직접 뭔" "가 글을 써보세요." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "당신 및 친구들" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "%2$s에 있는 %1$s 및 친구들의 업데이트!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API 메서드 발견 안 됨." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "이 메서드는 POST를 요구합니다." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "이용자를 업데이트 할 수 없습니다." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "이용자가 프로필을 가지고 있지 않습니다." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "프로필을 저장 할 수 없습니다." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" "현재 설정으로 인해 너무 많은 POST 데이터(%s 바이트)는 서버에서 처리할 수 없습" "니다." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "디자인 설정을 저장할 수 없습니다." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "디자인을 업데이트 할 수 없습니다." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s 타임라인" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s 구독" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "좋아하는 글들" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s 그룹 회원" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "자기 자신은 차단할 수 없습니다." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "이용자 차단에 실패했습니다." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "이용자 차단 해제에 실패했습니다." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "%s으로부터 직접 메시지" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "%s에서 보낸 모든 직접 메시지" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "%s에게 직접 메시지" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "%s에게 모든 직접 메시지" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "메시지 내용이 없습니다!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "너무 깁니다. 최대 메시지 길이는 %d자 까지입니다." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "너무 깁니다. 최대 메시지 길이는 %d자 까지입니다." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "받는 사용자가 없습니다." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "당신의 친구가 아닌 사용자에게 직접 메시지를 보낼 수 없습니다." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"자신에게 메시지를 보내지 마세요. 대신 조용하게 스스로에게 그것을 말하세요;;" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "그 ID로 발견된 상태가 없습니다." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "이 소식은 이미 관심소식으로 등록되어 있습니다." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "관심소식을 생성할 수 없습니다." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "이 소식은 관심소식이 아닙니다." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "관심소식을 삭제할 수 없습니다." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." msgstr "언팔로우할 수 없습니다: 이용자 없음." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "팔로우할 수 없습니다 : %s 님은 이미 리스트에 있습니다." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "언팔로우할 수 없습니다: 이용자 없음." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "자기 자신을 언팔로우할 수 없습니다." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." +msgstr "두 개의 사용자 ID나 대화명을 입력해야 합니다." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "소스 이용자를 확인할 수 없습니다." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "타겟 이용자를 찾을 수 없습니다." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"별명은 반드시 영소문자와 숫자로만 이루어져야 하며 스페이스의 사용이 불가 합니" -"다." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "유효한 별명이 아닙니다" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "홈페이지 주소형식이 올바르지 않습니다." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "설명이 너무 깁니다. (최대 %d 글자)" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "설명이 너무 깁니다. (최대 %d 글자)" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "위치가 너무 깁니다. (최대 255글자)" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "별명이 너무 많습니다! 최대 %d개." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "사용할 수 없는 별명 : \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "별명 \"%s\" 이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "찾을 수가 없습니다." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "당신은 이미 이 그룹의 멤버입니다." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 -#, fuzzy +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." -msgstr "귀하는 구독이 금지되었습니다." +msgstr "이미 차단된 이용자입니다." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s의 그룹" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s 사이트의 그룹에 %2$s 사용자가 멤버입니다." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s 그룹" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "%s 사이트의 그룹" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "실행 실패" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "허용되지 않는 요청입니다." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." -msgstr "옳지 않은 크기" +msgid "Invalid request token." +msgstr "토큰이 잘못되었습니다." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "당신은 이 프로필에 구독되지 않고있습니다." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "세션토큰에 문제가 있습니다. 다시 시도해주십시오." -#: actions/apioauthauthorize.php:135 -#, fuzzy +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "사용자 이름이나 비밀 번호가 틀렸습니다." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "OAuth 응용프로그램 사용자 삭제 중 데이터베이스 오류" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "OAuth 응용 프로그램 사용자 추가 중 데이터베이스 오류" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "잘못된 폼 제출" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "응용 프로그램이 계정에 연결하려고 할 것입니다." -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "접근 허용 또는 거부" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"<strong>%2$s</strong>의 응용 프로그램 <strong>%1$s</strong>이 %4$s 계정 정보" +"에 대해 <strong>%3$s</strong> 할 수 있습니다 .믿을 수 있는 써드파티에게만 %4" +"$s 계정의 접근을 허용해야 합니다." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -593,242 +835,624 @@ msgstr "" "에 대해 <strong>%3$s</strong> 할 수 있습니다 .믿을 수 있는 써드파티에게만 %4" "$s 계정의 접근을 허용해야 합니다." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "계정" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "별명" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "비밀 번호" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "거부" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "취소" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "허용" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "계정 정보에 대한 접근을 허용 또는 거부합니다." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "확인 코드가 없습니다." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "당신은 이 프로필에 구독되지 않고있습니다." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "당신은 이 프로필에 구독되지 않고있습니다." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "이 메서드는 POST 또는 DELETE를 요구합니다." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "당신은 다른 사용자의 상태를 삭제하지 않아도 된다." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "그러한 통지는 없습니다." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "자기 자신의 소식은 재전송할 수 없습니다." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "이미 재전송된 소식입니다." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API 메서드 발견 안 됨." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "지원하지 않는 형식입니다." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "삭제된 소식입니다." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "발견된 ID의 상태가 없습니다." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "이 통지를 지울 수 없습니다." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "통지 삭제" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "너무 깁니다. 통지의 최대 길이는 %d 글자 입니다." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "너무 깁니다. 통지의 최대 길이는 %d 글자 입니다." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "찾을 수가 없습니다." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API 메서드 발견 안 됨." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "소식의 최대 길이는 첨부 URL을 포함하여 %d 글자입니다." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "소식의 최대 길이는 첨부 URL을 포함하여 %d 글자입니다." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "지원하지 않는 형식입니다." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s의 상태 (%2$s에서)" +msgstr "%s / %s의 좋아하는 글" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s님이 %2$s/%3$s의 업데이트에 답변했습니다." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "그룹을 업데이트 할 수 없습니다." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s의 상태 (%2$s에서)" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s님이 %2$s/%3$s의 업데이트에 답변했습니다." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s 공개 타임라인" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "모두로부터의 업데이트 %s개!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "명령이 아직 실행되지 않았습니다." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "%s에 답신" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "%s에 답신" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s 태그된 통지" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "오직 해당 사용자만 자신의 메일박스를 열람할 수 있습니다." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "통지들의 내용 찾기" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "해당 id의 프로필이 없습니다." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API 메서드를 구성중 입니다." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API 메서드 발견 안 됨." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "해당하는 파일이 없습니다." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "예약 구독을 추가 할 수 없습니다." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "통지들의 내용 찾기" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "알려지지 않은 행동" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "좋아하는 게시글로 추가하기" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "해당하는 파일이 없습니다." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s 그룹 회원" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%s 사용자가 멤버인 그룹" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "알려지지 않은 행동" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "모든 회원" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "해당하는 파일이 없습니다." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "관심소식을 삭제할 수 없습니다." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "그러한 그룹이 없습니다." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "모든 회원" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API 메서드 발견 안 됨." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "해당하는 파일이 없습니다." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "당신은 이 프로필에 구독되지 않고있습니다." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "구독을 저장할 수 없습니다." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "%s에 의해 구독되는 사람들" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "알 수 없는 종류의 파일입니다" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "해당하는 첨부파일이 없습니다." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "별명이 없습니다." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "사이즈가 없습니다." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "옳지 않은 크기" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "아바타" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "당신의 개인 아바타를 업로드할 수 있습니다. 최대 파일 크기는 %s 입니다." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." msgstr "이용자가 프로필을 가지고 있지 않습니다." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "아바타 설정" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "원래 설정" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "미리보기" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "삭제" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "올리기" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "자르기" -#: actions/avatarsettings.php:305 -#, fuzzy +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." -msgstr "프로필을 지정하지 않았습니다." +msgstr "파일을 업로드하지 않았습니다." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "그림에서 당신의 아바타로 사용할 영역을 지정하십시오." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "파일 데이터를 잃어버렸습니다." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "아바타가 업데이트 되었습니다." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "아바타 업데이트 실패" -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "아바타가 삭제되었습니다." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "이미 차단된 이용자입니다." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "사용자를 차단합니다." -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -839,179 +1463,222 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "아니오" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "이용자를 차단하지 않는다." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "예" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "이 사용자 차단하기" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "정보차단을 저장하는데 실패했습니다." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "그러한 그룹이 없습니다." -#: actions/blockedfromgroup.php:97 -#, fuzzy, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format msgid "%s blocked profiles" -msgstr "이용자 프로필" - -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format -msgid "%1$s blocked profiles, page %2$d" msgstr "%s 및 친구들, %d 페이지" -#: actions/blockedfromgroup.php:115 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format +msgid "%1$s blocked profiles, page %2$d" +msgstr "%1$s 및 친구들, %2$d 페이지" + +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "이 그룹의 회원리스트" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "그룹 이용자는 차단해제" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "차단해제" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "이 사용자를 차단해제합니다." #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" msgstr "%s 사이트의 그룹" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "확인 코드가 없습니다." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "인증 코드가 없습니다." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "그 인증 코드는 귀하의 것이 아닙니다!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 -#, php-format +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 +#, fuzzy, php-format msgid "Unrecognized address type %s." -msgstr "" +msgstr "인식되지않은 주소유형 %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "그 주소는 이미 승인되었습니다." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "사용자를 업데이트 할 수 없습니다." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "메일 승인을 삭제 할 수 없습니다." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "메신저 승인을 삭제 할 수 없습니다." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "주소 확인" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "\"%s\" 는 귀하의 계정으로 승인되었습니다." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "대화" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "통지" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." msgstr "인증 코드가 없습니다." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "당신은 해당 그룹의 멤버가 아닙니다." +msgstr "이 응용프로그램 삭제 않기" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "당신의 세션토큰관련 문제가 있습니다." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "응용프로그램 삭제" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1019,66 +1686,127 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy +#: actions/deleteapplication.php:161 msgid "Do not delete this application" -msgstr "응용프로그램 삭제" +msgstr "이 응용프로그램 삭제 않기" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 -#, fuzzy +#: actions/deleteapplication.php:167 msgid "Delete this application" -msgstr "응용프로그램 삭제" +msgstr "이 응용프로그램 삭제" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "그룹을 떠나기 위해서는 로그인해야 합니다." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "별명이 없습니다." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "당신은 해당 그룹의 멤버가 아닙니다." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "그룹을 업데이트 할 수 없습니다." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s의 상태 (%2$s에서)" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "이용자 삭제" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "이 통지를 지울 수 없습니다." + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "이 사용자 삭제" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "로그인하고 있지 않습니다." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "이 통지를 지울 수 없습니다." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 +#, fuzzy 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "통지 삭제" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "정말로 통지를 삭제하시겠습니까?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 #, fuzzy msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "이 게시글 삭제하기" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." 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" @@ -1097,62 +1825,73 @@ msgstr "이 사용자 삭제" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "디자인" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "이 StatusNet 사이트에 대한 디자인 설정" +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "잘못된 로고 URL 입니다." -#: actions/designadminpanel.php:322 -#, fuzzy, php-format +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "잘못된 로고 URL 입니다." + +#: actions/designadminpanel.php:344 +#, php-format msgid "Theme not available: %s." msgstr "인스턴트 메신저를 사용할 수 없습니다." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "로고 변경" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "사이트 로고" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "사이트 로고" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "테마 바꾸기" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "사이트 테마" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "사이트에 대한 테마" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "사용자 지정 테마" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "배경 이미지 바꾸기" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "배경" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1161,79 +1900,86 @@ msgstr "" "사이트의 배경 이미지를 업로드할 수 있습니다. 최대 파일 크기는 %1$s 입니다." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "켜기" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "끄기" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "배경 이미지를 켜거나 끈다." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "배경 이미지를 반복 나열" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "색상 변경" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "만족하는" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" -msgstr "검색" +msgstr "가장자리 창" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "문자" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "링크" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "고급 검색" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "사용자 CSS" +msgstr "사용자 정의 CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" -msgstr "" +msgstr "기본값 사용" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "저장" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 -#, fuzzy +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" -msgstr "프로필 디자인" +msgstr "디자인 저장" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" @@ -1244,123 +1990,137 @@ msgid "Add to favorites" msgstr "좋아하는 게시글로 추가하기" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" msgstr "해당하는 첨부파일이 없습니다." -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "응용 프로그램 수정" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "응용 프로그램 편집" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "신규 응용 프로그램" -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "다음 양식을 이용해 그룹을 편집하십시오." -#: actions/editapplication.php:177 actions/newapplication.php:159 -#, fuzzy +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." -msgstr "위와 같은 비밀 번호. 필수 사항." +msgstr "기관 이름이 필요합니다." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." -msgstr "설명" +msgstr "기관 이름이 필요합니다." -#: actions/editapplication.php:194 -#, fuzzy +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." -msgstr "소스 코드 URL" +msgstr "소스 URL이 너무 깁니다." -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." -msgstr "홈페이지 주소형식이 올바르지 않습니다." +msgstr "소스 URL이 올바르지 않습니다." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." -msgstr "" +msgstr "기관 이름이 필요합니다." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "기관명이 너무 깁니다. (최대 255글자)" +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." +msgstr "기관 이름이 너무 깁니다. (최대 255글자)" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." -msgstr "" +msgstr "기관 홈페이지가 필요합니다." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 -#, fuzzy +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." -msgstr "그룹을 업데이트 할 수 없습니다." +msgstr "관심소식을 생성할 수 없습니다." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "%s 그룹 편집" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "그룹을 만들기 위해서는 로그인해야 합니다." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "관리자만 그룹을 편집할 수 있습니다." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "다음 양식을 이용해 그룹을 편집하십시오." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "설명이 너무 길어요. (최대 %d글자)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "사용할 수 없는 별명 : \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "그룹을 업데이트 할 수 없습니다." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "관심소식을 생성할 수 없습니다." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "옵션을 저장했습니다." @@ -1378,12 +2138,12 @@ msgstr "%%site.name%%에서 어떻게 메일을 받을지 정하십시오." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "메일 주소" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "확인된 최신의 메일 계정" @@ -1392,14 +2152,14 @@ msgstr "확인된 최신의 메일 계정" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "제거" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1407,25 +2167,19 @@ msgstr "" "이 주소는 인증 대기중입니다. 수신함(또는 스팸함)을 확인하셔서 지침을 확인해 " "주시기 바랍니다." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "취소" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "\"사용자이름@예제.org\"와 같은 메일 계정" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1433,110 +2187,117 @@ msgstr "추가" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "받은 메일" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "메일로 통보를 포스트합니다." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "새로운 통지를 올리려면 이 주소로 메일을 보내십시오." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." -msgstr "포스팅을 위한 새 이메일 계정의 생성; 전 이메일 계정은 취소." +msgstr "포스팅을 위한 새 메일 계정의 생성; 전 메일 계정은 취소." + +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "새 게임" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "메일 설정" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "새로운 예약 구독의 통지를 메일로 보내주세요." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "누군가 내 글을 좋아하는 게시글로 추가했을 때, 메일을 보냅니다." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "누군가 내게 비밀메시지를 보냈을 때, 메일을 보냅니다." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "누군가 내게 @ 답장을 보냈을 때, 메일을 보냅니다." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "친구들이 내게 메일이나 쪽지를 보낼 수 있도록 허용합니다." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "메일로 통보를 포스트합니다." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "메일 주소를 위한 MicroID의 생성" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "메일 설정이 저장되었습니다." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "메일 주소가 없습니다." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "메일 주소를 정규화 할 수 없습니다." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "올바른 메일 주소가 아닙니다." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "그 메일 주소는 이미 귀하의 것입니다." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "그 메일 주소는 이미 다른 사용자의 소유입니다." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "확인 코드를 추가 할 수 없습니다." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1547,52 +2308,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "취소 할 대기중인 인증이 없습니다." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "옳지 않은 메신저 계정 입니다." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "메일 승인을 삭제 할 수 없습니다." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "취소 할 대기중인 인증이 없습니다." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "그 메일 주소는 귀하의 것이 아닙니다." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "메일 주소를 지웠습니다." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "받는 메일 주소가 없습니다." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "사용자 기록을 업데이트 할 수 없습니다." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "받는 메일 주소를 지웠습니다." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "새로운 받는 메일 주소를 추가했습니다." @@ -1600,11 +2366,11 @@ msgstr "새로운 받는 메일 주소를 추가했습니다." msgid "This notice is already a favorite!" msgstr "이 게시글은 이미 좋아하는 게시글입니다." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "좋아하는글 취소" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "인기있는 게시글" @@ -1636,7 +2402,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s 님의 좋아하는 글" @@ -1657,17 +2423,15 @@ msgid "Featured users, page %d" msgstr "인기있는 회원, %d페이지" #: actions/featured.php:99 -#, php-format +#, fuzzy, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "%s의 훌륭한 회원의 일부 선택" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." msgstr "그러한 통지는 없습니다." #: actions/file.php:38 -#, fuzzy msgid "No notice." msgstr "그러한 통지는 없습니다." @@ -1676,7 +2440,6 @@ msgid "No attachments." msgstr "첨부문서 없음" #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." msgstr "첨부문서 없음" @@ -1685,8 +2448,9 @@ 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!" @@ -1697,19 +2461,20 @@ msgid "That user has blocked you from subscribing." 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 "" +msgstr "리퀘스트 토큰을 엑세스 토큰으로 변환 할 수 없습니다." #: actions/finishremotesubscribe.php:118 +#, fuzzy msgid "Remote service uses unknown version of OMB protocol." -msgstr "" +msgstr "OMB 프로토콜의 알려지지 않은 버전" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "리모트 프로필 업데이트 오류" @@ -1732,28 +2497,30 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." msgstr "이용자가 프로필을 가지고 있지 않습니다." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "프로필을 지정하지 않았습니다." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "해당 ID의 프로필이 없습니다." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 #, fuzzy msgid "No group specified." @@ -1764,17 +2531,14 @@ msgid "Only an admin can block group members." msgstr "" #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." msgstr "사용자가 귀하를 차단했습니다." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "당신은 해당 그룹의 멤버가 아닙니다." +msgstr "그룹 이용자는 차단해제" -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "그룹 이용자는 차단해제" @@ -1790,13 +2554,11 @@ msgstr "" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 -#, fuzzy msgid "Do not block this user from this group" msgstr "이용자를 차단하지 않는다." #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 -#, fuzzy msgid "Block this user from this group" msgstr "그룹 이용자는 차단해제" @@ -1815,7 +2577,6 @@ msgid "You must be logged in to edit a group." msgstr "그룹을 만들기 위해서는 로그인해야 합니다." #: actions/groupdesignsettings.php:144 -#, fuzzy msgid "Group design" msgstr "프로필 디자인" @@ -1825,13 +2586,14 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "디자인을 수정할 수 없습니다." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." msgstr "메일 설정이 저장되었습니다." @@ -1840,12 +2602,20 @@ msgid "Group logo" msgstr "그룹 로고" #: actions/grouplogo.php:153 -#, fuzzy, php-format +#, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" "사이트의 배경 이미지를 업로드할 수 있습니다. 최대 파일 크기는 %1$s 입니다." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "올리기" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "자르기" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "이미지에서 로고로 사용할 사각 영역을 지정하세요." @@ -1858,50 +2628,55 @@ msgstr "로고를 업데이트했습니다." msgid "Failed updating logo." msgstr "로고 업데이트에 실패했습니다." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s 그룹 회원" -#: actions/groupmembers.php:103 -#, fuzzy, php-format +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format msgid "%1$s group members, page %2$d" msgstr "%s 그룹 회원" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "이 그룹의 회원리스트" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "관리자" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "차단하기" +msgstr "차단" -#: actions/groupmembers.php:487 -#, fuzzy +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "이 사용자 차단" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" -msgstr "관리자만 그룹을 편집할 수 있습니다." +msgstr "사용자를 그룹의 관리자로 만듭니다" -#: actions/groupmembers.php:519 -#, fuzzy +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "관리자" +msgstr "관리자 만들기" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "이 이용자를 관리자로 만듦" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s 타임라인" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1934,7 +2709,7 @@ msgid "Create a new group" 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." @@ -1965,22 +2740,23 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 -#, fuzzy +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "그룹 이용자는 차단해제" -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "차단 제거 에러!" #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" msgstr "메일 설정" @@ -2004,7 +2780,6 @@ msgstr "인스턴트 메신저를 사용할 수 없습니다." #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" msgstr "SMS 주소" @@ -2025,7 +2800,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2035,65 +2813,64 @@ msgstr "" "GTalk 친구목록에 반드시 %s 주소를 추가하여 주십시오." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "메일 설정" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Jabber/GTalk 로 통지를 보내주세요." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Jabber/GTalk의 상태가 변경되었을 때 통지를 보냅니다." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "내가 구독하지 않는 사람으로 부터의 답장을 Jabber/GTalk을 통해 보내주세요." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Jabber/GTalk 계정을 위한 MicroID의 생성" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "설정이 저장되었습니다." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Jabber ID가 아닙니다." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "그 Jabbar ID를 정규화 할 수 없습니다." #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "유효한 Jabber ID가 아닙니다." #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "그 Jabber ID는 이미 귀하의 것입니다." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID가 이미 다른 사용자에 의하여 사용되고 있습니다." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2103,37 +2880,35 @@ msgstr "" "달할 수 있습니다." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "옳지 않은 메신저 계정 입니다." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "메신저 승인을 삭제 할 수 없습니다." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "확인 코드가 없습니다." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "그 Jabber ID는 귀하의 것이 아닙니다." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "메일 주소를 지웠습니다." #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "%s의 받은쪽지함" +msgstr "%1$s 및 친구들, %2$d 페이지" #: actions/inbox.php:62 #, php-format @@ -2144,49 +2919,76 @@ msgstr "%s의 받은쪽지함" msgid "This is your inbox, which lists your incoming private messages." msgstr "당신의 받은 쪽지함입니다. 당신이 받은 비밀 메시지가 있습니다." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 +#, php-format msgid "You must be logged in to invite other users to use %s." msgstr "그룹가입을 위해서는 로그인이 필요합니다." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "올바르지 않은 메일 주소 : %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "초대권을 보냈습니다" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "새 사용자를 초대" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "당신은 다음 사용자를 이미 구독하고 있습니다." +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "당신은 다음 사용자를 이미 구독하고 있습니다." -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "자동 구독 신청이 된 사용자:" +msgstr[0] "자동 구독 신청이 된 사용자:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "다음 사람들에게 초대권을 보냈습니다:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "다음 사람들에게 초대권을 보냈습니다:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2194,41 +2996,52 @@ msgstr "" "당신의 초대를 받은 사람들이 수락하고, 사이트에 등록할때 공지를 받을 수 있습니" "다. 커뮤니티를 키워주셔서 대단히 감사합니다. ^^" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "다음 양식을 이용해 친구와 동료를 이 서비스에 초대하십시오." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "메일 주소" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "초청할 친구 주소 (한 줄에 한 명씩)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "개인 메시지" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "초대장에 메시지 첨부하기." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "보내기" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s님이 귀하를 %2$s에 초대하였습니다." -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2284,33 +3097,131 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "그룹가입을 위해서는 로그인이 필요합니다." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "별명이 없습니다." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "" +msgstr "%1$s의 상태 (%2$s에서)" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." msgstr "그룹을 떠나기 위해서는 로그인해야 합니다." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" msgstr "%1$s의 상태 (%2$s에서)" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "라이선스" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "위치가 너무 깁니다. (최대 255글자)" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "개인정보 취급방침" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "All Rights Reserved" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "크리에이티브 커먼즈 (Creative Commons)" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "종류" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "라이선스 선택" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "라이선스 세부 정보" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "라이선스 이름" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "라이선스 URL" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "라이선스 이미지 URL" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "이미 로그인 하셨습니다." @@ -2321,7 +3232,7 @@ msgstr "틀린 계정 또는 비밀 번호" #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "" +msgstr "당신은 이 프로필에 구독되지 않고있습니다." #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2331,11 +3242,11 @@ msgstr "로그인" msgid "Login to site" msgstr "사이트에 로그인하세요." -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "자동 로그인" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "앞으로는 자동으로 로그인합니다. 공용 컴퓨터에서는 이용하지 마십시오!" @@ -2356,10 +3267,13 @@ msgid "Login with your username and password." msgstr "사용자 이름과 비밀번호로 로그인" #: actions/login.php:295 -#, php-format +#, fuzzy, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." msgstr "" +"귀하의 계정과 비밀 번호로 로그인 하세요. 계정이 아직 없으세요? [가입](%%" +"action.register%%) 새 계정을 생성 또는 [OpenID](%%action.openidlogin%%)를 사" +"용해 보세요." #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." @@ -2368,88 +3282,95 @@ msgstr "" #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" +msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." #: actions/microsummary.php:69 -#, fuzzy msgid "No current status." msgstr "결과 없음" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "신규 응용 프로그램" -#: actions/newapplication.php:64 -#, fuzzy +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "새 그룹을 만들기 위해 이 양식을 사용하세요." -#: actions/newapplication.php:176 -#, fuzzy +#: actions/newapplication.php:184 msgid "Source URL is required." -msgstr "소스 코드 URL" +msgstr "소스 URL이 필요합니다." -#: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "관심소식을 생성할 수 없습니다." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "새로운 그룹" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "새 그룹을 만들기 위해 이 양식을 사용하세요." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "새로운 메시지입니다." -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "내용이 없습니다!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "수신자를 지정하지 않았습니다." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "자신에게 메시지를 보내지 마세요. 대신 조용하게 스스로에게 그것을 말하세요;;" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "쪽지가 전송되었습니다." -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "%s에게 보낸 직접 메시지" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax 에러입니다." @@ -2457,7 +3378,7 @@ msgstr "Ajax 에러입니다." msgid "New notice" msgstr "새로운 통지" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "게시글이 등록되었습니다." @@ -2475,7 +3396,7 @@ msgid "Text search" msgstr "문자 검색" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" msgstr "%1$s에서 %2$s까지 메시지" @@ -2494,19 +3415,22 @@ msgid "" msgstr "" #: actions/noticesearchrss.php:96 -#, php-format +#, fuzzy, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "%2$s에 있는 %1$s의 업데이트!" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" +"이 사용자는 nudge를 허용하지 않았고, 아직 그의 메일을 인증하지 않았습니다." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2516,78 +3440,98 @@ msgstr "찔러 보기를 보냈습니다." msgid "Nudge sent!" msgstr "찔러 보기를 보냈습니다!" -#: actions/oauthappssettings.php:59 -#, fuzzy +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." -#: actions/oauthappssettings.php:74 -#, fuzzy +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "응용프로그램 삭제" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, fuzzy, php-format msgid "You have not registered any applications yet." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." -#: actions/oauthconnectionssettings.php:72 -#, fuzzy +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" -msgstr "응용프로그램 삭제" +msgstr "연결한 응용프로그램" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "다음 응용 프로그램이 계정에 접근하도록 허용되어 있습니다." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "다음 양식을 이용해 그룹을 편집하십시오." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 -#, fuzzy +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "다음 응용 프로그램이 계정에 접근하도록 허용되어 있습니다." +msgstr "계정에서 사용하도록 허용한 응용 프로그램이 없습니다." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." msgstr "이용자가 프로필을 가지고 있지 않습니다." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s의 상태 (%2$s에서)" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, php-format +#: actions/oembed.php:168 +#, fuzzy, php-format msgid "Content type %s not supported." -msgstr "" +msgstr "연결" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -2599,38 +3543,46 @@ msgstr "사람 찾기" msgid "Notice Search" msgstr "통지 검색" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" msgstr "아바타 설정" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "여러가지 기타 옵션을 관리합니다." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "" +msgstr " (무료 서비스)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "URL 줄이기 기능" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "사용할 URL 자동 줄이기 서비스." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "프로필 디자인 보기" -#: actions/othersettings.php:123 -#, fuzzy +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." -msgstr "프로필 디자인 보기" +msgstr "프로필 디자인 보이거나 감춥니다." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL 줄이기 서비스 너무 깁니다. (최대 50글자)" #: actions/otp.php:69 @@ -2639,18 +3591,16 @@ msgid "No user ID specified." msgstr "프로필을 지정하지 않았습니다." #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "프로필을 지정하지 않았습니다." +msgstr "허용되지 않는 요청입니다." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." msgstr "허용되지 않는 요청입니다." #: actions/otp.php:95 msgid "Invalid login token specified." -msgstr "" +msgstr "허용되지 않는 요청입니다." #: actions/otp.php:104 #, fuzzy @@ -2658,9 +3608,9 @@ msgid "Login token expired." msgstr "사이트에 로그인하세요." #: actions/outbox.php:58 -#, fuzzy, php-format +#, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "%s의 보낸쪽지함" +msgstr "%s 및 친구들, %d 페이지" #: actions/outbox.php:61 #, php-format @@ -2696,7 +3646,7 @@ msgid "6 or more characters" msgstr "6글자 이상" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "인증" @@ -2708,11 +3658,11 @@ msgstr "위와 같은 비밀 번호" msgid "Change" msgstr "변경" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "비밀번호는 6자리 이상이어야 합니다." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "비밀 번호가 일치하지 않습니다." @@ -2732,176 +3682,288 @@ msgstr "새 비밀번호를 저장 할 수 없습니다." msgid "Password saved." msgstr "비밀 번호 저장" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 -#, fuzzy +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "경로" -#: actions/pathsadminpanel.php:70 -#, fuzzy -msgid "Path and server settings for this StatusNet site." -msgstr "이 StatusNet 사이트에 대한 디자인 설정" - -#: actions/pathsadminpanel.php:157 -#, php-format -msgid "Theme directory not readable: %s." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format +msgid "Theme directory not readable: %s." +msgstr "인스턴트 메신저를 사용할 수 없습니다." + +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." -msgstr "" +msgstr "아바타가 삭제되었습니다." -#: actions/pathsadminpanel.php:169 -#, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 +#, fuzzy, php-format msgid "Background directory not writable: %s." -msgstr "" +msgstr "아바타 디렉토리에 쓸 수 없습니다 : %s" -#: actions/pathsadminpanel.php:177 -#, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 +#, fuzzy, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "이 페이지는 귀하가 승인한 미디어 타입에서는 이용할 수 없습니다." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#, fuzzy +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "사이트" -#: actions/pathsadminpanel.php:238 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "SSL 서버" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "경로" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" +msgid "Site path." msgstr "사이트 테마" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "테마 디렉터리" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "테마" -#: actions/pathsadminpanel.php:264 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 #, fuzzy -msgid "Theme server" -msgstr "SSL 서버" +msgid "Server for themes." +msgstr "사이트에 대한 테마" -#: actions/pathsadminpanel.php:268 -#, fuzzy -msgid "Theme path" -msgstr "테마" - -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "아바타" - -#: actions/pathsadminpanel.php:284 -#, fuzzy -msgid "Avatar server" -msgstr "아바타 설정" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "아바타가 업데이트 되었습니다." - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "아바타가 삭제되었습니다." - -#: actions/pathsadminpanel.php:301 -#, fuzzy -msgid "Backgrounds" -msgstr "배경" - -#: actions/pathsadminpanel.php:305 -#, fuzzy -msgid "Background server" -msgstr "배경" - -#: actions/pathsadminpanel.php:309 -#, fuzzy -msgid "Background path" -msgstr "배경" - -#: actions/pathsadminpanel.php:313 -#, fuzzy -msgid "Background directory" -msgstr "배경" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "복구" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "통지" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "SSL 사용" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL 서버" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 -msgid "Save paths" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "사이트 테마" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." msgstr "" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "테마 디렉터리" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "아바타" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "아바타가 삭제되었습니다." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "사이트에 대한 테마" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "아바타 경로" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "아바타 업데이트 실패" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "아바타가 삭제되었습니다." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "배경" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "사이트에 대한 테마" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "첨부파일" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "사이트에 대한 테마" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "첨부문서 없음" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "사이트에 대한 테마" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "SSL 서버" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "가끔" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "언제나" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL 사용" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "언제 SSL 사용" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 +msgid "Save paths" +msgstr "사이트 테마" + #: actions/peoplesearch.php:52 #, php-format msgid "" @@ -2916,17 +3978,16 @@ msgid "People search" msgstr "사람 찾기" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." msgstr "올바른 메일 주소가 아닙니다." #: actions/peopletag.php:142 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" +msgstr "%s 태그된 통지" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." msgstr "옳지 않은 크기" @@ -2935,138 +3996,181 @@ msgstr "옳지 않은 크기" msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "프로필 설정" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "사람들이 당신에 대해 좀 더 잘 알 수 있도록 여기 당신의 개인 프로필을 업데이" "트 할 수 있습니다. " -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "프로필 정보" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64자 사이에 영소문자, 숫자로만 씁니다. 기호나 공백을 쓰면 안 됩니다." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "실명" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "홈페이지" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "귀하의 홈페이지, 블로그 혹은 다른 사이트의 프로필 페이지 URL" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "%d자 이내에서 자기 소개 및 자기 관심사" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" -msgstr "" +msgstr "자기 소개 및 자기 관심사" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "자기소개" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "위치" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "당신은 어디에 삽니까? \"시, 도 (or 군,구), 나라\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "태그" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "당신을 위한 태그, (문자,숫자,-, ., _로 구성) 콤마 혹은 공백으로 구분." -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "언어" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "언어 설정" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "시간대" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "주로 생활하는 곳이 어느 시간대입니까?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "나에게 구독하는 사람에게 자동 구독 신청" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "설명이 너무 깁니다. (최대 %d 글자)" +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "설명이 너무 깁니다. (최대 %d 글자)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "타임존이 설정 되지 않았습니다." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "언어가 너무 깁니다. (최대 50글자)" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "올바르지 않은 태그: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "자동구독에 사용자를 업데이트 할 수 없습니다." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "태그를 저장할 수 없습니다." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "프로필을 저장 할 수 없습니다." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "태그를 저장할 수 없습니다." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "설정 저장" @@ -3090,15 +4194,16 @@ msgstr "퍼블릭 타임라인" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" -msgstr "" +msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" #: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" -msgstr "" +msgstr "%s 그룹을 위한 공지피드 (RSS 2.0)" #: actions/public.php:168 +#, fuzzy msgid "Public Stream Feed (Atom)" -msgstr "" +msgstr "퍼블릭 스트림 피드" #: actions/public.php:188 #, php-format @@ -3129,39 +4234,54 @@ msgid "" msgstr "" #: actions/public.php:247 -#, php-format +#, fuzzy, 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 "" +"%%site.name%% 는 마이크로블로깅(http://en.wikipedia.org/wiki/Micro-blogging) " +"서비스 입니다." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "공개 태그 클라우드" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "다음은 %에서 가장 인기 있는 최근 태그입니다." -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "글을 올린 첫번째 사람이 되세요!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "태그 클라우드" @@ -3205,9 +4325,8 @@ msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 -#, fuzzy msgid "Password recovery" -msgstr "비밀 번호 복구가 요청되었습니다." +msgstr "비밀 번호 복구" #: actions/recoverpassword.php:191 #, fuzzy @@ -3273,14 +4392,15 @@ msgid "Unexpected password reset." msgstr "잘못된 비밀 번호 지정" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "비밀 번호는 6자 이상이어야 합니다." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "비밀 번호가 일치하지 않습니다." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "사용자 세팅 오류" @@ -3289,7 +4409,7 @@ msgid "New password successfully saved. You are now logged in." msgstr "" "새로운 비밀 번호를 성공적으로 저장했습니다. 귀하는 이제 로그인 되었습니다." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "죄송합니다. 단지 초대된 사람들만 등록할 수 있습니다." @@ -3302,7 +4422,7 @@ msgstr "확인 코드 오류" msgid "Registration successful" msgstr "회원 가입이 성공적입니다." -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "등록" @@ -3310,83 +4430,87 @@ msgstr "등록" msgid "Registration not allowed." msgstr "가입이 허용되지 않습니다." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "이메일 주소가 이미 존재 합니다." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "사용자 이름이나 비밀 번호가 틀렸습니다." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64자 사이에 영소문자, 숫자로만 씁니다. 기호나 공백을 쓰면 안 됩니다. 필수 " "입력." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6글자 이상이 필요합니다." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "위와 같은 비밀 번호. 필수 사항." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 -msgid "Email" -msgstr "이메일" - #: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 +msgid "Email" +msgstr "메일" + +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "업데이트나 공지, 비밀번호 찾기에 사용하세요." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "더욱 긴 이름을 요구합니다." -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "귀하의 홈페이지, 블로그 혹은 다른 사이트의 프로필 페이지 URL" + +#: actions/register.php:524 #, fuzzy, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "%1$s의 컨텐츠와 데이터는 외부 유출을 금지합니다." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." -msgstr "" +msgstr "글과 파일의 저작권은 %1$s의 소유입니다" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 -#, php-format +#: actions/register.php:546 +#, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." -msgstr "" +msgstr "다음 개인정보 제외: 비밀 번호, 메일 주소, 메신저 주소, 전화 번호" -#: actions/register.php:583 -#, php-format +#: actions/register.php:589 +#, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -3403,8 +4527,22 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"%s님 축하드립니다! %%%%site.name%%%%에 가입하신 것을 환영합니다!. 이제부터 아" +"래의 일을 할 수 있습니다...\n" +"\n" +"* [나의 프로필](%s) 로 가셔서 첫 메시지를 포스트 해보십시오.\n" +"* [Jabber 또는 GTalk계정](%%%%action.imsettings%%%%)을 추가하셔서 메신저로 통" +"보를 받아 보십시오.\n" +"* [친구 찾기](%%%%action.peoplesearch%%%%) 알거나 같은 관심사를 가지고 있는 " +"분들을 찾아 보십시오. \n" +"* [프로필 셋팅](%%%%action.profilesettings%%%%)을 업데이트 하셔서 다른분들에" +"게 자신을 알려보십시오. \n" +"* [온라인 도움말](%%%%doc.help%%%%)을 읽으면서 더 많은 기능을 확인해 보십시" +"오. \n" +"\n" +"다시 한번 가입하신 것을 환영하면서 즐거운 서비스가 되셨으면 합니다." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3428,9 +4566,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" @@ -3449,7 +4586,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "다른 마이크로블로깅 서비스의 귀하의 프로필 URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "구독" @@ -3458,16 +4595,19 @@ 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 "" +msgstr "유효한 프로필 URL이 아닙니다. (YADIS 문서가 없습니다)" #: actions/remotesubscribe.php:176 +#, fuzzy msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "그것은 로컬프로필입니다. 구독을 위해서는 로그인하십시오." #: actions/remotesubscribe.php:183 +#, fuzzy msgid "Couldn’t get a request token." -msgstr "" +msgstr "리퀘스트 토큰을 취득 할 수 없습니다." #: actions/repeat.php:57 #, fuzzy @@ -3484,11 +4624,10 @@ msgid "You can't repeat your own notice." msgstr "자신의 글은 재전송할 수 없습니다." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." msgstr "이미 재전송된 소식입니다." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "재전송됨" @@ -3497,25 +4636,25 @@ msgid "Repeated!" msgstr "재전송됨!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "%s에 답신" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" msgstr "%s에 답신" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "%s의 통지 피드" +msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "%s의 통지 피드" +msgstr "%s 그룹을 위한 공지피드 (RSS 2.0)" #: actions/replies.php:159 #, php-format @@ -3544,21 +4683,19 @@ msgid "" msgstr "" #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "%2$s에서 %1$s까지 메시지" +msgstr "%s에 답신" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다." #: actions/revokerole.php:82 msgid "User doesn't have this role." -msgstr "" +msgstr "이용자가 프로필을 가지고 있지 않습니다." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" msgstr "StatusNet %s" @@ -3568,19 +4705,17 @@ msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다." #: actions/sandbox.php:72 msgid "User is already sandboxed." -msgstr "" +msgstr "이용자의 지속적인 게시글이 없습니다." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 -#, fuzzy +#: lib/adminpanelaction.php:379 msgid "Sessions" -msgstr "버전" +msgstr "세션" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "이 StatusNet 사이트에 대한 디자인 설정" +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3592,52 +4727,48 @@ msgstr "" #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "세션 디버깅" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" msgstr "접근 설정을 저장" #: actions/showapplication.php:82 -#, fuzzy msgid "You must be logged in to view an application." msgstr "응용 프로그램 수정을 위해서는 로그인해야 합니다." #: actions/showapplication.php:157 -#, fuzzy msgid "Application profile" msgstr "신규 응용 프로그램" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" -msgstr "" +msgstr "아이콘" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "이름" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" -msgstr "페이지수" +msgstr "기관 이름이 필요합니다." #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "설명" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "통계" @@ -3648,18 +4779,21 @@ msgid "Created by %1$s - %2$s access by default - %3$d users" msgstr "" #: actions/showapplication.php:213 -#, fuzzy msgid "Application actions" -msgstr "신규 응용 프로그램" +msgstr "인증 코드가 없습니다." #: actions/showapplication.php:236 msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "삭제" + #: actions/showapplication.php:261 -#, fuzzy msgid "Application info" -msgstr "신규 응용 프로그램" +msgstr "인증 코드가 없습니다." #: actions/showapplication.php:263 msgid "Consumer key" @@ -3694,7 +4828,7 @@ msgid "Are you sure you want to reset your consumer key and secret?" msgstr "정말로 통지를 삭제하시겠습니까?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" msgstr "%s 님의 좋아하는 글" @@ -3705,17 +4839,17 @@ msgstr "좋아하는 게시글을 복구할 수 없습니다." #: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "%s의 친구들을 위한 피드" +msgstr "%s의 좋아하는 글 피드 (RSS 1.0)" #: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "%s의 친구들을 위한 피드" +msgstr "%s의 좋아하는 글 피드 (RSS 2.0)" #: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "%s의 친구들을 위한 피드" +msgstr "%s의 좋아하는 글 피드 (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3742,77 +4876,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "좋아하는 글을 지정하면 자기가 무엇을 좋아하는지 알릴 수 있습니다." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s 그룹" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "그룹, %d 페이지" +msgstr "그룹, %d페이지" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "그룹 프로필" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "설명" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "그룹 행동" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 그룹을 위한 공지피드 (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "%s의 보낸쪽지함" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "회원" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(없음)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "모든 회원" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "생성됨" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "회원" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3822,34 +4985,46 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 -#, php-format +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, fuzzy, 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 "" +"**%s** 는 %%%%site.name%%%% [마이크로블로깅)(http://en.wikipedia.org/wiki/" +"Micro-blogging)의 사용자 그룹입니다. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 #, fuzzy msgid "Admins" msgstr "관리자" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "그러한 메시지가 없습니다." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "오직 발송자가 수신자가 이 메시지를 읽는것이 좋습니다." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "%2$s에서 %1$s까지 메시지" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "%1$s에서 %2$s까지 메시지" @@ -3859,47 +5034,67 @@ msgstr "%1$s에서 %2$s까지 메시지" msgid "Notice deleted." msgstr "게시글이 등록되었습니다." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" +msgstr "%s 및 친구들, %d 페이지" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" msgstr "%s 태그된 통지" -#: actions/showstream.php:79 -#, fuzzy, php-format +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" msgstr "%s 및 친구들, %d 페이지" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" -#: actions/showstream.php:129 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 +#, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" -#: actions/showstream.php:136 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" msgstr "%s 그룹을 위한 공지피드 (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, fuzzy, php-format msgid "FOAF for %s" msgstr "%s의 보낸쪽지함" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "%s 및 친구들의 타임라인이지만, 아직 아무도 글을 작성하지 않았습니다." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3907,14 +5102,18 @@ msgstr "" "최근에 재미있는 일들이 있었나요? 아직 올린 글이 없느데, 지금 시작해 보면 어떨" "까요. :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3923,27 +5122,31 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 -#, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, fuzzy, 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 "" +"**%s**는 %%%%site.name%%%% [마이크로블로깅](http://en.wikipedia.org/wiki/" +"Micro-blogging) 서비스에 계정을 갖고 있습니다." -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "%s에 답신" #: actions/silence.php:65 actions/unsilence.php:65 -#, fuzzy msgid "You cannot silence users on this site." msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다." #: actions/silence.php:72 msgid "User is already silenced." -msgstr "" +msgstr "사용자가 귀하를 차단했습니다." #: actions/siteadminpanel.php:69 #, fuzzy @@ -3955,7 +5158,6 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." msgstr "올바른 메일 주소가 아닙니다." @@ -3974,10 +5176,9 @@ msgstr "" #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "일반" #: actions/siteadminpanel.php:224 -#, fuzzy msgid "Site name" msgstr "사이트 테마" @@ -4002,7 +5203,6 @@ msgid "URL used for credits link in footer of each page" msgstr "" #: actions/siteadminpanel.php:239 -#, fuzzy msgid "Contact email address for your site" msgstr "%s에 포스팅 할 새로운 메일 주소" @@ -4012,17 +5212,17 @@ msgid "Local" msgstr "로컬 뷰" #: actions/siteadminpanel.php:256 +#, fuzzy msgid "Default timezone" -msgstr "" +msgstr "기본 언어" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "언어 설정" +msgstr "기본 언어" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -4048,42 +5248,46 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "사이트 공지" +msgstr "사이트 공지 사항" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "새로운 메시지입니다." -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "디자인 설정을 저장할 수 없습니다." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "사이트 공지" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "사이트 공지" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" msgstr "메일 설정" @@ -4097,7 +5301,6 @@ msgstr "" #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 -#, fuzzy msgid "SMS is not available." msgstr "인스턴트 메신저를 사용할 수 없습니다." @@ -4134,7 +5337,6 @@ msgstr "확인" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" msgstr "휴대폰 번호가 없습니다." @@ -4145,7 +5347,6 @@ msgstr "지역번호와 함께 띄어쓰기 없이 번호를 적어 주세요." #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" msgstr "메일 설정" @@ -4160,9 +5361,8 @@ msgstr "" #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 -#, fuzzy msgid "SMS preferences saved." -msgstr "설정이 저장되었습니다." +msgstr "SMS 설정을 저장했습니다." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 @@ -4186,7 +5386,6 @@ msgstr "그 휴대폰 번호는 이미 다른 사용자의 것입니다." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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." @@ -4201,7 +5400,6 @@ msgstr "옳지 않은 인증 번호 입니다." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." msgstr "SMS 인증" @@ -4213,7 +5411,6 @@ msgstr "그 휴대폰 번호는 귀하의 것이 아닙니다." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 -#, fuzzy msgid "The SMS phone number was removed." msgstr "메일 주소를 지웠습니다." @@ -4243,18 +5440,18 @@ msgstr "코드가 입력 되지 않았습니다." #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" msgstr "메일 주소 확인" #: actions/snapshotadminpanel.php:127 +#, fuzzy msgid "Invalid snapshot run value." -msgstr "" +msgstr "옳지 않은 크기" #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." @@ -4274,8 +5471,9 @@ msgid "In a scheduled job" msgstr "" #: actions/snapshotadminpanel.php:206 +#, fuzzy msgid "Data snapshots" -msgstr "" +msgstr "접근 설정을 저장" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" @@ -4283,7 +5481,7 @@ msgstr "" #: actions/snapshotadminpanel.php:217 msgid "Frequency" -msgstr "" +msgstr "주기" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" @@ -4299,16 +5497,17 @@ msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" msgstr "접근 설정을 저장" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "당신은 이 프로필에 구독되지 않고있습니다." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "구독을 저장할 수 없습니다." @@ -4316,11 +5515,6 @@ msgstr "구독을 저장할 수 없습니다." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "해당하는 파일이 없습니다." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4330,63 +5524,84 @@ msgstr "당신은 이 프로필에 구독되지 않고있습니다." msgid "Subscribed" msgstr "구독하였습니다." -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s 구독자" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" msgstr "%s 및 친구들, %d 페이지" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "귀하의 통지를 받고 있는 사람" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "%s의 통지를 받고 있는 사람" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format -msgid "%s subscriptions" -msgstr "%s 구독" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%s 및 친구들, %d 페이지" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "귀하의 통지를 받고 있는 사람" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "%s님이 받고 있는 통지의 사람" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4396,41 +5611,51 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format msgid "%s is not listening to anyone." msgstr "%1$s님이 귀하의 알림 메시지를 %2$s에서 듣고 있습니다." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%s 그룹을 위한 공지피드 (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "%s 태그된 통지" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드 (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s 그룹을 위한 공지피드 (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." msgstr "첨부문서 없음" @@ -4444,7 +5669,7 @@ msgid "User profile" msgstr "이용자 프로필" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "사진" @@ -4479,22 +5704,18 @@ msgid "No such tag." msgstr "그러한 태그가 없습니다." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." msgstr "이미 차단된 이용자입니다." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." msgstr "이용자의 지속적인 게시글이 없습니다." #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "이용자가 프로필을 가지고 있지 않습니다." +msgstr "이용자의 지속적인 게시글이 없습니다." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." msgstr "해당 ID의 프로필이 없습니다." @@ -4509,92 +5730,116 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "사용자" -#: actions/useradminpanel.php:70 -#, fuzzy -msgid "User settings for this StatusNet site." -msgstr "이 StatusNet 사이트에 대한 디자인 설정" +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "프로필" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "새 사용자를 초대" +msgstr "새 사용자" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "모든 예약 구독" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "나에게 구독하는 사람에게 자동 구독 신청" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "초대권을 보냈습니다" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "초대권을 보냈습니다" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +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 "" +"사용자의 통지를 구독하려면 상세를 확인해 주세요. 구독하지 않는 경우는, \"취소" +"\"를 클릭해 주세요." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "라이센스" @@ -4625,22 +5870,28 @@ msgid "Subscription authorized" msgstr "구독 허가" #: actions/userauthorization.php:256 +#, 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 " "subscription. Your subscription token is:" msgstr "" +"구독이 승인 되었습니다. 하지만 콜백 URL이 통과 되지 않았습니다. 웹사이트의 지" +"시를 찾아 구독 승인 방법에 대하여 읽어보십시오. 귀하의 구독 토큰은 : " #: actions/userauthorization.php:266 msgid "Subscription rejected" msgstr "구독 거부" #: actions/userauthorization.php:268 +#, 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 "" +"구독이 해지 되었습니다. 하지만 콜백 URL이 통과 되지 않았습니다. 웹사이트의 지" +"시를 찾아 구독 해지 방법에 대하여 읽어보십시오." #: actions/userauthorization.php:303 #, php-format @@ -4668,20 +5919,22 @@ msgid "Avatar URL ‘%s’ is not valid." msgstr "" #: actions/userauthorization.php:350 -#, php-format +#, fuzzy, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "" +msgstr "아바타 URL '%s'을(를) 읽어낼 수 없습니다." #: actions/userauthorization.php:355 -#, php-format +#, fuzzy, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "" +msgstr "%S 잘못된 그림 파일 타입입니다. " -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "프로필 디자인" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4693,13 +5946,14 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" msgstr "그룹, %d 페이지" #: actions/usergroups.php:132 +#, fuzzy msgid "Search for more groups" -msgstr "" +msgstr "프로필이나 텍스트 검색" #: actions/usergroups.php:159 #, fuzzy, php-format @@ -4717,7 +5971,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" @@ -4733,6 +5987,8 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"이 사이트는 %1$s %2$s 버전으로 운영됩니다. Copyright 2008-2010 StatusNet, " +"Inc. and contributors." #: actions/version.php:163 msgid "Contributors" @@ -4745,6 +6001,9 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"이 프로그램은 자유 소프트웨어입니다. 소프트웨어의 피양도자는 자유 소프트웨어 " +"재단이 공표한 GNU Affero 일반 공중 사용 허가서 3판 또는 그 이후 판을 임의로 " +"선택해서, 그 규정에 따라 프로그램을 개작하거나 재배포할 수 있습니다." #: actions/version.php:176 msgid "" @@ -4753,6 +6012,10 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"이 프로그램은 유용하게 사용될 수 있으리라는 희망에서 배포되고 있지만, 특정한 " +"목적에 맞는 적합성 여부나 판매용으로 사용할 수 있으리라는 묵시적인 보증을 포" +"함한 어떠한 형태의 보증도 제공하지 않습니다. 보다 자세한 사항에 대해서는 GNU " +"Affero 일반 공중 사용 허가서를 참고하시기 바랍니다." #: actions/version.php:182 #, php-format @@ -4760,78 +6023,122 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"GNU 일반 공중 사용 허가서는 이 프로그램과 함께 제공됩니다. 만약, 이 문서가 누" +"락되어 있다면 %s 페이지를 보십시오." #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "플러그인" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "버전" #: actions/version.php:199 -#, fuzzy msgid "Author(s)" msgstr "작성자" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "좋아합니다" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "누군가 내 글을 좋아하는 게시글로 추가했을 때, 메일을 보냅니다." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "'%s' URL을 처리할 수 없습니다" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "옳지 않은 크기" #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "그룹에 가입하지 못했습니다." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "그룹을 업데이트 할 수 없습니다." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "그룹에 가입하지 못했습니다." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "사용자 저장 오류; 무효한 사용자" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "가입" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4851,18 +6158,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "직접 메시지 보내기 오류." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "메시지를 삽입할 수 없습니다." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "새 URI와 함께 메시지를 업데이트할 수 없습니다." @@ -4874,24 +6181,24 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" msgstr "OAuth 응용 프로그램 사용자 추가 중 데이터베이스 오류" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "통지를 저장하는데 문제가 발생했습니다." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "게시글 저장문제. 알려지지않은 회원" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4899,7 +6206,7 @@ msgstr "" "해보세요." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4909,375 +6216,428 @@ msgstr "" "해보세요." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었습니다." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "새 그룹을 만들 수 없습니다." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "이용자가 프로필을 가지고 있지 않습니다." +msgstr "프로파일이 없습니다." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "태그를 저장할 수 없습니다." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "귀하는 구독이 금지되었습니다." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 #, fuzzy msgid "Already subscribed!" msgstr "구독하고 있지 않습니다!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "사용자가 귀하를 차단했습니다." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "구독하고 있지 않습니다!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "구독을 저장할 수 없습니다." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "구독을 저장할 수 없습니다." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "구독을 저장할 수 없습니다." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "팔로우" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s님이 귀하의 알림 메시지를 %2$s에서 듣고 있습니다." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 -#, fuzzy, php-format +#: classes/User.php:395 +#, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "%2$s에서 %1$s까지 메시지" +msgstr "%s에 답신" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "새 그룹을 만들 수 없습니다." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "새 그룹을 만들 수 없습니다." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "그룹 맴버십을 세팅할 수 없습니다." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "구독을 저장할 수 없습니다." +msgstr "새 그룹을 만들 수 없습니다." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "프로필 세팅 바꾸기" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "아바타를 업로드하세요." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "비밀번호 바꾸기" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" -msgstr "이메일 처리 변경" +msgstr "메일 처리 변경" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 #, fuzzy msgid "Design your profile" msgstr "이용자 프로필" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "다른 옵션들" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "기타" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format +#: lib/action.php:148 +#, php-format msgid "%1$s - %2$s" -msgstr "%1$s (%2$s)" +msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "제목없는 페이지" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "주 사이트 네비게이션" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 +#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "개인 프로필과 친구 타임라인" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "개인" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "당신의 이메일, 아바타, 비밀 번호, 프로필을 변경하세요." +msgstr "당신의 메일, 아바타, 비밀 번호, 프로필을 변경하세요." + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "계정" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "연결" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "연결" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "주 사이트 네비게이션" +msgstr "메일 주소 확인" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "관리" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "%s에 친구를 가입시키기 위해 친구와 동료를 초대합니다." #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "초대" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "이 사이트에서 로그아웃" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "로그아웃" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "새 계정 만들기" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "등록" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "이 사이트에 로그인" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "로그인" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "도움말" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "도움말" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "사람이나 단어 검색" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "검색" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "사이트 공지" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "로컬 뷰" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "페이지 공지" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "보조 사이트 네비게이션" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "도움말" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "정보" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "자주 묻는 질문" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "서비스 약관" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "개인정보 취급방침" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "소스 코드" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "연락하기" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "배지" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet 소프트웨어 라이선스" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" +"**%%site.name%%** 사이트는 [%%site.broughtby%%](%%site.broughtbyurl%%)에서 제" +"공하는 마이크로블로깅서비스입니다." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5289,365 +6649,462 @@ msgstr "" "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "사이트 컨텐츠 라이선스" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "%1$s의 컨텐츠와 데이터는 외부 유출을 금지합니다." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "컨텐츠와 데이터의 저작권은 %1$s의 소유입니다. All rights reserved." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "컨텐츠와 데이터의 저작권은 각 이용자의 소유입니다. All rights reserved." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "%1$s의 모든 컨텐츠와 데이터는 %2$s 라이선스에 따라 이용할 수 있습니다." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "페이지수" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "뒷 페이지" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "앞 페이지" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "사진" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 -#, fuzzy +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "가입이 허용되지 않습니다." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "명령이 아직 실행되지 않았습니다." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "명령이 아직 실행되지 않았습니다." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 -#, fuzzy +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "디자인 설정을 저장할 수 없습니다." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "메일 주소 확인" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "사이트" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "디자인" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "사용자" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "사이트 공지" +msgstr "사이트 공지 편집" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "SMS 인증" +msgstr "메일 주소 확인" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -#, fuzzy -msgid "Edit application" -msgstr "응용 프로그램 수정" - -#. TRANS: Form guide. -#: lib/applicationeditform.php:187 -#, fuzzy -msgid "Icon for this application" -msgstr "응용프로그램 삭제" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." msgstr "" -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 #, fuzzy +msgid "Could not create anonymous consumer." +msgstr "관심소식을 생성할 수 없습니다." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "관심소식을 생성할 수 없습니다." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "메시지를 삽입할 수 없습니다." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "OAuth 응용 프로그램 사용자 추가 중 데이터베이스 오류" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" + +#. TRANS: Form guide. +#: lib/applicationeditform.php:178 +msgid "Icon for this application" +msgstr "이 응용프로그램 삭제 않기" + +#. TRANS: Form input field instructions. +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "응용프로그램 삭제" + +#. TRANS: Form input field instructions. +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "응용프로그램 삭제" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "그룹 혹은 토픽의 홈페이지나 블로그 URL" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "소스 코드 URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "이 응용프로그램 삭제 않기" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "그룹 혹은 토픽의 홈페이지나 블로그 URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" -msgstr "" +msgstr "브라우저" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" -msgstr "" +msgstr "데스크톱" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" -msgstr "" +msgstr "읽기 전용" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" -msgstr "" +msgstr "읽기 쓰기" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "취소" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" -msgstr "" +msgstr "읽기 쓰기" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" -msgstr "" +msgstr "읽기 전용" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "제거" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "첨부파일" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "작성자" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "미리보기" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 #, fuzzy msgid "Tags for this attachment" msgstr "해당하는 첨부파일이 없습니다." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "비밀번호 변경" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "비밀번호 변경" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "차단하기" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "실행결과" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax 에러입니다." + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "실행 완료" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "실행 실패" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +#, fuzzy +msgid "Notice with that id does not exist." +msgstr "해당 id의 프로필이 없습니다." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "이용자의 지속적인 게시글이 없습니다." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "이 이메일 주소로 사용자를 업데이트 할 수 없습니다." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "이 이메일 주소로 사용자를 업데이트 할 수 없습니다." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "죄송합니다. 이 명령은 아직 실행되지 않았습니다." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "찔러 보기를 보냈습니다." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5655,204 +7112,239 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "게시글이 좋아하는 글로 지정되었습니다." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "당신은 이미 이 그룹의 멤버입니다." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다." +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "전체이름: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "위치: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "홈페이지: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "자기소개: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "%s에게 보낸 직접 메시지" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "직접 메시지 보내기 오류." -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "자기 자신의 소식은 재전송할 수 없습니다." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "이미 재전송된 소식입니다." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "게시글이 등록되었습니다." -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "사용자 세팅 오류" -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" - -#: lib/command.php:571 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "이 게시글에 대해 답장하기" -#: lib/command.php:573 -#, fuzzy +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "통지를 저장하는데 문제가 발생했습니다." +msgstr "사용자 세팅 오류" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "구독하려는 사용자의 이름을 지정하십시오." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "%s에게 구독되었습니다." +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "구독을 해제하려는 사용자의 이름을 지정하십시오." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "%s에서 구독을 해제했습니다." +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "명령이 아직 실행되지 않았습니다." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "알림끄기." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "알림을 끌 수 없습니다." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "알림이 켜졌습니다." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "알림을 켤 수 없습니다." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "%s에서 구독을 해제했습니다." +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "당신은 다음 사용자를 이미 구독하고 있습니다." -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "다른 사람을 구독 하실 수 없습니다." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "다른 사람을 구독 하실 수 없습니다." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "당신은 해당 그룹의 멤버가 아닙니다." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5894,95 +7386,137 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "확인 코드가 없습니다." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "다음 사람들에게 초대권을 보냈습니다:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 -#, fuzzy +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "이 사이트에 로그인" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "메신저" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "인스턴트 메신저에 의한 업데이트" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "SMS에 의한 업데이트" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 -#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "연결" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 #, fuzzy msgid "Authorized connected applications" msgstr "응용프로그램 삭제" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" -msgstr "" +msgstr "데이터베이스 오류" -#: lib/designsettings.php:105 -#, fuzzy +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "올리기" +msgstr "실행 실패" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "개인 아바타를 올릴 수 있습니다. 최대 파일 크기는 2MB입니다." -#: lib/designsettings.php:418 -msgid "Design defaults restored." -msgstr "" +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "켜기" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "끄기" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "초기화" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +#, fuzzy +msgid "Design defaults restored." +msgstr "메일 설정이 저장되었습니다." + +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "이 게시글 좋아하기 취소" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "이 게시글을 좋아합니다." -#: lib/favorform.php:140 -msgid "Favor" -msgstr "좋아합니다" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "데이터 내보내기" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6007,77 +7541,133 @@ msgstr "좁은 리스트에서 태그 선택하기" #: lib/galleryaction.php:143 msgid "Go" -msgstr "Go " +msgstr "이동" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64자 사이에 영소문자, 숫자로만 씁니다. 기호나 공백을 쓰면 안 됩니다." + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "그룹 혹은 토픽의 홈페이지나 블로그 URL" #: lib/groupeditform.php:168 msgid "Describe the group or topic" -msgstr "" +msgstr "응용프로그램 삭제" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "140글자로 그룹이나 토픽 설명하기" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "그룹의 위치, \"시/군/구, 도, 국가\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "그룹" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "차단" - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "사용자를 차단합니다." - -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "Edit %s group properties" -msgstr "%s 그룹 속성 편집" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "구성원" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "로고" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "%s 로고 추가 혹은 편집" +msgstr "" -#: lib/groupnav.php:120 -#, fuzzy, php-format +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "%s 로고 추가 혹은 편집" +msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "가장 많은 회원수를 가진 그룹들" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "가장 많은 게시글이 있는 그룹들" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "%s 그룹 게시글의 태그" @@ -6091,53 +7681,65 @@ msgstr "이 페이지는 귀하가 승인한 미디어 타입에서는 이용할 msgid "Unsupported image file format." msgstr "지원하지 않는 그림 파일 형식입니다." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "당신그룹의 로고 이미지를 업로드할 수 있습니다." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "불완전한 업로드." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "파일을 올리는데 시스템 오류 발생" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "그림 파일이 아니거나 손상된 파일 입니다." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "파일을 잃어버렸습니다." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "알 수 없는 종류의 파일입니다" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/jabber.php:567 #, php-format msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "가입" - #: lib/leaveform.php:114 msgid "Leave" msgstr "떠나기" @@ -6150,45 +7752,54 @@ msgstr "사용자 이름과 비밀번호로 로그인" msgid "Sign up for a new account" msgstr "새 계정을 위한 회원가입" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "메일 주소 확인" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s님이 귀하의 알림 메시지를 %2$s에서 듣고 있습니다." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6196,27 +7807,35 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" +"%1$s님이 귀하의 알림 메시지를 %2$s에서 듣고 있습니다.\n" +"\t%3$s\n" +"\n" +"그럼 이만,%4$s.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" msgstr "위치: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "%s에 포스팅 할 새로운 메일 주소" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6225,36 +7844,41 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "포스팅 주소는 %1$s입니다.새 메시지를 등록하려면 %2$s 주소로 이메일을 보내십시" "오.이메일 사용법은 %3$s 페이지를 보십시오.안녕히,%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s 상태" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS 인증" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "이 전화 번호는 인증 대기중입니다." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s 사용자가 찔러 봤습니다." -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6270,14 +7894,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "%s로부터 새로운 비밀 메시지가 도착하였습니다." -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6296,14 +7924,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "누군가 내 글을 좋아하는 게시글로 추가했을 때, 메일을 보냅니다." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6325,7 +7958,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6333,13 +7966,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "누군가 내 글을 좋아하는 게시글로 추가했을 때, 메일을 보냅니다." #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6376,9 +8016,9 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "" +msgstr "방법" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6396,162 +8036,212 @@ msgstr "죄송합니다. 귀하의 이메일이 아닙니다." msgid "Sorry, no incoming email allowed." msgstr "죄송합니다. 이메일이 허용되지 않습니다." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "지원하지 않는 그림 파일 형식입니다." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"업로드 파일이 php.ini 설정 파일의 upload_max_filesize 값을 넘어갔습니다." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." -msgstr "" +msgstr "업로드 파일이 HTML 폼에서 지정한 MAX_FILE_SIZE 값을 넘어갔습니다." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "업로드 파일이 일부만 업로드되었습니다." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." -msgstr "" +msgstr "임시 폴더가 없습니다" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." -msgstr "" +msgstr "디스크에 파일을 쓰는 데 실패했습니다." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." -msgstr "" +msgstr "파일이 사용자의 제한 용량을 넘어갑니다." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "소스 이용자를 확인할 수 없습니다." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "직접 메시지 보내기" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "라이선스 선택" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "구독하고 있지 않습니다!" + +#: lib/messageform.php:153 msgid "To" msgstr "받는 이" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "사용 가능한 글자" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "보내기" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"별명은 반드시 영소문자와 숫자로만 이루어져야 하며 스페이스의 사용이 불가 합니" +"다." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "게시글 보내기" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "뭐하세요? %?" +msgstr "뭐하세요 %s님?" -#: lib/noticeform.php:192 -#, fuzzy +#: lib/noticeform.php:193 msgid "Attach" -msgstr "첨부파일" +msgstr "첨부" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "" - -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "" +msgstr "내 위치 공유" #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "내 위치 공유하지 않기" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "북" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "남" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "동" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "서" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 -#, fuzzy +#: lib/noticelist.php:468 msgid "at" -msgstr "경로" +msgstr "위치" -#: lib/noticelist.php:568 -#, fuzzy +#: lib/noticelist.php:517 +msgid "web" +msgstr "웹" + +#: lib/noticelist.php:583 msgid "in context" -msgstr "내용이 없습니다!" +msgstr "문맥" -#: lib/noticelist.php:603 -#, fuzzy +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "재전송됨" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -6568,56 +8258,52 @@ msgstr "찔러 보기" msgid "Send a nudge to this user" msgstr "이 사용자에게 찔러 보기 메시지 보내기" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "새 프로필 추가 오류" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "아바타 추가 오류" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "리모트 프로필 업데이트 오류" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "리모트 프로필 추가 오류" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "통지 삭제" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "예약 구독을 추가 할 수 없습니다." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "개인" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "답신" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "좋아하는 글들" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "받은 쪽지함" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "받은 메시지" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "보낸 쪽지함" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "보낸 메시지" @@ -6626,7 +8312,8 @@ msgstr "보낸 메시지" msgid "Tags in %s's notices" msgstr "%s의 게시글의 태그" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "알려지지 않은 행동" @@ -6689,7 +8376,6 @@ msgid "Popular" msgstr "인기있는" #: lib/redirectingaction.php:95 -#, fuzzy msgid "No return-to arguments." msgstr "첨부문서 없음" @@ -6710,11 +8396,13 @@ msgstr "이 게시글에 대해 답장하기" #: lib/revokeroleform.php:91 #, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "" +msgstr "그룹 이용자는 차단해제" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API 메서드 발견 안 됨." #: lib/sandboxform.php:67 #, fuzzy @@ -6726,20 +8414,25 @@ msgstr "받은 쪽지함" msgid "Sandbox this user" msgstr "이 사용자를 차단해제합니다." +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" msgstr "검색 도움말" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" -msgstr "" +msgstr "검색어" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "검색" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "검색 도움말" @@ -6773,7 +8466,6 @@ msgid "Silence" msgstr "사이트 공지" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" msgstr "이 사용자 삭제" @@ -6815,6 +8507,12 @@ msgstr "" msgid "None" msgstr "없음" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "옳지 않은 크기" + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6824,38 +8522,43 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "아바타 업데이트 실패" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "차단 제거 에러!" @@ -6863,6 +8566,13 @@ msgstr "차단 제거 에러!" msgid "Top posters" msgstr "상위 게시글 등록자" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "차단해제" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6877,9 +8587,8 @@ msgid "Unsilence" 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" @@ -6889,125 +8598,170 @@ msgstr "이 사용자로부터 구독취소합니다." msgid "Unsubscribe" msgstr "구독 해제" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "이용자가 프로필을 가지고 있지 않습니다." -#: lib/userprofile.php:117 -#, fuzzy +#: lib/userprofile.php:119 msgid "Edit Avatar" -msgstr "아바타" +msgstr "아바타 편집" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "사용자 동작" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 -#, fuzzy +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "프로필 설정" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "편집" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "이 회원에게 직접 메시지를 보냅니다." -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "메시지" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "이용자 프로필" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "관리자" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "몇 초 전" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "1분 전" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "%d분 전" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "1시간 전" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "%d시간 전" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "하루 전" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "%d일 전" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "1달 전" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "%d달 전" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "1년 전" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, fuzzy, php-format msgid "%s is not a valid color!" msgstr "홈페이지 주소형식이 올바르지 않습니다." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "홈페이지 주소형식이 올바르지 않습니다." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "옳지 않은 크기" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "프로필을 지정하지 않았습니다." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 8c4981fbe2..ab36d623bd 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -1,163 +1,204 @@ -# Translation of StatusNet to Macedonian +# Translation of StatusNet - Core to Macedonian (Македонски) +# Expored from translatewiki.net # -# Author@translatewiki.net: Bjankuloski06 -# Author@translatewiki.net: Brest +# Author: Bjankuloski06 +# Author: Brest # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:12:44+0000\n" -"Language-Team: Macedonian\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:04+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1;\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Пристап" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Нагодувања за пристап на мрежното место" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Регистрација" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Да им забранам на анонимните (ненајавени) корисници да го гледаат мрежното " "место?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Приватно" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Регистрирање само со покана." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Само со покана" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Оневозможи нови регистрации." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Затворен" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Зачувај нагодувања на пристап" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Зачувај" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Нема таква страница." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Нема таков корисник." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и пријателите, стр. %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s и пријатели" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Канал со пријатели на %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Канал со пријатели на %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Канал за пријатели на %S (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Ова е историјата за %s и пријателите, но досега никој нема објавено ништо." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -166,8 +207,9 @@ msgstr "" "Пробајте да се претплатите на повеќе луѓе, [зачленете се во група](%%action." "groups%%) или објавете нешто самите." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -176,7 +218,11 @@ msgstr "" "Можете да го [подбуцнете корисникот %1$s](../%2$s) од неговиот профил или да " "[му испратите нешто](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -185,59 +231,80 @@ msgstr "" "А зошто не се [регистрирате](%%%%action.register%%%%), и потоа да го " "подбуцнете корисникот %s или да му испратите забелешка." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Вие и пријателите" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Подновувања од %1$s и пријатели на %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API методот не е пронајден." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Овој метод бара POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -245,350 +312,528 @@ msgstr "" "Мора да назначите параметар со име 'device' со една од следниве вредности: " "sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Не можев да го подновам корисникот." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Корисникот нема профил." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Не може да се зачува профил." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Опслужувачот не можеше да обработи толку многу POST-податоци (%s бајт) " +"поради неговата тековна поставеност." +msgstr[1] "" "Опслужувачот не можеше да обработи толку многу POST-податоци (%s бајти) " -"заради неговата тековна поставеност." +"поради неговата тековна поставеност." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Не можам да ги зачувам Вашите нагодувања за изглед." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Не може да се поднови Вашиот изглед." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Главна" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Историја на %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Претплати на %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Бендисани" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Членови на групата %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Не можете да се блокирате самите себеси!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Блокирањето на корисникот не успеа." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Не успеа одблокирањето на корисникот." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Директни пораки од %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Сите директни пораки испратени од %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Директни пораки до %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Сите директни пораки испратени до %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Нема текст за пораката!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Ова е предолго. Максималната должина изнесува %d знаци." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Ова е предолго. Дозволен е највеќе %d знак во пораката." +msgstr[1] "Ова е предолго. Дозволени се највеќе %d знаци во пораката." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Примачот не е пронајден." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -"Неможете да испраќате директни пораки на корисници што не ви се пријатели." +"Неможете да испраќате директни пораки на корисници што не Ви се пријатели." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Не испраќајте си порака самите себеси, туку само тивко кажете си го тоа во " +"себе." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Нема пронајдено статус со таков ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." -msgstr "Овој статус веќе Ви е омилен." +msgstr "Веќе сте го бендисале овој статус." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." -msgstr "Не можам да создадам омилина забелешка." +msgstr "Не можам да создадам бендисана забелешка." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." -msgstr "Тој статус не Ви е омилен." +msgstr "Тој статус не Ви е бендисан." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "Не можам да ја избришам омилената забелешка." +msgstr "Не можам да ја избришам бендисаната забелешка." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Не можам да го следам корисникот: профилот не е пронајден." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Не можам да го следам корисникот: %s веќе е на Вашиот список." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Не можам да престанам да го следам корисникот: Корисникот не е пронајден." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Не можете да престанете да се следите самите себеси." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" -"Мора да се наведат две кориснички назнаки (ID) или screen_names (имиња за " -"приказ)." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Мора да наведете две назнаки (ID) или прекари." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Не можев да го утврдам целниот корисник." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Не можев да го пронајдам целниот корисник." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Прекарот мора да има само мали букви и бројки и да нема празни места." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Тој прекар е во употреба. Одберете друг." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Неправилен прекар." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Главната страница не е важечка URL-адреса." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Целото име е предолго (највеќе 255 знаци)" +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Полното име е предолго (највеќе 255 знаци)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Описот е предолг (дозволено е највеќе %d знаци)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Описот е предолг (дозволено е највеќе %d знак." +msgstr[1] "Описот е предолг (дозволено е највеќе %d знаци)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Локацијата е предолга (максимумот е 255 знаци)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Местоположбата е предолга (највеќе 255 знаци)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Премногу алијаси! Дозволено е највеќе %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Премногу алијаси! Дозволено е највеќе %d." +msgstr[1] "Премногу алијаси! Дозволено е највеќе %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Неважечки алијас: „%s“." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Алијасот „%s“ е зафатен. Одберете друг." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Алијасот не може да биде ист како прекарот." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Групата не е пронајдена." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Веќе членувате во таа група." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Блокирани сте од таа група од администраторот." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Не можам да го зачленам корисникот %1$s во групата 2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Не членувате во оваа група." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Не можев да го отстранам корисникот %1$s од групата %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s групи" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s групи кадешто членува %2$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s групи" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "групи на %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Подигањето не успеа." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Неважечки жетон за барање или потврдник." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Нема наведено oauth_token параметар." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Погрешен жетон." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Неважечки жетон за барање." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Жетонот за барање е веќе овластен." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Се поајви проблем со Вашиот сесиски жетон. Обидете се повторно." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Погрешен прекар / лозинка!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Грешка при бришењето на корисникот на OAuth-програмот." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" -"Грешка во базата на податоци при вметнувањето на корисникот на OAuth-" -"програмот." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "Жетонот на барањето %s е одобрен. Заменете го со жетон за пристап." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Жетонот на барањето %s е одбиен и поништен." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Грешка во базата при вметнувањето на auth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Неочекувано поднесување на образец." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Има програм кој сака да се поврзе со Вашата сметка" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Дозволи или одбиј пристап" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Еден програм би сакал да може да ги <strong>%3$s</strong> податоците за " +"Вашата %4$s сметка. Треба да дозволувате пристап до Вашата %4$s сметка само " +"на трети лица на кои им верувате." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -599,170 +844,535 @@ msgstr "" "<strong>%3$s</strong> податоците за Вашата %4$s сметка. Треба да дозволувате " "пристап до Вашата %4$s сметка само на трети страни на кои им верувате." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Сметка" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Прекар" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Лозинка" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Одбиј" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Откажи" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Дозволи" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Дозволете или одбијте пристап до податоците за Вашата сметка." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Овластете пристап до податоците за Вашата сметка." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Овластувањето е откажано." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Жетонот за барање %s е повлечен." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Успешно го овластивте програмот." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Вратете се на програмот и внесете го следниов безбедносен код за да ја " +"завршите постапката." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Успешно дадовте овластување на %s." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Вратете се на %s и внесете го следниов безбедносен код за да ја завршите " +"постапката." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Методот бара POST или DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Не можете да избришете статус на друг корисник." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Нема таква забелешка." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Не можете да ја повторувате сопствената забелешка." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Забелешката е веќе повторена." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTML-методот не е поддржан." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Неподдржан формат: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Статусот е избришан." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Нема пронајдено статус со тој ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Може да се избрише само користејќи го форматот Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Не може да се избрише оваа забелешка." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Избришана забелешката %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Клиентот мора да укаже вредност за параметарот „статус“" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Ова е предолго. Максималната дозволена должина изнесува %d знаци." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Ова е предолго. Дозволен е највеќе %d знак." +msgstr[1] "Ова е предолго. Дозволени се највеќе %d знаци." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Не е пронајдено." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Матичната забелешка не е пронајдена." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Максималната големина на забелешката е %d знак, вклучувајќи ја URL-адресата " +"на прилогот." +msgstr[1] "" "Максималната големина на забелешката е %d знаци, вклучувајќи ја URL-адресата " "на прилогот." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Неподдржан формат." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s / Омилени од %2$s" +msgstr "%1$s / Бендисани од %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "Подновувања на %1$s омилени на %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Подновувања на %1$s бендисани од %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Не можев да создадам канал за групата - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Подновувања кои споменуваат %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s подновувања коишто се одговор на подновувањата од %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Јавна историја на %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s подновуввања од сите!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Неспроведено." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Повторено за %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Повторувања на %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Забелешки означени со %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Подновувањата се означени со %1$s на %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Само корисникот може да ја надополнува својата хронологија." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Прифаќај само AtomPub за Atom-канали." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "Забелешката преку Atom мора да биде Atom-ставка." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "Забелешката преку Atom мора да биде Atom-ставка." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "Забелешката преку Atom мора да биде Atom-ставка." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Може да работи само со објавувања." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Не може да работи со предмети на активност од типот „%s“" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Пронајдете содржини на забелешките" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Веќе постои забелешка со URI „%s“." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "AtomPub-објава со непознат URI за внимание %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-методот е во изработка." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Корисникот не е пронајден." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Нема таков профил." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Не може да се внесе нова претплата." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Може да работи само со објавувања." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Може да работи само со објавувања." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Непознато" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Додај во бендисани" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Нема таков профил." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Членови на групата %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Групи кадешто членува %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Може да работи само со објавувања." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Непознато" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Сите членови" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Нема таква податотека." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Не можам да ја избришам бендисаната забелешка." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Нема таква група." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Сите членови" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTML-методот не е поддржан." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Нема таков профил." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Не сте претплатени на тој профил." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Не можам да ја избришам самопретплатата." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Луѓе претплатени на %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Може да работи само со објавувања." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Непознат тип на податотека" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Нема таков прилог." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Нема прекар." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Нема големина." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Погрешна големина." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Аватар" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." @@ -770,73 +1380,95 @@ msgstr "" "Можете да подигнете свој личен аватар. Максималната дозволена големина на " "податотеката изнесува %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Корисник без соодветен профил." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Нагодувања на аватарот" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Преглед" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "Бриши" +msgstr "Избриши" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Подигни" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Отсечи" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Нема подигнато податотека." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Одберете квадратна површина од сликата за аватар" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Податоците за податотеката се изгубени." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Аватарот е подновен." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Подновата на аватарот не успеа." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Аватарот е избришан." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Веќе го имате блокирано тој корисник." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Блокирај корисник" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -849,175 +1481,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Не" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Не го блокирај корисников" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Да" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Блокирај го корисников" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Не можев да ги снимам инофрмациите за блокот." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Нема таква група." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s блокирани профили" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s блокирани профили, стр. %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Листана корисниците блокирани од придружување во оваа група." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Одблокирај корисник од група" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Одблокирај" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Одблокирај го овој корсник" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Објави во %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." -msgstr "Нема код за потврда." +msgstr "Нема потврден код." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." -msgstr "Кодот за потврда не е пронајден." +msgstr "Потврдниот код не е пронајден." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" -msgstr "Овој код за потврда не е за Вас!" +msgstr "Овој потврден код не е за Вас!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Непознат тип на адреса %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Оваа адреса веќе е потврдена." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Не можев да го подновам корисникот." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Не можев да ја избришам потврдата по е-пошта." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Не можев да ја избришам потврдата на адреса." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Потврди адреса" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Адресата \"%s\" е потврдена за Вашата сметка." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Разговор" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Забелешки" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Мора да сте најавени за да можете да избришете програм." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Програмот не е пронајден." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Не сте сопственик на овој програм." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Се појави проблем со Вашиот сесиски жетон." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Избриши програм" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1028,31 +1704,88 @@ msgstr "" "поврзувања." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Не го бриши овој програм" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Избриши го програмов" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Мора да сте најавени за да избришете група." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Нема прекар или ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Не Ви е дозволено да ја избришете оваа група." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Не можев да ја избришам групата %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Групата %s е избришана" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Избриши група" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Дали се сигурни дека сакате да ја избришете групава? Ова воедно ќе ги " +"избрише сите податоци за групата од базата, без да може да се вратат. " +"Јавните објави на оваа група ќе си останат во поединечните хронологии." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Не ја бриши групава" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Избриши ја групава" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не сте најавени." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Не може да се избрише оваа забелешка." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1060,21 +1793,24 @@ msgstr "" "На пат сте да избришете забелешка засекогаш. Откако ќе го направите тоа, " "постапката нема да може да се врати." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Бриши забелешка" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Дали сте сигурни дека сакате да ја избришете оваа заблешка?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1105,62 +1841,71 @@ msgstr "Избриши овој корисник" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Изглед" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "Нагодувања на изгледот на ова StatusNet-мрежно место." -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Погрешен URL на лого." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Неважечка URL-адреса на SSL-логото." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Темата е недостапна: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Промени лого" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Лого на мрежното место" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL-лого" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Промени изглед" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Изглед на мрежното место" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Изглед за мрежното место." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Прилагоден мотив" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Можете да подигнете свој изглед за StatusNet како .ZIP архив." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Промена на слика на позадина" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Позадина" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1170,194 +1915,223 @@ msgstr "" "големина на податотеката е %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Вкл." #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Искл." -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Вклучи или исклучи позадинска слика." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Позадината во квадрати" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Промена на бои" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Содржина" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Странична лента" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Текст" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Врски" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Напредно" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Прилагодено CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Користи по основно" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Врати основно-зададени нагодувања" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Врати по основно" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Зачувај" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" 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:158 #, php-format msgid "No such document \"%s\"" msgstr "Нема документ со наслов „%s“" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Уреди програм" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Мора да сте најавени за да можете да уредувате програми." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Нема таков програм." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Образецов служи за уредување на програмот." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Треба име." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "Името е предолго (највеќе 255 знаци)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Тоа име е во употреба. Одберете друго." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Треба опис." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Изворната URL-адреса е предолга." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Изворната URL-адреса е неважечка." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Треба организација." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "Организацијата е предолга (максимумот е 255 знаци)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "Името на организацијата е предолго (највеќе 255 знаци)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Треба домашна страница на организацијата." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Повикувањето е предолго." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "URL-адресата за повикување е неважечка." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Не можев да го подновам програмот." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Уреди ја групата %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Мора да сте најавени за да можете да создавате групи." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Мора да сте администратор за да можете да ја уредите групата." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "ОБразецов служи за уредување на групата." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "описот е предолг (највеќе %d знаци)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неважечки алијас: „%s“" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Не можев да ја подновам групата." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Не можеше да се создадат алијаси." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Нагодувањата се зачувани." @@ -1375,12 +2149,12 @@ msgstr "Раководење со начинот на кој добивате е #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Е-поштенска адреса" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Тековна потврдена е-поштенска адреса." @@ -1389,14 +2163,14 @@ msgstr "Тековна потврдена е-поштенска адреса." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Отстрани" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1404,25 +2178,19 @@ msgstr "" "Очекувам потврда за оваа адреса. Проверете си го приемното сандаче (а и " "сандачето за спам!). Во писмото ќе следат понатамошни напатствија." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Откажи" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Е-пошта, од обликот „UserName@example.org“" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1430,113 +2198,120 @@ msgstr "Додај" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Приемна пошта" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Сакам да објавувам забелешки по е-пошта." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Испраќајте е-пошта на оваа адреса за да објавувате нови забелешки." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Создај нова е-поштенска адреса за примање објави; ја заменува старата адреса." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Нова" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Нагодувања за е-пошта" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Испраќај ми известувања за нови претплати по е-пошта." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." -msgstr "Испраќај ми е-пошта кога некој ќе додаде моја забелешка како омилена." +msgstr "Испраќај ми е-пошта кога некој ќе бендиса моја забелешка." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Испраќај ми е-пошта кога некој ќе ми испрати приватна порака." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Испраќај ми е-пошта кога некој ќе ми испрати „@-одговор“" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" "Дозволи им на пријателите да можат да ме подбуцнуваат и да ми испраќаат е-" "пошта." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Сакам да објавувам забелешки по е-пошта." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Објави MicroID за мојата е-поштенска адреса." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Нагодувањата за е-пошта се зачувани." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Нема е-поштенска адреса." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Неможам да ја нормализирам таа е-поштенска адреса" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неправилна адреса за е-пошта." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Оваа е-поштенска адреса е веќе Ваша." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Таа е-поштенска адреса е веќе зафатена од друг корисник." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "Кодот за потврда не може да се внесе." +msgstr "Потврдниот код не може да се внесе." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1548,62 +2323,68 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Нема потврди кои може да се откажат." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Ова е погрешна е-поштенска адреса." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Не можев да ја избришам потврдата по е-пошта." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Потврдата на е-пошта е откажана." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Ова не е Вашата е-поштенска адреса." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Е-поштенската адреса е отстранета." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Нема приемна е-поштенска адреса." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Не можев да ја подновам корисничката евиденција." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Приемната е-поштенска адреса е отстранета." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Додадена е нова влезна е-поштенска адреса." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "Оваа белешка е веќе омилена!" +msgstr "Веќе сте ја бендисале оваа забелешка!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "Тргни од омилени" +msgstr "Тргни од бендисани" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Популарни забелешки" @@ -1620,16 +2401,16 @@ 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 "" "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 @@ -1638,18 +2419,18 @@ msgid "" "notice to your favorites!" msgstr "" "А зошто не [регистрирате сметка](%%action.register%%) и да бидете први што " -"ќе додадете забелешка во Вашите омилени!" +"ќе бендисате забелешка!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "Омилени забелешки на %s" +msgstr "Бендисани забелешки на %s" #: actions/favoritesrss.php:115 #, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "Подновувања, омилени на %1$s на %2$s!" +msgstr "Подновувања, бендисани од %1$s на %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1700,7 +2481,7 @@ msgstr "Тој корисник Ве има блокирано од претпл #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." -msgstr "Не сте авторизирани." +msgstr "Не сте овластени." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." @@ -1710,7 +2491,7 @@ msgstr "Не можев да ги претворам жетоните за ба msgid "Remote service uses unknown version of OMB protocol." msgstr "Далечинската служба користи непозната верзија на OMB протокол." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Грешка во подновувањето на далечинскиот профил." @@ -1738,19 +2519,23 @@ msgstr "Не можете да им доделувате улоги на кор msgid "User already has this role." msgstr "Корисникот веќе ја има таа улога." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Нема назначено профил." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Нема профил со тоа ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Нема назначено група." @@ -1767,7 +2552,7 @@ msgstr "Корисникот е веќе блокиран од оваа груп msgid "User is not a member of group." msgstr "Корисникот не членува во групата." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Блокирај корисник од група" @@ -1818,8 +2603,10 @@ msgstr "" "Прилагодете го изгледот на Вашата група со позадинска слика и палета од бои " "по Ваш избор." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Не можев да го подновам Вашиот изглед." @@ -1839,6 +2626,14 @@ msgstr "" "Можете да подигнете слика за логото на Вашата група. Максималната дозволена " "големина на податотеката е %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Подигни" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Отсечи" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Одберете квадратен простор на сликата за лого." @@ -1851,48 +2646,55 @@ msgstr "Логото е подновено." msgid "Failed updating logo." msgstr "Подновата на логото не успеа." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Членови на групата %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Членови на групата %1$s, стр. %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Список на корисниците на оваа група." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Администратор" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Блокирај" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Блокирај го корисников" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Направи го корисникот администратор на групата" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Направи го/ја администратор" +msgstr "Назначи за администратор" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Направи го корисникот администратор" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Историја на %s" +msgstr "Назначи го корисников за администратор" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1936,7 +2738,7 @@ 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%% по име, локација или опис. Одделете ги " +"Пребарајте групи на %%site.name%% по име, местоположба или опис. Одделете ги " "поимите со празни места; зборовите мора да имаат барем по 3 букви." #: actions/groupsearch.php:58 @@ -1966,15 +2768,18 @@ msgstr "" "А зошто самите не [регистрирате сметка](%%action.register%%) и [создадете " "група](%%action.newgroup%%)!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Само администратор може да одблокира членови на група." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Корисникот не е блокиран од групата." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Грешка при отстранување на блокот." @@ -2024,7 +2829,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2034,95 +2842,95 @@ msgstr "" "%s во Вашиот контактен список во Вашиот IM клиент или GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "IM нагодувања" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Испраќај ми забелешки преку Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Објавувај забелешка кога мојот статус на Jabber/GTalk ќе се промени." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Испраќај ми одговори преку Jabber/GTalk од луѓе на кои не сум претплатен." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Објави MicroID за мојата адреса на Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Нагодувањата се зачувани." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Нема JabberID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Ова JabberID не може да се нормализира." #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Неправилен JabberID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Ова веќе е Вашиот Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Ова Jabber ID му припаѓа на друг корисник." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Испративме код за потврда на IM адресата што ја додадовте. Мора да го " -"одобрите %S за да ви испраќа пораки." +"Испративме потврден код на IM-адресата што ја додадовте. Ќе мора да му " +"одобрите на %s да Ви испраќа пораки." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Ова е погрешната IM адреса." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Не можев да ја избришам потврдата на IM." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Потврдата на IM е откажана." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Ова не е Вашиот Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "IM-адресата е отстранета." @@ -2142,50 +2950,76 @@ msgstr "" "Ова е Вашето приемно сандаче, кадешто се наведени Вашите добиени приватни " "пораки." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Поканите се оневозможени." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Мора да сте најавени за да можете да каните други корисници да користат %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Неважечка е-поштенска адреса: %s" +msgid "Invalid email address: %s." +msgstr "Неважечка е-поштенска адреса: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Пораките се испратени" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Поканите се испратени" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Покани нови корисници" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Веќе сте претплатени на овие корисници:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Веќе сте претплатени на овој корисник:" +msgstr[1] "Веќе сте претплатени на овие корисници:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Овие луѓе веќе се корисници и Вие бевте автоматски претплатени на нив:" +msgstr[0] "Ова лице веќе е корисник и автоматски сте претплатени:" +msgstr[1] "Овие луѓе веќе се корисници и автоматски сте претплатени на нив:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Испратени се покани до следниве луѓе:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Испратена е покана до следново лице:" +msgstr[1] "Испратени се покани до следниве лица:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2194,43 +3028,54 @@ msgstr "" "поканата и ќе се регистрираат на мрежното место. Ви благодариме што ни " "помагате да ја прошириме заедницата!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Со овој обраец можете да поканите пријатели и колеги да го користат мрежното " "место." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Е-поштенски адреси" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Адреси на пријателите што ги каните (по една во секој ред)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Лична порака" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Можете да додадете и лична порака во поканата." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" -msgstr "Испрати" +msgstr "Прати" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s ве покани да се придружите на %2$s" +msgstr "%1$s Ве покани да се придружите на %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2262,8 +3107,8 @@ msgid "" msgstr "" "%1$s Ве кани да се придружите на %2$s (%3$s).\n" "\n" -"%2$s е мрежно место за микроблогирање што ви овозможува да бидете во тек " -"луѓето што ги познавате и луѓето кои ве интересираат.\n" +"%2$s е мрежно место за микроблогирање што Ви овозможува да бидете во тек " +"луѓето што ги познавате и луѓето кои Ве интересираат.\n" "\n" "Можете да објавувате и новости за Вас, Ваши размисли, и настани од Вашиот " "живот за да ги информирате луѓето што Ве знаат. Ова е воедно и одлично место " @@ -2291,13 +3136,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Мора да сте најавени за да можете да се зачлените во група." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Нема прекар или ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s се зачлени во групата %2$s" @@ -2306,17 +3145,126 @@ msgstr "%1$s се зачлени во групата %2$s" msgid "You must be logged in to leave a group." msgstr "Мора да сте најавени за да можете да ја напуштите групата." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Не членувате во таа група." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ја напушти групата %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Лиценца" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Лиценца на ова StatusNet-мрежно место" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Неважечки избор на лиценца." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Мора да го наведете сопственикот на содржината кога користите лиценца со " +"Сите права задржани." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Неважечки наслов на лиценцата. Дозволени се највеќе 255 знаци." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Неважечка URL-адреса на лиценцата." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Неважечка URL-адреса за сликата на лиценцата." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" +"URL-адресата на лиценцата мора да стои празна или да биде важечка адреса." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" +"Сликата на лиценцата мора да стои празна или да биде важечка URL-адреса." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Избор на лиценца" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Приватен" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Сите права задржани" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Тип" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Одберете лиценца" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Податоци за лиценцата" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Сопственик" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" +"Име и презиме на сопственикот на содржината на мрежното место (ако е " +"применливо)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Наслов на лиценцата" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Насловот на лиценцата." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL-адреса на лиценцата" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL-адреса за повеќе информации во врска со лиценцата." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL-адреса за сликата на лиценцата" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL-адреса за слика што ќе се прикажува со лиценцата." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Зачувај нагодувања на лиценцата" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Веќе сте најавени." @@ -2337,11 +3285,11 @@ msgstr "Најава" msgid "Login to site" msgstr "Најавете се" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Запамети ме" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Отсега врши автоматска најава. Не треба да се користи за јавни сметачи!" @@ -2392,68 +3340,78 @@ msgstr "Не можам да го направам корисникот %1$s а msgid "No current status." msgstr "Нема тековен статус." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Нов програм" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Мора да сте најавени за да можете да регистрирате програм." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Овој образец служи за регистрирање на нов програм." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Треба изворна URL-адреса." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Не можеше да се создаде програмот." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Нова група" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Овој образец служи за создавање нова група." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Нова порака" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Не можете да испратите порака до овојо корисник." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Нема содржина!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Нема назначено примач." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Не испраќајте си порака самите на себе; подобро тивко кажете си го тоа на " "себеси." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Пораката е испратена" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Директната порака до %s е испратена." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax-грешка" @@ -2461,7 +3419,7 @@ msgstr "Ajax-грешка" msgid "New notice" msgstr "Ново забелешка" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Забелешката е објавена" @@ -2514,10 +3472,11 @@ msgstr "Подновувања кои се совпаѓаат со пребар #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Овој корисник не дозволува подбуцнувања или сè уште нема потврдено или " -"поставено своја е-пошта." +"внесено своја е-пошта." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2527,73 +3486,100 @@ msgstr "Подбуцнувањето е испратено" msgid "Nudge sent!" msgstr "Подбуцнувањето е испратено!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Мора да сте најавени за да можете да ги наведете програмите." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth програми" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Програми што ги имате регистрирано" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Сè уште немате регистрирано ниеден програм," -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Поврзани програми" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Им имате дозволено пристап до Вашата сметка на следните програми." +msgid "The following connections exist for your account." +msgstr "За Вашата сметка постојат следниве врски." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Не сте корисник на тој програм." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Не можам да му го одземам пристапот на програмот: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Успешно одземавте пристап за %1$s и пристапниот жетон што почнува со %2$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Му немате дозволено пристап до Вашата сметка на ниеден програм." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Развивачите можат да ги нагодат регистрациските поставки за нивните програми " +"Дали сте програмер? [Регистрирајте клиентски програм за OAuth](%s) за да го " +"користите овој примерок на StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Забелешката нема профил." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s статус на %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Содржините од типот %s не се поддржани." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Ве молиме користете само %s URL-адреси врз прост HTTP-код." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -2605,36 +3591,45 @@ msgstr "Пребарување на луѓе" msgid "Notice Search" msgstr "Пребарување на забелешки" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Други нагодувања" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Раководење со разни други можности." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "(бесплатна услуга)" +msgstr " (бесплатна услуга)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Скратувај URL-адреси со" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Која автоматска служба за скратување да се користи." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Види изгледи на профилот" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Прикажи или сокриј профилни изгледи." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Услугата за скратување на URL-адреси е предолга (највеќе до 50 знаци)." #: actions/otp.php:69 @@ -2698,7 +3693,7 @@ msgid "6 or more characters" msgstr "6 или повеќе знаци" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Потврди" @@ -2710,11 +3705,11 @@ msgstr "Исто како лозинката погоре" msgid "Change" msgstr "Промени" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Лозинката мора да содржи барем 6 знаци." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Лозинките не се совпаѓаат." @@ -2734,156 +3729,273 @@ msgstr "Не можам да ја зачувам новата лозинка." msgid "Password saved." msgstr "Лозинката е зачувана." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Патеки" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Нагодувања за патеки и опслужувачи за оваа StatusNet мрежно место." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Нагодувања за патеки и опслужувачи за оваа StatusNet-мрежно место." -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Директориумот на темата е нечитлив: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Директориумот на аватарот е недостапен за запишување: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Директориумот на позадината е нечитлив: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Директориумот на локалите е нечитлив: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Неважечки SSL-опслужувач. Дозволени се најмногу до 255 знаци" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Мреж. место" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Опслужувач" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Назив на домаќинот на опслужувачот на мрежното место" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Патека" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Патека на мрежното место" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Патека на мреж. место." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Патека до локалите" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Директориум на места" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Патека до директориумот на локалите" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Патека на директориумот на местата." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Интересни URL-адреси" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Да користам интересни (почитливи и повпечатливи) URL-адреси?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Изглед" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Oпслужувач на темата" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Опслужувач за изгледи." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Патека до темата" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Мрежна патека за изгледите." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Директориум на темата" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Аватари" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Опслужувач на аватарот" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Патека на аватарот" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Директориум на аватарот" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Позадини" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Oпслужувач на позаднината" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Патека до позадината" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Директориум на позадината" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Никогаш" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Понекогаш" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Секогаш" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Користи SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Кога се користи SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-опслужувач" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Oпслужувач, кому ќе му се испраќаат SSL-барања" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-опслужувач за изгледи (стандарден: SSL-опслужувач)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-патека" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-патека за изгледите (стандардно: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Директориум" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Директориумот кадешто се сместени изгледите." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Аватари" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Опслужувач на аватарот" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Опслужувач за аватари." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Патека на аватарот" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Мрежна патека за аватарите." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Директориум на аватарот" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Директориумот кадешто се сместени аватарите." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Позадини" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Опслужувач за позадини." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Мрежна патека за позадините." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Опслужувач за позадини на SSL-страници." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Мрежна патека за позадините на SSL-страници." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Директориумот кадешто се сместени позадините." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Прилози" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Опслужувач за прилози." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Мрежна патека до прилозите." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Опслужувач за прилози на SSL-страници." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Мрежна патека за прилози на SSL-страници." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Директориумот кадешто се сместени прилозите." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Никогаш" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Понекогаш" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Секогаш" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Користи SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Кога да се користи SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Oпслужувач, кому ќе му се испраќаат SSL-барања." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Зачувај патеки" @@ -2893,7 +4005,7 @@ 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%% според име, локација или интереси. Поимите " +"Барајте луѓе на %%site.name%% според име, местоположба или интереси. Поимите " "одделете ги со празни места. Минималната должина на зборовите изнесува 3 " "знаци." @@ -2922,141 +4034,185 @@ msgstr "" "Лиценцата на забелешката „%1$s“ не е соодветна на лиценцата на мрежното " "место „%2$s“." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Нагодувања на профилот" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Во Вашиот личен профил може да дополните информации за луѓето да знаат " "повеќе за Вас." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Информации за профил" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 мали букви или бројки. Без интерпукциски знаци и празни места." +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 мали букви или бројки, без интерпукциски знаци и празни места." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Цело име" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Домашна страница" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL на Вашата домашна страница, блог или профил на друго мрежно место." +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "" +"URL-адреса на Вашата домашна страница, блог или профил на друго мрежно место." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Опишете се себеси и своите интереси во %d знаци." +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Опишете се себеси и своите интереси со %d знак." +msgstr[1] "Опишете се себеси и своите интереси со %d знаци." -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Опишете се себеси и Вашите интереси" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Биографија" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" -msgstr "Локација" +msgstr "Местоположба" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Каде се наоѓате, на пр. „Град, Област, Земја“." -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" -msgstr "Сподели ја мојата тековна локација при објавување на забелешки" +msgstr "" +"Прикажувај ја мојата тековна местоположба при објавување на забелешките" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Ознаки" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Ознаки за Вас самите (букви, бројки, -, . и _), одделени со запирка или " "празно место" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Јазик" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Претпочитан јазик" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Часовна зона" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Во која часовна зона обично се наоѓате?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Автоматски претплаќај ме на секој што се претплаќа на мене (најдобро за " "ботови и сл.)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Биографијата е преголема (највеќе до %d знаци)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Биографијата е предолга (највеќе до %d знак)." +msgstr[1] "Биографијата е предолга (највеќе до %d знаци)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Не е избрана часовна зона." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Јазикот е предлог (највеќе до 50 знаци)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Јазикот е предолг (највеќе до 50 знаци)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Неважечка ознака: „%s“" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Не можев да го подновам корисникот за автопретплата." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." -msgstr "Не можев да ги зачувам нагодувањата за локација" +msgstr "Не можев да ги зачувам нагодувањата за местоположба" -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Не можам да го зачувам профилот." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Не можев да ги зачувам ознаките." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Нагодувањата се зачувани" @@ -3135,25 +4291,39 @@ msgstr "" "org/wiki/Микроблогирање) заснована на слободната програмска алатка " "[StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Јавен облак од ознаки" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Овие се најпопуларните скорешни ознаки на %s " +msgid "These are most popular recent tags on %s" +msgstr "Овие се најпопуларните скорешни ознаки на %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." -msgstr "Сè уште некој нема објавено забелешка со [хеш-ознака](%%doc.tags%%)." +msgstr "" +"Сè уште некој нема објавено забелешка со [тарабна ознака](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Бидете првиот објавувач!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3162,7 +4332,7 @@ msgstr "" "Зошто не [регистрирате сметка](%%action.register%%) и станете прв што ќе " "објави!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Облак од ознаки" @@ -3188,7 +4358,7 @@ msgstr "Грешка со кодот за потврдување." #: actions/recoverpassword.php:97 msgid "This confirmation code is too old. Please start again." -msgstr "Овој код за потврда е премногу стар. Почнете од почеток." +msgstr "Овој код потврден код е престар. Почнете од почеток." #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." @@ -3277,14 +4447,14 @@ msgid "Unexpected password reset." msgstr "Неочекувано подновување на лозинката." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." -msgstr "Лозинката мора да биде од најмалку 6 знаци." +msgid "Password must be 6 characters or more." +msgstr "Лозинката мора да има барем 6 знаци." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Двете лозинки не се совпаѓаат." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Грешка во поставувањето на корисникот." @@ -3292,7 +4462,7 @@ msgstr "Грешка во поставувањето на корисникот." msgid "New password successfully saved. You are now logged in." msgstr "Новата лозинка е успешно зачувана. Сега сте најавени." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Жалиме, регистрацијата е само со покана." @@ -3304,7 +4474,7 @@ msgstr "Жалиме, неважечки код за поканата." msgid "Registration successful" msgstr "Регистрацијата е успешна" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрирај се" @@ -3312,19 +4482,19 @@ msgstr "Регистрирај се" msgid "Registration not allowed." msgstr "Регистрирањето не е дозволено." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Не може да се регистрирате ако не ја прифаќате лиценцата." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Адресата веќе постои." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Погрешно име или лозинка." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3332,59 +4502,63 @@ msgstr "" "Со овој образец можете да создадете нова сметка. Потоа ќе можете да " "објавувате забелешки и да се поврзувате со пријатели и колеги. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 мали букви или бројки, без интерпункциски знаци и празни места. " "Задолжително поле." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "Барем 6 знаци. Задолжително поле." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Исто што и лозинката погоре. Задолжително поле." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Е-пошта" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Се користи само за подновувања, објави и повраќање на лозинка." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Подолго име, по можност Вашето вистинско име и презиме" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL на Вашата домашна страница, блог или профил на друго мрежно место." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "Сфаќам дека содржината и податоците на %1$s се лични и доверливи." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Авторското правво на мојот текст и податотеки го има %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" "Јас ја задржувам сопственоста на авторското право врз мојот текст и " "податотеки." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Сите права задржани." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3393,7 +4567,7 @@ msgstr "" "Мојот текст и податотеки се достапни под %s, освен следниве приватни " "податоци: лозинка, е-пошта, IM-адреса и телефонски број." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3411,7 +4585,7 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Ви честитаме %1$s! И ви пожелуваме добредојде на %%%%site.name%%%%. Оттука " +"Ви честитаме %1$s! И Ви пожелуваме добредојде на %%%%site.name%%%%. Оттука " "можете да...\n" "\n" "* Отидете на [Вашиот профил](%2$s) и објавете ја Вашата прва порака.\n" @@ -3427,7 +4601,7 @@ msgstr "" "Ви благодариме што се зачленивте и Ви пожелуваме пријатни мигови со оваа " "служба." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3472,7 +4646,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL на Вашиот профил на друга соодветна служба за микроблогирање." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Претплати се" @@ -3510,7 +4684,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Повторено" @@ -3519,7 +4693,7 @@ msgid "Repeated!" msgstr "Повторено!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Одговори испратени до %s" @@ -3598,13 +4772,13 @@ msgstr "Корисникот е веќе во песочен режим." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Сесии" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Нагодувања на сесиите за оваа StatusNet-мрежно место." +msgid "Session settings for this StatusNet site" +msgstr "Сесиски нагодувања за ова StatusNet-мрежно место" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3623,7 +4797,6 @@ msgid "Turn on debugging output for sessions." msgstr "Вклучи извод од поправка на грешки за сесии." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зачувај нагодувања на мреж. место" @@ -3636,28 +4809,29 @@ msgid "Application profile" msgstr "Профил на програмот" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Икона" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Име" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Организација" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистики" @@ -3675,6 +4849,11 @@ msgstr "Дејства на програмот" msgid "Reset key & secret" msgstr "Клуч за промена и тајна" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Бриши" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Инфо за програмот" @@ -3710,41 +4889,40 @@ msgstr "" #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" -"Дали сте сигурни дека сакате да го смените вашиот кориснички клуч и тајната " -"фраза?" +"Дали сте сигурни дека сакате да го смените Вашиот кориснички клуч и тајна?" #: actions/showfavorites.php:79 #, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "Омилени забелешки на %1$s, стр. %2$d" +msgstr "Бендисан забелешки на %1$s, страница %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "Не можев да ги вратам омилените забелешки." +msgstr "Не можев да ги повратам бендисаните забелешки." #: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Канал за омилени забелешки на %s (RSS 1.0)" +msgstr "Канал за бендисани забелешки на %s (RSS 1.0)" #: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Канал за омилени забелешки на %s (RSS 2.0)" +msgstr "Канал за бендисани забелешки на %s (RSS 2.0)" #: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Канал за омилени забелешки на %s (Atom)" +msgstr "Канал за бендисани забелешки на %s (Atom)" #: actions/showfavorites.php:206 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:208 #, php-format @@ -3752,8 +4930,8 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" -"%s сè уште нема додадено омилени забелешки. Објавете нешто интересно, што " -"корисникот би го обележал како омилено :)" +"%s сè уште нема бендисано ниедна забелешка. Објавете нешто интересно, што " +"корисникот би го бендисал :)" #: actions/showfavorites.php:212 #, php-format @@ -3762,85 +4940,112 @@ msgid "" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s сè уште нема додадено омилени забелешки. Зошто не се [регистрирате](%%%%" +"%s сè уште нема додадено бендисани забелешки. Зошто не се [регистрирате](%%%%" "action.register%%%%) и потоа објавите нешто интересно што корисникот би го " -"додал како омилено :)" +"бендисал :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Ова е начин да го споделите она што Ви се допаѓа." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Група %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Група %1$s, стр. %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Профил на група" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Забелешка" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Алијаси" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Групни дејства" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Канал со забелешки за групата %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Канал со забелешки за групата %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Канал со забелешки за групата%s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF за групата %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Членови" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Нема)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Сите членови" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Создадено" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Членови" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3856,7 +5061,10 @@ msgstr "" "се](%%%%action.register%%%%) за да станете дел од оваа група и многу повеќе! " "([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3869,24 +5077,31 @@ msgstr "" "слободната програмска алатка [StatusNet](http://status.net/). Нејзините " "членови си разменуваат кратки пораки за нивниот живот и интереси. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Администратори" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Нема таква порака." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Само испраќачот и примачот можат да ја читаат оваа порака." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Порака за %1$s на %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Порака од %1$s на %2$s" @@ -3895,47 +5110,67 @@ msgstr "Порака од %1$s на %2$s" msgid "Notice deleted." msgstr "Избришана забелешка" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " означено со %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s го/ја означи %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s го/ја означи %2$s, страница %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, стр. %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Канал со забелешки за %1$s означен со %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Канал со забелешки за %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Канал со забелешки за %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Канал со забелешки за %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF за %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "Ова е историјата за %1$s, но %2$s сè уште нема објавено ништо." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Ова е хронологијата за %1$s, но %1$s сè уште нема објавено ништо." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3943,7 +5178,9 @@ msgstr "" "Имате видено нешто интересно во последно време? Сè уште немате објавено " "ниедна забелешка, но сега е добро време за да почнете :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3952,7 +5189,9 @@ msgstr "" "Можете да го подбуцнете корисникот %1$s или [му испратите нешто](%%%%action." "newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3966,7 +5205,9 @@ msgstr "" "register%%%%) за да можете да ги следите забелешките на **%s** и многу " "повеќе! ([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3977,7 +5218,8 @@ msgstr "" "(http://mk.wikipedia.org/wiki/Микроблогирање) заснована на слободната " "програмска алатка [StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Повторувања на %s" @@ -4093,33 +5335,40 @@ msgstr "" "Колку долго треба да почекаат корисниците (во секунди) за да можат повторно " "да го објават истото." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Објава на страница" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Уреди објава за цело мрежно место" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Не можам да ја зачувам објавата за мрежното место." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Објавата за цело мрежно место не треба да содржи повеќе од 255 знаци." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Текст на објавата за мрежното место" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -"Текст за главна објава по цело мрежно место (највеќе до 255 знаци; дозволено " -"и HTML)" +"Текст на главната објава по цело мрежно место (највеќе до 255 знаци; " +"дозволено и HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Зачувај ја објавава" @@ -4279,7 +5528,7 @@ msgstr "Нема внесено код" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Снимки" @@ -4336,12 +5585,14 @@ msgstr "Снимките ќе се испраќаат на оваа URL-адре msgid "Save snapshot settings" msgstr "Зачувај поставки за снимки" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Не сте претплатени на тој профил." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Не можев да ја зачувам претплатата." @@ -4349,10 +5600,6 @@ msgstr "Не можев да ја зачувам претплатата." msgid "This action only accepts POST requests." msgstr "Ова дејство прифаќа само POST-барања" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Нема таков профил." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4362,39 +5609,55 @@ msgstr "" msgid "Subscribed" msgstr "Претплатено" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Претплатници на %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Претплатници на %1$s, стр. %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Ова се луѓето што ги следат Вашите забелешки." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Ова се луѓето што ги следат забелешките на %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Немате претплатници. Претплатете се на луѓе што ги знаете, и тие можеби ќе " -"го сторат истото за Вас" +"го сторат истото за Вас." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s нема претплатници. Сакате да бидете првиот?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4403,26 +5666,31 @@ msgstr "" "%s нема претплатници. Зошто не [регистрирате сметка](%%%%action.register%%%" "%) и станете првиот претплатник?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Претплати на %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Претплати на %1$s, стр. %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Ова се луѓето чии забелешки ги следите." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Ова се луѓето чии забелешки ги следи %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4433,20 +5701,31 @@ msgid "" msgstr "" "Моментално не следите ничии забелешки. Претплатете се на луѓе кои ги " "познавате. Пробајте со [пребарување на луѓе](%%action.peoplesearch%%), " -"побарајте луѓе во група која ве интересира и меѓу нашите [избрани корисници]" +"побарајте луѓе во група која Ве интересира и меѓу нашите [избрани корисници]" "(%%action.featured%%). Ако сте [корисник на Twitter](%%action.twittersettings" "%%), тука можете автоматски да се претплатите на луѓе кои таму ги следите." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s не следи никого." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Канал со забелешки за %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "СМС" @@ -4484,7 +5763,7 @@ msgid "User profile" msgstr "Кориснички профил" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Фото" @@ -4548,74 +5827,94 @@ msgstr "" "мрежното место „%2$s“." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Корисник" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Кориснички нагодувања за ова StatusNet-мрежно место." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Кориснички нагодувања за ова StatusNet-мрежно место" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Неважечко ограничување за биографијата. Мора да е бројчено." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "НЕважечки текст за добредојде. Дозволени се највеќе 255 знаци." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Неважечки текст за добредојде. Дозволени се највеќе 255 знаци." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Неважечки опис по основно: „%1$s“ не е корисник." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Профил" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Ограничување за биографијата" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Максимална големина на профилната биографија во знаци." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Нови корисници" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Добредојде за нов корисник" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Текст за добредојде на нови корисници (највеќе до 255 знаци)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Основно-зададена претплата" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Автоматски претплатувај нови корисници на овој корисник." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Покани" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Поканите се овозможени" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Дали да им е дозволено на корисниците да канат други корисници." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Зачувај кориснички нагодувања" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Одобрете ја претплатата" @@ -4630,7 +5929,9 @@ msgstr "" "за забелешките на овој корисник. Ако не сакате да се претплатите, едноставно " "кликнете на „Одбиј“" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Лиценца" @@ -4718,11 +6019,13 @@ msgstr "Не можам да ја прочитам URL на аватарот „ msgid "Wrong image type for avatar URL ‘%s’." msgstr "Погрешен тип на слика за URL на аватарот „%s“." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Изглед на профилот" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4753,8 +6056,7 @@ msgstr "%s не членува во ниедна група." #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -"Обидете се со [пребарување на групи](%%action.groupsearch%%) и придружете им " -"се." +"Обидете се да [најдете групи](%%action.groupsearch%%) и да се зачлените." #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -4762,7 +6064,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Подновувања од %1$s на %2$s!" @@ -4823,7 +6125,7 @@ msgid "Plugins" msgstr "Приклучоци" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Верзија" @@ -4831,63 +6133,116 @@ msgstr "Верзија" msgid "Author(s)" msgstr "Автор(и)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Бендисај" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s ја бендиса забелешката %2$s." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Не можам да ја обработам URL-адресата „%s“" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Робин мисли дека нешто е невозможно." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Податотеките не смеат да бидат поголеми од %d бајти, а податотеката што ја " -"испративте содржи %d бајти. Подигнете помала верзија." +msgstr[0] "" +"Податотеките не смеат да бидат поголеми од %1$d бајт, а вие испративте " +"податотека од %2$d бајти. Подигнете помала верзија." +msgstr[1] "" +"Податотеките не смеат да бидат поголеми од %1$d бајти, а вие испративте " +"податотека од %2$d бајти. Подигнете помала верзија." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" -"Волку голема податотека ќе ја надмине Вашата корисничка квота од %d бајти." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Волку голема податотека ќе го надмине Вашето корисничко следување од %d бајт." +msgstr[1] "" +"Волку голема податотека ќе го надмине Вашето корисничко следување од %d " +"бајти." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "ВОлку голема податотека ќе ја надмине Вашата месечна квота од %d бајти" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Волку голема податотека ќе го надмине Вашето месечно следување од %d бајт" +msgstr[1] "" +"Волку голема податотека ќе го надмине Вашето месечно следување од %d бајти" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Погрешно податотечно име." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Зачленувањето во групата не успеа." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Не е дел од групата." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Напуштањето на групата не успеа." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Назнаката (ID) %s на профилот е неважечка." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Групната назнака %s е неважечка." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Зачлени се" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s се зачлени во групата %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4906,17 +6261,17 @@ msgid "No database name or DSN found anywhere." msgstr "Никаде не е пронајдено име на базата или DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Забрането Ви е испраќање на директни пораки." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Не можев да ја испратам пораката." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Не можев да ја подновам пораката со нов URI." @@ -4928,23 +6283,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Нема таков профил (%1$d) за забелешката (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" -msgstr "Грешка во базата на податоци при вметнувањето на хеш-ознаката: %s" +msgstr "Грешка во базата на податоци при вметнувањето на тарабната ознака: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Проблем со зачувувањето на белешката. Премногу долго." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Проблем со зачувувањето на белешката. Непознат корисник." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4952,7 +6307,7 @@ msgstr "" "неколку минути." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4961,36 +6316,50 @@ msgstr "" "неколку минути." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Забрането Ви е да објавувате забелешки на ова мрежно место." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "На saveKnownGroups му е уакажан грешен тип" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "На saveKnownGroups му е укажан погрешен тип." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Не можев да го зачувам одговорот за %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -4999,7 +6368,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5012,302 +6381,343 @@ msgid "Missing profile." msgstr "Недостасува профил." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Не можам да ја зачувам ознаката." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Блокирани сте од претплаќање." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Веќе претплатено!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Корисникот Ве има блокирано." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" -msgstr "Не сте претплатени!" +msgstr "Не сте ни претплатени!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Не можам да ја избришам самопретплатата." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Не можам да го избришам OMB-жетонот за претплата." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Не можам да ја избришам претплатата." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Следи" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s сега го/ја следи %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Не е зададен корисник за еднокорисничкиот режим." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Повикан е еднокориснички режим, но не е овозможен." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Не можев да ја создадам групата." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Не можев да поставам URI на групата." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Не можев да назначам членство во групата." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Не можев да ги зачувам информациите за локалните групи." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Смени профилни нагодувања" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Подигни аватар" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Смени лозинка" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Смени ракување со е-пошта" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Наместете изглед на Вашиот профил" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Други нагодувања" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Друго" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Страница без наслов" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Повеќе" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Главна навигација" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Личен профил и хронологија на пријатели" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Лично" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промена на е-пошта, аватар, лозинка, профил" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Сметка" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Поврзи се со услуги" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Поврзи се" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Промена на поставките на мрежното место" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Админ" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете пријатели и колеги да Ви се придружат на %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Покани" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Одјава" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Одјава" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создај сметка" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Регистрација" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Најава" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Најава" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Напомош!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Помош" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пребарајте луѓе или текст" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Барај" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Напомена за мрежното место" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Локални прегледи" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Напомена за страницата" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Споредна навигација" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Помош" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "За" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "ЧПП" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Услови" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Приватност" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Изворен код" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Контакт" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Значка" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Лиценца на програмот StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5317,13 +6727,16 @@ msgstr "" "%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** е сервис за микроблогирање." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5335,20 +6748,20 @@ msgstr "" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Лиценца на содржините на мрежното место" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содржината и податоците на %1$s се лични и доверливи." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5356,327 +6769,435 @@ msgstr "" "права задржани." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторските права на содржината и податоците им припаѓаат на учесниците. Сите " "права задржани." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Сите содржини и податоци на %1$s се достапни под лиценцата %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Прелом на страници" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Следно" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Претходно" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Се очекува коренски каналски елемент, но добив цел XML документ." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Фото" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Сè уште не е поддржана обработката на далечинска содржина." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Сè уште не е поддржана обработката на XML содржина." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Сè уште не е достапна обработката на вметната Base64 содржина." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Не можете да врште измени на ова мрежно место." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Менувањето на тој алатник не е дозволено." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() не е имплементирано." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() не е имплементирано." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Не можам да ги избришам нагодувањата за изглед." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Основни нагодувања на мрежното место" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Мреж. место" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Поставки на изгледот" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Изглед" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "Конфигурација на корисник" +msgstr "Кориснички поставки" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Корисник" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "Конфигурација на пристапот" +msgstr "Поставки на пристапот" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "Конфигурација на патеки" +msgstr "Поставки на патеки" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "Конфигурација на сесиите" +msgstr "Поставки на сесиите" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Уреди објава за мрежното место" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Поставки за снимки" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Постави лиценца за мреж. место" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурсот бара да може и да чита и да запишува, а вие можете само да " "читате." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Уреди програм" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Нема програм за тој потрошувачки клуч." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Лош пристапен жетон." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Нема корисник за тој жетон." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Не можевме да Ве потврдиме." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Не можев да создадам анонимен потрошувач." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Не можев да создадам анонимен OAuth-програм." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "Не можев да пронајдам профил и програм поврзан со жетонот за барање." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Не можев да го издадам жетонот за пристап." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Грешка во базата на податоци при вметнувањето на корисникот на OAuth-" +"програмот." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Се обидовте да отповикате непознат жетон." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Не успеав да го избришам отповиканиот жетон." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Икона за овој програм" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Опишете го програмот со %d знаци" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Опишете го програмот со %d знак" +msgstr[1] "Опишете го програмот со %d знака" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Опишете го Вашиот програм" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL на страницата на програмот" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Изворна URL-адреса" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Организацијата одговорна за овој програм" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL на страницата на организацијата" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL за пренасочување по заверката" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Прелистувач" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Работна површина" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Тип на програм, прелистувач или работна површина" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Само читање" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Читање-пишување" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Основно-зададен пристап за овој програм: само читање, или читање-пишување" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Откажи" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " од " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "читање-пишување" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "само читање" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Одобрено %1$s - „%2$s“ пристап." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Пристапен жетон што почнува со: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Одземи" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Прилози" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "авторскиот елемент мора да содржи елемент на име." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Автор" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Обезбедувач" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Забелешки кадешто се јавува овој прилог" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Ознаки за овој прилог" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Менувањето на лозинката не успеа" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Промената на лозинката не успеа." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Менувањето на лозинка не е дозволено" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Менувањето на лозинки не е дозволено." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Блокирај" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Резултати од наредбата" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "AJAX-грешка" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Наредбата е завршена" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Наредбата не успеа" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Не постои забелешка со таков id" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Не постои забелешка со таков id." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "Корисникот нема последна забелешка" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Не можев да пронајдам корисник со прекар %s" +msgid "Could not find a user with nickname %s." +msgstr "Не можев да пронајдам корисник со прекар %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Не можев да пронајдам локален корисник со прекар %s" +msgid "Could not find a local user with nickname %s." +msgstr "Не можев да најдам локален корисник со прекар %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Жалиме, оваа наредба сè уште не е имплементирана." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Нема баш логика да се подбуцнувате сами себеси." #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Испратено подбуцнување на %s" +msgid "Nudge sent to %s." +msgstr "Испратено подбуцнување на %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5687,55 +7208,64 @@ msgstr "" "Претплатници: %2$s\n" "Забелешки: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "Забелешката е обележана како омилена." +msgstr "Забелешката е обележана како бендисана." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Веќе членувате во таа група" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Не можев да го зачленам корисникот %1$s во групата %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s се зачлени во групата %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Не можев да го отстранам корисникот %1$s од групата %2$s." +msgid "%1$s left group %2$s." +msgstr "%1$s ја напушти групата %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Име и презиме: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" -msgstr "Локација: %s" +msgstr "Местоположба: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "За: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5744,147 +7274,180 @@ msgstr "" "%s е далечински профил; можете да праќате директни пораки само до корисници " "на истиот опслужувач." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Пораката е предолга - дозволени се највеќе %1$d знаци, а вие испративте %2$d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Пораката е предолга - дозволен е највеќе %1$d знак, а Вие испративте %2$d." +msgstr[1] "" +"Пораката е предолга - дозволени се највеќе %1$d знаци, а Вие испративте %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Директната порака до %s е испратена" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Грашка при испаќањето на директната порака." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Не можете да повторувате сопствени забалешки" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Оваа забелешка е веќе повторена" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Забелешката од %s е повторена" +msgid "Notice from %s repeated." +msgstr "Забелешката од %s е повторена." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Грешка при повторувањето на белешката." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" -"Забелешката е предолга - треба да нема повеќе од %d знаци, а Вие испративте %" -"d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Забелешката е предолга - треба да нема повеќе од %1$d знак, а Вие испративте " +"%2$d." +msgstr[1] "" +"Забелешката е предолга - треба да нема повеќе од %1$d знаци, а Вие " +"испративте %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Одговорот на %s е испратен" +msgid "Reply to %s sent." +msgstr "Одговорот на %s е испратен." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Грешка при зачувувањето на белешката." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Назначете го името на корисникот на којшто сакате да се претплатите" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Назначете го името на корисникот на којшто сакате да се претплатите." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Не можете да се претплаќате на OMB профили по наредба." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Претплатено на %s" +msgid "Subscribed to %s." +msgstr "Претплатено на %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "Назначете го името на корисникот од кого откажувате претплата." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Претплатата на %s е откажана" +msgid "Unsubscribed from %s." +msgstr "Откажана претплата на %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Наредбата сè уште не е имплементирана." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Известувањето е исклучено." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Не можам да исклучам известување." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Известувањето е вклучено." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Не можам да вклучам известување." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Наредбата за најава е оневозможена" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Наредбата за најава е оневозможена." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "Оваа врска може да се употреби само еднаш, и трае само 2 минути: %s" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Откажана претплата на %s" +msgid "Unsubscribed %s." +msgstr "Откажана претплата на %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Не сте претплатени никому." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Не ни го испративте тој профил." msgstr[1] "Не ни го испративте тој профил." -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Никој не е претплатен на Вас." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Оддалечена претплата" msgstr[1] "Оддалечена претплата" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Не членувате во ниедна група." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Не ни го испративте тој профил." msgstr[1] "Не ни го испративте тој профил." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5932,13 +7495,13 @@ msgstr "" "follow <nickname> - претплати се на корисник\n" "groups - список на групи кадешто членувате\n" "subscriptions - список на луѓе кои ги следите\n" -"subscribers - список на луѓе кои ве следат\n" +"subscribers - список на луѓе кои Ве следат\n" "leave <nickname> - откажи претплата на корисник\n" "d <nickname> <text> - директна порака за корисник\n" "get <nickname> - прикажи последна забелешка на корисник\n" "whois <nickname> - прикажи профилни информации за корисник\n" -"fav <nickname> - додај последна забелешка на корисник во омилени\n" -"fav #<notice_id> - додај забелешка со даден id како омилена\n" +"fav <nickname> - додај ја последната забелешка на корисникот во бендисани\n" +"fav #<notice_id> - додај забелешка со даден id како бендисана\n" "repeat #<notice_id> - повтори забелешка со даден id\n" "repeat <nickname> - повтори последна забелешка на корисник\n" "reply #<notice_id> - одговори на забелешка со даден id\n" @@ -5963,50 +7526,72 @@ msgstr "" "tracks - сè уште не е имплементирано.\n" "tracking - сè уште не е имплементирано.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Нема пронајдено конфигурациска податотека. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Нема пронајдено податотека со поставки." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Побарав конфигурациони податотеки на следниве места: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Пребарав податотеки со поставки на следниве места:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Препорачуваме да го пуштите инсталатерот за да го поправите ова." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Оди на инсталаторот." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Подновувања преку инстант-пораки (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "СМС" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Подновувања по СМС" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" -msgstr "Сврзувања" +msgstr "Поврзувања" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Овластени поврзани програми" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Грешка во базата на податоци" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "Подигни податотека" +msgstr "Подигање" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6014,41 +7599,57 @@ msgstr "" "Можете да подигнете лична позадинска слика. Максималната дозволена големина " "изнесува 2МБ." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Вкл." + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Искл." + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Врати одново" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Основно-зададениот изглед е вратен." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "Отстрани ја белешкава од омилени" +msgstr "Одбендисај ја забелешкава" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "Означи ја забелешкава како омилена" +msgstr "Бендисај ја забелешкава" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Омилено" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Извези податоци" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Канали" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6079,8 +7680,12 @@ msgstr "Оди" msgid "Grant this user the \"%s\" role" msgstr "Додели улога „%s“ на корисников" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви или бројки. Без интерпукциски знаци и празни места." + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "URL на страницата или блогот на групата или темата" #: lib/groupeditform.php:168 @@ -6089,62 +7694,117 @@ msgstr "Опишете ја групата или темата" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Опишете ја групата или темата со %d знаци" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Опишете ја групата или темата со највеќе %d знак" +msgstr[1] "Опишете ја групата или темата со највеќе %d знаци" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Локација на групата (ако има). На пр. „Град, Област, Земја“" - -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" +"Местоположба на групата (ако има). На пр. „Град, Сој. држава/област, Земја“" + +#: lib/groupeditform.php:190 +#, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Дополнителни прекари за групата, одделени со запирка или празно место, " +"највеќе до %d" +msgstr[1] "" "Дополнителни прекари за групата, одделени со запирка или празно место, " "највеќе до %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Група" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Група „%s“" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Членови" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Членови на групата „%s“" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Блокирани" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s блокирани корисници" +msgstr "Блокирани корисници од групата „%s“" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Уреди својства на групата %s" +msgstr "Уредување на својства на групата „%s“" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Лого" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Додај или уреди лого на %s" +msgstr "Додавање или уредување на лого на групата „%s “" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Додај или уреди изглед на %s" +msgstr "Додавање или уредување на изгледот на групата „%s“" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Групи со највеќе членови" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Групи со највеќе објави" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Ознаки во забелешките на групата %s" @@ -6158,38 +7818,57 @@ msgstr "Оваа страница не е достапна во форматот msgid "Unsupported image file format." msgstr "Неподдржан фомрат на слики." -#: lib/imagefile.php:88 -#, fuzzy, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "Ова е предолго. Максималната должина е 140 знаци." +msgstr "Податотеката е преголема. Максималната дозволена големина изнесува %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Делумно подигање." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Системска грешка при подигањето на податотеката." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Не е слика или податотеката е пореметена." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Податотеката е изгубена." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Непознат тип на податотека" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "МБ" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d МБ" +msgstr[1] "%d МБ" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "кб" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d кБ" +msgstr[1] "%d кБ" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d Б" +msgstr[1] "%d Б" #: lib/jabber.php:387 #, php-format @@ -6201,10 +7880,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Непознат извор на приемна пошта %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Придружи се" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Напушти" @@ -6217,49 +7892,54 @@ msgstr "Најава со корисничко име и лозинка" msgid "Sign up for a new account" msgstr "Создај нова сметка" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Потврдување на адресата" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Здраво %s.\n" +"Здраво %1$s.\n" "\n" -"Некој штотуку ја внесе оваа адреса на %s.\n" +"Некој штотуку ја внесе оваа адреса на %2$s.\n" "\n" "Ако тоа бевте Вие, и сакате да го потврдите влезот, употребете ја URL-" "адресата подолу:\n" "\n" -"%s\n" +"%3$s\n" "\n" "Ако не сте Вие, едноставно занемарете ја поракава.\n" "\n" "Ви благодариме за потрошеното време, \n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s сега ги следи Вашите забелешки на %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6269,8 +7949,12 @@ msgstr "" "од списокот на претплатници и да ја пријавите како спам кај администраторите " "на %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6279,10 +7963,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s сега ги следи Вашите забелешки на %2$s.\n" "\n" @@ -6290,26 +7974,30 @@ msgstr "" "\n" "%4$s%5$s%6$s\n" "Со искрена почит,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Изменете си ја е-поштенската адреса или ги нагодувањата за известувања на %8" +"Изменете си ја е-поштенската адреса или ги нагодувањата за известувања на %7" "$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Биографија: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Нова е-поштенска адреса за објавување на %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6319,7 +8007,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Имате нова адреса за објавување пораки на %1$s.\n" "\n" @@ -6328,33 +8016,38 @@ msgstr "" "Повеќе напатствија за е-пошта на %3$s.\n" "\n" "Со искрена почит,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Статус на %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Потврда за СМС" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: потврдете го како свој телефонскиов број со следниов код:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s Ве подбуцна" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6381,14 +8074,18 @@ msgstr "" "Со почит,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Нова приватна порака од %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6421,14 +8118,19 @@ msgstr "" "Со почит,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) додаде Ваша забелешка како омилена" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) ја бендиса вашата забелешка" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6448,8 +8150,7 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" -"%1$s (@%7$s) штотуку ја додаде Вашата забелешка од %2$s како една од " -"омилените.\n" +"%1$s (@%7$s) штотуку ја бендиса Вашата забелешка од %2$s.\n" "\n" "URL-адресата на Вашата забелешка е:\n" "\n" @@ -6459,7 +8160,7 @@ msgstr "" "\n" "%4$s\n" "\n" -"Погледнете список на омилените забелешки на %1$s тука:\n" +"Погледнете список на бендисаните забелешки на %1$s тука:\n" "\n" "%5$s\n" "\n" @@ -6467,7 +8168,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6478,13 +8179,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) Ви испрати забелешка што сака да ја прочитате" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) Ви испрати забелешка што сака да ја прочитате" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6525,7 +8233,7 @@ msgstr "" "\n" "%6$s\n" "\n" -"Еве список на сите @-одговори за вас:\n" +"Еве список на сите @-одговори за Вас:\n" "\n" "%7$s\n" "\n" @@ -6544,10 +8252,10 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" "Немате приватни пораки. Можете да испратите приватна порака за да се " -"впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки " +"впуштите во разговор со други корисници. Луѓето можат да Ви испраќаат пораки " "што ќе можете да ги видите само Вие." -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "од" @@ -6567,24 +8275,27 @@ msgstr "Жалиме, но тоа не е Вашата приемна е-пош msgid "Sorry, no incoming email allowed." msgstr "Жалиме, приемната пошта не е дозволена." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Неподдржан формат на порака: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Се појави грешка во базата на податоци при зачувувањето на Вашата " "податотека. Обидете се повторно." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "Подигнатата податотека ја надминува директивата upload_max_filesize во php." "ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6592,87 +8303,133 @@ msgstr "" "Подигнатата податотека ја надминува директивата the MAX_FILE_SIZE назначена " "во HTML-образецот." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Подигнатата податотека е само делумно подигната." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Недостасува привремена папка." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Податотеката не може да се запише на дискот." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Подигањето на податотеката е запрено од проширувањето." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Податотеката ја надминува квотата на корисникот." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Податотеката не може да се премести во целниот директориум." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Не можев да го утврдам mime-типот на податотеката." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Обидете се со друг формат на %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"„%1$s“ не е поддржан податотечен тип на овој опслужувач. Обидете се со друг %" +"2$s-формат." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s не е поддржан тип на податотека на овој опслужувач." +msgid "\"%s\" is not a supported file type on this server." +msgstr "„%s„ не е поддржан податотечен тип на овој опслужувач." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Испрати директна забелешка" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Оберете примач:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Нема заемни претплатници." + +#: lib/messageform.php:153 msgid "To" msgstr "За" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Расположиви знаци" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" -msgstr "Испрати" +msgstr "Прати" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Прекарот мора да има само мали букви и бројки и да нема празни места." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Прекарот не може да стои празен." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Прекарот не смее да биде подолг од %d знак." +msgstr[1] "Прекарот не смее да биде подолг од %d знака." #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Испрати забелешка" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Што има ново, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Приложи" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Приложи податотека" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "Споделете ја мојата локација." - -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "Не ја прикажувај мојата локација" +msgstr "Прикажи ја мојата местоположба." #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "Не ја прикажувај мојата местоположба" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6681,51 +8438,55 @@ msgstr "" "Обидете се подоцна." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "С" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "Ј" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "И" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "З" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "во" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "интернет" + +#: lib/noticelist.php:583 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -6741,55 +8502,52 @@ msgstr "Подбуцни" msgid "Send a nudge to this user" msgstr "Испрати подбуцнување на корисников" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Грешка во внесувањето на новиот профил" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Грешка при вметнувањето на новиот профил." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Грешка во внесувањето на аватарот" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Грешка при вметнувањето на аватарот." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Грешка во подновувањето на далечинскиот профил" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Грешка при вметнувањето на далечинскиот профил." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Грешка во внесувањето на далечинскиот профил" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Дуплирана забелешка." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Дуплирај забелешка" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Не може да се внесе нова претплата." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Личен" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Одговори" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" -msgstr "Омилени" +msgstr "Бендисани" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Примени" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Ваши приемни пораки" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "За праќање" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Ваши испратени пораки" @@ -6798,7 +8556,8 @@ msgstr "Ваши испратени пораки" msgid "Tags in %s's notices" msgstr "Ознаки во забелешките на %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Непознато" @@ -6880,9 +8639,10 @@ msgstr "Повтори ја забелешкава" msgid "Revoke the \"%s\" role from this user" msgstr "Одземи му ја улогата „%s“ на корисников" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Не е зададен корисник за еднокорисничкиот режим." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Страницата не е пронајдена." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6892,19 +8652,25 @@ msgstr "Песок" msgid "Sandbox this user" msgstr "Стави го корисников во песочен режим" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Пребарај по мрежното место" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Клучен збор" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Барај" +msgstr "Пребарај" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Помош со пребарување" @@ -6978,6 +8744,11 @@ msgstr "Облак од ознаки за луѓе" msgid "None" msgstr "Без ознаки" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Неважечко име за изгледот." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6988,26 +8759,30 @@ msgid "The theme file is missing or the upload failed." msgstr "Податотеката за изгледот недостасува или подигањето не успеало." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Зачувувањето на мотивот не успеа." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Неважечки изглед: лош состав на папката." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" -"Подигнатиот изглед е преголем; мора да биде помал од %d бајти (незбиен)." +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Подигнатиот изглед е преголем; мора да биде помал од %d бајт (ненабиен)." +msgstr[1] "" +"Подигнатиот изглед е преголем; мора да биде помал од %d бајти (ненабиен)." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Неважечки архив за изглеедот: недостасува податотеката css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7015,12 +8790,16 @@ msgstr "" "Изгледот содржи неважечки назив на податотека или папка. Дозволени се само " "ASCII-букви, бројки, долна црта и знак за минус." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Овој изглед содржи небезбедни податотечни наставки." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Изгледот содржи податотека од типот „.%s“, која не е дозволена." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Грешка при отворањето на архивот за мотив." @@ -7028,6 +8807,12 @@ msgstr "Грешка при отворањето на архивот за мот msgid "Top posters" msgstr "Најактивни објавувачи" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Одблокирај" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Извади од песочен режим" @@ -7052,123 +8837,176 @@ msgstr "Откажи претплата од овој корсиник" msgid "Unsubscribe" msgstr "Откажи ја претплатата" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Корисникот %s (%d) нема профилен запис." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Корисникот %1$s (%2$d) нема профилен запис." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Уреди аватар" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Кориснички дејства" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Бришењето на корисникот е во тек..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Уреди нагодувања на профилот" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Уреди" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Испрати му директна порака на корисников" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Порака" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Модерирај" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Корисничка улога" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Администратор" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Модератор" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "пред неколку секунди" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "пред една минута" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "пред %d минути" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "пред околу една минута" +msgstr[1] "пред околу %d минути" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "пред еден час" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "пред %d часа" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "пред околу еден час" +msgstr[1] "пред околу %d часа" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "пред еден ден" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "пред %d дена" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "пред околу еден ден" +msgstr[1] "пред околу %d дена" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "пред еден месец" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "пред %d месеца" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "пред околу еден месец" +msgstr[1] "пред околу %d месеци" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "пред една година" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s не е важечка боја!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "%s не е важечка боја! Користете 3 или 6 шеснаесетни (hex) знаци." - -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" +"%s не претставува важечка боја! Користете 3 или 6 шеснаесетни (hex) знаци." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "Непознат корисник. Одете на %s за да внесете адреса во Вашата сметка." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Пораката е предолга. Дозволен е највеќе %1$d знак, а вие испративте %2$d." +msgstr[1] "" "Пораката е предолга - дозволени се највеќе %1$d знаци, а вие испративте %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Неважечки XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "Неважечки XML. Нема XRD-корен." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Земам резерва на податотеката „%s“." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Нема назначено корисник. Ќе го употребам резервниот корисник." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "Има %d резервна ставка." +msgstr[1] "Има %d резервни ставки." diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index ab0506e347..8c5ac55d3f 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -1,160 +1,202 @@ -# Translation of StatusNet to Norwegian (bokmål)‬ +# Translation of StatusNet - Core to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net # -# Author@translatewiki.net: Laaknor -# Author@translatewiki.net: Nghtwlkr +# Author: Jon Harald Søby +# Author: Laaknor +# Author: Nghtwlkr # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:47+0000\n" -"Language-Team: Norwegian (bokmål)‬\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:07+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Tilgang" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Innstillinger for nettstedstilgang" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrering" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Forhindre anonyme brukere (ikke innlogget) å se nettsted?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privat" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Gjør at registrering kun kan skje gjennom invitasjon." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Kun invitasjon" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Deaktiver nye registreringer." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Lukket" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Lagre tilgangsinnstillinger" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Lagre" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Ingen slik side." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." -msgstr "Ingen slik bruker" +msgstr "Ingen slik bruker." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s og venner, side %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s og venner" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Mating for venner av %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Mating for venner av %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Mating for venner av %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Dette er tidslinjen for %s og venner, men ingen har postet noe enda." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -163,427 +205,636 @@ msgstr "" "Prøv å abbonere på flere personer, [bli med i en gruppe](%%action.groups%%) " "eller post noe selv." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kan prøve å [knuffe %1$s](../%2$s) fra dennes profil eller [poste noe for " -"å få hans eller hennes oppmerksomhet](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"Vær den første til å [poste om dette emnet](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Hvorfor ikke [opprette en konto](%%%%action.register%%%%) og så knuff %s " -"eller post en notis for å få hans eller hennes oppmerksomhet." +"Hvorfor ikke [registrere en konto](%%action.register%%) og vær den første " +"til å poste en!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Du og venner" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Oppdateringer fra %1$s og venner på %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "API-metode ikke funnet!" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Denne metoden krever en POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "Du må angi en verdi for parameteren 'device' med en av: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "Klarte ikke å oppdatere bruker." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Brukeren har ingen profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "Klarte ikke å lagre profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" -"Tjeneren kunne ikke håndtere så mye POST-data (%s bytes) på grunn av sitt " -"nåværende oppsett." +msgstr[0] "" +"Tjeneren kunne ikke håndtere så mye POST-data (%s byte) på grunn av sin " +"gjeldende konfigurasjon." +msgstr[1] "" +"Tjeneren kunne ikke håndtere så mye POST-data (%s bytes) på grunn av sin " +"gjeldende konfigurasjon." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Kunne ikke lagre dine innstillinger for utseende." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Klarte ikke å oppdatere bruker." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tidslinje" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, fuzzy, php-format +msgid "%s subscriptions" +msgstr "Alle abonnementer" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritter" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s gruppemedlemmer" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Du kan ikke blokkere deg selv!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokkering av bruker mislyktes." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Oppheving av blokkering av bruker mislyktes." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direktemeldinger fra %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle direktemeldinger sendt fra %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direktemeldinger til %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle direktemeldinger sendt til %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Ingen meldingstekst!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Dette er for langt. Meldingen kan bare være %d tegn lang." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Dette er for langt. Meldingen kan bare være %d tegn lang." +msgstr[1] "Dette er for langt. Meldingen kan bare være %d tegn lang." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Fant ikke mottakeren." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Kan ikke sende direktemeldinger til brukere du ikke er venn med." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Ikke send en melding til degselv; bare hvisk det stille til degselv istedet." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Fant ingen status med den ID-en." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Denne statusen er allerede en favoritt." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Kunne ikke opprette favoritt." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Den statusen er ikke en favoritt." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Kunne ikke slette favoritt." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Kunne ikke følge brukeren: fant ikke profilen." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Kunne ikke følge brukeren: %s er allerede i listen din." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Kunne ikke slutte å følge brukeren: Fant ikke brukeren." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Du kan ikke slutte å følge deg selv." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "To gyldige ID-er eller screen_names må oppgis." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Kunne ikke bestemme kildebruker." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Kunne ikke finne målbruker." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Det nicket er allerede i bruk. Prøv et annet." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ugyldig nick." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Hjemmesiden er ikke en gyldig URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Beklager, navnet er for langt (max 250 tegn)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Fullt navn er for langt (maks 255 tegn)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Beskrivelsen er for lang (maks %d tegn)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Beskrivelsen er for lang (maks %d tegn)." +msgstr[1] "Beskrivelsen er for lang (maks %d tegn)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Plassering er for lang (maks 255 tegn)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Plasseringen er for lang (maks 255 tegn)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "For mange alias! Maksimum %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "For mange alias. Maks %d er tillatt." +msgstr[1] "For mange alias. Maks %d er tillatt." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ugyldig alias: «%s»." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Aliaset «%s» er allerede i bruk. Prøv et annet." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias kan ikke være det samme som kallenavn." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Gruppe ikke funnet." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Du er allerede medlem av den gruppen." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Du har blitt blokkert fra den gruppen av administratoren." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Du er ikke et medlem av denne gruppen." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunne ikke fjerne bruker %1$s fra gruppe %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s sine grupper" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s grupper %2$s er et medlem av." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s grupper" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupper på %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Last opp fil" +msgstr "Opplasting feilet." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Ugyldig symbol." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Ingen verdi for oauth_token er oppgitt." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Ugyldig symbol." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Du er ikke autorisert." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Det var et problem med din sesjons-autentisering. Prøv igjen." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Ugyldig kallenavn / passord!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Databasefeil ved sletting av bruker fra programmet OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Databasefeil ved innsetting av bruker i programmet OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Databasefeil ved innsetting av oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Uventet skjemainnsending." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Et program ønsker å koble til kontoen din" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Tillat eller nekt tilgang" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Et program ønsker muligheten til å <strong>%3$s</strong> dine %4$s-" +"kontodata. Du bør kun gi tilgang til din %4$s-konto til tredjeparter du " +"stoler på." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -594,240 +845,620 @@ msgstr "" "<strong>%3$s</strong> dine %4$s-kontodata. Du bør bare gi tilgang til din %4" "$s-konto til tredjeparter du stoler på." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Nick" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Passord" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Nekt" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Avbryt" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Tillat" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Tillat eller nekt tilgang til din kontoinformasjon." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autoriser tilgang til din kontoinformasjon." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Autorisasjon kansellert." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Du har autorisert programmet" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Gå tilbake til programmet og skriv inn følgende sikkerhetskode for å " +"fullføre prosessen." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Du har autorisert %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Gå tilbake til %s og skriv inn følgende sikkerhetskode for å fullføre " +"prosessen." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Denne metoden krever en POST eller DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Du kan ikke slette statusen til en annen bruker." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ingen slik notis." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Kan ikke gjenta din egen notis." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Allerede gjentatt den notisen." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API-metode ikke funnet!" + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formatet støttes ikke." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status slettet." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Ingen status med den ID-en funnet." -#: actions/apistatusesupdate.php:221 -msgid "Client must provide a 'status' parameter with a value." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Kan ikke slette notisen." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Slett notis" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Klienten må angi en 'status'-parameter med en verdi." + +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Det er for langt. Maks notisstørrelse er %d tegn." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Det er for langt. Maks notisstørrelse er %d tegn." +msgstr[1] "Det er for langt. Maks notisstørrelse er %d tegn." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Ikke funnet." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Foreldrenotis ikke funnet." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." +msgstr[1] "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formatet støttes ikke." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritter fra %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s-oppdateringer markert som favoritt av %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Kunne ikke generere mating for gruppe - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Oppdateringer som nevner %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s offentlig tidslinje" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringer fra alle sammen!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Ikke-implementert." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Gjentatt til %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repetisjoner av %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser merket med %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringer merket med %1$s på %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Bare brukeren kan lese sine egne postbokser." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Finn innhold i notiser" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-metode under utvikling." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Bruker ikke funnet." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ingen slik profil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kunne ikke sette inn bekreftelseskode." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Finn innhold i notiser" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Ukjent" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Legg til i favoritter" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Ingen slik profil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s gruppemedlemmer" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%1$s grupper %2$s er et medlem av." + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Ukjent" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alle medlemmer" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ingen slik fil." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Kunne ikke slette favoritt." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Ingen slik gruppe." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alle medlemmer" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API-metode ikke funnet!" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ingen slik profil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Ikke autorisert." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Kunne ikke slette favoritt." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Fjernabonner" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Ukjent filtype" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ingen slike vedlegg." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Ingen kallenavn." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ingen størrelse." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ugyldig størrelse" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Brukerbilde" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Du kan laste opp en personlig avatar. Maks filstørrelse er %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Bruker uten samsvarende profil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinnstillinger" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Opprinnelig" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forhåndsvis" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Slett" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Last opp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Beskjær" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Ingen fil lastet opp." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Velg et kvadratisk utsnitt av bildet som din avatar." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Mistet våre fildata." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Brukerbildet har blitt oppdatert." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Oppdatering av avatar mislyktes." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar slettet." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Du har allerede blokkert den brukeren." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blokker brukeren" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -839,175 +1470,220 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nei" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Ikke blokker denne brukeren" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blokker denne brukeren" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Kunne ikke lagre blokkeringsinformasjon." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Ingen slik gruppe." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s blokkerte profiler" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blokkerte profiler, side %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "En liste over brukere som er blokkert fra å delta i denne gruppen." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Opphev blokkering av bruker fra gruppe" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Opphev blokkering" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Opphev blokkering av denne brukeren" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Post til %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Ingen bekreftelseskode." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Fant ikke bekreftelseskode." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Den bekreftelseskoden er ikke til deg." -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Ukjent adressetype %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Den adressen har allerede blitt bekreftet." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Klarte ikke å oppdatere bruker." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Kunne ikke slette e-postbekreftelse." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Kunne ikke slette adressebekreftelse." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Bekreft adresse" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adressen «%s» har blitt bekreftet for din konto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Samtale" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Du må være innlogget for å slette et program." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Program ikke funnet." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Du er ikke eieren av dette programmet." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 +#, fuzzy msgid "There was a problem with your session token." -msgstr "" +msgstr "Det var et problem med din sesjons-autentisering. Prøv igjen." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Slett program" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1018,31 +1694,90 @@ msgstr "" "brukertilkoblinger." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Ikke slett dette programmet" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Slett dette programmet" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Du må være innlogget for å slette en gruppe." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "ngen kallenavn eller ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Du har ikke tillatelse til å slette denne gruppen." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Kunne ikke slette gruppen %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Slettet gruppen %s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Slett gruppe" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Er du sikker på at du vil slette denne brukeren? Dette vil slette alle data " +"om brukeren fra databasen, uten sikkerhetskopi." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Ikke slett denne notisen" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Slett denne brukeren" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ikke logget inn." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Kan ikke slette notisen." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1050,21 +1785,24 @@ msgstr "" "Du er i ferd med å slette en notis permanent. Når dette er gjort kan det " "ikke gjøres om." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Slett notis" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Er du sikker på at du vil slette denne notisen?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Ikke slett denne notisen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1095,62 +1833,73 @@ msgstr "Slett denne brukeren" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Utseende" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Utseendeinnstillinger for dette StatusNet-nettstedet." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Ugyldig logo-URL." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Ugyldig logo-URL." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema ikke tilgjengelig: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Endre logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Nettstedslogo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Nettstedslogo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Endre tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Nettstedstema" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema for nettstedet." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Egendefinert tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Du kan laste opp et egendefinert StatusNet-tema som et .ZIP-arkiv." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Endre bakgrunnsbilde" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Bakgrunn" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1159,75 +1908,84 @@ msgstr "" "Du kan laste opp et bakgrunnsbilde for nettstedet. Maks filstørrelse er %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "På" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Av" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Slå på eller av bakgrunnsbilde." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Gjenta bakgrunnsbildet" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Endre farger" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Innhold" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Sidelinje" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Lenker" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avansert" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Egendefinert CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Bruk standard" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Gjenopprett standardutseende" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Tilbakestill til standardverdier" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Lagre" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Lagre utseende" @@ -1244,109 +2002,131 @@ msgstr "Legg til i favoritter" msgid "No such document \"%s\"" msgstr "Inget slikt dokument «%s»" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Rediger program" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Du må være innlogget for å redigere et program." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Inget slikt program." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Bruk dette skjemaet for å redigere programmet ditt." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Navn kreves." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Navn er for langt (maks 250 tegn)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Navn allerede i bruk. Prøv et annet." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Beskrivelse kreves." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Kilde-URL er for lang." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Kilde-URL er ikke gyldig." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisasjon kreves." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Organisasjon er for lang (maks 255 tegn)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Hjemmeside for organisasjon kreves." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Anrop er for langt." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Anrops-URL er ikke gyldig." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Kunne ikke oppdatere programmet." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Rediger %s gruppe" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Du må være innlogget for å opprette en gruppe." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Du må være en administrator for å redigere gruppen." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Bruk dette skjemaet for å redigere gruppen." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "beskrivelse er for lang (maks %d tegn)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ugyldig alias: «%s»" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Kunne ikke oppdatere gruppe." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Kunne ikke opprette alias." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Lagret valg." @@ -1364,12 +2144,12 @@ msgstr "Velg hvordan du mottar e-post fra %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-postadresse" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Nåværende bekreftede e-postadresse" @@ -1378,14 +2158,14 @@ msgstr "Nåværende bekreftede e-postadresse" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Fjern" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1393,25 +2173,19 @@ msgstr "" "Venter på bekreftelse av adressen. Sjekk innboksen din (og søppelboksen) for " "melding med videre veiledning." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Avbryt" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-postadresse («brukernavn@eksempel.org»)" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1419,110 +2193,117 @@ msgstr "Legg til" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "innkommende e-post" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Jeg vil poste notiser med e-post." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Send e-post til denne adressen for å poste nye notiser." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Angi en ny e-postadresse for å poste til; fjerner den gamle." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Ny" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-postinnstillinger" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Send meg varsler om nye abonnementer gjennom e-post." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Send meg en e-post når noen legger min notis til som favoritt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Send meg en e-post når noen sender meg en privat melding." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Send meg en e-post når noen sender meg et «@-svar»." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Tillat venner å knuffe meg og sende meg en e-post." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Jeg vil poste notiser med e-post." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publiser en MicroID for min e-postadresse." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "E-postinnstillinger lagret." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Ingen e-postadresse." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Klarer ikke normalisere epostadressen" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ugyldig e-postadresse." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Det er allerede din e-postadresse." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Den e-postadressen tilhører allerede en annen bruker." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Kunne ikke sette inn bekreftelseskode." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1533,50 +2314,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ingen ventende bekreftelse å avbryte." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Dette er feil e-postadresse." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kunne ikke slette e-postbekreftelse." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "E-postbekreftelse avbrutt." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Det er ikke din e-postadresse." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "E-postadressen ble fjernet." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ingen innkommende e-postadresse." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kunne ikke oppdatere brukeroppføring." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Inkommende e-postadresse fjernet." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Ny innkommende e-postadresse lagt til." @@ -1584,11 +2371,11 @@ msgstr "Ny innkommende e-postadresse lagt til." msgid "This notice is already a favorite!" msgstr "Denne notisen er allerede en favoritt." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Fjern favoritt" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populære notiser" @@ -1626,7 +2413,7 @@ msgstr "" "til å legge notisen til dine favoritter." #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s sine favorittnotiser" @@ -1695,7 +2482,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "Fjerntjeneste bruker ukjent versjon av OMB-protokollen." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Feil ved oppdatering av fjernprofil." @@ -1723,19 +2510,23 @@ msgstr "Du kan ikke tildele brukerroller på dette nettstedet." msgid "User already has this role." msgstr "Bruker har allerede denne rollen." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Ingen profil oppgitt." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Ingen profil med den ID'en." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Ingen gruppe oppgitt." @@ -1752,7 +2543,7 @@ msgstr "Bruker er allerede blokkert fra gruppe." msgid "User is not a member of group." msgstr "Bruker er ikke et medlem av gruppa." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Blokker bruker fra gruppe" @@ -1801,8 +2592,10 @@ msgstr "" "Tilpass hvordan gruppen din ser ut med et bakgrunnsbilde og en fargepalett " "av ditt valg." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Kunne ikke oppdatere utseende." @@ -1820,6 +2613,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Du kan laste opp en logo for gruppen din. Maks filstørrelse er %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Last opp" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Beskjær" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Velg et kvadratisk område av bildet som skal bli logoen." @@ -1832,48 +2633,55 @@ msgstr "Logo oppdatert." msgid "Failed updating logo." msgstr "Kunne ikke oppdatere logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s gruppemedlemmer" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s gruppemedlemmer, side %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "En liste over brukerne i denne gruppen." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Blokkér" +msgstr "Blokker" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Blokker denne brukeren" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Gjør brukeren til en administrator for gruppen" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Gjør til administrator" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Gjør denne brukeren til administrator" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s tidslinje" +msgstr "Gjør denne burkeren til administrator" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1946,15 +2754,18 @@ msgstr "" "Hvorfor ikke [registrere en konto](%%action.register%%) og [opprette gruppen]" "(%%action.newgroup%%) selv!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Bare en admin kan oppheve blokkering av gruppemedlemmer." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Bruker er ikke blokkert fra gruppe." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Feil under oppheving av blokkering." @@ -2003,7 +2814,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2013,63 +2827,63 @@ msgstr "" "vennelisten din i direktemeldingsklienten din eller på GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Direktemeldingsinnstillinger" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Send meg notiser gjennom Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Post en notis når min Jabber/Gtalk-status endres." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Send meg svar gjennom Jabber/GTalk fra personer jeg ikke abonnerer på." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publiser en MicroID for min Jabber/Gtalk-adresse." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Innstillinger lagret." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Ingen Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Klarer ikke normalisere Jabber-IDen" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Ugyldig Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Det er allerede din Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber-ID tilhører allerede en annen bruker." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2079,28 +2893,28 @@ msgstr "" "godkjenne %s for å sende meldinger til deg." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Det er feil IM-adresse." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Kunne ikke slette direktemeldingsbekreftelse." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Direktemeldingsbekreftelse avbrutt." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Det er ikke din Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Direktemeldingsadressen ble fjernet." @@ -2119,50 +2933,78 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Dette er innboksen din som innholder dine innkommende private meldinger." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Invitasjoner har blitt deaktivert." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Du må være innlogget for å invitere andre brukere til å bruke %s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" -msgstr "Ugyldig e-postadresse: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." +msgstr "Ugyldig e-postadresse: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Invitasjon(er) sendt" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Invitasjoner sendt" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Inviter nye brukere" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Du abonnerer allerede på disse brukerne:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Du abonnerer allerede på denne brukeren:" +msgstr[1] "Du abonnerer allerede på disse brukerne:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Denne personen er allerede en bruker, så du ble automatisk abonnent på ham/" +"henne:" +msgstr[1] "" "Disse personene er allerede brukere og du ble automatisk abonnent på dem:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitasjon(er) sendt til følgende personer:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitasjon sendt til følgende person:" +msgstr[1] "Invitasjoner sendt til følgende personer:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2170,43 +3012,54 @@ msgstr "" "Du vil bli varslet når dine inviterte aksepterer invitasjonen og registrerer " "seg på nettstedet. Takk for at du hjelper oss å vokse!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Bruk dette skjemaet for å invitere dine venner og kollegaer til å bruke " "denne tjenesten." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-postadresser" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresser til venner som skal inviteres (én per linje)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Personlig melding" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Om du vil kan du legge til en personlig melding i invitasjonen." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Send" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har invitert deg til %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2262,13 +3115,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du må være innlogget for å bli med i en gruppe." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "ngen kallenavn eller ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s ble med i gruppen %2$s" @@ -2277,24 +3124,127 @@ msgstr "%1$s ble med i gruppen %2$s" msgid "You must be logged in to leave a group." msgstr "Du må være innlogget for å forlate en gruppe." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Du er ikke et medlem av den gruppen." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s forlot gruppe %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Lisens" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Lisens for denne StatusNet-siden" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Ugyldig lisensvalg." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "Du må oppgi opphavsperson når du bruker enerettslisens." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Ugyldig lisenstittel. Maksimal lengde er 255 tegn." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Ugyldig lisensadresse." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Ugyldig lisensbildeadresse." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Lisensadressen må være tom eller en gyldig nettadresse." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Lisensbildet må være tomt eller en gyldig nettadresse." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Lisensvalg" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privat" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Alle rettigheter reservert" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Type" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Velg lisens" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Lisensdetaljer" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Eier" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Navn på eieren av nettstedets innhold (hvis aktuelt)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Lisenstittel" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Tittelen på lisensen." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Lisensadresse" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "Adresse til mer informasjon om lisensen." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "Lisensbildeadresse" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Adresse til et bilde som vises med lisensen." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Lagre lisensinnstillinger" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Allerede innlogget." #: actions/login.php:148 msgid "Incorrect username or password." -msgstr "Feil brukernavn eller passord" +msgstr "Feil brukernavn eller passord." #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." @@ -2308,11 +3258,11 @@ msgstr "Logg inn" msgid "Login to site" msgstr "Logg inn på nettstedet" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Husk meg" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Logg inn automatisk i framtiden. Ikke for datamaskiner du deler med andre!" @@ -2363,67 +3313,77 @@ msgstr "Kan ikke gjøre %1$s til administrator for gruppen %2$s." msgid "No current status." msgstr "Ingen nåværende status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" -msgstr "Nytt program" +msgid "New application" +msgstr "Ny applikasjon" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Du må være logget inn for å registrere et program." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Bruk dette skjemaet for å registrere et nytt program." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Nettadresse til kilde kreves." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Kunne ikke opprette program." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Ny gruppe" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Bruk dette skjemaet for å opprette en ny gruppe." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Ny melding" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Du kan ikke sende en melding til denne brukeren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Inget innhold." -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Ingen mottaker oppgitt." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Ikke send en melding til degselv; bare hvisk det stille til degselv istedet." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Melding sendt" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Direktemelding til %s sendt." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax-feil" @@ -2431,7 +3391,7 @@ msgstr "Ajax-feil" msgid "New notice" msgstr "Ny notis" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Notis postet" @@ -2484,10 +3444,11 @@ msgstr "Oppdateringer som samsvarer søkestrengen «%1$s» på %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Denne brukeren tillater ikke knuffing eller har ikke bekreftet eller angitt " -"sin e-post ennå." +"Denne brukeren tillater ikke dultinger, eller har ikke satt opp e-" +"postadressen sin ennå." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2497,72 +3458,98 @@ msgstr "Knuff sendt" msgid "Nudge sent!" msgstr "Knuff sendt!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Du må være logget inn for å liste opp programmene dine." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth-program" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Program du har registrert" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Du har ikke registrert noen program ennå." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Tilkoblede program" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Du har tillatt følgende programmer å få tilgang til den konto." +msgid "The following connections exist for your account." +msgstr "Følgende tilkoblinger finnes for kontoen din." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Du er ikke bruker av dette programmet." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." -msgstr "Kunne ikke tilbakekalle tilgang for programmet: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Kunne ikke fjerne tilgang for applikasjonen: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Du har fjernet tilgangen for %1$s og tilgangstegnet som begynner med %2$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Du har ikke tillatt noen programmer å bruke din konto." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "Utviklere kan redigere registreringsinnstillingene for sine program " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Notisen har ingen profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s sin status på %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Innholdstypen %s støttes ikke." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Bare %s-nettadresser over vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Ikke et støttet dataformat." @@ -2574,59 +3561,67 @@ msgstr "Personsøk" msgid "Notice Search" msgstr "Notissøk" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Andre innstillinger" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Håndter diverse andre alternativ." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr " (gratis tjeneste)" +msgstr " (gratis tjeneste)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Forkort nettadresser med" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Automatisk fortkortelsestjeneste å bruke." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Vis profilutseender" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Vis eller skjul profilutseender." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Navnet på nettadresseforkortelsestjenesten er for lang (maks 50 tegn)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "Adresseforkortelsestjenesten er for lang (maks 50 tegn)." #: actions/otp.php:69 msgid "No user ID specified." msgstr "Ingen bruker-ID spesifisert." #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "Nytt nick" +msgstr "Ingen notis spesifisert." #: actions/otp.php:90 msgid "No login token requested." msgstr "" #: actions/otp.php:95 -#, fuzzy msgid "Invalid login token specified." -msgstr "Nytt nick" +msgstr "Ugyldig symbol." #: actions/otp.php:104 +#, fuzzy msgid "Login token expired." -msgstr "" +msgstr "Logg inn på nettstedet" #: actions/outbox.php:58 #, php-format @@ -2667,7 +3662,7 @@ msgid "6 or more characters" msgstr "6 eller flere tegn" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Bekreft" @@ -2679,11 +3674,11 @@ msgstr "Samme som passord ovenfor" msgid "Change" msgstr "Endre" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Passord må være minst 6 tegn." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Passordene var ikke like." @@ -2703,156 +3698,275 @@ msgstr "Klarer ikke å lagre nytt passord." msgid "Password saved." msgstr "Passordet ble lagret" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Stier" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Sti- og tjenerinnstillinger for dette StatusNet-nettstedet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Sti- og tjenerinnstillinger for denne StatusNet-siden" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Temamappe ikke lesbar: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Avatarmappe ikke skrivbar: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Bakgrunnsmappe ikke skrivbar: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Lokaliseringsmappe ikke lesbar: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Ugyldig SSL-tjener. Maks lengde er 255 tegn." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Nettsted" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Tjener" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Vertsnavn for nettstedets tjener." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Sti" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Nettstedssti" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Nettstedssti." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Lokaliseringssti" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Temamappe" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "Lokaliseringsmappesti" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Pyntede nettadresser" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Bruk pyntede (mer lesbare og lettere å huske) nettadresser?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Tematjener" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Tjener for drakter." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Temasti" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Sti til drakter." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Temamappe" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatarer" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatartjener" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avatarsti" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatarmappe" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Bakgrunner" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Bakgrunnstjener" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Bakgrunnssti" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Bakgrunnsmappe" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Aldri" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Noen ganger" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Alltid" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Bruk SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Når SSL skal brukes" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-tjener" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Tjener SSL-forespørsler skal vises til" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-tjener for drakter (standard: SSL-tjener)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-sti" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-sti til drakter (standard: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Mappe" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Mappen drakter er plassert i." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatarer" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatartjener" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Tjener for avatarer." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avatarsti" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Sti til avatarer." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatarmappe" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Mappen avatarer er plassert i." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Bakgrunner" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Tjener for bakgrunner." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Sti til bakgrunner." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Tjener for bakgrunner på SSL-sider." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Sti til bakgrunner på SSL-sider." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Mappen bakgrunner er plassert i." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Vedlegg" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Tjener for vedlegg." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Sti til vedlegg." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Tjener for vedlegg på SSL-sider." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Sti til vedlegg på SSL-sider." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Mappen vedlegg er plassert i." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Aldri" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Noen ganger" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Alltid" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Bruk SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Når SSL skal brukes." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Tjener SSL-forespørsler skal rettes til." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Lagre stier" @@ -2888,140 +4002,182 @@ msgstr "Ugyldig notisinnhold." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Notislisensen ‘%1$s’ er ikke kompatibel med nettstedslisensen ‘%2$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profilinnstillinger" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Du kan oppdater din personlige profilinformasjon slik at personer får vite " "mer om deg." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profilinformasjon" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 små bokstaver eller nummer, ingen punktum eller mellomrom" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1‒64 små bokstaver eller tall, ingen tegnsetting eller mellomrom." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Fullt navn" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Hjemmesiden" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL til din hjemmeside, blogg, eller profil på annen nettside." +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "Adressen til din hjemmeside, blogg eller profil på et annet nettsted." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Beskriv degselv og dine interesser med %d tegn" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Beskriv deg selv og dine interesser på %d tegn" +msgstr[1] "Beskriv deg selv og dine interesser på %d tegn" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Beskriv degselv og dine interesser" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Om meg" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Plassering" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Hvor du er, for eksempel «By, fylke (eller region), land»" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Del min nåværende plassering når jeg poster notiser" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Tagger" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Merkelapper for degselv (bokstaver, nummer, -, ., og _), adskilt med komma " "eller mellomrom" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Foretrukket språk" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tidssone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Hvilken tidssone er du vanligvis i?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "«Om meg» er for lang (maks %d tegn)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Biografien er for lang (maks %d tegn)." +msgstr[1] "Biografien er for lang (maks %d tegn)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidssone ikke valgt." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Språk er for langt (maks 50 tegn)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Språknavnet er for langt (maks 50 tegn)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ugyldig merkelapp: «%s»" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Kunne ikke oppdatere bruker for autoabonnering." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Kunne ikke lagre plasseringsinnstillinger." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Klarte ikke å lagre profil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Kunne ikke lagre merkelapper." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Innstillinger lagret." @@ -3100,25 +4256,38 @@ msgstr "" "Mikroblogg)tjeneste basert på det frie programvareverktøyet [StatusNet]" "(http://status.net)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Offentlig merkelappsky" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Dette er de siste mest populære merkelappene på %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Vær den første til å poste en!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3127,7 +4296,7 @@ msgstr "" "Hvorfor ikke [registrere en konto](%%action.register%%) og vær den første " "til å poste en!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Merkelappsky" @@ -3240,14 +4409,15 @@ msgid "Unexpected password reset." msgstr "Uventet tilbakestilling av passord." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Passordet må bestå av 6 eller flere tegn." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Passord og bekreftelse samsvarer ikke." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Feil ved innstilling av bruker." @@ -3255,7 +4425,7 @@ msgstr "Feil ved innstilling av bruker." msgid "New password successfully saved. You are now logged in." msgstr "Nytt passord ble lagret. Du er nå logget inn." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Beklager, kun inviterte personer kan registrere seg." @@ -3267,7 +4437,7 @@ msgstr "Beklager, ugyldig invitasjonskode." msgid "Registration successful" msgstr "Registrering vellykket" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrer" @@ -3275,19 +4445,19 @@ msgstr "Registrer" msgid "Registration not allowed." msgstr "Registrering ikke tillatt." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Du kan ikke registrere deg om du ikke godtar lisensvilkårene." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "E-postadressen finnes allerede." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." -msgstr "Ugyldig brukernavn eller passord" +msgstr "Ugyldig brukernavn eller passord." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3295,56 +4465,59 @@ msgstr "" "Med dette skjemaet kan du opprette en ny konto. Du kan så poste notiser og " "knytte deg til venner og kollegaer. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "" -"1-64 små bokstaver eller nummer, ingen punktum eller mellomrom. Påkrevd." +msgstr "1-64 små bokstaver eller tall, ingen punktum eller mellomrom. Påkrevd." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 eller flere tegn. Påkrevd." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Samme som passord over. Kreves." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-post" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Kun brukt for oppdateringer, kunngjøringer og passordgjenoppretting" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Lengre navn, helst ditt \"ekte\" navn" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL til din hjemmeside, blogg, eller profil på annen nettside." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "Alle rettigheter reservert." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3353,7 +4526,7 @@ msgstr "" "Mine tekster og filer er tilgjengelig under %s med unntak av disse private " "dataene: passord, e-postadresse, direktemeldingsadresse og telefonnummer." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3386,7 +4559,7 @@ msgstr "" "\n" "Takk for at du registrerte deg og vi håper du kommer til å like tjenesten." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3432,7 +4605,7 @@ msgstr "" "Nettadresse til profilen din på en annen kompatibel mikrobloggingstjeneste" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abonner" @@ -3470,7 +4643,7 @@ msgstr "Du kan ikke gjenta din egen notis." msgid "You already repeated that notice." msgstr "Du har allerede gjentatt den notisen." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Gjentatt" @@ -3479,7 +4652,7 @@ msgid "Repeated!" msgstr "Gjentatt!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Svar til %s" @@ -3505,13 +4678,11 @@ msgid "Replies feed for %s (Atom)" msgstr "Svarstrøm for %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "" -"Dette er tidslinjen som viser svar til %1$s men %2$s har ikke mottat en " -"notis for hans oppmerksomhet ennå." +msgstr "Dette er tidslinjen for %1$s men %2$s har ikke postet noe ennå." #: actions/replies.php:204 #, php-format @@ -3523,13 +4694,13 @@ msgstr "" "eller [bli med i grupper](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kan prøve å [knuffe %1$s](../%2$s) eller [post noe for å få hans eller " -"hennes oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Vær den første til å [poste om dette emnet](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/repliesrss.php:72 #, php-format @@ -3558,13 +4729,13 @@ msgstr "Brukeren er allerede i sandkassen." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Økter" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Øktinnstillinger for dette StatusNet-nettstedet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3583,7 +4754,6 @@ msgid "Turn on debugging output for sessions." msgstr "Slå på feilsøkingsutdata for økter." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Lagre nettstedsinnstillinger" @@ -3596,28 +4766,29 @@ msgid "Application profile" msgstr "Programprofil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ikon" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Navn" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisasjon" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beskrivelse" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistikk" @@ -3635,6 +4806,11 @@ msgstr "Programhandlinger" msgid "Reset key & secret" msgstr "Tilbakestill nøkkel & hemmelighet" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Slett" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Programinformasjon" @@ -3656,8 +4832,9 @@ msgid "Access token URL" msgstr "" #: actions/showapplication.php:283 +#, fuzzy msgid "Authorize URL" -msgstr "" +msgstr "Forfatter" #: actions/showapplication.php:288 msgid "" @@ -3728,77 +4905,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Dette er en måte å dele det du liker." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s gruppe" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s gruppe, side %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Gruppeprofil" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "Nettadresse" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Merk" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Gruppehandlinger" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notismating for %s gruppe (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notismating for %s gruppe (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notismating for %s gruppe (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF for gruppen %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Medlemmer" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alle medlemmer" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Opprettet" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Medlemmer" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3814,7 +5020,10 @@ msgstr "" "%%%) for å bli medlem av denne gruppen og mange fler. ([Les mer](%%%%doc.help" "%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3827,24 +5036,31 @@ msgstr "" "programvareverktøyet [StatusNet](http://status.net/). Dets medlemmer deler " "korte meldinger om deres liv og interesser. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administratorer" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Ingen slik melding." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Kun senderen og mottakeren kan lese denne meldingen." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Melding til %1$s på %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Melding fra %1$s på %2$s" @@ -3853,47 +5069,67 @@ msgstr "Melding fra %1$s på %2$s" msgid "Notice deleted." msgstr "Notis slettet." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " merket %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, side %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Brukere som har merket seg selv med %1$s - side %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, side %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Notismating for %1$s merket %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Notismating for %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Notismating for %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Notismating for %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF for %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Dette er tidslinjen for %1$s men %2$s har ikke postet noe ennå." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3901,16 +5137,20 @@ msgstr "" "Sett noe interessant nylig? Du har ikke postet noen notiser ennå, så hvorfor " "ikke begynne nå? :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Du kan prøve å knuffe %1$s eller [poste noe for å få hans eller hennes " -"oppmerksomhet](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"Vær den første til å [poste om dette emnet](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3918,24 +5158,26 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste] " -"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " -"programvareverktøyet [StatusNet](http://status.net/). [Bli med nå](%%%%" -"action.register%%%%) for å følge **%s** og mange flere sine notiser. ([Les " -"mer](%%%%doc.help%%%%))" +"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste](http://" +"no.wikipedia.org/wiki/Mikroblogg) basert på det frie programvareverktøyet " +"[StatusNet](http://status.net/). [Bli med nå](%%%%action.register%%%%) for å " +"følge **%s** og mange flere sine notiser. ([Les mer](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" -"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste] " -"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " -"programvareverktøyet [StatusNet](http://status.net/). " +"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste](http://" +"no.wikipedia.org/wiki/Mikroblogg) basert på det frie programvareverktøyet " +"[StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetisjon av %s" @@ -4046,31 +5288,40 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Hvor lenge en bruker må vente (i sekund) for å poste den samme tingen igjen." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Nettstedsnotis" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 +#, fuzzy msgid "Edit site-wide message" -msgstr "" +msgstr "Ny melding" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Kunne ikke lagre nettstedsnotis." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "Maks lengde på en profilbiografi i tegn." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Tekst for nettstedsnotis" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Lagre nettstedsnotis" @@ -4230,25 +5481,28 @@ msgstr "Ingen kode skrevet inn" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 +#, fuzzy msgid "Manage snapshot configuration" -msgstr "" +msgstr "Endre nettstedskonfigurasjon" #: actions/snapshotadminpanel.php:127 +#, fuzzy msgid "Invalid snapshot run value." -msgstr "" +msgstr "Ugyldig rolle." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 +#, fuzzy msgid "Invalid snapshot report URL." -msgstr "" +msgstr "Ugyldig logo-URL." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4275,101 +5529,123 @@ msgid "Snapshots will be sent once every N web hits" msgstr "" #: actions/snapshotadminpanel.php:226 +#, fuzzy msgid "Report URL" -msgstr "" +msgstr "Nettadresse til kilde" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Innstillinger for IM" +msgstr "Lagre nettstedsinnstillinger" -#: actions/subedit.php:70 -msgid "You are not subscribed to that profile." -msgstr "" - -#. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 #, fuzzy +msgid "You are not subscribed to that profile." +msgstr "Ikke autorisert." + +#. TRANS: Server error displayed when updating a subscription fails with a database error. +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke lagre merkelapper." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Ingen slik profil." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" #: actions/subscribe.php:145 +#, fuzzy msgid "Subscribed" -msgstr "" +msgstr "Abonner" -#: actions/subscribers.php:50 -#, php-format -msgid "%s subscribers" -msgstr "" - -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, fuzzy, php-format -msgid "%1$s subscribers, page %2$d" -msgstr "Alle abonnementer" +msgid "%s subscribers" +msgstr "Alle abonnenter" -#: actions/subscribers.php:63 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format +msgid "%1$s subscribers, page %2$d" +msgstr "%1$s gruppemedlemmer, side %2$d" + +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Dette er personene som lytter til dine notiser." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Dette er personene som lytter til %ss notiser." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 -#, php-format +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 +#, fuzzy, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"Hvorfor ikke [registrere en konto](%%action.register%%) og vær den første " +"til å poste!" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Alle abonnementer" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "Alle abonnementer" +msgstr "%1$s grupper, side %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Dette er personene hvis notiser du lytter til." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Dette er personene hvis notiser %s lytter til." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4379,23 +5655,34 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s lytter ikke til noen." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Notismating for %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Mikroblogg av %s" +msgstr "Brukere som har merket seg selv med %1$s - side %2$d" #: actions/tag.php:87 #, php-format @@ -4413,8 +5700,9 @@ msgid "Notice feed for tag %s (Atom)" msgstr "Notismating for merkelapp %s (Atom)" #: actions/tagother.php:39 +#, fuzzy msgid "No ID argument." -msgstr "" +msgstr "Ingen vedlegg." #: actions/tagother.php:65 #, php-format @@ -4426,7 +5714,7 @@ msgid "User profile" msgstr "Brukerprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4435,10 +5723,13 @@ msgid "Tag user" msgstr "Merk bruker" #: actions/tagother.php:151 +#, fuzzy msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"Merkelapper for degselv (bokstaver, nummer, -, ., og _), adskilt med komma " +"eller mellomrom" #: actions/tagother.php:193 msgid "" @@ -4450,24 +5741,28 @@ msgid "Could not save tags." msgstr "Kunne ikke lagre merkelapper." #: actions/tagother.php:236 +#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "Bruk dette skjemaet for å redigere programmet ditt." #: actions/tagrss.php:35 +#, fuzzy msgid "No such tag." -msgstr "" +msgstr "Ingen slik side." #: actions/unblock.php:59 msgid "You haven't blocked that user." msgstr "Du har ikke blokkert den brukeren." #: actions/unsandbox.php:72 +#, fuzzy msgid "User is not sandboxed." -msgstr "" +msgstr "Brukeren er allerede i sandkassen." #: actions/unsilence.php:72 +#, fuzzy msgid "User is not silenced." -msgstr "" +msgstr "Bruker er allerede brakt til taushet." #: actions/unsubscribe.php:77 #, fuzzy @@ -4475,84 +5770,107 @@ msgid "No profile ID in request." msgstr "Ingen profil med den ID'en." #: actions/unsubscribe.php:98 +#, fuzzy msgid "Unsubscribed" -msgstr "" +msgstr "Abonner" #: actions/updateprofile.php:64 actions/userauthorization.php:337 -#, php-format +#, fuzzy, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "Notislisensen ‘%1$s’ er ikke kompatibel med nettstedslisensen ‘%2$s’." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Bruker" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Brukerinnstillinger for dette StatusNet-nettstedet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Ugyldig biografigrense. Må være numerisk." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Ugyldig velkomsttekst. Maks lengde er 255 tegn." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Ugyldig standardabonnement: '%1$s' er ikke bruker." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Biografigrense" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Maks lengde på en profilbiografi i tegn." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nye brukere" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Velkomst av ny bruker" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Velkomsttekst for nye brukere (Maks 255 tegn)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Standardabonnement" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Legger automatisk til et abonnement på denne brukeren til nye brukere." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Invitasjoner" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Invitasjoner aktivert" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Hvorvidt brukere tillates å invitere nye brukere." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autoriser abonnementet" @@ -4564,7 +5882,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Lisens" @@ -4590,8 +5910,9 @@ msgid "No authorization request!" msgstr "" #: actions/userauthorization.php:254 +#, fuzzy msgid "Subscription authorized" -msgstr "" +msgstr "Abonnement" #: actions/userauthorization.php:256 msgid "" @@ -4601,8 +5922,9 @@ msgid "" msgstr "" #: actions/userauthorization.php:266 +#, fuzzy msgid "Subscription rejected" -msgstr "" +msgstr "Abonnement" #: actions/userauthorization.php:268 msgid "" @@ -4629,12 +5951,12 @@ msgstr "" #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "Profil-URL ‘%s’ er for en lokal bruker." #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "Avatar-URL ‘%s’ er ikke gyldig." #: actions/userauthorization.php:350 #, php-format @@ -4644,18 +5966,22 @@ msgstr "Kan ikke lese avatar-URL ‘%s’" #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "" +msgstr "Feil bildetype for avatar-URL ‘%s’." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" -msgstr "Profil" +msgstr "Vis profilutseender" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 +#, fuzzy msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Tilpass hvordan gruppen din ser ut med et bakgrunnsbilde og en fargepalett " +"av ditt valg." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" @@ -4687,7 +6013,7 @@ msgstr "Prøv å [søke etter grupper](%%action.groupsearch%%) og bli med i dem. #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Oppdateringar fra %1$s på %2$s!" @@ -4738,7 +6064,7 @@ msgid "Plugins" msgstr "Programtillegg" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versjon" @@ -4746,75 +6072,119 @@ msgstr "Versjon" msgid "Author(s)" msgstr "Forfatter(e)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +#, fuzzy +msgid "Favor" +msgstr "Favoritter" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s /@%s) la din notis til som en favoritt" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Ugyldig filnavn." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "Klarte ikke å lagre profil." +msgstr "Gruppeprofil" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy +#: classes/Group_member.php:64 msgid "Not part of group." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke oppdatere gruppe." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy +#: classes/Group_member.php:72 msgid "Group leave failed." -msgstr "Klarte ikke å lagre profil." +msgstr "Gruppeprofil" + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Feil ved lagring av bruker; ugyldig." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Bli med" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "Kunne ikke oppdatere gruppe." +msgstr "Kunne ikke oppdatere lokal gruppe." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke opprette alias." #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 @@ -4822,17 +6192,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 +#, fuzzy msgid "You are banned from sending direct messages." -msgstr "" +msgstr "Feil ved sending av direktemelding." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Kunne ikke sette inn melding." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Kunne ikke oppdatere melding med ny nettadresse." @@ -4844,384 +6215,441 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "Databasefeil ved innsetting av bruker i programmet OAuth." #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problem ved lagring av notis. For lang." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problem ved lagring av notis. Ukjent bruker." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 +#, fuzzy msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "Du kan ikke bringe brukere til taushet på dette nettstedet." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problem ved lagring av notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problem ved lagring av gruppeinnboks." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Kunne ikke lagre lokal gruppeinformasjon." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "Brukeren har ingen profil." +msgstr "Manglende profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 #, fuzzy msgid "Unable to save tag." msgstr "Kunne ikke lagre nettstedsnotis." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 +#, fuzzy msgid "You have been banned from subscribing." -msgstr "" +msgstr "Brukeren har blokkert deg fra å abonnere." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Alle abonnementer" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Bruker har blokkert deg." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Alle abonnementer" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke slette favoritt." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke slette favoritt." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke slette favoritt." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s lytter nå til dine notiser på %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Velkommen til %1$s, @%2$s." +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Kunne ikke opprette gruppe." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Kunne ikke stille inn gruppe-URI." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Kunne ikke stille inn gruppemedlemskap." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Kunne ikke lagre lokal gruppeinformasjon." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Endre profilinnstillingene dine" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Last opp en avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Endre passordet ditt" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Endre eposthåndtering" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "Klarte ikke å lagre profil." +msgstr "Brukerprofil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Andre valg" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Andre" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Side uten tittel" -#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 -msgid "Primary site navigation" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" +#. TRANS: DT element for primary navigation menu. String is hidden in default CSS. +#: lib/action.php:531 +#, fuzzy +msgid "Primary site navigation" +msgstr "Endre nettstedskonfigurasjon" + #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personlig" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Endre e-posten, avateren, passordet og profilen din" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Koble til tjenester" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Koble til" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Endre nettstedskonfigurasjon" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter venner og kollegaer til å bli med deg på %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Inviter" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logg ut fra nettstedet" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Logg ut" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Opprett en konto" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrer" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Log inn på nettstedet" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Logg inn" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjelp meg." -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Hjelp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Søk etter personer eller tekst" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Søk" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Nettstedsnotis" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokale visninger" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Sidenotis" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hjelp" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Om" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "OSS/FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 +#, fuzzy msgid "Privacy" -msgstr "" +msgstr "Privat" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Kilde" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 +#, fuzzy msgid "Badge" -msgstr "" +msgstr "Knuff" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Programvarelisens for StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5231,13 +6659,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** er en mikrobloggingtjeneste." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5246,343 +6677,466 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 +#, fuzzy msgid "Site content license" -msgstr "" +msgstr "Programvarelisens for StatusNet" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 +#, fuzzy msgid "Pagination" -msgstr "" +msgstr "Registrering" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Etter" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Før" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Du kan ikke gjøre endringer på dette nettstedet." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 +#, fuzzy msgid "Changes to that panel are not allowed." -msgstr "" +msgstr "Registrering ikke tillatt." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() ikke implementert." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() ikke implementert." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 +#, fuzzy msgid "Unable to delete design setting." -msgstr "" +msgstr "Kunne ikke lagre dine innstillinger for utseende." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 +#, fuzzy msgid "Basic site configuration" -msgstr "" +msgstr "Endre nettstedskonfigurasjon" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Nettsted" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 +#, fuzzy msgid "Design configuration" -msgstr "" +msgstr "Tilgangskonfigurasjon" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Utseende" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Brukerkonfigurasjon" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Bruker" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Tilgangskonfigurasjon" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Stikonfigurasjon" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 +#, fuzzy msgid "Sessions configuration" -msgstr "" +msgstr "Tilgangskonfigurasjon" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Rediger nettstedsnotis" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 +#, fuzzy msgid "Snapshots configuration" +msgstr "Stikonfigurasjon" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" msgstr "" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Rediger program" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Kunne ikke opprette alias." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Kunne ikke opprette program." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Kunne ikke sette inn melding." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Databasefeil ved innsetting av bruker i programmet OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Ikon for dette programmet" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Beskriv programmet ditt med %d tegn" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Beskriv programmet ditt med %d tegn" +msgstr[1] "Beskriv programmet ditt med %d tegn" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Beskriv programmet ditt" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "Nettadresse til hjemmesiden for dette programmet" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Nettadresse til kilde" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 +#, fuzzy msgid "Organization responsible for this application" -msgstr "" +msgstr "Ikon for dette programmet" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL til organisasjonens hjemmeside" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Nettleser" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Skrivebord" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Type program, nettleser eller skrivebord" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Skrivebeskyttet" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Les og skriv" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Standardtilgang for dette programmet: skrivebeskyttet eller lese- og " "skrivetilgang" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Avbryt" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "les og skriv" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "skrivebeskyttet" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Tilbakekall" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Vedlegg" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Forfatter" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Leverandør" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Notiser hvor dette vedlegget forekommer" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 +#, fuzzy msgid "Tags for this attachment" -msgstr "" +msgstr "Ingen slike vedlegg." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Endring av passord mislyktes" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "Endring av passord er ikke tillatt" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokkér" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Kommandoresultat" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax-feil" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Kommando fullført" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Kommando feilet" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Notis med den id'en finnes ikke" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Bruker har ingen siste notis" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." +msgstr "Brukeren har ingen profil." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" -msgstr "Fant ingen bruker med kallenavn %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." +msgstr "Klarte ikke å oppdatere bruker med bekreftet e-post." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Fant ingen lokal bruker med kallenavn %s" +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Beklager, denne kommandoen er ikke implementert ennå." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Det gir ikke så mye mening å knuffe seg selv." #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Knuff sendt til %s" +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5593,202 +7147,244 @@ msgstr "" "Abonnenter: %2$s\n" "Notiser: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Notis markert som favoritt." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Du er allerede medlem av den gruppen." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s." +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Kunne ikke fjerne bruker %1$s fra gruppe %2$s" +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Fullt navn: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Posisjon: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Hjemmeside: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Om: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Melding for lang - maks er %1$d tegn, du sendte %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maks er %1$d tegn, du sendte %2$d." +msgstr[1] "Melding for lang - maks er %1$d tegn, du sendte %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direktemelding til %s sendt" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Feil ved sending av direktemelding." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Kan ikke gjenta din egen notis" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Allerede gjentatt den notisen" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, php-format -msgid "Notice from %s repeated" -msgstr "Notis fra %s repetert" +#: lib/command.php:553 +#, fuzzy, php-format +msgid "Notice from %s repeated." +msgstr "Nytt nick" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Feil ved repetering av notis." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Notis for lang - maks er %d tegn, du sendte %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maks er %1$d tegn, du sendte %2$d." +msgstr[1] "Melding for lang - maks er %1$d tegn, du sendte %2$d." -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" -msgstr "Svar til %s sendt" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." +msgstr "Svar til %s" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Feil ved lagring av notis." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +#, fuzzy msgid "Command not yet implemented." -msgstr "" +msgstr "Beklager, denne kommandoen er ikke implementert ennå." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +#, fuzzy msgid "Notification off." -msgstr "" +msgstr "Ingen bekreftelseskode." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +#, fuzzy msgid "Notification on." -msgstr "" +msgstr "Ingen bekreftelseskode." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +#, fuzzy msgid "Can't turn on notification." +msgstr "Kan ikke gjenta din egen notis." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" - -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Svar til %s" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Ikke autorisert." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ikke autorisert." msgstr[1] "Ikke autorisert." -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Svar til %s" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Svar til %s" msgstr[1] "Svar til %s" -#: lib/command.php:822 -#, fuzzy +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." -msgstr "Du er allerede logget inn!" +msgstr "Du er ikke et medlem av den gruppen." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du er allerede logget inn!" msgstr[1] "Du er allerede logget inn!" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5830,90 +7426,141 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Ingen konfigurasjonsfil funnet. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "Jeg så etter konfigurasjonfiler på følgende seter: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 +#, fuzzy msgid "Go to the installer." -msgstr "" +msgstr "Log inn på nettstedet" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Oppdatert med SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Tilkoblinger" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 +#, fuzzy msgid "Authorized connected applications" -msgstr "" +msgstr "Tilkoblede program" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Databasefeil" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Last opp fil" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 +#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "" +msgstr "Du kan laste opp en personlig avatar. Maks filstørrelse er %s." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "På" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Av" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Nullstill" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 +#, fuzzy msgid "Design defaults restored." -msgstr "" +msgstr "Utseende lagret." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 +#, fuzzy msgid "Disfavor this notice" -msgstr "" +msgstr "Slett denne notisen" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 +#, fuzzy msgid "Favor this notice" -msgstr "" +msgstr "Repeter denne notisen" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Venn av en venn" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Eksporter data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 #, fuzzy @@ -5925,8 +7572,9 @@ msgid "All" msgstr "Alle" #: lib/galleryaction.php:139 +#, fuzzy msgid "Select tag to filter" -msgstr "" +msgstr "Velg en operatør" #: lib/galleryaction.php:140 #, fuzzy @@ -5946,75 +7594,131 @@ msgstr "Gå" msgid "Grant this user the \"%s\" role" msgstr "Innvilg denne brukeren rollen «%s»" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 små bokstaver eller tall, ingen punktum eller mellomrom" + #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL til din hjemmeside, blogg, eller profil på annen nettside." +msgid "URL of the homepage or blog of the group or topic." +msgstr "Nettadresse til hjemmesiden for dette programmet" #: lib/groupeditform.php:168 -#, fuzzy msgid "Describe the group or topic" -msgstr "Beskriv degselv og dine interesser med 140 tegn" +msgstr "Beskriv programmet ditt" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Beskriv degselv og dine interesser med 140 tegn" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Beskriv programmet ditt med %d tegn" +msgstr[1] "Beskriv programmet ditt med %d tegn" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "Hvor du er, for eksempel «By, fylke (eller region), land»" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "Gruppe" +msgstr "" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Blokkert" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s blokkerte brukere" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "Rediger %s gruppeegenskaper" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Logo" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Legg til eller rediger %s logo" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupper med flest medlemmer" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupper med flest innlegg" -#: lib/grouptagcloudsection.php:56 -#, php-format +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 +#, fuzzy, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "Rediger %s gruppeegenskaper" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6025,38 +7729,57 @@ msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer" msgid "Unsupported image file format." msgstr "Bildefilformatet støttes ikke." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Filen er for stor. Maks filstørrelse er %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Delvis opplasting." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ikke et bilde eller en korrupt fil." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Mistet filen vår." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Ukjent filtype" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6068,10 +7791,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Ukjent innbokskilde %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Bli med" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Forlat" @@ -6084,27 +7803,29 @@ msgstr "Logg inn med brukernavn og passord" msgid "Sign up for a new account" msgstr "Registrer deg for en ny konto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Bekreftelse av e-postadresse" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Hei %s.\n" "\n" @@ -6119,22 +7840,29 @@ msgstr "" "Takk for tiden din,\n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s lytter nå til dine notiser på %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6142,10 +7870,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s lytter nå til dine notiser på %2$s.\n" "\n" @@ -6158,21 +7886,25 @@ msgstr "" "----\n" "Endre e-postadressen din eller dine varslingsvalg på %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografi: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Ny e-postadresse for posting til %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6181,7 +7913,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Du har en ny adresse for posting på %1$s.\n" "\n" @@ -6192,31 +7924,36 @@ msgstr "" "Vennlig hilsen,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-bekreftelse" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: bekreft telefonnummeret ditt med denne koden:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Du har blitt knuffet av %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6243,14 +7980,18 @@ msgstr "" "Med vennlig hilsen,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Ny privat melding fra %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6283,14 +8024,19 @@ msgstr "" "Med vennlig hilsen,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s /@%s) la din notis til som en favoritt" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6328,7 +8074,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6339,13 +8085,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) sendte en notis for din oppmerksomhet" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6408,7 +8161,7 @@ msgstr "" "engasjere andre brukere i en samtale. Personer kan sende deg meldinger som " "bare du kan se." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "fra" @@ -6421,113 +8174,164 @@ msgid "Not a registered user." msgstr "Ikke en registrert bruker." #: lib/mailhandler.php:46 +#, fuzzy msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Det er ikke din e-postadresse." #: lib/mailhandler.php:50 +#, fuzzy msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "Ingen innkommende e-postadresse." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Meldingstypen støttes ikke: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Filopplasting stoppet grunnet filendelse." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Fil overgår brukers kvote." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Filen kunne ikke flyttes til målmappen." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Kunne ikke avgjøre filens MIME-type." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Prøv å bruke et annet %s-format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "filtypen %s støttes ikke på denne tjeneren." +msgid "\"%s\" is not a supported file type on this server." +msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Send en direktenotis" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Velg lisens" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Alle abonnementer" + +#: lib/messageform.php:153 msgid "To" msgstr "Til" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Tilgjengelige tegn" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Send" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Kallenavn kan kun ha små bokstaver og tall og ingen mellomrom." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send en notis" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Hva skjer %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Legg ved" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Legg ved en fil" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Del min posisjon" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Ikke del min posisjon" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6536,51 +8340,56 @@ msgstr "" "igjen senere" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "Ø" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "V" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "på" -#: lib/noticelist.php:567 -msgid "in context" +#: lib/noticelist.php:517 +msgid "web" msgstr "" -#: lib/noticelist.php:602 +#: lib/noticelist.php:583 +#, fuzzy +msgid "in context" +msgstr "Inget innhold." + +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetert av" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Notis repetert" @@ -6596,64 +8405,63 @@ msgstr "Knuff" msgid "Send a nudge to this user" msgstr "Send et knuff til denne brukeren" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplikatnotis" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 +#, fuzzy msgid "Couldn't insert new subscription." -msgstr "" +msgstr "Kunne ikke sette inn bekreftelseskode." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personlig" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Svar" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritter" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Innboks" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Dine innkommende meldinger" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Utboks" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Dine sendte meldinger" #: lib/personaltagcloudsection.php:56 -#, php-format +#, fuzzy, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "Bruker har ingen siste notis" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Ukjent" @@ -6708,16 +8516,19 @@ msgid "Recent tags" msgstr "Nyeste Tagger" #: lib/publicgroupnav.php:88 +#, fuzzy msgid "Featured" -msgstr "" +msgstr "Profilerte brukere" #: lib/publicgroupnav.php:92 +#, fuzzy msgid "Popular" -msgstr "" +msgstr "Populære notiser" #: lib/redirectingaction.php:95 +#, fuzzy msgid "No return-to arguments." -msgstr "" +msgstr "Ingen vedlegg." #: lib/repeatform.php:107 msgid "Repeat this notice?" @@ -6732,36 +8543,44 @@ msgid "Repeat this notice" msgstr "Repeter denne notisen" #: lib/revokeroleform.php:91 -#, php-format +#, fuzzy, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "" +msgstr "Blokker denne brukeren fra denne gruppen" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API-metode ikke funnet!" #: lib/sandboxform.php:67 +#, fuzzy msgid "Sandbox" -msgstr "" +msgstr "Innboks" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "Kan ikke slette notisen." +msgstr "Opphev blokkering av denne brukeren" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Søk nettsted" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Nøkkelord" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Søk" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Søkehjelp" @@ -6782,45 +8601,46 @@ msgid "Find groups on this site" msgstr "Finn grupper på dette nettstedet" #: lib/section.php:89 +#, fuzzy msgid "Untitled section" -msgstr "" +msgstr "Side uten tittel" #: lib/section.php:106 msgid "More..." msgstr "Mer..." #: lib/silenceform.php:67 +#, fuzzy msgid "Silence" -msgstr "" +msgstr "Nettstedsnotis" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Kan ikke slette notisen." +msgstr "Slett denne brukeren" #: lib/subgroupnav.php:83 -#, php-format +#, fuzzy, php-format msgid "People %s subscribes to" -msgstr "" +msgstr "Fjernabonner" #: lib/subgroupnav.php:91 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Svar til %s" +msgstr "Fjernabonner" #: lib/subgroupnav.php:99 -#, php-format +#, fuzzy, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "%1$s grupper %2$s er et medlem av." #: lib/subgroupnav.php:105 msgid "Invite" msgstr "Inviter" #: lib/subgroupnav.php:106 -#, php-format +#, fuzzy, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "Inviter venner og kollegaer til å bli med deg på %s" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6836,6 +8656,12 @@ msgstr "" msgid "None" msgstr "Ingen" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ugyldig filnavn." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6845,37 +8671,44 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Oppdatering av avatar mislyktes." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 #, fuzzy msgid "Error opening theme archive." msgstr "Feil ved oppdatering av fjernprofil." @@ -6884,149 +8717,210 @@ msgstr "Feil ved oppdatering av fjernprofil." msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Opphev blokkering" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "Kan ikke slette notisen." +msgstr "Opphev blokkering av denne brukeren" #: lib/unsilenceform.php:67 msgid "Unsilence" msgstr "" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "Kan ikke slette notisen." +msgstr "Opphev blokkering av denne brukeren" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +#, fuzzy msgid "Unsubscribe from this user" -msgstr "" +msgstr "Abonner på denne brukeren" #: lib/unsubscribeform.php:137 +#, fuzzy msgid "Unsubscribe" -msgstr "" +msgstr "Abonner" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Brukeren har ingen profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Brukerbilde" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 +#, fuzzy msgid "User actions" -msgstr "" +msgstr "Gruppehandlinger" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Endre profilinnstillinger" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Rediger" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Send en direktemelding til denne brukeren" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Melding" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderer" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Brukerrolle" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "noen få sekunder siden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "omtrent ett minutt siden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "omtrent %d minutter siden" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "omtrent én time siden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "omtrent %d timer siden" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "omtrent én dag siden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "omtrent %d dager siden" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "omtrent én måned siden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "omtrent %d måneder siden" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "omtrent ett år siden" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s er ikke en gyldig farge." -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s er ikke en gyldig farge. Bruk 3 eller 6 heksadesimale tegn." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Melding for lang - maks er %1$d tegn, du sendte %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maks er %1$d tegn, du sendte %2$d." +msgstr[1] "Melding for lang - maks er %1$d tegn, du sendte %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ugyldig størrelse" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Ingen bruker-ID spesifisert." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index b704f8aefa..da3e2c4b4f 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -1,156 +1,195 @@ -# Translation of StatusNet to Dutch +# Translation of StatusNet - Core to Dutch (Nederlands) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Itavero -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Siebrand +# Author: Brion +# Author: Itavero +# Author: McDutchie +# Author: Siebrand # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:12:58+0000\n" -"Language-Team: Dutch\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:05+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Toegang" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Instellingen voor sitetoegang" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registratie" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Mogen anonieme gebruikers (niet aangemeld) de website bekijken?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Geen anonieme toegang" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Registratie alleen op uitnodiging." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Alleen op uitnodiging" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Nieuwe registraties uitschakelen." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Gesloten" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Toegangsinstellingen opslaan" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Opslaan" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Deze pagina bestaat niet." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Onbekende gebruiker." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s en vrienden, pagina %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s en vrienden" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed voor vrienden van %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed voor vrienden van %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed voor vrienden van %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -158,7 +197,9 @@ msgstr "" "Dit is de tijdlijn voor %s en vrienden, maar niemand heeft nog mededelingen " "geplaatst." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -167,8 +208,9 @@ msgstr "" "Probeer te abonneren op meer gebruikers, [word lid van een groep](%%action." "groups%%) of plaats zelf berichten." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -178,7 +220,11 @@ msgstr "" "bericht voor die gebruiker plaatsen](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -187,59 +233,80 @@ msgstr "" "U kunt een [gebruiker aanmaken](%%%%action.register%%%%) en %s dan porren of " "een bericht sturen." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "U en vrienden" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Updates van %1$s en vrienden op %2$s." -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "De API-functie is niet aangetroffen." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Deze methode vereist een POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -247,361 +314,534 @@ msgstr "" "U moet een parameter met de naam \"device\" opgeven met een van de volgende " "waardes: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Het was niet mogelijk de gebruiker bij te werken." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Deze gebruiker heeft geen profiel." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Het was niet mogelijk het profiel op te slaan." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"De server was niet in staat zoveel POST-gegevens te verwerken (%s byte) " +"vanwege de huidige instellingen." +msgstr[1] "" "De server was niet in staat zoveel POST-gegevens te verwerken (%s bytes) " "vanwege de huidige instellingen." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Het was niet mogelijk om uw ontwerpinstellingen op te slaan." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Het was niet mogelijk uw ontwerp bij te werken." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Hoofdmenu" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tijdlijn" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Abonnementen van %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favorieten" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "leden van de groep %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "U kunt zichzelf niet blokkeren!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Het blokkeren van de gebruiker is mislukt." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Het deblokkeren van de gebruiker is mislukt." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Privéberichten van %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle privéberichten van %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Privéberichten aan %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle privéberichten aan %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Het bericht is leeg!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Dat is te lang. De maximale berichtlengte is %d tekens." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Dat is te lang. De maximale berichtlengte is %d teken." +msgstr[1] "Dat is te lang. De maximale berichtlengte is %d tekens." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "De ontvanger is niet aangetroffen." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "U kunt geen privéberichten sturen aan gebruikers die niet op uw " "vriendenlijst staan." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Stuur geen berichten naar uzelf. Zeg het gewoon in uw hoofd." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Er is geen status gevonden met dit ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Deze mededeling staat al in uw favorietenlijst." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Het was niet mogelijk een favoriet aan te maken." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Deze mededeling staat niet in uw favorietenlijst." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "" "Het was niet mogelijk deze mededeling van uw favorietenlijst te verwijderen." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "U kunt deze gebruiker niet volgen, omdat deze niet bestaat." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "U kunt de gebruiker %s niet volgen, omdat deze al op uw lijst staat." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Het is niet mogelijk deze gebruiker niet langer te volgen: de gebruiker is " "niet aangetroffen." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "U kunt het abonnement op uzelf niet opzeggen." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" -"Er moeten twee gebruikersnamen (screen_names) of ID's opgegeven worden." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Er moeten twee ID's of gebruikersnamen opgegeven worden." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Het was niet mogelijk de brongebruiker te bepalen." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Het was niet mogelijk de doelgebruiker te vinden." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"De gebruikersnaam mag alleen kleine letters en cijfers bevatten. Spaties " -"zijn niet toegestaan." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "" "De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ongeldige gebruikersnaam!" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "De thuispagina is geen geldige URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "De volledige naam is te lang (maximaal 255 tekens)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "De beschrijving is te lang (maximaal %d tekens)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "De beschrijving is te lang (maximaal %d teken)." +msgstr[1] "De beschrijving is te lang (maximaal %d tekens)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Locatie is te lang (maximaal 255 tekens)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "De locatie is te lang (maximaal 255 tekens)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Te veel aliassen! Het maximale aantal is %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Te veel aliassen! Het maximale aantal is %d." +msgstr[1] "Te veel aliassen! Het maximale aantal is %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ongeldige alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "De alias \"%s\" wordt al gebruikt. Geef een andere alias op." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Een alias kan niet hetzelfde zijn als de gebruikersnaam." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "De groep is niet aangetroffen." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "U bent al lid van die groep." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Het was niet mogelijk gebruiker %1$s toe te voegen aan de groep %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "U bent geen lid van deze groep." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Het was niet mogelijk gebruiker %1$s uit de group %2$s te verwijderen." +msgstr "Het was niet mogelijk gebruiker %1$s uit de groep %2$s te verwijderen." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Groepen van %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Groepen op de site %1$s waar %2$s lid van is." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s groepen" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "groepen op %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Uploaden is mislukt." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Het opgegeven token of controlegetal is ongeldig." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." -msgstr "Er is geen oauth_token parameter opgegeven." +msgstr "Er is geen parameter oauth_token opgegeven." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Ongeldig token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Ongeldig verzoektoken." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Het verzoektoken is al geautoriseerd." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " "alstublieft." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Ongeldige gebruikersnaam of wachtwoord." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" -"Er is een databasefout opgetreden tijdens het verwijderen van de OAuth " -"applicatiegebruiker." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" -"Er is een databasefout opgetreden tijdens het toevoegen van de OAuth " -"applicatiegebruiker." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Het verzoektoken %s is geautoriseerd. Wissel het alstublieft uit voor een " -"toegangstoken." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Het verzoektoken %s is geweigerd en ingetrokken." +"Er is een databasefout opgetreden tijdens het invoegen van de " +"oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Het formulier is onverwacht ingezonden." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Een applicatie vraagt toegang tot uw gebruikersgegevens" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Toegang toestaan of ontzeggen" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Een applicatie vraagt toegang van het type \"<strong>%3$s</strong> tot uw " +"gebruikersgegevens bij %4$s. Geef alleen toegang tot uw gebruiker bij %4$s " +"aan derde partijen die u vertrouwt." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -612,244 +852,633 @@ msgstr "" "van het type \"<strong>%3$s</strong> tot uw gebruikersgegevens. Geef alleen " "toegang tot uw gebruiker bij %4$s aan derde partijen die u vertrouwt." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" -msgstr "Gebruiker" +msgstr "Gebruikersgegevens" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Gebruikersnaam" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Wachtwoord" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Ontzeggen" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Annuleren" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Toestaan" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Toegang tot uw gebruikersgegevens toestaan of ontzeggen." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Toegang tot uw gebruikersgegevens geven." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Autorisatie geannuleerd." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Het verzoektoken %s is ingetrokken." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "U hebt de applicatie toegang gegeven" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Ga terug naar de applicatie en voer daar de volgende beveiligingscode in om " +"het proces af te ronden." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "U hebt %s toegang gegeven" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Ga terug naar %s en voer daar de volgende beveiligingscode in om het proces " +"af te ronden." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Deze methode vereist een POST of DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "U kunt de status van een andere gebruiker niet verwijderen." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "De mededeling bestaat niet." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "U kunt uw eigen mededeling niet herhalen." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "U hebt die mededeling al herhaald." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP-methode wordt niet ondersteund." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Niet-ondersteund formaat: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "De status is verwijderd." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Er is geen status gevonden met dit ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Het is alleen mogelijk te verwijderen via de Atomopmaak." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Deze mededeling kan niet verwijderd worden." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Mededeling %d is verwijderd" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "De client moet een parameter \"status\" met een waarde opgeven." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "De mededeling is te lang. Gebruik maximaal %d tekens." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "De mededeling is te lang. Gebruik maximaal %d teken." +msgstr[1] "De mededeling is te lang. Gebruik maximaal %d tekens." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Niet aangetroffen." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "De bovenliggende mededeling is niet aangetroffen." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"De maximale mededelingenlengte is %d teken, inclusief de URL voor de bijlage." +msgstr[1] "" "De maximale mededelingenlengte is %d tekens, inclusief de URL voor de " "bijlage." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Niet-ondersteund bestandsformaat." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favorieten van %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s updates op de favorietenlijst geplaatst door %2$s / %3$s" +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "" +"Mededelingen van %1$s die op de favorietenlijst zijn geplaatst door %2$s / %3" +"$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Het was niet mogelijk een groepfeed te maken - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Updates over %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates die een reactie zijn op updates van %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s publieke tijdlijn" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates van iedereen" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Niet geïmplementeerd." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Herhaald naar %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Herhaald van %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mededelingen met het label %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates met het label %1$s op %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Gebruikers kunnen alleen zelf aan hun eigen tijdlijn toevoegen." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Alleen AtomPub voor Atomfeeds accepteren." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "Het Atombericht moet een Atomopmaak hebben." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "Het Atombericht moet een Atomopmaak hebben." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "Het Atombericht moet een Atomopmaak hebben." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Het is alleen mogelijk om POST-activiteit af te handelen." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Het is niet mogelijk om het activiteitobjecttype \"%s\" te verwerken" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Inhoud van mededelingen vinden" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "De mededeling met URI \"%s\" bestaat al." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Het AtomPubbericht met onbekende aandachts-URI is %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "De API-functie is in bewerking." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "De pagina is niet aangetroffen." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Het profiel bestaat niet." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kon nieuw abonnement niet toevoegen." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Het is alleen mogelijk om POST-activiteit af te handelen." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Het is alleen mogelijk om POST-activiteit af te handelen." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Onbekend" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Aan favorieten toevoegen" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Het profiel bestaat niet." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "leden van de groep %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Groepen waar %s lid van is" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Het is alleen mogelijk om POST-activiteit af te handelen." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Onbekend" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alle leden" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Het bestand bestaat niet." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "" +"Het was niet mogelijk deze mededeling van uw favorietenlijst te verwijderen." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "De opgegeven groep bestaat niet." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alle leden" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP-methode wordt niet ondersteund." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Het profiel bestaat niet." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "U bent niet geabonneerd op dat profiel." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Kon abonnement op eigen gebruiker niet verwijderen." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Gebruikers met een abonnement op %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Het is alleen mogelijk om POST-activiteit af te handelen." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Onbekend bestandstype" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Deze bijlage bestaat niet." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Geen gebruikersnaam." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Geen afmeting." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ongeldige afmetingen." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "U kunt een persoonlijke avatar uploaden. De maximale bestandsgrootte is %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Gebruiker zonder bijbehorend profiel." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinstellingen" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Origineel" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Voorvertoning" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Verwijderen" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Uploaden" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Uitsnijden" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Er is geen bestand geüpload." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" "Selecteer een vierkant in de afbeelding om deze als uw avatar in te stellen" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Ons bestand is verloren gegaan." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "De avatar is bijgewerkt." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Het bijwerken van de avatar is mislukt." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "De avatar is verwijderd." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "U hebt deze gebruiker reeds geblokkeerd." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Gebruiker blokkeren" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -861,175 +1490,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nee" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Gebruiker niet blokkeren" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Deze gebruiker blokkeren" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Het was niet mogelijk om de blokkadeinformatie op te slaan." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "De opgegeven groep bestaat niet." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" -msgstr "%s geblokkeerde profielen" +msgstr "Geblokkeerde profielen voor %s" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%1$s geblokkeerde profielen, pagina %2$d" +msgstr "Geblokkeerde profielen voor %1$s, pagina %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Een lijst met voor deze groep geblokkeerde gebruikers." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Deze gebruiker weer toegang geven tot de groep" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" -msgstr "Deblokkeer" +msgstr "Deblokkeren" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Deblokkeer deze gebruiker." #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Verzenden naar %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Geen bevestigingscode." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "De bevestigingscode niet gevonden." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Dit is niet uw bevestigingscode!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Onbekend adrestype %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Dit adres is al bevestigd." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "De gebruiker kon gebruiker niet bijwerkt worden." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "De e-mailbevestiging kon niet verwijderd worden." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "De adresbevestiging kon niet verwijderd worden." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Adres bevestigen" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Het adres \"%s\" is voor uw gebruiker bevestigd." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Dialoog" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mededelingen" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "U moet aangemeld zijn om een applicatie te kunnen verwijderen." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "De applicatie is niet gevonden." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "U bent niet de eigenaar van deze applicatie." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Er is een probleem met uw sessietoken." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Applicatie verwijderen" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1040,31 +1713,89 @@ msgstr "" "inclusief alle bestaande gebruikersverbindingen." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Deze applicatie niet verwijderen" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Deze applicatie verwijderen" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "U moet aangemeld zijn om een groep te kunnen verwijderen." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Geen gebruikersnaam of ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "U mag deze groep niet verwijderen." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Het was niet mogelijk de groep %s te verwijderen." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "De groep %s is verwijderd." + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Groep verwijderen" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Weet u zeker dat u deze groep wilt verwijderen? Door deze handeling worden " +"alle gegevens van deze groep uit de database verwijderd. Het is niet " +"mogelijk ze terug te zetten. Publieke berichten zijn nog wel zichtbaar in " +"individuele tijdlijnen." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Verwijder deze groep niet" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Groep verwijderen" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Niet aangemeld." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Deze mededeling kan niet verwijderd worden." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1072,21 +1803,24 @@ msgstr "" "U staat op het punt een mededeling permanent te verwijderen. Als dit " "uitgevoerd is, kan het niet ongedaan gemaakt worden." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Mededeling verwijderen" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1118,62 +1852,71 @@ msgstr "Gebruiker verwijderen" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Uiterlijk" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Instellingen voor de vormgeving van deze StatusNet-website." +msgid "Design settings for this StatusNet site" +msgstr "Instellingen voor de vormgeving van deze StatusNet-website" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "De logo-URL is ongeldig." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "De SSL logo-URL is ongeldig." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "De vormgeving is niet beschikbaar: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Logo wijzigen" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Websitelogo" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL-logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Vormgeving wijzigen" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Vormgeving website" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Mogelijke vormgevingen voor deze website." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Aangepaste vormgeving" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "U kunt een vormgeving voor StatusNet uploaden als ZIP-archief." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Achtergrondafbeelding wijzigen" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Achtergrond" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1183,81 +1926,90 @@ msgstr "" "bestandsgrootte is %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Aan" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Uit" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Achtergrondafbeelding inschakelen of uitschakelen." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Achtergrondafbeelding naast elkaar" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Kleuren wijzigen" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Inhoud" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Menubalk" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Verwijzingen" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Uitgebreid" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Aangepaste CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Standaardinstellingen gebruiken" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Standaardontwerp toepassen" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Standaardinstellingen toepassen" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Opslaan" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Ontwerp opslaan" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "Deze mededeling staats niet op uw favorietenlijst." +msgstr "Deze mededeling staat niet op uw favorietenlijst." #: actions/disfavor.php:94 msgid "Add to favorites" @@ -1268,109 +2020,129 @@ msgstr "Aan favorieten toevoegen" msgid "No such document \"%s\"" msgstr "Onbekend document \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Applicatie bewerken" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "U moet aangemeld zijn om een applicatie te kunnen bewerken." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "De applicatie bestaat niet." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Gebruik dit formulier om uw applicatiegegevens te bewerken." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Een naam is verplicht." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "De naam is te lang (maximaal 255 tekens)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Deze naam wordt al gebruikt. Kies een andere." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Een beschrijving is verplicht" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "De bron-URL is te lang." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "De bron-URL is niet geldig." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisatie is verplicht." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "De organisatienaam is te lang (maximaal 255 tekens)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "De homepage voor een organisatie is verplicht." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "De callback is te lang." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "De callback-URL is niet geldig." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Het was niet mogelijk de applicatie bij te werken." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Groep %s bewerken" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "U moet aangemeld zijn om een groep aan te kunnen maken." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "U moet beheerder zijn om de groep te kunnen bewerken." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Gebruik dit formulier om de groep te bewerken." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "de beschrijving is te lang (maximaal %d tekens)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ongeldige alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Het was niet mogelijk de groep bij te werken." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Het was niet mogelijk de aliassen aan te maken." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "De instellingen zijn opgeslagen." @@ -1388,12 +2160,12 @@ msgstr "Uw e-mailinstellingen op %%site.name%% beheren." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-mailadres" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Huidige bevestigde e-mailadres" @@ -1402,14 +2174,14 @@ msgstr "Huidige bevestigde e-mailadres" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Verwijderen" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1417,25 +2189,19 @@ msgstr "" "Er wordt gewacht op bevestiging van dit adres. Controleer uw inbox (en uw " "ongewenste berichten/spam) voor een bericht met nadere instructies." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Annuleren" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-mailadres, zoals \"gebruikersnaam@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1443,112 +2209,119 @@ msgstr "Toevoegen" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Inkomende e-mail" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Ik wil mededelingen per e-mail plaatsen." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Stuur een email naar dit adres om een nieuw bericht te posten" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Stelt een nieuw e-mailadres in voor het ontvangen van berichten. Het " "bestaande e-mailadres wordt verwijderd." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nieuw" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-mailvoorkeuren" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Mij e-mailen bij nieuwe abonnementen." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Mij e-mailen als iemand mijn mededeling als favoriet instelt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Mij e-mailen als iemand mij een privébericht zendt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Mij e-mailen als iemand mij een antwoord met \"@\" erin stuurt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Vrienden mogen me porren en e-mailen." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Ik wil mededelingen per e-mail plaatsen." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Een MicroID voor mijn e-mailadres publiceren." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "De e-mailvoorkeuren zijn opgeslagen." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Geen e-mailadres" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Kan het emailadres niet normaliseren" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Geen geldig e-mailadres." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "U hebt dit e-mailadres als ingesteld als uw e-mailadres." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Dit e-mailadres is al geregistreerd door een andere gebruiker." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "De bevestigingscode kon niet ingevoegd worden." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1560,50 +2333,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Er is geen openstaand bevestigingsverzoek om te annuleren." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Dat is het verkeerde e-mailadres." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "De e-mailbevestiging kon niet verwijderd worden." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "E-mailbevestiging geannuleerd." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Dit is niet uw e-mailadres." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Het e-mailadres is verwijderd." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Geen binnenkomend e-mailadres" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kan de gebruikersgegevens niet vernieuwen" #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Het e-mailadres voor inkomende mail is verwijderd." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Het nieuwe binnenkomende e-mailadres is toegevoegd." @@ -1611,11 +2390,11 @@ msgstr "Het nieuwe binnenkomende e-mailadres is toegevoegd." msgid "This notice is already a favorite!" msgstr "Deze mededeling staat al in uw favorietenlijst." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "Van favotietenlijst verwijderen" +msgstr "Van favorietenlijst verwijderen" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populaire mededelingen" @@ -1654,7 +2433,7 @@ msgstr "" "voor de favorietenlijst plaatsen!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Favoriete mededelingen van %s" @@ -1726,7 +2505,7 @@ msgid "Remote service uses unknown version of OMB protocol." msgstr "" "De diensten op afstand gebruiken een onbekende versie van het OMB-protocol." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "" "Er is een fout opgetreden tijdens het bijwerken van het profiel op afstand." @@ -1755,19 +2534,23 @@ msgstr "Op deze website kunt u geen gebruikersrollen toekennen." msgid "User already has this role." msgstr "Deze gebruiker heeft deze rol al." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Er is geen profiel opgegeven." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Er is geen profiel met dat ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Er is geen groep aangegeven." @@ -1784,7 +2567,7 @@ msgstr "Deze gebruiker is al de toegang tot de groep ontzegd." msgid "User is not a member of group." msgstr "De gebruiker is geen lid van de groep." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Gebruiker toegang tot de groep blokkeren" @@ -1835,8 +2618,10 @@ msgstr "" "De vormgeving van uw groep aanpassen met een achtergrondafbeelding en een " "kleurenpalet van uw keuze." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Het was niet mogelijk uw ontwerp bij te werken." @@ -1856,6 +2641,14 @@ msgstr "" "Hier kunt u een logo voor uw groep uploaden. De maximale bestandsgrootte is %" "s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Uploaden" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Uitsnijden" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selecteer een vierkant uit de afbeelding die het logo wordt." @@ -1868,49 +2661,56 @@ msgstr "Logo geactualiseerd." msgid "Failed updating logo." msgstr "Het bijwerken van het logo is mislukt." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "leden van de groep %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s groeps leden, pagina %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Ledenlijst van deze groep" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Beheerder" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blokkeren" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Deze gebruiker blokkeren" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Deze gebruiker groepsbeheerder maken" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Beheerder maken" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Deze gebruiker beheerder maken" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s tijdlijn" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1984,15 +2784,18 @@ msgstr "" "U kunt een [gebruiker registreren](%%action.register%%) en de groep zelf " "[aanmaken](%%action.newgroup%%)!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Alleen beheerders kunnen groepsleden deblokkeren." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 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:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Er is een fout opgetreden bij het verwijderen van de blokkade." @@ -2042,7 +2845,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2052,65 +2858,65 @@ msgstr "" "%s eerst aan uw contactenlijst in uw IM-programma of in GTalk toevoegt." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "IM-voorkeuren" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Mij berichten sturen via Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Een mededeling versturen als mijn Jabber/GTalk-status wijzigt." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Mij antwoorden sturen via Jabber/GTalk van gebruikers op wie ik niet " "geabonneerd ben." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Een MicroID voor mijn Jabber/GTalk-adres publiceren." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Uw voorkeuren zijn opgeslagen." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Geen Jabber-ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Het was niet mogelijk om het Jabber-ID te normaliseren" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Geen geldige Jabber-ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "U hebt dit al ingesteld als uw Jabber-ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Het Jabber-ID wordt al gebruikt door een andere gebruiker." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2120,28 +2926,28 @@ msgstr "" "ermee akkoord gaan dat %s berichten aan u verzendt." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Dat is het verkeerde IM-adres." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "De IM-bevestiging kon niet verwijderd worden." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "IM-bevestiging geannuleerd." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Dit is niet uw Jabber-ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Het IM-adres is verwijderd." @@ -2159,53 +2965,78 @@ msgstr "Postvak IN van %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "Dit is uw Postvak IN dat uw inkomende privéberichten bevat." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Het is niet mogelijk uitnodigingen te verzenden." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "U moet aangemeld zijn om anderen te kunnen uitnodigen gebruik te maken van %" "s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Ongeldig e-mailadres: %s" +msgid "Invalid email address: %s." +msgstr "Ongeldig e-mailadres: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "De uitnodiging(en) zijn verzonden" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "De uitnodigingen zijn verzonden" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Nieuwe gebruikers uitnodigen" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "U bent als geabonneerd op deze gebruikers:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "U bent al geabonneerd op deze gebruiker:" +msgstr[1] "U bent al geabonneerd op deze gebruikers:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" -"Deze gebruikers zijn al geregistreerd en u kunt zich automatisch bij hun " -"abonneren:" +msgstr[0] "Deze persoon is al gebruiker en u bent automatisch geabonneerd:" +msgstr[1] "" +"Deze personen zijn al gebruiker en u bent automatisch op ze geabonneerd:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Uitnodiging(en) zijn verzonden aan de volgende mensen:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "De uitnodiging is verzonden naar de volgende persoon:" +msgstr[1] "De uitnodigingen zijn verzonden naar de volgende personen:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2214,43 +3045,54 @@ msgstr "" "en zich bij de site registreren. Dank u wel voor het laten groeien van de " "gemeenschap!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Gebruik deze pagina om uw vrienden en collega´s uit te nodigen deze dienst " "te gebruiken." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-mailadressen" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adressen van uit te nodigen vrienden (één per regel)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Persoonlijk bericht" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Verzenden" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s heeft u uitgenodigd voor %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2311,13 +3153,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "U moet aangemeld zijn om lid te worden van een groep." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Geen gebruikersnaam of ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s is lid geworden van de groep %2$s" @@ -2326,17 +3162,122 @@ msgstr "%1$s is lid geworden van de groep %2$s" msgid "You must be logged in to leave a group." msgstr "U moet aangemeld zijn om een groep te kunnen verlaten." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "U bent geen lid van deze groep" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s heeft de groep %2$s verlaten" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licentie" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licentie voor deze StatusNetsite" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Ongeldige licentieselectie." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"U moet de eigenaar van de inhoud opgeven als u de licentie \"Alle rechten " +"voorbehouden\" gebruikt." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "De licentienaam is ongeldig. De maximale lengte is 255 tekens." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Ongeldige licentie-URL." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Ongeldige URL voor licentieafbeelding." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "De licentie-URL moet leeg zijn of een geldige URL." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "De licentieafbeelding moet leeg zijn of een geldige URL." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Licentieselectie" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privé" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Alle rechten voorbehouden" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Type" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Selecteer licentie" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Licentiedetails" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Eigenaar" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Naam van de eigenaar van de inhoud van de site (als van toepassing)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Licentienaam" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "De naam van de licentie." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Licentie-URL" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL voor meer informatie over de licentie." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL voor licentieafbeelding" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Een URL voor een afbeelding om weer te geven met de licentie." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Licentieinstellingen opslaan" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "U bent al aangemeld." @@ -2359,11 +3300,11 @@ msgstr "Aanmelden" msgid "Login to site" msgstr "Aanmelden" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Aanmeldgegevens onthouden" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Voortaan automatisch aanmelden. Niet gebruiken op gedeelde computers!" @@ -2414,66 +3355,76 @@ msgstr "Het is niet mogelijk %1$s beheerder te maken van de groep %2$s." msgid "No current status." msgstr "Geen huidige status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nieuwe applicatie" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "U moet aangemeld zijn om een applicatie te kunnen registreren." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Gebruik dit formulier om een nieuwe applicatie te registreren." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Een bron-URL is verplicht." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Het was niet mogelijk de applicatie aan te maken." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nieuwe groep" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Gebruik dit formulier om een nieuwe groep aan te maken." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nieuw bericht" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "U kunt geen bericht naar deze gebruiker zenden." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Geen inhoud!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Er is geen ontvanger aangegeven." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Stuur geen berichten naar uzelf. Zeg het gewoon in uw hoofd." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Bericht verzonden." -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Het directe bericht aan %s is verzonden." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Er is een Ajax-fout opgetreden" @@ -2481,7 +3432,7 @@ msgstr "Er is een Ajax-fout opgetreden" msgid "New notice" msgstr "Nieuw bericht" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "De mededeling is verzonden" @@ -2534,7 +3485,8 @@ msgstr "Updates die overeenkomen met de zoekterm \"%1$s\" op %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Deze gebruiker is niet te porren of heeft nog geen bevestigd e-mailadres." @@ -2546,79 +3498,107 @@ msgstr "De por is verzonden" msgid "Nudge sent!" msgstr "De por is verzonden!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "" "U moet aangemeld zijn om een lijst met uw applicaties te kunnen bekijken." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Overige instellingen" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Door u geregistreerde applicaties" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "U hebt nog geen applicaties geregistreerd." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Verbonden applicaties" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -"U hebt de volgende applicaties toegang gegeven tot uw gebruikersgegevens." +"U hebt de onderstaande applicaties toegang gegeven tot uw gebruikersgegevens." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "U bent geen gebruiker van die applicatie." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "" "Het was niet mogelijk de toegang te ontzeggen voor de volgende applicatie: %" "s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"U hebt de toegang voor %1$s en het toegangstoken dat begint met %2$s " +"ingetrokken." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" "U hebt geen enkele applicatie geautoriseerd voor toegang tot uw " "gebruikersgegevens." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Ontwikkelaars kunnen de registratiegegevens voor hun applicaties bewerken " +"Bet u ontwikkelaar? [Registreer dan een OAuthprogramma](%s) om te gebruiken " +"met deze Statusnetsite." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Mededeling heeft geen profiel." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Status van %1$s op %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Inhoudstype %s wordt niet ondersteund." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Alleen URL's voor %s via normale HTTP alstublieft." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -2630,36 +3610,45 @@ msgstr "Mensen zoeken" msgid "Notice Search" msgstr "Mededeling zoeken" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Overige instellingen" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Overige instellingen beheren." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (gratis dienst)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "URL's inkorten met" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Te gebruiken automatische verkortingsdienst." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Profielontwerpen gebruiken" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Profielontwerpen weergeven of verbergen" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "De URL voor de verkortingdienst is te lang (maximaal 50 tekens)." #: actions/otp.php:69 @@ -2710,7 +3699,7 @@ msgstr "Wachtwoord wijzigen" #: actions/passwordsettings.php:104 msgid "Old password" -msgstr "Oud wachtwoord" +msgstr "Huidige wachtwoord" #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" @@ -2721,7 +3710,7 @@ msgid "6 or more characters" msgstr "Zes of meer tekens" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Bevestigen" @@ -2733,11 +3722,11 @@ msgstr "Gelijk aan het wachtwoord hierboven" msgid "Change" msgstr "Wijzigen" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Het wachtwoord moet zes of meer tekens bevatten." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "De wachtwoorden komen niet overeen." @@ -2757,156 +3746,273 @@ msgstr "Het was niet mogelijk het nieuwe wachtwoord op te slaan." msgid "Password saved." msgstr "Het wachtwoord is opgeslagen." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Paden" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Pad- en serverinstellingen voor de StatusNet-website." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Pad- en serverinstellingen voor de StatusNet-website" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Er kan niet uit de vormgevingmap gelezen worden: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Er kan niet in de avatarmap geschreven worden: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Er kan niet in de achtergrondmap geschreven worden: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Er kan niet uit de talenmap gelezen worden: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "De SSL-server is ongeldig. De maximale lengte is 255 tekens." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Website" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Server" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Hostnaam van de website server." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Pad" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Websitepad" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Websitepad." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Talenpad" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Map voor taalondersteuning" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Talenmap" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Map voor taalondersteuning." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Nette URL's" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Nette URL's (meer leesbaar en beter te onthouden) gebruiken?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Vormgeving" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Vormgevingsserver" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Server voor vormgevingen." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Vormgevingspad" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Webpad voor vormgevingen." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Vormgevingsmap" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatars" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Avatarserver" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Avatarpad" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Avatarmap" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Achtergronden" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Achtergrondenserver" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Achtergrondpad" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Achtergrondenmap" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nooit" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Soms" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Altijd" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "SSL gebruiken" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Wanneer SSL gebruikt moet worden" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-server" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "De server waar SSL-verzoeken heen gestuurd moeten worden" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-server voor vormgevingen (standaard: SSL-server)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-pad" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-pad naar vorgevingen (standaard: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Map" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Map waar alle vormgevingen worden opgeslagen." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatars" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Avatarserver" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Server voor avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Avatarpad" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Webpad naar avatars." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Avatarmap" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Map waar alle avatars worden opgeslagen." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Achtergronden" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Server voor achtergronden." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Webpad naar achtergronden." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Server voor achtergronden op SSL-pagina's." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Webpad naar achtergronden op SSL-pagina's." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Map waar achtergronden worden opgeslagen." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Bijlagen" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Server voor bijlagen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Webpad voor bijlagen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Server voor bijlagen op SSL-pagina's." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Webpad voor bijlagen op SSL-pagina's." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Map waar bijlagen worden opgeslagen." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nooit" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Soms" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Altijd" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "SSL gebruiken" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Wanneer SSL gebruikt moet worden." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "De server waar SSL-verzoeken heen gestuurd moeten worden." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Opslagpaden" @@ -2945,143 +4051,185 @@ msgstr "" "De mededelingenlicentie \"%1$s\" is niet compatibel met de licentie \"%2$s\" " "van deze site." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profielinstellingen" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Hier kunt u uw persoonlijke profiel bijwerken met informatie over uzelf voor " "andere gebruikers." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profielinformatie" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Volledige naam" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Thuispagina" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "De URL van uw thuispagina, blog of profiel bij een andere website" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "De URL van uw thuispagina, blog of profiel bij een andere website." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Geef een beschrijving van uzelf en uw interesses in %d tekens" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Beschrijf uzelf en uw interesses in %d teken" +msgstr[1] "Beschrijf uzelf en uw interesses in %d tekens" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Beschrijf uzelf en uw interesses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Beschrijving" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Locatie" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Waar u bent, bijvoorbeeld \"woonplaats, land\" of \"postcode, land\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Mijn huidige locatie weergeven bij het plaatsen van mededelingen" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Labels" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Taal" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Voorkeurstaal" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tijdzone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "In welke tijdzone verblijft u meestal?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "De beschrijving is te lang (maximaal %d tekens)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "De persoonlijke beschrijving is te lang (maximaal %d teken)." +msgstr[1] "De persoonlijke beschrijving is te lang (maximaal %d tekens)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Er is geen tijdzone geselecteerd." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Taal is te lang (max 50 tekens)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "De taal is te lang (maximaal 50 tekens)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ongeldig label: '%s'" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 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:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Het was niet mogelijk de locatievoorkeuren op te slaan." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Het profiel kon niet opgeslagen worden." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Het was niet mogelijk de labels op te slaan." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "De instellingen zijn opgeslagen." @@ -3160,26 +4308,39 @@ msgstr "" "Micro-blogging) gebaseerd op de Vrije Software [StatusNet](http://status." "net/)" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Publieke woordwolk" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "De meest recente en populairste labels op %s " +msgid "These are most popular recent tags on %s" +msgstr "De meest recente en populairste labels op %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "Nog niemand heeft een bericht met het [hekjelabel](%%doc.tags%%) verzonden." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "U kunt de eerste zijn die een bericht plaatst!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3188,7 +4349,7 @@ msgstr "" "U kunt een [gebruiker registeren](%%action.register%%) en dan de eerste zijn " "die er een plaatst!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Woordwolk" @@ -3306,14 +4467,14 @@ msgid "Unexpected password reset." msgstr "Het wachtwoord is onverwacht opnieuw ingesteld." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Het wachtwoord moet uit zes of meer tekens bestaan." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Het wachtwoord en de bevestiging komen niet overeen." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Er is een fout opgetreden tijdens het instellen van de gebruiker." @@ -3321,7 +4482,7 @@ msgstr "Er is een fout opgetreden tijdens het instellen van de gebruiker." msgid "New password successfully saved. You are now logged in." msgstr "Het nieuwe wachtwoord is opgeslagen. U bent nu aangemeld." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "U kunt zich alleen registreren als u wordt uitgenodigd." @@ -3333,7 +4494,7 @@ msgstr "Sorry. De uitnodigingscode is ongeldig." msgid "Registration successful" msgstr "De registratie is voltooid" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registreren" @@ -3341,19 +4502,19 @@ msgstr "Registreren" msgid "Registration not allowed." msgstr "Registratie is niet toegestaan." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Het e-mailadres bestaat al." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Ongeldige gebruikersnaam of wachtwoord." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3361,66 +4522,69 @@ msgstr "" "Via dit formulier kunt u een nieuwe gebruiker aanmaken. Daarna kunt u " "mededelingen uitsturen en contact maken met vrienden en collega's. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties. Verplicht." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "Zes of meer tekens. Verplicht" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Gelijk aan het wachtwoord hierboven. Verplicht" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Alleen gebruikt voor updates, aankondigingen en wachtwoordherstel" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Een langere naam, mogelijk uw echte naam" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "De URL van uw thuispagina, blog of profiel bij een andere website" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Ik begrijp dat inhoud en gegevens van %1$s persoonlijk en vertrouwelijk zijn." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Voor mijn teksten en bestanden rust het auteursrecht bij %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Ik ben de rechthebbende voor mijn teksten en bestanden." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Alle rechten voorbehouden." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -"Mijn teksten en bestanden zijn beschikbaar onder %s, \n" -"behalve de volgende privégegevens: wachtwoord, e-mailadres, IM-adres, " -"telefoonnummer." +"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " +"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3454,7 +4618,7 @@ msgstr "" "Dank u wel voor het registreren en we hopen dat deze dienst u biedt wat u " "ervan verwacht." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3499,7 +4663,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "De URL van uw profiel bij een andere, compatibele microblogdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abonneren" @@ -3537,7 +4701,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:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Herhaald" @@ -3546,7 +4710,7 @@ msgid "Repeated!" msgstr "Herhaald!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Antwoorden aan %s" @@ -3625,13 +4789,13 @@ msgstr "Deze gebruiker is al in de zandbak geplaatst." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessies" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Sessieinstellingen voor deze StatusNet-website." +msgid "Session settings for this StatusNet site" +msgstr "Sessieinstellingen voor deze StatusNet-website" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3650,7 +4814,6 @@ msgid "Turn on debugging output for sessions." msgstr "Debuguitvoer voor sessies inschakelen." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Websiteinstellingen opslaan" @@ -3663,28 +4826,29 @@ msgid "Application profile" msgstr "Applicatieprofiel" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Icoon" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Naam" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisatie" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistieken" @@ -3702,6 +4866,11 @@ msgstr "Applicatiehandelingen" msgid "Reset key & secret" msgstr "Sleutel en wachtwoord op nieuw instellen" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Verwijderen" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Applicatieinformatie" @@ -3712,7 +4881,7 @@ msgstr "Gebruikerssleutel" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "Gebruikerswachtwoord" +msgstr "Gebruikersgeheim" #: actions/showapplication.php:273 msgid "Request token URL" @@ -3797,77 +4966,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Dit is de manier om dat te delen wat u wilt." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s groep" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Groep %1$s, pagina %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Groepsprofiel" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Opmerking" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliassen" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Groepshandelingen" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Mededelingenfeed voor groep %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Mededelingenfeed voor groep %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Mededelingenfeed voor groep %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Vriend van een vriend voor de groep %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Leden" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alle leden" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Aangemaakt" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Leden" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3883,7 +5079,10 @@ msgstr "" "lid te worden van deze groep en nog veel meer! [Meer lezen...](%%%%doc.help%%" "%%)" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3896,24 +5095,31 @@ msgstr "" "[StatusNet](http://status.net/). De leden wisselen korte mededelingen uit " "over hun ervaringen en interesses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Beheerders" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Dat bericht bestaat niet." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Alleen de verzender en de ontvanger kunnen dit bericht lezen." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Bericht aan %1$s op %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Bericht van %1$s op %2$s" @@ -3922,48 +5128,68 @@ msgstr "Bericht van %1$s op %2$s" msgid "Notice deleted." msgstr "Deze mededeling is verwijderd." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " met het label %s" +msgid "%1$s tagged %2$s" +msgstr "%2$s gelabeld door %1$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%2$s gelabeld door %1$s, pagina %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pagina %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Mededelingenfeed voor %1$s met het label %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Mededelingenfeed voor %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Mededelingenfeed voor %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Mededelingenfeed voor %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "Vriend van een vriend (FOAF) voor %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Dit is de tijdlijn voor %1$s, maar %2$s heeft nog geen berichten verzonden." +"Dit is de tijdlijn voor %1$s, maar %1$s heeft nog geen berichten verzonden." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3971,7 +5197,9 @@ msgstr "" "Hebt u recentelijk iets interessants gezien? U hebt nog geen mededelingen " "verstuurd, dus dit is een ideaal moment om daarmee te beginnen!" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3980,7 +5208,9 @@ msgstr "" "U kunt proberen %1$s te porren of [een bericht aan die gebruiker sturen](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3994,7 +5224,9 @@ msgstr "" "abonneren op de mededelingen van **%s** en nog veel meer! [Meer lezen...](%%%" "%doc.help%%%%)" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4005,7 +5237,8 @@ msgstr "" "(http://en.wikipedia.org/wiki/Micro-blogging) gebaseerd op de Vrije Software " "[StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Herhaald van %s" @@ -4124,33 +5357,40 @@ msgstr "" "Hoe lang gebruikers moeten wachten (in seconden) voor ze hetzelfde kunnen " "zenden." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Websitebrede mededeling" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Websitebrede mededeling bewerken" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Het was niet mogelijk om de websitebrede mededeling op te slaan." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "De maximale lengte voor de websitebrede aankondiging is 255 tekens." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Tekst voor websitebrede mededeling" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -"Tekst voor websitebrede aankondiging (maximaal 255 tekens - HTML is " +"Tekst voor websitebrede aankondiging (maximaal 255 tekens en HTML is " "toegestaan)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Websitebrede mededeling opslaan" @@ -4310,7 +5550,7 @@ msgstr "Er is geen code ingevoerd" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Snapshots" @@ -4367,12 +5607,14 @@ msgstr "Snapshots worden naar deze URL verzonden" msgid "Save snapshot settings" msgstr "Snapshotinstellingen opslaan" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "U bent niet geabonneerd op dat profiel." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Het was niet mogelijk het abonnement op te slaan." @@ -4380,10 +5622,6 @@ msgstr "Het was niet mogelijk het abonnement op te slaan." msgid "This action only accepts POST requests." msgstr "Deze handeling accepteert alleen POST-verzoeken." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Het profiel bestaat niet." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4394,39 +5632,55 @@ msgstr "" msgid "Subscribed" msgstr "Geabonneerd" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" -msgstr "%s abonnees" +msgstr "Abonnees van %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%1$s abonnees, pagina %2$d" +msgstr "Abonnees van %1$s, pagina %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Dit zijn de gebruikers die uw mededelingen volgen." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Dit zijn de gebruikers die de mededelingen van %s volgen." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "U hebt geen abonnees. Als u zich abonneert op andere gebruikers, abonneren " "die zich wellicht op u." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s heeft geen abonnees. Wilt u de eerste zijn?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4435,26 +5689,31 @@ msgstr "" "%s heeft geen abonnees. Als u zich [registreert](%%%%action.register%%%%) " "kunt u de eerste zijn." -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s abonnementen" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "%1$s abonnementen, pagina %2$d" +msgstr "Abonnementen van %1$s, pagina %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Dit zijn de gebruikers van wie u de mededelingen volgt." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Dit zijn de gebruikers waarvan %s de mededelingen volgt." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4470,16 +5729,27 @@ msgstr "" "action.twittersettings%%), kunt u automatisch abonneren op de gebruikers die " "u daar al volgt." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s volgt niemand." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Mededelingenfeed voor %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4517,7 +5787,7 @@ msgid "User profile" msgstr "Gebruikersprofiel" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4583,74 +5853,94 @@ msgstr "" "de sitelicentie \"%2$s\"." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Gebruiker" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Gebruikersinstellingen voor deze StatusNet-website." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Gebruikersinstellingen voor deze StatusNet-website" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Ongeldige beschrijvingslimiet. Het moet een getal zijn." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Ongeldige welkomsttekst. De maximale lengte is 255 tekens." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Ongeldig standaardabonnement: \"%1$s\" is geen gebruiker." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profiel" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Profiellimiet" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "De maximale lengte van de profieltekst in tekens." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nieuwe gebruikers" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Welkom voor nieuwe gebruikers" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Welkomsttekst voor nieuwe gebruikers. Maximaal 255 tekens." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Standaardabonnement" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Nieuwe gebruikers automatisch op deze gebruiker abonneren" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Uitnodigingen" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Uitnodigingen ingeschakeld" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Of gebruikers nieuwe gebruikers kunnen uitnodigen." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Gebruikersinstellingen opslaan" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Abonneren" @@ -4666,7 +5956,9 @@ msgstr "" "aangegeven dat u zich op de mededelingen van een gebruiker wilt abonneren, " "klik dan op \"Afwijzen\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licentie" @@ -4677,7 +5969,7 @@ msgstr "Aanvaarden" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "Abonneer mij op deze gebruiker" +msgstr "Abonneren op deze gebruiker" #: actions/userauthorization.php:219 msgid "Reject" @@ -4754,11 +6046,13 @@ msgstr "Het was niet mogelijk de avatar-URL \"%s\" te lezen." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Er staat een verkeerd afbeeldingsttype op de avatar-URL \"%s\"." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Profielontwerp" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4797,7 +6091,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Updates van %1$s op %2$s." @@ -4858,7 +6152,7 @@ msgid "Plugins" msgstr "Plug-ins" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versie" @@ -4866,64 +6160,114 @@ msgstr "Versie" msgid "Author(s)" msgstr "Auteur(s)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Aan favorieten toevoegen" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s heeft de mededeling %2$s als favoriet gemarkeerd." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Het was niet mogelijk de URL \"%s\" te verwerken." #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin denkt dat iets onmogelijk is." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Bestanden mogen niet groter zijn dan %1$d byte, en uw bestand was %2$d " +"bytes. Probeer een kleinere versie te uploaden." +msgstr[1] "" "Bestanden mogen niet groter zijn dan %1$d bytes, en uw bestand was %2$d " "bytes. Probeer een kleinere versie te uploaden." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" -"Een bestand van deze grootte overschijdt uw gebruikersquota van %d bytes." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" -"Een bestand van deze grootte overschijdt uw maandelijkse quota van %d bytes." +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Een bestand van deze grootte overschrijdt uw maandelijkse quotum van %d byte." +msgstr[1] "" +"Een bestand van deze grootte overschrijdt uw maandelijkse quotum van %d " +"bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Ongeldige bestandsnaam." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Groepslidmaatschap toevoegen is mislukt." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Geen lid van groep." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Groepslidmaatschap opzeggen is mislukt." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Profiel-ID %s is ongeldig." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Groep-ID %s is ongeldig." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Toetreden" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s is lid geworden van de groep %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4942,17 +6286,17 @@ msgid "No database name or DSN found anywhere." msgstr "Geen databasenaam of DSN gevonden." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "U mag geen directe berichten verzenden." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Het was niet mogelijk het bericht in te voegen." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Het was niet mogelijk het bericht bij te werken met de nieuwe URI." @@ -4964,27 +6308,27 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Er is geen profiel (%1$d) te vinden bij de mededeling (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Er is een databasefout opgetreden bij de invoer van de hashtag: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "" "Er is een probleem opgetreden bij het opslaan van de mededeling. Deze is te " "lang." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "" "Er was een probleem bij het opslaan van de mededeling. De gebruiker is " "onbekend." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4992,7 +6336,7 @@ msgstr "" "het over enige tijd weer." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -5001,39 +6345,53 @@ msgstr "" "plaats over een aantal minuten pas weer een bericht." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "" "U bent geblokkeerd en mag geen mededelingen meer achterlaten op deze site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "Het gegevenstype dat is opgegeven aan saveKnownGroups is onjuist" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " "groep." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Het was niet mogelijk antwoord %1$d voor %2$d op te slaan." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -5042,7 +6400,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5055,302 +6413,345 @@ msgid "Missing profile." msgstr "Ontbrekend profiel." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Het was niet mogelijk om het label op te slaan." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "U mag zich niet abonneren." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "U bent al gebonneerd!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Deze gebruiker negeert u." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Niet geabonneerd!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Kon abonnement op eigen gebruiker niet verwijderen." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "" "Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Kon abonnement niet verwijderen." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Volgen" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s is %2$s gaan volgen." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Er is geen gebruiker gedefinieerd voor single-usermodus." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" +"De \"single-user\"-modus is aangeroepen terwijl deze niet is ingeschakeld." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Het was niet mogelijk de groep aan te maken." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Het was niet mogelijk de groeps-URI in te stellen." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Het was niet mogelijk het groepslidmaatschap in te stellen." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Het was niet mogelijk de lokale groepsinformatie op te slaan." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Uw profielgegevens wijzigen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Avatar uploaden" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Uw wachtwoord wijzigen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "E-mailafhandeling wijzigen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Uw profiel ontwerpen" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Overige instellingen" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Overige" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Naamloze pagina" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Meer weergeven" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Primaire sitenavigatie" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persoonlijk profiel en tijdlijn van vrienden" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Persoonlijk" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Uw e-mailadres, avatar, wachtwoord of profiel wijzigen" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Gebruiker" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Met andere diensten koppelen" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Koppelen" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Websiteinstellingen wijzigen" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Beheer" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Vrienden en collega's uitnodigen om u te vergezellen op %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Uitnodigingen" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Gebruiker afmelden" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Afmelden" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Gebruiker aanmaken" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registreren" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Gebruiker aanmelden" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Aanmelden" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Help" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Naar gebruikers of tekst zoeken" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Zoeken" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Mededeling van de website" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokale weergaven" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Mededeling van de pagina" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Secundaire sitenavigatie" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Help" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Over" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Veel gestelde vragen" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Gebruiksvoorwaarden" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacy" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Broncode" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contact" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Widget" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licentie van de StatusNet-software" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5360,13 +6761,16 @@ msgstr "" "broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** is een microblogdienst." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5378,20 +6782,20 @@ msgstr "" "www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licentie voor siteinhoud" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Inhoud en gegevens van %1$s zijn persoonlijk en vertrouwelijk." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5399,328 +6803,438 @@ msgstr "" "voorbehouden." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij de respectievelijke " "gebruikers. Alle rechten voorbehouden." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" "Alle inhoud en gegevens van %1$s zijn beschikbaar onder de licentie %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginering" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Later" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Eerder" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Verwachtte een root-feed element maar kreeg een heel XML-document." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Het is nog niet mogelijk inhoud uit andere omgevingen te verwerken." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Het is nog niet mogelijk ingebedde XML-inhoud te verwerken" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Het is nog niet mogelijk ingebedde Base64-inhoud te verwerken" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "U mag geen wijzigingen maken aan deze website." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Wijzigingen aan dat venster zijn niet toegestaan." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() is niet geïmplementeerd." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() is nog niet geïmplementeerd." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Het was niet mogelijk om de ontwerpinstellingen te verwijderen." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Basisinstellingen voor de website" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Website" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Instellingen vormgeving" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Uiterlijk" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Gebruikersinstellingen" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Gebruiker" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Toegangsinstellingen" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Padinstellingen" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Sessieinstellingen" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Websitebrede mededeling opslaan" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Snapshotinstellingen" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Sitelicentie instellen" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Het API-programma heeft lezen-en-schrijventoegang nodig, maar u hebt alleen " "maar leestoegang." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Applicatie bewerken" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Er is geen applicatie voor die gebruikerssleutel." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Ongeldig toegangstoken." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Er is geen gebruiker voor dat token." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "U kon niet geauthenticeerd worden." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Het was niet mogelijk een anonieme consumer aan te maken." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Het was niet mogelijk een anonieme OAuthapplicatie aan te maken." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" +"Het profiel en de applicatie die zijn geassocieerd met het verzoektoken zijn " +"niet aangetroffen." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Het was niet mogelijk het toegangstoken uit te geven." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Er is een databasefout opgetreden tijdens het toevoegen van de OAuth " +"applicatiegebruiker." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Er is geprobeerd een onbekend token in te trekken." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Het was niet mogelijk een ingetrokken token te verwijderen." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Icoon voor deze applicatie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Beschrijf uw applicatie in %d tekens" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Beschrijf uw applicatie in een enkel teken" +msgstr[1] "Beschrijf uw applicatie in %d tekens" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Beschrijf uw applicatie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "De URL van de homepage van deze applicatie" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Bron-URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organisatie verantwoordelijk voor deze applicatie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "De URL van de homepage van de organisatie" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL om naar door te verwijzen na authenticatie" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Browser" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Type applicatie; browser of desktop" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Alleen-lezen" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Lezen en schrijven" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Standaardtoegang voor deze applicatie: alleen-lezen of lezen en schrijven" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Annuleren" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " door " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "lezen en schrijven" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "alleen-lezen" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Goedgekeurd op %1$s met toegang \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Toegangstoken begint met: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Intrekken" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Bijlagen" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "Het element author moet een element name bevatten." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Auteur" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Provider" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Mededelingen die deze bijlage bevatten" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Labels voor deze bijlage" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." msgstr "Wachtwoord wijzigen is mislukt" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." msgstr "Wachtwoord wijzigen is niet toegestaan" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokkeren" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Commandoresultaten" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Er is een Ajax-fout opgetreden" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Het commando is uitgevoerd" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Het uitvoeren van het commando is mislukt" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Er bestaat geen mededeling met dat ID" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Er bestaat geen mededeling met dat ID." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Deze gebruiker heeft geen laatste mededeling" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Deze gebruiker heeft geen laatste mededeling." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "De gebruiker %s is niet aangetroffen" +msgid "Could not find a user with nickname %s." +msgstr "De gebruiker %s is niet aangetroffen." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "De lokale gebruiker %s is niet aangetroffen" +msgid "Could not find a local user with nickname %s." +msgstr "De lokale gebruiker %s is niet aangetroffen." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Dit commando is nog niet geïmplementeerd." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Het heeft niet zoveel zin om uzelf te porren..." #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "De por naar %s is verzonden" +msgid "Nudge sent to %s." +msgstr "De por naar %s is verzonden." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5731,56 +7245,64 @@ msgstr "" "Abonnees: %2$s\n" "Mededelingen: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "De mededeling is op de favorietenlijst geplaatst." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "U bent al lid van deze groep" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "" -"Het was niet mogelijk om de gebruiker %1$s toe te voegen aan de groep %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s is lid geworden van de groep %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Het was niet mogelijk gebruiker %1$s uit de group %2$s te verwijderen." +msgid "%1$s left group %2$s." +msgstr "%1$s heeft de groep %2$s verlaten." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Volledige naam: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Locatie: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Thuispagina: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Over: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5789,151 +7311,185 @@ msgstr "" "%s is een profiel op afstand. U kunt alle privéberichten verzenden aan " "gebruikers op dezelfde server." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Het bericht te is lang. De maximale lengte is %1$d tekens. De lengte van uw " -"bericht was %2$d." +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Het bericht is te lang. Het mag maximaal %1$d teken bevatten en u hebt er %2" +"$d gebruikt." +msgstr[1] "" +"Het bericht is te lang. Het mag maximaal %1$d tekens bevatten en u hebt er %2" +"$d gebruikt." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Het directe bericht aan %s is verzonden" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Er is een fout opgetreden bij het verzonden van het directe bericht." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "U kunt uw eigen mededelingen niet herhalen." - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "U hebt die mededeling al herhaald." - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "De mededeling van %s is herhaald" +msgid "Notice from %s repeated." +msgstr "De mededeling van %s is herhaald." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Er is een fout opgetreden bij het herhalen van de mededeling." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" -"De mededeling is te lang. De maximale lengte is %d tekens. Uw mededeling " -"bevatte %d tekens" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"De mededeling is te lang. Deze mag maximaal %1$d teken bevatten en u hebt er " +"%2$d gebruikt." +msgstr[1] "" +"De mededeling is te lang. Deze mag maximaal %1$d tekens bevatten en u hebt " +"er %2$d gebruikt." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Het antwoord aan %s is verzonden" +msgid "Reply to %s sent." +msgstr "Het antwoord aan %s is verzonden." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Er is een fout opgetreden bij het opslaan van de mededeling." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Geef de naam op van de gebruiker waarop u wilt abonneren" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Geef de naam op van de gebruiker waarop u zich wilt abonneren." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Abonneren op OMB-profielen op commando is niet mogelijk." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Geabonneerd op %s" +msgid "Subscribed to %s." +msgstr "Geabonneerd op %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -"Geef de naam op van de gebruiker waarvoor u het abonnement wilt opzeggen" +"Geef de naam op van de gebruiker waarop u het abonnement wilt opzeggen." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Uw abonnement op %s is opgezegd" +msgid "Unsubscribed from %s." +msgstr "Uw abonnement op %s is opgezegd." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Dit commando is nog niet geïmplementeerd." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notificaties uitgeschakeld." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Het is niet mogelijk de mededelingen uit te schakelen." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notificaties ingeschakeld." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Het is niet mogelijk de notificatie uit te schakelen." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Het aanmeldcommando is uitgeschakeld" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Het aanmeldcommando is uitgeschakeld." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" "Deze verwijzing kan slechts één keer gebruikt worden en is twee minuten " -"geldig: %s" +"geldig: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Het abonnement van %s is opgeheven" +msgid "Unsubscribed %s." +msgstr "Het abonnement van %s is opgeheven." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "U bent op geen enkele gebruiker geabonneerd." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "U bent geabonneerd op deze gebruiker:" msgstr[1] "U bent geabonneerd op deze gebruikers:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Niemand heeft een abonnenment op u." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Deze gebruiker is op u geabonneerd:" msgstr[1] "Deze gebruikers zijn op u geabonneerd:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "U bent lid van geen enkele groep." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "U bent lid van deze groep:" msgstr[1] "U bent lid van deze groepen:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -6015,51 +7571,73 @@ msgstr "" "tracks - nog niet beschikbaar\n" "tracking - nog niet beschikbaar\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Er is geen instellingenbestand aangetroffen. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Er is geen instellingenbestand aangetroffen." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Er is gezocht naar instellingenbestanden op de volgende plaatsen: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Er is gezocht naar instellingenbestanden op de volgende plaatsen:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" "U kunt proberen de installer uit te voeren om dit probleem op te lossen." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Naar het installatieprogramma gaan." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Updates via instant messenger (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Updates via SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" -msgstr "Verbindingen" +msgstr "Koppelingen" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Geautoriseerde verbonden applicaties" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Databasefout" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Bestand uploaden" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6067,40 +7645,56 @@ msgstr "" "U kunt een persoonlijke achtergrondafbeelding uploaden. De maximale " "bestandsgrootte is 2 megabyte." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Aan" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Uit" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Opnieuw instellen" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Het standaardontwerp is weer ingesteld." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Uit de favorietenlijst verwijderen" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Op de favorietenlijst plaatsen" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Aan favorieten toevoegen" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "Vrienden van vrienden (FOAF)" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "Feeds" #: lib/galleryaction.php:121 @@ -6132,8 +7726,12 @@ msgstr "OK" msgid "Grant this user the \"%s\" role" msgstr "Deze gebruiker de rol \"%s\" geven" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "De URL van de thuispagina of de blog van de groep of het onderwerp" #: lib/groupeditform.php:168 @@ -6142,62 +7740,115 @@ msgstr "Beschrijf de groep of het onderwerp" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Beschrijf de groep of het onderwerp in %d tekens" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Beschrijf de group in %d teken of minder" +msgstr[1] "Beschrijf de group in %d tekens of minder" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Locatie voor de groep - als relevant. Iets als \"Plaats, regio, land\"." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" -"Extra namen voor de groep, gescheiden door komma's of spaties. Maximaal %d." +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "Extra bijnaam voor de groep. Maximaal %d alias toegestaan." +msgstr[1] "" +"Extra bijnamen voor de groep, gescheiden met komma's of spaties. Maximaal %d " +"aliasen toegestaan." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Groep" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Groep %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Leden" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Leden van de groep %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Geblokkeerd" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s geblokkeerde gebruikers" +msgstr "Geblokkeerde gebruikers in %s" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Eigenschappen van de groep %s bewerken" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Logo voor %s toevoegen of verwijderen" +msgstr "Logo voor de groep %s toevoegen of bewerken" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "%s-ontwerp toevoegen of bewerken" +msgstr "Vormgeving van de groep %s toevoegen of aanpassen" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Groepen met de meeste leden" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Groepen met de meeste berichten" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Labels in de groepsmededelingen van %s" @@ -6211,38 +7862,57 @@ msgstr "Deze pagina is niet beschikbaar in een mediatype dat u accepteert" msgid "Unsupported image file format." msgstr "Niet ondersteund beeldbestandsformaat." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Dat bestand is te groot. De maximale bestandsgrootte is %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Gedeeltelijke upload." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Er is een systeemfout opgetreden tijdens het uploaden van het bestand." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Het bestand is geen afbeelding of het bestand is beschadigd." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Het bestand is zoekgeraakt." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Onbekend bestandstype" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d MB" +msgstr[1] "%d MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d kB" +msgstr[1] "%d kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d byte" +msgstr[1] "%d bytes" #: lib/jabber.php:387 #, php-format @@ -6254,10 +7924,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Onbekende bron Postvak IN %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Toetreden" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Verlaten" @@ -6270,49 +7936,54 @@ msgstr "Aanmelden met gebruikersnaam en wachtwoord" msgid "Sign up for a new account" msgstr "Nieuwe gebruiker aanmaken" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "E-mailadresbevestiging" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Hallo %s.\n" +"Hallo %1$s.\n" "\n" -"Iemand heeft zojuist dit e-mailadres ingegeven op %s.\n" +"Iemand heeft zojuist dit e-mailadres ingegeven op %2$s.\n" "\n" -"Als u dit was, en als u uw ingave wilt bevestigen, gebruik dan de " +"Als u dit was, en als u uw e-mailadres wilt bevestigen, gebruik dan de " "onderstaande URL:\n" "\n" -"%s\n" +"%3$s\n" "\n" "Als u het bovenstaande niet herkent, negeer dit bericht dan.\n" "\n" "Dank u wel voor uw tijd.\n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s volgt nu uw berichten %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6321,8 +7992,12 @@ msgstr "" "Als u denkt dat deze gebruiker wordt misbruikt, dan kunt u deze voor uw " "abonnees blokkeren en als spam rapporteren naar de websitebeheerders op %s." -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6331,36 +8006,40 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s volgt nu uw medelingen op %2$s.\n" "\n" -"\t%3$s\n" +"%3$s\n" "\n" "%4$s%5$s%6$s\n" "\n" "Met vriendelijke groet,\n" -"%7$s.\n" +"%2$s.\n" "----\n" -"Wijzig uw e-mailadres of instellingen op %8$s\n" +"Wijzig uw e-mailadres of instellingen op %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Beschrijving: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nieuw e-mailadres om e-mail te versturen aan %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6370,7 +8049,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "U hebt een nieuw postadres op %1$s.\n" "\n" @@ -6379,33 +8058,38 @@ msgstr "" "Meer informatie over e-mailen vindt u op %3$s.\n" "\n" "Met vriendelijke groet,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-bevestiging" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: bevestig dat u deze telefoon bezit met deze code:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s heeft u gepord" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6433,14 +8117,18 @@ msgstr "" "Met vriendelijke groet,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "U hebt een nieuw privébericht van %s." -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6474,14 +8162,19 @@ msgstr "" "Met vriendelijke groet,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) heeft uw mededeling als favoriet toegevoegd" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) heeft uw mededeling als favoriet toegevoegd" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6520,7 +8213,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6531,13 +8224,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) heeft u een mededeling gestuurd" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) heeft u een mededeling gestuurd" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6599,7 +8299,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:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "van" @@ -6619,24 +8319,27 @@ msgstr "Dit is niet uw inkomende e-mailadres." msgid "Sorry, no incoming email allowed." msgstr "Inkomende e-mail is niet toegestaan." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Niet ondersteund berichttype: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Er is een databasefout opgetreden tijdens het opslaan van uw bestand. " "Probeer het alstublieft opnieuw." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "Het te uploaden bestand is groter dan de ingestelde upload_max_filesize in " "php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6644,87 +8347,135 @@ msgstr "" "Het te uploaden bestand is groter dan de ingestelde MAX_FILE_SIZE in het " "HTML-formulier." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "De upload is slechts gedeeltelijk voltooid." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "De tijdelijke map is niet aanwezig." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Het was niet mogelijk naar schijf te schrijven." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Het uploaden van het bestand is tegengehouden door een uitbreiding." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Met dit bestand wordt het quotum van de gebruiker overschreden." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Het bestand kon niet verplaatst worden naar de doelmap." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Het was niet mogelijk het MIME-type van het bestand te bepalen." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Probeer een ander %s-formaat te gebruiken." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" is geen ondersteund bestandstype op deze server. Probeer een andere " +"bestandstype van de applicatie \"%2$s\" te gebruiken." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "Het bestandstype %s wordt door deze server niet ondersteund." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" is geen ondersteund bestandstype op deze server." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Directe mededeling verzenden" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Selecteer ontvanger:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Geen wederzijdse abonnees." + +#: lib/messageform.php:153 msgid "To" msgstr "Aan" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Beschikbare tekens" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Verzenden" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"De gebruikersnaam mag alleen kleine letters en cijfers bevatten. Spaties " +"zijn niet toegestaan." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Gebruikersnaam kan niet leeg zijn." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "De gebruikersnaam mag niet langer zijn dan %d teken." +msgstr[1] "De gebruikersnaam mag niet langer zijn dan %d tekens." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Mededeling verzenden" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Hallo, %s." -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Toevoegen" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Bestand toevoegen" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Mijn locatie bekend maken" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Mijn locatie niet bekend maken" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6733,51 +8484,55 @@ msgstr "" "nog eens" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "Z" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "O" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "op" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "in context" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6793,57 +8548,52 @@ msgstr "Porren" msgid "Send a nudge to this user" msgstr "Deze gebruiker porren" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Er is een fout opgetreden tijdens het invoegen van een nieuw profiel" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Fout tijdens het invoegen van een nieuw profiel." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Er is een fout opgetreden bij het toevoegen van de avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Fout bij het invoegen van de avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "" -"Er is een fout opgetreden tijdens het bijwerken van het profiel op afstand." +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Fout bij het invoegen van het profiel van een andere server." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "" -"Er is een fout opgetreden tijdens het invoegen in het profiel op afstand." +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Dubbele mededeling." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicaatmelding" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Kon nieuw abonnement niet toevoegen." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Persoonlijk" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Antwoorden" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favorieten" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Postvak IN" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Uw inkomende berichten" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Postvak UIT" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Uw verzonden berichten" @@ -6852,7 +8602,8 @@ msgstr "Uw verzonden berichten" msgid "Tags in %s's notices" msgstr "Labels in de mededelingen van %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Onbekend" @@ -6934,9 +8685,10 @@ msgstr "Deze mededeling herhalen" msgid "Revoke the \"%s\" role from this user" msgstr "De gebruikersrol \"%s\" voor deze gebruiker intrekken" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Er is geen gebruiker gedefinieerd voor single-usermodus." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "De pagina is niet aangetroffen." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6946,19 +8698,25 @@ msgstr "Zandbak" msgid "Sandbox this user" msgstr "Deze gebruiker in de zandbak plaatsen" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Site doorzoeken" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Term(en)" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Zoeken" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Hulp bij zoeken" @@ -7032,6 +8790,11 @@ msgstr "Gebruikerslabelwolk" msgid "None" msgstr "Geen" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Ongeldige naam voor vormgeving." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -7043,28 +8806,33 @@ msgid "The theme file is missing or the upload failed." msgstr "Het vormgevingsbestand ontbreekt of is de upload mislukt." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Het opslaan van de vormgeving is mislukt." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Ongeldige vormgeving: de mappenstructuur is onjuist." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" -"De toegevoegde vormgeving is te groot. Deze moet uitgepakt kleiner zijn dan %" -"d bytes." +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"De geüploade vormgeving is te groot; deze moet omgecomprimeerd kleiner zijn " +"dan %d byte." +msgstr[1] "" +"De geüploade vormgeving is te groot; deze moet omgecomprimeerd kleiner zijn " +"dan %d bytes." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" "Ongeldig bestand met vormgeving: het bestand css/display.css is niet aanwezig" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7072,13 +8840,17 @@ msgstr "" "De vormgeving bevat een ongeldige bestandsnaam of mapnaam. Gebruik alleen " "maar ASCII-letters, getallen, liggende streepjes en het minteken." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Het uiterlijk bevat onveilige namen voor bestandsextensies." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" "De vormgeving bevat een bestand van het type \".%s\". Dit is niet toegestaan." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "" "Er is een fout opgetreden tijdens het openen van het archiefbestand met de " @@ -7088,6 +8860,12 @@ msgstr "" msgid "Top posters" msgstr "Meest actieve gebruikers" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Deblokkeren" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Uit de zandbak halen" @@ -7112,124 +8890,178 @@ msgstr "Uitschrijven van deze gebruiker" msgid "Unsubscribe" msgstr "Abonnement opheffen" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Gebruiker %s (%d) heeft geen profielrecord." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Gebruiker %1$s (%2$d) heeft geen profielrecord." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Avatar bewerken" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Gebruikershandelingen" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Bezig met het verwijderen van de gebruiker..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Profielinstellingen bewerken" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Bewerken" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Deze gebruiker een direct bericht zenden" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Bericht" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Modereren" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Gebruikersrol" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Beheerder" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "een paar seconden geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "ongeveer een minuut geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "ongeveer %d minuten geleden" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "ongeveer een minuut geleden" +msgstr[1] "ongeveer %d minuten geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "ongeveer een uur geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "ongeveer %d uur geleden" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "ongeveer een uur geleden" +msgstr[1] "ongeveer %d uur geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "ongeveer een dag geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "ongeveer %d dagen geleden" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "ongeveer een dag geleden" +msgstr[1] "ongeveer %d dagen geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "ongeveer een maand geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "ongeveer %d maanden geleden" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "ongeveer een maand geleden" +msgstr[1] "ongeveer %d maanden geleden" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "ongeveer een jaar geleden" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s is geen geldige kleur." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s is geen geldige kleur. Gebruik drie of zes hexadecimale tekens." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" +"Onbekende gebruiker. Ga naar %s om uw adres toe te voegen aan uw gebruiker." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "Het bericht te is lang. De maximale lengte is %1$d tekens. De lengte van uw " "bericht was %2$d." +msgstr[1] "" +"Het bericht te is lang. De maximale lengte is %1$d tekens. De lengte van uw " +"bericht was %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Ongeldige XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "Ongeldige XML. De XRD-root mist." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "De back-up wordt uit het bestand \"%s\" geladen." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Geen gebruiker opgegeven; de back-upgebruiker wordt gebruikt." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d element in de back-up." +msgstr[1] "%d elementen in de back-up." diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 08b25c9e6b..2bfd4a044a 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -1,95 +1,111 @@ -# Translation of StatusNet to Norwegian Nynorsk +# Translation of StatusNet - Core to Norwegian Nynorsk (‪Norsk (nynorsk)‬) +# Expored from translatewiki.net # -# Author@translatewiki.net: Nghtwlkr +# Author: Nghtwlkr +# Author: Ranveig # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:48+0000\n" -"Language-Team: Norwegian Nynorsk\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:06+0000\n" +"Language-Team: Norwegian Nynorsk <http://translatewiki.net/wiki/Portal:nn>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 #, fuzzy msgid "Access" msgstr "Godta" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 #, fuzzy msgid "Site access settings" msgstr "Avatar-innstillingar" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 #, fuzzy msgid "Registration" msgstr "Registrér" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 #, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Personvern" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 #, fuzzy msgid "Invite only" msgstr "Invitér" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 #, fuzzy msgid "Closed" msgstr "Blokkér" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "Avatar-innstillingar" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 #, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Lagra" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 @@ -97,189 +113,260 @@ msgstr "Lagra" msgid "No such page." msgstr "Dette emneord finst ikkje." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Brukaren finst ikkje." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format +#: actions/all.php:91 +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s med vener, side %d" +msgstr "%s med vener" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s med vener" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Straum for vener av %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Straum for vener av %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Straum for vener av %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 #, fuzzy msgid "You and friends" msgstr "%s med vener" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Oppdateringar frå %1$s og vener på %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "Fann ikkje API-metode." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Dette krev ein POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "Kan ikkje oppdatera brukar." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Brukaren har inga profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "Kan ikkje lagra profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 @@ -287,320 +374,477 @@ msgstr "" msgid "Unable to save your design settings." msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Kan ikkje oppdatera brukar." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tidsline" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s tingarar" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favorittar" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s medlemmar i gruppa" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 #, fuzzy msgid "You cannot block yourself!" msgstr "Kan ikkje oppdatera brukar." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokkering av brukar feila." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "De-blokkering av brukar feila." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, fuzzy, php-format msgid "Direct messages from %s" msgstr "Direkte meldingar til %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alle direkte meldingar sendt fra %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direkte meldingar til %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alle direkte meldingar sendt til %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Inga meldingstekst!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Det er for langt. Ein notis kan berre være 140 teikn." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Du kan lasta opp ein logo for gruppa." +msgstr[1] "Du kan lasta opp ein logo for gruppa." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Kunne ikkje finne mottakar." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Kan ikkje senda direktemeldingar til brukarar som du ikkje er ven med." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Ikkje send ei melding til deg sjølv; berre sei det til deg sjølv stille og " +"fredleg." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Fann ingen status med den ID-en." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 #, fuzzy msgid "This status is already a favorite." msgstr "Denne notisen er alt ein favoritt!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Kunne ikkje lagre favoritt." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 #, fuzzy msgid "That status is not a favorite." msgstr "Denne notisen er ikkje ein favoritt!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Kunne ikkje slette favoritt." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" +msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Fann ikkje brukaren, so han kan ikkje fylgjast" +msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 #, fuzzy msgid "You cannot unfollow yourself." msgstr "Kan ikkje oppdatera brukar." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." +msgid "Two valid IDs or nick names must be supplied." msgstr "To brukar IDer eller kallenamn er naudsynte." -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Kan ikkje hente offentleg straum." +msgstr "Kan ikkje oppdatera brukar." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Kan ikkje finna einkvan status." +msgstr "Kan ikkje oppdatera brukar." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Ikkje eit gyldig brukarnamn." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Heimesida er ikkje ei gyldig internettadresse." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "skildringa er for lang (maks 140 teikn)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Plassering er for lang (maksimalt 255 teikn)." +msgstr[1] "Plassering er for lang (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Plassering er for lang (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, fuzzy, php-format msgid "Invalid alias: \"%s\"." msgstr "Ugyldig merkelapp: %s" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Fann ikkje API-metode." +msgstr "Finst ikkje." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 #, fuzzy msgid "You are already a member of that group." msgstr "Du er allereie medlem av den gruppa" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" +msgstr "Kunne ikkje bli med i gruppa." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 #, fuzzy msgid "You are not a member of this group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Kunne ikkje fjerne %s fra %s gruppa " +msgstr "Kunne ikkje laga gruppa." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, fuzzy, php-format msgid "%s's groups" msgstr "%s grupper" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "Grupper %s er medlem av" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s grupper" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, fuzzy, php-format msgid "groups on %s" msgstr "Gruppe handlingar" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "Last opp fil" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Ugyldig notisinnhald" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." +msgid "Invalid request token." msgstr "Ugyldig storleik." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Du tingar ikkje oppdateringar til den profilen." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Der var eit problem med sesjonen din. Vennlegst prøv på nytt." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 #, fuzzy msgid "Invalid nickname / password!" msgstr "Ugyldig brukarnamn eller passord." -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Feil ved å setja brukar." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Uventa skjemasending." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -608,250 +852,632 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Kallenamn" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Passord" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" - -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 #, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Avbryt" + +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Alle" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Ingen stadfestingskode." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Du tingar ikkje oppdateringar til den profilen." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Du tingar ikkje oppdateringar til den profilen." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Dette krev anten ein POST eller DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Du kan ikkje sletta statusen til ein annan brukar." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Denne notisen finst ikkje." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 #, fuzzy msgid "Cannot repeat your own notice." msgstr "Kan ikkje slå på notifikasjon." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Slett denne notisen" +msgstr "Kan ikkje sletta notisen." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Fann ikkje API-metode." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Støttar ikkje bileteformatet." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 #, fuzzy msgid "Status deleted." msgstr "Lasta opp brukarbilete." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Fann ingen status med den ID-en." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Kan ikkje sletta notisen." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Slett notis" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Det er for langt! Ein notis kan berre innehalde 140 teikn." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Du kan lasta opp ein logo for gruppa." +msgstr[1] "Du kan lasta opp ein logo for gruppa." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Finst ikkje." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Fann ikkje API-metode." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 #, fuzzy msgid "Unsupported format." msgstr "Støttar ikkje bileteformatet." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%s / Favorittar frå %s" +msgstr "%1$s sin status på %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s oppdateringar favorisert av %s / %s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s oppdateringar som svarar på oppdateringar frå %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 #, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Kann ikkje oppdatera gruppa." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Oppdateringar som svarar til %2$s" +msgstr "%1$s sin status på %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringar som svarar på oppdateringar frå %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s offentleg tidsline" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringar frå alle saman!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Kommando ikkje implementert." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "Svar til %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "Svar til %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notisar merka med %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Kun brukaren kan lese sine eigne meldingar." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Søk i innhaldet av notisar" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Fann ingen profil med den IDen." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-metoden er ikkje ferdig enno." -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Slikt dokument finst ikkje." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Fann ikkje API-metode." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Denne notisen finst ikkje." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kan ikkje leggja til ny tinging." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Søk i innhaldet av notisar" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Uventa handling." + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Legg til i favorittar" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Denne notisen finst ikkje." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s medlemmar i gruppa" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupper %s er medlem av" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Uventa handling." + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alle medlemmar" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Denne notisen finst ikkje." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Kunne ikkje slette favoritt." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Denne gruppa finst ikkje." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alle medlemmar" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Fann ikkje API-metode." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Denne notisen finst ikkje." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Du tingar ikkje oppdateringar til den profilen." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Kunne ikkje lagra abonnement." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Mennesker som tingar %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Ukjend fil type" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Dette emneord finst ikkje." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Ingen kallenamn." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ingen storleik." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ugyldig storleik." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Brukarbilete" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 -#, fuzzy, php-format +#, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "Du kan laste opp ein personleg avatar." +msgstr "Du kan lasta opp ein logo for gruppa." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Kan ikkje finne brukar" +msgstr "Brukaren har inga profil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar-innstillingar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forhandsvis" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Slett" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Last opp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Skaler" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "Ingen vald profil." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Velg eit utvalg av bildet som vil blir din avatar." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Fant ikkje igjen fil data." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Lasta opp brukarbilete." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Feil ved oppdatering av brukarbilete." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 #, fuzzy msgid "Avatar deleted." msgstr "Lasta opp brukarbilete." -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Du har allereie blokkert denne brukaren." +msgstr "Du tingar allereie oppdatering frå desse brukarane:" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blokker brukaren" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -860,186 +1486,228 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Nei" +msgstr "Merknad" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 #, fuzzy msgid "Do not block this user" msgstr "Lås opp brukaren" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "Jau" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blokkér denne brukaren" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Lagring av informasjon feila." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Denne gruppa finst ikkje." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Brukarprofil" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s med vener, side %d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "Ei liste over brukarane i denne gruppa." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 #, fuzzy msgid "Unblock user from group" msgstr "De-blokkering av brukar feila." -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Lås opp" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Lås opp brukaren" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Bilete" +msgstr "Svar til %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Ingen stadfestingskode." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Fann ikkje stadfestingskode." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Den godkjenningskoden er ikkje for deg!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Ukjend adressetype %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Den addressa har alt blitt bekrefta." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Kan ikkje oppdatera brukar." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Kan ikkje sletta e-postgodkjenning." -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Stadfest adresse" +msgstr "Godkjent epostadresse." -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Addressa \"%s\" har blitt bekrefta for din konto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 #, fuzzy msgid "Conversation" msgstr "Stadfestingskode" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notisar" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "Du må være logga inn for å lage ei gruppe." +msgstr "Du må være innlogga for å melde deg ut av ei gruppe." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Notisen har ingen profil" +msgstr "Fann ikkje stadfestingskode." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 #, fuzzy msgid "You are not the owner of this application." msgstr "Du er ikkje medlem av den gruppa." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Det var eit problem med sesjons billetten din." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 #, fuzzy msgid "Delete application" msgstr "Denne notisen finst ikkje." -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1047,33 +1715,93 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 #, fuzzy msgid "Do not delete this application" msgstr "Kan ikkje sletta notisen." #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "Slett denne notisen" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Du må være innlogga for å melde deg ut av ei gruppe." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ingen kallenamn." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Du er ikkje medlem av den gruppa." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Kann ikkje oppdatera gruppa." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s sin status på %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Slett" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Kan ikkje sletta notisen." + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Slett denne notisen" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ikkje logga inn" -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Kan ikkje sletta notisen." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 #, fuzzy msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " @@ -1082,22 +1810,25 @@ msgstr "" "Du er i ferd med å sletta ei melding. Når den fyrst er sletta, kann du " "ikkje finne ho att." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Slett notis" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Sikker på at du vil sletta notisen?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 #, fuzzy msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1130,69 +1861,78 @@ msgstr "Slett denne notisen" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Ugyldig storleik." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Ugyldig storleik." + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Denne sida er ikkje tilgjengleg i eit" -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Endra passordet ditt" +msgstr "Endra" -#: actions/designadminpanel.php:431 -#, fuzzy +#: actions/designadminpanel.php:453 msgid "Site logo" -msgstr "Invitér" +msgstr "Statusmelding" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Statusmelding" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Endra" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 #, fuzzy msgid "Site theme" msgstr "Statusmelding" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 #, fuzzy msgid "Theme for the site." msgstr "Logg ut or sida" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Statusmelding" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1200,78 +1940,87 @@ msgid "" msgstr "Du kan lasta opp ein logo for gruppa." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 #, fuzzy msgid "Change colours" msgstr "Endra passordet ditt" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Innhald" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 #, fuzzy msgid "Sidebar" msgstr "Søk" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 #, fuzzy msgid "Links" msgstr "Logg inn" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Lagra" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "" @@ -1284,134 +2033,151 @@ msgid "Add to favorites" msgstr "Legg til i favorittar" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Slikt dokument finst ikkje." +msgstr "Denne notisen finst ikkje." -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Andre val" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 #, fuzzy msgid "You must be logged in to edit an application." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Denne notisen finst ikkje." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 #, fuzzy msgid "Use this form to edit your application." msgstr "Bruk dette skjemaet for å redigere gruppa" -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 #, fuzzy msgid "Name is required." msgstr "Samme som passord over. Påkrevd." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." +msgid "Name is too long (maximum 255 characters)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 #, fuzzy msgid "Description is required." msgstr "Beskriving" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "Heimesida er ikkje ei gyldig internettadresse." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." +msgid "Organization is too long (maximum 255 characters)." msgstr "Plassering er for lang (maksimalt 255 teikn)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Kann ikkje oppdatera gruppa." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Rediger %s gruppa" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "Du må være administrator for å redigere gruppa" +msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Bruk dette skjemaet for å redigere gruppa" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "skildringa er for lang (maks 140 teikn)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Ugyldig merkelapp: %s" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Kann ikkje oppdatera gruppa." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 #, fuzzy msgid "Could not create aliases." msgstr "Kunne ikkje lagre favoritt." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Lagra innstillingar." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Epostinnstillingar" +msgstr "Profilinnstillingar" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1422,13 +2188,13 @@ msgstr "Styr korleis du får epost frå %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 #, fuzzy msgid "Email address" msgstr "Epostadresser" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Godkjent epostadresse." @@ -1437,15 +2203,14 @@ msgstr "Godkjent epostadresse." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "Fjern" +msgstr "Gjenopprett" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1453,26 +2218,19 @@ msgstr "" "Ventar på godkjenning. Sjekk innboksen (og søppelpostboksen) for ei melding " "med instruksjonar." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Avbryt" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Epostadresse («brukarnamn@example.org»)" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1481,115 +2239,120 @@ msgstr "Legg til" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Innkomande epost" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Eg vil senda notisar med epost." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Send epost til denne addressa for å legge til nye notisar." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Vel ny epostadresse til å oppdatera med; fjerner den gamle." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Ny" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Brukarval" +msgstr "Epostadresser" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Send meg ein notis ved nye tingingar på epost." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Send meg ein epost når nokon legg til ein av mine notisar som favoritt." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Send meg ein epost når nokon sender meg ei privat melding." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 #, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Send meg ein epost når nokon sender meg ei privat melding." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Tillat vennar å sende meg ein epost." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Eg vil senda notisar med epost." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publiser ein MicroID for epost addressa mi." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "Synkroniserings innstillingar blei lagra." +msgstr "Lagra brukarval." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Ingen epostadresse." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Klarar ikkje normalisera epostadressa" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ikkje ei gyldig epostadresse." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Det er alt din epost addresse" #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Den epost addressa er alt registrert hos ein annan brukar." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Kan ikkje leggja til godkjenningskode." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1600,53 +2363,57 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ingen ventande stadfesting å avbryta." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Det er feil lynmeldings addresse." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kan ikkje sletta e-postgodkjenning." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Stadfesting avbrutt." +msgstr "Ingen ventande stadfesting å avbryta." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Det er ikkje din epost addresse." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Addressa blei fjerna." +msgstr "Fjerna innkomande epostadresse." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ingen innkomande epostadresse." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kan ikkje oppdatera brukarinformajon." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Fjerna innkomande epostadresse." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "La til ny innkomande epostadresse." @@ -1654,11 +2421,11 @@ msgstr "La til ny innkomande epostadresse." msgid "This notice is already a favorite!" msgstr "Denne notisen er alt ein favoritt!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Fjern favoritt" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populære notisar" @@ -1690,7 +2457,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%s's favoritt meldingar" @@ -1716,14 +2483,12 @@ msgid "A selection of some great users on %s" msgstr "Eit utval av nokre av dei flotte folka på %s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Ny notis" +msgstr "Denne notisen finst ikkje." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Ny notis" +msgstr "Denne notisen finst ikkje." #: actions/file.php:42 #, fuzzy @@ -1753,9 +2518,8 @@ msgid "That user has blocked you from subscribing." msgstr "Brukaren tillet deg ikkje å tinga meldingane sine." #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Ikkje autorisert." +msgstr "Du tingar ikkje oppdateringar til den profilen." #: actions/finishremotesubscribe.php:113 #, fuzzy @@ -1767,7 +2531,7 @@ msgstr "Kan ikkje konvertera spyrjebillett til tilgongsbillett." msgid "Remote service uses unknown version of OMB protocol." msgstr "Ukjend versjon av OMB-protokollen." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Feil ved oppdatering av ekstern profil" @@ -1792,28 +2556,30 @@ msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Du kan ikkje sende melding til denne brukaren." +msgstr "Du kan ikkje lengre legge inn notisar på denne sida." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Brukar har blokkert deg." +msgstr "Brukaren har inga profil." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Ingen vald profil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Fann ingen profil med den IDen." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 #, fuzzy msgid "No group specified." @@ -1833,7 +2599,7 @@ msgstr "Brukar har blokkert deg." msgid "User is not a member of group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 #, fuzzy msgid "Block user from group" msgstr "Blokker brukaren" @@ -1863,9 +2629,8 @@ msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Ingen ID" +msgstr "Nei Jabber-ID" #: actions/groupdesignsettings.php:68 #, fuzzy @@ -1883,16 +2648,17 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Kan ikkje oppdatera brukar." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "Synkroniserings innstillingar blei lagra." +msgstr "Lagra brukarval." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" @@ -1904,6 +2670,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Du kan lasta opp ein logo for gruppa." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Last opp" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Skaler" + #: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." @@ -1917,50 +2691,56 @@ msgstr "Logo oppdatert." msgid "Failed updating logo." msgstr "Feil ved oppdatering av logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s medlemmar i gruppa" -#: actions/groupmembers.php:103 -#, fuzzy, php-format +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 +#, php-format msgid "%1$s group members, page %2$d" -msgstr "%s medlemmar i gruppa, side %d" +msgstr "%s medlemmar i gruppa" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Ei liste over brukarane i denne gruppa." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Blokkér" +msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 #, fuzzy msgid "Make user an admin of the group" msgstr "Du må være administrator for å redigere gruppa" -#: actions/groupmembers.php:519 -#, fuzzy +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "Administrator" - -#: actions/groupmembers.php:519 -msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s tidsline" +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" +msgid "Make this user an admin" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -2007,9 +2787,8 @@ msgstr "Gruppesøk" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "Ingen resultat" +msgstr "Resultat frå kommandoen" #: actions/groupsearch.php:82 #, php-format @@ -2025,24 +2804,26 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 #, fuzzy msgid "User is not blocked from group." msgstr "Brukar har blokkert deg." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Feil ved fjerning av blokka." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Ljonmeldinginnstillingar" +msgstr "Avatar-innstillingar" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2065,9 +2846,8 @@ msgstr "Denne sida er ikkje tilgjengleg i eit" #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "Ljonmeldingadresse" +msgstr "Epostadresser" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2086,7 +2866,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2096,64 +2879,63 @@ msgstr "" "leggja %s til venelista di i ljonmeldingsklienten din." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Brukarval" +msgstr "Lagra brukarval." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Send meg ein notis via Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Legg til ein notis når min Jabber/GTalk status forandrar seg." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Send meg svar via Jabber/GTalk fra folk eg ikkje abbonnerar på." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publiser ein MicroID for Jabber/GTalk addressene mine" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Lagra brukarval." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Nei Jabber-ID" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Klarar ikkje normalisera Jabber-IDen" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Ikkje ein gyldig Jabber-ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Det er alt din Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber-ID tilhøyrer allereie ein annan brukar." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2163,33 +2945,31 @@ msgstr "" "for å senda meldinger til deg." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Det er feil lynmeldings addresse." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Kan ikkje sletta e-postgodkjenning." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Stadfesting avbrutt." +msgstr "Ingen stadfestingskode." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Det er ikkje din Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "Addressa blei fjerna." +msgstr "Fjerna innkomande epostadresse." #: actions/inbox.php:59 #, fuzzy, php-format @@ -2205,50 +2985,81 @@ msgstr "Innboks for %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "Dette er innboksen for dine private meldingar." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "Du må verta logga inn for å invitera andre brukarar til %s" - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" +msgid "You must be logged in to invite other users to use %s." +msgstr "Du må være logga inn for å bli med i ei gruppe." + +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Ugyldig epostadresse: «%s»" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Invitasjon(er) sendt" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Invitér nye brukarar" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Du tingar allereie oppdatering frå desse brukarane:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Du tingar allereie oppdatering frå desse brukarane:" +msgstr[1] "Du tingar allereie oppdatering frå desse brukarane:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Desse er alt brukarar og du var automatisk satt opp med tinging på dei:" +msgstr[1] "" "Desse er alt brukarar og du var automatisk satt opp med tinging på dei:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Invitasjon(er) sendt til fylgjande folk:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Invitasjon(er) sendt til fylgjande folk:" +msgstr[1] "Invitasjon(er) sendt til fylgjande folk:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2256,44 +3067,55 @@ msgstr "" "Du vil få ein notis når dei du har invitert har akseptert invitasjonen og " "har registrert seg på sida. Takk for å bidra til fellesskapet her!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Bruk dette skjemaet for å invitera vener og kolleger til å nytta denne " "tenesta." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Epostadresser" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Venene sine adresser for invitasjon (ei per line)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Personleg melding" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Eventuelt legg til ei personleg melding til invitasjonen." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Send" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har invitert deg til %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2349,14 +3171,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du må være logga inn for å bli med i ei gruppe." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Ingen kallenamn." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s blei medlem av gruppe %s" @@ -2365,16 +3180,121 @@ msgstr "%s blei medlem av gruppe %s" msgid "You must be logged in to leave a group." msgstr "Du må være innlogga for å melde deg ut av ei gruppe." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Du er ikkje medlem av den gruppa." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s forlot %s gruppa" +msgstr "%1$s sin status på %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Plassering er for lang (maksimalt 255 teikn)." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Personvern" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2382,7 +3302,7 @@ msgstr "Allereie logga inn." #: actions/login.php:148 msgid "Incorrect username or password." -msgstr "Feil brukarnamn eller passord" +msgstr "Feil brukarnamn eller passord." #: actions/login.php:154 actions/otp.php:120 #, fuzzy @@ -2397,11 +3317,11 @@ msgstr "Logg inn" msgid "Login to site" msgstr "Logg inn " -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Hugs meg" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Logg inn automatisk i framtidi (ikkje for delte maskiner)." @@ -2455,73 +3375,83 @@ msgstr "Du må være administrator for å redigere gruppa" msgid "No current status." msgstr "Ingen status" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" +msgid "New application" msgstr "Denne notisen finst ikkje." -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 #, fuzzy msgid "Use this form to register a new application." msgstr "Bruk dette skjemaet for å lage ein ny gruppe." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Kunne ikkje lagre favoritt." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Ny gruppe" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Bruk dette skjemaet for å lage ein ny gruppe." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Ny melding" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Du kan ikkje sende melding til denne brukaren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Ingen innhald." -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Ingen mottakar spesifisert." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Ikkje send ei melding til deg sjølv; berre sei det til deg sjølv stille og " "fredleg." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 #, fuzzy msgid "Message sent" msgstr "Melding" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Direkte melding til %s sendt" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax feil" @@ -2529,7 +3459,7 @@ msgstr "Ajax feil" msgid "New notice" msgstr "Ny notis" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Melding lagra" @@ -2547,9 +3477,9 @@ msgid "Text search" msgstr "Tekstsøk" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " Søkestraum for «%s»" +msgstr "Melding fra %1$s på %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2571,14 +3501,15 @@ msgid "Updates with \"%s\"" msgstr "Oppdateringar frå %1$s på %2$s!" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Alle oppdateringer frå søket «%s»" +msgstr "Oppdateringar frå %1$s på %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Denne brukaren tillét ikkje å bli dytta, eller har ikkje stadfasta eller sat " "e-postadressa si enno." @@ -2591,76 +3522,99 @@ msgstr "Dytta!" msgid "Nudge sent!" msgstr "Dytta!" -#: actions/oauthappssettings.php:59 -#, fuzzy +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "Du må være logga inn for å lage ei gruppe." +msgstr "Du må være logga inn for å bli med i ei gruppe." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 #, fuzzy msgid "OAuth applications" msgstr "Andre val" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "Du er ikkje medlem av den gruppa." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Bruk dette skjemaet for å redigere gruppa" + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Notisen har ingen profil" +msgstr "Brukaren har inga profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s sin status på %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "Kopla til" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -2672,38 +3626,47 @@ msgstr "Søk etter folk" msgid "Notice Search" msgstr "Notissøk" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Andre innstillingar" +msgstr "Avatar-innstillingar" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Velikehald andre innstillingar" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Den automatisk forkortingstenesta du vil bruke" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 #, fuzzy msgid "View profile designs" msgstr "Profilinnstillingar" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Adressa til forkortingstenesta er for lang (maksimalt 50 teikn)." #: actions/otp.php:69 @@ -2717,9 +3680,8 @@ msgid "No login token specified." msgstr "Ingen vald profil." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Ingen profil-ID i førespurnaden." +msgstr "Ingen autoriserings-spørjing!" #: actions/otp.php:95 #, fuzzy @@ -2770,7 +3732,7 @@ msgid "6 or more characters" msgstr "6 eller fleire teikn" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Godta" @@ -2782,11 +3744,11 @@ msgstr "Samme passord som over" msgid "Change" msgstr "Endra" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Passord må være minst 6 teikn." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Passorda var ikkje like." @@ -2806,166 +3768,291 @@ msgstr "Klarar ikkje lagra nytt passord." msgid "Password saved." msgstr "Lagra passord." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Denne sida er ikkje tilgjengleg i eit" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Denne sida er ikkje tilgjengleg i eit" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Denne sida er ikkje tilgjengleg i eit" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Denne sida er ikkje tilgjengleg i eit" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 #, fuzzy msgid "Site" msgstr "Invitér" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Tenar" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" +msgid "Site path." msgstr "Statusmelding" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Lasta opp brukarbilete." + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Logg ut or sida" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "Tenar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Statusmelding" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." msgstr "" -#: actions/pathsadminpanel.php:279 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Lasta opp brukarbilete." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 #, fuzzy msgid "Avatars" msgstr "Brukarbilete" -#: actions/pathsadminpanel.php:284 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 #, fuzzy msgid "Avatar server" msgstr "Avatar-innstillingar" -#: actions/pathsadminpanel.php:288 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Logg ut or sida" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 #, fuzzy msgid "Avatar path" msgstr "Lasta opp brukarbilete." -#: actions/pathsadminpanel.php:292 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Feil ved oppdatering av brukarbilete." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 #, fuzzy msgid "Avatar directory" msgstr "Lasta opp brukarbilete." -#: actions/pathsadminpanel.php:301 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 msgid "Backgrounds" msgstr "" -#: actions/pathsadminpanel.php:305 -msgid "Background server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Logg ut or sida" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." msgstr "" -#: actions/pathsadminpanel.php:309 -msgid "Background path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." msgstr "" -#: actions/pathsadminpanel.php:313 -msgid "Background directory" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." msgstr "" -#: actions/pathsadminpanel.php:320 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Logg ut or sida" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Slikt dokument finst ikkje." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Logg ut or sida" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 #, fuzzy msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 msgid "Never" -msgstr "Gjenopprett" +msgstr "Tenar" -#: actions/pathsadminpanel.php:324 +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 #, fuzzy msgid "Sometimes" msgstr "Notisar" -#: actions/pathsadminpanel.php:325 +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 msgid "Always" msgstr "" -#: actions/pathsadminpanel.php:329 +#: actions/pathsadminpanel.php:485 msgid "Use SSL" msgstr "" -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." msgstr "" -#: actions/pathsadminpanel.php:335 -#, fuzzy -msgid "SSL server" -msgstr "Gjenopprett" - -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Statusmelding" @@ -2984,9 +4071,9 @@ msgid "People search" msgstr "Søk etter folk" #: actions/peopletag.php:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "Ikkje gyldig merkelapp: %s" +msgstr "Ikkje ei gyldig epostadresse." #: actions/peopletag.php:142 #, fuzzy, php-format @@ -2994,152 +4081,196 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Brukarar sjølv-merka med %s, side %d" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Ugyldig notisinnhald" +msgstr "Ugyldig filnamn." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profilinnstillingar" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Du kan oppdatera informasjonen i profilen din her, so folk kan vite meir om " "deg." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profil informasjon" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "1-64 små bokstavar eller tal, ingen punktum (og liknande) eller mellomrom" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Fullt namn" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Heimeside" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL til heimesida di, bloggen din, eller ein profil på ei anna side." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Skriv om deg og interessene dine med 140 teikn" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Skriv om deg og interessene dine med 140 teikn" +msgstr[1] "Skriv om deg og interessene dine med 140 teikn" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 #, fuzzy msgid "Describe yourself and your interests" msgstr "Skildra deg sjølv og din" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Om meg" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Plassering" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Merkelappar" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Foretrukke språk" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tidssone" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Kva tidssone er du vanlegvis i?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "«Om meg» er for lang (maks 140 " +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Plassering er for lang (maksimalt %d teikn)." +msgstr[1] "Plassering er for lang (maksimalt %d teikn)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidssone er ikkje valt." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Språk er for langt (maksimalt 50 teikn)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ugyldig merkelapp: %s" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Kan ikkje oppdatera brukar for automatisk tinging." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Kan ikkje lagra merkelapp." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Kan ikkje lagra profil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Kan ikkje lagra merkelapp." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Lagra innstillingar." @@ -3212,32 +4343,45 @@ msgstr "" "Dette er %%site.name%%, ei [mikroblogging](http://en.wikipedia.org/wiki/" "Micro-blogging)-teneste" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Offentleg emne sky" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Dei mest populære emna på %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Emne sky" @@ -3267,25 +4411,30 @@ msgstr "Denne godkjenningskoden er for gammal. Vennligst start på nytt." #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." +msgstr "Kunne ikkje oppdatera brukar med stadfesta e-postadresse." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"Instruksjonar for å få att passordet ditt er send til epostadressa som er " +"lagra i kontoen din." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Passord opphenting etterspurt" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Skriv inn kallenamn eller epostadresse." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3348,14 +4497,15 @@ msgid "Unexpected password reset." msgstr "Uventa passordnullstilling." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Passord må vera 6 tekn eller meir." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Passord og stadfesting stemmer ikkje." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Feil ved å setja brukar." @@ -3363,7 +4513,7 @@ msgstr "Feil ved å setja brukar." msgid "New password successfully saved. You are now logged in." msgstr "Lagra det nye passordet. Du er logga inn." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Beklage, men kun inviterte kan registrere seg." @@ -3376,7 +4526,7 @@ msgstr "Feil med stadfestingskode." msgid "Registration successful" msgstr "Registreringa gikk bra" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrér" @@ -3384,76 +4534,80 @@ msgstr "Registrér" msgid "Registration not allowed." msgstr "Registrering ikkje tillatt." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Du kan ikkje registrera deg om du ikkje godtek vilkåra i lisensen." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Epostadressa finst allereie." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Ugyldig brukarnamn eller passord." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 små bokstavar eller tal, ingen punktum (og liknande) eller mellomrom. " "Kravd." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 eller fleire teikn. Kravd." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Samme som passord over. Påkrevd." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Epost" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Blir berre brukt for uppdateringar, viktige meldingar og for gløymde passord" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Lengre namn, fortrinnsvis ditt «ekte» namn" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL til heimesida di, bloggen din, eller ein profil på ei anna side." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3462,7 +4616,7 @@ msgstr "" " unnateke privatdata: passord, epostadresse, ljonmeldingsadresse og " "telefonnummer." -#: actions/register.php:583 +#: actions/register.php:589 #, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3494,7 +4648,7 @@ msgstr "" "\n" "Takk for at du blei med, og vi håpar du vil lika tenesta!" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3540,7 +4694,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL til profilsida di på ei anna kompatibel mikrobloggingteneste." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Ting" @@ -3583,10 +4737,9 @@ 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:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "Lag" +msgstr "Framheva" #: actions/repeat.php:119 #, fuzzy @@ -3594,15 +4747,15 @@ msgid "Repeated!" msgstr "Lag" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Svar til %s" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Melding til %1$s på %2$s" +msgstr "Svar til %s" #: actions/replies.php:145 #, fuzzy, php-format @@ -3646,9 +4799,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Melding til %1$s på %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Du kan ikkje sende melding til denne brukaren." +msgstr "Du kan ikkje lengre legge inn notisar på denne sida." #: actions/revokerole.php:82 #, fuzzy @@ -3656,9 +4808,8 @@ msgid "User doesn't have this role." msgstr "Kan ikkje finne brukar" #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Lasta opp brukarbilete." +msgstr "Statistikk" #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy @@ -3672,12 +4823,12 @@ msgstr "Brukar har blokkert deg." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3697,7 +4848,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Avatar-innstillingar" @@ -3713,30 +4863,31 @@ msgid "Application profile" msgstr "Notisen har ingen profil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Kallenamn" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 #, fuzzy msgid "Organization" msgstr "Paginering" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistikk" @@ -3754,6 +4905,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Slett" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3838,78 +4994,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s gruppe" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "%s medlemmar i gruppa, side %d" +msgstr "Grupper, side %d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Gruppe profil" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Merknad" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Gruppe handlingar" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Notisstraum for %s gruppa" +msgstr "Straum for vener av %s" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Notisstraum for %s gruppa" +msgstr "Straum for vener av %s" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Notisstraum for %s gruppa" +msgstr "Notisstraum for %s" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Utboks for %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alle medlemmar" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 #, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "Lag" +msgstr "Framheva" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Medlemmar" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3919,7 +5103,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3930,25 +5117,32 @@ msgstr "" "**%s** er ei brukargruppe på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 #, fuzzy msgid "Admins" msgstr "Administrator" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Kan ikkje finne den meldinga." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Kun sendaren og mottakaren kan lese denne meldinga." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Melding til %1$s på %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Melding fra %1$s på %2$s" @@ -3958,60 +5152,84 @@ msgstr "Melding fra %1$s på %2$s" msgid "Notice deleted." msgstr "Melding lagra" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, fuzzy, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" +msgstr "Grupper, side %d" + +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" msgstr "Notisar merka med %s" -#: actions/showstream.php:79 -#, fuzzy, php-format +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" -msgstr "%s med vener, side %d" +msgstr "Grupper, side %d" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Notisstraum for %s gruppa" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Notisstraum for %s" +msgstr "Straum for vener av %s" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 2.0)" -msgstr "Notisstraum for %s" +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Straum for vener av %s" -#: actions/showstream.php:143 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format +msgid "Notice feed for %s (RSS 2.0)" +msgstr "Straum for vener av %s" + +#: actions/showstream.php:152 #, fuzzy, php-format msgid "Notice feed for %s (Atom)" msgstr "Notisstraum for %s" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, fuzzy, php-format msgid "FOAF for %s" msgstr "Utboks for %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4020,7 +5238,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, fuzzy, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4030,7 +5250,8 @@ msgstr "" "**%s** har ein konto på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Svar til %s" @@ -4054,9 +5275,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Ikkje ei gyldig epostadresse" +msgstr "Ikkje ei gyldig epostadresse." #: actions/siteadminpanel.php:159 #, php-format @@ -4147,44 +5367,50 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 #, fuzzy msgid "Site Notice" msgstr "Statusmelding" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Ny melding" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "Statusmelding" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "Statusmelding" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "SMS innstillingar" +msgstr "Avatar-innstillingar" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4201,9 +5427,8 @@ msgstr "Denne sida er ikkje tilgjengleg i eit" #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "Ljonmeldingadresse" +msgstr "Epostadresser" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4234,9 +5459,8 @@ msgstr "Godta" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "SMS telefon nummer" +msgstr "Ingen telefonnummer." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4245,9 +5469,8 @@ msgstr "Telefonnummer, kun tall, med landskode" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Brukarval" +msgstr "Lagra brukarval." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4286,13 +5509,12 @@ msgstr "Det telefonnummeret er alt registrert hos ein annan brukar." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"Sende godkjenningskode til telefonnummeret du la til. Sjekk innboksen for " -"koden og veiledning på korleis du nyttar han." +"Sendte godkjenningskode til epostadressa du la til. Sjekk innboksen (og " +"søppelpostboksen) for koden og veiledning på korleis du nyttar han." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4301,9 +5523,8 @@ msgstr "Det er feil godkjennings nummer." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Stadfesting avbrutt." +msgstr "SMS bekreftelse" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4345,14 +5566,13 @@ msgstr "Ingen innskriven kode" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Navigasjon for hovudsida" +msgstr "Stadfesting av epostadresse" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4403,12 +5623,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "Avatar-innstillingar" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Du tingar ikkje oppdateringar til den profilen." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Kunne ikkje lagra abonnement." @@ -4416,11 +5638,6 @@ msgstr "Kunne ikkje lagra abonnement." msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Denne notisen finst ikkje." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4430,63 +5647,84 @@ msgstr "Du tingar ikkje oppdateringar til den profilen." msgid "Subscribed" msgstr "Abonnent" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s tingarar" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%s tingarar, side %d" +msgstr "%s tingarar" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Dette er folk som lyttar til dine notisar." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Dette er folk som lyttar til %s's notisar" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format -msgid "%s subscriptions" +msgid "%1$s subscriptions, page %2$d" msgstr "%s tingarar" -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "%s tingingar, side %d" - -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Dette er dei du lyttar til." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Dette er folka som %s tingar oppdateringar frå." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4496,33 +5734,44 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format msgid "%s is not listening to anyone." -msgstr "%1$s høyrer no på" +msgstr "%1$s høyrer no på notisane dine på %2$s." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Notisstraum for %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Brukarar sjølv-merka med %s, side %d" +msgstr "Notisar merka med %s" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Notisstraum for %s" +msgstr "Straum for vener av %s" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Notisstraum for %s" +msgstr "Straum for vener av %s" #: actions/tag.php:99 #, fuzzy, php-format @@ -4544,7 +5793,7 @@ msgid "User profile" msgstr "Brukarprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Bilete" @@ -4582,14 +5831,12 @@ msgid "No such tag." msgstr "Dette emneord finst ikkje." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Du har allereie blokkert denne brukaren." +msgstr "Du tingar ikkje oppdateringar til den profilen." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "Brukar har blokkert deg." +msgstr "Brukaren har ikkje siste notis" #: actions/unsilence.php:72 #, fuzzy @@ -4597,9 +5844,8 @@ msgid "User is not silenced." msgstr "Brukaren har inga profil." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Ingen profil-ID i førespurnaden." +msgstr "Fann ingen profil med den IDen." #: actions/unsubscribe.php:98 msgid "Unsubscribed" @@ -4612,81 +5858,102 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 #, fuzzy msgctxt "TITLE" msgid "User" msgstr "Brukar" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Invitér nye brukarar" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Alle tingingar" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Automatisk ting notisane til dei som tingar mine (best for ikkje-menneskje)" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Invitasjon(er) sendt" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Invitasjon(er) sendt" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autoriser tinging" @@ -4701,7 +5968,9 @@ msgstr "" "Sjekk desse detaljane og forsikre deg om at du vil abonnere på denne " "brukaren sine notisar. Vist du ikkje har bedt om dette, klikk \"Avbryt\"" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 #, fuzzy msgid "License" msgstr "lisens." @@ -4792,12 +6061,14 @@ msgstr "Kan ikkje lesa brukarbilete-URL «%s»" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Feil biletetype for '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Profilinnstillingar" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4809,9 +6080,9 @@ msgstr "" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%s medlemmar i gruppa, side %d" +msgstr "Grupper, side %d" #: actions/usergroups.php:132 #, fuzzy @@ -4834,7 +6105,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" @@ -4883,7 +6154,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 #, fuzzy msgid "Version" msgstr "Personleg" @@ -4892,63 +6163,111 @@ msgstr "Personleg" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Tjeneste" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "" +"Send meg ein epost når nokon legg til ein av mine notisar som favoritt." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Ugyldig filnamn." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Gruppe profil" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Kann ikkje oppdatera gruppa." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Gruppe profil" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Feil ved lagring av brukar; fungerer ikkje." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Bli med" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4968,18 +6287,18 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 #, fuzzy msgid "You are banned from sending direct messages." msgstr "Ein feil oppstod ved sending av direkte melding." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Kunne ikkje lagre melding." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Kunne ikkje oppdatere melding med ny URI." @@ -4991,31 +6310,31 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" +msgstr "Feil med innhenting av brukarbilete." #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Eit problem oppstod ved lagring av notis." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Feil ved lagring av notis. Ukjend brukar." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -5024,44 +6343,58 @@ msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Du kan ikkje lengre legge inn notisar på denne sida." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Kunne ikkje lagra abonnement." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5073,255 +6406,281 @@ msgid "Missing profile." msgstr "Brukaren har inga profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" +msgstr "Kunne ikkje lagra emneord." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 #, fuzzy msgid "You have been banned from subscribing." msgstr "Brukaren tillet deg ikkje å tinga meldingane sine." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Ikkje tinga." #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Brukar har blokkert deg." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Ikkje tinga." #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Kan ikkje sletta tinging." +msgstr "Kunne ikkje lagra abonnement." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Kan ikkje sletta tinging." +msgstr "Kunne ikkje lagra abonnement." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Kan ikkje sletta tinging." +msgstr "Kunne ikkje lagra abonnement." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s høyrer no på notisane dine på %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Kunne ikkje laga gruppa." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Kunne ikkje bli med i gruppa." +msgstr "Kunne ikkje laga gruppa." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Kunne ikkje bli med i gruppa." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 #, fuzzy msgid "Could not save local group info." msgstr "Kunne ikkje lagra abonnement." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Endra profilinnstillingane dine" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Last opp ein avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Endra passordet ditt" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Endra eposthandtering" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 #, fuzzy msgid "Design your profile" msgstr "Brukarprofil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Andre val" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Anna" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, fuzzy, php-format msgid "%1$s - %2$s" msgstr "%1$s (%2$s)" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Ingen tittel" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navigasjon for hovudsida" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personleg profil og oversyn over vener" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personleg" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Endra e-posten, avataren, passordet eller profilen" +msgstr "Endra passordet ditt" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Klarte ikkje å omdirigera til tenaren: %s" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Kopla til" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navigasjon for hovudsida" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter vennar og kollega til å bli med deg på %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitér" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Logg ut or sida" +msgstr "Logg inn " #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "Logg ut" +msgstr "Logo" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Opprett ny konto" +msgstr "Opprett ei ny gruppe" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrér" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 -#, fuzzy +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "Logg inn or sida" +msgstr "Logg inn " -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Logg inn" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Hjelp meg!" +msgstr "Hjelp" -#: lib/action.php:497 -#, fuzzy +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Hjelp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Søk etter folk eller innhald" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5329,72 +6688,77 @@ msgstr "Søk" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Statusmelding" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokale syningar" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Sidenotis" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Andrenivås side navigasjon" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hjelp" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Om" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "OSS" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Personvern" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Kjeldekode" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 #, fuzzy msgid "Badge" msgstr "Dult" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNets programvarelisens" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5404,13 +6768,16 @@ msgstr "" "broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** er ei mikrobloggingteneste." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5422,366 +6789,475 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 #, fuzzy msgid "Site content license" msgstr "StatusNets programvarelisens" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginering" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "« Etter" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Før »" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Bilete" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Du kan ikkje sende melding til denne brukaren." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registrering ikkje tillatt." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 #, fuzzy msgid "showForm() not implemented." msgstr "Kommando ikkje implementert." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 #, fuzzy msgid "saveSettings() not implemented." msgstr "Kommando ikkje implementert." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "Stadfesting av epostadresse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Invitér" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Personleg" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Brukar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 #, fuzzy msgid "Edit site notice" msgstr "Statusmelding" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "SMS bekreftelse" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Kunne ikkje lagre favoritt." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Kunne ikkje lagre favoritt." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Kunne ikkje lagre melding." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Beskriv gruppa eller emnet med 140 teikn" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Beskriv gruppa eller emnet med 140 teikn" +msgstr[1] "Beskriv gruppa eller emnet med 140 teikn" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Beskriv gruppa eller emnet med 140 teikn" +msgstr "Beskriving" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "URL til heimesida eller bloggen for gruppa eller emnet" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Kjeldekode" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "URL til heimesida eller bloggen for gruppa eller emnet" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Avbryt" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Fjern" +msgstr "Gjenopprett" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "Profil" +msgstr "Forhandsvis" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Endra passord" -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Endra passord" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blokkér" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultat frå kommandoen" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Ajax feil" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Kommandoen utførd" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Kommandoen feila" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Fann ingen profil med den IDen." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "Brukaren har ikkje siste notis" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Orsak, men kommandoen er ikkje laga enno." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Dytta!" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5789,207 +7265,245 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Notis markert som favoritt." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Du er allereie medlem av den gruppa" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Kunne ikkje fjerne %s fra %s gruppa " +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Fullt namn: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Stad: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Heimeside: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Om: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgstr[1] "Melding for lang - maksimum 140 teikn, du skreiv %d" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direkte melding til %s sendt" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Ein feil oppstod ved sending av direkte melding." -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Kan ikkje slå på notifikasjon." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Slett denne notisen" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Melding lagra" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Eit problem oppstod ved lagring av notis." +msgstr "Feil ved å setja brukar." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgstr[1] "Melding for lang - maksimum 140 teikn, du skreiv %d" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "Svar på denne notisen" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +#, fuzzy +msgid "Specify the name of the user to subscribe to." msgstr "Spesifer namnet til brukaren du vil tinge" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Du tingar ikkje oppdateringar til den profilen." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Tingar %s" +msgid "Subscribed to %s." +msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +#, fuzzy +msgid "Specify the name of the user to unsubscribe from." msgstr "Spesifer namnet til brukar du vil fjerne tinging på" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Tingar ikkje %s lengre" +msgid "Unsubscribed from %s." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Kommando ikkje implementert." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notifikasjon av." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Kan ikkje skru av notifikasjon." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notifikasjon på." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Kan ikkje slå på notifikasjon." -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Tingar ikkje %s lengre" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Du tingar ikkje oppdateringar til den profilen." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Du tingar allereie oppdatering frå desse brukarane:" msgstr[1] "Du tingar allereie oppdatering frå desse brukarane:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Kan ikkje tinga andre til deg." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Kan ikkje tinga andre til deg." msgstr[1] "Kan ikkje tinga andre til deg." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Du er ikkje medlem av den gruppa." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du er ikkje medlem av den gruppa." msgstr[1] "Du er ikkje medlem av den gruppa." -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -6031,94 +7545,135 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Ingen stadfestingskode." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" +msgstr "Invitasjon(er) sendt til fylgjande folk:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 #, fuzzy msgid "Go to the installer." msgstr "Logg inn or sida" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "Ljonmelding" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Oppdateringar over direktemeldingar (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Oppdateringar over SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Kopla til" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Last opp fil" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "Du kan laste opp ein personleg avatar." +msgstr "Du kan lasta opp ein logo for gruppa." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Avbryt" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Fjern favoriseringsmerket" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Favoriser denne notisen" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Tjeneste" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Eksporter data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6150,8 +7705,14 @@ msgstr "Gå" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 små bokstavar eller tal, ingen punktum (og liknande) eller mellomrom" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL til heimesida eller bloggen for gruppa eller emnet" #: lib/groupeditform.php:168 @@ -6161,61 +7722,113 @@ msgstr "Beskriv gruppa eller emnet med 140 teikn" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Beskriv gruppa eller emnet med 140 teikn" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Beskriv gruppa eller emnet med 140 teikn" +msgstr[1] "Beskriv gruppa eller emnet med 140 teikn" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Kvar er du, t.d. «Stavanger, Rogaland, Noreg»" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Gruppe" +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Blokkér" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Blokker brukaren" +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "Rediger %s gruppa sine eigenskapar" - -#: lib/groupnav.php:113 -msgid "Logo" -msgstr "Logo" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "Legg til eller rediger logoen til %s" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 -#, fuzzy, php-format -msgid "Add or edit %s design" -msgstr "Legg til eller rediger logoen til %s" +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupper med flest medlemmar" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupper med flest innlegg" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Merkelappar i %s gruppa sine notisar" @@ -6229,38 +7842,57 @@ msgstr "Denne sida er ikkje tilgjengeleg i nokon mediatype du aksepterer." msgid "Unsupported image file format." msgstr "Støttar ikkje bileteformatet." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Du kan lasta opp ein logo for gruppa." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Hallvegs opplasta." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Korrupt bilete." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Mista fila vår." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Ukjend fil type" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6272,10 +7904,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "Bli med" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Forlat" @@ -6288,44 +7916,53 @@ msgstr "Log inn med brukarnamn og passord." msgid "Sign up for a new account" msgstr "Opprett ny konto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Stadfesting av epostadresse" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s høyrer no på notisane dine på %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6334,10 +7971,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s fylgjer no oppdateringane dine på %2$s.\n" "\n" @@ -6346,23 +7983,25 @@ msgstr "" "Beste helsing,\n" "%4$s.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "" -"Bio: %s\n" -"\n" +msgstr "Stad: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Ny epostadresse for å oppdatera %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6371,7 +8010,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Du hev ei ny posteadresse på %1½s.\n" "\n" @@ -6381,31 +8020,36 @@ msgstr "" "\n" "Helsing frå %4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS bekreftelse" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Ventar på godkjenning for dette telefonnummeret." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Du har blitt dulta av %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6421,14 +8065,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Ny privat melding fra %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6447,14 +8095,20 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s la til di melding som ein favoritt" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "" +"Send meg ein epost når nokon legg til ein av mine notisar som favoritt." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6476,7 +8130,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6484,13 +8138,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6527,7 +8188,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 #, fuzzy msgid "from" msgstr " frå " @@ -6548,164 +8209,216 @@ msgstr "Beklager, det er ikkje di inngåande epost addresse." msgid "Sorry, no incoming email allowed." msgstr "Beklager, inngåande epost er ikkje tillatt." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Støttar ikkje bileteformatet." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Kan ikkje hente offentleg straum." +msgstr "Kunne ikkje slette favoritt." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Send ei direkte melding" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Velg ein tilbydar" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Ikkje tinga." + +#: lib/messageform.php:153 msgid "To" msgstr "Til" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Tilgjenglege teikn" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Send" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Kallenamn må berre ha små bokstavar og nummer, ingen mellomrom." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send ei melding" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Kva skjer, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Kan ikkje lagra merkelapp." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Kan ikkje lagra merkelapp." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "Nei" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -6722,56 +8435,52 @@ msgstr "Dult" msgid "Send a nudge to this user" msgstr "Send eit dult til denne brukaren" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Feil med å henta inn ny profil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Feil med innhenting av brukarbilete." +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Feil ved oppdatering av ekstern profil" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Feil med å henta inn ekstern profil" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Slett notis" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Kan ikkje leggja til ny tinging." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personleg" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Svar" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favorittar" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Innboks" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Dine innkomande meldinger" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Utboks" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Dine sende meldingar" @@ -6780,7 +8489,8 @@ msgstr "Dine sende meldingar" msgid "Tags in %s's notices" msgstr "Merkelappar i %s sine notisar" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "Uventa handling." @@ -6867,9 +8577,11 @@ msgstr "Svar på denne notisen" msgid "Revoke the \"%s\" role from this user" msgstr "Ei liste over brukarane i denne gruppa." -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Fann ikkje API-metode." #: lib/sandboxform.php:67 #, fuzzy @@ -6881,20 +8593,26 @@ msgstr "Innboks" msgid "Sandbox this user" msgstr "Lås opp brukaren" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Søk" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Søk" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Søk" @@ -6971,6 +8689,12 @@ msgstr "" msgid "None" msgstr "Ingen" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ugyldig filnamn." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6980,45 +8704,58 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Feil ved oppdatering av brukarbilete." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "Feil ved oppdatering av ekstern profil" +msgstr "Feil ved fjerning av blokka." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "Med flest meldingar" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Lås opp" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -7045,126 +8782,179 @@ msgstr "Fjern tinging fra denne brukaren" msgid "Unsubscribe" msgstr "Fjern tinging" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Brukaren har inga profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Brukarbilete" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Brukarverkty" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 #, fuzzy msgid "Edit profile settings" msgstr "Profilinnstillingar" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Send ei direktemelding til denne brukaren" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Melding" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "Brukarprofil" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "eit par sekund sidan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "omtrent eitt minutt sidan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "~%d minutt sidan" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "omtrent ein time sidan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "~%d timar sidan" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "omtrent ein dag sidan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "~%d dagar sidan" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "omtrent ein månad sidan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "~%d månadar sidan" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "omtrent eitt år sidan" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, fuzzy, php-format msgid "%s is not a valid color!" msgstr "Heimesida er ikkje ei gyldig internettadresse." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "Heimesida er ikkje ei gyldig internettadresse." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 #, fuzzy, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Melding for lang - maksimum 140 teikn, du skreiv %d" +msgstr[1] "Melding for lang - maksimum 140 teikn, du skreiv %d" + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ugyldig storleik." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Ingen vald profil." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 89da186ca7..1990b8092f 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -1,159 +1,197 @@ -# Translation of StatusNet to Polish +# Translation of StatusNet - Core to Polish (Polski) +# Expored from translatewiki.net # -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Raven -# Author@translatewiki.net: Sp5uhe +# Author: McDutchie +# Author: Raven +# Author: Sp5uhe # -- -# Paweł Wilk <siefca@gnu.org>, 2008. -# Piotr Drąg <piotrdrag@gmail.com>, 2009. +# This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:52+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:09+0000\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" -"Language-Team: Polish <pl@li.org>\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "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.17alpha (r70633); Translate extension (2010-07-21)\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.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Dostęp" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Ustawienia dostępu witryny" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Rejestracja" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Zabronić anonimowym użytkownikom (niezalogowanym) przeglądać witrynę?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Prywatna" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Rejestracja tylko za zaproszeniem." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Tylko zaproszeni" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Wyłączenie nowych rejestracji." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Zamknięte" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Zapisz ustawienia dostępu" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Zapisz" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Nie ma takiej strony." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Brak takiego użytkownika." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s i przyjaciele, strona %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "Użytkownik %s i przyjaciele" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Kanał dla znajomych użytkownika %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Kanał dla znajomych użytkownika %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Kanał dla znajomych użytkownika %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -161,7 +199,9 @@ msgstr "" "To jest oś czasu użytkownika %s i przyjaciół, ale nikt jeszcze nic nie " "wysłał." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -170,8 +210,9 @@ msgstr "" "Spróbuj subskrybować więcej osób, [dołączyć do grupy](%%action.groups%%) lub " "wysłać coś samemu." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -180,7 +221,11 @@ msgstr "" "Można spróbować [szturchnąć użytkownika %1$s](../%2$s) z jego profilu lub " "[wysłać mu coś](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -189,408 +234,613 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%%%action.register%%%%) i wtedy " "szturchniesz użytkownika %s lub wyślesz mu wpis." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Ty i przyjaciele" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Aktualizacje z %1$s i przyjaciół na %2$s." -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Nie odnaleziono metody API." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Ta metoda wymaga POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" "Należy podać parametr o nazwie \"device\" z jedną z wartości: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Nie można zaktualizować użytkownika." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Użytkownik nie posiada profilu." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Nie można zapisać profilu." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" -"Serwer nie może obsłużyć aż tyle danych POST (%s bajty) z powodu bieżącej " +msgstr[0] "" +"Serwer nie może obsłużyć aż tylu danych POST (%s bajt) z powodu bieżącej " +"konfiguracji." +msgstr[1] "" +"Serwer nie może obsłużyć aż tylu danych POST (%s bajty) z powodu bieżącej " +"konfiguracji." +msgstr[2] "" +"Serwer nie może obsłużyć aż tylu danych POST (%s bajtów) z powodu bieżącej " "konfiguracji." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Nie można zapisać ustawień wyglądu." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Nie można zaktualizować wyglądu." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Główna" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Oś czasu użytkownika %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Subskrypcje użytkownika %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Ulubione" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Członkowie grupy %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Nie można zablokować siebie." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Zablokowanie użytkownika nie powiodło się." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Odblokowanie użytkownika nie powiodło się." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Bezpośrednie wiadomości do użytkownika %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Wszystkie bezpośrednie wiadomości wysłane od użytkownika %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Bezpośrednia wiadomość do użytkownika %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Wszystkie bezpośrednie wiadomości wysłane do użytkownika %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Brak tekstu wiadomości." -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Wiadomość jest za długa. Maksymalna długość wynosi %d znaków." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Wiadomość jest za długa. Maksymalna długość wynosi %d znak." +msgstr[1] "Wiadomość jest za długa. Maksymalna długość wynosi %d znaki." +msgstr[2] "Wiadomość jest za długa. Maksymalna długość wynosi %d znaków." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Nie odnaleziono odbiorcy." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Nie można wysłać bezpośredniej wiadomości do użytkowników, którzy nie są " "twoimi przyjaciółmi." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Nie wysyłaj wiadomości do siebie, po prostu powiedz to sobie po cichu." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Nie odnaleziono stanów z tym identyfikatorem." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Ten stan jest już ulubiony." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Nie można utworzyć ulubionego wpisu." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Ten stan nie jest ulubiony." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Nie można usunąć ulubionego wpisu." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Nie można obserwować użytkownika: nie odnaleziono profilu." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Nie można obserwować użytkownika: %s jest już na twojej liście." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Nie można zrezygnować z obserwacji użytkownika: nie odnaleziono użytkownika." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Nie można zrezygnować z obserwacji samego siebie." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" -"Należy dostarczyć dwa prawidłowe identyfikatory lub nazwy użytkowników." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Należy dostarczyć dwa prawidłowe identyfikatory lub pseudonimy." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Nie można określić użytkownika źródłowego." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Nie można odnaleźć użytkownika docelowego." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Pseudonim jest już używany. Spróbuj innego." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "To nie jest prawidłowy pseudonim." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Strona domowa nie jest prawidłowym adresem URL." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Opis jest za długi (maksymalnie %d znaków)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Opis jest za długi (maksymalnie %d znak)." +msgstr[1] "Opis jest za długi (maksymalnie %d znaki)." +msgstr[2] "Opis jest za długi (maksymalnie %d znaków)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." msgstr "Położenie jest za długie (maksymalnie 255 znaków)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Za dużo aliasów. Maksymalnie %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Za dużo aliasów. Maksymalnie dozwolony jest %d." +msgstr[1] "Za dużo aliasów. Maksymalnie dozwolone są %d." +msgstr[2] "Za dużo aliasów. Maksymalnie dozwolone jest %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Nieprawidłowy alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" jest już używany. Spróbuj innego." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias nie może być taki sam jak pseudonim." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Nie odnaleziono grupy." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Jesteś już członkiem tej grupy." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Zostałeś zablokowany w tej grupie przez administratora." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Nie jesteś członkiem tej grupy." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Nie można usunąć użytkownika %1$s z grupy %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grupy użytkownika %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%2$s jest członkiem grup %1$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Grupy %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupy na %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Wysłanie nie powiodło się." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Nieprawidłowy token lub element sprawdzający żądania." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Nie podano parametru oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Nieprawidłowy token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Nieprawidłowy token żądania." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Token żądania został już upoważniony." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Wystąpił problem z tokenem sesji. Spróbuj ponownie." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nieprawidłowy pseudonim/hasło." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Błąd bazy danych podczas usuwania użytkownika aplikacji OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Błąd bazy danych podczas wprowadzania użytkownika aplikacji OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Token żądania %s został upoważniony. Proszę wymienić go na token dostępu." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Token żądania %s został odrzucony lub unieważniony." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Błąd bazy danych podczas wprowadzania oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Nieoczekiwane wysłanie formularza." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Aplikacja chce połączyć się z kontem użytkownika" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Zezwolić czy odmówić dostęp" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Aplikacja chciałaby uzyskać możliwość <strong>%3$s</strong> danych konta %4" +"$s. Dostęp do konta %4$s powinien być udostępniany tylko zaufanym osobom " +"trzecim." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -601,240 +851,630 @@ msgstr "" "uzyskać możliwość <strong>%3$s</strong> danych konta %4$s. Dostęp do konta %4" "$s powinien być udostępniany tylko zaufanym osobom trzecim." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Pseudonim" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Hasło" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Odrzuć" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Anuluj" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Zezwól" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Zezwól lub odmów dostęp do informacji konta." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Upoważnij dostęp do informacji konta." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Anulowano upoważnienie." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Token żądania %s został unieważniony." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Pomyślnie upoważniono aplikację" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Proszę wrócić do aplikacji i podać następujący kod bezpieczeństwa, aby " +"ukończyć proces." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Pomyślnie upoważniono %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Proszę wrócić do %s i podać następujący kod bezpieczeństwa, aby ukończyć " +"proces." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Ta metoda wymaga POST lub DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Nie można usuwać stanów innych użytkowników." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Nie ma takiego wpisu." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Nie można powtórzyć własnego wpisu." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Już powtórzono ten wpis." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "Metoda HTTP nie jest obsługiwana." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Nieobsługiwany format: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Usunięto stan." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Nie odnaleziono stanów z tym identyfikatorem." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Można usunąć tylko używając formatu Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Nie można usunąć tego wpisu." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Usunięto wpis %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Klient musi dostarczać parametr \"stan\" z wartością." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Wpis jest za długi. Maksymalna długość wynosi %d znaków." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Wpis jest za długi. Maksymalna długość wynosi %d znak." +msgstr[1] "Wpis jest za długi. Maksymalna długość wynosi %d znaki." +msgstr[2] "Wpis jest za długi. Maksymalna długość wynosi %d znaków." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Nie odnaleziono." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Nie odnaleziono wpisu nadrzędnego." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, 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." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Maksymalny rozmiar wpisu wynosi %d znak, w tym adres URL załącznika." +msgstr[1] "" +"Maksymalny rozmiar wpisu wynosi %d znaki, w tym adres URL załącznika." +msgstr[2] "" +"Maksymalny rozmiar wpisu wynosi %d znaków, w tym adres URL załącznika." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Nieobsługiwany format." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s/ulubione wpisy od %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Nie można utworzyć kanału dla grupy - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s/aktualizacje wspominające %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s aktualizuje tę odpowiedź na aktualizacje od %2$s/%3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Publiczna oś czasu użytkownika %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Użytkownik %s aktualizuje od każdego." -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Niezaimplementowane." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Powtórzone dla %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Powtórzenia %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Wpisy ze znacznikiem %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualizacje ze znacznikiem %1$s na %2$s." -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Tylko użytkownik może dodawać do swojej osi czasu." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Akceptowanie tylko AtomPub dla kanałów Atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "Wpis Atom musi być wpisem Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "Wpis Atom musi być wpisem Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "Wpis Atom musi być wpisem Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Można obsługiwać tylko działania wpisów." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Nie można obsłużyć typu obiektu działania \"%s\"" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Przeszukaj zawartość wpisów" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Wpis z adresem URI \"%s\" już istnieje." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Wpis AtomPub z nieznanym adresem URI %s uwagi" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Metoda API jest w trakcie tworzenia." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Nie odnaleziono strony." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Nie ma takiego profilu." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Nie można wprowadzić nowej subskrypcji." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Można obsługiwać tylko działania wpisów." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Można obsługiwać tylko działania wpisów." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Nieznane" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Dodaj do ulubionych" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Nie ma takiego profilu." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Członkowie grupy %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupy %s są członkiem" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Można obsługiwać tylko działania wpisów." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Nieznane" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Wszyscy członkowie" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Nie ma takiego pliku." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Nie można usunąć ulubionego wpisu." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Nie ma takiej grupy." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Wszyscy członkowie" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Metoda HTTP nie jest obsługiwana." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Nie ma takiego profilu." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Nie jesteś subskrybowany do tego profilu." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Nie można usunąć autosubskrypcji." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Osoby subskrybowane do %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Można obsługiwać tylko działania wpisów." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Nieznany typ pliku" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Nie ma takiego załącznika." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Brak pseudonimu." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Brak rozmiaru." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Nieprawidłowy rozmiar." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Awatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Można wysłać osobisty awatar. Maksymalny rozmiar pliku to %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Użytkownik bez odpowiadającego profilu." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Ustawienia awatara" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Oryginał" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Podgląd" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Usuń" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Wyślij" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Przytnij" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Nie wysłano pliku." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Wybierz kwadratowy obszar obrazu do awatara" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Utracono dane pliku." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Zaktualizowano awatar." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Zaktualizowanie awatara nie powiodło się." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Usunięto awatar." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Użytkownik jest już zablokowany." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Zablokuj użytkownika" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -846,175 +1486,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nie" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Nie blokuj tego użytkownika" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Tak" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Zablokuj tego użytkownika" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Zapisanie informacji o blokadzie nie powiodło się." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Nie ma takiej grupy." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s zablokowane profile" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s zablokowane profile, strona %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Lista użytkowników zablokowanych w tej grupie." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Odblokuj użytkownika w tej grupie" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Odblokuj" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Odblokuj tego użytkownika" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Wyślij do %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Brak kodu potwierdzającego." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Nie odnaleziono kodu potwierdzającego." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Ten kod potwierdzający nie jest przeznaczony dla ciebie." -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Nierozpoznany typ adresu %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Ten adres został już potwierdzony." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Nie można zaktualizować użytkownika." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Nie można usunąć potwierdzenia adresu e-mail." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Nie można usunąć potwierdzenia adresu." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Potwierdź adres" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adres \"%s\" został potwierdzony dla twojego konta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Rozmowa" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Wpisy" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Musisz być zalogowany, aby usunąć aplikację." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Nie odnaleziono aplikacji." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Nie jesteś właścicielem tej aplikacji." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Wystąpił problem z tokenem sesji." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Usuń aplikację" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1024,31 +1708,88 @@ msgstr "" "danych, w tym wszystkie istniejące połączenia użytkowników." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Nie usuwaj tej aplikacji" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Usuń tę aplikację" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Musisz być zalogowany, aby usunąć grupę." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Brak pseudonimu lub identyfikatora." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Brak uprawnienia do usunięcia tej grupy." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Nie można usunąć grupy %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Usunięto grupę %s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Usuń grupę" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Na pewno usunąć tę grupę? Wyczyści to wszystkie dane o grupie z bazy danych, " +"bez utworzenia kopii zapasowej. Publiczne wpisy w tej grupie będą nadal " +"widoczne na konkretnych osiach czasu." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Nie usuwaj tej grupy" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Usuń tę grupę" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Niezalogowany." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Nie można usunąć tego wpisu." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1056,21 +1797,24 @@ msgstr "" "Za chwilę wpis zostanie trwale usunięty. Kiedy to się stanie, nie będzie " "mogło zostać cofnięte." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Usuń wpis" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -1101,62 +1845,71 @@ msgstr "Usuń tego użytkownika" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Wygląd" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Ustawienia wyglądu tej witryny StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Ustawienia wyglądu tej witryny StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Nieprawidłowy adres URL logo." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Nieprawidłowy adres URL logo SSL." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Motyw nie jest dostępny: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Zmień logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo witryny" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logo SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Zmień motyw" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Motyw witryny" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Motyw witryny." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Własny motyw" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Można wysłać własny motyw witryny StatusNet jako archiwum zip." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Zmień obraz tła" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Tło" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1164,75 +1917,84 @@ msgid "" msgstr "Można wysłać obraz tła dla witryny. Maksymalny rozmiar pliku to %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Włączone" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Wyłączone" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Włącz lub wyłącz obraz tła." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Kafelkowy obraz tła" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Zmień kolory" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Treść" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Panel boczny" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Tekst" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Odnośniki" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Zaawansowane" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Własny plik CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Użycie domyślnych" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Przywróć domyślny wygląd" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Przywróć domyślne ustawienia" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Zapisz" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Zapisz wygląd" @@ -1249,109 +2011,129 @@ msgstr "Dodaj do ulubionych" msgid "No such document \"%s\"" msgstr "Nie ma takiego dokumentu \\\"%s\\\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Zmodyfikuj aplikację" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Musisz być zalogowany, aby zmodyfikować aplikację." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Nie ma takiej aplikacji." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Użyj tego formularza, aby zmodyfikować aplikację." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Nazwa jest wymagana." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "Nazwa jest za długa (maksymalnie 255 znaków)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Nazwa jest już używana. Spróbuj innej." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Opis jest wymagany." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Źródłowy adres URL jest za długi." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Źródłowy adres URL jest nieprawidłowy." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organizacja jest wymagana." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "Organizacja jest za długa (maksymalnie 255 znaków)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Strona domowa organizacji jest wymagana." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Adres zwrotny jest za długi." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Adres zwrotny URL jest nieprawidłowy." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Nie można zaktualizować aplikacji." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Zmodyfikuj grupę %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Musisz być zalogowany, aby utworzyć grupę." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Musisz być administratorem, aby zmodyfikować grupę." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Użyj tego formularza, aby zmodyfikować grupę." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "opis jest za długi (maksymalnie %d znaków)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Nieprawidłowy alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Nie można zaktualizować grupy." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Nie można utworzyć aliasów." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Zapisano opcje." @@ -1369,12 +2151,12 @@ msgstr "Zarządzanie, jak otrzymywać wiadomości e-mail od %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Adres e-mail" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Obecnie potwierdzone adresy e-mail." @@ -1383,14 +2165,14 @@ msgstr "Obecnie potwierdzone adresy e-mail." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Usuń" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1399,25 +2181,19 @@ msgstr "" "(także w wiadomościach niechcianych), czy otrzymałeś wiadomość z dalszymi " "instrukcjami." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Anuluj" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Adres e-mail, taki jak \"NazwaUżytkownika@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1425,110 +2201,117 @@ msgstr "Dodaj" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Wiadomości przychodzące" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Chcę wysyłać wpisy przez wiadomości e-mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Wyślij wiadomość e-mail na ten adres, aby wysyłać nowe wpisy." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Używaj nowego adresu e-mail do wysyłania; anuluj poprzedni." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Nowy" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferencje e-mail" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Wyślij wpisy nowych subskrypcji przez e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Wyślij wiadomość e-mail, kiedy ktoś doda mój wpis jako ulubiony." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Wyślij wiadomość e-mail, kiedy ktoś wyśle prywatną wiadomość." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Wyślij wiadomość e-mail, kiedy ktoś wyśle odpowiedź \"@\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Pozwól przyjaciołom na szturchanie mnie i wyślij mi wiadomość e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Chcę wysyłać wpisy przez wiadomości e-mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Opublikuj MicroID adresu e-mail." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Zapisano preferencje e-mail." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Brak adresu e-mail." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Nie można znormalizować tego adresu e-mail" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "To nie jest prawidłowy adres e-mail." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Ten adres e-mail jest już twój." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Ten adres e-mail należy już do innego użytkownika." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Nie można wprowadzić kodu potwierdzającego." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1540,50 +2323,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Brak oczekujących potwierdzeń do anulowania." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "To jest błędny adres e-mail." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Nie można usunąć potwierdzenia adresu e-mail." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Anulowano potwierdzenie e-mail." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "To nie jest twój adres e-mail." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Adres e-mail został usunięty." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Brak przychodzącego adresu e-mail." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Nie można zaktualizować wpisu użytkownika." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Usunięto przychodzący adres e-mail." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Dodano nowy przychodzący adres e-mail." @@ -1591,11 +2380,11 @@ msgstr "Dodano nowy przychodzący adres e-mail." msgid "This notice is already a favorite!" msgstr "Ten wpis jest już ulubiony." -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Usuń wpis z ulubionych" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Popularne wpisy" @@ -1633,7 +2422,7 @@ msgstr "" "pierwszym, który doda wpis do ulubionych." #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Ulubione wpisy użytkownika %s" @@ -1702,7 +2491,7 @@ msgstr "Nie można przekonwertować tokenów żądań na tokeny dostępu." msgid "Remote service uses unknown version of OMB protocol." msgstr "Zdalna usługa używa nieznanej wersji protokołu OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Błąd podczas aktualizowania zdalnego profilu." @@ -1730,19 +2519,23 @@ msgstr "Nie można udzielić rol użytkownikom na tej witrynie." msgid "User already has this role." msgstr "Użytkownik ma już tę rolę." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Nie podano profilu." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Brak profilu o tym identyfikatorze." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Nie podano grupy." @@ -1759,7 +2552,7 @@ msgstr "Użytkownik został już zablokował w grupie." msgid "User is not a member of group." msgstr "Użytkownik nie jest członkiem grupy." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Zablokuj użytkownika w grupie" @@ -1806,8 +2599,10 @@ msgid "" "palette of your choice." msgstr "Dostosuj wygląd grupy za pomocą wybranego obrazu tła i palety kolorów." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Nie można zaktualizować wyglądu." @@ -1825,6 +2620,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Można wysłać obraz logo grupy. Maksymalny rozmiar pliku to %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Wyślij" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Przytnij" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Wybierz kwadratowy obszar obrazu, który będzie logo." @@ -1837,48 +2640,55 @@ msgstr "Zaktualizowano logo." msgid "Failed updating logo." msgstr "Zaktualizowanie logo nie powiodło się." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Członkowie grupy %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Członkowie grupy %1$s, strona %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Lista użytkowników znajdujących się w tej grupie." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Zablokuj" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Zablokuj tego użytkownika" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Uczyń użytkownika administratorem grupy" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Uczyń administratorem" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Uczyń tego użytkownika administratorem" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Oś czasu użytkownika %s" +msgstr "Nadaje temu użytkownikowi uprawnienia administratora" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1951,15 +2761,18 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%action.register%%) i sam [utworzysz " "grupę](%%action.newgroup%%)." -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Tylko administrator może odblokowywać członków grupy." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Użytkownik nie został zablokowany w grupie." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Błąd podczas usuwania blokady." @@ -2009,7 +2822,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2019,64 +2835,64 @@ msgstr "" "upewnij się, że dodałeś %s do listy znajomych w komunikatorze lub na GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferencje komunikatora" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Wyślij mi wpisy przez Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Wyślij wpis, kiedy zmieni się mój stan na Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Wyślij mi odpowiedzi przez Jabber/GTalk od osób, których nie subskrybuję." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Opublikuj MicroID adresu Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Zapisano preferencje." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Brak identyfikatora Jabbera." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Nie można znormalizować tego identyfikatora Jabbera" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "To nie jest prawidłowy identyfikator Jabbera" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Ten identyfikator Jabbera jest już twój." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Identyfikator Jabbera należy już do innego użytkownika." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2086,28 +2902,28 @@ msgstr "" "zaakceptować otrzymywanie wiadomości od %s." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "To jest błędny adres komunikatora." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Nie można usunąć potwierdzenia komunikatora." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Anulowano potwierdzenie komunikatora." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "To nie jest twój identyfikator Jabbera." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Adres komunikatora został usunięty." @@ -2126,51 +2942,83 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "To jest skrzynka odbiorcza, która wyświetla przychodzące wiadomości prywatne." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Zaproszenia zostały wyłączone." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Należy być zalogowanym, aby zapraszać innych użytkowników do używania %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Nieprawidłowy adres e-mail: %s" +msgid "Invalid email address: %s." +msgstr "Nieprawidłowy adres e-mail: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "Wysłano zaproszenia" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Zaproś nowych użytkowników" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Jesteś już subskrybowany do tych użytkowników:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Jesteś już subskrybowany do tego użytkownika:" +msgstr[1] "Jesteś już subskrybowany do tych użytkowników:" +msgstr[2] "Jesteś już subskrybowany do tych użytkowników:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Ta osoba są już użytkownikiem i zostałeś do niego automatycznie " +"subskrybowany:" +msgstr[1] "" +"Te osoby są już użytkownikami i zostałeś do nich automatycznie subskrybowany:" +msgstr[2] "" "Te osoby są już użytkownikami i zostałeś do nich automatycznie subskrybowany:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Wysłano zaproszenia do następujących osób:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Wysłano zaproszenie do następującej osoby:" +msgstr[1] "Wysłano zaproszenia do następujących osób:" +msgstr[2] "Wysłano zaproszenia do następujących osób:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2178,43 +3026,54 @@ msgstr "" "Zostaniesz powiadomiony, kiedy ktoś zaakceptuje zaproszenie i zarejestruje " "się na witrynie. Dziękujemy za pomoc w zwiększaniu społeczności." -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Użyj tego formularza, aby zaprosić przyjaciół i kolegów do używania tej " "usługi." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Adresy e-mail" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresy przyjaciół, których zapraszasz (jeden na wiersz)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Osobista wiadomość" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Wyślij" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s zapraszają cię, abyś dołączył do nich w %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2275,13 +3134,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Musisz być zalogowany, aby dołączyć do grupy." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Brak pseudonimu lub identyfikatora." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "Użytkownik %1$s dołączył do grupy %2$s" @@ -2290,17 +3143,122 @@ msgstr "Użytkownik %1$s dołączył do grupy %2$s" msgid "You must be logged in to leave a group." msgstr "Musisz być zalogowany, aby opuścić grupę." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Nie jesteś członkiem tej grupy." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "Użytkownik %1$s opuścił grupę %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licencja" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licencja dla tej witryny StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Nieprawidłowy wybór licencji." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Należy podać właściciela treści podczas używania licencji \"Wszystkie prawa " +"zastrzeżone\"." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Nieprawidłowy tytuł licencji. Maksymalna długość to 255 znaków." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Nieprawidłowy adres URL licencji." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Nieprawidłowy adres URL obrazu licencji." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Adres URL licencji musi być pusty lub być prawidłowym adresem URL." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Obraz licencji musi być pusty lub być prawidłowym adresem URL." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Wybór licencji" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Prywatna" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Wszystkie prawa zastrzeżone" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Typ" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Wybierz licencję" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Szczegóły licencji" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Właściciel" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nazwa właściciela treści witryny (jeśli dotyczy)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Tytuł licencji" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Tytuł licencji." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Adres URL licencji" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "Adres URL dodatkowych informacji o licencji." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "Adres URL obrazu licencji" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Adres URL obrazu do wyświetlenia z licencją." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Zapisz ustawienia licencji" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Jesteś już zalogowany." @@ -2321,11 +3279,11 @@ msgstr "Zaloguj się" msgid "Login to site" msgstr "Zaloguj się na witrynie" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Zapamiętaj mnie" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Automatyczne logowanie. Nie należy używać na komputerach używanych przez " @@ -2378,66 +3336,76 @@ msgstr "Nie można uczynić %1$s administratorem grupy %2$s." msgid "No current status." msgstr "Brak obecnego stanu." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nowa aplikacja" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Musisz być zalogowany, aby zarejestrować aplikację." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Użyj tego formularza, aby zarejestrować aplikację." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Źródłowy adres URL jest wymagany." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Nie można utworzyć aplikacji." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Nowa grupa" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Użyj tego formularza, aby utworzyć nową grupę." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nowa wiadomość" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Nie można wysłać wiadomości do tego użytkownika." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Brak treści." -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Nie podano odbiorcy." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Nie wysyłaj wiadomości do siebie, po prostu powiedz to sobie po cichu." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Wysłano wiadomość" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Błąd AJAX" @@ -2445,7 +3413,7 @@ msgstr "Błąd AJAX" msgid "New notice" msgstr "Nowy wpis" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Wysłano wpis" @@ -2498,7 +3466,8 @@ msgstr "Aktualizacje pasujące do wyszukiwanego terminu \"%1$s\" na %2$s." #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Ten użytkownik nie pozwala na szturchnięcia albo nie potwierdził lub nie " "ustawił jeszcze swojego adresu e-mail." @@ -2511,72 +3480,101 @@ msgstr "Wysłano szturchnięcie" msgid "Nudge sent!" msgstr "Wysłano szturchnięcie." -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Musisz być zalogowany, aby wyświetlić listę aplikacji." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplikacje OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Zarejestrowane aplikacje" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Nie zarejestrowano jeszcze żadnych aplikacji." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Połączone aplikacje" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Zezwolono następującym aplikacjom na dostęp do konta." +msgid "The following connections exist for your account." +msgstr "Istnieją następujące połączenia dla konta." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Nie jesteś użytkownikiem tej aplikacji." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Nie można unieważnić dostępu dla aplikacji: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Pomyślnie unieważniono dostęp dla %1$s i token dostępu zaczynający się od %2" +"$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Nie upoważniono żadnych aplikacji do używania konta." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "Programiści mogą zmodyfikować ustawienia rejestracji swoich aplikacji " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" +"Jesteś programistą? [Zarejestruj aplikację kliencką OAuth](%s) do użycia z " +"tą witryną StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Wpis nie posiada profilu." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Stan użytkownika %1$s na %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Typ zawartości %s jest nieobsługiwany." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Dozwolone są tylko adresy URL %s przez zwykły protokół HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -2588,36 +3586,45 @@ msgstr "Wyszukiwanie osób" msgid "Notice Search" msgstr "Wyszukiwanie wpisów" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Inne ustawienia" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Zarządzaj różnymi innymi opcjami." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (wolna usługa)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Skracanie adresów URL za pomocą" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Używana automatyczna usługa skracania." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Wyświetl ustawienia wyglądu profilu" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Wyświetl lub ukryj ustawienia wyglądu profilu." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Adres URL usługi skracania jest za długi (maksymalnie 50 znaków)." #: actions/otp.php:69 @@ -2679,7 +3686,7 @@ msgid "6 or more characters" msgstr "6 lub więcej znaków" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Potwierdź" @@ -2691,11 +3698,11 @@ msgstr "Takie samo jak powyższe hasło" msgid "Change" msgstr "Zmień" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Hasło musi mieć sześć lub więcej znaków." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Hasła nie pasują do siebie." @@ -2715,158 +3722,275 @@ msgstr "Nie można zapisać nowego hasła." msgid "Password saved." msgstr "Zapisano hasło." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Ścieżki" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Ustawienia ścieżki i serwera dla tej witryny StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Ustawienia ścieżki i serwera dla tej witryny StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Nie można odczytać katalogu motywu: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Nie można zapisywać w katalogu awatarów: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Nie można zapisywać w katalogu teł: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Nie można odczytać katalogu lokalizacji: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Nieprawidłowy serwer SSL. Maksymalna długość to 255 znaków." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Witryny" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Serwer" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nazwa komputera serwera strony." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Ścieżka" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Ścieżka do witryny" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Ścieżka do witryny." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Ścieżka do lokalizacji" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Katalog lokalizacji" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Ścieżka do katalogu lokalizacji" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Ścieżka do katalogu lokalizacji." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Eleganckie adresu URL" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" "Używać eleganckich (bardziej czytelnych i łatwiejszych do zapamiętania) " "adresów URL?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Motyw" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Serwer motywu" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Serwer motywów." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Ścieżka do motywu" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Ścieżka WWW do motywów." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Katalog motywu" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Awatary" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Serwer awatara" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Ścieżka do awatara" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Katalog awatara" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Tła" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Serwer tła" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Ścieżka do tła" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Katalog tła" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nigdy" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Czasem" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Zawsze" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Użycie SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Kiedy używać SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Serwer SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Serwer do przekierowywania żądań SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "Serwer SSL dla motywów (domyślnie: serwer SSL)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Ścieżka do SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "Ścieżka SSL do motywów (domyślnie: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Katalog" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Katalog, w którym położone są motywy." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Awatary" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Serwer awatara" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Serwer awatarów." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Ścieżka do awatara" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Ścieżka WWW do awatarów." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Katalog awatara" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Katalog, w którym położone są awatary." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Tła" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Serwer teł." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Ścieżka WWW do teł." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Serwer teł na stronach SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Ścieżka WWW do teł na stronach SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Katalog, w którym położone są tła." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Załączniki" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Serwer załączników." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Ścieżka WWW do załączników." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Serwer załączników na stronach SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Ścieżka WWW do załączników na stronach SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Katalog, w którym położone są załączniki." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nigdy" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Czasem" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Zawsze" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Użycie SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Kiedy używać SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Serwer do przekierowywania żądań SSL." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Ścieżki zapisu" @@ -2903,140 +4027,184 @@ msgstr "Nieprawidłowa treść wpisu." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Licencja wpisu \"%1$s\" nie jest zgodna z licencją witryny \"%2$s\"." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Ustawienia profilu" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Tutaj można zaktualizować osobiste informacje w profilu, aby inni mogli " "lepiej cię poznać." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Informacje o profilu" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Imię i nazwisko" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Strona domowa" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "Adres URL strony domowej, bloga lub profilu na innej witrynie" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "Adres URL strony domowej, bloga lub profilu na innej witrynie." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Opisz się i swoje zainteresowania w %d znakach" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Opisz siebie i swoje zainteresowania w %d znaku" +msgstr[1] "Opisz siebie i swoje zainteresowania w %d znakach" +msgstr[2] "Opisz siebie i swoje zainteresowania w %d znakach" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Opisz się i swoje zainteresowania" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "O mnie" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Położenie" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Gdzie jesteś, np. \"miasto, województwo (lub region), kraj\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Podziel się swoim obecnym położeniem podczas wysyłania wpisów" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Znaczniki" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Język" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Preferowany język" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Strefa czasowa" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "W jakiej strefie czasowej zwykle się znajdujesz?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Wpis \"O mnie\" jest za długi (maksymalnie %d znaków)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Wpis \"O mnie\" jest za długi (maksymalnie %d znak)." +msgstr[1] "Wpis \"O mnie\" jest za długi (maksymalnie %d znaki)." +msgstr[2] "Wpis \"O mnie\" jest za długi (maksymalnie %d znaków)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Nie wybrano strefy czasowej." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "Język jest za długi (maksymalnie 50 znaków)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Nieprawidłowy znacznik: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Nie można zaktualizować użytkownika do automatycznej subskrypcji." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Nie można zapisać preferencji położenia." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Nie można zapisać profilu." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Nie można zapisać znaczników." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Zapisano ustawienia." @@ -3114,26 +4282,39 @@ msgstr "" "To jest %%site.name%%, usługa [mikroblogowania](http://pl.wikipedia.org/wiki/" "Mikroblog) oparta na wolnym narzędziu [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Publiczna chmura znaczników" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "To są najpopularniejsze ostatnie znaczniki na %s " +msgid "These are most popular recent tags on %s" +msgstr "To są najpopularniejsze ostatnie znaczniki w witrynie %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" "Nikt jeszcze nie wysłał wpisu za pomocą [znacznika mieszania](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Zostań pierwszym, który go wyśle." -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3142,7 +4323,7 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%action.register%%) i zostaniesz " "pierwszym, który go wyśle." -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Chmura znaczników" @@ -3255,14 +4436,14 @@ msgid "Unexpected password reset." msgstr "Nieoczekiwane przywrócenie hasła." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Hasło musi mieć sześć lub więcej znaków." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Hasło i potwierdzenie nie pasują do siebie." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Błąd podczas ustawiania użytkownika." @@ -3270,7 +4451,7 @@ msgstr "Błąd podczas ustawiania użytkownika." msgid "New password successfully saved. You are now logged in." msgstr "Pomyślnie zapisano nowe hasło. Jesteś teraz zalogowany." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Tylko zaproszone osoby mogą się rejestrować." @@ -3282,7 +4463,7 @@ msgstr "Nieprawidłowy kod zaproszenia." msgid "Registration successful" msgstr "Rejestracja powiodła się" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Zarejestruj się" @@ -3290,20 +4471,20 @@ msgstr "Zarejestruj się" msgid "Registration not allowed." msgstr "Rejestracja nie jest dozwolona." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" "Nie można się zarejestrować, jeśli nie zgadzasz się z warunkami licencji." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Adres e-mail już istnieje." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nieprawidłowa nazwa użytkownika lub hasło." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3311,56 +4492,60 @@ msgstr "" "Za pomocą tego formularza można utworzyć nowe konto. Można wtedy wysyłać " "wpisy i połączyć się z przyjaciółmi i kolegami. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 małe litery lub liczby, bez spacji i znaków przestankowych. Wymagane." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 lub więcej znaków. Wymagane." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Takie samo jak powyższe hasło. Wymagane." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Używane tylko do aktualizacji, ogłoszeń i przywracania hasła" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Dłuższa nazwa, najlepiej twoje \"prawdziwe\" imię i nazwisko" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Adres URL strony domowej, bloga lub profilu na innej witrynie" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "Rozumiem, że treść i dane %1$s są prywatne i poufne." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Moje teksty i pliki są objęte prawami autorskimi %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Moje teksty i pliki pozostają pod moimi prawami autorskimi." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Wszystkie prawa zastrzeżone." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3369,7 +4554,7 @@ msgstr "" "Tekst i pliki są dostępne na warunkach licencji %s, poza tymi prywatnymi " "danymi: hasło, adres e-mail, adres komunikatora i numer telefonu." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3402,7 +4587,7 @@ msgstr "" "Dziękujemy za zarejestrowanie się i mamy nadzieję, że używanie tej usługi " "sprawi ci przyjemność." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3447,7 +4632,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adres URL profilu na innej, zgodnej usłudze mikroblogowania" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subskrybuj" @@ -3485,7 +4670,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Powtórzono" @@ -3494,7 +4679,7 @@ msgid "Repeated!" msgstr "Powtórzono." #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Odpowiedzi na %s" @@ -3573,13 +4758,13 @@ msgstr "Użytkownik jest już ograniczony." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sesje" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Ustawienia sesji tej witryny StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Ustawienia sesji tej witryny StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3598,7 +4783,6 @@ msgid "Turn on debugging output for sessions." msgstr "Włącza wyjście debugowania dla sesji." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Zapisz ustawienia witryny" @@ -3611,28 +4795,29 @@ msgid "Application profile" msgstr "Profil aplikacji" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ikona" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nazwa" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organizacja" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Opis" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statystyki" @@ -3650,6 +4835,11 @@ msgstr "Czynności aplikacji" msgid "Reset key & secret" msgstr "Przywrócenie klucza i sekretu" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Usuń" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informacje o aplikacji" @@ -3743,77 +4933,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "To jest sposób na współdzielenie tego, co chcesz." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Grupa %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Grupa %1$s, strona %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Profil grupy" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "Adres URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Wpis" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Działania grupy" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Kanał wpisów dla grupy %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Kanał wpisów dla grupy %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Kanał wpisów dla grupy %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF dla grupy %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Członkowie" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Brak)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Wszyscy członkowie" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Utworzono" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Członkowie" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3829,7 +5046,10 @@ msgstr "" "action.register%%%%), aby stać się częścią tej grupy i wiele więcej. " "([Przeczytaj więcej](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3842,24 +5062,31 @@ msgstr "" "narzędziu [StatusNet](http://status.net/). Jej członkowie dzielą się " "krótkimi wiadomościami o swoim życiu i zainteresowaniach. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administratorzy" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Nie ma takiej wiadomości." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Tylko nadawca i odbiorca mogą przeczytać tę wiadomość." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Wiadomość do użytkownika %1$s na %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Wiadomość od użytkownika %1$s na %2$s" @@ -3868,48 +5095,68 @@ msgstr "Wiadomość od użytkownika %1$s na %2$s" msgid "Notice deleted." msgstr "Usunięto wpis." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " ze znacznikiem %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s nadał etykietę %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s nadał etykietę %2$s, strona %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, strona %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Kanał wpisów dla %1$s ze znacznikiem %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Kanał wpisów dla %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Kanał wpisów dla %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Kanał wpisów dla %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF dla %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"To jest oś czasu dla użytkownika %1$s, ale %2$s nie nic jeszcze nie wysłał." +"To jest oś czasu dla użytkownika %1$s, ale %1$s nie nic jeszcze nie wysłał." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3917,7 +5164,9 @@ msgstr "" "Widziałeś ostatnio coś interesującego? Nie wysłałeś jeszcze żadnych wpisów, " "teraz jest dobry czas, aby zacząć. :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3926,7 +5175,9 @@ msgstr "" "Można spróbować szturchnąć użytkownika %1$s lub [wysłać mu coś](%%%%action." "newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3940,7 +5191,9 @@ msgstr "" "obserwować wpisy użytkownika **%s** i wiele więcej. ([Przeczytaj więcej](%%%%" "doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3951,7 +5204,8 @@ msgstr "" "pl.wikipedia.org/wiki/Mikroblog) opartej na wolnym narzędziu [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Powtórzenia %s" @@ -4065,32 +5319,39 @@ msgstr "" "Ile czasu użytkownicy muszą czekać (w sekundach), aby ponownie wysłać to " "samo." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Wpis witryny" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Zmodyfikuj wiadomość witryny" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Nie można zapisać wpisu witryny." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Maksymalna długość wpisu witryny to 255 znaków." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Tekst wpisu witryny" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" "Tekst wpisu witryny (maksymalnie 255 znaków, można używać znaczników HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Zapisz wpis witryny" @@ -4250,7 +5511,7 @@ msgstr "Nie podano kodu" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Migawki" @@ -4306,12 +5567,14 @@ msgstr "Migawki będą wysyłane na ten adres URL" msgid "Save snapshot settings" msgstr "Zapisz ustawienia migawki" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Nie jesteś subskrybowany do tego profilu." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Nie można zapisać subskrypcji." @@ -4319,10 +5582,6 @@ msgstr "Nie można zapisać subskrypcji." msgid "This action only accepts POST requests." msgstr "Ta czynność przyjmuje tylko żądania POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Nie ma takiego profilu." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4333,39 +5592,55 @@ msgstr "" msgid "Subscribed" msgstr "Subskrybowano" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Subskrybenci użytkownika %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Subskrybenci użytkownika %1$s, strona %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Osoby obserwujący twoje wpisy." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Osoby obserwujące wpisy użytkownika %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Nie masz żadnych subskrybentów. Spróbuj subskrybować osoby, które znasz, a " -"oni mogą się odwdzięczyć" +"oni mogą się odwdzięczyć." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "Użytkownik %s nie posiada subskrybentów. Chcesz być pierwszym?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4374,26 +5649,31 @@ msgstr "" "Użytkownik %s nie posiada subskrybentów. Dlaczego nie [zarejestrujesz konta]" "(%%%%action.register%%%%) i zostaniesz pierwszym?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Subskrypcje użytkownika %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Subskrypcje użytkownika %1$s, strona %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Osoby, których wpisy obserwujesz." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Osoby, których wpisy obserwuje użytkownik %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4409,16 +5689,27 @@ msgstr "" "twittersettings%%), można automatycznie subskrybować osoby, które tam już " "obserwujesz." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "Użytkownik %s nie obserwuje nikogo." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Kanał wpisów dla %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4456,7 +5747,7 @@ msgid "User profile" msgstr "Profil użytkownika" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Zdjęcie" @@ -4521,74 +5812,94 @@ msgstr "" "witryny \"%2$s\"." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Użytkownik" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Ustawienia użytkownika dla tej witryny StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Ustawienia użytkownika dla tej witryny StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Nieprawidłowe ograniczenie informacji o sobie. Musi być liczbowa." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Nieprawidłowy tekst powitania. Maksymalna długość to 255 znaków." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Nieprawidłowa domyślna subskrypcja: \"%1$s\" nie jest użytkownikiem." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Ograniczenie informacji o sobie" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Maksymalna długość informacji o sobie jako liczba znaków." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nowi użytkownicy" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Powitanie nowego użytkownika" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Tekst powitania nowych użytkowników (maksymalnie 255 znaków)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Domyślna subskrypcja" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Automatyczne subskrybowanie nowych użytkowników do tego użytkownika." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Zaproszenia" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Zaproszenia są włączone" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Czy zezwolić użytkownikom zapraszanie nowych użytkowników." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Zapisz ustawienia użytkownika" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Upoważnij subskrypcję" @@ -4603,7 +5914,9 @@ msgstr "" "wpisy tego użytkownika. Jeżeli nie prosiłeś o subskrypcję czyichś wpisów, " "naciśnij \"Odrzuć\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licencja" @@ -4689,11 +6002,13 @@ msgstr "Nie można odczytać adresu URL awatara \"%s\"." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Błędny typ obrazu dla adresu URL awatara \"%s\"." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Wygląd profilu" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4730,7 +6045,7 @@ msgstr "Spróbuj [wyszukać grupy](%%action.groupsearch%%) i dołączyć do nich #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Aktualizacje z %1$s na %2$s." @@ -4793,7 +6108,7 @@ msgid "Plugins" msgstr "Wtyczki" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Wersja" @@ -4801,65 +6116,125 @@ msgstr "Wersja" msgid "Author(s)" msgstr "Autorzy" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Dodaj do ulubionych" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "Użytkownik %1$s oznaczył wpis %2$s jako ulubiony." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Nie można przetworzyć adresu URL \"%s\"" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin sądzi, że coś jest niemożliwe." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Żaden plik nie może być większy niż %1$d bajt, a wysłany plik miał %2$d " +"bajty. Proszę spróbować wysłać mniejszą wersję." +msgstr[1] "" "Żaden plik nie może być większy niż %1$d bajty, a wysłany plik miał %2$d " "bajty. Proszę spróbować wysłać mniejszą wersję." +msgstr[2] "" +"Żaden plik nie może być większy niż %1$d bajtów, a wysłany plik miał %2$d " +"bajtów. Proszę spróbować wysłać mniejszą wersję." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Plik tej wielkości przekroczyłby przydział użytkownika wynoszący %d bajt." +msgstr[1] "" "Plik tej wielkości przekroczyłby przydział użytkownika wynoszący %d bajty." +msgstr[2] "" +"Plik tej wielkości przekroczyłby przydział użytkownika wynoszący %d bajtów." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Plik tej wielkości przekroczyłby miesięczny przydział użytkownika wynoszący %" +"d bajt." +msgstr[1] "" "Plik tej wielkości przekroczyłby miesięczny przydział użytkownika wynoszący %" "d bajty." +msgstr[2] "" +"Plik tej wielkości przekroczyłby miesięczny przydział użytkownika wynoszący %" +"d bajtów." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nieprawidłowa nazwa pliku." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Dołączenie do grupy nie powiodło się." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Nie jest częścią grupy." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Opuszczenie grupy nie powiodło się." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Identyfikator profilu %s jest nieprawidłowy." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Identyfikator grupy %s jest nieprawidłowy." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Dołącz" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "Użytkownik %1$s dołączył do grupy %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4878,17 +6253,17 @@ msgid "No database name or DSN found anywhere." msgstr "Nigdzie nie odnaleziono nazwy lub DSN bazy danych." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Zablokowano wysyłanie bezpośrednich wiadomości." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Nie można wprowadzić wiadomości." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Nie można zaktualizować wiadomości za pomocą nowego adresu URL." @@ -4900,23 +6275,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Brak profilu (%1$d) dla wpisu (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Błąd bazy danych podczas wprowadzania znacznika mieszania: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problem podczas zapisywania wpisu. Za długi." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4924,7 +6299,7 @@ msgstr "" "kilka minut." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4933,43 +6308,57 @@ msgstr "" "wyślij ponownie za kilka minut." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Zabroniono ci wysyłania wpisów na tej witrynie." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "Podano błędne dane do saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "Podano błędne dane do saveKnownGroups." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Nie można zapisać odpowiedzi na %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "Nie można unieważnić roli \"\"%1$s\" użytkownika #%2$d; nie istnieje." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4981,301 +6370,344 @@ msgid "Missing profile." msgstr "Brak profilu." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Nie można zapisać etykiety." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Zablokowano subskrybowanie." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Już subskrybowane." #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Użytkownik zablokował cię." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Niesubskrybowane." #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Nie można usunąć autosubskrypcji." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Nie można usunąć tokenu subskrypcji OMB." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Nie można usunąć subskrypcji." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Obserwuj" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "Użytkownik %1$s obserwuje teraz %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" +"Nie określono pojedynczego użytkownika dla trybu pojedynczego użytkownika." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Wywołano kod pojedynczego użytkownika, kiedy nie był włączony." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Nie można utworzyć grupy." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Nie można ustawić adresu URI grupy." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Nie można ustawić członkostwa w grupie." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Nie można zapisać informacji o lokalnej grupie." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Zmień ustawienia profilu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Wyślij awatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Zmień hasło" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Zmień obsługę adresu e-mail" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Wygląd profilu" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Inne opcje" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Inne" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Strona bez nazwy" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Wyświetl więcej" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Główna nawigacja witryny" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil osobisty i oś czasu przyjaciół" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Osobiste" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Zmień adres e-mail, awatar, hasło, profil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Połącz z serwisami" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Połącz" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Zmień konfigurację witryny" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Zaproś" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Wyloguj się z witryny" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Wyloguj się" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Utwórz konto" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Zarejestruj się" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Zaloguj się na witrynie" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Zaloguj się" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomóż mi." -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Wyszukaj osoby lub tekst" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Wyszukaj" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Wpis witryny" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokalne widoki" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Wpis strony" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Druga nawigacja witryny" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Pomoc" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "O usłudze" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "TOS" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Prywatność" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Kod źródłowy" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Odznaka" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licencja oprogramowania StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5285,13 +6717,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** jest usługą mikroblogowania." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5303,20 +6738,20 @@ msgstr "" "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licencja zawartości witryny" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Treść i dane %1$s są prywatne i poufne." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5324,14 +6759,15 @@ msgstr "" "zastrzeżone." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością współtwórców. Wszystkie " "prawa zastrzeżone." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" @@ -5339,314 +6775,420 @@ msgstr "" "$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginacja" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Później" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Wcześniej" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Oczekiwano elementu kanału roota, ale otrzymano cały dokument XML." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Zdjęcie" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Nie można jeszcze obsługiwać zdalnej treści." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści XML." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Nie można wprowadzić zmian witryny." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Zmiany w tym panelu nie są dozwolone." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() nie jest zaimplementowane." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() nie jest zaimplementowane." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Nie można usunąć ustawienia wyglądu." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Podstawowa konfiguracja witryny" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Witryna" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Konfiguracja wyglądu" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Wygląd" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Konfiguracja użytkownika" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Użytkownik" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Konfiguracja dostępu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Konfiguracja ścieżek" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Konfiguracja sesji" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Zmodyfikuj wpis witryny" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Konfiguracja migawek" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Ustaw licencję witryny" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Zasób API wymaga dostępu do zapisu i do odczytu, ale powiadasz dostęp tylko " "do odczytu." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Zmodyfikuj aplikację" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Brak aplikacji dla tego klucza klienta." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Błędny token dostępu." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Brak użytkownika dla tego tokenu." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Nie można uwierzytelnić." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Nie można utworzyć anonimowego klienta." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Nie można utworzyć anonimowej aplikacji OAuth." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "Nie można odnaleźć profilu i aplikacji powiązanych z tokenem żądania." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Nie można wywołać tokenu żądania." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Błąd bazy danych podczas wprowadzania użytkownika aplikacji OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Spróbowano unieważnić nieznany token." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Usunięcie unieważnionego tokenu nie powiodło się." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Ikona tej aplikacji" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Opisz aplikację w %d znakach" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Opisz aplikację w %d znaku" +msgstr[1] "Opisz aplikację w %d znakach" +msgstr[2] "Opisz aplikację w %d znakach" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Opisz aplikację" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "Adres URL strony domowej tej aplikacji" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "Źródłowy adres URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organizacja odpowiedzialna za tę aplikację" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "Adres URL strony domowej organizacji" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "Adres URL do przekierowania po uwierzytelnieniu" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Przeglądarka" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Pulpit" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Typ aplikacji, przeglądarka lub pulpit" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Tylko do odczytu" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Odczyt i zapis" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Domyślny dostęp do tej aplikacji: tylko do odczytu lub do odczytu i zapisu" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Anuluj" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " autorstwa " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "odczyt i zapis" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "tylko do odczytu" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Zaakceptowano %1$s - dostęp \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Token dostępu rozpoczynający się od: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Unieważnij" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Załączniki" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "element autora musi zawierać element nazwy." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Dostawca" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Powiadamia, kiedy pojawia się ten załącznik" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Znaczniki dla tego załącznika" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Zmiana hasła nie powiodła się" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Zmiana hasła nie powiodła się." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Zmiana hasła nie jest dozwolona" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Zmiana hasła nie jest dozwolona." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Zablokuj" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Wyniki polecenia" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Błąd AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Zakończono polecenie" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Polecenie nie powiodło się" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "Wpis z tym identyfikatorem nie istnieje." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "Użytkownik nie posiada ostatniego wpisu." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Nie można odnaleźć użytkownika z pseudonimem %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Nie można odnaleźć lokalnego użytkownika z pseudonimem %s." +msgid "Could not find a local user with nickname %s." +msgstr "Nie można odnaleźć lokalnego użytkownika o pseudonimie %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Te polecenie nie zostało jeszcze zaimplementowane." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Szturchanie samego siebie nie ma zbyt wiele sensu." #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Wysłano szturchnięcie do użytkownika %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5657,55 +7199,64 @@ msgstr "" "Subskrybenci: %2$s\n" "Wpisy: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Zaznaczono wpis jako ulubiony." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Jesteś już członkiem tej grupy." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s." +msgid "%1$s joined group %2$s." +msgstr "Użytkownik %1$s dołączył do grupy %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Nie można usunąć użytkownika %1$s z grupy %2$s" +msgid "%1$s left group %2$s." +msgstr "Użytkownik %1$s opuścił grupę %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Imię i nazwisko: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Położenie: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Strona domowa: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "O mnie: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5714,149 +7265,180 @@ msgstr "" "%s to zdalny profil; można wysyłać bezpośrednie wiadomości tylko do " "użytkowników na tym samym serwerze." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Wiadomość jest za długa - maksymalnie %1$d znaków, wysłano %2$d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Wiadomość jest za długa - maksymalnie %1$d znak, wysłano %2$d." +msgstr[1] "Wiadomość jest za długa - maksymalnie %1$d znaki, wysłano %2$d." +msgstr[2] "Wiadomość jest za długa - maksymalnie %1$d znaków, wysłano %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Błąd podczas wysyłania bezpośredniej wiadomości." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Nie można powtórzyć własnego wpisu" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Już powtórzono ten wpis" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Powtórzono wpis od użytkownika %s" +msgid "Notice from %s repeated." +msgstr "Powtórzono wpis od użytkownika %s." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Błąd podczas powtarzania wpisu." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Wpis jest za długi - maksymalnie %1$d znaków, wysłano %2$d." +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Wpis jest za długi - maksymalnie %1$d znak, wysłano %2$d." +msgstr[1] "Wpis jest za długi - maksymalnie %1$d znaki, wysłano %2$d." +msgstr[2] "Wpis jest za długi - maksymalnie %1$d znaków, wysłano %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "Wysłano odpowiedź do %s." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Błąd podczas zapisywania wpisu." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "Podaj nazwę użytkownika do subskrybowania." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Nie można subskrybować profili OMB za pomocą polecenia." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subskrybowano użytkownika %s" +msgid "Subscribed to %s." +msgstr "Subskrybowano użytkownika %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "Podaj nazwę użytkownika do usunięcia subskrypcji." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Usunięto subskrypcję użytkownika %s" +msgid "Unsubscribed from %s." +msgstr "Usunięto subskrypcję użytkownika %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Nie zaimplementowano polecenia." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Wyłączono powiadomienia." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Nie można wyłączyć powiadomień." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Włączono powiadomienia." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Nie można włączyć powiadomień." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Polecenie logowania jest wyłączone" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Polecenie logowania jest wyłączone." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Tego odnośnika można użyć tylko raz i będzie prawidłowy tylko przez dwie " -"minuty: %s." +"Tego odnośnika można użyć tylko raz i jest ważny przez dwie minuty: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Usunięto subskrypcję użytkownika %s" +msgid "Unsubscribed %s." +msgstr "Usunięto subskrypcję użytkownika %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Nie subskrybujesz nikogo." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Subskrybujesz tę osobę:" msgstr[1] "Subskrybujesz te osoby:" msgstr[2] "Subskrybujesz te osoby:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Nikt cię nie subskrybuje." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Ta osoba cię subskrybuje:" msgstr[1] "Te osoby cię subskrybują:" msgstr[2] "Te osoby cię subskrybują:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Nie jesteś członkiem żadnej grupy." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Jesteś członkiem tej grupy:" msgstr[1] "Jesteś członkiem tych grup:" msgstr[2] "Jesteś członkiem tych grup:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5938,90 +7520,128 @@ msgstr "" "tracks - jeszcze nie zaimplementowano\n" "tracking - jeszcze nie zaimplementowano\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "Nie odnaleziono pliku konfiguracji." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Szukano plików konfiguracji w następujących miejscach: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Szukano plików konfiguracji w następujących miejscach:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Należy uruchomić instalator, aby to naprawić." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Przejdź do instalatora." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "Komunikator" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Aktualizacje przez komunikator" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Aktualizacje przez wiadomości SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Połączenia" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Upoważnione połączone aplikacje" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Błąd bazy danych" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Wyślij plik" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "Można wysłać osobisty obraz tła. Maksymalny rozmiar pliku to 2 MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Włączone" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Wyłączone" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Przywróć" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Przywrócono domyślny wygląd." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Usuń ten wpis z ulubionych" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Dodaj ten wpis do ulubionych" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Dodaj do ulubionych" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Wyeksportuj dane" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Kanały" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6052,9 +7672,13 @@ msgstr "Przejdź" msgid "Grant this user the \"%s\" role" msgstr "Nadaj użytkownikowi rolę \"%s\"" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "Adres URL strony domowej lub bloga grupy, albo temat" +msgid "URL of the homepage or blog of the group or topic." +msgstr "Adres URL strony domowej lub bloga grupy, albo temat." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6062,64 +7686,122 @@ msgstr "Opisz grupę lub temat" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Opisz grupę lub temat w %d znakach" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Opisz grupę lub temat w %d znaku" +msgstr[1] "Opisz grupę lub temat w %d znakach" +msgstr[2] "Opisz grupę lub temat w %d znakach" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" "Położenie grupy, jeśli istnieje, np. \"miasto, województwo (lub region), kraj" -"\"" +"\"." -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" "Dodatkowe pseudonimy grupy, oddzielone przecinkami lub spacjami, maksymalnie " -"%d" +"%d." +msgstr[1] "" +"Dodatkowe pseudonimy grupy, oddzielone przecinkami lub spacjami, maksymalnie " +"%d." +msgstr[2] "" +"Dodatkowe pseudonimy grupy, oddzielone przecinkami lub spacjami, maksymalnie " +"%d." -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupa" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Zablokowano" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s zablokowani użytkownicy" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupa %s" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Członkowie" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Członkowie grupy %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 -#, php-format -msgid "Edit %s group properties" -msgstr "Zmodyfikuj właściwości grupy %s" +msgctxt "MENU" +msgid "Blocked" +msgstr "Zablokowany" -#: lib/groupnav.php:113 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "%s zablokowanych użytkowników" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "Modyfikacja właściwości grupy %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Dodaj lub zmodyfikuj logo grupy %s" +msgstr "Dodanie lub modyfikacja loga grupy %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" -msgstr "Dodaj lub zmodyfikuj wygląd %s" +msgstr "Dodanie lub modyfikacja wyglądu grupy %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupy z największą liczbą członków" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupy z największą ilością wpisów" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Znaczniki we wpisach grupy %s" @@ -6133,38 +7815,60 @@ msgstr "Ta strona jest niedostępna dla akceptowanego typu medium" msgid "Unsupported image file format." msgstr "Nieobsługiwany format pliku obrazu." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Częściowo wysłano." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Błąd systemu podczas wysyłania pliku." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "To nie jest obraz lub lub plik jest uszkodzony." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Utracono plik." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Nieznany typ pliku" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d MB" +msgstr[1] "%d MB" +msgstr[2] "%d MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "KB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d KB" +msgstr[1] "%d KB" +msgstr[2] "%d KB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d B" +msgstr[1] "%d B" +msgstr[2] "%d B" #: lib/jabber.php:387 #, php-format @@ -6176,10 +7880,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Nieznane źródło skrzynki odbiorczej %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Dołącz" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Opuść" @@ -6192,49 +7892,54 @@ msgstr "Zaloguj się za pomocą nazwy użytkownika i hasła" msgid "Sign up for a new account" msgstr "Załóż nowe konto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Potwierdzenie adresu e-mail" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Cześć, %s.\n" +"Cześć, %1$s.\n" "\n" -"Ktoś właśnie podał ten adres e-mail na %s.\n" +"Ktoś właśnie podał ten adres e-mail w witrynie %2$s.\n" "\n" "Jeśli to byłeś Ty, i chcesz potwierdzić swoje wejście, użyj poniższego " "adresu URL:\n" "\n" -"\t%s\n" +"%3$s\n" "\n" "Jeśli to nie ty, po prostu zignoruj tę wiadomość.\n" "\n" "Dziękujemy za twój czas, \n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "Użytkownik %1$s obserwuje teraz twoje wpisy na %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6244,8 +7949,12 @@ msgstr "" "zablokować je z listy subskrybentów i zgłosić je jako spam do " "administratorów witryny na %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6254,36 +7963,40 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -"Użytkownik %1$s obserwuje teraz twoje wpisy na %2$s.\n" +"Użytkownik %1$s obserwuje teraz twoje wpisy w witrynie %2$s.\n" "\n" -"\t%3$s\n" +"%3$s\n" "\n" "%4$s%5$s%6$s\n" "Z poważaniem,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Zmień adres e-mail lub opcje powiadamiania na %8$s\n" +"Zmień adres e-mail lub opcje powiadamiania na %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "O mnie: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Nowy adres e-mail do wysyłania do %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6293,42 +8006,47 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"Posiadasz nowy adres wysyłania na %1$s.\n" +"Posiadasz nowy adres wysyłania w witrynie %1$s.\n" "\n" -"Wyślij wiadomość e-mail na %2$s, aby wysłać nowe wpisy.\n" +"Wyślij wiadomość e-mail na adres %2$s, aby wysłać nowe wpisy.\n" "\n" "Więcej instrukcji dotyczących poczty e-mail można odnaleźć na %3$s.\n" "\n" "Z poważaniem,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Stan użytkownika %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Potwierdzenie SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: proszę potwierdzić własny numer telefonu za pomocą tego kodu:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Zostałeś szturchnięty przez %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6355,14 +8073,18 @@ msgstr "" "Z poważaniem,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nowa prywatna wiadomość od użytkownika %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6395,14 +8117,19 @@ msgstr "" "Z poważaniem,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "Użytkownik %s (@%s) dodał twój wpis jako ulubiony" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "Użytkownik %1$s (@%2$s) dodał twój wpis jako ulubiony" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6441,7 +8168,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6452,13 +8179,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "Użytkownik %s (@%s) wysłał wpis wymagający twojej uwagi" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "Użytkownik %1$s (@%2$s) wysłał wpis wymagający twojej uwagi" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6521,7 +8255,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:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "z" @@ -6541,107 +8275,157 @@ msgstr "To nie jest przychodzący adres e-mail." msgid "Sorry, no incoming email allowed." msgstr "Przychodzący e-mail nie jest dozwolony." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Nieobsługiwany typ wiadomości: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "Wystąpił błąd bazy danych podczas zapisywania pliku. Spróbuj ponownie." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Wysłany plik przekracza dyrektywę upload_max_filesize w php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" "Wysłany plik przekracza dyrektywę MAX_FILE_SIZE podaną w formularzu HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Plik został tylko częściowo wysłany." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Brak katalogu tymczasowego." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Zapisanie pliku na dysku nie powiodło się." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Wysłanie pliku zostało zatrzymane przez rozszerzenie." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Plik przekracza przydział użytkownika." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Nie można przenieść pliku do katalogu docelowego." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Nie można określić typu MIME pliku." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Spróbuj innego formatu %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" nie jest obsługiwanym typem pliku na tym serwerze. Proszę spróbować " +"innego formatu %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s nie jest obsługiwanym typem pliku na tym serwerze." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" nie jest obsługiwanym typem pliku na tym serwerze." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Wyślij bezpośredni wpis" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Wybierz odbiorcę:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Brak wzajemnych subskrybentów." + +#: lib/messageform.php:153 msgid "To" msgstr "Do" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Dostępne znaki" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Wyślij" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Pseudonim nie może być pusty." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Pseudonim nie może mieć więcej niż %d znak." +msgstr[1] "Pseudonim nie może mieć więcej niż %d znaki." +msgstr[2] "Pseudonim nie może mieć więcej niż %d znaków." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Wyślij wpis" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Co słychać, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Załącz" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Załącz plik" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Ujawnij położenie" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Nie ujawniaj położenia" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6650,51 +8434,55 @@ msgstr "" "ponownie później" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "Północ" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "Południe" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "Wschód" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "Zachód" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "w" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "WWW" + +#: lib/noticelist.php:583 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -6710,55 +8498,52 @@ msgstr "Szturchnij" msgid "Send a nudge to this user" msgstr "Wyślij szturchnięcie do tego użytkownika" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Błąd podczas wprowadzania nowego profilu" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Błąd podczas wprowadzania nowego profilu." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Błąd podczas wprowadzania awatara" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Błąd podczas wprowadzania awatara." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Błąd podczas aktualizowania zdalnego profilu" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Błąd podczas wprowadzania zdalnego profilu." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Błąd podczas wprowadzania zdalnego profilu" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Podwójny wpis." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplikat wpisu" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Nie można wprowadzić nowej subskrypcji." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Osobiste" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Odpowiedzi" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Ulubione" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Odebrane" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Wiadomości przychodzące" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Wysłane" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Wysłane wiadomości" @@ -6767,7 +8552,8 @@ msgstr "Wysłane wiadomości" msgid "Tags in %s's notices" msgstr "Znaczniki we wpisach użytkownika %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Nieznane" @@ -6849,10 +8635,10 @@ msgstr "Powtórz ten wpis" msgid "Revoke the \"%s\" role from this user" msgstr "Unieważnij rolę \"%s\" tego użytkownika" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" -"Nie określono pojedynczego użytkownika dla trybu pojedynczego użytkownika." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Nie odnaleziono strony." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6862,19 +8648,25 @@ msgstr "Ogranicz" msgid "Sandbox this user" msgstr "Ogranicz tego użytkownika" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Przeszukaj witrynę" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Słowa kluczowe" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Wyszukaj" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Przeszukaj pomoc" @@ -6948,6 +8740,11 @@ msgstr "Chmura znaczników osób ze znacznikami" msgid "None" msgstr "Brak" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Nieprawidłowa nazwa motywu." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6958,27 +8755,35 @@ msgid "The theme file is missing or the upload failed." msgstr "Brak pliku motywu lub wysłanie nie powiodło się." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Zapisanie motywu nie powiodło się." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Nieprawidłowy motyw: błędna struktura katalogów." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Wysłany motyw jest za duży, musi być mniejszy niż %d bajt po " +"zdekompresowaniu." +msgstr[1] "" +"Wysłany motyw jest za duży, musi być mniejszy niż %d bajty po " +"zdekompresowaniu." +msgstr[2] "" "Wysłany motyw jest za duży, musi być mniejszy niż %d bajtów po " "zdekompresowaniu." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Nieprawidłowe archiwum motywu: brak pliku css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6986,12 +8791,18 @@ msgstr "" "Motyw zawiera nieprawidłowy plik lub nazwę katalogu. Należy używać tylko " "liter, cyfr, podkreślników i znaku minus z zestawu ASCII." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"Temat zawiera niebezpieczne rozszerzenie nazwy pliku, co może stanowić " +"zagrożenie." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Motyw zawiera plik typu \\\".%s\\\", który nie jest dozwolony." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Błąd podczas otwierania archiwum motywu." @@ -6999,6 +8810,12 @@ msgstr "Błąd podczas otwierania archiwum motywu." msgid "Top posters" msgstr "Najczęściej wysyłający wpisy" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Odblokowanie" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Usuń ograniczenie" @@ -7023,124 +8840,182 @@ msgstr "Zrezygnuj z subskrypcji tego użytkownika" msgid "Unsubscribe" msgstr "Zrezygnuj z subskrypcji" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Użytkownik %s (%d) nie posiada wpisu profilu." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Użytkownik%1$s (%2$d) nie posiada wpisu profilu." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Zmodyfikuj awatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Czynności użytkownika" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Trwa usuwanie użytkownika..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Zmodyfikuj ustawienia profilu" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Edycja" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Wyślij bezpośrednią wiadomość do tego użytkownika" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Wiadomość" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderuj" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Rola użytkownika" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "kilka sekund temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "około minutę temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "około %d minut temu" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "około minuty temu" +msgstr[1] "około %d minut temu" +msgstr[2] "około %d minut temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "około godzinę temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "około %d godzin temu" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "około godziny temu" +msgstr[1] "około %d godzin temu" +msgstr[2] "około %d godzin temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "blisko dzień temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "około %d dni temu" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "około jednego dnia temu" +msgstr[1] "około %d dni temu" +msgstr[2] "około %d dni temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "około miesiąc temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "około %d miesięcy temu" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "około miesiąca temu" +msgstr[1] "około %d miesięcy temu" +msgstr[2] "około %d miesięcy temu" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "około rok temu" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s nie jest prawidłowym kolorem." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" -"%s nie jest prawidłowym kolorem. Użyj trzech lub sześciu znaków " +"%s nie jest prawidłowym kolorem. Proszę użyć trzech lub sześciu znaków " "szesnastkowych." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Wiadomość jest za długa - maksymalnie %1$d znaków, wysłano %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" +"Nieznany użytkownik. Proszę przejść na stronę %s i dodać adres do konta" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Wiadomość jest za długa. Maksymalnie %1$d znak, wysłano %2$d." +msgstr[1] "Wiadomość jest za długa. Maksymalnie %1$d znaki, wysłano %2$d." +msgstr[2] "Wiadomość jest za długa. Maksymalnie %1$d znaków, wysłano %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Nieprawidłowy kod XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "Nieprawidłowy kod XML, brak głównego XRD." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Pobieranie kopii zapasowej z pliku \"%s\"." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Nie podano użytkownika; używanie użytkownika zapasowego." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d wpis w kopii zapasowej." +msgstr[1] "%d wpisy w kopii zapasowej." +msgstr[2] "%d wpisów w kopii zapasowej." diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index ab309b7b3a..2cad0907c7 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -1,173 +1,217 @@ -# Translation of StatusNet to Portuguese +# Translation of StatusNet - Core to Portuguese (Português) +# Expored from translatewiki.net # -# Author@translatewiki.net: Gallaecio -# Author@translatewiki.net: Giro720 -# Author@translatewiki.net: Hamilton Abreu -# Author@translatewiki.net: Ipublicis +# Author: Brion +# Author: Gallaecio +# Author: Giro720 +# Author: Hamilton Abreu +# Author: Ipublicis +# Author: Waldir # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:54+0000\n" -"Language-Team: Portuguese\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:10+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Acesso" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Configurações de acesso ao site" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registo" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Proibir utilizadores anónimos (sem sessão iniciada) de ver o site?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privado" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Permitir o registo só a convidados." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Só por convite" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Impossibilitar registos novos." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Fechado" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Gravar configurações de acesso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Gravar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Página não foi encontrada." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utilizador não foi encontrado." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amigos, página %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte para os amigos de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte para os amigos de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte para os amigos de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Estas são as notas de %s e dos amigos, mas ainda não publicaram nenhuma." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"Tente subscrever mais pessoas, [juntar-se a um grupo] (%%action.groups%%) ou " +"Tente subscrever mais pessoas, [juntar-se a um grupo](%%action.groups%%) ou " "publicar qualquer coisa." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -176,7 +220,11 @@ msgstr "" "Pode tentar [dar um toque em %1$s](../%2$s) a partir do perfil ou [endereçar-" "lhe uma nota](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -185,405 +233,614 @@ msgstr "" "Podia [registar uma conta](%%%%action.register%%%%) e depois dar um toque em " "%s ou endereçar-lhe uma nota." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Você e seus amigos" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Actualizações de %1$s e amigos no %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Método da API não encontrado." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Este método requer um POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" "Tem de especificar um parâmetro 'aparelho' com um dos valores: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Não foi possível actualizar o utilizador." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Utilizador não tem perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Não foi possível gravar o perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 -#, php-format +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 +#, fuzzy, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"O servidor não conseguiu processar tantos dados POST (%s bytes) devido à sua " +"configuração actual." +msgstr[1] "" "O servidor não conseguiu processar tantos dados POST (%s bytes) devido à sua " "configuração actual." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Não foi possível gravar as configurações do estilo." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Não foi possível actualizar o seu estilo." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Notas de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Subscrições de %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritas" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membros do grupo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Os utilizadores não podem bloquear-se a si próprios!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Bloqueio do utilizador falhou." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Desbloqueio do utilizador falhou." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Mensagens directas de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Todas as mensagens directas enviadas por %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Mensagens directas para %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Todas as mensagens directas enviadas para %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Mensagem não tem texto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Demasiado longo. Tamanho máx. das mensagens é %d caracteres." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Demasiado longo. Tamanho máx. das mensagens é %d caracteres." +msgstr[1] "Demasiado longo. Tamanho máx. das mensagens é %d caracteres." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Destinatário não encontrado." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Não pode enviar mensagens directas a utilizadores que não sejam amigos." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Não auto-envie uma mensagem; basta lê-la baixinho a si próprio." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Nenhum estado encontrado com esse ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Este estado já é um favorito." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Não foi possível criar o favorito." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Esse estado não é um favorito." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Não foi possível eliminar o favorito." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Não foi possível seguir o utilizador: o perfil não foi encontrado." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Não foi possível seguir utilizador: %s já está na sua lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Não foi possível deixar de seguir utilizador: Utilizador não encontrado." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Não pode deixar de seguir-se a si próprio." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +#, fuzzy +msgid "Two valid IDs or nick names must be supplied." msgstr "Têm de ser fornecidos dois IDs ou nomes de utilizador válidos." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Não foi possível determinar o utilizador de origem." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Não foi possível encontrar o utilizador de destino." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "Utilizador só deve conter letras minúsculas e números. Sem espaços." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Utilizador já é usado. Tente outro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Utilizador não é válido." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Página de ínicio não é uma URL válida." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "Nome completo demasiado longo (máx. 255 caracteres)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "Descrição demasiado longa (máx. 140 caracteres)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Descrição demasiado longa (máx. %d caracteres)." +msgstr[1] "Descrição demasiado longa (máx. %d caracteres)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "Localidade demasiado longa (máx. 255 caracteres)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Demasiados nomes alternativos! Máx. %d." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Demasiados nomes alternativos! Máx. %d." +msgstr[1] "Demasiados nomes alternativos! Máx. %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Nome alternativo inválido: \"%s\"" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Nome alternativo \"%s\" já em uso. Tente outro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Um nome alternativo não pode ser igual ao nome do utilizador." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Grupo não foi encontrado." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Já é membro desse grupo." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Foi bloqueado desse grupo pelo gestor." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Não foi possível adicionar %1$s ao grupo %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Não é membro deste grupo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Não foi possível remover %1$s do grupo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grupos de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Grupos de %1$s de que %2$s é membro." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Grupos de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "Grupos em %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "O upload falhou." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "Chave de entrada especificada é inválida." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Não foi fornecido o parâmetro oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +#, fuzzy +msgid "Invalid request token." msgstr "Chave inválida." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Não tem autorização." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Ocorreu um problema com a sua sessão. Por favor, tente novamente." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" -msgstr "Alcunha ou senha inválidos!" +msgstr "Utilizador ou senha inválidos!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Erro na base de dados ao apagar o utilizador da aplicação OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Erro na base de dados ao inserir o utilizador da aplicação OAuth." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "A chave de pedido %s foi autorizada. Troque-a por uma chave de acesso." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "A chave de pedido %s foi negada e retirada." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Envio inesperado de formulário." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Uma aplicação pretende ligar-se à sua conta" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permitir ou negar acesso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"A aplicação <strong>%1$s</strong> por <strong>%2$s</strong> solicita " +"permissão para <strong>%3$s</strong> os dados da sua conta %4$s. Só deve " +"permitir acesso à sua conta %4$s a terceiros da sua confiança." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -594,240 +851,627 @@ msgstr "" "permissão para <strong>%3$s</strong> os dados da sua conta %4$s. Só deve " "permitir acesso à sua conta %4$s a terceiros da sua confiança." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +#, fuzzy +msgctxt "LEGEND" msgid "Account" msgstr "Conta" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Utilizador" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Senha" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Negar" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancelar" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +#, fuzzy +msgctxt "BUTTON" msgid "Allow" msgstr "Permitir" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "Permitir ou negar acesso à informação da sua conta." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Confirmação do mensageiro instantâneo cancelada." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "A chave de pedido %s foi negada e retirada." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Não tem autorização." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Não tem autorização." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Este método requer um POST ou DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Não pode apagar o estado de outro utilizador." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Nota não foi encontrada." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Não pode repetir a sua própria nota." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Já repetiu essa nota." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "Método da API não encontrado." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Formato não suportado." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Estado apagado." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Não foi encontrado um estado com esse ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Nota não pode ser apagada." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Apagar nota" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "O cliente tem de fornecer um parâmetro 'status' com um valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Demasiado longo. Tamanho máx. das notas é %d caracteres." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Demasiado longo. Tamanho máx. das notas é %d caracteres." +msgstr[1] "Demasiado longo. Tamanho máx. das notas é %d caracteres." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Não encontrado." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "Método da API não encontrado." -#: actions/apistatusesupdate.php:306 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." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Tamanho máx. das notas é %d caracteres, incluindo a URL do anexo." +msgstr[1] "Tamanho máx. das notas é %d caracteres, incluindo a URL do anexo." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato não suportado." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritas de %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s actualizações preferidas por %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "Não foi possível actualizar o grupo." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualizações que mencionam %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s actualizações em resposta a actualizações de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Notas públicas de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s actualizações de todos!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "Método não implementado." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetida para %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repetições de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas categorizadas com %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizações categorizadas com %1$s em %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Só o próprio utilizador pode ler a sua caixa de correio." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Procurar no conteúdo das notas" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Não existe nenhuma nota com essa identificação." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Método da API em desenvolvimento." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Método da API não encontrado." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Perfil não foi encontrado." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Não foi possível inserir nova subscrição." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Procurar no conteúdo das notas" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Desconhecida" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Adicionar às favoritas" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Perfil não foi encontrado." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membros do grupo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupos de que %s é membro" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Desconhecida" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Todos os membros" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ficheiro não foi encontrado." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Não foi possível eliminar o favorito." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Grupo não foi encontrado." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Todos os membros" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Método da API não encontrado." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Perfil não foi encontrado." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Não subscreveu esse perfil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Não foi possível apagar a auto-subscrição." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Pessoas que subscrevem %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tipo do ficheiro é desconhecido" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Anexo não foi encontrado." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." -msgstr "Alcunha não definida." +msgstr "Nome de utilizador não definido." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Tamanho não definido." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Tamanho inválido." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Pode carregar o seu avatar pessoal. O tamanho máximo do ficheiro é %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Utilizador sem perfil correspondente." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configurações do avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Antevisão" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +#, fuzzy +msgctxt "BUTTON" msgid "Delete" msgstr "Apagar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Carregar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +#, fuzzy +msgctxt "BUTTON" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Não foi carregado nenhum ficheiro." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Escolha uma área quadrada da imagem para ser o seu avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perdi os dados do nosso ficheiro." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar actualizado." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Falha ao actualizar avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar apagado." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Já bloqueou esse utilizador." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquear utilizador" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -839,175 +1483,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Não" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Não bloquear este utilizador" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Sim" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloquear este utilizador" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Não foi possível gravar informação do bloqueio." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Grupo não foi encontrado." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s perfis bloqueados" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Perfis bloqueados de %1$s, página %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Uma lista dos utilizadores com entrada bloqueada neste grupo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Desbloquear utilizador do grupo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +#, fuzzy +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Desbloquear este utilizador" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Publicar em %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Sem código de confimação." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Código de confirmação não encontrado" -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Esse código de confirmação não é para si!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Tipo do endereço %s não reconhecido." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Esse endereço já tinha sido confirmado." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Não foi possível actualizar o utilizador." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Não foi possível apagar a confirmação do endereço electrónico." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." +msgstr "Não foi possível apagar a confirmação do mensageiro instantâneo." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirmar endereço" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "O endereço \"%s\" foi confirmado para a sua conta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversação" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Tem de iniciar uma sessão para eliminar uma aplicação." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Aplicação não foi encontrada." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Não é o proprietário desta aplicação." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com a sua sessão." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Apagar aplicação" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1018,31 +1708,93 @@ msgstr "" "utilizadores em existência." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Não apagar esta aplicação" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Apagar esta aplicação" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Tem de iniciar uma sessão para deixar um grupo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nenhum utilizador ou ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Não é membro deste grupo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Não foi possível actualizar o grupo." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s deixou o grupo %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Apagar utilizador" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Tem a certeza de que quer apagar este utilizador? Todos os dados do " +"utilizador serão eliminados da base de dados, sem haver cópias." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Não apagar esta nota" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Apagar este utilizador" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Não iniciou sessão." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Nota não pode ser apagada." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1050,21 +1802,24 @@ msgstr "" "Está prestes a apagar permamentemente uma nota. Esta acção não pode ser " "desfeita." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Apagar nota" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Tem a certeza de que quer apagar esta nota?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Não apagar esta nota" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1095,64 +1850,75 @@ msgstr "Apagar este utilizador" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Estilo" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Configurações do estilo deste site StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "URL do logotipo inválida." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "URL do logotipo inválida." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema não está disponível: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Alterar logotipo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logotipo do site" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +#, fuzzy +msgid "SSL logo" +msgstr "Logotipo do site" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Alterar tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema do site" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "O tema para o site." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Tema personalizado" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" "Pode fazer o upload de um tema personalizado para o StatusNet, na forma de " "um arquivo .ZIP." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Alterar imagem de fundo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fundo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1162,75 +1928,84 @@ msgstr "" "é %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Ligar" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Desligar" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Ligar ou desligar a imagem de fundo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Repetir imagem de fundo em mosaico" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Alterar cores" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Conteúdo" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Links" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avançado" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalizado" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Usar predefinições" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Repor estilos predefinidos" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Repor predefinição" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Gravar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Gravar o estilo" @@ -1247,109 +2022,131 @@ msgstr "Adicionar às favoritas" msgid "No such document \"%s\"" msgstr "Documento \"%s\" não foi encontrado" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "Editar Aplicação" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Editar aplicação" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Tem de iniciar uma sessão para editar uma aplicação." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Aplicação não foi encontrada." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Use este formulário para editar a sua aplicação." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Nome é obrigatório." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "Nome é demasiado longo (máx. 255 caracteres)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Nome já é usado. Tente outro." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Descrição é obrigatória." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "URL de origem é demasiado longa." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "A URL de origem é inválida." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organização é obrigatória." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "Organização é demasiado longa (máx. 255 caracteres)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Página da organização é obrigatória." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Callback é demasiado longo." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "A URL de callback é inválida." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Não foi possível actualizar a aplicação." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Editar grupo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Tem de iniciar uma sessão para criar o grupo." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Tem de ser administrador para editar o grupo." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Use este formulário para editar o grupo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "descrição é demasiada extensa (máx. %d caracteres)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Nome alternativo inválido: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Não foi possível actualizar o grupo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Não foi possível criar os nomes alternativos." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Opções gravadas." @@ -1367,12 +2164,12 @@ msgstr "Defina como receberá mensagens electrónicas de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Endereço de correio electrónico" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Endereço de correio já confirmado." @@ -1381,14 +2178,14 @@ msgstr "Endereço de correio já confirmado." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Remover" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1396,18 +2193,12 @@ msgstr "" "A aguardar a confirmação deste endereço. Procure na sua caixa de entrada (ou " "na caixa de spam!) uma mensagem com mais instruções." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancelar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "" "Endereço de correio electrónico, por ex. \"nomedeutilizador@exemplo.pt\"" @@ -1415,7 +2206,7 @@ msgstr "" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1423,114 +2214,121 @@ msgstr "Adicionar" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Correio recebido" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Quero publicar notas por correio electrónico." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Envie mensagens electrónicas para este endereço para publicar notas." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Crie um endereço electrónico novo para publicações; cancela o antigo." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Novo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferências de correio electrónico" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Enviem-me notificação electrónica das novas subscrições." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Enviem-me notificação electrónica quando uma nota minha é adicionada às " "favoritas." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "Enviem-me notificação electrónica quando me enviarem uma mensagem privada." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" "Enviem-me notificação electrónica quando me enviarem uma \"resposta-@\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Permitir que amigos me toquem e enviem mensagens electrónicas." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Quero publicar notas por correio electrónico." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." -msgstr "Publicar uma MicroID para o meu endereço electrónico." +msgstr "Publicar um MicroID para o meu endereço electrónico." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Preferências de correio electrónico foram gravadas." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Sem endereço de correio electrónico." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Não é possível normalizar esse endereço electrónico" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Correio electrónico é inválido." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Esse já é o seu endereço electrónico." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Esse endereço electrónico já pertence a outro utilizador." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Não foi possível inserir o código de confirmação." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1542,50 +2340,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Nenhuma confirmação pendente para cancelar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Esse endereço de correio electrónico está errado." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Não foi possível apagar a confirmação do endereço electrónico." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Confirmação de correio electrónico cancelada." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Esse não é o seu endereço electrónico." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "O endereço de correio electrónico foi removido." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Sem endereço electrónico de entrada." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Não foi possível actualizar o registo do utilizador." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Endereço electrónico de entrada foi removido." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Adicionado endereço electrónico de entrada novo." @@ -1593,11 +2397,11 @@ msgstr "Adicionado endereço electrónico de entrada novo." msgid "This notice is already a favorite!" msgstr "Esta nota já é uma favorita!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Retirar das favoritas" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Notas populares" @@ -1634,7 +2438,7 @@ msgstr "" "uma nota às favoritas!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Notas favoritas de %s" @@ -1703,7 +2507,7 @@ msgstr "Não foi possível converter a chave de pedido numa chave de acesso." msgid "Remote service uses unknown version of OMB protocol." msgstr "Serviço remoto usa uma versão desconhecida do protocolo OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Erro ao actualizar o perfil remoto." @@ -1731,19 +2535,23 @@ msgstr "Não pode atribuir funções aos utilizadores neste site." msgid "User already has this role." msgstr "O utilizador já tem esta função." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Não foi especificado um perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Não foi encontrado um perfil com essa identificação." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Não foi especificado um grupo." @@ -1760,7 +2568,7 @@ msgstr "Acesso do utilizador ao grupo já foi bloqueado." msgid "User is not a member of group." msgstr "Utilizador não é membro do grupo." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloquear acesso do utilizador ao grupo" @@ -1809,8 +2617,10 @@ msgstr "" "Personalize o aspecto do seu grupo com uma imagem de fundo e uma paleta de " "cores à sua escolha." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Não foi possível actualizar o estilo." @@ -1830,6 +2640,14 @@ msgstr "" "Pode carregar uma imagem para logotipo do seu grupo. O tamanho máximo do " "ficheiro é %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Carregar" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Cortar" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Escolha uma área quadrada da imagem para ser o logotipo." @@ -1842,49 +2660,56 @@ msgstr "Logotipo actualizado." msgid "Failed updating logo." msgstr "Não foi possível actualizar o logotipo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membros do grupo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros do grupo %1$s, página %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Uma lista dos utilizadores neste grupo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Gestor" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Tornar utilizador o gestor do grupo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Tornar Gestor" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Tornar este utilizador um gestor" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Notas de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1956,15 +2781,18 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e [criar o grupo](%%action." "newgroup%%) você mesmo!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Só um gestor pode desbloquear membros de um grupo." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Acesso do utilizador ao grupo não foi bloqueado." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erro ao remover o bloqueio." @@ -2014,7 +2842,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2025,63 +2856,63 @@ msgstr "" "MI ou no GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferências de MI" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Enviar-me notas via Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Publicar uma nota quando o meu estado no Jabber/GTalk se altera." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "Enviar-me via Jabber/GTalk respostas de pessoas que não subscrevo." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "Publicar uma MicroID para o meu endereço Jabber/GTalk." +msgstr "Publicar um MicroID para o meu endereço Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Preferências gravadas." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Não introduziu o Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Não é possível normalizar esse Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Jabber ID não é válido" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Esse já é o seu Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "O Jabber ID introduzido já pertence a outro utilizador." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2091,28 +2922,28 @@ msgstr "" "aprovar que %s envie mensagens para si." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Esse endereço de mensagens instantâneas está errado." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Não foi possível apagar a confirmação do mensageiro instantâneo." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Confirmação do mensageiro instantâneo cancelada." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Esse não é o seu Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "O endereço do mensageiro instantâneo foi removido." @@ -2132,52 +2963,83 @@ msgstr "" "Esta é a sua caixa de entrada, que apresenta as mensagens privadas que " "recebeu." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Convites foram desabilitados." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Tem de iniciar uma sessão para convidar outros utilizadores a usarem o site %" "s." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." msgstr "Endereço electrónico inválido: %s" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" msgstr "Convite(s) enviado(s)" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Convidar novos utilizadores" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Já subscreveu estes utilizadores:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Já subscreveu estes utilizadores:" +msgstr[1] "Já subscreveu estes utilizadores:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Estas pessoas já são utilizadores e foram automaticamente subscritos por si:" +msgstr[1] "" "Estas pessoas já são utilizadores e foram automaticamente subscritos por si:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Convite(s) enviado(s) para as seguintes pessoas:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Convite(s) enviado(s) para as seguintes pessoas:" +msgstr[1] "Convite(s) enviado(s) para as seguintes pessoas:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2185,42 +3047,53 @@ msgstr "" "Receberá uma notificação quando os seus convidados aceitarem o convite e se " "registarem no site. Obrigado por aumentar a comunidade!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Use este formulário para convidar amigos e colegas a usar este serviço." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Endereços de correio electrónico" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Endereços dos amigos a convidar (um por linha)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Mensagem pessoal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s convidou-o a juntar-se a ele no %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2280,13 +3153,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Tem de iniciar uma sessão para se juntar a um grupo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Nenhuma alcunha ou utilizador." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s juntou-se ao grupo %2$s" @@ -2295,17 +3162,121 @@ msgstr "%1$s juntou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Tem de iniciar uma sessão para deixar um grupo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Não é um membro desse grupo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s deixou o grupo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Texto de boas-vindas inválido. Tamanho máx. é 255 caracteres." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privado" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Sessão já foi iniciada." @@ -2326,11 +3297,11 @@ msgstr "Entrar" msgid "Login to site" msgstr "Iniciar sessão no site" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Lembrar-me neste computador" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "De futuro, iniciar sessão automaticamente. Não usar em computadores " @@ -2381,66 +3352,77 @@ msgstr "Não é possível tornar %1$s administrador do grupo %2$s." msgid "No current status." msgstr "Sem estado actual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +#, fuzzy +msgid "New application" msgstr "Aplicação Nova" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Tem de iniciar uma sessão para registar uma aplicação." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Use este formulário para registar uma nova aplicação." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "É necessária a URL de origem." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Não foi possível criar a aplicação." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Grupo novo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Use este formulário para criar um grupo novo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Mensagem nova" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Não pode enviar uma mensagem a este utilizador." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Sem conteúdo!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Não especificou um destinatário." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Não auto-envie uma mensagem; basta lê-la baixinho a si próprio." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Mensagem enviada" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Mensagem directa para %s foi enviada." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Erro do Ajax" @@ -2448,7 +3430,7 @@ msgstr "Erro do Ajax" msgid "New notice" msgstr "Nota nova" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Nota publicada" @@ -2499,8 +3481,10 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Actualizações que contêm o termo \"%1$s\" em %2$s!" #: actions/nudge.php:85 +#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Este utilizador não aceita toques ou ainda não confirmou ou forneceu um " "correio electrónico." @@ -2513,73 +3497,97 @@ msgstr "Toque enviado" msgid "Nudge sent!" msgstr "Toque enviado!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Tem de iniciar uma sessão para listar as suas aplicações." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplicações OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplicações que registou" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Ainda não registou nenhuma aplicação." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Aplicações ligadas" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Permitiu que as seguintes aplicações acedam à sua conta." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Não é utilizador dessa aplicação." -#: actions/oauthconnectionssettings.php:186 -#, php-format -msgid "Unable to revoke access for app: %s." +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." msgstr "Não foi possível retirar acesso da aplicação: %s" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Não permitiu que nenhuma aplicação use a sua conta." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Programadores podem editar as configurações de inscrição das suas aplicações " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Nota não tem perfil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Estado de %1$s em %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "O tipo de conteúdo %s não é suportado." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Só URLs %s sobre HTTP simples, por favor." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -2591,36 +3599,46 @@ msgstr "Pesquisa de Pessoas" msgid "Notice Search" msgstr "Pesquisa de Notas" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Outras configurações" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Gerir várias outras opções." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (serviço gratuito)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Encurtar URLs com" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Serviço de encurtamento que será usado automaticamente" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Ver estilos para o perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Mostrar ou esconder estilos para o perfil." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Serviço de encurtamento de URLs demasiado extenso (máx. 50 caracteres)" #: actions/otp.php:69 @@ -2683,7 +3701,7 @@ msgid "6 or more characters" msgstr "6 ou mais caracteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmação" @@ -2695,11 +3713,11 @@ msgstr "Repita a senha nova" msgid "Change" msgstr "Modificar" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Senha tem de ter 6 ou mais caracteres." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Senhas não coincidem." @@ -2719,156 +3737,291 @@ msgstr "Não é possível guardar a nova senha." msgid "Password saved." msgstr "Senha gravada." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Localizações" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Configurações de localização e servidor deste site StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Sem acesso de leitura do directório do tema: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Sem acesso de escrita no directório do avatar: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Sem acesso de escrita no directório do fundo: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Sem acesso de leitura ao directório das línguas: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servidor SSL inválido. O tamanho máximo é 255 caracteres." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Site" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servidor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nome do servidor do site." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Localização" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +#, fuzzy +msgid "Site path." msgstr "Localização do site" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Localização das línguas" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Directório do tema" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +#, fuzzy +msgid "Directory path to locales." msgstr "Localização do directório das línguas" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URLs bonitas" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Usar URLs bonitas (mais legíveis e memoráveis)" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servidor do tema" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "O tema para o site." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Localização do tema" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Directório do tema" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatares" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servidor do avatar" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Localização do avatar" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Directório do avatar" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Fundos" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servidor de fundos" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Localização dos fundos" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Directório dos fundos" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nunca" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Às vezes" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Usar SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quando usar SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servidor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Localização do site" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Directório do tema" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Localização do directório das línguas" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatares" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servidor do avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "O tema para o site." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Localização do avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Falha ao actualizar avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Directório do avatar" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Localização do directório das línguas" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Fundos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "O tema para o site." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Localização do directório das línguas" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Anexos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "O tema para o site." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Sem anexos." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "O tema para o site." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Localização do directório das línguas" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nunca" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Às vezes" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Usar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." +msgstr "Quando usar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +#, fuzzy +msgid "Server to direct SSL requests to." msgstr "Servidor para onde encaminhar pedidos SSL" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Gravar localizações" @@ -2906,139 +4059,184 @@ msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’. msgstr "" "A licença ‘%1$s’ da nota não é compatível com a licença ‘%2$s’ do site." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configurações do perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Pode actualizar aqui a informação do seu perfil pessoal, para que as pessoas " "saibam mais sobre si." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Informação do perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 letras minúsculas ou números, sem pontuação ou espaços" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nome completo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Página pessoal" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL da sua página pessoal, blogue ou perfil noutro site na internet" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descreva-se e aos seus interesses (máx. 140 caracteres)" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descreva-se e aos seus interesses (máx. 140 caracteres)" +msgstr[1] "Descreva-se e aos seus interesses (máx. 140 caracteres)" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Descreva-se e aos seus interesses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografia" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Localidade" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Onde está, por ex. \"Cidade, Região, País\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Compartilhar a minha localização presente ao publicar notas" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Categorias" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Língua" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Língua preferida" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso horário" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Em que fuso horário se encontra normalmente?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Subscrever automaticamente quem me subscreva (óptimo para não-humanos)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Biografia demasiado extensa (máx. %d caracteres)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Biografia demasiado extensa (máx. %d caracteres)." +msgstr[1] "Biografia demasiado extensa (máx. %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso horário não foi seleccionado." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Língua é demasiado extensa (máx. 50 caracteres)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Categoria inválida: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível actualizar o utilizador para subscrição automática." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Não foi possível gravar as preferências de localização." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Não foi possível gravar o perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Não foi possível gravar as categorias." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Configurações gravadas." @@ -3117,25 +4315,38 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) baseado no programa de Software Livre " "[StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Nuvem de categorias pública" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Estas são as categorias recentes mais populares em %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Ainda ninguém publicou uma nota com uma [categoria](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Seja a primeira pessoa a publicar uma!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3144,7 +4355,7 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e ser a primeira pessoa a " "publicar uma!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Nuvem de categorias" @@ -3201,7 +4412,7 @@ msgstr "Utilizador ou endereço de correio electrónico" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" -"A sua utilizador neste servidor, ou o seu correio electrónico registado." +"O seu utilizador neste servidor, ou o seu correio electrónico registado." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -3233,7 +4444,7 @@ msgstr "Reiniciar" #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." -msgstr "Introduza uma utilizador ou um endereço de correio electrónico." +msgstr "Introduza um utilizador ou um endereço de correio electrónico." #: actions/recoverpassword.php:282 msgid "No user with that email address or username." @@ -3261,14 +4472,15 @@ msgid "Unexpected password reset." msgstr "Reinício inesperado da senha." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Senha tem de ter 6 ou mais caracteres." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A senha e a confirmação não coincidem." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Erro ao configurar utilizador." @@ -3276,7 +4488,7 @@ msgstr "Erro ao configurar utilizador." msgid "New password successfully saved. You are now logged in." msgstr "A senha nova foi gravada com sucesso. Iniciou uma sessão." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Desculpe, só pessoas convidadas se podem registar." @@ -3288,7 +4500,7 @@ msgstr "Desculpe, código de convite inválido." msgid "Registration successful" msgstr "Registo efectuado" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registar" @@ -3296,19 +4508,19 @@ msgstr "Registar" msgid "Registration not allowed." msgstr "Registo não é permitido." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Não se pode registar se não aceita a licença." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Correio electrónico já existe." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nome de utilizador ou senha inválidos." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3316,60 +4528,64 @@ msgstr "" "Com este formulário pode criar uma conta nova. Poderá então publicar notas e " "ligar-se a amigos e colegas. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 letras minúsculas ou números, sem pontuação ou espaços. Obrigatório." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 ou mais caracteres. Obrigatório." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Repita a senha acima. Obrigatório." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Correio" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Usado apenas para actualizações, anúncios e recuperação da senha" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nome mais longo, de preferência o seu nome \"verdadeiro\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL da sua página pessoal, blogue ou perfil noutro site na internet" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Compreendo que o conteúdo e dados do site %1$s são privados e confidenciais." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" "Os meus textos e ficheiros estão protegidos pelos direitos de autor de %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" "Os meus textos e ficheiros permanecem protegidos pelos meus próprios " "direitos de autor." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Todos os direitos reservados." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3379,7 +4595,7 @@ msgstr "" "estes dados privados: senha, endereço de correio electrónico, endereço de " "mensageiro instantâneo, número de telefone." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3412,7 +4628,7 @@ msgstr "" "\n" "Obrigado por se ter registado e esperamos que se divirta usando este serviço." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3457,7 +4673,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil noutro serviço de microblogues compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Subscrever" @@ -3495,7 +4711,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetida" @@ -3504,7 +4720,7 @@ msgid "Repeated!" msgstr "Repetida!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respostas a %s" @@ -3582,13 +4798,13 @@ msgstr "Utilizador já está impedido de criar notas públicas." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessões" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Configurações da sessão para este site StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3607,7 +4823,6 @@ msgid "Turn on debugging output for sessions." msgstr "Ligar a impressão de dados de depuração, para sessões." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Gravar configurações do site" @@ -3620,28 +4835,29 @@ msgid "Application profile" msgstr "Perfil da aplicação" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ícone" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nome" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organização" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3659,6 +4875,11 @@ msgstr "Operações da aplicação" msgid "Reset key & secret" msgstr "Reiniciar chave e segredo" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Apagar" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informação da aplicação" @@ -3753,77 +4974,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Esta é uma forma de partilhar aquilo de que gosta." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Grupo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Grupo %1$s, página %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Anotação" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Nomes alternativos" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Acções do grupo" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de notas do grupo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de notas do grupo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de notas do grupo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF do grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "Criado" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Membros" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3832,14 +5082,17 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -"**%s** é um grupo de utilizadores no site %%site.name%%, um serviço de " +"**%s** é um grupo de utilizadores no site %%%%site.name%%%%, um serviço de " "[microblogues](http://en.wikipedia.org/wiki/Micro-blogging) baseado no " "programa de Software Livre [StatusNet](http://status.net/). Os membros deste " "grupo partilham mensagens curtas acerca das suas vidas e interesses. " -"[Registe-se agora](%%action.register%%) para se juntar a este grupo e a " -"muitos mais! ([Saber mais](%%doc.help%%))" +"[Registe-se agora](%%%%action.register%%%%) para se juntar a este grupo e a " +"muitos mais! ([Saber mais](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3847,29 +5100,36 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" -"**%s** é um grupo de utilizadores no site %%site.name%%, um serviço de " +"**%s** é um grupo de utilizadores no site %%%%site.name%%%%, um serviço de " "[microblogues](http://en.wikipedia.org/wiki/Micro-blogging) baseado no " "programa de Software Livre [StatusNet](http://status.net/). Os membros deste " "grupo partilham mensagens curtas acerca das suas vidas e interesses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Gestores" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Mensagem não foi encontrada." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Só o remetente e o destinatário podem ler esta mensagem." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Mensagem para %1$s a %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Mensagem de %1$s a %2$s" @@ -3878,47 +5138,67 @@ msgstr "Mensagem de %1$s a %2$s" msgid "Notice deleted." msgstr "Avatar actualizado." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr " categorizou %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, página %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Notas categorizadas com %1$s, página %2$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, página %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Fonte de notas de %1$s com a categoria %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Fonte de notas para %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Fonte de notas para %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Fonte de notas para %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF para %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Estas são as notas de %1$s, mas %2$s ainda não publicou nenhuma." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3926,7 +5206,9 @@ msgstr "" "Viu algo de interessante ultimamente? Como ainda não publicou nenhuma nota, " "esta seria uma óptima altura para começar :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3935,7 +5217,9 @@ msgstr "" "Pode tentar dar um toque em %1$s ou [endereçar-lhe uma nota](%%%%action." "newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3943,24 +5227,27 @@ 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 %%site.name%%, um serviço de [microblogues]" +"**%s** tem uma conta no site %%%%site.name%%%%, um serviço de [microblogues]" "(http://en.wikipedia.org/wiki/Micro-blogging) baseado no programa de " -"Software Livre [StatusNet](http://status.net/). [Registe-se agora](%%action." -"register%%) para seguir as notas de **%s** e de muitos mais! ([Saber mais](%%" -"doc.help%%))" +"Software Livre [StatusNet](http://status.net/). [Registe-se agora](%%%%" +"action.register%%%%) para seguir as notas de **%s** e de muitos mais! " +"([Saber mais](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" -"**%s** tem uma conta no site %%site.name%%, um serviço de [microblogues]" +"**%s** tem uma conta no site %%%%site.name%%%%, um serviço de [microblogues]" "(http://en.wikipedia.org/wiki/Micro-blogging) baseado no programa de " "Software Livre [StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetições de %s" @@ -4074,31 +5361,40 @@ msgstr "" "Quanto tempo os utilizadores terão de esperar (em segundos) para publicar a " "mesma coisa outra vez." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Aviso do Site" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Editar mensagem do site" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Não foi possível gravar o aviso do site." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Tamanho máximo do aviso do site é 255 caracteres." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Texto do aviso do site" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "Texto do aviso do site (máx. 255 caracteres; pode usar HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Gravar aviso do site" @@ -4259,7 +5555,7 @@ msgstr "Nenhum código introduzido" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Instantâneos" @@ -4315,12 +5611,14 @@ msgstr "Instantâneos serão enviados para esta URL" msgid "Save snapshot settings" msgstr "Gravar configurações do instantâneo" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Não subscreveu esse perfil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Não foi possível gravar a subscrição." @@ -4328,10 +5626,6 @@ msgstr "Não foi possível gravar a subscrição." msgid "This action only accepts POST requests." msgstr "Esta operação só aceita pedidos POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Perfil não foi encontrado." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Não pode subscrever um perfil remoto OMB 0.1 com esta operação." @@ -4340,39 +5634,56 @@ msgstr "Não pode subscrever um perfil remoto OMB 0.1 com esta operação." msgid "Subscribed" msgstr "Subscrito" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Subscritores de %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Subscritores de %1$s, página %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Estas são as pessoas que escutam as suas notas." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Estas são as pessoas que escutam as notas de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Não tem subscritores. Tente subscrever pessoas que conhece e talvez elas lhe " "façam o mesmo favor" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s não tem subscritores. Quer ser o primeiro?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4381,26 +5692,31 @@ msgstr "" "%s não tem subscritores. Quer [registar uma conta](%%action.register%%) e " "ser o primeiro?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Subscrições de %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Subscrições de %1$s, página %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Estas são as pessoas cujas notas está a escutar." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Estas são as pessoas cujas notas %s está a escutar." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4416,16 +5732,27 @@ msgstr "" "twittersettings%%) pode subscrever automaticamente as pessoas que já segue " "lá." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s não está a ouvir ninguém." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Fonte de notas para %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4463,7 +5790,7 @@ msgid "User profile" msgstr "Perfil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4527,74 +5854,96 @@ msgstr "" "site." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Utilizador" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Configurações do utilizador para este site StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Limite da biografia inválido. Tem de ser numérico." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Texto de boas-vindas inválido. Tamanho máx. é 255 caracteres." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Subscrição predefinida é inválida: '%1$s' não é utilizador." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Limite da Biografia" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Tamanho máximo de uma biografia em caracteres." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Utilizadores novos" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Boas-vindas a utilizadores novos" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Texto de boas-vindas a utilizadores novos (máx. 255 caracteres)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Subscrição predefinida" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Novos utilizadores subscrevem automaticamente este utilizador." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Convites" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Convites habilitados" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Permitir, ou não, que utilizadores convidem utilizadores novos." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizar subscrição" @@ -4609,7 +5958,9 @@ msgstr "" "subscrever as notas deste utilizador. Se não fez um pedido para subscrever " "as notas de alguém, simplesmente clique \"Rejeitar\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licença" @@ -4697,11 +6048,13 @@ msgstr "Não é possível ler a URL do avatar ‘%s’." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipo de imagem incorrecto para o avatar da URL ‘%s’." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Estilo do perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4739,7 +6092,7 @@ msgstr "Tente [pesquisar grupos](%%action.groupsearch%%) e juntar-se a eles." #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Actualizações de %1#s a %2$s!" @@ -4799,7 +6152,7 @@ msgid "Plugins" msgstr "Plugins" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versão" @@ -4807,63 +6160,115 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autores" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Eleger como favorita" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) adicionou a sua nota às favoritas." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Não é possível processar a URL '$s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "o Robin acha que algo é impossível." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Nenhum ficheiro pode ter mais de %1$d bytes e o que enviou tinha %2$d bytes. " +"Tente enviar uma versão mais pequena." +msgstr[1] "" "Nenhum ficheiro pode ter mais de %1$d bytes e o que enviou tinha %2$d bytes. " "Tente enviar uma versão mais pequena." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +"Um ficheiro desta dimensão excederia a sua quota de utilizador de %d bytes." +msgstr[1] "" "Um ficheiro desta dimensão excederia a sua quota de utilizador de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Um ficheiro desta dimensão excederia a sua quota mensal de %d bytes." +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"Um ficheiro desta dimensão excederia a sua quota mensal de %d bytes." +msgstr[1] "" +"Um ficheiro desta dimensão excederia a sua quota mensal de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Nome de ficheiro inválido." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Entrada no grupo falhou." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Não faz parte do grupo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Saída do grupo falhou." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Erro ao guardar utilizador; inválido." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Juntar-me" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4882,17 +6287,17 @@ msgid "No database name or DSN found anywhere." msgstr "Não foi encontrado nenhum nome de base de dados ou DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Está proibido de enviar mensagens directas." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Não foi possível inserir a mensagem." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Não foi possível actualizar a mensagem com a nova URI." @@ -4904,23 +6309,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Não existe o perfil (%1$d) para a nota (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Erro na base de dados ao inserir o elemento criptográfico: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problema na gravação da nota. Demasiado longa." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problema na gravação da nota. Utilizador desconhecido." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4928,7 +6333,7 @@ msgstr "" "alguns minutos." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4937,36 +6342,51 @@ msgstr "" "publicar daqui a alguns minutos." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Está proibido de publicar notas neste site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problema na gravação da nota." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." msgstr "O tipo fornecido ao método saveKnownGroups é incorrecto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problema na gravação da caixa de entrada do grupo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Não foi possível gravar a informação do grupo local." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -4974,7 +6394,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4987,301 +6407,343 @@ msgid "Missing profile." msgstr "Perfil não existe." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Não foi possível gravar a categoria." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Foi bloqueado de fazer subscrições" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Já subscrito!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "O utilizador bloqueou-o." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Não subscrito!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Não foi possível apagar a auto-subscrição." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Não foi possível apagar a chave OMB da subscrição." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Não foi possível apagar a subscrição." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s está agora a ouvir as suas notas em %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Nenhum utilizador único definido para o modo de utilizador único." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Não foi possível criar o grupo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Não foi possível configurar a URI do grupo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Não foi possível configurar membros do grupo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Não foi possível gravar a informação do grupo local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Modificar as suas definições de perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Carregar um avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Modificar a sua senha" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Alterar manuseamento de email" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Altere o estilo do seu perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Outras opções" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Outras" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Página sem título" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navegação primária deste site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e notas dos amigos" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Pessoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Altere o seu endereço electrónico, avatar, senha, perfil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Conta" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ligar aos serviços" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Ligar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Alterar a configuração do site" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Gestor" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amigos e colegas para se juntarem a si em %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar esta sessão" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Criar uma conta" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registar" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Iniciar uma sessão" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Entrar" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procurar pessoas ou pesquisar texto" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Pesquisa" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Aviso do site" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Vistas locais" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Aviso da página" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navegação secundária deste site" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Ajuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Sobre" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Termos" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacidade" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" -msgstr "Código" +msgstr "Código fonte" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contacto" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Emblema" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licença de software do StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5291,13 +6753,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** é um serviço de microblogues." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5309,20 +6774,20 @@ msgstr "" "fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licença de conteúdos do site" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O conteúdo e dados do site %1$s são privados e confidenciais." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" @@ -5330,14 +6795,15 @@ msgstr "" "direitos reservados." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Direitos de autor sobre o conteúdo e dados detidos pelos contribuidores. " "Todos os direitos reservados." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" @@ -5345,313 +6811,424 @@ msgstr "" "licença %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginação" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Posteriores" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Anteriores" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "Era esperado um elemento raiz da fonte, mas foi recebido um documento XML " "inteiro." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Ainda não é possível processar conteúdos remotos." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Ainda não é possível processar conteúdo XML embutido." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Ainda não é possível processar conteúdo Base64 embutido." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Não pode fazer alterações a este site." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Não foi possível apagar a configuração do estilo." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuração básica do site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuração do estilo" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Estilo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuração do utilizador" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Utilizador" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuração de acesso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuração das localizações" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuração das sessões" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Editar aviso do site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configuração dos instântaneos" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "API requer acesso de leitura e escrita, mas só tem acesso de leitura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Editar aplicação" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Nenhuma aplicação para essa chave de consumidor." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Código de acesso incorrecto." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Nenhum utilizador para esse código." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Não foi possível autenticá-lo." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Não foi possível criar os nomes alternativos." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Não foi possível criar a aplicação." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Não foi possível inserir a mensagem." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Erro na base de dados ao inserir o utilizador da aplicação OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Tentou revogar um código desconhecido." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Falha ao eliminar código revogado." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Ícone para esta aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Descreva a sua aplicação em %d caracteres" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Descreva a sua aplicação em %d caracteres" +msgstr[1] "Descreva a sua aplicação em %d caracteres" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Descreva a sua aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL da página desta aplicação" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL de origem" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organização responsável por esta aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL da página desta organização" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL para onde reencaminhar após autenticação" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Browser" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipo da aplicação, browser ou desktop" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Leitura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Leitura e escrita" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "Acesso por omissão para esta aplicação: leitura ou leitura e escrita" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancelar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "leitura e escrita" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "leitura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprovado a %1$s - acesso \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Retirar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Anexos" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Fornecedor" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Notas em que este anexo aparece" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Categorias para este anexo" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Não foi possível mudar a palavra-chave" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "Não é permitido mudar a palavra-chave" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloquear" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Erro do Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Comando terminado" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Comando falhou" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Não existe nenhuma nota com essa identificação" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Não existe nenhuma nota com essa identificação." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Utilizador não tem nenhuma última nota" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Utilizador não tem nenhuma última nota." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Não foi encontrado um utilizador com a alcunha %s" +msgid "Could not find a user with nickname %s." +msgstr "Não foi encontrado um utilizador com o nome %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Não foi encontrado um utilizador local com a alcunha %s" +msgid "Could not find a local user with nickname %s." +msgstr "Não foi encontrado nenhum utilizador local com o nome %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Desculpe, este comando ainda não foi implementado." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Não faz muito sentido tocar-nos a nós mesmos!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Cotovelada enviada a %s" +msgid "Nudge sent to %s." +msgstr "Toque enviado para %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5662,55 +7239,64 @@ msgstr "" "Subscritores: %2$s\n" "Notas: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Nota marcada como favorita." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Já é membro desse grupo" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Não foi possível juntar o utilizador %1$s ao grupo %2$s" +msgid "%1$s joined group %2$s." +msgstr "%1$s juntou-se ao grupo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Não foi possível remover %1$s do grupo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s deixou o grupo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Localidade: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Página pessoal: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5719,146 +7305,174 @@ msgstr "" "%s é um perfil remoto; só pode enviar mensagens directas a utilizadores no " "mesmo servidor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." +msgstr[1] "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Mensagem directa para %s enviada" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Erro no envio da mensagem directa." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Não pode repetir a sua própria nota" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Já repetiu essa nota" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Nota de %s repetida" +msgid "Notice from %s repeated." +msgstr "Nota de %s repetida." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Erro ao repetir nota." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Nota demasiado extensa - máx. %d caracteres, enviou %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Nota demasiado extensa - máx. %1$d caracteres, enviou %2$d." +msgstr[1] "Nota demasiado extensa - máx. %1$d caracteres, enviou %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Resposta a %s enviada" +msgid "Reply to %s sent." +msgstr "Resposta a %s enviada." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Erro ao gravar nota." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Introduza o nome do utilizador para subscrever" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Introduza o nome do utilizador para subscrever." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Não pode subscrever perfis OMB por comando." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Subscreveu %s" +msgid "Subscribed to %s." +msgstr "Subscreveu %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Introduza o nome do utilizador para deixar de subscrever" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Introduza o nome do utilizador para deixar de subscrever." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Deixou de subscrever %s" +msgid "Unsubscribed from %s." +msgstr "Deixou de subscrever %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Comando ainda não implementado." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notificação desligada." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Não foi possível desligar a notificação." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notificação ligada." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Não foi possível ligar a notificação." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Comando para iniciar sessão foi desactivado" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Comando para iniciar sessão foi desactivado." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" -"Esta ligação é utilizável uma única vez e só durante os próximos 2 minutos: %" -"s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "O link é utilizável uma única vez e só é válido durante 2 minutos: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Deixou de subscrever %s" +msgid "Unsubscribed %s." +msgstr "Subscrição de %s cancelada." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Não subscreveu ninguém." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Subscreveu esta pessoa:" msgstr[1] "Subscreveu estas pessoas:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Ninguém subscreve as suas notas." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Esta pessoa subscreve as suas notas:" msgstr[1] "Estas pessoas subscrevem as suas notas:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Não está em nenhum grupo." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Está no grupo:" msgstr[1] "Está nos grupos:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5938,50 +7552,77 @@ msgstr "" "tracks - ainda não implementado.\n" "tracking - ainda não implementado.\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Ficheiro de configuração não encontrado. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "Procurei ficheiros de configuração nos seguintes sítios: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Talvez queira correr o instalador para resolver esta questão." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Ir para o instalador." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Actualizações por mensagem instantânea (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Actualizações por SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Ligações" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Aplicações ligadas autorizadas" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Erro de base de dados" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Carregar ficheiro" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5989,41 +7630,60 @@ msgstr "" "Pode carregar uma imagem de fundo pessoal. O tamanho máximo do ficheiro é " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Ligar" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Desligar" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Reiniciar" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Predefinições do estilo repostas" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Retirar esta nota das favoritas" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Eleger esta nota como favorita" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Eleger como favorita" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportar dados" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6054,8 +7714,13 @@ msgstr "Prosseguir" msgid "Grant this user the \"%s\" role" msgstr "Atribuir a este utilizador a função \"%s\"" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 letras minúsculas ou números, sem pontuação ou espaços" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL da página ou do blogue, deste grupo ou assunto" #: lib/groupeditform.php:168 @@ -6063,62 +7728,116 @@ msgid "Describe the group or topic" msgstr "Descreva o grupo ou assunto" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Descreva o grupo ou o assunto em %d caracteres" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Descreva o grupo ou o assunto em %d caracteres" +msgstr[1] "Descreva o grupo ou o assunto em %d caracteres" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Localidade do grupo, se aplicável, por ex. \"Cidade, Região, País\"" -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" -"Utilizadors extra para o grupo, separadas por vírgulas ou espaços, máx. %d" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Nomes adicionais para o grupo, separados por vírgulas ou espaços, máx. %d" +msgstr[1] "" +"Nomes adicionais para o grupo, separados por vírgulas ou espaços, máx. %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupo" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupo %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membros" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membros do grupo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Bloqueado" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s utilizadores bloqueados" +msgstr "Utilizadores bloqueados de %s" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Editar propriedades do grupo %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Logotipo" +msgstr "Logótipo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Adicionar ou editar o logotipo de %s" +msgstr "Adicionar ou editar o logótipo de %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Adicionar ou editar o design de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupos com mais membros" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupos com mais notas" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Categorias nas notas do grupo %s" @@ -6132,38 +7851,57 @@ msgstr "Esta página não está disponível num formato que você aceite" msgid "Unsupported image file format." msgstr "Formato do ficheiro da imagem não é suportado." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Esse ficheiro é demasiado grande. O tamanho máximo de ficheiro é %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Transferência parcial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Ocorreu um erro de sistema ao transferir o ficheiro." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ficheiro não é uma imagem ou está corrompido." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Perdi o nosso ficheiro." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tipo do ficheiro é desconhecido" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" +msgstr[1] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" +msgstr[1] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6175,10 +7913,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Origem da caixa de entrada desconhecida \"%s\"." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Juntar-me" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Afastar-me" @@ -6191,27 +7925,29 @@ msgstr "Iniciar sessão com um nome de utilizador e senha" msgid "Sign up for a new account" msgstr "Registar uma conta nova" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmação do endereço electrónico" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Olá, %s.\n" "\n" @@ -6226,13 +7962,16 @@ msgstr "" "Obrigado pelo tempo que dedicou, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s está agora a ouvir as suas notas em %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6242,9 +7981,13 @@ msgstr "" "sua lista de subscritores e reportá-la como spam aos administradores do site " "em %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6252,10 +7995,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s está agora a ouvir as suas notas em %2$s.\n" "\n" @@ -6269,21 +8012,25 @@ msgstr "" "Altere o seu endereço de correio electrónico ou as opções de notificação em %" "8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Novo endereço electrónico para publicar no site %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6292,7 +8039,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Tem um novo endereço electrónico para fazer publicações no site %1$s.\n" "\n" @@ -6303,31 +8050,36 @@ msgstr "" "Melhores cumprimentos,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Estado de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmação SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: confirme que este número de telefone é seu com este código:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "%s envia-lhe um toque" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6354,14 +8106,18 @@ msgstr "" "Graciosamente,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nova mensagem privada de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6394,14 +8150,19 @@ msgstr "" "Profusos cumprimentos,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) adicionou a sua nota às favoritas." -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6439,7 +8200,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6450,13 +8211,20 @@ msgstr "" "\n" "\t%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) enviou uma nota à sua atenção" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6519,9 +8287,9 @@ msgstr "" "conversa com outros utilizadores. Outros podem enviar-lhe mensagens, a que " "só você terá acesso." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "de" +msgstr "a partir de" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6539,22 +8307,25 @@ msgstr "Desculpe, esse não é o seu endereço para receber correio electrónico msgid "Sorry, no incoming email allowed." msgstr "Desculpe, não lhe é permitido receber correio electrónico." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Tipo de mensagem não suportado: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Ocorreu um erro na base de dados ao gravar o seu ficheiro. Por favor, tente " "novamente." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Ficheiro carregado excede a directiva upload_max_filesize no php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6562,87 +8333,135 @@ msgstr "" "Ficheiro carregado excede a directiva MAX_FILE_SIZE especificada no " "formulário HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Ficheiro só foi parcialmente carregado." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Falta um directório temporário." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Não foi possível gravar o ficheiro no disco." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Transferência do ficheiro interrompida pela extensão." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Ficheiro excede quota do utilizador." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Não foi possível mover o ficheiro para o directório de destino." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Não foi possível determinar o tipo MIME do ficheiro." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Tente usar outro tipo de %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" não é um tipo de ficheiro suportado neste servidor. Tente usar " +"outro formato de %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s não é um tipo de ficheiro suportado neste servidor." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" não é um tipo de ficheiro suportado neste servidor." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Enviar uma nota directa" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Seleccione um operador" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Não subscrito!" + +#: lib/messageform.php:153 msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caracteres disponíveis" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "Utilizador só deve conter letras minúsculas e números. Sem espaços." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma nota" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Novidades, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Anexar" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Anexar um ficheiro" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Partilhar a minha localização." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Não partilhar a minha localização" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6651,51 +8470,55 @@ msgstr "" "tente novamente mais tarde" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "coords." -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Nota repetida" @@ -6711,55 +8534,52 @@ msgstr "Tocar" msgid "Send a nudge to this user" msgstr "Enviar toque a este utilizador" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Erro ao inserir perfil novo" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Erro ao inserir perfil novo." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Erro ao inserir avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Erro ao inserir avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Erro ao actualizar o perfil remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Erro ao inserir perfil remoto." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Erro ao inserir perfil remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Nota duplicada." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Nota duplicada" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Não foi possível inserir nova subscrição." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Pessoal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respostas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritas" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Recebidas" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Mensagens recebidas" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Enviadas" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Mensagens enviadas" @@ -6768,7 +8588,8 @@ msgstr "Mensagens enviadas" msgid "Tags in %s's notices" msgstr "Categorias nas notas de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Desconhecida" @@ -6850,9 +8671,11 @@ msgstr "Repetir esta nota" msgid "Revoke the \"%s\" role from this user" msgstr "Retirar a função \"%s\" a este utilizador" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Nenhum utilizador único definido para o modo de utilizador único." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Método da API não encontrado." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6862,19 +8685,25 @@ msgstr "Bloquear notas públicas" msgid "Sandbox this user" msgstr "Impedir que notas deste utilizador sejam públicas" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Pesquisar site" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Categorias" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Pesquisa" +msgstr "Pesquisar" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Pesquisar ajuda" @@ -6948,6 +8777,12 @@ msgstr "Nuvem da sua categorização das pessoas" msgid "None" msgstr "Nenhum" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nome de ficheiro inválido." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6958,27 +8793,32 @@ msgid "The theme file is missing or the upload failed." msgstr "O ficheiro do tema não foi localizado ou o upload falhou." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Não foi possível gravar o tema." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Tema inválido: estrutura de directórios incorrecta." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"O tema carregado é demasiado grande; tem de ter menos de %d bytes " +"descomprimido." +msgstr[1] "" "O tema carregado é demasiado grande; tem de ter menos de %d bytes " "descomprimido." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Arquivo do tema inválido: falta o ficheiro css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6986,12 +8826,16 @@ msgstr "" "Tema contém um nome de ficheiro ou de directório inválido. Use somente " "letras ASCII, algarismos, sublinhados e o sinal de menos." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "O tema contém extensões de ficheiro inseguras; pode não ser seguro." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Tema contém um ficheiro do tipo '.%s', o que não é permitido." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Ocorreu um erro ao abrir o arquivo do tema." @@ -6999,6 +8843,13 @@ msgstr "Ocorreu um erro ao abrir o arquivo do tema." msgid "Top posters" msgstr "Quem mais publica" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloquear" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Permitir notas públicas" @@ -7023,122 +8874,175 @@ msgstr "Deixar de subscrever este utilizador" msgid "Unsubscribe" msgstr "Abandonar" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "Utilizador %s (%d) não tem perfil." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "Utilizador não tem perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Editar Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Acções do utilizador" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "A apagar o utilizador..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Editar configurações do perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Enviar mensagem directa a este utilizador" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Mensagem" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Função" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Gestor" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderador" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "há alguns segundos" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "há cerca de um minuto" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "há cerca de %d minutos" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "há cerca de um minuto atrás" +msgstr[1] "há cerca de %d minutos atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "há cerca de uma hora" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "há cerca de %d horas" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "há cerca de uma hora atrás" +msgstr[1] "há cerca de %d horas atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "há cerca de um dia" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "há cerca de %d dias" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "há cerca de um dia atrás" +msgstr[1] "há cerca de %d dias atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "há cerca de um mês" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "há cerca de %d meses" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "há cerca de um mês atrás" +msgstr[1] "há cerca de %d meses atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "há cerca de um ano" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" 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." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s não é uma cor válida! Use 3 ou 6 caracteres hexadecimais." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." +msgstr[1] "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Tamanho inválido." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Não foi especificado um ID de utilizador." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 53468a0649..37412a9355 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -1,158 +1,199 @@ -# Translation of StatusNet to Brazilian Portuguese +# Translation of StatusNet - Core to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net # -# Author@translatewiki.net: Aracnus -# Author@translatewiki.net: Ewout -# Author@translatewiki.net: Giro720 -# Author@translatewiki.net: Luckas Blade -# Author@translatewiki.net: McDutchie -# Author@translatewiki.net: Vuln +# Author: Aracnus +# Author: Brion +# Author: Ewout +# Author: Giro720 +# Author: Luckas Blade +# Author: McDutchie +# Author: Vuln # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:55+0000\n" -"Language-Team: Brazilian Portuguese\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:11+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Acesso" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Configurações de acesso ao site" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registro" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Impedir usuários anônimos (não autenticados) de visualizar o site?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privado" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Cadastro liberado somente para convidados." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Somente convidados" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Desabilita novos registros." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Fechado" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Salvar as configurações de acesso" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Salvar" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Esta página não existe." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Este usuário não existe." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amigos, pág. %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte de mensagens dos amigos de %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte de mensagens dos amigos de %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte de mensagens dos amigos de %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -160,7 +201,9 @@ msgstr "" "Esse é o fluxo de mensagens de %s e seus amigos, mas ninguém publicou nada " "ainda." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -169,79 +212,104 @@ msgstr "" "Tente assinar mais pessoas, [unir-ser a um grupo](%%action.groups%%) ou " "publicar algo." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Você pode tentar [chamar a atenção de %1$s](../%2$s) em seu perfil ou " -"[publicar alguma coisa que desperte seu interesse](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"Seja o primeiro a [publicar sobre este tópico](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." 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." +"Por que você não [registra uma conta](%%action.register%%) pra ser o " +"primeiro a publicar?" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Você e amigos" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Atualizações de %1$s e amigos no %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "O método da API não foi encontrado!" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Este método requer um POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -249,356 +317,531 @@ msgstr "" "Você tem que especificar um parâmetro denominado 'device', com um desses " "valores: sms, im, none" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Não foi possível atualizar o usuário." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "O usuário não tem perfil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Não foi possível salvar o perfil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"O servidor não conseguiu manipular a quantidade de dados do POST (%s byte) " +"devido à sua configuração atual." +msgstr[1] "" "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 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Não foi possível salvar suas configurações de aparência." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Não foi possível atualizar a sua aparência." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Principal" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Mensagens de %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Assinaturas de %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoritos" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Membros do grupo %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Você não pode bloquear a si mesmo!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Não foi possível bloquear o usuário." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Não foi possível desbloquear o usuário." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Mensagens diretas de %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Todas as mensagens diretas enviadas por %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Mensagens diretas para %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Todas as mensagens diretas enviadas para %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Nenhuma mensagem de texto!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Isso é muito extenso. O tamanho máximo das mensagens é %d caracteres." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +"Isso é muito extenso. O tamanho máximo das mensagens é %d caractere." +msgstr[1] "" +"Isso é muito extenso. O tamanho máximo das mensagens é %d caracteres." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "O usuário destinatário não foi encontrado." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 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 sejam seus " "amigos." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Não envie mensagens para você mesmo(a); ao invés disso, apenas diga-a para " +"si, discretamente." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Não foi encontrado nenhum status com esse ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Esta mensagem já é favorita!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Não foi possível criar a favorita." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Essa mensagem não é favorita!" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Não foi possível excluir a favorita." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile 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/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format 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." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Não é possível deixar de seguir o usuário: Usuário não encontrado." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Você não pode deixar de seguir você mesmo!" -#: actions/apifriendshipsexists.php:91 -#, fuzzy -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Duas IDs de usuário ou screen_names devem ser informados." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Devem ser fornecidos dois IDs ou nomes de usuários válidos." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Não foi possível determinar o usuário de origem." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Não foi possível encontrar usuário de destino." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"A identificação deve conter apenas letras minúsculas e números e não pode " -"ter e espaços." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Esta identificação já está em uso. Tente outro." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Não é uma identificação válida." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "A URL informada não é válida." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Nome completo muito extenso (máx. 255 caracteres)" +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "O nome completo é muito extenso (máx. 255 caracteres)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Descrição muito extensa (máximo %d caracteres)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "A descrição é muito extensa (máximo %d caractere)." +msgstr[1] "A descrição é muito extensa (máximo %d caracteres)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Localização muito extensa (máx. 255 caracteres)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "A localização é muito extensa (máx. 255 caracteres)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Muitos apelidos! O máximo são %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Muitos apelidos! O máximo é %d." +msgstr[1] "Muitos apelidos! O máximo são %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Apelido inválido: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "O apelido \"%s\" já está em uso. Tente outro." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "O apelido não pode ser igual à identificação." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "O grupo não foi encontrado." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Você já é membro desse grupo." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "O administrador desse grupo bloqueou sua inscrição." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Não foi possível associar o usuário %1$s ao grupo %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Você não é membro deste grupo." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Não foi possível remover o usuário %1$s do grupo %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Grupos de %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Grupos de %1$s nos quais %2$s é membro." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Grupos de %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupos no %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Enviar arquivo" +msgstr "O upload falhou." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "O token ou o verificador solicitado é inválido." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Não foi fornecido nenhum parâmetro oauth_token" -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Token inválido." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "O token solicitado é inválido." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "O token solicitado já foi autorizado." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 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." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Nome de usuário e/ou senha inválido(s)!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "" -"Erro no banco de dados durante a exclusão do usuário da aplicação OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" -"Erro no banco de dados durante a inserção do usuário da aplicativo OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"O token de requisição %s foi autorizado. Por favor, troque-o por um token de " -"acesso." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "O token %s solicitado foi negado e revogado." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Erro no banco de dados durante a inserção de oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Submissão inesperada de formulário." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Uma aplicação gostaria de se conectar à sua conta" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Permitir ou negar o acesso" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Uma aplicação solicitou permissão para <strong>%3$s</strong> os dados da sua " +"conta %4$s. Você deve fornecer acesso à sua conta %4$s somente para " +"terceiros nos quais você confia." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -610,241 +853,626 @@ msgstr "" "fornecer acesso à sua conta %4$s somente para terceiros nos quais você " "confia." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Conta" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Usuário" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Senha" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Negar" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Cancelar" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Permitir" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Permitir ou negar o acesso às informações da sua conta." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Autoriza o acesso às informações da sua conta." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "A autorização foi cancelada." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "O token %s solicitado foi revogado." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "A aplicação foi autorizada com sucesso" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Por favor, retorne à aplicação e digite o seguinte código de segurança para " +"completar o processo." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "A aplicação %s foi autorizada com sucesso" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Por favor, retorne a %s e digite o seguinte código de segurança para " +"completar o processo." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Esse método requer um POST ou DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." 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 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Essa mensagem não existe." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Você não pode repetir a sua própria mensagem." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Você já repetiu essa mensagem." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "O método HTTP não é suportado." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Formato não suportado: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "A mensagem foi excluída." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Não foi encontrada nenhuma mensagem com esse ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Só é possível excluir usando o formato Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Não é possível excluir esta mensagem." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Mensagem excluída %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "O cliente tem de fornecer um parâmetro 'status' com um valor." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Está muito extenso. O tamanho máximo é de %s caracteres." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Está muito extenso. O tamanho máximo é de %d caractere." +msgstr[1] "Está muito extenso. O tamanho máximo é de %d caracteres." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Não encontrado." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "A mensagem pai não foi encontrada." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "O tamanho máximo da mensagem é de %s caracteres" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "O tamanho máximo da mensagem é de %d caractere" +msgstr[1] "O tamanho máximo da mensagem é de %d caracteres" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Formato não suportado." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritas de %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s marcadas como favoritas por %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Mensagens de %1$s marcadas como favoritas por %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Não foi possível gerar a fonte de notícias para o grupo - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Mensagens mencionando %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s mensagens em resposta a mensagens de %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Mensagens públicas de %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s mensagens de todo mundo!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Não implementado." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Repetida para %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Repetições de %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mensagens etiquetadas como %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mensagens etiquetadas como %1$s no %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Somente o usuário pode adicionar à sua própria linha de tempo." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Só são aceitos AtomPub para fontes atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "A publicação Atom deve ser uma entrada Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "A publicação Atom deve ser uma entrada Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "A publicação Atom deve ser uma entrada Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Só é possível manipular atividades de publicação." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Não é possível manipular o tipo de objeto de atividade \"%s\"" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Encontre conteúdo de mensagens" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Já existe uma mensagem com a URI \"%s\"." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Publicação AtomPub com uma URI de atenção desconhecida %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "O método da API está em construção." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "O método da API não foi encontrado!" + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Este perfil não existe." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Não foi possível inserir a nova assinatura." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Só é possível manipular atividades de publicação." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Só é possível manipular atividades de publicação." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Desconhecido" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Adicionar às favoritas" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Este perfil não existe." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Membros do grupo %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupos dos quais %s é membro" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Só é possível manipular atividades de publicação." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Desconhecido" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Todos os membros" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Esse arquivo não existe." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Não foi possível excluir a favorita." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Esse grupo não existe." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Todos os membros" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "O método HTTP não é suportado." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Este perfil não existe." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Você não está assinando esse perfil." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Não foi possível salvar a assinatura." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Assinantes de %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Só é possível manipular atividades de publicação." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Tipo de arquivo desconhecido" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Este anexo não existe." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Nenhuma identificação." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Sem tamanho definido." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Tamanho inválido." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: 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 é de %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Usuário sem um perfil correspondente" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configurações do avatar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" -msgstr "Visualização" +msgstr "Pré-visualizar" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Excluir" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Enviar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Não foi enviado nenhum arquivo." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Selecione uma área quadrada da imagem para ser seu avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Os dados do nosso arquivo foram perdidos." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "O avatar foi atualizado." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Não foi possível atualizar o avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "O avatar foi excluído." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Você já bloqueou esse usuário." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Bloquear usuário" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -857,175 +1485,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Não" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Não bloquear este usuário" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Sim" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Bloquear este usuário" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Não foi possível salvar a informação de bloqueio." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Esse grupo não existe." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "Perfis bloqueados no %s" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Perfis bloqueados no %1$s, pág. %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Uma lista dos usuários proibidos de se associarem a este grupo." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Desbloquear o usuário do grupo" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Desbloquear este usuário" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Publicar em %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Nenhum código de confirmação." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "O código de confirmação não foi encontrado." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Esse não é o seu código de confirmação!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Tipo de endereço %s não reconhecido." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Esse endereço já foi confirmado." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Não foi possível atualizar o usuário." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Não foi possível excluir a confirmação de e-mail." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Não foi possível excluir a confirmação do endereço." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Confirme o endereço" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "O endereço \"%s\" foi confirmado para sua conta." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Conversa" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mensagens" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Você precisa estar autenticado para excluir uma aplicação." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "A aplicação não foi encontrada." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Você não é o dono desta aplicação." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com o seu token de sessão." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Excluir a aplicação" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1036,31 +1708,88 @@ msgstr "" "com os usuários." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Não excluir esta aplicação" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Excluir esta aplicação" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Você deve estar autenticado para excluir um grupo." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nenhum apelido ou identificação." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Você não tem permissão para excluir este grupo." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Não foi possível excluir o grupo %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "O grupo %s foi excluído" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Excluir o grupo" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Tem certeza que deseja excluir este grupo? Isso eliminará todos os dados " +"deste grupo no banco de dados, sem cópia de segurança. Mensagens públicas " +"para este grupo continuarão aparecendo nas linhas de tempo individuais." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Não excluir este grupo" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Excluir este grupo" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Você não está autenticado." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Não é possível excluir esta mensagem." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1068,21 +1797,24 @@ msgstr "" "Você está prestes a excluir permanentemente uma mensagem. Isso não poderá " "ser desfeito." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Excluir a mensagem" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Tem certeza que deseja excluir esta mensagem?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1113,64 +1845,73 @@ msgstr "Excluir este usuário" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Aparência" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "Configurações da aparência deste site StatusNet." -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "A URL da logo é inválida." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "A URL da logo SSL é inválida." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema não disponível: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Alterar a logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Logo do site" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Logo do SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Alterar o tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Tema do site" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema para o site." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Tema personalizado" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" "Você pode enviar um tema personalizado para o StatusNet, na forma de um " "arquivo .zip." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Alterar imagem do fundo" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Fundo" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1180,75 +1921,84 @@ msgstr "" "arquivo é de %1 $s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Ativado" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Desativado" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Ativar/desativar a imagem de fundo." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Ladrilhar a imagem de fundo" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Alterar a cor" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Conteúdo" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Barra lateral" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Texto" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Links" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avançado" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "CSS personalizado" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Usar o padrão|" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Restaura a aparência padrão" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Restaura de volta ao padrão" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Salvar" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Salvar a aparência" @@ -1265,109 +2015,129 @@ msgstr "Adicionar às favoritas" msgid "No such document \"%s\"" msgstr "O documento \"%s\" não existe" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Editar a aplicação" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Você precisa estar autenticado para editar uma aplicação." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Essa aplicação não existe." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Use este formulário para editar a sua aplicação." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "O nome é obrigatório." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "O nome é muito extenso (máx. 255 caracteres)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Este nome já está em uso. Tente outro." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "A descrição é obrigatória." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "A URL da fonte é muito extensa." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "A URL da fonte não é válida." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "A organização é obrigatória." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "A organização é muito extensa (máx. 255 caracteres)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "O site da organização é obrigatório." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "O retorno é muito extenso." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "A URL de retorno não é válida." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Não foi possível atualizar a aplicação." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Editar o grupo %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: 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 autenticado para criar um grupo." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Você deve ser um administrador para editar o grupo." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Use esse formulário para editar o grupo." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "descrição muito extensa (máximo %d caracteres)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Apelido inválido: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Não foi possível criar os apelidos." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "As configurações foram salvas." @@ -1385,12 +2155,12 @@ msgstr "Configure o recebimento de e-mails de %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Endereço de e-mail" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Endereço de e-mail já confirmado." @@ -1399,14 +2169,14 @@ msgstr "Endereço de e-mail já confirmado." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Remover" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1414,25 +2184,19 @@ msgstr "" "Aguardando a confirmação deste endereço. Procure em sua caixa de entrada (e " "de spam!) por uma mensagem com mais instruções." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Cancelar" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Endereço de e-mail, ex: \"usuario@exemplo.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1440,114 +2204,121 @@ msgstr "Adicionar" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "E-mail de recebimento" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Eu quero publicar mensagens por e-mail." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Envie e-mails para esse endereço para publicar novas mensagens." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Cria um novo endereço de e-mail para publicar e cancela o antigo." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Novo" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Preferências de e-mail" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Envie-me notificações de novos assinantes por e-mail." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Envie-me um e-mail quando alguém adicionar alguma mensagem minha como " "favorita." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Envie-me um e-mail quando alguém me mandar uma mensagem particular." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" "Envie-me um e-mail quando alguém mandar uma mensagem citando meu nome " "(\"@nome\")." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Permita que meus amigos chamem minha atenção e enviem-me e-mails." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Eu quero publicar mensagens por e-mail." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publique um MicroID para meu endereço de e-mail." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "As configurações de e-mail foram salvas." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Nenhum endereço de e-mail." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Não foi possível normalizar este endereço de e-mail" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Não é um endereço de e-mail válido." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Esse já é seu endereço de e-mail." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Esse endereço de e-mail já pertence à outro usuário." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Não foi possível inserir o código de confirmação." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1559,50 +2330,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Nenhuma confirmação pendente para cancelar." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Esse é o endereço de e-mail errado." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Não foi possível excluir a confirmação de e-mail." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "A confirmação por e-mail foi cancelada." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Esse não é seu endereço de email." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "O endereço de e-mail foi removido." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Nenhum endereço de e-mail para recebimentos." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Não foi possível atualizar o registro do usuário." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "O endereço de e-mail de recebimento foi removido." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "" "Foi adicionado um novo endereço de e-mail para recebimento de mensagens." @@ -1611,11 +2388,11 @@ msgstr "" msgid "This notice is already a favorite!" msgstr "Essa mensagem já é uma favorita!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Desmarcar a favorita" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Mensagens populares" @@ -1653,7 +2430,7 @@ msgstr "" "primeiro a adicionar uma mensagem aos favoritos?" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Mensagens favoritas de %s" @@ -1722,7 +2499,7 @@ msgstr "Não foi possível converter o token de requisição para token de acess msgid "Remote service uses unknown version of OMB protocol." msgstr "O serviço remoto usa uma versão desconhecida do protocolo OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Ocorreu um erro durante a atualização do perfil remoto." @@ -1750,19 +2527,23 @@ msgstr "Você não pode definir papéis para os usuários neste site." msgid "User already has this role." msgstr "O usuário já possui este papel." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Não foi especificado nenhum perfil." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Não foi encontrado nenhum perfil com esse ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Não foi especificado nenhum grupo." @@ -1779,7 +2560,7 @@ msgstr "O usuário já está bloqueado no grupo." msgid "User is not a member of group." msgstr "O usuário não é um membro do grupo" -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Bloquear o usuário no grupo" @@ -1829,8 +2610,10 @@ msgstr "" "Personalize a aparência do grupo com uma imagem de fundo e uma paleta de " "cores à sua escolha." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Não foi possível atualizar a aparência." @@ -1850,6 +2633,14 @@ msgstr "" "Você pode enviar uma imagem de logo para o seu grupo. O tamanho máximo do " "arquivo é %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Enviar" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Cortar" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selecione uma área quadrada da imagem para definir a logo" @@ -1862,49 +2653,56 @@ msgstr "A logo foi atualizada." msgid "Failed updating logo." msgstr "Não foi possível atualizar a logo." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Membros do grupo %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros do grupo %1$s, pág. %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Uma lista dos usuários deste grupo." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bloquear este usuário" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Tornar o usuário um administrador do grupo" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Tornar administrador" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Torna este usuário um administrador" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Mensagens de %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1976,15 +2774,18 @@ msgstr "" "Por que você não [se cadastra](%%action.register%%) e [cria o grupo](%%" "action.newgroup%%) você mesmo?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Somente um administrador pode desbloquear membros do grupo." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "O usuário não está bloqueado no grupo." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erro na remoção do bloqueio." @@ -2034,7 +2835,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2045,65 +2849,65 @@ msgstr "" "ou no GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Preferências do mensageiro instantâneo" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Envie-me mensagens via Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Publicar uma mensagem quando eu mudar de status no Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 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 assinando através do Jabber/" "GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publique um MicroID para meu endereço de Jabber/Gtalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "As preferências foram salvas." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Nenhuma ID de Jabber." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Não foi possível normalizar essa ID do Jabber" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Não é uma ID de Jabber válida" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Essa já é sua ID do Jabber." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Esta ID do Jabber já pertence à outro usuário." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2113,28 +2917,28 @@ msgstr "" "informou. Você deve permitir que %s envie mensagens para você." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Isso é um endereço de MI errado." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Não foi possível excluir a confirmação do mensageiro instantâneo." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "A confirmação do mensageiro instantâneo foi cancelada." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Essa não é sua ID do Jabber." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "O endereço de mensageiro instantâneo foi removido." @@ -2154,50 +2958,76 @@ msgstr "" "Essa é a sua caixa de mensagens recebidas, que lista as mensagens " "particulares que você recebeu." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Os convites foram desabilitados." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Você deve estar autenticado para convidar outros usuários para usar o %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Endereço de e-mail inválido: %s" +msgid "Invalid email address: %s." +msgstr "Endereço de e-mail inválido: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Convite(s) enviado(s)" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Os convites foram enviados" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Convidar novos usuários" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Você já está assinando esses usuários:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Você já está assinando este usuário:" +msgstr[1] "Você já está assinando estes usuários:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Estas pessoas já são usuárias e você as assinou automaticamente:" +msgstr[0] "Esta pessoa já é uma usuária e você a assinou automaticamente:" +msgstr[1] "Estas pessoas já são usuárias e você as assinou automaticamente:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Convite(s) enviado(s) para as seguintes pessoas:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Convite enviado para a seguinte pessoa:" +msgstr[1] "Convites enviados para as seguintes pessoas:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2205,43 +3035,54 @@ msgstr "" "Você será notificado assim que seus convidados aceitarem o convite e se " "registrarem neste site. Obrigado por aumentar a comunidade!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Use esse formulário para convidar seus amigos e colegas para usar este " "serviço." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Endereços de e-mail" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Endereços dos seus amigos que serão convidados (um por linha)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Mensagem pessoal" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s convidou você para se juntar a %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2302,13 +3143,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Você deve estar autenticado para se associar a um grupo." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Nenhum apelido ou identificação." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s associou-se ao grupo %2$s" @@ -2317,17 +3152,129 @@ msgstr "%1$s associou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Você deve estar autenticado para sair de um grupo." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Você não é um membro desse grupo." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s deixou o grupo %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licença" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licença para este site StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Seleção inválida de licença." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Você deve especificar o proprietário do conteúdo quando usar a licença Todos " +"os Direitos Reservados." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "" +"O título da licença é inválido. O comprimento máximo é de 255 caracteres." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "A URL da licença é inválida." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "A URL da imagem da licença é inválida." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" +"O campo de URL da licença deve estar em branco ou então conter uma URL " +"válida." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" +"O campo de iamgem da licença deve estar em branco ou então conter uma URL " +"válida." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Seleção da licença" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Particular" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" +"\n" +"Todos os Direitos Reservados" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Tipo" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Selecione a licença" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Detalhes da licença" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Proprietário" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Nome do proprietário do conteúdo do site (se aplicável)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Título da licença" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "O título da licença." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL da licença" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL para obter mais informações sobre a licença." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL da imagem da licença" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL de uma imagem a ser exibida com a licença." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Salvar as configurações da licença" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Já está autenticado." @@ -2349,11 +3296,11 @@ msgstr "Entrar" msgid "Login to site" msgstr "Autenticar-se no site" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Lembrar neste computador" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Entra automaticamente da próxima vez, sem pedir a senha. Não use em " @@ -2407,68 +3354,78 @@ msgstr "Não foi possível tornar %1$s um administrador do grupo %2$s." msgid "No current status." msgstr "Nenhuma mensagem atual." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Nova aplicação" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Você deve estar autenticado para registrar uma aplicação." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Utilize este formulário para registrar uma nova aplicação." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "A URL da fonte é obrigatória." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Não foi possível criar a aplicação." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Novo grupo" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Utilize este formulário para criar um novo grupo." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nova mensagem" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Você não pode enviar mensagens para este usuário." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Nenhum conteúdo!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Não foi especificado nenhum destinatário." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Não envie mensagens para você mesmo(a); ao invés disso, apenas diga-a para " "si, discretamente." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "A mensagem foi enviada" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "A mensagem direta para %s foi enviada." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Erro no Ajax" @@ -2476,7 +3433,7 @@ msgstr "Erro no Ajax" msgid "New notice" msgstr "Nova mensagem" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "A mensagem foi publicada" @@ -2528,12 +3485,12 @@ msgid "Updates matching search term \"%1$s\" on %2$s!" msgstr "Mensagens correspondentes aos termos \"%1$s\" no %2$s!" #: actions/nudge.php:85 -#, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Esse usuário não permite ser chamado à atenção ou ainda não confirmou ou " -"configurou seu e-mail." +"Esse usuário não permite receber chamados de atenção ou ainda não confirmou " +"ou configurou seu e-mail." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2543,74 +3500,100 @@ msgstr "A chamada de atenção foi enviada" msgid "Nudge sent!" msgstr "A chamada de atenção foi enviada!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Você precisa estar autenticado para listar suas aplicações." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Aplicações OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Aplicações que você registrou" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Você ainda não registrou nenhuma aplicação." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Aplicações conectadas" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Você permitiu que as seguintes aplicações acessem a sua conta." +msgid "The following connections exist for your account." +msgstr "Existem as seguintes conexões para a sua conta." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Você não é um usuário dessa aplicação." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Não foi possível revogar o acesso para a aplicação: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"O acesso de %1$s e do token iniciado por %2$s foi revogado com sucesso." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Você não autorizou nenhuma aplicação a usar a sua conta." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Os desenvolvedores podem editar as configurações de registro para suas " -"aplicações " +"Você é um desenvolvedor? [Registre uma aplicação cliente OAuth](%s) para " +"usar com esta instância do StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "A mensagem não está associada a nenhum perfil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Mensagem de %1$s no %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "O tipo de conteúdo %s não é suportado." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Por favor, somente URLs %s sobre HTTP puro." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -2622,36 +3605,45 @@ msgstr "Procurar pessoas" msgid "Notice Search" msgstr "Procurar mensagens" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Outras configurações" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Gerencia várias outras opções." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (serviço livre)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Encolher URLs com" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Serviço de encolhimento automático a ser utilizado." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Visualizar aparências do perfil" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Exibir ou esconder as aparências do perfil." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "O serviço de encolhimento de URL é muito extenso (máx. 50 caracteres)." #: actions/otp.php:69 @@ -2715,7 +3707,7 @@ msgid "6 or more characters" msgstr "No mínimo 6 caracteres" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Confirmar" @@ -2727,11 +3719,11 @@ msgstr "Igual à senha acima" msgid "Change" msgstr "Alterar" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "A senha deve ter, no mínimo, 6 caracteres." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "As senhas não coincidem." @@ -2751,157 +3743,274 @@ msgstr "Não é possível salvar a nova senha." msgid "Password saved." msgstr "A senha foi salva." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Caminhos" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Configurações dos caminhos e do servidor para este site StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Configurações do caminho e do servidor para este site StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Sem permissão de leitura no diretório de temas: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Sem permissão de escrita no diretório de avatares: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Sem permissão de escrita no diretório de imagens de fundo: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Sem permissão de leitura no diretório de locales: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 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:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Site" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Servidor" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Nome de host do servidor do site." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Caminho" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Caminho do site" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Caminho do site." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Caminho para os locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Diretório dos locales" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "Caminho do diretório de locales" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "URLs limpas" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Utilizar URLs limpas (mais legíveis e memorizáveis)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Tema" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Servidor de temas" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Servidor para temas." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Caminho dos temas" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Caminho web para os temas." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Diretório dos temas" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatares" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Servidor de avatares" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Caminho dos avatares" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Diretório dos avatares" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Imagens de fundo" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Servidor de imagens de fundo" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Caminho das imagens de fundo" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Diretório das imagens de fundo" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Nunca" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Algumas vezes" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Sempre" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Usar SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Quando usar SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "Servidor SSL" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Servidor para onde devem ser direcionadas as requisições SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "Servidor SSL para os temas (padrão: servidor SSL)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Caminho SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "Caminho SSL para os temas (padrão: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Diretório" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Diretório onde os temas estão localizados." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatares" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Servidor de avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Servidor para os avatares." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Caminho dos avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Caminho web para os avatares." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Diretório dos avatares" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Diretório onde os avatares estão localizados." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Imagens de fundo" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Servidor para as imagens de fundo." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Caminho web para os planos de fundo." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Servidor para planos de fundo nas páginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Caminho web para planos de fundo nas páginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Diretório onde os planos de fundo estão localizados." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Anexos" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Servidor para anexos." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Caminho web dos anexos." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Servidor para anexos nas páginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Caminho web para anexos nas páginas SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Diretório onde os anexos estão localizados." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Nunca" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Algumas vezes" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Sempre" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Usar SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Quando usar o SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Servidor para onde devem ser direcionadas as requisições SSL." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Salvar caminhos" @@ -2938,140 +4047,182 @@ msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’. msgstr "" "A licença ‘%1$s’ da mensagem não é compatível com a licença ‘%2$s’ do site." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Configurações do perfil" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Você pode atualizar suas informações pessoais aqui, para que as pessoas " "saibam mais sobre você." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Informações do perfil" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 letras minúsculas ou números, sem pontuações ou espaços" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 letras minúsculas ou números, sem pontuações ou espaços." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Nome completo" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Site" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL do seu site, blog ou perfil em outro site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +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:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Descreva a si mesmo e os seus interesses em %d caracteres" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Descreva a si mesmo e os seus interesses em %d caractere" +msgstr[1] "Descreva a si mesmo e os seus interesses em %d caracteres" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Descreva a si mesmo e os seus interesses" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Descrição" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Localização" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Compartilhe minha localização atual ao publicar mensagens" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Etiquetas" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Idioma" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Idioma preferencial" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Fuso horário" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Em que fuso horário você normalmente está?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Assinar automaticamente à quem me assinar (melhor para perfis não humanos)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "A descrição é muito extensa (máximo %d caracteres)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "A descrição é muito extensa (máximo %d caractere)." +msgstr[1] "A descrição é muito extensa (máximo %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "O fuso horário não foi selecionado." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "O nome do idioma é muito extenso (máx. 50 caracteres)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta inválida: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível atualizar o usuário para assinar automaticamente." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Não foi possível salvar as preferências de localização." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Não foi possível salvar o perfil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Não foi possível salvar as etiquetas." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "As configurações foram salvas." @@ -3149,26 +4300,39 @@ msgstr "" "Este é %%site.name%%, um serviço de [microblog](http://pt.wikipedia.org/wiki/" "Microblogging) baseado no software livre [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Nuvem de etiquetas públicas" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Estas são as etiquetas recentes mais populares no %s " +msgid "These are most popular recent tags on %s" +msgstr "Estas são as etiquetas recentes mais populares no %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, 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 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Seja o primeiro a publicar uma!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3177,7 +4341,7 @@ msgstr "" "Por que você não [registra uma conta](%%action.register%%) pra ser o " "primeiro a publicar?" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Nuvem de etiquetas" @@ -3293,14 +4457,14 @@ msgid "Unexpected password reset." msgstr "Restauração inesperada da senha." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "A senha deve ter 6 ou mais caracteres." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A senha e a confirmação não coincidem." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Erro na configuração do usuário." @@ -3310,7 +4474,7 @@ msgstr "" "A nova senha foi salva com sucesso. A partir de agora você já está " "autenticado." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Desculpe, mas somente convidados podem se registrar." @@ -3322,7 +4486,7 @@ msgstr "Desculpe, mas o código do convite é inválido." msgid "Registration successful" msgstr "Registro realizado com sucesso" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrar-se" @@ -3330,19 +4494,19 @@ msgstr "Registrar-se" msgid "Registration not allowed." msgstr "Não é permitido o registro." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Você não pode se registrar se não aceitar a licença." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "O endereço de e-mail já existe." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Nome de usuário e/ou senha inválido(s)" -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3350,34 +4514,38 @@ 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 letras minúsculas ou números, sem pontuação ou espaços. Obrigatório." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "No mínimo 6 caracteres. Obrigatório." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Igual à senha acima. Obrigatório." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-mail" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Usado apenas para atualizações, anúncios e recuperações de senha" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Nome completo, de preferência seu nome \"real\"" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL do seu site, blog ou perfil em outro site" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." @@ -3385,23 +4553,23 @@ msgstr "" "Eu entendo que o conteúdo e os dados de %1$s são particulares e " "confidenciais." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Meus textos e arquivos estão licenciados sob a %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Meus textos e arquivos permanecem sob meus próprios direitos autorais." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Todos os direitos reservados." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3411,7 +4579,7 @@ msgstr "" "particulares: senha, endereço de e-mail, endereço do mensageiro instantâneo " "e número de telefone." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3444,7 +4612,7 @@ msgstr "" "\n" "Obrigado por se registrar e esperamos que você aproveite o serviço." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3489,7 +4657,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil em outro serviço de microblog compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Assinar" @@ -3526,7 +4694,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Repetida" @@ -3535,7 +4703,7 @@ msgid "Repeated!" msgstr "Repetida!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Respostas para %s" @@ -3561,13 +4729,13 @@ msgid "Replies feed for %s (Atom)" msgstr "Fonte de respostas para %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." msgstr "" -"Esse é o fluxo de mensagens de resposta para %1$s, mas %2$s ainda não " -"recebeu nenhuma mensagem direcionada a ele(a)." +"Este é o fluxo público de mensagens de %1$s, mas %2$s não publicou nada " +"ainda." #: actions/replies.php:204 #, php-format @@ -3579,14 +4747,13 @@ msgstr "" "pessoas ou [associe-se a grupos](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Você pode tentar [chamar a atenção de %1$s](../%2$s) ou [publicar alguma " -"coisa que desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%3" -"$s)." +"Seja o primeiro a [publicar sobre este tópico](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/repliesrss.php:72 #, php-format @@ -3615,13 +4782,13 @@ msgstr "O usuário já está em isolamento." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessões" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Configurações da sessão deste site StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Configurações de sessão para este site StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3640,7 +4807,6 @@ msgid "Turn on debugging output for sessions." msgstr "Ativa a saída de depuração para as sessões." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salvar as configurações do site" @@ -3653,28 +4819,29 @@ msgid "Application profile" msgstr "Perfil da aplicação" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ícone" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Nome" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organização" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Estatísticas" @@ -3692,6 +4859,11 @@ msgstr "Ações da aplicação" msgid "Reset key & secret" msgstr "Restaurar a chave e o segredo" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Excluir" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Informação da aplicação" @@ -3762,100 +4934,126 @@ msgstr "" "para destacar." #: actions/showfavorites.php:208 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices 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. :)" +"%s ainda não adicionou nenhuma nota às favoritas. Publique algo interessante " +"para que as pessoas as marcarem como favorita. :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an 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? :)" +"Por que você não [registra uma conta](%%action.register%%) pra ser o " +"primeiro a adicionar uma mensagem aos favoritos?" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Esta é uma forma de compartilhar o que você gosta." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Grupo %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Grupo %1$s, pág. %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "Site" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Mensagem" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Apelidos" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Ações do grupo" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de mensagens do grupo %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de mensagens do grupo %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de mensagens do grupo %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF para o grupo %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Criado" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Membros" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3871,7 +5069,10 @@ msgstr "" "para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3884,24 +5085,31 @@ msgstr "" "[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " "sobre suas vidas e interesses. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administradores" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Essa mensagem não existe." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Apenas o remetente e o destinatário podem ler esta mensagem." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Mensagem para %1$s no %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Mensagem de %1$s no %2$s" @@ -3910,49 +5118,69 @@ msgstr "Mensagem de %1$s no %2$s" msgid "Notice deleted." msgstr "A mensagem excluída." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " etiquetada %s" +msgid "%1$s tagged %2$s" +msgstr "Mensagens de %1$s etiquetadas como %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Mensagens de %1$s etiquetadas como %2$s, pág. %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, pág. %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Fonte de mensagens de %1$s etiquetada como %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Fonte de mensagens de %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Fonte de mensagens de %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Fonte de mensagens de %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF de %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -"Este é o fluxo público de mensagens de %1$s, mas %2$s não publicou nada " +"Este é o fluxo público de mensagens de %1$s, mas %1$s não publicou nada " "ainda." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3960,16 +5188,20 @@ msgstr "" "Viu alguma coisa interessante recentemente? Você ainda não publicou nenhuma " "mensagem. Que tal começar agora? :)" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Você pode tentar chamar a atenção de %1$s ou [publicar alguma coisa que " -"desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"Seja o primeiro a [publicar sobre este tópico](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3983,7 +5215,9 @@ msgstr "" "acompanhar as mensagens de **%s** e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3994,7 +5228,8 @@ msgstr "" "pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre [StatusNet]" "(http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Repetição de %s" @@ -4108,31 +5343,39 @@ msgstr "" "Quanto tempo (em segundos) os usuários devem esperar para publicar a mesma " "coisa novamente." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Avisos do site" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Editar os avisos do site (exibidos em todas as páginas)" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Não foi possível salvar os avisos do site." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "O tamanho máximo para os avisos é de 255 caracteres." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "O tamanho máximo para os avisos do site é de 255 caracteres.." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Texto dos avisos" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "Texto dos avisos do site (no máximo 255 caracteres; pode usar HTML)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "" +"Texto dos aviso do site (no máximo 255 caracteres; é permitido o uso de HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Salvar os avisos do site" @@ -4291,7 +5534,7 @@ msgstr "Não foi digitado nenhum código" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Estatísticas" @@ -4347,12 +5590,14 @@ msgstr "As estatísticas serão enviadas para esta URL" msgid "Save snapshot settings" msgstr "Salvar as configurações de estatísticas" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Você não está assinando esse perfil." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Não foi possível salvar a assinatura." @@ -4360,10 +5605,6 @@ msgstr "Não foi possível salvar a assinatura." msgid "This action only accepts POST requests." msgstr "Esta ação aceita somente requisições POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Este perfil não existe." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Não é possível assinar um perfil OMB 0.1 remoto com essa ação." @@ -4372,39 +5613,55 @@ msgstr "Não é possível assinar um perfil OMB 0.1 remoto com essa ação." msgid "Subscribed" msgstr "Assinado" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Assinantes de %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Assinantes de %1$s, pág. %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Estas são as pessoas que acompanham as suas mensagens." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Estas são as pessoas que acompanham as mensagens de %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Você não tem nenhum assinante. Experimente assinar pessoas que você conhece " -"e eles podem devolver o favor" +"e elas podem lhe devolver o favor." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s não possui nenhum assinante. Quer ser o(a) primeiro(a)?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4413,26 +5670,31 @@ 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 "Assinaturas de %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Assinaturas de %1$s, pág. %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Estas são as pessoas cujas mensagens você acompanha." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Estas são as pessoas cujas mensagens %s acompanha." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4448,16 +5710,27 @@ msgstr "" "[usuário do Twitter](%%action.twittersettings%%), você pode assinar " "automaticamente as pessoas que já segue lá." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s não está acompanhando ninguém." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Fonte de mensagens de %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4495,7 +5768,7 @@ msgid "User profile" msgstr "Perfil do usuário" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Imagem" @@ -4559,75 +5832,95 @@ msgstr "" "do site." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Usuário" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Configurações de usuário para este site StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Configurações de usuário para esse site StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." 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." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" "Mensagem de boas vindas inválida. O comprimento máximo é de 255 caracteres." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Assinatura padrão inválida: '%1$s' não é um usuário." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Limite da descrição" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Comprimento máximo da descrição do perfil, em caracteres." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Novos usuários" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Boas vindas aos novos usuários" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Texto de boas vindas para os novos usuários (máx. 255 caracteres)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Assinatura padrão" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Os novos usuários assinam esse usuário automaticamente." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Convites" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Convites habilitados" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Define se os usuários podem ou não convidar novos usuários." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Salvar as configurações de usuário" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizar a assinatura" @@ -4642,7 +5935,9 @@ msgstr "" "as mensagens deste usuário. Se você não solicitou assinar as mensagens de " "alguém, clique em \"Recusar\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licença" @@ -4730,11 +6025,13 @@ msgstr "Não é possível ler a URL '%s' do avatar." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Tipo de imagem errado para a URL '%s' do avatar." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Aparência do perfil" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4774,7 +6071,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Mensagens de %1$s no %2$s!" @@ -4835,7 +6132,7 @@ msgid "Plugins" msgstr "Plugins" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Versão" @@ -4843,63 +6140,111 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autor(es)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Tornar favorita" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s marcou a mensagem %2$s como favorita." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "Não é possível processar a URL '$s'" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "o Robin acha que algo é impossível." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 -#, fuzzy, php-format +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 +#, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$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." +msgstr[0] "" +"Nenhum arquivo pode ter mais de %1$d byte e o que você enviou tinha %2$d " +"bytes. Tente enviar uma versão menor." +msgstr[1] "" +"Nenhum arquivo pode ter mais de %1$d bytes e o que você enviou tinha %2$d " +"bytes. Tente enviar uma versão menor." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Um arquivo deste tamanho excederá a sua conta de %d bytes." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Um arquivo deste tamanho excederá a sua conta de %d byte." +msgstr[1] "Um arquivo deste tamanho excederá a sua conta de %d bytes." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Um arquivo deste tamanho excederá a sua conta mensal de %d bytes." +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Um arquivo deste tamanho excederá a sua conta mensal de %d bytes." +msgstr[1] "Um arquivo deste tamanho excederá a sua conta mensal de %d bytes." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Tamanho inválido." +msgstr "Nome de arquivo inválido." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Não foi possível se unir ao grupo." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Não é parte de um grupo." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Não foi possível deixar o grupo." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Erro ao salvar usuário; inválido." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Entrar" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4915,20 +6260,20 @@ msgstr "Não foi possível criar o token de autenticação para %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Não foi encontrado nenhum nome de base de dados ou DSN." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Você está proibido de enviar mensagens diretas." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Não foi possível inserir a mensagem." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Não foi possível atualizar a mensagem com a nova URI." @@ -4937,26 +6282,26 @@ msgstr "Não foi possível atualizar a mensagem com a nova URI." #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Não existe o perfil (%1$d) para a nota (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Erro no banco de dados durante a inserção da hashtag: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problema no salvamento da mensagem. Ela é muito extensa." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problema no salvamento da mensagem. Usuário desconhecido." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4964,7 +6309,7 @@ msgstr "" "novamente daqui a alguns minutos." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4973,353 +6318,407 @@ msgstr "" "publique novamente daqui a alguns minutos." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Você está proibido de publicar mensagens neste site." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "O tipo fornecido ao método saveKnownGroups é incorreto" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Não foi possível salvar a informação do grupo local." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "Não é possível revogar a função \"%1$s\" do usuário #%2$d; não existe." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" +"Não é possível revogar a função \"%1$s\" do usuário #%2$d; erro na base de " +"dados." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "O usuário não tem perfil." +msgstr "Perfil não existe." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Não foi possível salvar os avisos do site." +msgstr "Não foi salvar gravar a categoria." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Você está proibido de assinar." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Já assinado!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "O usuário bloqueou você." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Não assinado!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Não foi possível excluir a auto-assinatura." +msgstr "Não foi possível salvar a assinatura." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Não foi possível excluir o token de assinatura OMB." +msgstr "Não foi possível salvar a assinatura." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Não foi possível excluir a assinatura." +msgstr "Não foi possível salvar a assinatura." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s agora está acompanhando suas mensagens no %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Nenhum usuário definido para o modo de usuário único." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Não foi possível criar o grupo." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Não foi possível definir a URI do grupo." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Não foi possível salvar a informação do grupo local." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Alterar as suas configurações de perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Enviar um avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Alterar a sua senha" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Configurações de uso do e-mail" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Mude a aparência do seu perfil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Outras opções" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Outras" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Página sem título" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Navegação primária no site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e fluxo de mensagens dos amigos" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Pessoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Altere seu e-mail, avatar, senha, perfil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Conta" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conecte-se a outros serviços" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Conectar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Altere as configurações do site" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administrar" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convide seus amigos e colegas para unir-se a você no %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Sair do site" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Criar uma conta" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrar-se" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Autentique-se no site" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Entrar" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procure por pessoas ou textos" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Pesquisar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "Mensagem do site" +msgstr "Avisos do site" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Visualizações locais" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Notícia da página" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Navegação secundária no site" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Ajuda" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Sobre" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Termos de uso" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Privacidade" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Fonte" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Contato" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Mini-aplicativo" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Licença do software StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5329,13 +6728,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** é um serviço de microblog." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5343,352 +6745,466 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" "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." +"versão %s, disponível sob a [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licença do conteúdo do site" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O conteúdo e os dados de %1$s são privados e confidenciais." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Conteúdo e dados licenciados sob %1$s. Todos os direitos reservados." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Conteúdo e dados licenciados pelos colaboradores. Todos os direitos " "reservados." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Todo o conteúdo e dados de %1$s estão disponíveis sob a licença %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Paginação" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Próximo" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Anterior" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "Era esperado um elemento raiz da fonte, mas foi obtido o documento XML " "inteiro." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Imagem" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Ainda não é possível manipular conteúdo remoto." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Ainda não é possível manipular conteúdo XML incorporado." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Ainda não é possível manipular conteúdo Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Você não pode fazer alterações neste site." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Não foi possível excluir as configurações da aparência." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Configuração básica do site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Configuração da aparência" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Aparência" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Configuração do usuário" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Usuário" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Configuração do acesso" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Configuração dos caminhos" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Configuração das sessões" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Editar os avisos do site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Configurações das estatísticas" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Os recursos de API exigem acesso de leitura e escrita, mas você possui " "somente acesso de leitura." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Editar a aplicação" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Não foi encontrado nenhuma aplicação para essa chave de consumidor." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Token de acesso incorreto." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Nenhum usuário para esse código." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Não foi possível autenticá-lo." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Não foi possível criar os apelidos." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Não foi possível criar a aplicação." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Não foi possível inserir a mensagem." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" +"Erro no banco de dados durante a inserção do usuário da aplicativo OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Tentou revogar um código desconhecido." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Falha ao eliminar código revogado." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Ícone para esta aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Descreva a sua aplicação em %d caracteres" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Descreva a sua aplicação em %d caracteres" +msgstr[1] "Descreva a sua aplicação em %d caracteres" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Descreva sua aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL do site desta aplicação" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL da fonte" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organização responsável por esta aplicação" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL para o site da organização" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL para o redirecionamento após a autenticação" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Navegador" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Desktop" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Tipo de aplicação: navegador ou desktop" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Somente leitura" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Leitura e escrita" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Acesso padrão para esta aplicação: somente leitura ou leitura e escrita" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Cancelar" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "leitura e escrita" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "somente leitura" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Aprovado em %1$s - acesso \"%2$s\"." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Revogar" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Anexos" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Autor" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Operadora" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Mensagens onde este anexo aparece" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Etiquetas para este anexo" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +#, fuzzy +msgid "Password changing failed." msgstr "Não foi possível alterar a senha" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "Não é permitido alterar a senha" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Bloquear" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "Erro no Ajax" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "O comando foi completado" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "O comando falhou" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Não existe uma mensagem com essa id" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Não existe uma mensagem com essa id." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "O usuário não tem uma \"última mensagem\"" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "O usuário não tem nenhuma \"última mensagem\"." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Não foi possível encontrar um usuário com a identificação %s" +msgid "Could not find a user with nickname %s." +msgstr "Não foi possível encontrar nenhum usuário com a identificação %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Não foi possível encontrar um usuário local com a identificação %s" +msgid "Could not find a local user with nickname %s." +msgstr "" +"Não foi possível encontrar nenhum usuário local com a identificação %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Desculpe, mas esse comando ainda não foi implementado." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Não faz muito sentido chamar a sua própria atenção!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Foi enviada a chamada de atenção para %s" +msgid "Nudge sent to %s." +msgstr "Foi enviada a chamada de atenção para %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5699,55 +7215,64 @@ msgstr "" "Assinantes: %2$s\n" "Mensagens: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Mensagem marcada como favorita." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Você já é um membro desse grupo." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Não foi possível associar o usuário %1$s ao grupo %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s associou-se ao grupo %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Não foi possível remover o usuário %1$s do grupo %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s deixou o grupo %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, fuzzy, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Localização: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Site: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5756,148 +7281,180 @@ msgstr "" "%s é um perfil remoto; você pode só pode enviar mensagens diretas para " "usuários do mesmo servidor." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." +msgstr[1] "" +"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "A mensagem direta para %s foi enviada" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Ocorreu um erro durante o envio da mensagem direta." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Você não pode repetir sua própria mensagem" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Você já repetiu essa mensagem" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Mensagem de %s repetida" +msgid "Notice from %s repeated." +msgstr "A mensagem de %s foi repetida." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Erro na repetição da mensagem." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" -"A mensagem é muito extensa - o máximo são %d caracteres e você enviou %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." +msgstr[1] "" +"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "A resposta a %s foi enviada" +msgid "Reply to %s sent." +msgstr "A resposta para %s foi enviada." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Erro no salvamento da mensagem." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Especifique o nome do usuário que será assinado" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Especifique o nome do usuário que será assinado." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Não é possível assinar perfis OMB com comandos." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Efetuada a assinatura de %s" +msgid "Subscribed to %s." +msgstr "Foi efetuada a assinatura de $s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Especifique o nome do usuário cuja assinatura será cancelada" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Especifique o nome do usuário cuja assinatura será cancelada." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Cancelada a assinatura de %s" +msgid "Unsubscribed from %s." +msgstr "Foi cancelada a assinatura de %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "O comando não foi implementado ainda." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notificação desligada." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Não é possível desligar a notificação." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notificação ligada." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Não é possível ligar a notificação." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "O comando para autenticação está desabilitado" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "O comando para autenticação está desabilitado." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" "Este link é utilizável somente uma vez e é válido somente por dois minutos: %" -"s" +"s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Cancelada a assinatura de %s" +msgid "Unsubscribed %s." +msgstr "Foi cancelada a assinatura de %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Você não está assinando ninguém." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Você já está assinando esta pessoa:" msgstr[1] "Você já está assinando estas pessoas:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Ninguém o assinou ainda." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Esta pessoa está assinando você:" msgstr[1] "Estas pessoas estão assinando você:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Você não é membro de nenhum grupo." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Você é membro deste grupo:" msgstr[1] "Você é membro destes grupos:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5978,91 +7535,137 @@ msgstr "" "tracks - não implementado ainda\n" "tracking - não implementado ainda\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Não foi encontrado nenhum arquivo de configuração. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "Eu procurei pelos arquivos de configuração nos seguintes lugares: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Você pode querer executar o instalador para corrigir isto." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Ir para o instalador." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +#, fuzzy +msgctxt "MENU" msgid "IM" msgstr "MI" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Atualizações via mensageiro instantâneo (MI)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Atualizações via SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Conexões" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Aplicações autorizadas conectadas" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Erro no banco de dados" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Enviar arquivo" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" "Você pode enviar sua imagem de fundo. O tamanho máximo do arquivo é de 2Mb." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Ativado" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Desativado" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Restaurar" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "A aparência padrão foi restaurada." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Excluir das favoritas" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Acrescentar às favoritas" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Tornar favorita" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportar os dados" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6093,8 +7696,13 @@ msgstr "Ir" msgid "Grant this user the \"%s\" role" msgstr "Associa o papel \"%s\" a este usuário" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 letras minúsculas ou números, sem pontuações ou espaços" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL para o site ou blog do grupo ou tópico" #: lib/groupeditform.php:168 @@ -6102,64 +7710,118 @@ msgid "Describe the group or topic" msgstr "Descreva o grupo ou tópico" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Descreva o grupo ou tópico em %d caracteres." +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Descreva o grupo ou tópico em %d caracteres." +msgstr[1] "Descreva o grupo ou tópico em %d caracteres." -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." 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 "" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Apelidos extras para o grupo, separado por vírgulas ou espaços, no máximo %d" +msgstr[1] "" "Apelidos extras para o grupo, separado por vírgulas ou espaços, no máximo %d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupo" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Bloqueados" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s usuários bloqueados" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Grupo %s" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Membros" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Membros do grupo %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Bloqueado" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "Usuários bloqueados de %s" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Editar propriedades do grupo %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Logo" +msgstr "Logotipo" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" -msgstr "Adicionar ou editar logo de %s" +msgstr "Adicionar ou editar o logotipo de %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Adicionar ou editar a aparência de %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupos com mais membros" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupos com mais mensagens" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Etiquetas nas mensagens do grupo %s" @@ -6173,38 +7835,57 @@ msgstr "Esta página não está disponível em um tipo de mídia que você aceit msgid "Unsupported image file format." msgstr "Formato de imagem não suportado." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "O arquivo é muito grande. O tamanho máximo é de %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Envio parcial." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Erro no sistema durante o envio do arquivo." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Imagem inválida ou arquivo corrompido." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Nosso arquivo foi perdido." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Tipo de arquivo desconhecido" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "Mb" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "Mb" +msgstr[1] "Mb" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "Kb" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "Kb" +msgstr[1] "Kb" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -6216,10 +7897,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Fonte da caixa de entrada desconhecida %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Entrar" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Sair" @@ -6232,27 +7909,29 @@ msgstr "Autentique-se com um nome de usuário e uma senha" msgid "Sign up for a new account" msgstr "Cadastre-se para uma nova conta" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Confirmação do endereço de e-mail" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Olá, %s.\n" "\n" @@ -6267,13 +7946,16 @@ msgstr "" "Obrigado pela sua atenção, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s agora está acompanhando suas mensagens no %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6283,9 +7965,13 @@ msgstr "" "pode bloqueá-lo da sua lista de assinantes e reportá-lo como spammer ao " "administrador do site em %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6293,10 +7979,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s agora está acompanhando suas mensagens no %2$s.\n" "\n" @@ -6309,21 +7995,25 @@ msgstr "" "----\n" "Altere seu endereço de e-mail e suas opções de notificação em %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Descrição: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Novo endereço de e-mail para publicar no %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6332,7 +8022,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Você tem um novo endereço para publicação no %1$s.\n" "\n" @@ -6343,33 +8033,38 @@ msgstr "" "Atenciosamente,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "Mensagem de %s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Confirmação de SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" "%s: confirme que você é o proprietário desse número de telefone com esse " "código:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Você teve a atenção chamada por %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6396,14 +8091,18 @@ msgstr "" "Atenciosamente,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nova mensagem particular de %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6436,14 +8135,19 @@ msgstr "" "Atenciosamente,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) marcou sua mensagem como favorita" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6481,7 +8185,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6492,13 +8196,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) enviou uma mensagem citando você" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6561,7 +8272,7 @@ msgstr "" "privadas para envolver outras pessoas em uma conversa. Você também pode " "receber mensagens privadas." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "de" @@ -6581,24 +8292,27 @@ msgstr "Desculpe-me, mas este não é seu endereço de e-mail para recebimento." msgid "Sorry, no incoming email allowed." msgstr "Desculpe-me, mas não é permitido o recebimento de e-mails." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Tipo de mensagem não suportado: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 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 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 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 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6606,87 +8320,137 @@ 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 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "O arquivo foi apenas parcialmente enviado." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Falta uma pasta temporária." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Erro ao salvar o arquivo no disco." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "O arquivo a ser enviado foi barrado por causa de sua extensão." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "O arquivo excede a quota do usuário." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Não foi possível mover o arquivo para o diretório de destino." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Não foi possível determinar o tipo MIME do arquivo." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Tente usar outro formato %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" não é um tipo de arquivo suportado neste servidor. Tente usar outro " +"formato de %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s não é um tipo de arquivo suportado neste servidor." +msgid "\"%s\" is not a supported file type on this server." +msgstr "\"%s\" não é um tipo de arquivo suportado neste servidor." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Enviar uma mensagem direta" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Selecione uma operadora" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Não assinado!" + +#: lib/messageform.php:153 msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Caracteres disponíveis" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"A identificação deve conter apenas letras minúsculas e números e não pode " +"ter e espaços." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma mensagem" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "E aí, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Anexo" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Anexar um arquivo" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Divulgar minha localização" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Não divulgar minha localização" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6695,51 +8459,55 @@ msgstr "" "esperado. Por favor, tente novamente mais tarde." #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "L" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "O" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "em" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -6755,55 +8523,52 @@ msgstr "Chamar a atenção" msgid "Send a nudge to this user" msgstr "Chame a atenção deste usuário" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Erro na inserção do novo perfil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Erro ao inserir perfil novo." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Erro na inserção do avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Erro ao inserir avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Ocorreu um erro na atualização do perfil remoto" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Erro ao inserir perfil remoto." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Erro na inserção do perfil remoto" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Nota duplicada." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicar a mensagem" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Não foi possível inserir a nova assinatura." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Pessoal" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Respostas" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoritos" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Recebidas" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Suas mensagens recebidas" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Enviadas" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Suas mensagens enviadas" @@ -6812,7 +8577,8 @@ msgstr "Suas mensagens enviadas" msgid "Tags in %s's notices" msgstr "Etiquetas nas mensagens de %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Desconhecido" @@ -6894,9 +8660,11 @@ msgstr "Repetir esta mensagem" msgid "Revoke the \"%s\" role from this user" msgstr "Revoga o papel \"%s\" deste usuário" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Nenhum usuário definido para o modo de usuário único." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "O método da API não foi encontrado!" #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6906,19 +8674,25 @@ msgstr "Isolamento" msgid "Sandbox this user" msgstr "Colocar este usuário em isolamento" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Procurar no site" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Palavra(s)-chave" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Procurar" +msgstr "Pesquisar" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Ajuda da procura" @@ -6992,6 +8766,12 @@ msgstr "Nuvem de etiquetas pessoais definidas pelos outros usuário" msgid "None" msgstr "Nenhuma" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Nome de arquivo inválido." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -7002,26 +8782,30 @@ msgid "The theme file is missing or the upload failed." msgstr "O arquivo do tema não foi localizado ou ocorreu uma erro no envio." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Não foi possível salvar o tema." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Tema inválido: estrutura de diretórios incorreta." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"O tema enviado é muito grande; ele deve ter menos de %d bytes descomprimido." +msgstr[1] "" "O tema enviado é muito grande; ele deve ter menos de %d bytes descomprimido." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Arquivo de tema inválido: está faltando o arquivo css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -7029,12 +8813,16 @@ msgstr "" "O tema contém um nome de arquivo ou de diretório inválido. Use somente " "caracteres ASCII, números e os sinais de sublinhado e hífen." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "O tema contém extensões de arquivo inseguras; pode não ser seguro." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "O tema contém um arquivo do tipo '.%s', que não é permitido." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Ocorreu um erro ao abrir o arquivo do tema." @@ -7042,6 +8830,13 @@ msgstr "Ocorreu um erro ao abrir o arquivo do tema." msgid "Top posters" msgstr "Quem mais publica" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Desbloquear" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Tirar do isolamento" @@ -7066,123 +8861,177 @@ msgstr "Cancelar a assinatura deste usuário" msgid "Unsubscribe" msgstr "Cancelar" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "O usuário %s (%d) não tem nenhum registro do perfil." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "O usuário não tem perfil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Editar o avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Ações do usuário" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Exclusão do usuário em andamento..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Editar as configurações do perfil" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Enviar uma mensagem para este usuário." -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Mensagem" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Papel do usuário" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administrador" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderador" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "alguns segundos atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "cerca de 1 minuto atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "cerca de %d minutos atrás" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "há cerca de um minuto atrás" +msgstr[1] "há cerca de %d minutos atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "cerca de 1 hora atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "cerca de %d horas atrás" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "há cerca de uma hora atrás" +msgstr[1] "há cerca de %d horas atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "cerca de 1 dia atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "cerca de %d dias atrás" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "há cerca de um dia atrás" +msgstr[1] "há cerca de %d dias atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "cerca de 1 mês atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "cerca de %d meses atrás" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "há cerca de um mês atrás" +msgstr[1] "há cerca de %d meses atrás" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "cerca de 1 ano atrás" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" 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." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s não é uma cor válida! Utilize 3 ou 6 caracteres hexadecimais." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" "A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." +msgstr[1] "" +"A mensagem é muito extensa - o máximo são %1$d caracteres e você enviou %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Tamanho inválido." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Não foi especificado nenhum ID de usuário." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 7027150bdf..24f81e72af 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -1,165 +1,208 @@ -# Translation of StatusNet to Russian +# Translation of StatusNet - Core to Russian (Русский) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Kirill -# Author@translatewiki.net: Lockal -# Author@translatewiki.net: Rubin -# Author@translatewiki.net: Александр Сигачёв +# Author: Brion +# Author: Eleferen +# Author: Kirill +# Author: Lockal +# Author: Putnik +# Author: Rubin +# Author: Александр Сигачёв # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:57+0000\n" -"Language-Team: Russian\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:12+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10< =4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Доступ" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Настройки доступа к сайту" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Регистрация" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Запретить анонимным (не авторизовавшимся) пользователям просматривать сайт?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Личное" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Разрешить регистрацию только по приглашениям." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Только по приглашениям" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Отключить новые регистрации." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Закрыта" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Сохранить настройки доступа" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Сохранить" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Нет такой страницы." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Нет такого пользователя." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и друзья, страница %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s и друзья" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Лента друзей %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Лента друзей %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Лента друзей %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Это лента %s и друзей, однако пока никто ничего не отправил." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -168,8 +211,9 @@ msgstr "" "Попробуйте подписаться на большее число людей, [присоединитесь к группе](%%" "action.groups%%) или отправьте что-нибудь сами." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -178,7 +222,11 @@ msgstr "" "Вы можете попробовать «[подтолкнуть %1$s](../%2$s)» из их профиля или " "[написать им что-нибудь](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -187,59 +235,80 @@ msgstr "" "Почему бы не [зарегистрироваться](%%%%action.register%%%%), чтобы " "«подтолкнуть» %s или оставить запись для них?" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Вы и друзья" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Обновлено от %1$s и его друзей на %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "Метод API не найден." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Этот метод требует POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." @@ -247,350 +316,534 @@ msgstr "" "Вы должны указать параметр с именем «device» и одним из значений: sms, im, " "none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Не удаётся обновить пользователя." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "У пользователя нет профиля." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Не удаётся сохранить профиль." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Сервер не смог обработать столько POST-данных (%s байт) из-за текущей " +"конфигурации." +msgstr[1] "" +"Сервер не смог обработать столько POST-данных (%s байта) из-за текущей " +"конфигурации." +msgstr[2] "" "Сервер не смог обработать столько POST-данных (%s байт) из-за текущей " "конфигурации." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Не удаётся сохранить ваши настройки оформления!" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Не удаётся обновить ваше оформление." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Главная" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Лента %s" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Подписки %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Любимое" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Участники группы %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Вы не можете заблокировать самого себя!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Неудача при блокировке пользователя." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Неудача при разблокировке пользователя." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Прямые сообщения от %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Все прямые сообщения от %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Прямые сообщения для %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Все прямые сообщения посланные для %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Отсутствует текст сообщения!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Слишком длинно. Максимальная длина сообщения — %d знаков." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Слишком длинно. Максимальная длина сообщения — %d знак." +msgstr[1] "Слишком длинно. Максимальная длина сообщения — %d знака." +msgstr[2] "Слишком длинно. Максимальная длина сообщения — %d знаков." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Получатель не найден." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" "Не удаётся посылать прямые сообщения пользователям, которые не являются " "Вашими друзьями." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "Не посылайте сообщения сами себе; просто потихоньку скажите это себе." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Нет статуса с таким ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Этот статус уже входит в число любимых." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Не удаётся создать любимую запись." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Этот статус не входит в число ваших любимых." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Не удаётся удалить любимую запись." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Не удаётся следовать за пользователем: профиль не найден." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Не удается включить %s в список поддержки, он уже в Вашем списке." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" "Не удаётся следовать за пользователем, т. к. такого пользователя не " "существует." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Вы не можете перестать следовать за собой." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Необходимо задать два идентификатора или screen_names." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "Необходимо задать два корректных идентификатора или псевдонима." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Не удаётся определить исходного пользователя." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Не удаётся найти целевого пользователя." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Имя должно состоять только из прописных букв и цифр и не иметь пробелов." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Неверное имя." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "URL Главной страницы неверен." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Полное имя слишком длинное (не больше 255 знаков)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Полное имя слишком длинное (максимум 255 символов)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Слишком длинное описание (максимум %d символов)" +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Слишком длинное описание (максимум %d символ)." +msgstr[1] "Слишком длинное описание (максимум %d символа)." +msgstr[2] "Слишком длинное описание (максимум %d символов)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Слишком длинное месторасположение (максимум 255 знаков)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Слишком длинное месторасположение (максимум 255 символов)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Слишком много алиасов! Максимальное число — %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Слишком много алиасов! Максимальное число — %d." +msgstr[1] "Слишком много алиасов! Максимальное число — %d." +msgstr[2] "Слишком много алиасов! Максимальное число — %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ошибочный псевдоним: «%s»." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Алиас «%s» уже используется. Попробуйте какой-нибудь другой." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Алиас не может совпадать с именем." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Группа не найдена." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Вы уже являетесь членом этой группы." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Вы заблокированы из этой группы администратором." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Не удаётся присоединить пользователя %1$s к группе %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Вы не являетесь членом этой группы." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Не удаётся удалить пользователя %1$s из группы %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "Группы %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "Группы %1$s, в которых состоит %2$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "Группы %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "группы на %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Загрузка не удалась." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Недопустимый ключ запроса или верификатор." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Не задан параметр oauth_token." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Неправильный токен" +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Неправильный запрос токена." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Ключ запроса уже авторизован." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." -msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." +msgstr "Проблема с вашим ключом сессии. Пожалуйста, попробуйте ещё раз." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Неверное имя или пароль." -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Ошибка базы данных при удалении пользователя приложения OAuth." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Ошибка базы данных при добавлении пользователя приложения OAuth." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Ключ запроса %s авторизован. Пожалуйста, обменяйте его на ключ доступа." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Запрос токена %s был запрещен и аннулирован." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Ошибка базы данных при вставке oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Нетиповое подтверждение формы." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "Приложение хочет соединиться с вашей учётной записью" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Разрешить или запретить доступ" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Приложение просит разрешение на<strong>%3$s</strong> данных вашей учётной " +"записи %4$s. Вы должны предоставлять разрешение на доступ к вашей учётной " +"записи %4$s только тем сторонним приложениям, которым вы доверяете." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -602,241 +855,628 @@ msgstr "" "предоставлять разрешение на доступ к вашей учётной записи %4$s только тем " "сторонним приложениям, которым вы доверяете." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" -msgstr "Настройки" +msgstr "Аккаунт" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Имя" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Пароль" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Запретить" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Отмена" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Разрешить" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Разрешить или запретить доступ к информации вашей учётной записи." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Разрешить доступ к информации вашей учётной записи." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Авторизация отменена." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Ключ запроса %s отозван." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Приложение успешно авторизовано" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Пожалуйста, вернитесь в приложение и введите следующий код безопасности, " +"чтобы завершить процесс." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Вы успешно авторизовали %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Пожалуйста, вернитесь в %s и введите следующий код безопасности для " +"завершения процесса." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Этот метод требует POST или DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Вы не можете удалять статус других пользователей." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Нет такой записи." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Невозможно повторить собственную запись." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Запись уже повторена." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP-метод не поддерживается." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Неподдерживаемый формат: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Статус удалён." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Не найдено статуса с таким ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Можно удалить только в формате Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Не удаётся удалить эту запись." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Запись %d удалена" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Клиент должен предоставить параметр «status» со значением." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Слишком длинная запись. Максимальная длина — %d знаков." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Слишком длинная запись. Максимальная длина — %d знак." +msgstr[1] "Слишком длинная запись. Максимальная длина — %d знака." +msgstr[2] "Слишком длинная запись. Максимальная длина — %d знаков." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Не найдено." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Родительская запись не найдена." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "Максимальная длина записи — %d символов, включая URL вложения." +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Максимальная длина записи — %d символ, включая URL вложения." +msgstr[1] "Максимальная длина записи — %d символа, включая URL вложения." +msgstr[2] "Максимальная длина записи — %d символов, включая URL вложения." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Неподдерживаемый формат." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Любимое от %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "Обновления %1$s, отмеченные как любимые %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "Обновления %1$s, отмеченные как любимые %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Не удаётся сгенерировать информацию о группе: %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Обновления, упоминающие %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s обновил этот ответ на сообщение: %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Общая лента %s" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Обновления %s от всех!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Нереализованный метод." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Повторено для %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Повторы за %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Записи с тегом %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Обновления с тегом %1$s на %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Только пользователь может добавлять в свою ленту." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Принимать только AtomPub для atom-каналов." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "POST-запрос Atom должен быть объектом Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "POST-запрос Atom должен быть объектом Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "POST-запрос Atom должен быть объектом Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Возможна обработка только POST-запросов." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Невозможно обработать действия объекта типа «%s»" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Найти запись по содержимому" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Запись с URI «%s» уже существует." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Запись AtomPub с неизвестным целевым URI %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Метод API реконструируется." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Метод API не найден." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Нет такого профиля." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Не удаётся вставить новую подписку." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Возможна обработка только POST-запросов." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Возможна обработка только POST-запросов." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Неизвестно" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Добавить в любимые" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Нет такого профиля." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Участники группы %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Группы, в которых состоит %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Возможна обработка только POST-запросов." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Неизвестно" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Все участники" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Нет такого файла." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Не удаётся удалить любимую запись." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Нет такой группы." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Все участники" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP-метод не поддерживается." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Нет такого профиля." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Вы не подписаны на этот профиль." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Невозможно удалить подписку на самого себя." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Люди подписанные на %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Возможна обработка только POST-запросов." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Неподдерживаемый тип файла" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Нет такого вложения." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Нет имени." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Нет размера." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Неверный размер." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" -msgstr "Аватара" +msgstr "Аватар" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Вы можете загрузить свою аватару. Максимальный размер файла составляет %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Пользователь без соответствующего профиля." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Настройки аватары" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Просмотр" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Удалить" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Загрузить" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Обрезать" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Файл не загружен." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Подберите нужный квадратный участок для вашей аватары" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Потеряна информация о файле." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." -msgstr "Аватара обновлена." +msgstr "Аватар обновлён." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Неудача при обновлении аватары." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." -msgstr "Аватара удалена." +msgstr "Аватар удалён." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Вы уже заблокировали этого пользователя." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Заблокировать пользователя." -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -848,175 +1488,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Нет" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Не блокировать этого пользователя" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Да" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Заблокировать пользователя." -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Не удаётся сохранить информацию о блокировании." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Нет такой группы." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "Заблокированные профили %s" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Заблокированные профили %1$s, страница %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "Список пользователей, заблокированных от присоединения к этой группе." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Разблокировать пользователя в группе." -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Разблокировать" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Разблокировать пользователя." #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Отправить в %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Нет кода подтверждения." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Код подтверждения не найден." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Это не Ваш код подтверждения!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Нераспознанный тип адреса %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Этот адрес уже подтверждён." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Не удаётся обновить пользователя." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Не удаётся удалить подверждение по электронному адресу." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Не удаётся удалить подверждение адреса." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Подтвердить адрес" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Адрес «%s» подтверждён для вашего аккаунта." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Дискуссия" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Записи" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Вы должны войти в систему, чтобы удалить приложение." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Приложение не найдено." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Вы не являетесь владельцем этого приложения." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." -msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." +msgstr "Проблема с вашим ключом сессии." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Удалить приложение" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1027,31 +1711,88 @@ msgstr "" "пользователей." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Не удаляйте это приложение" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Удалить это приложение" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Вы должны авторизоваться, чтобы удалить группу." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Нет имени или ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Вы не можете удалить эту группу." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Не удаётся удалить группу %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Группа %s удалена" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Удалить группу" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Вы действительно хотите удалить эту группу? Это повлечёт удаление всех " +"данных о группе из базы данных без возможности восстановления. Открытые " +"записи в этой группе по прежнему останутся в личных лентах." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Не удаляйте эту группу" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Удалить эту группу" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не авторизован." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Не удаётся удалить эту запись." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1059,21 +1800,24 @@ msgstr "" "Вы окончательно удаляете запись. После того, как это будет сделано, " "восстановление будет невозможно." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Удалить запись" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Вы уверены, что хотите удалить эту запись?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Не удалять эту запись" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1104,62 +1848,71 @@ msgstr "Удалить этого пользователя" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Оформление" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Настройки оформления для этого сайта StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Настройки оформления для этого сайта StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Неверный URL логотипа." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Неверный URL логотипа SSL." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Тема не доступна: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Изменить логотип" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Логотип сайта" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Логотип SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Изменить тему" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Тема сайта" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Тема для сайта." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Особая тема" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Вы можете загрузить особую тему StatusNet в виде ZIP-архива." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Изменение фонового изображения" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Фон" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1169,75 +1922,84 @@ msgstr "" "составляет %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Включить" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Отключить" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Включить или отключить показ фонового изображения." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Растянуть фоновое изображение" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Изменение цветовой гаммы" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Содержание" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Боковая панель" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Текст" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Ссылки" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Расширенный" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Особый CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Использовать значения по умолчанию" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Восстановить оформление по умолчанию" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Восстановить значения по умолчанию" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Сохранить" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Сохранить оформление" @@ -1254,109 +2016,129 @@ msgstr "Добавить в любимые" msgid "No such document \"%s\"" msgstr "Нет такого документа «%s»" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Изменить приложение" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Вы должны авторизоваться, чтобы изменить приложение." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Нет такого приложения." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Воспользуйтесь этой формой, чтобы изменить приложение." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Имя обязательно." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." -msgstr "Имя слишком длинное (не больше 255 знаков)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "Слишком длинное имя (максимум 255 символов)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Описание обязательно." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "URL источника слишком длинный." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "URL источника недействителен." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Организация обязательна." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "Слишком длинное название организации (максимум 255 знаков)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "Слишком длинное название организации (максимум 255 символов)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Домашняя страница организации обязательна." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Обратный вызов слишком длинный." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "URL-адрес обратного вызова недействителен." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Не удаётся обновить приложение." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Изменить информацию о группе %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Вы должны авторизоваться, чтобы создать новую группу." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Вы должны быть администратором, чтобы изменять информацию о группе." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Заполните информацию о группе в следующие поля" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "Слишком длинное описание (максимум %d символов)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неверный алиас: «%s»" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Не удаётся обновить информацию о группе." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Не удаётся создать алиасы." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Настройки сохранены." @@ -1374,12 +2156,12 @@ msgstr "Управление процессом получения электр #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Адрес эл. почты" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Подтверждённый в настоящее время электронный адрес." @@ -1388,14 +2170,14 @@ msgstr "Подтверждённый в настоящее время элект #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Удалить" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1403,25 +2185,19 @@ msgstr "" "Ожидание подтверждения этого адреса. Проверьте свой почтовый ящик (и папку " "для спама!), там будут дальнейшие инструкции." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Отмена" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Электронный адрес вида \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1429,120 +2205,127 @@ msgstr "Добавить" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Входящий электронный адрес" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Я хочу отправлять записи по электронной почте." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" "Отправляйте электронные письма на этот адрес для отсылки новых записей." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" -"Создать новый адрес электронной почты для отсылки сообщений; отменяет старый " +"Создаёт новый адрес электронной почты для отсылки сообщений; отменяет старый " "адрес." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Новый" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Настройки эл. почты" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Уведомлять меня о новых подписчиках по почте." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Посылать мне сообщение по электронной почте, если кто-нибудь добавит мою " "запись в число любимых." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" "Посылать мне сообщение по электронной почте, если кто-нибудь пошлёт мне " "приватное сообщение." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" "Посылать мне сообщение по электронной почте, если кто-нибудь пошлёт мне «@-" "ответ»." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" "Разрешить друзьям «подталкивать» меня и посылать мне электронные сообщения." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Я хочу отправлять записи по электронной почте." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Опубликовать MicroID для моего электронного адреса." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Настройки эл. почты сохранены." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Нет электронного адреса." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Не удаётся стандартизировать этот электронный адрес" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неверный электронный адрес." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Это уже Ваш электронный адрес." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Этот электронный адрес уже задействован другим пользователем." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Не удаётся вставить код подтверждения." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1554,50 +2337,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Нет подтверждения отказа." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Это неверный адрес эл. почты." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Не удаётся удалить подверждение по электронному адресу." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Подтверждение эл. почты отменено." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Это не Ваш электронный адрес." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Адрес эл. почты удалён." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Нет входящего электронного адреса." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Не удаётся обновить пользовательскую запись." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Входящий электронный адрес удалён." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Новый входящий электронный адрес добавлен." @@ -1605,11 +2394,11 @@ msgstr "Новый входящий электронный адрес добав msgid "This notice is already a favorite!" msgstr "Эта запись уже входит в число любимых!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Разлюбить" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Популярные записи" @@ -1647,7 +2436,7 @@ msgstr "" "запись в число любимых?" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Любимые записи %s" @@ -1716,7 +2505,7 @@ msgstr "Не удаётся преобразовать ключ запроса msgid "Remote service uses unknown version of OMB protocol." msgstr "Удалённый сервис использует неизвестную версию протокола OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Ошибка обновления удалённого профиля." @@ -1744,19 +2533,23 @@ msgstr "Вы не можете назначать пользователю ро msgid "User already has this role." msgstr "Пользователь уже имеет эту роль." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Профиль не определен." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Нет профиля с таким ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Группа не определена." @@ -1773,7 +2566,7 @@ msgstr "Пользователь уже заблокирован из групп msgid "User is not a member of group." msgstr "Пользователь не является членом этой группы." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Заблокировать пользователя из группы." @@ -1822,8 +2615,10 @@ msgstr "" "Настройте внешний вид группы, установив фоновое изображение и цветовую гамму " "на ваш выбор." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Не удаётся обновить ваше оформление." @@ -1843,6 +2638,14 @@ msgstr "" "Здесь вы можете загрузить логотип для группы. Максимальный размер файла " "составляет %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Загрузить" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Обрезать" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Подберите нужный квадратный участок для вашего логотипа." @@ -1855,49 +2658,56 @@ msgstr "Логотип обновлён." msgid "Failed updating logo." msgstr "Неудача при обновлении логотипа." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "Участники группы %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "Участники группы %1$s, страница %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "Список пользователей, являющихся членами этой группы." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Настройки" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "Блокировать" +msgstr "Заблокировать" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Заблокировать этого пользователя" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Сделать пользователя администратором группы" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Сделать администратором" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Сделать этого пользователя администратором" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "Лента %s" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1925,7 +2735,7 @@ msgid "" msgstr "" "Группы на сайте %%%%site.name%%%% позволяют искать и общаться с людьми с " "общими интересами. После присоединения к группе и вы сможете отправлять " -"сообщения до всех её участников, используя команду «!имягруппы». Не видите " +"сообщения для всех её участников, используя команду «!имягруппы». Не видите " "группу, которая вас интересует? Попробуйте [найти её](%%%%action.groupsearch%" "%%%) или [создайте собственную](%%%%action.newgroup%%%%)!" @@ -1969,15 +2779,18 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы [создать " "группу](%%action.newgroup%%) самому?" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Только администратор может разблокировать участников группы." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Пользователь не заблокировал вас из группы." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Ошибка при удалении данного блока." @@ -2027,7 +2840,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2038,64 +2854,64 @@ msgstr "" "мессенджере или в GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Настройки IM" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Посылать мне записи через Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Публиковать запись, когда мой Jabber/GTalk - статус изменяется." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Посылать мне реплики через Jabber/GTalk от людей, на которых я не подписан." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Опубликовать MicroID для моего Jabber/GTalk - адреса." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Предпочтения сохранены." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Не Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Не удаётся стандартизировать этот Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Неверный код Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Это уже Ваш Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Этот Jabber ID уже используется другим пользователем." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2105,28 +2921,28 @@ msgstr "" "%s для отправки вам сообщений." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Это неверный IM-адрес." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Не удаётся удалить подверждение IM." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Подтверждение IM отменено." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Это не Ваш Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Адрес IM удалён." @@ -2146,53 +2962,86 @@ msgstr "" "Это ваш ящик входящих сообщений, в котором хранятся поступившие личные " "сообщения." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Приглашения отключены." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" "Вы должны авторизоваться, чтобы приглашать других пользователей использовать " "%s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Неверный электронный адрес: %s" +msgid "Invalid email address: %s." +msgstr "Неправильный адрес электронной почты: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Приглашение(я) отослано(ы)" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Приглашения отправлены" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Пригласить новых пользователей" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Вы уже подписаны на пользователя:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" -"Это люди, которые уже являются пользователями, и на которых Вы подписались " +msgstr[0] "" +"Это люди, которые уже являются пользователями, и на которых вы подписались " +"автоматически:" +msgstr[1] "" +"Это люди, которые уже являются пользователями, и на которых вы подписались " +"автоматически:" +msgstr[2] "" +"Это люди, которые уже являются пользователями, и на которых вы подписались " "автоматически:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Приглашение(я) отослано(ы) следующим адресатам:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Приглашение отправлено следующему адресату:" +msgstr[1] "Приглашения отправлены следующим адресатам:" +msgstr[2] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2200,41 +3049,52 @@ msgstr "" "Мы сообщим Вам, если приглашения будут приняты и вновь приглашенные " "зарегистрируются на сайте. Спасибо за помощь в росте нашего сообщества!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "В этой форме вы можете пригласить друзей и коллег на этот сервис." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Почтовый адрес" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Адреса друзей, которых вы хотите пригласить (по одному на строчку)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Личное сообщение" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Можно добавить к приглашению личное сообщение." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Отправить" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s пригласил вас присоединиться к нему на %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2295,13 +3155,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Вы должны авторизоваться для вступления в группу." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Нет имени или ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s вступил в группу %2$s" @@ -2310,17 +3164,122 @@ msgstr "%1$s вступил в группу %2$s" msgid "You must be logged in to leave a group." msgstr "Вы должны авторизоваться, чтобы покинуть группу." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Вы не являетесь членом этой группы." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s покинул группу %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Лицензия" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Лицензия этого сайта StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Неверный выбор лицензии." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Вы должны указать владельца содержания при использовании лицензии «Все права " +"защищены»." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Неверное название лицензии. Максимальная длина 255 символов." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Неверный URL лицензии." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Неверный URL изображения лицензии." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "URL лицензии должен быть пустым или действительным URL." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Изображение лицензии должно быть пустым или действительным URL." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Выбор лицензии" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Личное" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Все права защищены" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Тип" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Выбор лицензии" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Подробности лицензии" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Владелец" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Имя владельца содержимого сайта (если применимо)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Название лицензии" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Название лицензии." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL-адрес лицензии" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL-адрес для получения дополнительной информации о лицензии." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL изображения лицензии" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL изображения, отображаемого вместе с лицензией." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Сохранить настройки лицензии" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Вы уже авторизовались." @@ -2341,11 +3300,11 @@ msgstr "Вход" msgid "Login to site" msgstr "Авторизоваться" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Запомнить меня" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Автоматическии входить в дальнейшем. Не для общедоступных компьютеров!" @@ -2397,66 +3356,76 @@ msgstr "Невозможно сделать %1$s администратором msgid "No current status." msgstr "Нет текущего состояния." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Новое приложение" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Вы должны авторизоваться, чтобы зарегистрировать приложение." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Используйте эту форму для создания нового приложения." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "URL источника обязателен." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Не удаётся создать приложение." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Новая группа" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Используйте эту форму для создания новой группы." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Новое сообщение" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Вы не можете послать сообщение этому пользователю." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Нет контента!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Нет адресата." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Не посылайте сообщения сами себе; просто потихоньку скажите это себе." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Сообщение отправлено" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Прямое сообщение для %s послано." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ошибка AJAX" @@ -2464,7 +3433,7 @@ msgstr "Ошибка AJAX" msgid "New notice" msgstr "Новая запись" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Запись опубликована" @@ -2516,10 +3485,11 @@ msgstr "Все обновления, соответствующие поиско #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Этот пользователь не разрешает «подталкивать» его или ещё не указал свой " -"email-адрес." +"Этот пользователь не разрешает «подталкивать» его или ещё не подтвердил или " +"не указал свой email-адрес." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2529,72 +3499,100 @@ msgstr "«Подталкивание» послано" msgid "Nudge sent!" msgstr "«Подталкивание» отправлено!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Вы должны авторизоваться, чтобы просматривать свои приложения." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Приложения OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Приложения, которые вы зарегистрировали" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Вы пока не зарегистрировали ни одного приложения." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Подключённые приложения" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Вы разрешили доступ к учётной записи следующим приложениям." +msgid "The following connections exist for your account." +msgstr "Следующие приложения подключены к вашей учётной записи." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Вы не являетесь пользователем этого приложения." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Не удаётся отозвать доступ для приложения: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Доступ для %1$s и ключ доступа, начинающийся на %2$s, успешно отозваны." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Вы не разрешили приложениям использовать вашу учётную запись." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "Разработчики могут изменять настройки регистрации своих приложений " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" +"Вы разработчик? [Зарегистрируйте клиентское приложение OAuth](%s) для " +"использования с этим сайтом StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Уведомление не имеет профиля." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Статус %1$s на %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Тип содержимого %s не поддерживается." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Только %s URL в простом HTTP, пожалуйста." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -2606,36 +3604,45 @@ msgstr "Поиск людей" msgid "Notice Search" msgstr "Поиск в записях" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Другие настройки" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Управление другими опциями." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (бесплатный сервис)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Сокращать URL с помощью" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Автоматически использовать выбранный сервис" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Показать оформления профиля" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Показать или скрыть оформления профиля." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Сервис сокращения URL слишком длинный (максимум 50 символов)." #: actions/otp.php:69 @@ -2699,7 +3706,7 @@ msgid "6 or more characters" msgstr "6 или больше знаков" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Подтверждение" @@ -2711,11 +3718,11 @@ msgstr "Тот же пароль, что и выше" msgid "Change" msgstr "Изменить" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Пароль должен быть длиной не менее 6 символов." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Пароли не совпадают." @@ -2735,156 +3742,273 @@ msgstr "Не удаётся сохранить новый пароль." msgid "Password saved." msgstr "Пароль сохранён." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Пути" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Настройки путей и серверов для этого сайта StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Настройки пути и сервера для этого сайта StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Директория тем не доступна для чтения: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Директория аватар не доступна для записи: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Директория фоновых изображений не доступна для записи: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Директория локализаций не доступна для чтения: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Неверный SSL-сервер. Максимальная длина составляет 255 символов." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Сайт" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Сервер" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Имя хоста сервера сайта." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Путь" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Путь к сайту" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Путь к сайту." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Путь к локализациям" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Директория локализации" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "Путь к директории локализаций" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Короткие URL" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Использовать ли короткие (более читаемые и запоминаемые) URL-адреса?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Тема" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Сервер темы" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Сервер для тем." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Путь темы" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Веб-путь к темам." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Директория темы" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Аватары" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Сервер аватар" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Путь к аватарам" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Директория аватар" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Фоновые изображения" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Сервер фонового изображения" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Путь к фоновому изображению" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Директория фонового изображения" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Никогда" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Иногда" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Всегда" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Использовать SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Когда использовать SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-сервер" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Сервер, которому направлять SSL-запросы" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-сервер для темы (по умолчанию: SSL-сервер)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL-путь" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-путь к темам (по умолчанию: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Директория" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Директория, в которой расположены темы." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Аватары" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Сервер аватар" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Сервер для аватаров." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Путь к аватарам" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Веб-путь к аватарам." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Директория аватар" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Директория, в которой расположены аватары." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Фоновые изображения" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Сервер для фоновых изображений." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Веб-путь к фоновым изображениям." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Сервер для фоновых изображений на страницах SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Веб-путь к фоновым изображениям для SSL-страниц." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Директория, в которой расположены фоновые изображения." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Вложения" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Сервер для вложений." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Веб-путь к вложениям." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Сервер для вложений на SSL-страницах." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Веб-путь к вложениям на SSL-страницах." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Директория, в которой расположены вложения." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Никогда" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Иногда" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Всегда" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Использовать SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Когда использовать SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Сервер, которому направлять SSL-запросы." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Сохранить пути" @@ -2920,139 +4044,184 @@ msgstr "Ошибочное содержание записи." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Лицензия записи «%1$s» не совместима с лицензией сайта «%2$s»." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Настройки профиля" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Вы можете обновить ваш профиль ниже, так что люди узнают о вас немного " "больше." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Информация профиля" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 латинских строчных буквы или цифры, без пробелов" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "" +"1-64 латинских строчных буквы или цифры, без знаков препинания и пробелов" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Полное имя" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Главная" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "Адрес твоей страницы, дневника или профиля на другом портале" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "Адрес вашей домашней страницы, блога или профиля на другом сайте." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Опишите себя и свои увлечения при помощи %d символов" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Опишите себя и свои увлечения при помощи %d символа" +msgstr[1] "Опишите себя и свои увлечения при помощи %d символов" +msgstr[2] "Опишите себя и свои увлечения при помощи %d символов" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Опишите себя и свои интересы" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Биография" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Месторасположение" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Где вы находитесь, например «Город, область, страна»" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Делиться своим текущим местоположением при отправке записей" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Теги" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Теги для самого себя (буквы, цифры, -, ., и _), разделенные запятой или " "пробелом" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Язык" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Предпочитаемый язык" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Часовой пояс" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "В каком часовом поясе Вы обычно находитесь?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Автоматически подписываться на всех, кто подписался на меня" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Слишком длинная биография (максимум %d символов)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Слишком длинная биография (максимум %d символ)." +msgstr[1] "Слишком длинная биография (максимум %d символа)." +msgstr[2] "Слишком длинная биография (максимум %d символов)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Часовой пояс не выбран." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Слишком длинный язык (не может быть более 50 символов)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Слишком длинный язык (максимум 50 символов)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Неверный тег: «%s»" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Не удаётся обновить пользователя для автоподписки." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Не удаётся сохранить настройки местоположения." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Не удаётся сохранить профиль." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Не удаётся сохранить теги." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Настройки сохранены." @@ -3130,25 +4299,38 @@ msgstr "" "Микроблоггинг), созданный с использованием свободного программного " "обеспечения [StatusNet](http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Общее облако тегов" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Самые популярные теги на %s на данный момент " +msgid "These are most popular recent tags on %s" +msgstr "Самые популярные недавние теги на %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Пока никто на оставлял записей с [тегами](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Станьте первым отправителем!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3157,7 +4339,7 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы отправить " "первым?" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Облако тегов" @@ -3270,14 +4452,14 @@ msgid "Unexpected password reset." msgstr "Нетиповая переустановка пароля." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Пароль должен быть длиной не менее 6 символов." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Пароль и его подтверждение не совпадают." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Ошибка в установках пользователя." @@ -3285,7 +4467,7 @@ msgstr "Ошибка в установках пользователя." msgid "New password successfully saved. You are now logged in." msgstr "Новый пароль успешно сохранён. Вы авторизовались." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Простите, регистрация только по приглашению." @@ -3297,7 +4479,7 @@ msgstr "Извините, неверный пригласительный код msgid "Registration successful" msgstr "Регистрация успешна!" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрация" @@ -3305,21 +4487,21 @@ msgstr "Регистрация" msgid "Registration not allowed." msgstr "Регистрация недопустима." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" "Вы не можете зарегистрироваться, если Вы не подтверждаете лицензионного " "соглашения." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Такой электронный адрес уже задействован." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Неверное имя или пароль." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3328,34 +4510,38 @@ msgstr "" "получите возможность публиковать короткие сообщения и устанавливать связи с " "друзьями и коллегами. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 латинских строчных букв или цифр, без пробелов. Обязательное поле." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 или более символов. Обязательное поле." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Тот же пароль что и сверху. Обязательное поле." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Email" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Нужна только для обновлений, осведомлений и восстановления пароля." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Полное имя, предпочтительно Ваше настоящее имя" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "Адрес твоей страницы, дневника или профиля на другом портале" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." @@ -3363,23 +4549,23 @@ msgstr "" "Я понимаю, что содержание и данные %1$s являются частными и " "конфиденциальными." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Авторским правом на мои тексты и файлы обладает %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Авторские права на мои тексты и файлы остаются за мной." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Все права защищены." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3388,7 +4574,7 @@ msgstr "" "Мои тексты и файлы доступны на условиях %s, за исключением следующей личной " "информации: пароля, почтового адреса, номера мессенджера и номера телефона." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3422,7 +4608,7 @@ msgstr "" "Спасибо за то, что присоединились к нам, надеемся, что вы получите " "удовольствие от использования данного сервиса!" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3465,7 +4651,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес URL твоего профиля на другом подходящем сервисе микроблогинга" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Подписаться" @@ -3501,7 +4687,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Повторено" @@ -3510,7 +4696,7 @@ msgid "Repeated!" msgstr "Повторено!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Ответы для %s" @@ -3590,13 +4776,13 @@ msgstr "Пользователь уже в режиме песочницы." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Сессии" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Настройки сессии для этого сайта StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Настройки сессии для этого сайта StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3615,7 +4801,6 @@ msgid "Turn on debugging output for sessions." msgstr "Включить отладочный вывод для сессий." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Сохранить настройки сайта" @@ -3628,28 +4813,29 @@ msgid "Application profile" msgstr "Профиль приложения" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Иконка" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Имя" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Организация" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистика" @@ -3667,6 +4853,11 @@ msgstr "Действия приложения" msgid "Reset key & secret" msgstr "Сбросить ключ и секретную фразу" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Удалить" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Информация о приложении" @@ -3760,77 +4951,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Это способ поделиться тем, что вам нравится." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "Группа %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "Группа %1$s, страница %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Профиль группы" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Запись" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Алиасы" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Действия группы" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Лента записей группы %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Лента записей группы %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Лента записей группы %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF для группы %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Участники" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(пока ничего нет)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Все участники" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" -msgstr "Создано" +msgstr "Дата создания" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Участники" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3846,7 +5064,10 @@ msgstr "" "action.register%%%%), чтобы стать участником группы и получить множество " "других возможностей! ([Читать далее](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3859,24 +5080,31 @@ msgstr "" "обеспечении [StatusNet](http://status.net/). Участники обмениваются " "короткими сообщениями о своей жизни и интересах. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Администраторы" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Нет такого сообщения." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Только отправитель и получатель могут читать это сообщение." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Сообщение для %1$s на %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Сообщение от %1$s на %2$s" @@ -3885,47 +5113,67 @@ msgstr "Сообщение от %1$s на %2$s" msgid "Notice deleted." msgstr "Запись удалена." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " с тегом %s" +msgid "%1$s tagged %2$s" +msgstr "%1$s с тегом %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s с тегом %2$s, страница %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, страница %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Лента записей %1$s с тегом %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Лента записей для %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Лента записей для %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Лента записей для %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF для %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "Это лента %1$s, однако %2$s пока ничего не отправил." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Это лента %1$s, однако %1$s пока ничего не отправил." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3933,16 +5181,20 @@ msgstr "" "Видели недавно что-нибудь интересное? Вы ещё не отправили ни одной записи, " "сейчас хорошее время для начала :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Вы можете попробовать «подтолкнуть» %1$s или [написать что-нибудь для них](%%%" -"%action.newnotice%%%%?status_textarea=%2$s)." +"Вы можете попробовать «подтолкнуть» %1$s или [написать что-нибудь для него](%%" +"%%action.newnotice%%%%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3957,7 +5209,9 @@ msgstr "" "сообщения участника **%s** и иметь доступ ко множеству других возможностей! " "([Читать далее](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3969,7 +5223,8 @@ msgstr "" "использованием свободного программного обеспечения [StatusNet](http://status." "net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Повтор за %s" @@ -4083,31 +5338,38 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Сколько нужно ждать пользователям (в секундах) для отправки того же ещё раз." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Уведомление сайта" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Изменить уведомление для всего сайта" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Не удаётся сохранить уведомление сайта." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Максимальная длина уведомления сайта составляет 255 символов." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Текст уведомления сайта" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "Текст уведомления сайта (максимум 255 символов; допустим HTML)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Сохранить уведомление сайта" @@ -4269,7 +5531,7 @@ msgstr "Код не введён" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Снимки" @@ -4325,12 +5587,14 @@ msgstr "Снимки будут отправляться по этому URL-а msgid "Save snapshot settings" msgstr "Сохранить настройки снимка" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Вы не подписаны на этот профиль." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Не удаётся сохранить подписку." @@ -4338,10 +5602,6 @@ msgstr "Не удаётся сохранить подписку." msgid "This action only accepts POST requests." msgstr "Это действие принимает только POST-запросы." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Нет такого профиля." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4352,39 +5612,55 @@ msgstr "" msgid "Subscribed" msgstr "Подписано" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Подписчики %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "Подписчики %1$s, страница %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Это пользователи, которые читают ваши записи." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Эти пользователи читают записи %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "У вас нет подписчиков. Попробуйте подписаться на знакомых людей, и они могут " -"ответить взаимностью" +"ответить взаимностью." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "У %s нет подписчиков. Хотите быть первым?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4393,26 +5669,31 @@ msgstr "" "У %s нет подписчиков. Почему бы не [зарегистрироваться](%%%%action.register%%" "%%) и стать первым?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Подписки %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Подписки %1$s, страница %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Это пользователи, записи которых вы читаете." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Это пользователи, записи которых читает %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4428,16 +5709,27 @@ msgstr "" "пользуетесь [Твиттером](%%action.twittersettings%%), то можете автоматически " "подписаться на тех людей, за которыми уже следите там." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s не просматривает ничьи записи." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Лента записей для %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "СМС" @@ -4475,7 +5767,7 @@ msgid "User profile" msgstr "Профиль пользователя" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Фото" @@ -4539,75 +5831,95 @@ msgstr "" "Лицензия просматриваемого потока «%1$s» несовместима с лицензией сайта «%2$s»." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Пользователь" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Настройки пользователя для этого сайта StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Пользовательские настройки для этого сайта StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Неверное ограничение биографии. Должно быть числом." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" "Неверный текст приветствия. Максимальная длина составляет 255 символов." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Неверная подписка по умолчанию: «%1$s» не является пользователем." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Профиль" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Ограничение биографии" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Максимальная длина биографии профиля в символах." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Новые пользователи" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Приветствие новым пользователям" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Текст приветствия для новых пользователей (максимум 255 символов)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Подписка по умолчанию" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Автоматически подписывать новых пользователей на этого пользователя." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Приглашения" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Приглашения включены" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Разрешать ли пользователям приглашать новых пользователей." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Сохранить пользовательские настройки" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Авторизовать подписку" @@ -4622,7 +5934,9 @@ msgstr "" "подписаться на записи этого пользователя. Если Вы этого не хотите делать, " "нажмите «Отказ»." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Лицензия" @@ -4708,11 +6022,13 @@ msgstr "Не удаётся прочитать URL аватары «%s»" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Неверный тип изображения для URL аватары «%s»." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Оформление профиля" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4751,7 +6067,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Обновлено от %1$s на %2$s!" @@ -4812,7 +6128,7 @@ msgid "Plugins" msgstr "Плагины" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Версия" @@ -4820,62 +6136,117 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(ы)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Пометить" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s добавил запись %2$s в число любимых." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Невозможно обработать URL «%s»" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Робин считает, что это невозможно." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +"Файл не может быть больше %1$d байт, тогда как отправленный вами файл " +"содержал %2$d байт. Попробуйте загрузить меньшую версию." +msgstr[1] "" +"Файл не может быть больше %1$d байт, тогда как отправленный вами файл " +"содержал %2$d байт. Попробуйте загрузить меньшую версию." +msgstr[2] "" "Файл не может быть больше %1$d байт, тогда как отправленный вами файл " "содержал %2$d байт. Попробуйте загрузить меньшую версию." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Файл такого размера превысит вашу пользовательскую квоту в %d байта." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Файл такого размера превысит вашу пользовательскую квоту в %d байт." +msgstr[1] "" +"Файл такого размера превысит вашу пользовательскую квоту в %d байта." +msgstr[2] "Файл такого размера превысит вашу пользовательскую квоту в %d байт." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Файл такого размера превысит вашу месячную квоту в %d байта." +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Файл такого размера превысит вашу месячную квоту в %d байт." +msgstr[1] "Файл такого размера превысит вашу месячную квоту в %d байта." +msgstr[2] "Файл такого размера превысит вашу месячную квоту в %d байт." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Неверное имя файла." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Не удаётся присоединиться к группе." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Не является частью группы." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Не удаётся покинуть группу." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Неверный идентификатор профиля %s." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Неверный идентификатор группы %s." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Присоединиться" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s присоединился к группе %2$s." + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4894,17 +6265,17 @@ msgid "No database name or DSN found anywhere." msgstr "Имя базы данных или DSN не найдено." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Вы заблокированы от отправки прямых сообщений." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Не удаётся вставить сообщение." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Не удаётся обновить сообщение с новым URI." @@ -4916,23 +6287,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Нет такого профиля (%1$d) для записи (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Ошибка баз данных при вставке хеш-тегов: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Проблемы с сохранением записи. Слишком длинно." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Проблема при сохранении записи. Неизвестный пользователь." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4940,7 +6311,7 @@ msgstr "" "попробуйте вновь через пару минут." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4949,36 +6320,50 @@ msgstr "" "и попробуйте вновь через пару минут." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Вам запрещено поститься на этом сайте (бан)" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "Для saveKnownGroups указан неверный тип" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "Для saveKnownGroups указан неверный тип." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Не удаётся сохранить ответ для %1$d, %2$d." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" @@ -4987,7 +6372,7 @@ msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4999,301 +6384,343 @@ msgid "Missing profile." msgstr "Отсутствующий профиль." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Не удаётся сохранить тег." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Вы заблокированы от подписки." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Уже подписаны!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Пользователь заблокировал Вас." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Не подписаны!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Невозможно удалить подписку на самого себя." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Не удаётся удалить подписочный жетон OMB." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Не удаётся удалить подписку." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Следить" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s теперь следит за %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Ни задан пользователь для однопользовательского режима." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Вызов отключённого кода однопользовательского режима." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Не удаётся создать группу." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Не удаётся назначить URI группы." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Не удаётся назначить членство в группе." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Не удаётся сохранить информацию о локальной группе." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Изменить ваши настройки профиля" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Загрузить аватару" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Измените свой пароль" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Изменить электронный адрес" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Оформить ваш профиль" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Другие опции" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Другое" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s — %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Страница без названия" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Показать ещё" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Главная навигация" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Личный профиль и лента друзей" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Личное" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Изменить ваш email, аватар, пароль, профиль" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Настройки" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Соединить с сервисами" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Соединить" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Изменить конфигурацию сайта" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Настройки" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Пригласите друзей и коллег стать такими же как Вы участниками %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Пригласить" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Выйти" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Выход" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создать новый аккаунт" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Регистрация" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Войти" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Вход" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощь" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Помощь" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Искать людей или текст" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Поиск" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Уведомление сайта" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Локальные виды" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Новая запись" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Навигация по подпискам" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Помощь" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "О проекте" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "ЧаВо" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "TOS" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Пользовательское соглашение" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Исходный код" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Контактная информация" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Бедж" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "StatusNet лицензия" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5303,13 +6730,16 @@ msgstr "" "broughtby%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** — сервис микроблогинга." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5322,347 +6752,454 @@ msgstr "" "licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Лицензия содержимого сайта" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содержание и данные %1$s являются личными и конфиденциальными." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат %1$s. Все права защищены." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат разработчикам. Все права " "защищены." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Все материалы и данные %1$s доступны на условиях лицензии %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Разбиение на страницы" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Сюда" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Туда" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Ожидался корневой элемент потока, а получен XML-документ целиком." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Фото" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Пока ещё нельзя обрабатывать удалённое содержимое." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Пока ещё нельзя обрабатывать встроенный XML." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Пока ещё нельзя обрабатывать встроенное содержание Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Вы не можете изменять этот сайт." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Изменения для этой панели недопустимы." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() не реализована." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() не реализована." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Не удаётся удалить настройки оформления." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Основная конфигурация сайта" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Конфигурация оформления" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Оформление" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Конфигурация пользователя" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Пользователь" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Конфигурация доступа" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Конфигурация путей" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Конфигурация сессий" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Изменить уведомление сайта" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Конфигурация снимков" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Установить лицензию сайта" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API ресурса требует доступ для чтения и записи, но у вас есть только доступ " "для чтения." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Изменить приложение" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Нет приложения для этого пользовательского ключа." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Неверный ключ доступа." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Нет пользователя для этого ключа." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Не удаётся произвести аутентификацию." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Не удаётся создать анонимного пользователя OAuth." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Не удаётся создать анонимное OAuth-приложение." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "Не удаётся найти профиль и приложение, связанное с ключом запроса." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Ошибка выдачи ключа доступа." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Ошибка базы данных при добавлении пользователя приложения OAuth." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Попытка отменить неизвестный ключ." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Не удаётся удалить аннулированный ключ." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Иконка для этого приложения" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Опишите ваше приложение при помощи %d символов" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Опишите ваше приложение при помощи %d символа" +msgstr[1] "Опишите ваше приложение при помощи %d символов" +msgstr[2] "Опишите ваше приложение при помощи %d символов" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Опишите ваше приложение" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL-адрес домашней страницы этого приложения" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL источника" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Организация, ответственная за это приложение" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL-адрес домашней страницы организации" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL для перенаправления после проверки подлинности" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Браузер" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Операционная система" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Среда выполнения приложения: браузер или операционная система" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Только чтение" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Чтение и запись" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Доступ по умолчанию для этого приложения: только чтение или чтение и запись" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Отменить" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " от " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "чтение/запись" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "только чтение" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Подтверждён доступ %1$s — «%2$s»." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Ключ доступа, начинающийся на %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Отозвать" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Вложения" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "Элемент author должен содержать элемент name." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Автор" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Сервис" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Сообщает, где появляется это вложение" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Теги для этого вложения" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Изменение пароля не удалось" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Изменение пароля не удалось." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Смена пароля не разрешена" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Смена пароля не разрешена." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Блокировать" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Команда исполнена" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Ошибка AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Команда завершена" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Команда неудачна" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Записи с таким id не существует" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Записи с таким id не существует." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "У пользователя нет последней записи." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Не удаётся найти пользователя с именем %s" +msgid "Could not find a user with nickname %s." +msgstr "Не удаётся найти пользователя с именем %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Не удаётся найти пользователя с именем %s" +msgid "Could not find a local user with nickname %s." +msgstr "Не удаётся найти локального пользователя с именем %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Простите, эта команда ещё не выполнена." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Нет смысла «подталкивать» самого себя!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "«Подталкивание» послано %s" +msgid "Nudge sent to %s." +msgstr "«Подталкивание» послано %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5673,55 +7210,64 @@ msgstr "" "Подписчиков: %2$s\n" "Записей: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Запись помечена как любимая." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Вы уже являетесь членом этой группы." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Не удаётся присоединить пользователя %1$s к группе %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s присоединился к группе %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Не удаётся удалить пользователя %1$s из группы %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s покинул группу %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Полное имя: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Месторасположение: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Домашняя страница: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "О пользователе: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5730,149 +7276,186 @@ msgstr "" "%s профиль другой системы; вы можете отсылать личное сообщение только " "пользователям этой системы." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Сообщение слишком велико. Предельно допустимая длина составляет %1$d " -"символов, вы отправили %2$d." +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Сообщение слишком длинное — не больше %1$d символа, вы отправили %2$d." +msgstr[1] "" +"Сообщение слишком длинное — не больше %1$d символов, вы отправили %2$d." +msgstr[2] "" +"Сообщение слишком длинное — не больше %1$d символов, вы отправили %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Прямое сообщение для %s послано." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Ошибка при отправке прямого сообщения." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Невозможно повторить собственную запись." - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Эта запись уже повторена" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Запись %s повторена" +msgid "Notice from %s repeated." +msgstr "Запись %s повторена." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Ошибка при повторении записи." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Запись слишком длинная — не больше %d символов, вы посылаете %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Запись слишком длинная — не больше %1$d символа, вы отправили %2$d." +msgstr[1] "" +"Запись слишком длинная — не больше %1$d символов, вы отправили %2$d." +msgstr[2] "" +"Запись слишком длинная — не больше %1$d символов, вы отправили %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Ответ %s отправлен" +msgid "Reply to %s sent." +msgstr "Ответ %s отправлен." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Проблемы с сохранением записи." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "Укажите имя пользователя для подписки." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Невозможно подписаться командой на профили OMB." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Подписано на %s" +msgid "Subscribed to %s." +msgstr "Подписался на %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "Укажите имя пользователя для отмены подписки." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Отписано от %s" +msgid "Unsubscribed from %s." +msgstr "Отписаться от %s." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Команда ещё не выполнена." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Оповещение отсутствует." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Нет оповещения." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Есть оповещение." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Есть оповещение." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Команда входа отключена" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Команда входа отключена." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "Эта ссылка действительна только один раз в течение 2 минут: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "" +"Эта ссылка сработает только один раз, она действительна в течение 2 минут: %" +"s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Отписано %s" +msgid "Unsubscribed %s." +msgstr "Отписано %s." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Вы ни на кого не подписаны." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Вы подписаны на этих людей:" msgstr[1] "Вы подписаны на этих людей:" msgstr[2] "Вы подписаны на этих людей:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Никто не подписан на вас." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Эти люди подписались на вас:" msgstr[1] "Эти люди подписались на вас:" msgstr[2] "Эти люди подписались на вас:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Вы не состоите ни в одной группе." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Вы являетесь участником следующих групп:" msgstr[1] "Вы являетесь участником следующих групп:" msgstr[2] "Вы являетесь участником следующих групп:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5952,50 +7535,72 @@ msgstr "" "tracks — пока не реализовано.\n" "tracking — пока не реализовано.\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Конфигурационный файл не найден. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Конфигурационный файл не найден." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Конфигурационные файлы искались в следующих местах: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Конфигурационные файлы искались в следующих местах:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Возможно, вы решите запустить установщик для исправления этого." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Перейти к установщику" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Обновлено по IM" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Обновления по СМС" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Соединения" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Авторизованные соединённые приложения" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Ошибка базы данных" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Загрузить файл" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -6003,41 +7608,57 @@ msgstr "" "Вы можете загрузить собственное фоновое изображение. Максимальный размер " "файла составляет 2МБ." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Включено" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Выключено" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Сбросить" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Оформление по умолчанию восстановлено." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Мне не нравится эта запись" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Мне нравится эта запись" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Пометить" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Экспорт потока записей" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Каналы" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6068,9 +7689,13 @@ msgstr "Перейти" msgid "Grant this user the \"%s\" role" msgstr "Назначить этому пользователю роль «%s»" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 латинских строчных буквы или цифры, без пробелов" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "Адрес страницы, дневника или профиля группы на другом портале" +msgid "URL of the homepage or blog of the group or topic." +msgstr "Адрес домашней страницы или блога группы или темы." #: lib/groupeditform.php:168 msgid "Describe the group or topic" @@ -6078,62 +7703,122 @@ msgstr "Опишите группу или тему" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Опишите группу или тему при помощи %d символов" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Опишите группу или тему, используя до %d символов" +msgstr[1] "Опишите группу или тему, используя до %d символов" +msgstr[2] "Опишите группу или тему, используя до %d символов" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Где находится группа, например «Город, область, страна»" - -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -"Дополнительные имена для группы, разделённые запятой или пробелом, максимум %" -"d имён" +"Местонахождение группы, если есть, например «Город, область (или регион), " +"страна»." -#: lib/groupnav.php:85 +#: lib/groupeditform.php:190 +#, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Дополнительные имена для группы, разделённые запятой или пробелом, максимум %" +"d имя." +msgstr[1] "" +"Дополнительные имена для группы, разделённые запятой или пробелом, максимум %" +"d имени." +msgstr[2] "" +"Дополнительные имена для группы, разделённые запятой или пробелом, максимум %" +"d имён." + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Группа" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Группа %s" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Участники" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Участники группы %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "Заблокированные" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s заблокированных пользователей" +msgstr "Заблокированные пользователи %s" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Редактировать информацию о группе %s" +msgstr "Редактировать свойства группы %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Логотип" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Добавить или изменить логотип группы %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Добавить или изменить оформление %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Группы с наибольшим количеством участников" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Группы с наибольшим количеством записей" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Теги записей группы %s" @@ -6147,38 +7832,60 @@ msgstr "Страница недоступна для того типа, кото msgid "Unsupported image file format." msgstr "Неподдерживаемый формат файла изображения." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Этот файл слишком большой. Максимальный размер файла составляет %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Частичная загрузка." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Системная ошибка при загрузке файла." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Не является изображением или повреждённый файл." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Потерян файл." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Неподдерживаемый тип файла" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "МБ" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dМБ" +msgstr[1] "%dМБ" +msgstr[2] "%dМБ" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "КБ" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dКБ" +msgstr[1] "%dКБ" +msgstr[2] "%dКБ" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dБ" +msgstr[1] "%dБ" +msgstr[2] "" #: lib/jabber.php:387 #, php-format @@ -6190,10 +7897,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Неизвестный источник входящих сообщений %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Присоединиться" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Покинуть" @@ -6206,49 +7909,54 @@ msgstr "Войти с вашим ником и паролем." msgid "Sign up for a new account" msgstr "Создать новый аккаунт" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Подтверждение электронного адреса" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Здраствуйте, %s.\n" +"Здравствуйте, %1$s.\n" "\n" -"Кто-то только что ввёл этот email-адрес на %s.\n" +"Кто-то только что ввёл этот email-адрес на %2$s.\n" "\n" "Если это были вы и вы хотите подтвердить введённые данные, используйте " "ссылку ниже:\n" "\n" -"%s\n" +"%3$s\n" "\n" "Если нет, просто проигнорируйте это сообщение.\n" "\n" "Благодарим за потраченное время, \n" -"%s\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s теперь следит за вашими записями на %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6258,8 +7966,12 @@ msgstr "" "можете заблокировать её включение в свой список подписчиков и сообщить о " "спаме администраторам сайта по %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6268,10 +7980,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s сейчас следит за вашими записями на %2$s.\n" "\n" @@ -6279,25 +7991,29 @@ msgstr "" "\n" "%4$s%5$s%6$s\n" "Искренне ваш,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Измените email-адрес и настройки уведомлений на %8$s\n" +"Измените email-адрес и настройки уведомлений на %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Биография: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Новый электронный адрес для постинга %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6307,42 +8023,47 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"У Вас новый адрес постинга на %1$s.\n" +"У вас новый адрес отправки на %1$s.\n" "\n" -"Посылайте электронные письма на %2$s для постинга новых записей.\n" +"Посылайте электронные письма на %2$s для создания новых записей.\n" "\n" "Инструкции по электронным публикациям записей на %3$s.\n" "\n" "Искренне Ваш,\n" -"%4$s" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s статус" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Подтверждение СМС" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s. Подтвердите, что это ваш телефон, следующим кодом:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Вас «подтолкнул» пользователь %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6369,14 +8090,18 @@ msgstr "" "С уважением,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Новое приватное сообщение от %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6409,14 +8134,19 @@ msgstr "" "С уважением,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) добавил вашу запись в число своих любимых" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) добавил вашу запись в число своих любимых" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6454,7 +8184,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6465,13 +8195,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) отправил запись для вашего внимания" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) отправил запись для вашего внимания" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6533,7 +8270,7 @@ msgstr "" "вовлечения других пользователей в разговор. Сообщения, получаемые от других " "людей, видите только вы." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "от" @@ -6553,109 +8290,160 @@ msgstr "Простите, это не Ваш входящий электронн msgid "Sorry, no incoming email allowed." msgstr "Простите, входящих писем нет." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Неподдерживаемый формат файла изображения: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "При сохранении вашего файла возникла ошибка базы данных. Пожалуйста, " "попробуйте ещё раз." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Загружаемый файл превышает директиву upload_max_filesize в php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" "Загружаемый файл превышает директиву MAX_FILE_SIZE, указанную в HTML-форме." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Загружаемый файл загружен только частично." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Отсутствует временной каталог." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Не удаётся записать файл на диск." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Загрузка файла остановлена по расширению." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Файл превышает пользовательскую квоту." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Файл не может быть перемещён в целевую директорию." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Не удаётся определить mime-тип файла." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Попробуйте использовать другой формат %s." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"Тип файла «%1$s» не поддерживается на этом сервере. Попробуйте использовать " +"другой %2$s-формат." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "Тип файла %s не поддерживается не этом сервере." +msgid "\"%s\" is not a supported file type on this server." +msgstr "Тип файла «%s» не поддерживается не этом сервере." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Послать прямую запись" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Выберите получателя:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Нет взаимных подписчиков." + +#: lib/messageform.php:153 msgid "To" msgstr "Для" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "6 или больше знаков" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Отправить" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Имя должно состоять только из прописных букв и цифр и не иметь пробелов." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Псевдоним не может быть пустым." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Псевдоним не может быть длиннее %d символа." +msgstr[1] "Псевдоним не может быть длиннее %d символов." +msgstr[2] "Псевдоним не может быть длиннее %d символов." + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Послать запись" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Что нового, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Прикрепить" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Прикрепить файл" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Поделиться своим местоположением." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Не публиковать своё местоположение" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6664,51 +8452,55 @@ msgstr "" "времени, чем ожидалось; повторите попытку позже" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "с. ш." #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "ю. ш." #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "в. д." #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "з. д." -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "из" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "web" + +#: lib/noticelist.php:583 msgid "in context" msgstr "переписка" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Запись повторена" @@ -6724,55 +8516,52 @@ msgstr "«Подтолкнуть»" msgid "Send a nudge to this user" msgstr "«Подтолкнуть» этого пользователя" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Ошибка при вставке нового профиля" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Ошибка размещения нового профиля." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Ошибка при вставке аватары" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Ошибка размещения аватара." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Ошибка обновления удалённого профиля" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Ошибка размещения удалённого профиля." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Ошибка вставки удалённого профиля" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Дублирующаяся запись." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Дублировать запись" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Не удаётся вставить новую подписку." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Личное" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Ответы" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Любимое" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Входящие" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Ваши входящие сообщения" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Исходящие" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Ваши исходящие сообщения" @@ -6781,7 +8570,8 @@ msgstr "Ваши исходящие сообщения" msgid "Tags in %s's notices" msgstr "Теги записей пользователя %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Неизвестно" @@ -6863,9 +8653,10 @@ msgstr "Повторить эту запись" msgid "Revoke the \"%s\" role from this user" msgstr "Отозвать у этого пользователя роль «%s»" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Ни задан пользователь для однопользовательского режима." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Страница не найдена." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6875,19 +8666,25 @@ msgstr "Песочница" msgid "Sandbox this user" msgstr "Установить режим песочницы для этого пользователя" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Поиск по сайту" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Ключевые слова" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Поиск" +msgstr "Найти" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Справка по поиску" @@ -6961,6 +8758,11 @@ msgstr "Облако тегов людей" msgid "None" msgstr "Нет тегов" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Неверное имя темы оформления." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "Этот сервер не может обработать загруженные темы без поддержки ZIP." @@ -6970,27 +8772,35 @@ msgid "The theme file is missing or the upload failed." msgstr "Файл темы отсутствует или произошёл сбой при загрузке." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Ошибка при сохранении темы." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Ошибочная тема. Плохая структура директорий." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Размер загруженной темы слишком велик, в распакованном виде она должна " +"занимать не более %d байта." +msgstr[1] "" +"Размер загруженной темы слишком велик, в распакованном виде она должна " +"занимать не более %d байт." +msgstr[2] "" "Размер загруженной темы слишком велик, в распакованном виде она должна " "занимать не более %d байт." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Недопустимый архив: темы. Отсутствует файл css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6998,12 +8808,16 @@ msgstr "" "Тема содержит недопустимое имя файла или папки. Допустимы буквы ASCII, " "цифры, подчеркивание и знак минуса." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Тема содержит файлы с опасным расширением; это может быть небезопасно." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Тема содержит файл недопустимого типа «.%s»." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Ошибка открытия архива темы." @@ -7011,6 +8825,12 @@ msgstr "Ошибка открытия архива темы." msgid "Top posters" msgstr "Самые активные" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Разблокировать" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Снять режим песочницы" @@ -7035,125 +8855,186 @@ msgstr "Отписаться от этого пользователя" msgid "Unsubscribe" msgstr "Отписаться" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "У пользователя %s (%d) нет профильной записи." +msgid "User %1$s (%2$d) has no profile record." +msgstr "У пользователя %1$s (%2$d) нет записи профиля." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Изменить аватару" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Действия пользователя" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Идёт удаление пользователя…" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Изменение настроек профиля" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Редактировать" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Послать приватное сообщение этому пользователю." -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Сообщение" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Модерировать" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Роль пользователя" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Администратор" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Модератор" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "пару секунд назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "около минуты назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "около %d минут(ы) назад" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "около %d минуты назад" +msgstr[1] "около %d минут назад" +msgstr[2] "около %d минут назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "около часа назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "около %d часа(ов) назад" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "около %d часа назад" +msgstr[1] "около %d часов назад" +msgstr[2] "около %d часов назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "около дня назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "около %d дня(ей) назад" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "около %d дня назад" +msgstr[1] "около %d дней назад" +msgstr[2] "около %d дней назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "около месяца назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "около %d месяца(ев) назад" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "около %d месяца назад" +msgstr[1] "около %d месяцев назад" +msgstr[2] "около %d месяцев назад" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "около года назад" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s не допустимым подходящим цветом!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" "%s не является допустимым цветом! Используйте 3 или 6 шестнадцатеричных " "символов." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" +"Неизвестный пользователь. Перейдите на %s, чтобы добавить адрес для вашей " +"учётной записи" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Сообщение слишком длинное — не больше %1$d символа, вы отправили %2$d." +msgstr[1] "" "Сообщение слишком длинное — не больше %1$d символов, вы отправили %2$d." +msgstr[2] "" +"Сообщение слишком длинное — не больше %1$d символов, вы отправили %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Неверный XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "Неверный XML, отсутствует корень XRD." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Получение резервной копии из файла «%s»." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "Не указан пользователь; используется пользователь из резервной копии." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "%d запись в резервной копии." +msgstr[1] "%d записи в резервной копии." +msgstr[2] "%d записей в резервной копии." diff --git a/locale/statusnet.pot b/locale/statusnet.pot index 822d4fcf88..5065298b06 100644 --- a/locale/statusnet.pot +++ b/locale/statusnet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:48+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,556 +17,796 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "" -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "" +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "" +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "" -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, php-format +msgid "%s favorites" +msgstr "" + +#: actions/apiatomservice.php:123 +#, php-format +msgid "%s memberships" +msgstr "" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "" -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" +msgstr[1] "" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "" -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "" +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "" -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "" +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "" -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "" +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "" -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "" -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "" -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "" -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "" -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." msgstr "" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "" - -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" +msgstr[1] "" -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "" +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "" -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." msgstr "" -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -574,240 +814,601 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "" -#: actions/apioauthauthorize.php:328 -msgid "Deny" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" msgstr "" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "" -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "" -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "" -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "" + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "" -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "" +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "" + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." msgstr "" -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "" - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +msgstr[1] "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, php-format +msgid "No content for notice %d." +msgstr "" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "" +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "" + +#: actions/atompubfavoritefeed.php:70 +msgid "No such profile" +msgstr "" + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +msgid "Can't add someone else's subscription" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +msgid "Can only fave notices." +msgstr "" + +#: actions/atompubfavoritefeed.php:256 +msgid "Unknown note." +msgstr "" + +#: actions/atompubfavoritefeed.php:263 +msgid "Already a favorite." +msgstr "" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "" + +#: actions/atompubmembershipfeed.php:144 +#, php-format +msgid "%s group memberships" +msgstr "" + +#: actions/atompubmembershipfeed.php:147 +#, php-format +msgid "Groups %s is a member of on %s" +msgstr "" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +msgid "Unknown group." +msgstr "" + +#: actions/atompubmembershipfeed.php:263 +msgid "Already a member." +msgstr "" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +msgid "No such favorite." +msgstr "" + +#: actions/atompubshowfavorite.php:151 +msgid "Can't delete someone else's favorite" +msgstr "" + +#: actions/atompubshowmembership.php:81 +msgid "No such group" +msgstr "" + +#: actions/atompubshowmembership.php:90 +msgid "Not a member" +msgstr "" + +#: actions/atompubshowmembership.php:115 +msgid "Method not supported" +msgstr "" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, php-format +msgid "No such profile id: %d" +msgstr "" + +#: actions/atompubshowsubscription.php:90 +#, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "" + +#: actions/atompubshowsubscription.php:154 +msgid "Can't delete someone else's subscription" +msgstr "" + +#: actions/atompubsubscriptionfeed.php:150 +#, php-format +msgid "People %s has subscribed to on %s" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, php-format +msgid "Unknown profile %s" +msgstr "" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "" -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "" -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "" -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "" -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "" -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "" -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -816,175 +1417,219 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "" -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "" +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "" -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "" +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "" -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." msgstr "" -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "" +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "" -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -992,51 +1637,108 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "" + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "" + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "" -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "" - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "" @@ -1065,62 +1767,71 @@ msgstr "" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "" -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "" + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "" -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1128,75 +1839,84 @@ msgid "" msgstr "" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "" @@ -1213,109 +1933,129 @@ msgstr "" msgid "No such document \"%s\"" msgstr "" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "" -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "" -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "" -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "" -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "" -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "" - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "" +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "" -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "" @@ -1333,12 +2073,12 @@ msgstr "" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "" @@ -1347,38 +2087,32 @@ msgstr "" #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1386,110 +2120,117 @@ msgstr "" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "" + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "" #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "" #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "" #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "" #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1498,50 +2239,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "" #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "" +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "" + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "" #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "" #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "" -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "" #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "" #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "" @@ -1549,11 +2296,11 @@ msgstr "" msgid "This notice is already a favorite!" msgstr "" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "" @@ -1585,7 +2332,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "" @@ -1654,7 +2401,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "" @@ -1682,19 +2429,23 @@ msgstr "" msgid "User already has this role." msgstr "" +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "" -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "" @@ -1711,7 +2462,7 @@ msgstr "" msgid "User is not a member of group." msgstr "" -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "" @@ -1755,8 +2506,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "" @@ -1774,6 +2527,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" @@ -1786,49 +2547,56 @@ msgstr "" msgid "Failed updating logo." msgstr "" -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1889,15 +2657,18 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1942,7 +2713,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1950,63 +2724,63 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "" #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2014,28 +2788,28 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "" #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "" #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "" #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "" #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "" @@ -2053,89 +2827,126 @@ msgstr "" msgid "This is your inbox, which lists your incoming private messages." msgstr "" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "" -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" +msgid "Invalid email address: %s." msgstr "" -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "" +msgstr[1] "" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" +msgstr[1] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2170,13 +2981,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2185,17 +2990,120 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "" @@ -2216,11 +3124,11 @@ msgstr "" msgid "Login to site" msgstr "" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" @@ -2267,66 +3175,76 @@ msgstr "" msgid "No current status." msgstr "" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "" -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "" +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "" @@ -2334,7 +3252,7 @@ msgstr "" msgid "New notice" msgstr "" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "" @@ -2380,7 +3298,8 @@ msgstr "" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2391,72 +3310,97 @@ msgstr "" msgid "Nudge sent!" msgstr "" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "" -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "" -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "" -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "" @@ -2468,36 +3412,45 @@ msgstr "" msgid "Notice Search" msgstr "" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "" #: actions/otp.php:69 @@ -2559,7 +3512,7 @@ msgid "6 or more characters" msgstr "" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "" @@ -2571,11 +3524,11 @@ msgstr "" msgid "Change" msgstr "" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "" -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "" @@ -2595,156 +3548,273 @@ msgstr "" msgid "Password saved." msgstr "" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -msgid "Site path" +#: actions/pathsadminpanel.php:249 +msgid "Site path." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "" @@ -2778,135 +3848,177 @@ msgstr "" msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." msgstr "" -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "" +msgstr[1] "" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "" +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "" +msgstr[1] "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "" -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "" -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "" -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "" +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "" @@ -2974,32 +4086,45 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "" @@ -3108,14 +4233,14 @@ msgid "Unexpected password reset." msgstr "" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "" #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "" @@ -3123,7 +4248,7 @@ msgstr "" msgid "New password successfully saved. You are now logged in." msgstr "" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3135,7 +4260,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3143,80 +4268,84 @@ msgstr "" msgid "Registration not allowed." msgstr "" -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "" -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "" -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "" -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3235,7 +4364,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3274,7 +4403,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "" @@ -3310,7 +4439,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "" @@ -3319,7 +4448,7 @@ msgid "Repeated!" msgstr "" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "" @@ -3392,12 +4521,12 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3417,7 +4546,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "" @@ -3430,28 +4558,29 @@ msgid "Application profile" msgstr "" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "" @@ -3469,6 +4598,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3552,77 +4686,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3632,7 +4793,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3641,24 +4805,31 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "" -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "" @@ -3667,60 +4838,84 @@ msgstr "" msgid "Notice deleted." msgstr "" -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" +msgid "%1$s tagged %2$s" msgstr "" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3729,7 +4924,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3737,7 +4934,8 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "" @@ -3847,31 +5045,38 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "" @@ -4024,7 +5229,7 @@ msgstr "" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" @@ -4080,12 +5285,14 @@ msgstr "" msgid "Save snapshot settings" msgstr "" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "" @@ -4093,10 +5300,6 @@ msgstr "" msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "" - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4105,63 +5308,84 @@ msgstr "" msgid "Subscribed" msgstr "" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4171,16 +5395,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "" -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "" @@ -4218,7 +5453,7 @@ msgid "User profile" msgstr "" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "" @@ -4276,74 +5511,94 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "" @@ -4355,7 +5610,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "" @@ -4437,11 +5694,13 @@ msgstr "" msgid "Wrong image type for avatar URL ‘%s’." msgstr "" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4477,7 +5736,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "" @@ -4526,7 +5785,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "" @@ -4534,60 +5793,107 @@ msgstr "" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "" #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "" #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4606,17 +5912,17 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "" #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "" @@ -4628,72 +5934,86 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "" +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "" + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4704,301 +6024,343 @@ msgid "Missing profile." msgstr "" #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "" #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "" #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "" +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "" + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "" #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "" #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "" #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5006,13 +6368,16 @@ msgid "" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5021,341 +6386,446 @@ msgid "" msgstr "" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +msgid "Post" +msgstr "" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "" + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "" +msgstr[1] "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." msgstr "" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." msgstr "" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." msgstr "" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" +msgid "Could not find a local user with nickname %s." msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5363,199 +6833,238 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -msgid "You are already a member of that group" +#. TRANS: Message given having added a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." msgstr "" -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:405 #, php-format -msgid "Could not join user %1$s to group %2$s" +msgid "%1$s left group %2$s." msgstr "" -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, php-format -msgid "Could not remove user %1$s from group %2$s" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" msgstr "" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "" -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "" -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." msgstr "" -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" -msgstr "" - -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "" -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "" -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" +msgid "Unsubscribed %s." msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5597,89 +7106,127 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "" -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -5711,8 +7258,12 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "" #: lib/groupeditform.php:168 @@ -5721,60 +7272,112 @@ msgstr "" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "" +msgstr[1] "" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -5788,38 +7391,57 @@ msgstr "" msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" +msgstr[1] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" +msgstr[1] "" #: lib/jabber.php:387 #, php-format @@ -5831,10 +7453,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -msgid "Join" -msgstr "" - #: lib/leaveform.php:114 msgid "Leave" msgstr "" @@ -5847,44 +7465,53 @@ msgstr "" msgid "Sign up for a new account" msgstr "" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5893,26 +7520,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5922,34 +7553,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5965,14 +7601,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5991,14 +7631,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6020,7 +7665,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6028,13 +7673,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6071,7 +7723,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "" @@ -6091,157 +7743,208 @@ msgstr "" msgid "Sorry, no incoming email allowed." msgstr "" -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "" + +#: lib/messageform.php:153 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "" @@ -6257,55 +7960,52 @@ msgstr "" msgid "Send a nudge to this user" msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." msgstr "" -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "" -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "" @@ -6314,7 +8014,8 @@ msgstr "" msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "" @@ -6396,8 +8097,9 @@ msgstr "" msgid "Revoke the \"%s\" role from this user" msgstr "" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." msgstr "" #: lib/sandboxform.php:67 @@ -6408,19 +8110,25 @@ msgstr "" msgid "Sandbox this user" msgstr "" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "" @@ -6494,6 +8202,11 @@ msgstr "" msgid "None" msgstr "" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "" + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6503,36 +8216,43 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "" @@ -6540,6 +8260,12 @@ msgstr "" msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6564,122 +8290,173 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "" -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" +msgstr[1] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 16a0858ea7..d56739acd1 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -1,162 +1,203 @@ -# Translation of StatusNet to Swedish +# Translation of StatusNet - Core to Swedish (Svenska) +# Expored from translatewiki.net # -# Author@translatewiki.net: Jamminjohn -# Author@translatewiki.net: Kjell -# Author@translatewiki.net: McDutchie +# Author: Jamminjohn +# Author: Kjell +# Author: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:24:59+0000\n" -"Language-Team: Swedish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:14+0000\n" +"Language-Team: Swedish <http://translatewiki.net/wiki/Portal:sv>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Åtkomst" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Inställningar för webbplatsåtkomst" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Registrering" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Skall anonyma användare (inte inloggade) förhindras från att se webbplatsen?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Privat" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "Gör så att registrering endast sker genom inbjudan." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Endast inbjudan" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "Inaktivera nya registreringar." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Stängd" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Spara inställningar för åtkomst" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Spara" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Ingen sådan sida" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ingen sådan användare." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s och vänner, sida %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s och vänner" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Flöden för %ss vänner (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Flöden för %ss vänner (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Flöden för %ss vänner (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Detta är tidslinjen för %s och vänner, men ingen har skrivit något än." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -165,426 +206,632 @@ msgstr "" "Prova att prenumerera på fler personer, [gå med i en grupp](%%action.groups%" "%) eller skriv något själv." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 -#, fuzzy, php-format +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kan prova att [knuffa %1$s](../%2$s) från dennes profil eller [skriva " -"någonting för hans eller hennes uppmärksamhet](%%%%action.newnotice%%%%?" -"status_textarea=%3$s)." +"Var den första att [skriva i detta ämne](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 -#, fuzzy, php-format +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 +#, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -"Varför inte [registrera ett konto](%%%%action.register%%%%) och sedan knuffa " -"%s eller skriva en notis för hans eller hennes uppmärksamhet." +"Varför inte [registrera ett konto](%%action.register%%) och bli först att " +"posta en!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Du och vänner" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Uppdateringar från %1$s och vänner på %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API-metod hittades inte." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Denna metod kräver en POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "Du måste ange ett värdet på parametern 'device': sms, im, none" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Kunde inte uppdatera användare." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Användaren har ingen profil." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Kunde inte spara profil." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Servern kunde inte hantera så mycket POST-data (%s byte) på grund av sin " +"nuvarande konfiguration." +msgstr[1] "" "Servern kunde inte hantera så mycket POST-data (%s byte) på grund av sin " "nuvarande konfiguration." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Kunde inte spara dina utseendeinställningar." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." msgstr "Kunde inte uppdatera din profils utseende." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s tidslinje" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s prenumerationer" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Favoriter" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s gruppmedlemmar" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Du kan inte blockera dig själv!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blockering av användare misslyckades." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Hävning av blockering av användare misslyckades." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Direktmeddelanden från %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Alla direktmeddelanden skickade från %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Direktmeddelande till %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Alla direktmeddelanden skickade till %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Ingen meddelandetext!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Detta är för långt. Maximal meddelandestorlek är %d tecken." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Detta är för långt. Maximal meddelandestorlek är %d tecken." +msgstr[1] "Detta är för långt. Maximal meddelandestorlek är %d tecken." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Mottagare hittades inte." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "Kan inte skicka direktmeddelanden till användare som inte är din vän." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Skicka inte ett meddelande till dig själv; viska lite tyst till dig själv " +"istället." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Ingen status hittad med det ID:t." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Denna status är redan en favorit." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Kunde inte skapa favorit." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Denna status är inte en favorit." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Kunde inte ta bort favoriten." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Kunde inte följa användare: användare hittades inte." +msgstr "Kunde inte sluta följa användaren: användaren hittades inte." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Kunde inte följa användare: %s finns redan i din lista." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Kunde inte sluta följa användaren: användaren hittades inte." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Du kan inte sluta följa dig själv." -#: actions/apifriendshipsexists.php:91 +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 #, fuzzy -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Två användar-ID:n eller screen_names måste tillhandahållas." +msgid "Two valid IDs or nick names must be supplied." +msgstr "Två giltiga användar-ID:n eller screen_names måste tillhandahållas." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Kunde inte fastställa användare hos källan." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Kunde inte hitta målanvändare." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Smeknamnet används redan. Försök med ett annat." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Inte ett giltigt smeknamn." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Hemsida är inte en giltig webbadress." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "Fullständigt namn är för långt (max 255 tecken)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Beskrivning är för lång (max 140 tecken)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Beskrivning är för lång (max %d tecken)." +msgstr[1] "Beskrivning är för lång (max %d tecken)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." msgstr "Beskrivning av plats är för lång (max 255 tecken)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "För många alias! Maximum %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "För många alias! Högst %d tillåtet." +msgstr[1] "För många alias! Högst %d tillåtna." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Ogiltigt alias: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" används redan. Försök med ett annat." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Alias kan inte vara samma som smeknamn." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Grupp hittades inte." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "Du är redan en medlem i denna grupp." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "Du har blivit blockerad från denna grupp av administratören." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunde inte ansluta användare %1$s till grupp %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "Du är inte en medlem i denna grupp." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunde inte ta bort användare %1$s från grupp %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%ss grupper" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%1$s grupper %2$s är en medlem i." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s grupper" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "grupper på %s" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "Ladda upp fil" +msgstr "Uppladdning misslyckades." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Ogiltig begäran-token eller verifierare." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Ingen oauth_token-parameter angiven." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Ogiltig token." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Ogiltig begäran-token." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "Begäran-token är redan auktoriserad." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Det var ett problem med din sessions-token. Var vänlig försök igen." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Ogiltigt smeknamn / lösenord!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Databasfel vid borttagning av OAuth-applikationsanvändare." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +#, fuzzy +msgid "Database error inserting oauth_token_association." msgstr "Databasfel vid infogning av OAuth-applikationsanvändare." -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "Begäran-token %s har godkänts. Byt ut den mot en åtkomst-token." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Begäran-token %s har nekats och återkallats." - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Oväntat inskick av formulär." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "En applikation skulle vilja ansluta till ditt konto" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Tillåt eller neka åtkomst" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Applikationen <strong>%1$s</strong> av <strong>%2$s</strong> vill att " +"möjligheten att <strong>%3$s</strong> din %4$s kontoinformation. Du bör bara " +"ge tillgång till ditt %4$s-konto till tredje-parter du litar på." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -595,241 +842,621 @@ msgstr "" "möjligheten att <strong>%3$s</strong> din %4$s kontoinformation. Du bör bara " "ge tillgång till ditt %4$s-konto till tredje-parter du litar på." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Konto" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Smeknamn" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Lösenord" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Neka" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Avbryt" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Tillåt" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "Tillåt eller neka åtkomst till din kontoinformation." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +#, fuzzy +msgid "Authorization canceled." +msgstr "Bekräftelse för snabbmeddelanden avbruten." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, fuzzy, php-format +msgid "The request token %s has been revoked." +msgstr "Begäran-token %s har nekats och återkallats." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "Du har inte tillstånd." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "Du har inte tillstånd." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Denna metod kräver en POST eller en DELETE." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Du kan inte ta bort en annan användares status." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Ingen sådan notis." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "Kan inte upprepa din egen notis." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Redan upprepat denna notis." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "API-metod hittades inte." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "Format som inte stödjs." + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Status borttagen." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Ingen status med det ID:t hittades." -#: actions/apistatusesupdate.php:221 -msgid "Client must provide a 'status' parameter with a value." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Kan inte ta bort denna notis." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "Ta bort notis" + +#. TRANS: Client error displayed when the parameter "status" is missing. +#: actions/apistatusesupdate.php:221 +msgid "Client must provide a 'status' parameter with a value." +msgstr "Klient måste tillhandahålla en 'status'-parameter med ett värde." + +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Det är för långt. Maximal notisstorlek är %d tecken." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Det är för långt. Maximal notisstorlek är %d tecken." +msgstr[1] "Det är för långt. Maximal notisstorlek är %d tecken." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Hittades inte." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "API-metod hittades inte." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "Maximal notisstorlek är %d tecken, inklusive webbadress för bilaga." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "Maximal notisstorlek är %d tecken, inklusive webbadress för bilaga." +msgstr[1] "Maximal notisstorlek är %d tecken, inklusive webbadress för bilaga." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Format som inte stödjs." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoriter från %2$s" -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, fuzzy, php-format +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%1$s uppdateringar markerade som favorit av %2$s / %2$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Kunde inte generera flöde för grupp - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Uppdateringar som nämner %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s uppdateringar med svar på uppdatering från %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s publika tidslinje" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s uppdateringar från alla!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Inte implementerad." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Upprepat till %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Upprepningar av %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser taggade med %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Uppdateringar taggade med %1$s på %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "Bara användaren kan läsa sina egna brevlådor." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Hitta innehåll i notiser" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Notis med den ID:n finns inte." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API-metoden är under uppbyggnad." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API-metod hittades inte." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Ingen sådan profil." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Kunde inte infoga ny prenumeration." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Hitta innehåll i notiser" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Okänd" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Lägg till i favoriter" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Ingen sådan profil." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s gruppmedlemmar" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Grupper %s är en medlem i" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Okänd" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Alla medlemmar" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Ingen sådan fil." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Kunde inte ta bort favoriten." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Ingen sådan grupp." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Alla medlemmar" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "API-metod hittades inte." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Ingen sådan profil." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Du är inte prenumerat hos den profilen." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Kunde inte spara prenumeration." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Personer som prenumererar på %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Okänd filtyp" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Ingen sådan bilaga." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Inget smeknamn." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Ingen storlek." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Ogiltig storlek." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" "Du kan ladda upp din personliga avatar. Den maximala filstorleken är %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Användare utan matchande profil." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinställningar" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Orginal" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Förhandsgranska" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Ta bort" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Ladda upp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Beskär" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Ingen fil laddades upp." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "Välj ett kvadratiskt område i bilden som din avatar" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Förlorade vår fildata." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar uppdaterad." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Misslyckades uppdatera avatar." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Avatar borttagen." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Du har redan blockerat denna användare." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Blockera användare" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -841,176 +1468,220 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Nej" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Blockera inte denna användare" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Ja" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Blockera denna användare" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Misslyckades att spara blockeringsinformation." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "Ingen sådan grupp." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "%s blockerade profiler" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blockerade profiler, sida %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" "En lista med de användare som blockerats från att gå med i denna grupp." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Häv blockering av användare från grupp" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Häv blockering" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Häv blockering av denna användare" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Posta till %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Ingen bekräftelsekod." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Bekräftelsekod kunde inte hittas." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Denna bekräftelsekod är inte för dig!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Adresstypen %s känns inte igen." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Denna adress har redan blivit bekräftad." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Kunde inte uppdatera användare." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Kunde inte ta bort e-postbekräftelse." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Kunde inte ta bort adressbekräftelse." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Bekräfta adress" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Adressen \"%s\" har blivit bekräftad för ditt konto." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Konversationer" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Du måste vara inloggad för att ta bort en applikation." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Applikation hittades inte." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Du är inte ägaren av denna applikation." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Det var ett problem med din sessions-token." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Ta bort applikation" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1021,31 +1692,88 @@ msgstr "" "användaranslutningar." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Ta inte bort denna applikation" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Ta bort denna applikation" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Du måste vara inloggad för att ta bort en grupp." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Inget smeknamn eller ID." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Du får inte ta bort denna grupp." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Kunde inte ta bort grupp %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s lämnade grupp %2$s" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Ta bort grupp" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Är du säker på att du vill ta bort denna grupp? Det kommer rensa all data om " +"gruppen från databasen, utan en säkerhetskopia. " + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Ta inte bort denna grupp" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Ta bort denna grupp" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Inte inloggad." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Kan inte ta bort denna notis." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." @@ -1053,21 +1781,24 @@ msgstr "" "Du håller på att ta bort en notis permanent. När det väl är gjort kan du " "inte ångra dig." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Ta bort notis" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Är du säker på att du vill ta bort denna notis?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1098,62 +1829,71 @@ msgstr "Ta bort denna användare" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Utseende" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Utseendeinställningar för denna StatusNet-webbplats." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Ogiltig webbadress för logtyp." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Ogiltig webbadress för SSL-logtyp." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Tema inte tillgängligt: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Byt logotyp" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Webbplatslogotyp" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL-logotyp" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Byt tema" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Webbplatstema" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Tema för webbplatsen." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Anpassat tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Du kan ladda upp ett eget StatusNet-tema som ett .ZIP-arkiv." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Ändra bakgrundsbild" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Bakgrund" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1163,75 +1903,84 @@ msgstr "" "filstorleken är %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "På" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Av" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Sätt på eller stäng av bakgrundsbild." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Upprepa bakgrundsbild" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Byt färger" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Innehåll" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "Sidofält" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Text" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Länkar" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Avancerat" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Anpassad CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "Använd standardvärden" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Återställ standardutseende" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Återställ till standardvärde" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Spara" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Spara utseende" @@ -1248,109 +1997,129 @@ msgstr "Lägg till i favoriter" msgid "No such document \"%s\"" msgstr "Inget sådant dokument \"%s\"" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Redigera applikation" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Du måste vara inloggad för att redigera en applikation." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Ingen sådan applikation." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Använd detta formulär för att redigera din applikation." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Namn krävs." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." msgstr "Namnet är för långt (max 255 tecken)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Namnet används redan. Prova ett annat." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Beskrivning krävs." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "Webbadress till källa är för lång." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "Webbadress till källa är inte giltig." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Organisation krävs." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." msgstr "Organisation är för lång (max 255 tecken)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Hemsida för organisation krävs." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Anrop är för lång." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "Webbadress för anrop är inte giltig." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Kunde inte uppdatera applikation." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "Redigera %s grupp" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "Du måste vara inloggad för att skapa en grupp." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "Du måste vara en administratör för att redigera gruppen." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "Använd detta formulär för att redigera gruppen." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "beskrivning är för lång (max %d tecken)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ogiltigt alias: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "Kunde inte uppdatera grupp." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Kunde inte skapa alias." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Alternativ sparade." @@ -1368,12 +2137,12 @@ msgstr "Hantera hur du får e-post från %%site.name%%" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "E-postadress" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Aktuell, bekräftad e-postadress." @@ -1382,14 +2151,14 @@ msgstr "Aktuell, bekräftad e-postadress." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Ta bort" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1397,25 +2166,19 @@ msgstr "" "Väntar bekräftelse av denna adress. Kontrollera din inkorg (och " "skräppostkorg!) efter ett meddelande med vidare instruktioner." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Avbryt" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "E-postadress, såsom \"användarnamn@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1423,111 +2186,118 @@ msgstr "Lägg till" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Inkommande e-post" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Jag vill posta notiser genom min e-post." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Skicka e-post till denna adress för att posta nya notiser." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" "Ange en ny e-postadress för att posta till; detta inaktiverar den gamla." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Ny" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "E-postinställningar" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Skicka notiser om nya prenumerationer till mig genom e-post." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Skicka mig e-post när någon lägger till min notis som en favorit." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Skicka mig e-post när någon skickar mig ett privat meddelande." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Skicka mig e-post när någon skickar ett \"@-svar\"." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Tillåt vänner att knuffa mig och skicka e-post till mig." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Jag vill posta notiser genom min e-post." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Publicera ett MicroID för min e-postadress." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "E-postinställningar sparade." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Ingen e-postadress." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Kan inte normalisera den e-postadressen" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Inte en giltig e-postadress." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "Det är redan din e-postadress." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Den e-postadressen tillhör redan en annan användare." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Kunde inte infoga bekräftelsekod." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1539,50 +2309,56 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Ingen väntande bekräftelse att avbryta." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Detta är fel e-postadress." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Kunde inte ta bort e-postbekräftelse." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "E-postbekräftelse avbruten." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "Det är inte din e-postadress." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "E-postadressen togs bort." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Ingen inkommande e-postadress." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Kunde inte uppdatera användaruppgift." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Inkommande e-postadress borttagen." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Ny inkommande e-postadress tillagd." @@ -1590,11 +2366,11 @@ msgstr "Ny inkommande e-postadress tillagd." msgid "This notice is already a favorite!" msgstr "Denna notis är redan en favorit!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Ta bort märkning som favorit" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Populära notiser" @@ -1632,7 +2408,7 @@ msgstr "" "att lägga en notis till dina favoriter!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%ss favoritnotiser" @@ -1701,7 +2477,7 @@ msgstr "Kunde inte konvertera token för begäran till token för åtkomst." msgid "Remote service uses unknown version of OMB protocol." msgstr "Fjärrtjänsten använder en okänd version av OMB-protokollet." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Fel vid uppdatering av fjärrprofil." @@ -1729,19 +2505,23 @@ msgstr "Du kan inte bevilja användare roller på denna webbplats." msgid "User already has this role." msgstr "Användaren har redan denna roll." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Ingen profil angiven." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Ingen profil med det ID:t." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "Ingen grupp angiven." @@ -1758,7 +2538,7 @@ msgstr "Användaren är redan blockerad från grupp." msgid "User is not a member of group." msgstr "Användare är inte en gruppmedlem." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "Blockera användare från grupp" @@ -1806,8 +2586,10 @@ msgid "" msgstr "" "Anpassa hur din grupp ser ut genom att välja bakgrundbild och färgpalett." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Kunde inte uppdatera dina utseendeinställningar." @@ -1827,6 +2609,14 @@ msgstr "" "Du kan ladda upp en logotypbild för din grupp. Den maximala filstorleken är %" "s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Ladda upp" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Beskär" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Välj ett kvadratiskt område i bilden som logotyp" @@ -1839,49 +2629,56 @@ msgstr "Logtyp uppdaterad." msgid "Failed updating logo." msgstr "Misslyckades uppdatera logtyp." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s gruppmedlemmar" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s gruppmedlemmar, sida %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "En lista av användarna i denna grupp." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Administratör" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Blockera" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Blockera denna användare" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Gör användare till en administratör för gruppen" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Gör till administratör" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Gör denna användare till administratör" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s tidslinje" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1954,15 +2751,18 @@ msgstr "" "Varför inte [registrera ett konto](%%action.register%%) och [skapa gruppen](%" "%action.newgroup%%) själv!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "Bara en administratör kan häva blockering av gruppmedlemmar." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Användare är inte blockerad från grupp." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Fel vid hävning av blockering." @@ -2011,7 +2811,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2021,65 +2824,65 @@ msgstr "" "att lägga till %s i din kompislista i din IM-klient eller hos GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Inställningar för snabbmeddelanden" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Skicka notiser till mig genom Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Posta en notis när min Jabber/GTalk-status ändras." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Skicka svar till mig genom Jabber/GTalk från personer som jag inte " "prenumererar på." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Publicera ett MicroID för min Jabber/GTalk-adress." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Inställningar sparade." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Inget Jabber-ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Kan inte normalisera detta Jabber-ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Inte ett giltigt Jabber-ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Detta är redan ditt Jabber-ID" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber-ID:t tillhör redan en annan användare." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2089,28 +2892,28 @@ msgstr "" "att %s får skicka meddelanden till dig." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Detta är fel IM-adress." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Kunde inte ta bort bekräftelse för snabbmeddelanden." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Bekräftelse för snabbmeddelanden avbruten." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Detta är inte ditt Jabber-ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Adressen för snabbmeddelanden togs bort." @@ -2129,51 +2932,81 @@ msgid "This is your inbox, which lists your incoming private messages." msgstr "" "Detta är din inkorg som innehåller dina inkommande privata meddelanden." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Inbjudningar har blivit inaktiverade." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Du måste vara inloggad för att kunna bjuda in andra användare till %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Ogiltig e-postadress: %s" +msgid "Invalid email address: %s." +msgstr "Ogiltig e-postadress: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Inbjudan(ar) skickad(e)" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "Inbjudningar skickade" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Bjud in nya användare" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Du prenumererar redan på dessa användare:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Du prenumererar redan på denna användare:" +msgstr[1] "Du prenumererar redan på dessa användare:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" +"Dessa personer är redan registrerade användare och du blev automatiskt " +"prenumerat hos dem:" +msgstr[1] "" "Dessa personer är redan registrerade användare och du blev automatiskt " "prenumerat hos dem:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Inbjudning(ar) har skickats till följande personer:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +#, fuzzy +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Inbjudning(ar) har skickats till följande personer:" +msgstr[1] "Inbjudning(ar) har skickats till följande personer:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2181,43 +3014,54 @@ msgstr "" "Du kommer bli meddelad när någon du bjudit in accepterar inbjudan och " "registrerar sig. Tack för att du hjälper oss växa!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" "Använd detta formulär för att bjuda in dina vänner och kollegor att använda " "denna tjänst." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "E-postadresser" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "Adresser till vänner att bjuda in (en rad per adress)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Personligt meddelande" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Om du vill, skriv ett personligt meddelande till inbjudan." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Skicka" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har bjudit in dig att gå med dem på %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2278,13 +3122,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du måste vara inloggad för att kunna gå med i en grupp." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Inget smeknamn eller ID." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s gick med i grupp %2$s" @@ -2293,17 +3131,121 @@ msgstr "%1$s gick med i grupp %2$s" msgid "You must be logged in to leave a group." msgstr "Du måste vara inloggad för att lämna en grupp." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "Du är inte en medlem i den gruppen." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s lämnade grupp %2$s" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Licens" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Licens för denna StatusNet-webbplats" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Ogiltigt licensval." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Ogiltig välkomsttext. Maximal längd är 255 tecken." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Privat" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Alla rättigheter reserverade" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Typ" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Välj licens" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Licensdetaljer" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Ägare" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Licenstitel" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Titeln på licensen." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Licens-URL" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL för mer information om licensen." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Spara licensinsällningar" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Redan inloggad." @@ -2324,11 +3266,11 @@ msgstr "Logga in" msgid "Login to site" msgstr "Logga in på webbplatsen" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Kom ihåg mig" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Logga in automatiskt i framtiden; inte för delade datorer!" @@ -2379,68 +3321,78 @@ msgstr "Kan inte göra %1$s till en administratör för grupp %2$s." msgid "No current status." msgstr "Ingen aktuell status." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Ny applikation" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Du måste vara inloggad för att registrera en applikation." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Använd detta formulär för att registrera en ny applikation." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Webbadress till källa krävs." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Kunde inte skapa applikation." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "Ny grupp" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "Använd detta formulär för att skapa en ny grupp." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Nytt meddelande" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Du kan inte skicka ett meddelande till den användaren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Inget innehåll!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Ingen mottagare angiven." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Skicka inte meddelande till dig själv; viska lite tyst till dig själv " "istället." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Meddelande skickat" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Direktmeddelande till %s skickat." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "AJAX-fel" @@ -2448,7 +3400,7 @@ msgstr "AJAX-fel" msgid "New notice" msgstr "Ny notis" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Notis postad" @@ -2501,10 +3453,11 @@ msgstr "Uppdateringar som matchar söksträngen \"%1$s\" på %2$s!" #: actions/nudge.php:85 #, fuzzy msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" -"Denna användare har inte tillåtit knuffar eller har inte bekräftat eller " -"angett sitt e-post än." +"Denna användare tillåter inte knuffar eller har inte bekräftat eller angett " +"sin e-post än." #: actions/nudge.php:94 msgid "Nudge sent" @@ -2514,73 +3467,97 @@ msgstr "Knuff sänd" msgid "Nudge sent!" msgstr "Knuff sänd!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "Du måste vara inloggad för att lista dina applikationer." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth-applikationer" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "Applikationer du har registrerat" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "Du har inte registrerat några applikationer än." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Anslutna applikationer" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "Du har tillåtit följande applikationer att komma åt ditt konto." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Du är inte en användare av den applikationen." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "Kunde inte återkalla åtkomst för applikation: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "Du har inte tillåtit några applikationer att använda ditt konto." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" -"Utvecklare kan redigera registreringsinställningarna för sina applikationer " #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Notisen har ingen profil." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$ss status den %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Innehållstyp %s stödjs inte." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "Endast %s-webbadresser över vanlig HTTP." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -2592,36 +3569,46 @@ msgstr "Personsökning" msgid "Notice Search" msgstr "Notissökning" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Övriga inställningar" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Hantera diverse andra alternativ." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "(fri tjänst)" +msgstr " (fri tjänst)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Förkorta URL:er med" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Automatiska förkortningstjänster att använda." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Visa profilutseenden" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Visa eller göm profilutseenden." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Namnet på URL-förkortningstjänsen är för långt (max 50 tecken)." #: actions/otp.php:69 @@ -2683,7 +3670,7 @@ msgid "6 or more characters" msgstr "Minst 6 tecken" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Bekräfta" @@ -2695,11 +3682,11 @@ msgstr "Samma som lösenordet ovan" msgid "Change" msgstr "Ändra" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Lösenordet måste vara minst 6 tecken." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Lösenorden matchar inte." @@ -2719,157 +3706,284 @@ msgstr "Kan inte spara nytt lösenord." msgid "Password saved." msgstr "Lösenord sparat." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Sökvägar" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Sökvägs- och serverinställningar för denna StatusNet-webbplats." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Katalog med teman är inte läsbar: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Katalog med avatarer är inte skrivbar: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Katalog med bakgrunder är inte skrivbar: %s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Katalog med lokaliseringfiler (locales) är inte läsbar. %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Ogiltigt SSL-servernamn. Den maximala längden är 255 tecken." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Webbplats" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Server" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Värdnamn för webbplatsens server." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Sökväg" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Sökväg till webbplats" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Sökväg till webbplats." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Sökväg till lokaliseringfiler (locales)" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Katalog med lokaliseringsfiler (locales)" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Katalogsökväg till lokaliseringfiler (locales)" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Katalogsökväg till lokaliseringfiler (locales)." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Utsmyckade URL:er" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" "Skall utsmyckade URL:er användas (mer läsbara och lättare att komma ihåg)?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Teman" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Server med teman" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Server för teman." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Sökväg till teman" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Katalog med teman" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Avatarer" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Server med avatarer" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Sökväg till avatarer" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Katalog med avatarer" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Bakgrunder" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Server med bakgrunder" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Sökväg till bakgrunder" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Katalog med bakgrunder" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Aldrig" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Ibland" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Alltid" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Använd SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "När SSL skall användas" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-server" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Server att dirigera SSL-begäran till" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Sökväg till webbplats" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Katalog" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +#, fuzzy +msgid "Directory where themes are located." +msgstr "Katalogsökväg till lokaliseringfiler (locales)" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Avatarer" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Server med avatarer" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Server för avatarer." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Sökväg till avatarer" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Misslyckades uppdatera avatar." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Katalog med avatarer" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +#, fuzzy +msgid "Directory where avatars are located." +msgstr "Katalogsökväg till lokaliseringfiler (locales)" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Bakgrunder" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Tema för webbplatsen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +#, fuzzy +msgid "Directory where backgrounds are located." +msgstr "Katalogsökväg till lokaliseringfiler (locales)" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Bilagor" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Tema för webbplatsen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Inga bilagor." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Tema för webbplatsen." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +#, fuzzy +msgid "Directory where attachments are located." +msgstr "Katalogsökväg till lokaliseringfiler (locales)" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Aldrig" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Ibland" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Alltid" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Använd SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "När SSL skall användas." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Server att dirigera SSL-begäran till." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Spara sökvägar" @@ -2905,141 +4019,186 @@ msgstr "Ogiltigt notisinnehåll." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Licensen för notiser ‘%1$s’ är inte förenlig webbplatslicensen ‘%2$s’." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profilinställningar" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Du kan uppdatera din personliga profilinformation här så att folk vet mer om " "dig." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Profilinformation" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 små bokstäver eller nummer, inga punkter eller mellanslag" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Fullständigt namn" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Hemsida" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "URL till din hemsida, blogg eller profil på en annan webbplats." -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Beskriv dig själv och dina intressen med högst 140 tecken" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Beskriv dig själv och dina intressen med högst 140 tecken" +msgstr[1] "Beskriv dig själv och dina intressen med högst 140 tecken" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Beskriv dig själv och dina intressen" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Biografi" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Plats" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Dela min nuvarande plats när jag skickar notiser" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Taggar" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 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:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Föredraget språk" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Tidszon" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "I vilken tidszon befinner du dig normalt?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Prenumerera automatiskt på den som prenumererar på mig (bäst för icke-" "människa) " -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Biografin är för lång (max %d tecken)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Biografin är för lång (max %d tecken)." +msgstr[1] "Biografin är för lång (max %d tecken)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidszon inte valt." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "Språknamn är för långt (max 50 tecken)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ogiltig tagg: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Kunde inte uppdatera användaren för automatisk prenumeration." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Kunde inte spara platsinställningar." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Kunde inte spara profil." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Kunde inte spara taggar." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Inställningar sparade." @@ -3118,25 +4277,38 @@ msgstr "" "Mikroblogg)tjänst baserad på den fria programvaran [StatusNet](http://status." "net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Publikt taggmoln" -#: actions/publictagcloud.php:63 -#, php-format -msgid "These are most popular recent tags on %s " +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 +#, fuzzy, php-format +msgid "These are most popular recent tags on %s" msgstr "Dessa är de populäraste senaste taggarna på %s " -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Ingen har postat en notis med en [hashtagg](%%doc.tags%%) än." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Bli först att posta en!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3145,7 +4317,7 @@ msgstr "" "Varför inte [registrera ett konto](%%action.register%%) och bli först att " "posta en!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Taggmoln" @@ -3259,14 +4431,15 @@ msgid "Unexpected password reset." msgstr "Oväntad återställning av lösenord." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Lösenordet måste vara minst 6 tecken." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Lösenord och bekräftelse matchar inte." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Fel uppstog i användarens inställning" @@ -3274,7 +4447,7 @@ msgstr "Fel uppstog i användarens inställning" msgid "New password successfully saved. You are now logged in." msgstr "Nya lösenordet sparat. Du är nu inloggad." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "Tyvärr, bara inbjudna personer kan registrera sig." @@ -3286,7 +4459,7 @@ msgstr "Tyvärr, ogiltig inbjudningskod." msgid "Registration successful" msgstr "Registreringen genomförd" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrera" @@ -3294,19 +4467,19 @@ msgstr "Registrera" msgid "Registration not allowed." msgstr "Registrering inte tillåten." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Du kan inte registrera dig om du inte godkänner licensen." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "E-postadressen finns redan." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Ogiltigt användarnamn eller lösenord." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3314,60 +4487,64 @@ msgstr "" "Med detta formulär kan du skapa ett nytt konto. Du kan sedan posta notiser " "och ansluta till vänner och kollegor. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 små bokstäver eller nummer, inga punkter eller mellanslag. Måste fyllas " "i." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "Minst 6 tecken. Måste fyllas i." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Samma som lösenordet ovan. Måste fyllas i." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "E-post" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Används endast för uppdateringar, tillkännagivanden och återskapande av " "lösenord" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Längre namn, förslagsvis ditt \"verkliga\" namn" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL till din hemsida, blogg eller profil på en annan webbplats." + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" "Jag förstår att innehåll och data av %1$s är privata och konfidentiella." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Upphovsrätten till min text och mina filer innehas av %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Upphovsrätten till min text och mina filer är fortsatt min." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Alla rättigheter reserverade." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3376,7 +4553,7 @@ msgstr "" "Mina texter och filer är tillgängliga under %s med undantag av den här " "privata datan: lösenord, e-postadress, IM-adress, telefonnummer." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3409,7 +4586,7 @@ msgstr "" "Tack för att du anmält dig och vi hoppas att du kommer tycka om att använda " "denna tjänst." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3454,7 +4631,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL till din profil på en annan kompatibel mikrobloggtjänst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Prenumerera" @@ -3492,7 +4669,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:675 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Upprepad" @@ -3501,7 +4678,7 @@ msgid "Repeated!" msgstr "Upprepad!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Svarat till %s" @@ -3527,13 +4704,11 @@ msgid "Replies feed for %s (Atom)" msgstr "Flöde med svar för %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "" -"Detta är tidslinjen som visar svar till %s1$ men %2$s har inte tagit emot en " -"notis för dennes uppmärksamhet än." +msgstr "Detta är tidslinjen för %1$s men %2$s har inte postat något än." #: actions/replies.php:204 #, php-format @@ -3545,13 +4720,13 @@ msgstr "" "personer eller [gå med i grupper](%%action.groups%%)." #: actions/replies.php:206 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kan prova att [knuffa %1$s](../%2$s) eller [posta någonting för hans " -"eller hennes uppmärksamhet](%%%%action.newnotice%%%%?status_textarea=%3$s)." +"Var den första att [skriva i detta ämne](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/repliesrss.php:72 #, php-format @@ -3580,13 +4755,13 @@ msgstr "Användare är redan flyttad till sandlådan." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Sessioner" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Sessionsinställningar för denna StatusNet-webbplats." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3605,7 +4780,6 @@ msgid "Turn on debugging output for sessions." msgstr "Sätt på felsökningsutdata för sessioner." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Spara webbplatsinställningar" @@ -3618,28 +4792,29 @@ msgid "Application profile" msgstr "Applikationsprofil" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Ikon" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Namn" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Organisation" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Statistik" @@ -3657,6 +4832,11 @@ msgstr "Åtgärder för applikation" msgid "Reset key & secret" msgstr "Återställ nyckel & hemlighet" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Ta bort" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Information om applikation" @@ -3728,100 +4908,126 @@ msgstr "" "att sätta strålkastarljuset på." #: actions/showfavorites.php:208 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" -"%s har inte lagt till några notiser till sina favoriter ännu. Posta något " -"intressant de skulle lägga till sina favoriter :)" +"%s har inte lagt till några favoritnotiser ännu. Posta något intressant de " +"skulle lägga till sina favoriter :)" #: actions/showfavorites.php:212 -#, fuzzy, php-format +#, php-format msgid "" "%s hasn't added any favorite notices yet. Why not [register an account](%%%%" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" -"%s har inte lagt till några notiser till sina favoriter ännu. Varför inte " -"[registrera ett konto](%%%%action.register%%%%) och posta något intressant " -"de skulle lägga till sina favoriter :)" +"Varför inte [registrera ett konto](%%action.register%%) och vara först med " +"att lägga en notis till dina favoriter!" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Detta är ett sätt att dela med av det du gillar." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s grupp" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s grupp, sida %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "Grupprofil" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Notis" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "Åtgärder för grupp" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Flöde av notiser för %s grupp (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Flöde av notiser för %s grupp (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Flöde av notiser för %s grupp (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "FOAF för %s grupp" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Alla medlemmar" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Skapad" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Medlemmar" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3836,7 +5042,10 @@ msgstr "" "sina liv och intressen. [Gå med nu](%%%%action.register%%%%) för att bli en " "del av denna grupp och många fler! ([Läs mer](%%%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3849,24 +5058,31 @@ msgstr "" "[StatusNet](http://status.net/). Dess medlemmar delar korta meddelande om " "sina liv och intressen. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Administratörer" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Inget sådant meddelande." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Endast avsändaren och mottagaren kan läsa detta meddelande." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Meddelande till %1$s på %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Meddelande från %1$s på %2$s" @@ -3875,47 +5091,67 @@ msgstr "Meddelande från %1$s på %2$s" msgid "Notice deleted." msgstr "Notis borttagen." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "taggade %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s taggade %2$d" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s taggade %2$s, sida %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, sida %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "Flöde av notiser för %1$s taggade %2$s (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Flöde av notiser för %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Flöde av notiser för %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Flöde av notiser för %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF för %s" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "Detta är tidslinjen för %1$s men %2$s har inte postat något än." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3923,16 +5159,20 @@ msgstr "" "Sett något intressant nyligen? Du har inte postat några notiser än. Varför " "inte börja nu?" -#: actions/showstream.php:207 -#, fuzzy, php-format +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 +#, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -"Du kan prova att knuffa %1$s eller [posta något för hans eller hennes " -"uppmärksamhet](%%%%action.newnotice%%%%?status_textarea=%2$s)." +"Var den första att [skriva i detta ämne](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3945,7 +5185,9 @@ msgstr "" "[StatusNet](http://status.net/). [Gå med nu](%%%%action.register%%%%) för " "att följa **%s**s notiser och många fler! ([Läs mer](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3956,7 +5198,8 @@ msgstr "" "wikipedia.org/wiki/Mikroblogg)tjänst baserad på den fria programvaran " "[StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Upprepning av %s" @@ -4069,31 +5312,40 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Hur länge användare måste vänta (i sekunder) för att posta samma sak igen." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Webbplatsnotis" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Redigera webbplastsnotis" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Kunde inte spara webbplatsnotis." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Maximal längd för webbplatsnotisen är 255 tecken." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Text för webbplatsnotis" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "Text för webbplatsnotis (max 255 tecken; HTML ok)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Spara webbplatsnotis" @@ -4253,7 +5505,7 @@ msgstr "Ingen kod ifylld" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Ögonblicksbilder" @@ -4309,12 +5561,14 @@ msgstr "Ögonblicksbild kommer skickat till denna URL" msgid "Save snapshot settings" msgstr "Spara inställningar för ögonblicksbild" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Du är inte prenumerat hos den profilen." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Kunde inte spara prenumeration." @@ -4322,10 +5576,6 @@ msgstr "Kunde inte spara prenumeration." msgid "This action only accepts POST requests." msgstr "Denna åtgärd accepterar endast POST-begäran." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Ingen sådan profil." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "Du kan inte prenumerera på en 0MB 0.1-fjärrprofil med denna åtgärd." @@ -4334,39 +5584,56 @@ msgstr "Du kan inte prenumerera på en 0MB 0.1-fjärrprofil med denna åtgärd." msgid "Subscribed" msgstr "Prenumerant" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s prenumeranter" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s prenumeranter, sida %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Det är dessa personer som lyssnar på dina notiser." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Det är dessa personer som lyssnar på %ss notiser." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "Du har inga prenumeranter. Prova att prenumerera på personer du känner och " "de kommer kanske återgälda tjänsten" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%s har inte några prenumeranter. Vill du bli först?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4375,26 +5642,31 @@ msgstr "" "%s har inte några prenumeranter. Varför inte [registrera ett konto](%%%%" "action.register%%%%) och bli först?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s prenumerationer" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s prenumerationer, sida %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Det är dessa personer vars meddelanden du lyssnar på." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Det är dessa personer vars notiser %s lyssnar på." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4404,22 +5676,33 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" "Du lyssnar inte på någons notiser just nu. Prova att prenumerera på personer " -"du känner. Prova [personsökning] (%%action.peoplesearch%%), leta bland " +"du känner. Prova [personsökning](%%action.peoplesearch%%), leta bland " "medlemmar i grupper som intresserad dig och bland våra [profilerade " -"användare] (%%action.featured%%). Om du är en [Twitter-användare] (%%action." +"användare](%%action.featured%%). Om du är en [Twitter-användare](%%action." "twittersettings%%) kan du prenumerera automatiskt på personer som du redan " "följer där." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s lyssnar inte på någon." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Flöde av notiser för %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" @@ -4457,7 +5740,7 @@ msgid "User profile" msgstr "Användarprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Foto" @@ -4522,76 +5805,98 @@ msgstr "" "2$s'." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Användare" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Användarinställningar för denna StatusNet-webbplats" +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Ogiltig begränsning av biografi. Måste vara numerisk." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "Ogiltig välkomsttext. Maximal längd är 255 tecken." -#: actions/useradminpanel.php:165 -#, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 +#, fuzzy, php-format +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Ogiltig standardprenumeration: '%1$s' är inte användare." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Begränsning av biografi" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Maximal teckenlängd av profilbiografi." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Nya användare" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Välkomnande av ny användare" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "Välkomsttext för nya användare (max 255 tecken)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Standardprenumerationer" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "" "Lägg automatiskt till en prenumeration på denna användare för alla nya " "användare." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Inbjudningar" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Inbjudningar aktiverade" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "Hurvida användare skall tillåtas bjuda in nya användare." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Godkänn prenumeration" @@ -4606,7 +5911,9 @@ msgstr "" "prenumerera på den här användarens notiser. Om du inte bett att prenumerera " "på någons meddelanden, klicka på \"Avvisa\"." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Licens" @@ -4694,11 +6001,13 @@ msgstr "Kan inte läsa avatar-URL '%s'." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Fel bildtyp för avatar-URL '%s'." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Profilutseende" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4736,7 +6045,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Uppdateringar från %1$s på %2$s!" @@ -4797,7 +6106,7 @@ msgid "Plugins" msgstr "Insticksmoduler" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Version" @@ -4805,63 +6114,113 @@ msgstr "Version" msgid "Author(s)" msgstr "Författare" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Markera som favorit" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%s (@%s) lade till din notis som en favorit" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Webbadressen '%s' kan inte bearbeta" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Robin tycker att något är omöjligt" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, fuzzy, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Inga filer får vara större än %d byte och filen du skickade var %d byte. " +msgstr[0] "" +"Ingen fil får vara större än %1$d byte och filen du skickade var %2$d byte. " +"Prova att ladda upp en mindre version." +msgstr[1] "" +"Ingen fil får vara större än %1$d byte och filen du skickade var %2$d byte. " "Prova att ladda upp en mindre version." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 -#, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "En så här stor fil skulle överskrida din användarkvot på %d byte." +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 +#, fuzzy, php-format +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "En så här stor fil skulle överskrida din användarkvot på %d byte." +msgstr[1] "En så här stor fil skulle överskrida din användarkvot på %d byte." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 -#, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "En sådan här stor fil skulle överskrida din månatliga kvot på %d byte." +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 +#, fuzzy, php-format +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +"En sådan här stor fil skulle överskrida din månatliga kvot på %d byte." +msgstr[1] "" +"En sådan här stor fil skulle överskrida din månatliga kvot på %d byte." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Ogiltig storlek." +msgstr "Ogiltigt filnamn." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "Gruppanslutning misslyckades." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "Inte med i grupp." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "Grupputträde misslyckades." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Fel vid sparande av användare; ogiltig." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Gå med" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4877,20 +6236,20 @@ msgstr "Kunde inte skapa inloggnings-token för %s" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "Inget databasnamn eller DSN funnen någonstans." #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Du är utestängd från att skicka direktmeddelanden." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Kunde inte infoga meddelande." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Kunde inte uppdatera meddelande med ny URI." @@ -4899,26 +6258,26 @@ msgstr "Kunde inte uppdatera meddelande med ny URI." #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "Ingen sådan profil (%1$d) för notis (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Databasfel vid infogning av hashtag: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Problem vid sparande av notis. För långt." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Problem vid sparande av notis. Okänd användare." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4926,7 +6285,7 @@ msgstr "" "minuter." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4935,353 +6294,405 @@ msgstr "" "om ett par minuter." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Du är utestängd från att posta notiser på denna webbplats." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Problem med att spara notis." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +#, fuzzy +msgid "Bad type provided to saveKnownGroups." +msgstr "Dålig typ tillhandahållen saveKnownGroups" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Kunde inte spara lokal gruppinformation." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "Kan inte återkalla roll \"%1$s\" för användare #%2$d; finns inte." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." -msgstr "" +msgstr "Kan inte återkalla roll \"%1$s\" för användare #%2$d; databasfel." #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "Användaren har ingen profil." +msgstr "Saknar profil." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Kunde inte spara webbplatsnotis." +msgstr "Kunde inte spara tagg." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Du har blivit utestängd från att prenumerera." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Redan prenumerant!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "Användaren har blockerat dig." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Inte prenumerant!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Kunde inte ta bort själv-prenumeration." +msgstr "Kunde inte spara prenumeration." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Kunde inte radera OMB prenumerations-token." +msgstr "Kunde inte spara prenumeration." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Kunde inte ta bort prenumeration." +msgstr "Kunde inte spara prenumeration." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Följ" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s lyssnar nu på dina notiser på %2$s." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Ingen enskild användare definierad för enanvändarläge." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "Kunde inte skapa grupp." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." msgstr "Kunde inte ställa in grupp-URI." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Kunde inte ställa in gruppmedlemskap." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." msgstr "Kunde inte spara lokal gruppinformation." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Ändra dina profilinställningar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Ladda upp en avatar" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Ändra ditt lösenord" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Ändra e-posthantering" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" msgstr "Designa din profil" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Övriga alternativ" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Övrigt" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Namnlös sida" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Visa mer" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Primär webbplatsnavigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personlig profil och vänners tidslinje" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Personligt" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändra din e-post, avatar, lösenord, profil" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Konto" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Anslut till tjänster" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Anslut" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ändra webbplatskonfiguration" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Administratör" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjud in vänner och kollegor att gå med dig på %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Bjud in" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logga ut från webbplatsen" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Logga ut" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Skapa ett konto" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Registrera" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Logga in på webbplatsen" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Logga in" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjälp mig!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Hjälp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Sök efter personer eller text" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Sök" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Webbplatsnotis" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Lokala vyer" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Sidnotis" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Sekundär webbplatsnavigation" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hjälp" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Om" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "Frågor & svar" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Användarvillkor" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Sekretess" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Källa" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Emblem" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Programvarulicens för StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5291,13 +6702,16 @@ msgstr "" "%%](%%site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** är en mikrobloggtjänst." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5309,344 +6723,453 @@ msgstr "" "fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Licens för webbplatsinnehåll" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Innehåll och data av %1$s är privat och konfidensiell." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Innehåll och data copyright av %1$s. Alla rättigheter reserverade." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Innehåll och data copyright av medarbetare. Alla rättigheter reserverade." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Innehåll och data på %1$s är tillgänglig under licensen %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Numrering av sidor" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Senare" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Tidigare" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "Förväntade ett flödes rotelement, men fick ett helt XML-dokument." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Foto" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Kan inte hantera fjärrinnehåll ännu." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Kan inte hantera inbäddat XML-innehåll ännu." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Kan inte hantera inbäddat Base64-innehåll ännu." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Du kan inte göra förändringar av denna webbplats." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Ändringar av den panelen tillåts inte." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() är inte implementerat." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSetting() är inte implementerat." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Kunde inte ta bort utseendeinställning." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Grundläggande webbplatskonfiguration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Webbplats" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Konfiguration av utseende" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Utseende" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Konfiguration av användare" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Användare" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Konfiguration av åtkomst" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Konfiguration av sökvägar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Konfiguration av sessioner" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Redigera webbplatsnotis" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Konfiguration av ögonblicksbilder" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Ange webbplatslicens" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-resursen kräver läs- och skrivrättigheter, men du har bara läsrättighet." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Redigera applikation" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Kunde inte skapa alias." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Kunde inte skapa applikation." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Kunde inte infoga meddelande." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Databasfel vid infogning av OAuth-applikationsanvändare." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Ikon för denna applikation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "Beskriv din applikation med högst %d tecken" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Beskriv din applikation med högst %d tecken" +msgstr[1] "Beskriv din applikation med högst %d tecken" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "Beskriv din applikation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL till hemsidan för denna applikation" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL för källa" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Organisation som ansvarar för denna applikation" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL till organisationens hemsidan" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL att omdirigera till efter autentisering" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Webbläsare" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Skrivbord" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Typ av applikation, webbläsare eller skrivbord" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Skrivskyddad" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Läs och skriv" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Standardåtkomst för denna applikation: skrivskyddad, eller läs och skriv" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Avbryt" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "läs och skriv" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "skrivskyddad" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Godkänd %1$s - \"%2$s\" åtkomst." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Återkalla" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Bilagor" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Författare" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Tillhandahållare" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Notiser där denna bilaga förekommer" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Taggar för denna billaga" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Byte av lösenord misslyckades" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Byte av lösenord misslyckades." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Byte av lösenord är inte tillåtet" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Byte av lösenord är inte tillåtet." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Blockera" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Resultat av kommando" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "AJAX-fel" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Kommando komplett" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Kommando misslyckades" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Notis med den ID:n finns inte" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Notis med den ID:n finns inte." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Användare har ingen sista notis" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Användare har ingen sista notis." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Kunde inte hitta en användare med smeknamnet %s" +msgid "Could not find a user with nickname %s." +msgstr "Kunde inte hitta en användare med smeknamnet %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Kunde inte hitta en lokal användare med smeknamnet %s" +msgid "Could not find a local user with nickname %s." +msgstr "Kunde inte hitta en lokal användare med smeknamnet %s." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Tyvärr, detta kommando är inte implementerat än." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Det verkar inte vara särskilt meningsfullt att knuffa dig själv!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Knuff skickad till %s" +msgid "Nudge sent to %s." +msgstr "Knuff skickad till %s." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5657,55 +7180,64 @@ msgstr "" "Prenumeranter: %2$s\n" "Notiser: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Notis markerad som favorit." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Du är redan en medlem i denna grupp" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Kunde inte ansluta användare %1$s till grupp %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s gick med i grupp %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Kunde inte ta bort användare %1$s från grupp %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s lämnade grupp %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Fullständigt namn: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Plats: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Hemsida: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Om: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5714,145 +7246,175 @@ msgstr "" "%s är en fjärrprofil; du kan bara skicka direktmeddelanden till användare på " "samma server." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." +msgstr[1] "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Direktmeddelande till %s skickat" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Fel vid sändning av direktmeddelande." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Kan inte upprepa din egen notis" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Redan upprepat denna notis" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Notis fron %s upprepad" +msgid "Notice from %s repeated." +msgstr "Notis från %s upprepad." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Fel vid upprepning av notis." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Notis för långt - maximum är %d tecken, du skickade %d" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Notis för långt - maximum är %1$d tecken, du skickade %2$d." +msgstr[1] "Notis för långt - maximum är %1$d tecken, du skickade %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Svar på %s skickat" +msgid "Reply to %s sent." +msgstr "Svar på %s skickat." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Fel vid sparande av notis." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Ange namnet på användaren att prenumerara på" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Ange namnet på användaren att prenumerara på." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Kan inte prenumera på OMB-profiler via kommando." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Prenumerar på %s" +msgid "Subscribed to %s." +msgstr "Prenumererar på %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Ange namnet på användaren att avsluta prenumeration på" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Ange namnet på användaren att avsluta prenumeration på." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Prenumeration hos %s avslutad" +msgid "Unsubscribed from %s." +msgstr "Prenumeration på %s avslutad." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Kommando inte implementerat än." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Notifikation av." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Kan inte sätta på notifikation." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Notifikation på." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Kan inte stänga av notifikation." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Inloggningskommando är inaktiverat" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Inloggningskommando är inaktiverat." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Denna länk är endast användbar en gång, och gäller bara i 2 minuter: %s" +"Denna länk är bara användbar en gång och är bara giltig i 2 minuter: %s. " -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Prenumeration avslutad %s" +msgid "Unsubscribed %s." +msgstr "%ss prenumeration avslutad." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Du prenumererar inte på någon." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Du prenumererar på denna person:" msgstr[1] "Du prenumererar på dessa personer:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "Ingen prenumerar på dig." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Denna person prenumererar på dig:" msgstr[1] "Dessa personer prenumererar på dig:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "Du är inte medlem i några grupper." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du är en medlem i denna grupp:" msgstr[1] "Du är en medlem i dessa grupper:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5932,50 +7494,74 @@ msgstr "" "tracks - inte implementerat än.\n" "tracking - inte implementerat än.\n" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "Ingen konfigurationsfil hittades. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "Jag letade efter konfigurationsfiler på följande platser: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Du kanske vill köra installeraren för att åtgärda detta." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Gå till installeraren." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "Snabbmeddelande" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Uppdateringar via snabbmeddelande (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Uppdateringar via SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "Anslutningar" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Tillåt anslutna applikationer" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Databasfel" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Ladda upp fil" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5983,41 +7569,57 @@ msgstr "" "Du kan ladda upp din personliga bakgrundbild. Den maximala filstorleken är " "2MB." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "På" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Av" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Återställ" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Standardvärden för utseende återställda." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Avmarkera denna notis som favorit" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Markera denna notis som favorit" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Markera som favorit" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Exportdata" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Flöden" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6048,8 +7650,13 @@ msgstr "Gå" msgid "Grant this user the \"%s\" role" msgstr "Bevilja denna användare \"%s\"-rollen" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 små bokstäver eller nummer, inga punkter eller mellanslag" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" +#, fuzzy +msgid "URL of the homepage or blog of the group or topic." msgstr "URL till gruppen eller ämnets hemsida eller blogg" #: lib/groupeditform.php:168 @@ -6057,61 +7664,116 @@ msgid "Describe the group or topic" msgstr "Beskriv gruppen eller ämnet" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Beskriv gruppen eller ämnet med högst %d tecken" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Beskriv gruppen eller ämnet med högst %d tecken" +msgstr[1] "Beskriv gruppen eller ämnet med högst %d tecken" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Plats för gruppen, om den finns, såsom \"Stad, Län, Land\"" -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "Extra smeknamn för gruppen, komma- eller mellanslagsseparerade, max &d" +#: lib/groupeditform.php:190 +#, fuzzy, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Extra smeknamn för gruppen, komma- eller mellanslagsseparerade, max &d" +msgstr[1] "" +"Extra smeknamn för gruppen, komma- eller mellanslagsseparerade, max &d" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "Grupp" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Blockerad" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "%s grupp" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Medlemmar" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "%s gruppmedlemmar" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Blockerade" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "%s blockerade användare" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "Redigera %s gruppegenskaper" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "Logotyp" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Lägg till eller redigera %s logotyp" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Lägg till eller redigera %s utseende" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "Grupper med flest medlemmar" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "Grupper med flest inlägg" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "Taggar i %s grupps notiser" @@ -6125,38 +7787,57 @@ msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat" msgid "Unsupported image file format." msgstr "Bildfilens format stödjs inte." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Denna fil är för stor. Den maximala filstorleken är %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Bitvis uppladdad." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Systemfel vid uppladdning av fil." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Inte en bildfil eller så är filen korrupt." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Förlorade vår fil." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Okänd filtyp" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "MB" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dMB" +msgstr[1] "%dMB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "kB" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dkB" +msgstr[1] "%dkB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dB" +msgstr[1] "%dB" #: lib/jabber.php:387 #, php-format @@ -6168,10 +7849,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Okänd källa för inkorg %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Gå med" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Lämna" @@ -6184,27 +7861,29 @@ msgstr "Logga in med ett användarnamn och lösenord" msgid "Sign up for a new account" msgstr "Registrera dig för ett nytt konto" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "E-postadressbekräftelse" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "Hej %s!\n" "\n" @@ -6219,13 +7898,16 @@ msgstr "" "Tack för din tid, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s lyssnar nu på dina notiser på %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " @@ -6235,9 +7917,13 @@ msgstr "" "dina prenumeranter och rapportera det som skräppost till administratörer på %" "s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6245,10 +7931,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s lyssnar nu på dina notiser på %2$s.\n" "\n" @@ -6261,21 +7947,25 @@ msgstr "" "----\n" "Ändra din e-postadress eller notiferingsinställningar på %8$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Biografi: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Ny e-postadress för att skicka till %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 -#, php-format +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -6284,7 +7974,7 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" "Du har en ny adress på %1$s.\n" "\n" @@ -6295,31 +7985,36 @@ msgstr "" "Med vänliga hälsningar,\n" "%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s status" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS-bekräftelse" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "%s: bekräfta detta telefonnummer med denna kod:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Du har blivit knuffad av %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6346,14 +8041,18 @@ msgstr "" "Med vänliga hälsningar,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Nytt privat meddelande från %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6386,14 +8085,19 @@ msgstr "" "Med vänliga hälsningar,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, fuzzy, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%s (@%s) lade till din notis som en favorit" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6431,7 +8135,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6442,13 +8146,20 @@ msgstr "" "\n" "\t%s" -#: lib/mail.php:657 -#, php-format -msgid "%s (@%s) sent a notice to your attention" +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 +#, fuzzy, php-format +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "%s (@%s) skickade en notis för din uppmärksamhet" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6510,7 +8221,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:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "från" @@ -6530,22 +8241,25 @@ msgstr "Tyvärr, det är inte din inkommande e-postadress." msgid "Sorry, no incoming email allowed." msgstr "Tyvärr, ingen inkommande e-post tillåts." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Formatet %s för meddelande stödjs inte." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" "Det var ett databasfel vid sparandet av din profil. Var vänlig försök igen." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" "Den uppladdade filen överstiger upload_max_filesize-direktivet i php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6553,87 +8267,136 @@ msgstr "" "Den uppladdade filen överstiger MAX_FILE_SIZE-direktivet som var angivet i " "HTML-formuläret." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Den uppladdade filen var bara delvis uppladdad." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Saknar en tillfällig mapp." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Misslyckades att skriva fil till disk." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Filuppladdningen stoppad pga filändelse" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Fil överstiger användaren kvot." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Fil kunde inte flyttas till destinationskatalog." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Kunde inte fastställa filens MIME-typ." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "Försök använda ett annat %s-format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"\"%1$s\" är en filtyp som saknar stöd på denna server. Prova att använda ett " +"annat %2$s-format." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "%s är en filtyp som saknar stöd på denna server." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Skicka en direktnotis" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +#, fuzzy +msgid "Select recipient:" +msgstr "Välj licens" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Inte prenumerant!" + +#: lib/messageform.php:153 msgid "To" msgstr "Till" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Tillgängliga tecken" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "Skicka" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Skicka en notis" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Vad är på gång, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Bifoga" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Bifoga en fil" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Dela min plats" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Dela inte min plats" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6642,51 +8405,55 @@ msgstr "" "god försök igen senare" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "Ö" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "V" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "på" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "webb" + +#: lib/noticelist.php:583 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Notis upprepad" @@ -6702,55 +8469,52 @@ msgstr "Knuffa" msgid "Send a nudge to this user" msgstr "Skicka en knuff till denna användare" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Fel vid infogning av ny profil" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Fel vid infogning av ny profil." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Fel vid infogning av avatar" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Fel vid infogning av avatar." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Fel vid uppdatering av fjärrprofil" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Fel vid infogning av fjärrprofil." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Fel vid infogning av fjärrprofilen" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Duplicera notis." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Duplicerad notis" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Kunde inte infoga ny prenumeration." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Personligt" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Svar" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Favoriter" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Inkorg" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Dina inkommande meddelanden" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Utkorg" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Dina skickade meddelanden" @@ -6759,7 +8523,8 @@ msgstr "Dina skickade meddelanden" msgid "Tags in %s's notices" msgstr "Taggar i %ss notiser" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Okänd" @@ -6841,9 +8606,11 @@ msgstr "Upprepa denna notis" msgid "Revoke the \"%s\" role from this user" msgstr "Återkalla rollen \"%s\" från denna användare" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Ingen enskild användare definierad för enanvändarläge." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "API-metod hittades inte." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6853,19 +8620,25 @@ msgstr "Flytta till sandlådan" msgid "Sandbox this user" msgstr "Flytta denna användare till sandlådan" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Sök webbplats" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Nyckelord" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Sök" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Sök hjälp" @@ -6939,6 +8712,12 @@ msgstr "Taggmoln för person, såsom taggats" msgid "None" msgstr "Ingen" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Ogiltigt filnamn." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "Denna server kan inte hantera temauppladdningar utan ZIP-stöd." @@ -6948,26 +8727,30 @@ msgid "The theme file is missing or the upload failed." msgstr "Temafilen saknas eller uppladdningen misslyckades." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Kunde inte spara tema." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Ogiltigt tema: dålig katalogstruktur." #: lib/themeuploader.php:166 -#, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +#, fuzzy, php-format +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Uppladdat tema är för stort, måste vara mindre än %d byte okomprimerat." +msgstr[1] "" "Uppladdat tema är för stort, måste vara mindre än %d byte okomprimerat." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "Ogiltigt temaarkiv: filen css/display.css saknas" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6975,12 +8758,16 @@ msgstr "" "Tema innehåller ogiltigt fil- eller mappnamn. Använd bara ASCII-bokstäver, " "siffror, understreck och minustecken." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "Tema innehåller osäkra filtilläggsnamn; kan vara osäkert." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Tema innehåller fil av typen '.%s', vilket inte är tillåtet." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Fel vid öppning temaarkiv." @@ -6988,6 +8775,12 @@ msgstr "Fel vid öppning temaarkiv." msgid "Top posters" msgstr "Toppostare" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Häv blockering" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Flytta från sandlådan" @@ -7012,122 +8805,175 @@ msgstr "Avsluta prenumerationen på denna användare" msgid "Unsubscribe" msgstr "Avsluta pren." -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "Användare %s (%d) har inga profiluppgifter." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "Användaren har ingen profil." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Redigera avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Åtgärder för användare" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Borttagning av användare pågår..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Redigera profilinställningar" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Redigera" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Skicka ett direktmeddelande till denna användare" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Meddelande" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Moderera" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Användarroll" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Administratör" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Moderator" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "ett par sekunder sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "för nån minut sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "för %d minuter sedan" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "för ungefär en minut sedan" +msgstr[1] "för ungefär %d minuter sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "för en timma sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "för %d timmar sedan" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "för ungefär en timma sedan" +msgstr[1] "för ungefär %d timmar sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "för en dag sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "för %d dagar sedan" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "för ungefär en dag sedan" +msgstr[1] "för ungefär %d dagar sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "för en månad sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "för %d månader sedan" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "för ungefär en månad sedan" +msgstr[1] "för ungefär %d månader sedan" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "för ett år sedan" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s är inte en giltig färg!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s är inte en giltig färg! Använd 3 eller 6 hexadecimala tecken." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." +msgstr[1] "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Ogiltig storlek." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Ingen användar-ID angiven." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index bd506b98a0..250a871739 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -1,168 +1,210 @@ -# Translation of StatusNet to Telugu +# Translation of StatusNet - Core to Telugu (తెలుగు) +# Expored from translatewiki.net # -# Author@translatewiki.net: Brion -# Author@translatewiki.net: Veeven +# Author: Brion +# Author: Veeven # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:25:01+0000\n" -"Language-Team: Telugu\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:15+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "అందుబాటు" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "సైటు అందుబాటు అమరికలు" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "నమోదు" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "అజ్ఞాత (ప్రవేశించని) వాడుకరులని సైటుని చూడకుండా నిషేధించాలా?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "అంతరంగికం" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "ఆహ్వానితులు మాత్రమే నమోదు అవ్వగలిగేలా చెయ్యి." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "ఆహ్వానితులకు మాత్రమే" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "కొత్త నమోదులను అచేతనంచేయి." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "మూసివేయబడింది" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "అందుబాటు అమరికలను భద్రపరచు" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "భద్రపరచు" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "అటువంటి పేజీ లేదు." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "అటువంటి వాడుకరి లేరు." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s మరియు మిత్రులు, పేజీ %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s మరియు మిత్రులు" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s యొక్క మిత్రుల ఫీడు (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s యొక్క మిత్రుల ఫీడు (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s యొక్క మిత్రుల ఫీడు (ఆటమ్)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "ఇది %s మరియు మిత్రుల కాలరేఖ కానీ ఇంకా ఎవరూ ఏమీ రాయలేదు." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "ఇతరులకి చందా చేరండి, [ఏదైనా గుంపులో చేరండి](%%action.groups%%) లేదా మీరే ఏదైనా వ్రాయండి." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -170,418 +212,619 @@ msgid "" msgstr "" "[ఈ విషయంపై](%%%%action.newnotice%%%%?status_textarea=%s) వ్రాసే మొదటివారు మీరే అవ్వండి!" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, fuzzy, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "[ఒక ఖాతాని నమోదుచేసుకుని](%%action.register%%) మీరే మొదట వ్రాసేవారు ఎందుకు కాకూడదు!" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "మీరు మరియు మీ స్నేహితులు" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "%2$sలో %1$s మరియు స్నేహితుల నుండి తాజాకరణలు!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "నిర్ధారణ సంకేతం కనబడలేదు." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "వాడుకరికి ప్రొఫైలు లేదు." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "ప్రొఫైలుని భద్రపరచలేకున్నాం." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +msgstr[1] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "మీ రూపురేఖల అమరికలని భద్రపరచలేకున్నాం." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "ప్రధాన" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s కాలరేఖ" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s చందాలు" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "ఇష్టాంశాలు" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s గుంపు సభ్యులు" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "మిమ్మల్ని మీరే నిరోధించుకోలేరు!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "వాడుకరి నిరోధం విఫలమైంది." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 +#, fuzzy msgid "Unblock user failed." -msgstr "" +msgstr "వాడుకరి నిరోధం విఫలమైంది." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "%s నుండి నేరు సందేశాలు" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "%s నుండి పంపిన అన్ని నేరు సందేశాలు" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "%s కి నేరు సందేశాలు" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "%sకి పంపిన అన్ని నేరు సందేశాలు" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "సందేశపు పాఠ్యం లేదు!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం %d అక్షరాలు." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, fuzzy, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం %d అక్షరాలు." +msgstr[1] "చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం %d అక్షరాలు." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "అందుకోవాల్సిన వాడుకరి కనబడలేదు." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "మీ స్నేహితులు కాని వాడుకరులకి నేరు సందేశాలు పంపించలేరు." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +#, fuzzy +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "మీకు మీరే సందేశాన్ని పంపుకోకండి; దాని బదులు మీలో మీరే మెల్లగా చెప్పుకోండి." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "ఆ IDతో ఏ నోటీసూ కనబడలేదు." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "ఈ నోటీసు ఇప్పటికే మీ ఇష్టాంశం." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "ఇష్టాంశాన్ని సృష్టించలేకపోయాం." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "ఆ నోటీసు ఇష్టాంశం కాదు." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "వాడుకరిని అనుసరించలేకపోయాం: వాడుకరి కనబడలేదు." +msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "ఓపెన్ఐడీ ఫారమును సృష్టించలేకపోయాం: %s" +msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "మిమ్మల్ని మీరే అననుసరించలేరు." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "వాడుకరిని తాజాకరించలేకున్నాం." +msgstr "లక్ష్యిత వాడుకరిని కనుగొనలేకపోయాం." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "లక్ష్యిత వాడుకరిని కనుగొనలేకపోయాం." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "పేరులో చిన్నబడి అక్షరాలు మరియు అంకెలు మాత్రమే ఖాళీలు లేకుండా ఉండాలి." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "సరైన పేరు కాదు." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "హోమ్ పేజీ URL సరైనది కాదు." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +#, fuzzy +msgid "Full name is too long (maximum 255 characters)." msgstr "పూర్తి పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, php-format -msgid "Description is too long (max %d chars)." -msgstr "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, fuzzy, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." +msgstr[1] "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +#, fuzzy +msgid "Location is too long (maximum 255 characters)." msgstr "ప్రాంతం పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." -msgstr "చాలా మారుపేర్లు! %d గరిష్ఠం." +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, fuzzy, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "చాలా మారుపేర్లు! %d గరిష్ఠం." +msgstr[1] "చాలా మారుపేర్లు! %d గరిష్ఠం." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "తప్పుడు మారుపేరు: \"%s\"." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "\"%s\" అన్న మారుపేరుని ఇప్పటికే వాడుతున్నారు. మరొకటి ప్రయత్నించండి." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "మారుపేరు పేరుతో సమానంగా ఉండకూడదు." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "గుంపు దొరకలేదు." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "నిర్వాహకులు ఆ గుంపు నుండి మిమ్మల్ని నిరోధించారు." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "వాడుకరి %1$sని %2$s గుంపులో చేర్చలేకపోయాం" +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." msgstr "మీరు ఈ గుంపులో సభ్యులు కాదు." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "వాడుకరి %1$sని %2$s గుంపు నుండి తొలగించలేకపోయాం." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" msgstr "%s యొక్క గుంపులు" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." msgstr "%2$s సభ్యులుగా ఉన్న %2$s గుంపులు." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" msgstr "%s గుంపులు" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" msgstr "%s పై గుంపులు" -#: actions/apimediaupload.php:99 -#, fuzzy +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." -msgstr "ఫైలుని ఎక్కించు" +msgstr "ఎక్కింపు విఫలమైంది." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +#, fuzzy +msgid "Invalid request token or verifier." +msgstr "సందేశపు విషయం సరైనది కాదు" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 #, fuzzy -msgid "Invalid token." -msgstr "తప్పుడు పరిమాణం." +msgid "Invalid request token." +msgstr "తప్పుడు పాత్ర." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +#, fuzzy +msgid "Request token already authorized." +msgstr "మీకు అధీకరణ లేదు." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "తప్పుడు పేరు / సంకేతపదం!" -#: actions/apioauthauthorize.php:159 +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 #, fuzzy -msgid "Database error deleting OAuth application user." +msgid "Database error inserting oauth_token_association." msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" - +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "ఒక ఉపకరణం మీ ఖాతాకి అనుసంధానమవ్వాలనుకుంటూంది." -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "అనుమతిని ఇవ్వండి లేదా తిరస్కరించండి" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -589,242 +832,623 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "ఖాతా" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "పేరు" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "సంకేతపదం" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "తిరస్కరించు" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "రద్దుచేయి" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "అనుమతించు" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +#, fuzzy +msgid "Authorize access to your account information." msgstr "మీ ఖాతా సమాచారాన్ని సంప్రాపించడానికి అనుమతించండి లేదా నిరాకరించండి." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "అధీకరణ రద్దయింది." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +#, fuzzy +msgid "You have successfully authorized the application" +msgstr "మీకు అధీకరణ లేదు." + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, fuzzy, php-format +msgid "You have successfully authorized %s" +msgstr "మీకు అధీకరణ లేదు." + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "ఇతర వాడుకరుల స్థితిని మీరు తొలగించలేరు." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "అటువంటి సందేశమేమీ లేదు." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +#, fuzzy +msgid "HTTP method not supported." +msgstr "నిర్ధారణ సంకేతం కనబడలేదు." + +#: actions/apistatusesshow.php:141 +#, fuzzy, php-format +msgid "Unsupported format: %s" +msgstr "%s కి నేరు సందేశాలు" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "స్థితిని తొలగించాం." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "ఆ IDతో ఏ నోటీసు కనబడలేదు." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "ఈ నోటీసుని తొలగించలేము." + +#: actions/apistatusesshow.php:243 +#, fuzzy, php-format +msgid "Deleted notice %d" +msgstr "నోటీసుని తొలగించు" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "అది చాలా పొడవుంది. గరిష్ఠ నోటీసు పరిమాణం %d అక్షరాలు." +#, fuzzy, php-format +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "అది చాలా పొడవుంది. గరిష్ఠ నోటీసు పరిమాణం %d అక్షరాలు." +msgstr[1] "అది చాలా పొడవుంది. గరిష్ఠ నోటీసు పరిమాణం %d అక్షరాలు." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "కనబడలేదు." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +#, fuzzy +msgid "Parent notice not found." +msgstr "నిర్ధారణ సంకేతం కనబడలేదు." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 -#, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని." +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, fuzzy, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని." +msgstr[1] "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" -msgstr "" +msgstr "%1$s / %2$s యొక్క ఇష్టాంశాలు" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, fuzzy, php-format +msgid "Could not generate feed for group - %s" +msgstr "గుంపుని తాజాకరించలేకున్నాం." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / %2$sని పేర్కొన్న నోటీసులు" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s బహిరంగ కాలరేఖ" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "అందరి నుండి %s తాజాకరణలు!" -#: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format -msgid "Repeated to %s" -msgstr "%sకి స్పందనలు" +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "క్షమించండి, ఈ ఆదేశం ఇంకా అమలుపరచబడలేదు." -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 +#, php-format +msgid "Repeated to %s" +msgstr "%s యొక్క పునరావృతం" + +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "%s యొక్క పునరావృతాలు" -#: actions/apitimelinetag.php:105 actions/tag.php:67 -#, php-format +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 +#, fuzzy, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" -#: actions/apitrends.php:87 -msgid "API method under construction." +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +#, fuzzy +msgid "Only the user can add to their own timeline." +msgstr "ఎవరి తపాలాపెట్టెలను ఆ వాడుకరి మాత్రమే చదవలగరు." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." msgstr "" +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, fuzzy, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "ఆ ఈమెయిలు చిరునామా లేదా వాడుకరిపేరుతో వాడుకరులెవరూ లేరు." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +#, fuzzy +msgid "API method under construction." +msgstr "నిర్ధారణ సంకేతం కనబడలేదు." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "వాడుకరి దొరకలేదు." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "అటువంటి ఫైలు లేదు." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "కొత్త చందాని చేర్చలేకపోయాం." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "సైటు గమనికని భద్రపరచు" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "తెలియని చర్య" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "ఇష్టాంశాలకు చేర్చు" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "అటువంటి ఫైలు లేదు." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s గుంపు సభ్యులు" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%s సభ్యులుగా ఉన్న గుంపులు" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "తెలియని చర్య" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "అందరు సభ్యులూ" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "అటువంటి ఫైలు లేదు." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "అటువంటి గుంపు లేదు." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "అందరు సభ్యులూ" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "నిర్ధారణ సంకేతం కనబడలేదు." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "అటువంటి ఫైలు లేదు." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "మీరు ఎవరికీ చందాచేరలేదు." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "కొత్త చందాని చేర్చలేకపోయాం." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "%sకి చందాచేరిన వ్యక్తులు" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "తెలియని ఫైలు రకం" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "అటువంటి జోడింపు లేదు." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 -#, fuzzy +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." -msgstr "పేరు లేదు." +msgstr "పేరు" -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "పరిమాణం లేదు." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "తప్పుడు పరిమాణం." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "అవతారం" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "మీ వ్యక్తిగత అవతారాన్ని మీరు ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 #, fuzzy msgid "User without matching profile." msgstr "వాడుకరికి ప్రొఫైలు లేదు." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "అవతారపు అమరికలు" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "అసలు" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "మునుజూపు" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "తొలగించు" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" -msgstr "ఎగుమతించు" +msgstr "ఎక్కించు" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "కత్తిరించు" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "ఏ దస్త్రమూ ఎక్కింపబడలేదు." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "మీ అవతారానికి గానూ ఈ చిత్రం నుండి ఒక చతురస్రపు ప్రదేశాన్ని ఎంచుకోండి" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "అవతారాన్ని తాజాకరించాం." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "అవతారపు తాజాకరణ విఫలమైంది." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "అవతారాన్ని తొలగించాం." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "మీరు ఇప్పటికే ఆ వాడుకరిని నిరోధించారు." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "వాడుకరిని నిరోధించు" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -835,177 +1459,221 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "కాదు" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "ఈ వాడుకరిని నిరోధించకు" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "అవును" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "ఈ వాడుకరిని నిరోధించు" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "నిరోధపు సమాచారాన్ని భద్రపరచడంలో విఫలమయ్యాం." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "అటువంటి గుంపు లేదు." -#: actions/blockedfromgroup.php:97 -#, fuzzy, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format msgid "%s blocked profiles" -msgstr "వాడుకరికి ప్రొఫైలు లేదు." +msgstr "%s నిరోధిత వాడుకరులు" -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%s మరియు మిత్రులు" +msgstr "%1$s మరియు మిత్రులు, పేజీ %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "ఈ గుంపు లోనికి చేరకుండా నిరోధించిన వాడుకరుల యొక్క జాబితా." -#: actions/blockedfromgroup.php:288 -#, fuzzy +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" -msgstr "అటువంటి వాడుకరి లేరు." +msgstr "వాడుకరిని గుంపు నుండి నిరోధించు" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 -msgid "Unblock" -msgstr "" - -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 #, fuzzy +msgctxt "BUTTON" +msgid "Unblock" +msgstr "నిరోధాన్ని ఎత్తివేయి" + +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" -msgstr "అటువంటి వాడుకరి లేరు." +msgstr "ఈ వాడుకరిని నిరోధించు" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "%sకి టపాచెయ్యి" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "నిర్ధారణ సంకేతం లేదు." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "నిర్ధారణ సంకేతం కనబడలేదు." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "ఆ నిర్ధారణా సంకేతం మీది కాదు!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "గుర్తుతెలియని చిరునామా రకం %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "ఆ చిరునామా ఇప్పటికే నిర్ధారితమైంది." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "ఈమెయిల్ నిర్ధారణని తొలగించలేకున్నాం." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "చిరునామాని నిర్ధారించు" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "\"%s\" అనే చిరునామా మీ ఖాతాకి నిర్ధారితమైంది." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "సంభాషణ" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "సందేశాలు" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "ఉపకరణాలని తొలగించడానికి మీరు ప్రవేశించి ఉండాలి." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "ఉపకరణం కనబడలేదు." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని కాదు." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "ఉపకరణ తొలగింపు" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1015,51 +1683,111 @@ msgstr "" "వాడుకరుల అనుసంధానాలతో సహా, డాటాబేసు నుండి తొలగిస్తుంది." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "ఈ ఉపకరణాన్ని తొలగించకు" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "ఈ ఉపకరణాన్ని తొలగించు" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "గుంపుని తొలగించడానికి మీరు ప్రవేశించి ఉండాలి." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Jabber ID లేదు." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "ఈ గుంపును తొలగించడానికి మీకు అనుమతి లేదు." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "%s గుంపుని తొలగించలేకున్నాం." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "%s గుంపుని తొలగించాం" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "గుంపు తొలగింపు" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"మీరు నిజంగానే ఈ వాడుకరిని తొలగించాలనుకుంటున్నారా? ఇది ఆ వాడుకరి భోగట్టాని డాటాబేసు నుండి తొలగిస్తుంది, " +"వెనక్కి తేలేకుండా." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "ఈ గుంపును తొలగించకు" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "ఈ గుంపుని తొలగించు" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "లోనికి ప్రవేశించలేదు." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "ఈ నోటీసుని తొలగించలేము." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "నోటీసుని తొలగించు" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "మీరు నిజంగానే ఈ నోటీసుని తొలగించాలనుకుంటున్నారా?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -1090,63 +1818,72 @@ msgstr "ఈ వాడుకరిని తొలగించు" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "రూపురేఖలు" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "ఈ స్టేటస్‌నెట్ సైటుకి రూపురేఖల అమరికలు." +msgid "Design settings for this StatusNet site" +msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "చిహ్నపు URL చెల్లదు." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "SSL చిహ్నపు URL చెల్లదు." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "అలంకారం అందుబాటులో లేదు: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "చిహ్నాన్ని మార్చు" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "సైటు చిహ్నం" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL చిహ్నం" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "అలంకారాన్ని మార్చు" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "సైటు అలంకారం" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "సైటుకి అలంకారం." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "సైటు అలంకారం" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "నేపథ్య చిత్రాన్ని మార్చు" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "నేపథ్యం" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1154,75 +1891,88 @@ msgid "" msgstr "సైటుకి మీరు నేపథ్యపు చిత్రాన్ని ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం %1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" -msgstr "" +msgstr "ఆన్" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" -msgstr "" +msgstr "ఆఫ్" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 +#, fuzzy msgid "Turn background image on or off." -msgstr "" +msgstr "నేపథ్య చిత్రాన్ని మార్చు" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 +#, fuzzy msgid "Tile background image" -msgstr "" +msgstr "నేపథ్య చిత్రాన్ని మార్చు" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "రంగులను మార్చు" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "విషయం" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" msgstr "పక్కపట్టీ" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "పాఠ్యం" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "లంకెలు" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "ఉన్నత" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "" +msgstr "ప్రత్యేక CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "అప్రమేయాలని ఉపయోగించు" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 +#, fuzzy msgid "Restore default designs" -msgstr "" +msgstr "అప్రమేయాలని ఉపయోగించు" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 +#, fuzzy msgid "Reset back to default" -msgstr "" +msgstr "అప్రమేయాలని ఉపయోగించు" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "భద్రపరచు" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "రూపురేఖలని భద్రపరచు" @@ -1235,114 +1985,137 @@ msgid "Add to favorites" msgstr "ఇష్టాంశాలకు చేర్చు" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "అటువంటి పత్రమేమీ లేదు." +msgstr "అటువంటి జోడింపు లేదు." -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "ఉపకరణాన్ని మార్చు" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "ఉపకరణాలని మార్చడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "అటువంటి ఉపకరణం లేదు." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "మీ ఉపకరణాన్ని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "పేరు తప్పనిసరి." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +#, fuzzy +msgid "Name is too long (maximum 255 characters)." msgstr "పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "వివరణ తప్పనిసరి." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "హోమ్ పేజీ URL సరైనది కాదు." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "సంస్థ తప్పనిసరి." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +#, fuzzy +msgid "Organization is too long (maximum 255 characters)." msgstr "సంస్థ పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 +#, fuzzy msgid "Organization homepage is required." -msgstr "" +msgstr "సంస్థ తప్పనిసరి." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "ఉపకరణాన్ని తాజాకరించలేకున్నాం." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" msgstr "%s గుంపుని మార్చు" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." msgstr "గుంపుని సృష్టించడానికి మీరు లోనికి ప్రవేశించాలి." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." msgstr "గుంపుని మార్చడానికి మీరు నిర్వాహకులయి ఉండాలి." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "గుంపుని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "వివరణ చాలా పెద్దదిగా ఉంది (140 అక్షరాలు గరిష్ఠం)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "తప్పుడు మారుపేరు: \"%s\"" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." msgstr "గుంపుని తాజాకరించలేకున్నాం." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "ఎంపికలు భద్రమయ్యాయి." @@ -1360,12 +2133,12 @@ msgstr "%%site.name%% నుండి మీకు ఎలా మెయిల్ #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "ఈమెయిలు చిరునామా" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "ప్రస్తుత నిర్ధారిత ఈమెయిలు చిరునామా." @@ -1374,14 +2147,14 @@ msgstr "ప్రస్తుత నిర్ధారిత ఈమెయిల #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "తొలగించు" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1389,25 +2162,19 @@ msgstr "" "ఈ చిరునామా నిర్ధారణకై వేచివున్నాం. తదుపరి సూచనలతో ఉన్న సందేశానికై మీ ఇన్‌బాక్స్‌లో (స్పామ్ బాక్సులో కూడా!) " "చూడండి." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "రద్దుచేయి" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "ఈమెయిల్ చిరునామా, \"username@example.org\" వలె" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1415,174 +2182,200 @@ msgstr "చేర్చు" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "నేను ఈమెయిలు ద్వారా నోటీసులు పంపాలనుకుంటున్నాను." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 +#, fuzzy msgid "Send email to this address to post new notices." -msgstr "" +msgstr "%sకి నోటీసులు పంపించడానికి కొత్త ఈమెయిలు చిరునామా" + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +#, fuzzy +msgid "Make a new email address for posting to; cancels the old one." +msgstr "%sకి నోటీసులు పంపించడానికి కొత్త ఈమెయిలు చిరునామా" #. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "కొత్తది" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "ఈమెయిలు అభిరుచులు" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 +#, fuzzy msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "%s (@%s) మీ నోటీసుని ఇష్టపడ్డారు" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "ఎవరైనా నాకు అంతరంగిక సందేశాన్ని పంపించినప్పుడు నాకు ఈమెయిలుని పంపించు" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "నేను ఈమెయిలు ద్వారా నోటీసులు పంపాలనుకుంటున్నాను." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 +#, fuzzy msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "అది మీ ఈమెయిలు చిరునామా కాదు." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "ఈమెయిలు అభిరుచులు భద్రమయ్యాయి." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "ఈమెయిలు చిరునామా లేదు." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 +#, fuzzy msgid "Cannot normalize that email address" -msgstr "" +msgstr "ప్రస్తుత నిర్ధారిత ఈమెయిలు చిరునామా." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "సరైన ఈమెయిల్ చిరునామా కాదు:" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." msgstr "అది ఇప్పటికే మీ ఈమెయిల్ చిరునామా." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "ఆ ఈమెయిల్ చిరునామా ఇప్పటేకే ఇతర వాడుకరికి సంబంధించినది." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "నిర్ధారణ సంకేతాన్ని చేర్చలేకపోయాం." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 +#, fuzzy msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" +"ఈ చిరునామా నిర్ధారణకై వేచివున్నాం. తదుపరి సూచనలతో ఉన్న సందేశానికై మీ ఇన్‌బాక్స్‌లో (స్పామ్ బాక్సులో కూడా!) " +"చూడండి." #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "రద్దుచేయడానికి వేచివున్న నిర్ధారణలేమీ లేవు." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "ఆ ఈమెయిలు చిరునామా సరైనది కాదు." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "ఈమెయిల్ నిర్ధారణని తొలగించలేకున్నాం." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "ఈమెయిలు నిర్ధారణ రద్దయింది." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." msgstr "అది మీ ఈమెయిలు చిరునామా కాదు." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "ఆ ఈమెయిలు చిరునామాని తొలగించాం." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 +#, fuzzy msgid "No incoming email address." -msgstr "" +msgstr "ఈమెయిలు చిరునామా లేదు." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 +#, fuzzy msgid "Couldn't update user record." -msgstr "" +msgstr "వాడుకరిని తాజాకరించలేకున్నాం." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 +#, fuzzy msgid "Incoming email address removed." -msgstr "" +msgstr "ఆ ఈమెయిలు చిరునామాని తొలగించాం." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 +#, fuzzy msgid "New incoming email address added." -msgstr "" +msgstr "ఈమెయిలు చిరునామా లేదు." #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "ఈ నోటీసు ఇప్పటికే మీ ఇష్టాంశం!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 +#, fuzzy msgid "Disfavor favorite" -msgstr "" +msgstr "ఇష్టాంశాలకు చేర్చు" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "ప్రాచుర్య నోటీసులు" @@ -1607,22 +2400,22 @@ msgid "" msgstr "" #: actions/favorited.php:156 -#, php-format +#, fuzzy, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" -msgstr "" +msgstr "[ఒక ఖాతాని నమోదుచేసుకుని](%%action.register%%) మీరే మొదట వ్రాసేవారు ఎందుకు కాకూడదు!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "%sకి ఇష్టమైన నోటీసులు" #: actions/favoritesrss.php:115 -#, fuzzy, php-format +#, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "%s యొక్క మైక్రోబ్లాగు" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1640,9 +2433,8 @@ msgid "A selection of some great users on %s" msgstr "%sలో కొందరు గొప్ప వాడుకరుల యొక్క ఎంపిక" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "సందేశం లేదు" +msgstr "సందేశం లేదు." #: actions/file.php:38 msgid "No notice." @@ -1684,7 +2476,7 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "దూరపు ప్రొపైలుని తాజాకరించటంలో పొరపాటు" @@ -1713,19 +2505,25 @@ msgstr "ఈ సైటులో మీరు వాడుకరలకి పా msgid "User already has this role." msgstr "వాడుకరికి ఇప్పటికే ఈ పాత్ర ఉంది." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 +#, fuzzy 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 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 +#, fuzzy msgid "No profile with that ID." -msgstr "" +msgstr "ఆ IDతో ఏ నోటీసూ కనబడలేదు." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "గుంపు ఏమీ పేర్కొనలేదు." @@ -1742,7 +2540,7 @@ msgstr "వాడుకరిని ఇప్పటికే గుంపున msgid "User is not a member of group." msgstr "వాడుకరి ఈ గుంపులో సభ్యులు కాదు." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" msgstr "వాడుకరిని గుంపు నుండి నిరోధించు" @@ -1767,11 +2565,11 @@ msgid "Block this user from this group" msgstr "ఈ గుంపునుండి ఈ వాడుకరిని నిరోధించు" #: actions/groupblock.php:206 +#, fuzzy msgid "Database error blocking user from group." -msgstr "" +msgstr "ఈ వాడుకరిని ఈ గుంపు నుండి నిరోధించకు" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." msgstr "ఐడీ లేదు." @@ -1789,15 +2587,16 @@ msgid "" "palette of your choice." msgstr "నేపథ్య చిత్రం మరియు రంగుల ఎంపికతో మీ గుంపు ఎలా కనిపించాలో మలచుకోండి." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "మీ రూపురేఖలని తాజాకరించలేకపోయాం." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "అభిరుచులు భద్రమయ్యాయి." +msgstr "ఈమెయిలు అభిరుచులు భద్రమయ్యాయి." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" @@ -1809,6 +2608,14 @@ msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "మీ గుంపుకి మీరు ఒక చిహ్నాన్ని ఎక్కించవచ్చు. ఆ ఫైలు యొక్క గరిష్ఠ పరిమాణం %s." +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "ఎగుమతించు" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "కత్తిరించు" + #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "చిహ్నంగా ఉండాల్సిన చతురస్త్ర ప్రదేశాన్ని బొమ్మ నుండి ఎంచుకోండి." @@ -1821,54 +2628,61 @@ msgstr "చిహ్నాన్ని తాజాకరించాం." msgid "Failed updating logo." msgstr "చిహ్నపు తాజాకరణ విఫలమైంది." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" msgstr "%s గుంపు సభ్యులు" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "ఈ గుంపులో వాడుకరులు జాబితా." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "నిర్వాహకులు" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "నిరోధించు" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "ఈ వాడుకరిని నిరోధించు" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "వాడుకరిని గుంపుకి ఒక నిర్వాహకునిగా చేయి" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "నిర్వాహకున్ని చేయి" +msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "ఈ వాడుకరిని నిర్వాహకున్ని చేయి" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s కాలరేఖ" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "%s యొక్క మైక్రోబ్లాగు" +msgstr "%2$sలో %1$s మరియు స్నేహితుల నుండి తాజాకరణలు!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1933,15 +2747,18 @@ msgstr "" "[ఒక ఖాతాని నమోదుచేసుకుని](%%action.register%%) మీరే ఎందుకు [ఆ గుంపుని సృష్టించ](%%" "action.newgroup%%)కూడదు!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "నిర్వాహకులు మాత్రమే గుంపు సభ్యులపై నిరోధాన్ని ఎత్తివేయగలరు." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "వాడుకరిని గుంపు నుండి నిరోధించలేదు." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "నిరోధాన్ని తొలగించడంలో పొరపాటు." @@ -1978,15 +2795,20 @@ msgstr "ప్రస్తుతం నిర్ధారించిన Jabber/ #. TRANS: Form note in IM settings form. #. TRANS: %s is the IM address set for the site. #: actions/imsettings.php:124 -#, php-format +#, fuzzy, php-format msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" +"ఈ చిరునామా నిర్ధారణకై వేచివున్నాం. తదుపరి సూచనలతో ఉన్న సందేశానికై మీ ఇన్‌బాక్స్‌లో (స్పామ్ బాక్సులో కూడా!) " +"చూడండి." #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -1994,63 +2816,65 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "IM అభిరుచులు" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 +#, fuzzy msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "ప్రస్తుతం నిర్ధారించిన Jabber/GTalk చిరునామా" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "అభిరుచులు భద్రమయ్యాయి." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Jabber ID లేదు." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 +#, fuzzy msgid "Cannot normalize that Jabber ID" -msgstr "" +msgstr "సరైన Jabber ఐడీ కాదు" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "సరైన Jabber ఐడీ కాదు" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "ఈ Jabber ID మీకు ఇప్పటికే ఉంది" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID ఇప్పటికే వేరొకరికి ఉంది." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2058,29 +2882,29 @@ msgid "" msgstr "" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "ఆ IM చిరునామా సరైనది కాదు." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "ఈమెయిల్ నిర్ధారణని తొలగించలేకున్నాం." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "IM నిర్ధారణ రద్దయింది." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "ఇది మీ Jabber ID కాదు" #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "ఆ IM చిరునామాని తొలగించాం." @@ -2098,49 +2922,77 @@ msgstr "%sకి వచ్చినవి" msgid "This is your inbox, which lists your incoming private messages." msgstr "ఇవి మీకు వచ్చిన అంతరంగిక సందేశాలు." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "ఆహ్వానాలని అచేతనం చేసారు." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "sని ఉపయోగించమని ఇతర వాడుకరులని ఆహ్వానించడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "తప్పుడు ఈమెయిలు చిరునామా: %s" +msgid "Invalid email address: %s." +msgstr "చెల్లని ఈమెయిలు చిరునామా: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "ఆహ్వానము(ల)ని పంపించాం" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "ఆహ్వానాలని పంపించాం" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "కొత్త వాడుకరులని ఆహ్వానించండి" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "మీరు ఇప్పటికే ఈ వాడుకరులకు చందాచేరి ఉన్నారు:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "మీరు ఇప్పటికే ఈ వాడుకరులకు చందాచేరి ఉన్నారు:" +msgstr[1] "మీరు ఇప్పటికే ఈ వాడుకరులకు చందాచేరి ఉన్నారు:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +#, fuzzy +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "ఈ వ్యక్తులు ఇప్పటికే ఇక్కడ వాడుకరులు మరియు మిమ్మల్ని వారికి చందాదార్లుగా చేర్చేసాం:" +msgstr[0] "ఈ వ్యక్తులు ఇప్పటికే ఇక్కడ వాడుకరులు మరియు మిమ్మల్ని వారికి చందాదార్లుగా చేర్చేసాం:" +msgstr[1] "ఈ వ్యక్తులు ఇప్పటికే ఇక్కడ వాడుకరులు మరియు మిమ్మల్ని వారికి చందాదార్లుగా చేర్చేసాం:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "క్రింది ప్రజలకి ఆహ్వానము(ల)ని పంపించాం:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "ఈ వ్యక్తికి ఆహ్వానాన్ని పంపించాం:" +msgstr[1] "ఈ వ్యక్తులకు ఆహ్వానాలని పంపించాం:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2148,41 +3000,52 @@ msgstr "" "ఆహ్వానితులు మీ ఆహ్వానాన్ని అంగీకరించి సైటులో నమోదైనప్పుడు మీకు తెలియజేస్తాము. ఇక్కడి ప్రజని " "పెంచుతున్నందుకు ధన్యవాదాలు!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "ఈ ఫారాన్ని ఉపయోగించి మీ స్నేహితులను మరియు సహోద్యోగులను ఈ సేవను వినియోగించుకోమని ఆహ్వానించండి." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "ఈమెయిలు చిరునామాలు" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "ఆహ్వానించాల్సిన మిత్రుల చిరునామాలు (లైనుకి ఒకటి చొప్పున)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "వ్యక్తిగత సందేశం" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్యక్తిగత సందేశం చేర్చండి." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "పంపించు" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%2$sలో చేరమని %1$s మిమ్మల్ని ఆహ్వానించారు" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2240,14 +3103,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "గుంపుల్లో చేరడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "పేరు లేదు." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s %2$s గుంపులో చేరారు" @@ -2256,17 +3112,121 @@ msgstr "%1$s %2$s గుంపులో చేరారు" msgid "You must be logged in to leave a group." msgstr "గుంపుని వదిలివెళ్ళడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." msgstr "మీరు ఆ గుంపులో సభ్యులు కాదు." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%2$s గుంపు నుండి %1$s వైదొలిగారు" +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "లైసెన్సు" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "చెల్లని స్వాగత పాఠ్యం. గరిష్ఠ పొడవు 255 అక్షరాలు." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "లైసెన్సు ఎంపిక" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "అంతరంగికం" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "క్రియేటివ్ కామన్స్" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "రకం" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "లైసెన్సు వివరాలు" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "యజమాని" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "లైసెన్సు అమరికలను భద్రపరచు" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "ఇప్పటికే లోనికి ప్రవేశించారు." @@ -2287,11 +3247,11 @@ msgstr "ప్రవేశించండి" msgid "Login to site" msgstr "సైటు లోనికి ప్రవేశించు" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "నన్ను గుర్తుంచుకో" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "భవిష్యత్తులో ఆటోమెటిగ్గా లోనికి ప్రవేశించు; బయటి కంప్యూర్ల కొరకు కాదు!" @@ -2326,9 +3286,9 @@ msgid "%1$s is already an admin for group \"%2$s\"." msgstr "%1$s ఇప్పటికే \"%2$s\" గుంపు యొక్క ఒక నిర్వాకులు." #: actions/makeadmin.php:133 -#, fuzzy, php-format +#, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "వాడుకరి %sని %s గుంపు నుండి తొలగించలేకపోయాం" +msgstr "%1$sని %2$s గుంపు యొక్క నిర్వాహకున్ని చేయలేకపోయాం." #: actions/makeadmin.php:146 #, php-format @@ -2339,66 +3299,77 @@ msgstr "%1$sని %2$s గుంపు యొక్క నిర్వాహక msgid "No current status." msgstr "ప్రస్తుత స్థితి ఏమీ లేదు." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "కొత్త ఉపకరణం" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "ఉపకరణాలని నమోదుచేసుకోడానికి మీరు లోనికి ప్రవేశించి ఉండాలి." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "కొత్త ఉపకరణాన్ని నమోదుచేసుకోడానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 +#, fuzzy msgid "Source URL is required." -msgstr "" +msgstr "పేరు తప్పనిసరి." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "ఉపకరణాన్ని సృష్టించలేకపోయాం." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" msgstr "కొత్త గుంపు" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "కొత్త గుంపుని సృష్టిండానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "కొత్త సందేశం" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "ఈ వాడుకరికి మీరు సందేశాన్ని పంపించలేరు." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "విషయం లేదు!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "ఎవరికి పంపించాలో పేర్కొనలేదు." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "మీకు మీరే సందేశాన్ని పంపుకోకండి; దాని బదులు మీలో మీరే మెల్లగా చెప్పుకోండి." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "సందేశాన్ని పంపించాం" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "%sకి నేరు సందేశాన్ని పంపించాం." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "అజాక్స్ పొరపాటు" @@ -2406,10 +3377,9 @@ msgstr "అజాక్స్ పొరపాటు" msgid "New notice" msgstr "కొత్త సందేశం" -#: actions/newnotice.php:217 -#, fuzzy +#: actions/newnotice.php:230 msgid "Notice posted" -msgstr "సందేశాలు" +msgstr "నోటీసుని పునరావృతించారు" #: actions/noticesearch.php:68 #, php-format @@ -2447,94 +3417,122 @@ msgstr "" "newnotice%%%%?status_textarea=%s) మొదటివారు ఎందుకుకాకూడదు!" #: actions/noticesearchrss.php:96 -#, fuzzy, php-format +#, php-format msgid "Updates with \"%s\"" -msgstr "%s యొక్క మైక్రోబ్లాగు" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, 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 their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 +#, fuzzy msgid "Nudge sent" -msgstr "" +msgstr "సందేశాన్ని పంపించాం" #: actions/nudge.php:97 +#, fuzzy msgid "Nudge sent!" -msgstr "" +msgstr "సందేశాన్ని పంపించాం" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." msgstr "మీ ఉపకరణాలను చూడడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "OAuth ఉపకరణాలు" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "మీరు నమోదు చేసివున్న ఉపకరణాలు" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "మీరు ఇంకా ఏ ఉపకరణాన్నీ నమోదు చేసుకోలేదు." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "సంధానిత ఉపకరణాలు" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "మీ ఖాతాని ప్రాపించడానికి మీరు ఈ క్రింది ఉపకరణాలకి అనుమతినిచ్చారు." +msgid "The following connections exist for your account." +msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "మీరు ఆ ఉపకరణం యొక్క వాడుకరి కాదు." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "మీ ఉపకరణాన్ని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "మీ ఖాతాని ఉపయోగించుకోడానికి మీరు ఏ ఉపకరణాన్నీ అధీకరించలేదు." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "నోటీసుకి ప్రొఫైలు లేదు." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%2$sలో %1$s యొక్క స్థితి" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "విషయ రకం " #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "" @@ -2546,52 +3544,61 @@ msgstr "ప్రజల అన్వేషణ" msgid "Notice Search" msgstr "నోటీసుల అన్వేషణ" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "ఇతర అమరికలు" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "వేరే ఇతర ఎంపికలని సంభాళించండి." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (స్వేచ్ఛా సేవ)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "URL కుదింపు సేవ" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "ఉపయోగించాల్సిన యాంత్రిక కుదింపు సేవ." -#: actions/othersettings.php:122 -#, fuzzy +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "ఫ్రొఫైలు అమరికలు" +msgstr "ఫ్రొఫైలు రూపురేఖలు" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 +#, fuzzy msgid "Show or hide profile designs." -msgstr "" +msgstr "ఫ్రొఫైలు రూపురేఖలు" -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +#, fuzzy +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "URL కుదింపు సేవ మరీ పెద్దగా ఉంది (50 అక్షరాలు గరిష్ఠం)." #: actions/otp.php:69 -#, fuzzy msgid "No user ID specified." -msgstr "కొత్త సందేశం" +msgstr "గుంపు ఏమీ పేర్కొనలేదు." #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "కొత్త సందేశం" +msgstr "గుంపు ఏమీ పేర్కొనలేదు." #: actions/otp.php:90 +#, fuzzy msgid "No login token requested." -msgstr "" +msgstr "అధీకరణ అభ్యర్థన లేదు!" #: actions/otp.php:95 #, fuzzy @@ -2604,14 +3611,14 @@ msgid "Login token expired." msgstr "సైటు లోనికి ప్రవేశించు" #: actions/outbox.php:58 -#, php-format +#, fuzzy, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "" +msgstr "%1$sకి వచ్చినవి - %2$dవ పేజీ" #: actions/outbox.php:61 -#, php-format +#, fuzzy, 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." @@ -2642,7 +3649,7 @@ msgid "6 or more characters" msgstr "6 లేదా అంతకంటే ఎక్కువ అక్షరాలు" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "నిర్థారించు" @@ -2654,11 +3661,11 @@ msgstr "పై సంకేతపదం వలెనే" msgid "Change" msgstr "మార్చు" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "సంకేతపదం తప్పనిసరిగా 6 లేదా అంతకంటే ఎక్కువ అక్షరాలుండాలి." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "సంకేతపదాలు సరిపోలలేదు." @@ -2678,161 +3685,288 @@ msgstr "కొత్త సంకేతపదాన్ని భద్రపర msgid "Password saved." msgstr "సంకేతపదం భద్రమయ్యింది." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "త్రోవలు" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 -#, fuzzy, php-format +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 +#, php-format msgid "Theme directory not readable: %s." -msgstr "హోమ్ పేజీ URL సరైనది కాదు." +msgstr "అలంకారం అందుబాటులో లేదు: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 -#, fuzzy, php-format +#, php-format msgid "Avatar directory not writable: %s." -msgstr "హోమ్ పేజీ URL సరైనది కాదు." +msgstr "అవతారాల సంచయం" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "నేపథ్యాల సంచయం" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "హోమ్ పేజీ URL సరైనది కాదు." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 +#, fuzzy msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "చెల్లని స్వాగత పాఠ్యం. గరిష్ఠ పొడవు 255 అక్షరాలు." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "సైటు" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "సేవకి" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" -msgstr "" +msgstr "త్రోవ" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" -msgstr "కొత్త సందేశం" +msgid "Site path." +msgstr "సైటు అలంకారం" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "అలంకార సంచయం" + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "అలంకారం" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "అలంకారాల సేవకి" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "సైటుకి అలంకారం." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "సేవకి" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "సైటు అలంకారం" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" msgstr "అలంకార సంచయం" -#: actions/pathsadminpanel.php:279 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 msgid "Avatars" msgstr "అవతారాలు" -#: actions/pathsadminpanel.php:284 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 msgid "Avatar server" msgstr "అవతారాల సేవకి" -#: actions/pathsadminpanel.php:288 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "సైటుకి అలంకారం." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 #, fuzzy msgid "Avatar path" msgstr "అవతారాన్ని తాజాకరించాం." -#: actions/pathsadminpanel.php:292 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "అవతారపు తాజాకరణ విఫలమైంది." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 msgid "Avatar directory" msgstr "అవతారాల సంచయం" -#: actions/pathsadminpanel.php:301 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 msgid "Backgrounds" msgstr "నేపథ్యాలు" -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "నేపథ్యాల సేవకి" - -#: actions/pathsadminpanel.php:309 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 #, fuzzy -msgid "Background path" -msgstr "నేపథ్యం" +msgid "Server for backgrounds." +msgstr "సైటుకి అలంకారం." -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "నేపథ్యాల సంచయం" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." msgstr "" -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "వైదొలగు" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" -#: actions/pathsadminpanel.php:324 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "జోడింపులు" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "సైటుకి అలంకారం." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "జోడింపులు లేవు." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "సైటుకి అలంకారం." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +#, fuzzy +msgid "SSL" +msgstr "SSLని ఉపయోగించు" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "సేవకి" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 msgid "Sometimes" msgstr "కొన్నిసార్లు" -#: actions/pathsadminpanel.php:325 +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 msgid "Always" msgstr "ఎల్లప్పుడూ" -#: actions/pathsadminpanel.php:329 +#: actions/pathsadminpanel.php:485 msgid "Use SSL" msgstr "SSLని ఉపయోగించు" -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +#, fuzzy +msgid "When to use SSL." msgstr "SSLని ఎప్పుడు ఉపయోగించాలి" -#: actions/pathsadminpanel.php:335 -#, fuzzy -msgid "SSL server" -msgstr "వైదొలగు" - -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "కొత్త సందేశం" @@ -2856,152 +3990,197 @@ msgid "Not a valid people tag: %s." msgstr "సరైన ఈమెయిల్ చిరునామా కాదు:" #: actions/peopletag.php:142 -#, fuzzy, php-format +#, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "%s యొక్క మైక్రోబ్లాగు" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "సందేశపు విషయం సరైనది కాదు" +msgstr "తప్పుడు దస్త్రపుపేరు.." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "ఫ్రొఫైలు అమరికలు" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "మీ వ్యక్తిగత ప్రవర సమాచారాన్ని ఇక్కడ తాజాకరించండి, అప్పుడు మీ గురించి ప్రజలు ఎక్కువ " "తెలుసుకోగలుగుతారు." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "ప్రొఫైలు సమాచారం" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామచిహ్నాలు మరియు ఖాళీలు తప్ప" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "పూర్తి పేరు" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "హోమ్ పేజీ" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "మీ హోమ్ పేజీ, బ్లాగు, లేదా వేరే సేటులోని మీ ప్రొఫైలు యొక్క చిరునామా" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "మీ గురించి మరియు మీ ఆసక్తుల గురించి %d అక్షరాల్లో చెప్పండి" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, fuzzy, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "మీ గురించి మరియు మీ ఆసక్తుల గురించి %d అక్షరాల్లో చెప్పండి" +msgstr[1] "మీ గురించి మరియు మీ ఆసక్తుల గురించి %d అక్షరాల్లో చెప్పండి" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "మీ గురించి మరియు మీ ఆసక్తుల గురించి చెప్పండి" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "స్వపరిచయం" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "ప్రాంతం" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "మీరు ఎక్కడ నుండి, \"నగరం, రాష్ట్రం (లేదా ప్రాంతం), దేశం\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "ట్యాగులు" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "భాష" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "ప్రాథాన్యతా భాష" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "కాలమండలం" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "మీరు సామాన్యంగా ఉండే కాలమండలం ఏది?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:228 actions/register.php:230 -#, php-format -msgid "Bio is too long (max %d chars)." -msgstr "స్వపరిచయం చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, fuzzy, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "స్వపరిచయం చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." +msgstr[1] "స్వపరిచయం చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "కాలమండలాన్ని ఎంచుకోలేదు." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." msgstr "భాష మరీ పెద్దగా ఉంది (50 అక్షరాలు గరిష్ఠం)." -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "'%s' అనే హోమ్ పేజీ సరైనదికాదు" +msgstr "తప్పుడు మారుపేరు: \"%s\"" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "ట్యాగులని భద్రపరచలేకున్నాం." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "ప్రొఫైలుని భద్రపరచలేకున్నాం." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "ట్యాగులని భద్రపరచలేకున్నాం." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "అమరికలు భద్రమయ్యాయి." @@ -3011,8 +4190,9 @@ msgid "Beyond the page limit (%s)." msgstr "" #: actions/public.php:92 +#, fuzzy msgid "Could not retrieve public stream." -msgstr "" +msgstr "మారుపేర్లని సృష్టించలేకపోయాం." #: actions/public.php:130 #, php-format @@ -3036,11 +4216,11 @@ msgid "Public Stream Feed (Atom)" msgstr "ప్రజా వాహిని ఫీడు (ఆటమ్)" #: actions/public.php:188 -#, php-format +#, fuzzy, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." -msgstr "" +msgstr "ఇది %s మరియు మిత్రుల కాలరేఖ కానీ ఇంకా ఎవరూ ఏమీ రాయలేదు." #: actions/public.php:191 msgid "Be the first to post!" @@ -3053,13 +4233,19 @@ msgid "" msgstr "[ఖాతా నమోదు చేసుకుని](%%action.register%%) మొదటగా వ్రాసేది మీరే ఎందుకు కాకూడదు!" #: actions/public.php:242 -#, php-format +#, fuzzy, 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. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"**%s** అనేది [స్టేటస్‌నెట్](http://status.net/) అనే స్వేచ్ఛా ఉపకరణ అధారిత [సూక్ష్మ-బ్లాగింగు]" +"(http://en.wikipedia.org/wiki/Micro-blogging) సేవ అయిన %%%%site.name%%%%లో ఒక " +"వాడుకరి గుంపు.\n" +"దీని సభ్యులు వారి జీవితం మరియు ఆసక్తుల గురించి చిన్న సందేశాలని పంచుకుంటారు. ఈ గుంపు మరియు ఇంకా " +"చాల వాటిలో భాగస్తులవ్వడానికి [ఇప్పుడే చేరండి](%%%%action.register%%%%)! ([మరింత చదవండి](%%%%" +"doc.help%%%%))" #: actions/public.php:247 #, php-format @@ -3071,33 +4257,45 @@ msgstr "" "ఇది %%site.name%%, స్వేచ్ఛా మృదూపకరమైన [స్టేటస్‌నెట్](http://status.net/) అనే పనిముట్టుపై " "ఆధారపడిన ఒక [మైక్రో-బ్లాగింగు](http://en.wikipedia.org/wiki/Micro-blogging) సేవ." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "ప్రజా వాహిని ఫీడు" +msgstr "ట్యాగు మేఘం" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "[ఒక ఖాతాని నమోదుచేసుకుని](%%action.register%%) మీరే మొదట వ్రాసేవారు ఎందుకు కాకూడదు!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "ట్యాగు మేఘం" @@ -3106,12 +4304,14 @@ msgid "You are already logged in!" msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" #: actions/recoverpassword.php:62 +#, fuzzy msgid "No such recovery code." -msgstr "" +msgstr "అటువంటి సందేశమేమీ లేదు." #: actions/recoverpassword.php:66 +#, fuzzy msgid "Not a recovery code." -msgstr "" +msgstr "నమోదైన వాడుకరి కాదు." #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." @@ -3141,8 +4341,9 @@ msgid "You have been identified. Enter a new password below. " msgstr "మిమ్మల్ని గుర్తించాం. మీ కొత్త సంకేతపదాన్ని క్రింత ఇవ్వండి. " #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "సంకేతపదం మార్పు" #: actions/recoverpassword.php:191 msgid "Nickname or email address" @@ -3153,16 +4354,19 @@ msgid "Your nickname on this server, or your registered email address." msgstr "ఈ సర్వరులో మీ పేరు, లేదా నమౌదైన మీ ఈమెయిల్ చిరునామా." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 +#, fuzzy msgid "Recover" -msgstr "" +msgstr "తొలగించు" #: actions/recoverpassword.php:208 +#, fuzzy msgid "Reset password" -msgstr "" +msgstr "కొత్త సంకేతపదం" #: actions/recoverpassword.php:209 +#, fuzzy msgid "Recover password" -msgstr "" +msgstr "కొత్త సంకేతపదం" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" @@ -3178,7 +4382,7 @@ msgstr "6 లేదా అంతకంటే ఎక్కువ అక్షర #: actions/recoverpassword.php:243 msgid "Reset" -msgstr "" +msgstr "రీసెట్" #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." @@ -3207,22 +4411,24 @@ msgid "Unexpected password reset." msgstr "" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "సంకేతపదం 6 లేదా అంతకంటే ఎక్కవ అక్షరాలుండాలి." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "సంకేతపదం మరియు నిర్ధారణ సరిపోలేదు." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 +#, fuzzy msgid "Error setting user." -msgstr "" +msgstr "వాడుకరిని భద్రపరచడంలో పొరపాటు: సరికాదు." #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "మీ కొత్త సంకేతపదం భద్రమైంది. మీరు ఇప్పుడు లోనికి ప్రవేశించారు." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "క్షమించండి, ఆహ్వానితులు మాత్రమే నమోదుకాగలరు." @@ -3234,7 +4440,7 @@ msgstr "క్షమించండి, తప్పు ఆహ్వాన స msgid "Registration successful" msgstr "నమోదు విజయవంతం" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "నమోదు" @@ -3242,73 +4448,77 @@ msgstr "నమోదు" msgid "Registration not allowed." msgstr "నమోదు అనుమతించబడదు." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "ఈ లైసెన్సుకి అంగీకరించకపోతే మీరు నమోదుచేసుకోలేరు." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "ఈమెయిల్ చిరునామా ఇప్పటికే ఉంది." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "వాడుకరిపేరు లేదా సంకేతపదం తప్పు." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామ చిహ్నాలు లేదా ఖాళీలు లేకుండా. తప్పనిసరి." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 లేదా అంతకంటే ఎక్కువ అక్షరాలు. తప్పనిసరి." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "పై సంకేతపదం మరోసారి. తప్పనిసరి." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "ఈమెయిల్" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "తాజా విశేషాలు, ప్రకటనలు, మరియు సంకేతపదం పోయినప్పుడు మాత్రమే ఉపయోగిస్తాం." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "పొడుగాటి పేరు, మీ \"అసలు\" పేరైతే మంచిది" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "మీ హోమ్ పేజీ, బ్లాగు, లేదా వేరే సేటులోని మీ ప్రొఫైలు యొక్క చిరునామా" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "సర్వహక్కులూ సురక్షితం." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3317,7 +4527,7 @@ msgstr "" "నా పాఠ్యం మరియు దస్త్రాలు %s క్రింద లభ్యం, ఈ అంతరంగిక భోగట్టా తప్ప: సంకేతపదం, ఈమెయిల్ చిరునామా, IM " "చిరునామా, మరియు ఫోన్ నంబర్." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3348,7 +4558,7 @@ msgstr "" "\n" "నమోదుచేసుకున్నందుకు కృతజ్ఞతలు మరియు ఈ సేవని ఉపయోగిస్తూ మీరు ఆనందిస్తారని మేం ఆశిస్తున్నాం." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3372,9 +4582,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" @@ -3393,7 +4602,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "చందాచేరు" @@ -3418,9 +4627,8 @@ 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 msgid "You can't repeat your own notice." @@ -3430,18 +4638,17 @@ msgstr "మీ నోటీసుని మీరే పునరావృతి msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." -#: actions/repeat.php:114 lib/noticelist.php:675 +#: actions/repeat.php:114 lib/noticelist.php:691 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "సృష్టితం" +msgstr "పునరావృతించారు!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "%sకి స్పందనలు" @@ -3467,11 +4674,11 @@ msgid "Replies feed for %s (Atom)" msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "ఇది %1$sకి వచ్చిన స్పందనలని చూపించే కాలరేఖ కానీ %2$s దృష్టికి ఇంకా ఎవరూ ఏమీ పంపించలేదు." +msgstr "ఇది %1$s యొక్క కాలరేఖ కానీ %2$s ఇంకా ఏమీ రాయలేదు." #: actions/replies.php:204 #, php-format @@ -3496,9 +4703,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "%2$sలో %1$sకి స్పందనలు!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" +msgstr "ఈ సైటులో మీరు వాడుకరలకి పాత్రలను ఇవ్వలేరు." #: actions/revokerole.php:82 msgid "User doesn't have this role." @@ -3509,9 +4715,8 @@ msgid "StatusNet" msgstr "స్టేటస్‌నెట్" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" +msgstr "ఈ సైటులో మీరు వాడుకరలకి పాత్రలను ఇవ్వలేరు." #: actions/sandbox.php:72 #, fuzzy @@ -3520,22 +4725,23 @@ msgstr "వాడుకరిని ఇప్పటికే గుంపున #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 +#, fuzzy msgid "Sessions" -msgstr "" +msgstr "సంచిక" #: actions/sessionsadminpanel.php:65 -#, fuzzy -msgid "Session settings for this StatusNet site." -msgstr "ఈ స్టేటస్‌నెట్ సైటుకి రూపురేఖల అమరికలు." +msgid "Session settings for this StatusNet site" +msgstr "" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" msgstr "" #: actions/sessionsadminpanel.php:177 +#, fuzzy msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "వాడుకరులను కొత్త వారిని ఆహ్వానించడానికి అనుమతించాలా వద్దా." #: actions/sessionsadminpanel.php:181 msgid "Session debugging" @@ -3546,7 +4752,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "సైటు అమరికలను భద్రపరచు" @@ -3559,28 +4764,29 @@ msgid "Application profile" msgstr "ఉపకరణ ప్రవర" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "ప్రతీకం" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "పేరు" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "సంస్ధ" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "గణాంకాలు" @@ -3598,6 +4804,11 @@ msgstr "ఉపకరణ చర్యలు" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "తొలగించు" + #: actions/showapplication.php:261 msgid "Application info" msgstr "ఉపకరణ సమాచారం" @@ -3640,13 +4851,14 @@ msgid "%1$s's favorite notices, page %2$d" msgstr "%1$sకి ఇష్టమైన నోటీసులు, పేజీ %2$d" #: actions/showfavorites.php:132 +#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "ఇష్టాంశాన్ని సృష్టించలేకపోయాం." #: actions/showfavorites.php:171 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "%s యొక్క మిత్రుల ఫీడు" +msgstr "%s యొక్క ఇష్టాంశాల ఫీడు (RSS 2.0)" #: actions/showfavorites.php:178 #, php-format @@ -3685,77 +4897,105 @@ msgstr "" msgid "This is a way to share what you like." msgstr "మీకు నచ్చినవి పంచుకోడానికి ఇదొక మార్గం." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "%s గుంపు" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" msgstr "%1$s గుంపు , %2$dవ పేజీ" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" msgstr "గుంపు ప్రొఫైలు" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "గమనిక" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "మారుపేర్లు" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "గుంపు చర్యలు" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 1.0)" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 2.0)" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "%s గుంపు" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "సభ్యులు" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(ఏమీలేదు)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "అందరు సభ్యులూ" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +#, fuzzy +msgctxt "LABEL" msgid "Created" msgstr "సృష్టితం" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "సభ్యులు" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3771,89 +5011,127 @@ msgstr "" "చాల వాటిలో భాగస్తులవ్వడానికి [ఇప్పుడే చేరండి](%%%%action.register%%%%)! ([మరింత చదవండి](%%%%" "doc.help%%%%))" -#: actions/showgroup.php:461 -#, php-format +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 +#, fuzzy, 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 "" +"**%s** అనేది [స్టేటస్‌నెట్](http://status.net/) అనే స్వేచ్ఛా ఉపకరణ అధారిత [సూక్ష్మ-బ్లాగింగు]" +"(http://en.wikipedia.org/wiki/Micro-blogging) సేవ అయిన %%%%site.name%%%%లో ఒక " +"వాడుకరి గుంపు.\n" +"దీని సభ్యులు వారి జీవితం మరియు ఆసక్తుల గురించి చిన్న సందేశాలని పంచుకుంటారు. ఈ గుంపు మరియు ఇంకా " +"చాల వాటిలో భాగస్తులవ్వడానికి [ఇప్పుడే చేరండి](%%%%action.register%%%%)! ([మరింత చదవండి](%%%%" +"doc.help%%%%))" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "నిర్వాహకులు" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "అటువంటి సందేశం లేదు." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "పంపినవారు మరియు అందుకున్నవారు మాత్రమే ఈ సందేశాన్ని చదవవచ్చు." -#: actions/showmessage.php:108 -#, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, fuzzy, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "%2$sలో %1$sకి స్పందనలు!" -#: actions/showmessage.php:113 -#, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, fuzzy, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "%2$sలో %1$sకి స్పందనలు!" #: actions/shownotice.php:90 msgid "Notice deleted." msgstr "నోటీసుని తొలగించాం." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s, %2$dవ పేజీ" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, %2$dవ పేజీ" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" -#: actions/showstream.php:148 -#, php-format +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, fuzzy, php-format msgid "FOAF for %s" -msgstr "" +msgstr "%s గుంపు" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "ఇది %1$s యొక్క కాలరేఖ కానీ %2$s ఇంకా ఏమీ రాయలేదు." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" "ఈమధ్యే ఏదైనా ఆసక్తికరమైనది చూసారా? మీరు ఇంకా నోటీసులేమీ వ్రాయలేదు, మొదలుపెట్టడానికి ఇదే మంచి సమయం :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, fuzzy, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3861,31 +5139,45 @@ msgid "" msgstr "" "[ఈ విషయంపై](%%%%action.newnotice%%%%?status_textarea=%s) వ్రాసే మొదటివారు మీరే అవ్వండి!" -#: actions/showstream.php:243 -#, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 +#, fuzzy, 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. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** అనేది [స్టేటస్‌నెట్](http://status.net/) అనే స్వేచ్ఛా ఉపకరణ అధారిత [సూక్ష్మ-బ్లాగింగు]" +"(http://en.wikipedia.org/wiki/Micro-blogging) సేవ అయిన %%%%site.name%%%%లో ఒక " +"వాడుకరి గుంపు.\n" +"దీని సభ్యులు వారి జీవితం మరియు ఆసక్తుల గురించి చిన్న సందేశాలని పంచుకుంటారు. ఈ గుంపు మరియు ఇంకా " +"చాల వాటిలో భాగస్తులవ్వడానికి [ఇప్పుడే చేరండి](%%%%action.register%%%%)! ([మరింత చదవండి](%%%%" +"doc.help%%%%))" -#: actions/showstream.php:248 -#, php-format +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 +#, fuzzy, 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 "" +"ఇది %%site.name%%, స్వేచ్ఛా మృదూపకరమైన [స్టేటస్‌నెట్](http://status.net/) అనే పనిముట్టుపై " +"ఆధారపడిన ఒక [మైక్రో-బ్లాగింగు](http://en.wikipedia.org/wiki/Micro-blogging) సేవ." -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "%s యొక్క పునరావృతం" #: actions/silence.php:65 actions/unsilence.php:65 +#, fuzzy msgid "You cannot silence users on this site." -msgstr "" +msgstr "ఈ సైటులో మీరు వాడుకరలకి పాత్రలను ఇవ్వలేరు." #: actions/silence.php:72 #, fuzzy @@ -3982,40 +5274,49 @@ msgid "Maximum number of characters for notices." msgstr "సందేశాలలోని అక్షరాల గరిష్ఠ సంఖ్య." #: actions/siteadminpanel.php:278 +#, fuzzy msgid "Dupe limit" -msgstr "" +msgstr "పాఠ్యపు పరిమితి" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "అదే విషయాన్ని మళ్ళీ టపా చేయడానికి వాడుకరులు ఎంత సమయం (క్షణాల్లో) వేచివుండాలి." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "సైటు గమనిక" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "కొత్త సందేశం" -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." -msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." +msgstr "సైటు గమనికని భద్రపరచు" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "సైటు-వారీ నోటీసుకి గరిష్ఠ పొడవు 255 అక్షరాలు." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "సైటు గమనిక పాఠ్యం" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +#, fuzzy +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "సైటు-వారీ నోటీసు పాఠ్యం (255 అక్షరాలు గరిష్ఠం; HTML పర్లేదు)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "సైటు గమనికని భద్రపరచు" @@ -4027,15 +5328,14 @@ msgstr "SMS అమరికలు" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 -#, php-format +#, fuzzy, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "%%site.name%% నుండి మీకు ఎలా మెయిల్ వస్తూంతో సంభాళించుకోండి." #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 -#, fuzzy msgid "SMS is not available." -msgstr "హోమ్ పేజీ URL సరైనది కాదు." +msgstr "IM అందుబాటులో లేదు." #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 @@ -4044,8 +5344,9 @@ msgstr "SMS చిరునామా" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 +#, fuzzy msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "ప్రస్తుత నిర్ధారిత ఈమెయిలు చిరునామా." #. TRANS: Form guide in IM settings form. #: actions/smssettings.php:133 @@ -4070,13 +5371,15 @@ msgstr "నిర్థారించు" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 +#, fuzzy msgid "SMS phone number" -msgstr "" +msgstr "ఫోను నెంబరు లేదు." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 +#, fuzzy msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామ చిహ్నాలు లేదా ఖాళీలు లేకుండా. తప్పనిసరి." #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 @@ -4103,8 +5406,9 @@ msgstr "ఫోను నెంబరు లేదు." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 +#, fuzzy msgid "No carrier selected." -msgstr "" +msgstr "నోటీసుని తొలగించాం." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 @@ -4131,9 +5435,8 @@ msgstr "అది తప్పుడు నిర్ధారణ సంఖ్య #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "నిర్ధారణ రద్దయింది." +msgstr "IM నిర్ధారణ రద్దయింది." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4143,9 +5446,8 @@ msgstr "అది మీ ఫోను నంబర్ కాదు." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 -#, fuzzy msgid "The SMS phone number was removed." -msgstr "ఆ చిరునామాని తొలగించాం." +msgstr "ఆ IM చిరునామాని తొలగించాం." #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 @@ -4168,31 +5470,33 @@ msgstr "" #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 +#, fuzzy msgid "No code entered" -msgstr "" +msgstr "విషయం లేదు!" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "చందాలు" +msgstr "సైటు స్వరూపణాన్ని మార్చండి" #: actions/snapshotadminpanel.php:127 +#, fuzzy msgid "Invalid snapshot run value." -msgstr "" +msgstr "తప్పుడు పాత్ర." #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." msgstr "" #: actions/snapshotadminpanel.php:144 +#, fuzzy msgid "Invalid snapshot report URL." -msgstr "" +msgstr "చిహ్నపు URL చెల్లదు." #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" @@ -4231,25 +5535,22 @@ msgstr "" msgid "Save snapshot settings" msgstr "సైటు అమరికలను భద్రపరచు" -#: actions/subedit.php:70 -msgid "You are not subscribed to that profile." -msgstr "" - -#. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 #, fuzzy +msgid "You are not subscribed to that profile." +msgstr "మీరు ఎవరికీ చందాచేరలేదు." + +#. TRANS: Server error displayed when updating a subscription fails with a database error. +#. TRANS: Exception thrown when a subscription could not be stored on the server. +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "చందాని సృష్టించలేకపోయాం." +msgstr "కొత్త చందాని చేర్చలేకపోయాం." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "అటువంటి ఫైలు లేదు." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" @@ -4258,38 +5559,55 @@ msgstr "" msgid "Subscribed" msgstr "చందాచేరారు" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "%s చందాదార్లు" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" msgstr "%1$s చందాదార్లు, పేజీ %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "వీళ్ళు మీ నోటీసులని వినే ప్రజలు." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "వీళ్ళు %s యొక్క నోటీసులని వినే ప్రజలు." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 +#, fuzzy msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" "మీకు చందాదార్లు ఎవరూ లేరు. మీకు తెలిసినవారికి చందాచేర ప్రయత్నించండి వాళ్ళు ప్రత్యుపకారం చేయవచ్చు." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "%sకి చందాదార్లు ఎవరూ లేరు. మీరే మొదటివారు కావాలనుకుంటున్నారా?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" @@ -4298,26 +5616,31 @@ msgstr "" "%sకి చందాదార్లు ఎవరూ లేరు. [ఒక ఖాతాని నమోదు చేసుకుని](%%%%action.register%%%%) మీరు " "ఎందుకు మొదటి చందాదారు కాకూడదు?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "%s చందాలు" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "%1$s చందాలు, పేజీ %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "మీరు ఈ వ్యక్తుల నోటీసులని వింటున్నారు." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "%s వీరి నోటీసులని వింటున్నారు." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4327,61 +5650,72 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s ప్రస్తుతం ఎవరినీ వినడంలేదు." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "జాబర్" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "%s యొక్క మైక్రోబ్లాగు" +msgstr "%2$sలో %1$s అనే ట్యాగుతో ఉన్న నోటీసులు!" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "అటువంటి పత్రమేమీ లేదు." +msgstr "జోడింపులు లేవు." #: actions/tagother.php:65 -#, php-format +#, fuzzy, php-format msgid "Tag %s" -msgstr "" +msgstr "ట్యాగులు" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "వాడుకరి ప్రొఫైలు" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "ఫొటో" #: actions/tagother.php:141 +#, fuzzy msgid "Tag user" -msgstr "" +msgstr "ట్యాగులు" #: actions/tagother.php:151 msgid "" @@ -4399,8 +5733,9 @@ msgid "Could not save tags." msgstr "ట్యాగులని భద్రపరచలేకపోయాం." #: actions/tagother.php:236 +#, fuzzy msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "మీ ఉపకరణాన్ని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." #: actions/tagrss.php:35 msgid "No such tag." @@ -4411,9 +5746,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 #, fuzzy @@ -4426,9 +5760,8 @@ msgid "No profile ID in request." msgstr "అధీకరణ అభ్యర్థన లేదు!" #: actions/unsubscribe.php:98 -#, fuzzy msgid "Unsubscribed" -msgstr "చందాదార్లు" +msgstr "చందామాను" #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format @@ -4437,75 +5770,96 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "వాడుకరి" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "ఈ స్టేటస్‌నెట్ సైటుకి వాడుకరి అమరికలు." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "ఈ స్టేటస్‌నెట్ సైటుకి వాడుకరి అమరికలు" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "చెల్లని స్వాగత పాఠ్యం. గరిష్ఠ పొడవు 255 అక్షరాలు." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "ప్రొఫైలు" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "స్వపరిచయ పరిమితి" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "స్వపరిచయం యొక్క గరిష్ఠ పొడవు, అక్షరాలలో." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "కొత్త వాడుకరులు" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "కొత్త వాడుకరి స్వాగతం" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." msgstr "కొత్త వాడుకరులకై స్వాగత సందేశం (255 అక్షరాలు గరిష్ఠం)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "అప్రమేయ చందా" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "ఉపయోగించాల్సిన యాంత్రిక కుదింపు సేవ." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "ఆహ్వానాలు" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "ఆహ్వానాలని చేతనంచేసాం" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "వాడుకరులను కొత్త వారిని ఆహ్వానించడానికి అనుమతించాలా వద్దా." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "వాడుకరి అమరికలను భద్రపరచు" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "చందాని అధీకరించండి" @@ -4517,7 +5871,9 @@ msgid "" "click “Reject”." msgstr "" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "లైసెన్సు" @@ -4599,15 +5955,18 @@ msgstr "'%s' అనే అవతారపు URL తప్పు" msgid "Wrong image type for avatar URL ‘%s’." msgstr "'%s' కొరకు తప్పుడు బొమ్మ రకం" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "ఫ్రొఫైలు రూపురేఖలు" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 +#, fuzzy msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "నేపథ్య చిత్రం మరియు రంగుల ఎంపికతో మీ గుంపు ఎలా కనిపించాలో మలచుకోండి." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" @@ -4639,10 +5998,10 @@ msgstr "[గుంపులని వెతికి](%%action.groupsearch%%) #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, php-format +#: lib/atomusernoticefeed.php:75 +#, fuzzy, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "%2$sలో %1$s మరియు స్నేహితుల నుండి తాజాకరణలు!" #: actions/version.php:75 #, php-format @@ -4657,8 +6016,9 @@ msgid "" msgstr "" #: actions/version.php:163 +#, fuzzy msgid "Contributors" -msgstr "" +msgstr "అనుసంధానాలు" #: actions/version.php:170 msgid "" @@ -4688,7 +6048,7 @@ msgid "Plugins" msgstr "ప్లగిన్లు" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "సంచిక" @@ -4696,60 +6056,107 @@ msgstr "సంచిక" msgid "Author(s)" msgstr "రచయిత(లు)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "ఇష్టపడు" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%2$s నోటీసుని %1$s ఇష్టాంశంగా గుర్తించారు." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" +msgstr[1] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "తప్పుడు దస్త్రపుపేరు.." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." msgstr "గుంపులో చేరడం విఫలమైంది." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." msgstr "గుంపులో భాగం కాదు." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." msgstr "గుంపు నుండి వైదొలగడం విఫలమైంది." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "వాడుకరిని భద్రపరచడంలో పొరపాటు: సరికాదు." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "చేరు" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." @@ -4768,19 +6175,21 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "నేరుగా సందేశాలు పంపడం నుండి మిమ్మల్ని నిషేధించారు." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 +#, fuzzy msgid "Could not insert message." -msgstr "" +msgstr "ట్యాగులని భద్రపరచలేకపోయాం." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "వాడుకరిని తాజాకరించలేకున్నాం." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4790,73 +6199,88 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, fuzzy, php-format msgid "Database error inserting hashtag: %s" msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "నోటీసుని భద్రపరచడంలో పొరపాటు. చాలా పొడవుగా ఉంది." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "నోటీసుని భద్రపరచడంలో పొరపాటు. గుర్తుతెలియని వాడుకరి." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "చాలా ఎక్కువ నోటీసులు అంత వేగంగా; కాస్త ఊపిరి తీసుకుని మళ్ళీ కొన్ని నిమిషాల తర్వాత వ్రాయండి." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 +#, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." -msgstr "" +msgstr "చాలా ఎక్కువ నోటీసులు అంత వేగంగా; కాస్త ఊపిరి తీసుకుని మళ్ళీ కొన్ని నిమిషాల తర్వాత వ్రాయండి." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "ఈ సైటులో నోటీసులు రాయడం నుండి మిమ్మల్ని నిషేధించారు." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "స్థానిక గుంపుని తాజాకరించలేకున్నాం." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4868,310 +6292,346 @@ msgid "Missing profile." msgstr "వాడుకరికి ప్రొఫైలు లేదు." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." +msgstr "ట్యాగులని భద్రపరచలేకపోయాం." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "చందాచేరడం నుండి మిమ్మల్ని నిషేధించారు." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "ఇప్పటికే చందాచేరారు!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." msgstr "వాడుకరి మిమ్మల్ని నిరోధించారు." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "చందాదార్లు" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "చందాని తొలగించలేకపోయాం." +msgstr "కొత్త చందాని చేర్చలేకపోయాం." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "చందాని తొలగించలేకపోయాం." +msgstr "కొత్త చందాని చేర్చలేకపోయాం." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "చందాని తొలగించలేకపోయాం." +msgstr "కొత్త చందాని చేర్చలేకపోయాం." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "అనుసరించు" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s ఇప్పుడు %2$sలో మీ నోటీసులని వింటున్నారు." #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." msgstr "గుంపుని సృష్టించలేకపోయాం." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." +msgstr "గుంపుని సృష్టించలేకపోయాం." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "చందాని సృష్టించలేకపోయాం." +msgstr "స్థానిక గుంపుని తాజాకరించలేకున్నాం." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 +#, fuzzy msgid "Change your profile settings" -msgstr "" +msgstr "ఫ్రొఫైలు అమరికలని మార్చు" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "ఒక అవతారాన్ని ఎక్కించండి" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "మీ సంకేతపదాన్ని మార్చుకోండి" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "వాడుకరికి ప్రొఫైలు లేదు." +msgstr "వాడుకరి ప్రొఫైలు" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "ఇతర ఎంపికలు" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "ఇతర" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "శీర్షికలేని పేజీ" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "మరింత చూపించు" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "ప్రాధమిక సైటు మార్గదర్శిని" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "వ్యక్తిగత" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "మీ ఈమెయిలు, అవతారం, సంకేతపదం మరియు ప్రౌఫైళ్ళను మార్చుకోండి" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "ఖాతా" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "అనుసంధానాలు" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "అనుసంధానించు" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "సైటు స్వరూపణాన్ని మార్చండి" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "నిర్వాహకులు" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 -#, fuzzy, php-format +#: lib/action.php:560 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "ఈ ఫారాన్ని ఉపయోగించి మీ స్నేహితులను మరియు సహోద్యోగులను ఈ సేవను వినియోగించుకోమని ఆహ్వానించండి." +msgstr "%sలో తోడుకై మీ స్నేహితులని మరియు సహోద్యోగులని ఆహ్వానించండి" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "ఆహ్వానించు" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించు" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "నిష్క్రమించు" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "ఖాతాని సృష్టించుకోండి" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "నమోదు" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "సైటు లోనికి ప్రవేశించండి" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "ప్రవేశించు" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "సహాయం కావాలి!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "సహాయం" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ప్రజలు లేదా పాఠ్యం కొరకు వెతకండి" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "వెతుకు" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "సైటు గమనిక" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "స్థానిక వీక్షణలు" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "పేజీ గమనిక" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "ద్వితీయ సైటు మార్గదర్శిని" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "సహాయం" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "గురించి" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "ప్రశ్నలు" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "సేవా నియమాలు" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "అంతరంగికత" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "మూలము" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "సంప్రదించు" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "బాడ్జి" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5181,13 +6641,16 @@ msgstr "" "అందిస్తున్న సూక్ష్మ బ్లాగింగు సేవ." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5199,354 +6662,462 @@ msgstr "" "పై నడుస్తుంది." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy +#: lib/action.php:954 msgid "Site content license" -msgstr "కొత్త సందేశం" +msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "పేజీకరణ" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "తర్వాత" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "ఇంతక్రితం" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "ఫొటో" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "ఈ సైటుకి మీరు మార్పులు చేయలేరు." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 +#, fuzzy msgid "Changes to that panel are not allowed." -msgstr "" +msgstr "నమోదు అనుమతించబడదు." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 +#, fuzzy msgid "Unable to delete design setting." -msgstr "" +msgstr "మీ రూపురేఖల అమరికలని భద్రపరచలేకున్నాం." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "ప్రాథమిక సైటు స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "సైటు" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "రూపకల్పన స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "రూపురేఖలు" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "వాడుకరి స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "వాడుకరి" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "SMS నిర్ధారణ" +msgstr "రూపకల్పన స్వరూపణం" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "SMS నిర్ధారణ" +msgstr "వాడుకరి స్వరూపణం" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "రూపకల్పన స్వరూపణం" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "సైటు గమనిక" +msgstr "సైటు గమనికని భద్రపరచు" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "SMS నిర్ధారణ" +msgstr "వాడుకరి స్వరూపణం" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "ఉపకరణాన్ని మార్చు" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "మారుపేర్లని సృష్టించలేకపోయాం." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "ఉపకరణాన్ని సృష్టించలేకపోయాం." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "ట్యాగులని భద్రపరచలేకపోయాం." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "ఈ ఉపకరణానికి ప్రతీకం" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "మీ ఉపకరణం గురించి %d అక్షరాల్లో వివరించండి" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, fuzzy, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "మీ ఉపకరణం గురించి %d అక్షరాల్లో వివరించండి" +msgstr[1] "మీ ఉపకరణం గురించి %d అక్షరాల్లో వివరించండి" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" msgstr "మీ ఉపకరణాన్ని వివరించండి" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "ఈ ఉపకరణం యొక్క హోమ్‌పేజీ చిరునామా" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "మూలము" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "ఈ ఉపకరణానికి బాధ్యతాయుతమైన సంస్థ" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 -#, fuzzy +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" -msgstr "మీ హోమ్ పేజీ, బ్లాగు, లేదా వేరే సేటులోని మీ ప్రొఫైలు యొక్క చిరునామా" +msgstr "ఈ ఉపకరణం యొక్క హోమ్‌పేజీ చిరునామా" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "విహారిణి" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "మేజోపరి" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "ఉపకరణ రకం, విహారిణి లేదా మేజోపరి" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "చదవడం-మాత్రమే" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "చదవడం-వ్రాయడం" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "రద్దుచేయి" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "చదవడం-వ్రాయడం" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "చదవడం-మాత్రమే" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 #, fuzzy msgctxt "BUTTON" msgid "Revoke" msgstr "తొలగించు" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "జోడింపులు" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "రచయిత" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "ప్రొఫైలు" +msgstr "మునుజూపు" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 +#, fuzzy msgid "Tags for this attachment" -msgstr "" +msgstr "అటువంటి జోడింపు లేదు." -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." +msgstr "సంకేతపదం మార్పు విఫలమైంది" + +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +#, fuzzy +msgid "Password changing is not allowed." msgstr "సంకేతపదం మార్పు" -#: lib/authenticationplugin.php:236 -#, fuzzy -msgid "Password changing is not allowed" -msgstr "సంకేతపదం మార్పు" +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "నిరోధించు" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "ఆదేశ ఫలితాలు" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +#, fuzzy +msgid "AJAX error" +msgstr "అజాక్స్ పొరపాటు" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "ఆదేశం పూర్తయ్యింది" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "ఆదేశం విఫలమైంది" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "ఆ గుర్తింపుతో ఏ నోటీసు లేదు" - -#: lib/command.php:99 lib/command.php:596 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "User has no last notice" +msgid "Notice with that id does not exist." +msgstr "ఆ ఈమెయిలు చిరునామా లేదా వాడుకరిపేరుతో వాడుకరులెవరూ లేరు." + +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +#, fuzzy +msgid "User has no last notice." msgstr "వాడుకరికి ప్రొఫైలు లేదు." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "వాడుకరిని తాజాకరించలేకున్నాం." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "క్షమించండి, ఈ ఆదేశం ఇంకా అమలుపరచబడలేదు." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "%sకి స్పందనలు" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5557,199 +7128,243 @@ msgstr "" "చందాదార్లు: %2$s\n" "నోటీసులు: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "నోటీసుని ఇష్టాంశంగా గుర్తించాం." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "వాడుకరి %1$sని %2$s గుంపులో చేర్చలేకపోయాం" +msgid "%1$s joined group %2$s." +msgstr "%1$s %2$s గుంపులో చేరారు." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "వాడుకరి %1$sని %2$s గుంపు నుండి తొలగించలేకపోయాం" +msgid "%1$s left group %2$s." +msgstr "%2$s గుంపు నుండి %1$s వైదొలిగారు." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "పూర్తిపేరు: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "ప్రాంతం: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "హోంపేజీ: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "గురించి: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "సందేశం చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." +msgstr[1] "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "%sకి నేరు సందేశాన్ని పంపించాం" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +#, fuzzy msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "మీ నోటిసుని మీరే పునరావృతించలేరు" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "ఇప్పటికే ఈ నోటీసుని పునరావృతించారు" +msgstr "నేరుగా సందేశాలు పంపడం నుండి మిమ్మల్ని నిషేధించారు." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "సందేశాలు" -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "నోటీసుని పునరావృతించడంలో పొరపాటు." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "నోటిసు చాలా పొడవుగా ఉంది - %d అక్షరాలు గరిష్ఠం, మీరు %d పంపించారు" +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 +#, fuzzy, php-format +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "నోటిసు చాలా పొడవుగా ఉంది - %d అక్షరాలు గరిష్ఠం, మీరు %d పంపించారు" +msgstr[1] "నోటిసు చాలా పొడవుగా ఉంది - %d అక్షరాలు గరిష్ఠం, మీరు %d పంపించారు" -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" -msgstr "%sకి స్పందనని పంపించాం" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." +msgstr "%sకి స్పందనలు" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "నోటీసుని భద్రపరచడంలో పొరపాటు." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "ఏవరికి చందా చేరాలనుకుంటున్నారో ఆ వాడుకరి పేరు తెలియజేయండి" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "ఏవరికి చందా చేరాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "%sకి చందా చేరారు" +msgid "Subscribed to %s." +msgstr "%sకి చందా చేరారు." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "ఎవరి నుండి చందా విరమించాలనుకుంటున్నారో ఆ వాడుకరి పేరు తెలియజేయండి" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "ఎవరినుండైతే చందావిరమించాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "%s నుండి చందా విరమించారు" +msgid "Unsubscribed from %s." +msgstr "%s నుండి చందా విరమించారు." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 +#, fuzzy msgid "Command not yet implemented." -msgstr "" +msgstr "క్షమించండి, ఈ ఆదేశం ఇంకా అమలుపరచబడలేదు." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +#, fuzzy msgid "Notification off." -msgstr "" +msgstr "నిర్ధారణ సంకేతం లేదు." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +#, fuzzy msgid "Notification on." -msgstr "" +msgstr "నిర్ధారణ సంకేతం లేదు." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 +#, fuzzy msgid "Can't turn on notification." +msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు." + +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" - -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "ఈ లంకెని ఒకే సారి ఉపయోగించగలరు, మరియు అది పనిచేసేది 2 నిమిషాలు మాత్రమే: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "ఈ లంకెని ఒకేసారి ఉపయోగించగలరు మరియు అది 2 నిమిషాల వరకు మాత్రమే చెల్లుతుంది: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "%s నుండి చందా విరమించారు" +msgid "Unsubscribed %s." +msgstr "%sని చందా విరమింపజేసారు." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "మీరు ఎవరికీ చందాచేరలేదు." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "%sకి స్పందనలు" msgstr[1] "%sకి స్పందనలు" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." msgstr "మీకు చందాదార్లు ఎవరూ లేరు." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "%sకి స్పందనలు" msgstr[1] "%sకి స్పందనలు" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." msgstr "మీరు ఏ గుంపులోనూ సభ్యులు కాదు." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" msgstr[1] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5791,91 +7406,134 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -msgid "No configuration file found. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +#, fuzzy +msgid "No configuration file found." msgstr "స్వరూపణపు దస్త్రమేమీ కనబడలేదు. " -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +#, fuzzy +msgid "I looked for configuration files in the following places:" msgstr "స్వరూపణపు దస్త్రాల కొరకు ఈ ప్రదేశాలతో చూసాం: " -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 +#, fuzzy msgid "Go to the installer." -msgstr "" +msgstr "సైటు లోనికి ప్రవేశించండి" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +#, fuzzy +msgctxt "MENU" +msgid "SMS" +msgstr "SSLని ఉపయోగించు" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +#, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "అనుసంధానాలు" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "అధీకృత అనుసంధాన ఉపకరణాలు" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "ఫైలుని ఎక్కించు" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." msgstr "మీ వ్యక్తిగత నేపథ్యపు చిత్రాన్ని మీరు ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం 2మెబై." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "ఆన్" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "ఆఫ్" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "రీసెట్" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -msgid "Disfavor this notice" -msgstr "" - -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 #, fuzzy +msgid "Disfavor this notice" +msgstr "ఈ నోటీసుని తొలగించు" + +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "అటువంటి సందేశమేమీ లేదు." +msgstr "ఈ నోటీసుని పునరావృతించు" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "ఇష్టపడు" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "ఆటమ్" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "ఫీడులు" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -5890,8 +7548,9 @@ msgid "Select tag to filter" msgstr "" #: lib/galleryaction.php:140 +#, fuzzy msgid "Tag" -msgstr "" +msgstr "ట్యాగులు" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" @@ -5906,74 +7565,131 @@ msgstr "వెళ్ళు" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామచిహ్నాలు మరియు ఖాళీలు తప్ప" + #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "మీ హోమ్ పేజీ, బ్లాగు, లేదా వేరే సేటులోని మీ ప్రొఫైలు యొక్క చిరునామా" +msgid "URL of the homepage or blog of the group or topic." +msgstr "ఈ ఉపకరణం యొక్క హోమ్‌పేజీ చిరునామా" #: lib/groupeditform.php:168 msgid "Describe the group or topic" msgstr "గుంపుని లేదా విషయాన్ని వివరించండి" #: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "గుంపు లేదా విషయాన్ని గురించి %d అక్షరాల్లో వివరించండి" +#, fuzzy, php-format +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "గుంపు లేదా విషయాన్ని గురించి %d అక్షరాల్లో వివరించండి" +msgstr[1] "గుంపు లేదా విషయాన్ని గురించి %d అక్షరాల్లో వివరించండి" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 +#, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "గుంపు యొక్క ప్రాంతం, ఉంటే, \"నగరం, రాష్ట్రం (లేదా ప్రాంతం), దేశం\"" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" +msgstr "సమూహం" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "%s సమూహం" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "సభ్యులు" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "%s సమూహ సభ్యులు" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "గుంపు" - -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "నిరోధించారు" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" -msgstr "%s నిరోధిత వాడుకరులు" +msgstr "%s నుండి నిరోధించిన వాడుకరులు" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "%s గుంపు లక్షణాలను మార్చు" +msgstr "" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" msgstr "చిహ్నం" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "ఎక్కువమంది సభ్యులున్న గుంపులు" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "ఎక్కువ టపాలున్న గుంపులు" -#: lib/grouptagcloudsection.php:56 -#, php-format +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 +#, fuzzy, php-format msgid "Tags in %s group's notices" -msgstr "" +msgstr "%s గుంపు లక్షణాలను మార్చు" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -5984,39 +7700,57 @@ msgstr "" msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ఇది చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం 140 అక్షరాలు." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "పాక్షిక ఎగుమతి." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "బొమ్మ కాదు లేదా పాడైపోయిన ఫైలు." -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." -msgstr "అటువంటి సందేశమేమీ లేదు." +msgstr "అటువంటి ఫైలు లేదు." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "తెలియని ఫైలు రకం" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "మెబై" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dమెబై" +msgstr[1] "%dమెబై" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "కిబై" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dకిబై" +msgstr[1] "%dకిబై" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dబైటు" +msgstr[1] "%dబైట్లు" #: lib/jabber.php:387 #, php-format @@ -6024,13 +7758,9 @@ msgid "[%s]" msgstr "[%s]" #: lib/jabber.php:567 -#, fuzzy, php-format +#, php-format msgid "Unknown inbox source %d." -msgstr "గుర్తు తెలియని భాష \"%s\"" - -#: lib/joinform.php:114 -msgid "Join" -msgstr "చేరు" +msgstr "గుర్తు తెలియని భాష \"%s\"." #: lib/leaveform.php:114 msgid "Leave" @@ -6044,27 +7774,29 @@ msgstr "వాడుకరిపేరు మరియు సంకేతపద msgid "Sign up for a new account" msgstr "కొత్త ఖాతా కొరకై నమోదుచేసుకోండి" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "ఈమెయిల్ చిరునామా నిర్ధారణ" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, fuzzy, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" "హోయి, %s.\n" "\n" @@ -6079,22 +7811,29 @@ msgstr "" "మీ సమయానికి కృతజ్ఞతలు, \n" "%s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ఇప్పుడు %2$sలో మీ నోటీసులని వింటున్నారు." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6102,10 +7841,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s ఇప్పుడు %2$sలో మీ నోటీసులని వింటున్నారు.\n" "\n" @@ -6118,20 +7857,24 @@ msgstr "" "----\n" "మీ ఈమెయిలు చిరునామాని లేదా గమనింపుల ఎంపికలను %8$s వద్ద మార్చుకోండి\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "స్వపరిచయం: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "%sకి నోటీసులు పంపించడానికి కొత్త ఈమెయిలు చిరునామా" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6141,34 +7884,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s స్థితి" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "SMS నిర్ధారణ" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "ఈ ఫోను నంబరు యొక్క నిర్ధారణకై వేచివుంది." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6195,14 +7943,18 @@ msgstr "" "శుభాశీస్సులతో,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "%s నుండి కొత్త అంతరంగిక సందేశం" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6235,14 +7987,19 @@ msgstr "" "శుభాకాంక్షలతో,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) మీ నోటీసుని ఇష్టపడ్డారు" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) మీ నోటీసుని ఇష్టపడ్డారు" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6280,7 +8037,7 @@ msgstr "" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6291,13 +8048,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) మీకు ఒక నోటీసుని పంపించారు" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) మీ దృష్టికి ఒక నోటిసుని పంపించారు" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6358,13 +8122,14 @@ msgstr "" "మీకు అంతరంగిక సందేశాలు లేవు. ఇతర వాడుకరులతో సంభాషణకై మీరు వారికి అంతరంగిక సందేశాలు " "పంపించవచ్చు. మీ కంటికి మాత్రమే కనబడేలా వారు మీకు సందేశాలు పంపవచ్చు." -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "నుండి" #: lib/mailhandler.php:37 +#, fuzzy msgid "Could not parse message." -msgstr "" +msgstr "వాడుకరిని తాజాకరించలేకున్నాం." #: lib/mailhandler.php:42 msgid "Not a registered user." @@ -6375,111 +8140,159 @@ msgid "Sorry, that is not your incoming email address." msgstr "క్షమించండి, అది మీ లోనికివచ్చు ఈమెయిలు చిరునామా కాదు." #: lib/mailhandler.php:50 +#, fuzzy msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "క్షమించండి, అది మీ లోనికివచ్చు ఈమెయిలు చిరునామా కాదు." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "%s కి నేరు సందేశాలు" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "ఎక్కించిన ఫైలు కేవలం పాక్షికంగా మాత్రమే ఎక్కింది." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "తాత్కాలిక సంచయం కనబడటంలేదు." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "వాడుకరిని తాజాకరించలేకున్నాం." +msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 +#, fuzzy msgid "Send a direct notice" +msgstr "సైటు గమనికని భద్రపరచు" + +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" msgstr "" -#: lib/messageform.php:146 +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "చందాదార్లు" + +#: lib/messageform.php:153 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "అందుబాటులో ఉన్న అక్షరాలు" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "పంపించు" -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "కొత్త సందేశం" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "పేరులో చిన్నబడి అక్షరాలు మరియు అంకెలు మాత్రమే ఖాళీలు లేకుండా ఉండాలి." -#: lib/noticeform.php:173 +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" +msgstr[1] "" + +#: lib/noticeform.php:160 +msgid "Send a notice" +msgstr "సైటు గమనిక" + +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "%s, సంగతులేమిటి?" +msgstr "%s, ఏమిటి సంగతులు?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "జోడించు" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "ఒక ఫైలుని జోడించు" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "నేనున్న ప్రాంతాన్ని బహిరంగపరచు" -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "నేనున్న ప్రాంతాన్ని బహిరంగపరచకు" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6488,118 +8301,119 @@ msgstr "" "కాసేపాగి ప్రయత్నించండి" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "ఉ" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "ద" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "తూ" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "ప" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" -msgstr "" +msgstr "ప్రాంతం" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "జాలం" + +#: lib/noticelist.php:583 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:602 -#, fuzzy +#: lib/noticelist.php:618 msgid "Repeated by" -msgstr "సృష్టితం" +msgstr "%s యొక్క పునరావృతం" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "నోటీసుని పునరావృతించారు" #: lib/nudgeform.php:116 +#, fuzzy msgid "Nudge this user" -msgstr "" +msgstr "ఈ వాడుకరిని తొలగించు" #: lib/nudgeform.php:128 +#, fuzzy msgid "Nudge" -msgstr "" +msgstr "బాడ్జి" #: lib/nudgeform.php:128 +#, fuzzy msgid "Send a nudge to this user" +msgstr "ఈ వాడుకరికి ఒక నేరు సందేశాన్ని పంపించండి" + +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "కొత్త ప్రొపైలుని చేర్చటంలో పొరపాటు" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:291 -#, fuzzy -msgid "Error inserting avatar" -msgstr "అవతారాన్ని పెట్టడంలో పొరపాటు" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "దూరపు ప్రొపైలుని తాజాకరించటంలో పొరపాటు" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "దూరపు ప్రొపైలుని చేర్చటంలో పొరపాటు" - -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "కొత్త సందేశం" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "కొత్త చందాని చేర్చలేకపోయాం." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "వ్యక్తిగత" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "స్పందనలు" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "ఇష్టాంశాలు" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "వచ్చినవి" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "మీకు వచ్చిన సందేశాలు" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "పంపినవి" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "మీరు పంపిన సందేశాలు" @@ -6608,9 +8422,11 @@ msgstr "మీరు పంపిన సందేశాలు" msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 +#, fuzzy msgid "Unknown" -msgstr "" +msgstr "తెలియని చర్య" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -6670,9 +8486,8 @@ msgid "Popular" msgstr "ప్రాచుర్యం" #: lib/redirectingaction.php:95 -#, fuzzy msgid "No return-to arguments." -msgstr "అటువంటి పత్రమేమీ లేదు." +msgstr "జోడింపులు లేవు." #: lib/repeatform.php:107 msgid "Repeat this notice?" @@ -6691,32 +8506,40 @@ msgstr "ఈ నోటీసుని పునరావృతించు" msgid "Revoke the \"%s\" role from this user" msgstr "ఈ గుంపునుండి ఈ వాడుకరిని నిరోధించు" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "నిర్ధారణ సంకేతం కనబడలేదు." #: lib/sandboxform.php:67 +#, fuzzy msgid "Sandbox" -msgstr "" +msgstr "వచ్చినవి" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "అటువంటి వాడుకరి లేరు." +msgstr "ఈ వాడుకరిని నిరోధించు" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "సైటుని వెతుకు" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "కీపదము(లు)" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "వెతుకు" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "సహాయంలో వెతుకు" @@ -6745,14 +8568,12 @@ msgid "More..." 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 #, php-format @@ -6792,6 +8613,12 @@ msgstr "" msgid "None" msgstr "ఏమీలేదు" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "తప్పుడు దస్త్రపుపేరు.." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6801,62 +8628,72 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "అవతారపు తాజాకరణ విఫలమైంది." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +msgstr[1] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "దూరపు ప్రొపైలుని తాజాకరించటంలో పొరపాటు" +msgstr "నిరోధాన్ని తొలగించడంలో పొరపాటు." #: lib/topposterssection.php:74 msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "నిరోధపు ఎత్తివేత" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "అటువంటి వాడుకరి లేరు." +msgstr "ఈ వాడుకరి నుండి చందామాను" #: lib/unsilenceform.php:67 msgid "Unsilence" 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" @@ -6866,122 +8703,176 @@ msgstr "ఈ వాడుకరి నుండి చందామాను" msgid "Unsubscribe" msgstr "చందామాను" -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "వాడుకరి %s (%d) కి ప్రొఫైలు లేదు." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, fuzzy, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "వాడుకరికి ప్రొఫైలు లేదు." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "అవతారాన్ని మార్చు" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "వాడుకరి చర్యలు" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "వాడుకరి తొలగింపు కొనసాగుతూంది..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "ఫ్రొఫైలు అమరికలని మార్చు" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "మార్చు" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "ఈ వాడుకరికి ఒక నేరు సందేశాన్ని పంపించండి" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "సందేశం" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 +#, fuzzy msgid "Moderate" -msgstr "" +msgstr "సమన్వయకర్త" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "వాడుకరి పాత్ర" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "నిర్వాహకులు" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "సమన్వయకర్త" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "కొన్ని క్షణాల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "ఓ నిమిషం క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "%d నిమిషాల క్రితం" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "సుమారు ఒక నిమిషం క్రితం" +msgstr[1] "సుమారు %d నిమిషాల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "ఒక గంట క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "%d గంటల క్రితం" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "సుమారు ఒక గంట క్రితం" +msgstr[1] "సుమారు %d గంటల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "ఓ రోజు క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "%d రోజుల క్రితం" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "సుమారు ఒక రోజు క్రితం" +msgstr[1] "సుమారు %d రోజుల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "ఓ నెల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "%d నెలల క్రితం" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "సుమారు ఒక నెల క్రితం" +msgstr[1] "సుమారు %d నెలల క్రితం" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "ఒక సంవత్సరం క్రితం" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s అనేది సరైన రంగు కాదు!" -#: lib/webcolor.php:123 -#, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "%s అనేది సరైన రంగు కాదు! 3 లేదా 6 హెక్స్ అక్షరాలను వాడండి." -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." +msgstr[1] "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "తప్పుడు పరిమాణం." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "గుంపు ఏమీ పేర్కొనలేదు." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" +msgstr[1] "" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 029f36db16..16d69a9718 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -1,1674 +1,2413 @@ -# Translation of StatusNet to Turkish +# Translation of StatusNet - Core to Turkish (Türkçe) +# Expored from translatewiki.net # -# Author@translatewiki.net: Joseph -# Author@translatewiki.net: McDutchie +# Author: Joseph +# Author: Maidis +# Author: McDutchie # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:25:03+0000\n" -"Language-Team: Turkish\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:16+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" -msgstr "Kabul et" +msgstr "Erişim" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 -#, fuzzy +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" -msgstr "Ayarlar" +msgstr "Site erişim ayarları" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 -#, fuzzy +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Kayıt" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +"Anonim kullanıcıların (giriş yapmayanların) siteyi görmesi engellensin mi?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "Gizlilik" +msgstr "Özel" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." -msgstr "" +msgstr "Sadece kayıt daveti yap." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" -msgstr "" +msgstr "Sadece davet" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." -msgstr "" +msgstr "Yeni kayıtları devre dışı bırak." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 -#, fuzzy +#: actions/accessadminpanel.php:175 msgid "Closed" -msgstr "Böyle bir kullanıcı yok." +msgstr "Kapalı" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 -#, fuzzy +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" -msgstr "Ayarlar" +msgstr "Erişim ayarlarını kaydet" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 -#, fuzzy +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Kaydet" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "Böyle bir durum mesajı yok." +msgstr "Böyle bir sayfa yok." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Böyle bir kullanıcı yok." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format +#: actions/all.php:91 +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s ve arkadaşları" +msgstr "%1$s ve arkadaşları, sayfa %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s ve arkadaşları" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:108 +#, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "%s için arkadaş güncellemeleri RSS beslemesi" +msgstr "%s ve arkadaşları için besleme (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:117 +#, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "%s için arkadaş güncellemeleri RSS beslemesi" +msgstr "%s ve arkadaşları için besleme (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 -#, fuzzy, php-format +#. TRANS: %s is user nickname. +#: actions/all.php:126 +#, php-format msgid "Feed for friends of %s (Atom)" -msgstr "%s için arkadaş güncellemeleri RSS beslemesi" +msgstr "%s ve arkadaşları için besleme (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" +"Bu, %s ve arkadaşlarının zaman çizelgesi ama henüz hiç kimse bir şey " +"göndermemiş." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"Daha fazla kişiye abone olmayı deneyin, [bir gruba katılın](%%action.groups%" +"%) veya kendiniz bir şeyler yazın." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"Profil sayfalarından insanları [dürtmeyi %1$s](../%2$s) deneyebilirsiniz " +"veya [onlara bir şeyler yazabilirsiniz](%%%%action.newnotice%%%%?" +"status_textarea=%3$s)" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" +"Neden bir [hesap oluşturup](%%%%action.register%%%%) sonrasında %s " +"kullanıcısını dürtmüyor veya onlara durum mesajı yazmıyorsunuz." -#. TRANS: H1 text -#: actions/all.php:182 -#, fuzzy +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" -msgstr "%s ve arkadaşları" +msgstr "Sen ve arkadaşların" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "%2$s üzerindeki %1$s ve arkadaşlarından güncellemeler!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." -msgstr "Onay kodu bulunamadı." +msgstr "UPA yöntemi bulunamadı." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." -msgstr "" +msgstr "Bu yöntem bir POST gerektirir." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" +"sms, im, none değerlerinden birine sahip 'device' isimli bir parametre " +"belirtmelisiniz." -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Kullanıcı güncellenemedi." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Kullanıcının profili yok." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." msgstr "Profil kaydedilemedi." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" +"Sunucu, şu anki yapılandırması dolayısıyla bu kadar çok POST verisiyle (%s " +"bayt) başa çıkamıyor." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "Dizayn ayarlarınız kaydedilemedi." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." -msgstr "Kullanıcı güncellenemedi." +msgstr "Tasarımınız güncellenemedi." -#: actions/apiblockcreate.php:105 -#, fuzzy +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Ana" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s zaman çizelgesi" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, fuzzy, php-format +msgid "%s subscriptions" +msgstr "Bütün abonelikler" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "%s kullanıcısının favori durum mesajları" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s grup üyeleri" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" -msgstr "Kullanıcı güncellenemedi." +msgstr "Kendinizi engelleyemezsiniz!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." -msgstr "" +msgstr "Kullanıcıyı engelleme başarısız oldu." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." -msgstr "" +msgstr "Kullanıcının engellemesini kaldırma başarısız oldu." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" -msgstr "" +msgstr "%s kullanıcısından özel mesajlar" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "%s tarafından gönderilmiş tüm özel mesajlar" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "%s kullanıcısına özel mesaj" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "%s kullanıcısına gönderilmiş tüm özel mesajlar" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" -msgstr "" +msgstr "Mesaj metni yok!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "" -"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Bu çok uzun. En büyük ileti boyutu %d karakterdir." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." -msgstr "" +msgstr "Alıcı kullanıcı bulunamadı." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "Arkadaşınız olmayan kullanıcılara özel mesaj gönderemezsiniz." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Kendinize mesaj göndermek yerine söyleyeceğinizi sessizce kendinize " +"söylemeye ne dersiniz." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." -msgstr "" +msgstr "Bu ID'ye sahip durum mesajı bulunamadı." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 -#, fuzzy msgid "This status is already a favorite." -msgstr "Bu zaten sizin Jabber ID'niz." +msgstr "Bu durum mesajı zaten bir favori." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." -msgstr "" +msgstr "Favori oluşturulamadı." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." -msgstr "" +msgstr "Bu durum mesajı bir favori değil." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "Favori silinemedi." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "Sunucuya yönlendirme yapılamadı: %s" +msgstr "Profil kaydedilemedi." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "" +msgstr "Kullanıcı izlenemiyor: %s zaten listenizde." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Sunucuya yönlendirme yapılamadı: %s" +msgstr "Kullanıcı izlemesi bırakılamıyor: Kullanıcı bulunamadı." -#: actions/apifriendshipsdestroy.php:120 -#, fuzzy +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." -msgstr "Kullanıcı güncellenemedi." +msgstr "Kendinizi izlemeyi bırakamazsınız." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "İki geçerli ID veya takma ad verilmelidir." -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Kullanıcı güncellenemedi." +msgstr "Kaynak kullanıcı belirlenemedi." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Kullanıcı güncellenemedi." +msgstr "Hedef kullanıcı bulunamadı." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Takma ad sadece küçük harflerden ve rakamlardan oluşabilir, boşluk " -"kullanılamaz. " - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Takma ad kullanımda. Başka bir tane deneyin." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Geçersiz bir takma ad." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Başlangıç sayfası adresi geçerli bir URL değil." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Tam isim çok uzun (azm: 255 karakter)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Tam isim çok uzun (en fazla: 255 karakter)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." - -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." - -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "" +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Tanım çok uzun (en fazla %d karakter)." -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Yer bilgisi çok uzun (en fazla 255 karakter)." + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Çok fazla diğerisim! En fazla %d taneye izin veriliyor." + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format msgid "Invalid alias: \"%s\"." -msgstr "%s Geçersiz başlangıç sayfası" - -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format -msgid "Alias \"%s\" already in use. Try another one." -msgstr "Takma ad kullanımda. Başka bir tane deneyin." - -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 -msgid "Alias can't be the same as nickname." -msgstr "" - -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy -msgid "Group not found." -msgstr "İstek bulunamadı!" - -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy -msgid "You are already a member of that group." -msgstr "Zaten giriş yapmış durumdasıznız!" - -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 -msgid "You have been blocked from that group by the admin." -msgstr "" - -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s." -msgstr "Sunucuya yönlendirme yapılamadı: %s" - -#: actions/apigroupleave.php:115 -#, fuzzy -msgid "You are not a member of this group." -msgstr "Bize o profili yollamadınız" - -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s." -msgstr "OpenID formu yaratılamadı: %s" - -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 -#, fuzzy, php-format -msgid "%s's groups" -msgstr "Profil" - -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, fuzzy, php-format -msgid "%1$s groups %2$s is a member of." -msgstr "Bize o profili yollamadınız" - -#. TRANS: Message is used as a title. %s is a site name. -#. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 -#, php-format -msgid "%s groups" -msgstr "" - -#: actions/apigrouplistall.php:96 -#, php-format -msgid "groups on %s" -msgstr "" - -#: actions/apimediaupload.php:99 -#, fuzzy -msgid "Upload failed." -msgstr "Yükle" - -#: actions/apioauthauthorize.php:101 -msgid "No oauth_token parameter provided." -msgstr "" - -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." msgstr "Geçersiz büyüklük." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "Diğerisim \"%s\" kullanımda. Başka bir tane deneyin." + +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 +msgid "Alias can't be the same as nickname." +msgstr "Diğerisim, kullanıcı adı ile aynı olamaz." + +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 +msgid "Group not found." +msgstr "Onay kodu bulunamadı." + +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 +msgid "You are already a member of that group." +msgstr "Bize o profili yollamadınız" + +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 +msgid "You have been blocked from that group by the admin." +msgstr "Bu gruptan yönetici tarafından engellendiniz." + +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "%1$s kullanıcısı, %2$s grubuna katılamadı." + +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. +#: actions/apigroupleave.php:115 +msgid "You are not a member of this group." +msgstr "Bu grubun bir üyesi değilsiniz." + +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "%1$s kullanıcısı, %2$s grubundan silinemedi." + +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 +#, php-format +msgid "%s's groups" +msgstr "%s kullanıcısının grupları" + +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 +#, php-format +msgid "%1$s groups %2$s is a member of." +msgstr "%2$s kullanıcısının üye olduğu %1$s grupları." + +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. +#. TRANS: Message is used as a page title. %s is a nick name. +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 +#, php-format +msgid "%s groups" +msgstr "%s grupları" + +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 +#, php-format +msgid "groups on %s" +msgstr "%s üzerindeki gruplar" + +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 +msgid "Upload failed." +msgstr "Yükleme başarısız." + +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Geçersiz istek belirteci veya sağlayıcı." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 +msgid "No oauth_token parameter provided." +msgstr "Hiçbir oauth_token parametresi sağlanmıyor." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Geçersiz istek belirteci." + +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "İstek belirteci zaten yetkili." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "Oturum belirtecinizde bir sorun var. Lütfen, tekrar deneyin." -#: actions/apioauthauthorize.php:135 -#, fuzzy +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" -msgstr "Geçersiz kullanıcı adı veya parola." +msgstr "Geçersiz kullanıcı adı / parola!" -#: actions/apioauthauthorize.php:159 -#, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Kullanıcı ayarlamada hata oluştu." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "Cevap eklenirken veritabanı hatası: %s" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "oauth_token_association eklerken veritabanı hatası." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Beklenmeğen form girdisi." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" -msgstr "" +msgstr "Bir uygulama hesabınıza bağlanmak istiyor" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" -msgstr "" +msgstr "Erişime izin verin ya da erişimi engelleyin" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, fuzzy, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"<strong>%2$s</strong> tarafından sunulan <strong>%1$s</strong> uygulaması, %4" +"$s hesap verileriniz üzerinde şunları yapmak istiyor: <strong>%3$s</strong>. " +"%4$s hesabınıza erişmek için yalnızca güvendiğiniz üçüncü şahıslara izin " +"vermelisiniz." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " "the ability to <strong>%3$s</strong> your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" +"<strong>%2$s</strong> tarafından sunulan <strong>%1$s</strong> uygulaması, %4" +"$s hesap verileriniz üzerinde şunları yapmak istiyor: <strong>%3$s</strong>. " +"%4$s hesabınıza erişmek için yalnızca güvendiğiniz üçüncü şahıslara izin " +"vermelisiniz." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 -#, fuzzy +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" -msgstr "Hakkında" +msgstr "Hesap" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Takma ad" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Parola" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "İptal" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" -msgstr "" +msgstr "İzin Ver" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "" +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Hesap bilgilerinize erişim için izin verin." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Yetkilendirme iptal edildi." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "İstek belirteci %s, iptal edildi." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Uygulamayı başarılı bir şekilde yetkilendirdiniz" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Lütfen uygulamaya geri dönün ve işlemi tamamlamak için aşağıdaki güvenlik " +"kodunu girin." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Başarıyla %s uygulamasını yetkilendirdiniz" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Lütfen %s uygulamasına geri dönün ve işlemi tamamlamak için aşağıdaki " +"güvenlik kodunu girin." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr " Bu yöntem bir POST veya DELETE gerektirir." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." -msgstr "" +msgstr "Başka bir kullanıcının durum mesajını silemezsiniz." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Böyle bir durum mesajı yok." -#: actions/apistatusesretweet.php:83 -#, fuzzy +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." +msgstr "Kendi durum mesajınızı tekrarlayamazsınız." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Zaten giriş yapmış durumdasıznız!" +msgstr "Bu durum mesajı zaten tekrarlanmış." -#: actions/apistatusesshow.php:139 -#, fuzzy +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP yöntemi desteklenmiyor." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Desteklenmeyen biçim: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." -msgstr "Avatar güncellendi." +msgstr "Durum silindi." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." -msgstr "" +msgstr "Bu ID'li bir durum mesajı bulunamadı." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Yalnızca Atom biçimi kullanılarak silinebilir." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Bu durum mesajı silinemiyor." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "%d durum mesajını sil" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "İstemci, bir değere sahip 'status' parametresi sağlamalı." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" -"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" - -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -#, fuzzy -msgid "Not found." -msgstr "İstek bulunamadı!" - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Bu çok uzun. En büyük durum mesajı boyutu %d karakterdir." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 -#, fuzzy +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Üst durum mesajı bulunamadı." + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"En büyük durum mesajı boyutu, eklenti bağlantıları dahil %d karakterdir." + +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." -msgstr "Desteklenmeyen görüntü dosyası biçemi." +msgstr "Desteklenmeyen biçim." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s'in %2$s'deki durum mesajları " +msgstr "%1$s / %2$s kullanıcısının favorileri" -#: actions/apitimelinefavorites.php:119 -#, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s adli kullanicinin durum mesajlari" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%2$s / %3$s tarafından favorilere eklenen %1$s güncellemeleri." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Grup - %s için besleme oluşturulamadı." + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" -msgstr "" +msgstr "%s genel zaman çizelgesi" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +#, fuzzy +msgid "Unimplemented." +msgstr "showForm() gerçeklenmemiş." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "%s için cevaplar" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "%s için cevaplar" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "%s ile etiketli durum mesajları" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" -#: actions/apitrends.php:87 -msgid "API method under construction." +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." msgstr "" -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Böyle bir belge yok." +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 +msgid "API method under construction." +msgstr "UPA metodu yapım aşamasında." + +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +#, fuzzy +msgid "User not found." +msgstr "Onay kodu bulunamadı." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Böyle bir durum mesajı yok." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Yeni abonelik eklenemedi." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Durum mesajını kaydederken hata oluştu." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Böyle bir durum mesajı yok." + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Favorilere ekle" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Böyle bir durum mesajı yok." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s grup üyeleri" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%2$s kullanıcısının üye olduğu %1$s grupları." + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Yeni grup" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Tüm üyeler" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Böyle bir dosya yok." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Favori silinemedi." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Böyle bir kullanıcı yok." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Tüm üyeler" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP yöntemi desteklenmiyor." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Böyle bir durum mesajı yok." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Bize o profili yollamadınız" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Yeni abonelik eklenemedi." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Uzaktan abonelik" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Kullanıcının profili yok." + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Böyle bir durum mesajı yok." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Takma ad yok" -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." -msgstr "" +msgstr "Boyut yok." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Geçersiz büyüklük." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Avatar" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "" +"Kişisel kullanıcı resminizi yükleyebilirsiniz. Maksimum dosya boyutu %s'dir." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 #, fuzzy msgid "User without matching profile." msgstr "Kullanıcının profili yok." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 -#, fuzzy msgid "Avatar settings" -msgstr "Ayarlar" +msgstr "Profil ayarları" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "" +msgstr "Orijinal" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" -msgstr "" +msgstr "Önizleme" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "" +msgstr "Sil" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +#, fuzzy +msgctxt "BUTTON" msgid "Upload" msgstr "Yükle" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" -msgstr "" +msgstr "Kırp" -#: actions/avatarsettings.php:305 -#, fuzzy +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." -msgstr "Kısmi yükleme." +msgstr "Hiçbir dosya yüklenmedi." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Resimden kullanıcı resminiz olacak bir kare alanı seçin" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Avatar güncellendi." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Avatar güncellemede hata." -#: actions/avatarsettings.php:397 -#, fuzzy +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." -msgstr "Avatar güncellendi." +msgstr "Kullanıcı resmi silindi." -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "Zaten giriş yapmış durumdasıznız!" +msgstr "Jabber ID başka bir kullanıcıya ait." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" -msgstr "Böyle bir kullanıcı yok." +msgstr "Kullanıcıyı engelle" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 "" +"Bu kullanıcıyı engellemek istediğinizden emin misiniz? Daha sonra, bu " +"kullanıcıların size olan abonelikleri sonlandırılacak ve gelecekte de size " +"bir daha abone olamayacaklar, ayrıca siz de onlardan gelen hiçbir @-" +"cevaplama'dan haberdar edilmeyeceksiniz." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 -#, fuzzy +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "Durum mesajları" +msgstr "Hayır" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 -#, fuzzy +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" -msgstr "Böyle bir kullanıcı yok." +msgstr "Bu kullanıcıyı engelleme" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" -msgstr "" +msgstr "Evet" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -#, fuzzy +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" -msgstr "Böyle bir kullanıcı yok." +msgstr "Bu kullanıcıyı engelle" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." -msgstr "" +msgstr "Engelleme bilgisinin kaydedilmesi başarısızlığa uğradı." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." -msgstr "Böyle bir durum mesajı yok." +msgstr "Böyle bir kullanıcı yok." -#: actions/blockedfromgroup.php:97 -#, fuzzy, php-format +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 +#, php-format msgid "%s blocked profiles" -msgstr "Kullanıcının profili yok." +msgstr "%s engellenmiş profil" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s ve arkadaşları" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "Bu gruba katılması engellenmiş kullanıcıların bir listesi." -#: actions/blockedfromgroup.php:288 -#, fuzzy +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" -msgstr "Böyle bir kullanıcı yok." +msgstr "Kullanıcının gruba üye olma engellemesini kaldır" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 -msgid "Unblock" -msgstr "" - -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 #, fuzzy +msgctxt "BUTTON" +msgid "Unblock" +msgstr "Engellemeyi Kaldır" + +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" -msgstr "Böyle bir kullanıcı yok." +msgstr "Bu kullanıcının engellemesini kaldır" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, fuzzy, php-format msgid "Post to %s" msgstr "%s için cevaplar" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Onay kodu yok." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Onay kodu bulunamadı." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "O onay kodu sizin için değil!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 -#, fuzzy, php-format +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 +#, php-format msgid "Unrecognized address type %s." -msgstr "Tanınmayan adres türü %s" +msgstr "Tanınmayan adres türü %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "O adres daha önce onaylanmış." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Kullanıcı güncellenemedi." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +#, fuzzy +msgid "Could not delete address confirmation." msgstr "Eposta onayı silinemedi." -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Adresi Onayla" +msgstr "Onayla" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "\"%s\" adresi hesabınız için onaylandı." -#: actions/conversation.php:99 -#, fuzzy +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" -msgstr "Yer" +msgstr "Konuşma" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Durum mesajları" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "Kullanıcı güncellenemedi." +msgstr "Bir uygulamayı silmek için giriş yapmış olmanız gerekir." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" +msgstr "Onay kodu bulunamadı." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "Bize o profili yollamadınız" +msgstr "Bu uygulamanın sahibi değilsiniz." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" -msgstr "Böyle bir durum mesajı yok." +msgstr "Uygulamayı sil" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " "connections." msgstr "" +"Bu uygulamayı silmek istediğinizden emin misiniz? Bu, veritabanından varolan " +"kullanıcı bağlantıları dahil olmak üzere uygulamaya ait tüm verileri " +"temizleyecektir." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy +#: actions/deleteapplication.php:161 msgid "Do not delete this application" -msgstr "Böyle bir durum mesajı yok." +msgstr "Bu uygulamayı silme" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 -#, fuzzy +#: actions/deleteapplication.php:167 msgid "Delete this application" -msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" +msgstr "Bu uygulamayı sil" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +#, fuzzy +msgid "You must be logged in to delete a group." +msgstr "Bir grup oluşturmak için giriş yapmış olmanız gerekir." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Takma ad yok" + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +#, fuzzy +msgid "You are not allowed to delete this group." +msgstr "Bu grubun bir üyesi değilsiniz." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, fuzzy, php-format +msgid "Could not delete group %s." +msgstr "Grup güncellenemedi." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, fuzzy, php-format +msgid "Deleted group %s" +msgstr "%1$s'in %2$s'deki durum mesajları " + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +#, fuzzy +msgid "Delete group" +msgstr "Kullanıcıyı sil" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +#, fuzzy +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Bu kullanıcıyı silmek istediğinizden emin misiniz? Bu, veritabanından " +"kullanıcıya ait tüm verileri herhangi bir yedek olmaksızın temizleyecektir." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +#, fuzzy +msgid "Do not delete this group" +msgstr "Bu durum mesajını silme" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +#, fuzzy +msgid "Delete this group" +msgstr "Bu kullanıcıyı sil" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Giriş yapılmadı." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "" - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"Bir durum mesajını kalıcı olarak silmek üzeresiniz. Bu bir kez yapıldığında, " +"geri alınamaz." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" -msgstr "" +msgstr "Durum mesajını sil" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" -msgstr "" +msgstr "Bu durum mesajını silmek istediğinizden emin misiniz?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 -#, fuzzy +#: actions/deletenotice.php:159 msgid "Do not delete this notice" -msgstr "Böyle bir durum mesajı yok." +msgstr "Bu durum mesajını silme" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" -msgstr "" +msgstr "Bu durum mesajını sil" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "Kullanıcı güncellenemedi." +msgstr "Kullanıcıları silemezsiniz." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Yerel aboneliği kullanabilirsiniz!" +msgstr "Sadece yerel kullanıcıları silebilirsiniz." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" -msgstr "" +msgstr "Kullanıcıyı sil" #: actions/deleteuser.php:136 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 "" +"Bu kullanıcıyı silmek istediğinizden emin misiniz? Bu, veritabanından " +"kullanıcıya ait tüm verileri herhangi bir yedek olmaksızın temizleyecektir." #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "Böyle bir kullanıcı yok." +msgstr "Bu kullanıcıyı sil" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" -msgstr "" +msgstr "Dizayn" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 -#, fuzzy +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." -msgstr "Geçersiz büyüklük." +msgstr "Geçersiz logo bağlantısı." -#: actions/designadminpanel.php:322 -#, fuzzy, php-format +#: actions/designadminpanel.php:340 +#, fuzzy +msgid "Invalid SSL logo URL." +msgstr "Geçersiz logo bağlantısı." + +#: actions/designadminpanel.php:344 +#, php-format msgid "Theme not available: %s." -msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" +msgstr "Tema mevcut değil: %s" -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Parolayı değiştir" - -#: actions/designadminpanel.php:431 -#, fuzzy -msgid "Site logo" -msgstr "Yeni durum mesajı" - -#: actions/designadminpanel.php:443 -#, fuzzy -msgid "Change theme" msgstr "Değiştir" -#: actions/designadminpanel.php:460 -#, fuzzy +#: actions/designadminpanel.php:453 +msgid "Site logo" +msgstr "Site logosu" + +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "SSL logosu" + +#: actions/designadminpanel.php:469 +msgid "Change theme" +msgstr "Temayı değiştir" + +#: actions/designadminpanel.php:486 msgid "Site theme" -msgstr "Yeni durum mesajı" +msgstr "Site teması" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." -msgstr "" +msgstr "Site için tema." -#: actions/designadminpanel.php:467 -#, fuzzy +#: actions/designadminpanel.php:493 msgid "Custom theme" -msgstr "Yeni durum mesajı" +msgstr "Özel tema" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "Özel bir StatusNet temasını .ZIP arşivi olarak yükleyebilirsiniz." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" -msgstr "" +msgstr "Arkaplan resmini değiştir" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" -msgstr "" +msgstr "Arkaplan" -#: actions/designadminpanel.php:496 -#, fuzzy, php-format +#: actions/designadminpanel.php:522 +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." msgstr "" -"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" +"Bu site için arkaplan resmi yükleyebilirsiniz. Maksimum dosya boyutu %1" +"$s'dir." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" -msgstr "" +msgstr "Açık" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" -msgstr "" +msgstr "Kapalı" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." -msgstr "" +msgstr "Arkaplan resmini açın ya da kapatın." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" -msgstr "" +msgstr "Arkaplan resmini döşe" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 -#, fuzzy +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" -msgstr "Parolayı değiştir" +msgstr "Renkleri değiştir" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" -msgstr "Bağlan" +msgstr "İçerik" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" -msgstr "Ara" +msgstr "Kenar Çubuğu" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" -msgstr "" +msgstr "Metin" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" -msgstr "Giriş" +msgstr "Bağlantılar" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" -msgstr "" +msgstr "Gelişmiş" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "" +msgstr "Özel CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" -msgstr "" +msgstr "Öntanımlıları kullan" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" -msgstr "" +msgstr "Öntanımlıya geri dön" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Kaydet" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" -msgstr "" +msgstr "Dizaynı kaydet" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "Bu durum mesajı bir favori değil!" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "Favorilere ekle" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Böyle bir belge yok." - -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" - -#: actions/editapplication.php:66 -msgid "You must be logged in to edit an application." -msgstr "" - -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy -msgid "No such application." msgstr "Böyle bir durum mesajı yok." -#: actions/editapplication.php:161 +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "Uygulamayı düzenle" + +#. TRANS: Client error displayed trying to edit an application while not logged in. +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "Bir uygulamayı düzenlemek için giriş yapmış olmanız gerekir." + +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 +msgid "No such application." +msgstr "Böyle bir uygulama yok." + +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." -msgstr "" +msgstr "Uygulamayı düzenlemek için bu biçimi kullan." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." -msgstr "" +msgstr "İsim gereklidir." -#: actions/editapplication.php:180 actions/newapplication.php:165 +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 #, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "Tam isim çok uzun (azm: 255 karakter)." +msgid "Name is too long (maximum 255 characters)." +msgstr "İsim çok uzun (maksimum: 255 karakter)." -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." -msgstr "Takma ad kullanımda. Başka bir tane deneyin." +msgstr "İsim halihazırda kullanımda. Başka bir tane deneyin." -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." -msgstr "Abonelikler" +msgstr "Abonelik reddedildi." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." -msgstr "" +msgstr "Kaynak bağlantı çok uzun." -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." -msgstr "Başlangıç sayfası adresi geçerli bir URL değil." +msgstr "Kaynak bağlantı geçerli değil." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." -msgstr "" +msgstr "Organizasyon gereklidir." -#: actions/editapplication.php:206 actions/newapplication.php:191 +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 #, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." +msgid "Organization is too long (maximum 255 characters)." +msgstr "Organizasyon çok uzun (maksimum 255 karakter)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." -msgstr "" +msgstr "Organizasyon anasayfası gereklidir." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 -#, fuzzy +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." -msgstr "Kullanıcı güncellenemedi." +msgstr "Uygulama güncellenemedi." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "%s grubunu düzenle" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "" +msgstr "Bir grup oluşturmak için giriş yapmış olmanız gerekir." -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." -msgstr "" +msgstr "Bir grubu düzenlemek için bir yönetici olmalısınız." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." -msgstr "" +msgstr "Grubu düzenlemek için bu biçimi kullan." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "%s Geçersiz başlangıç sayfası" -#: actions/editgroup.php:258 -#, fuzzy +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." +msgstr "Grup güncellenemedi." + +#. TRANS: Server error displayed when group aliases could not be added. +#. TRANS: Server exception thrown when creating group aliases failed. +#: actions/editgroup.php:279 classes/User_group.php:529 +msgid "Could not create aliases." msgstr "Kullanıcı güncellenemedi." -#. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy -msgid "Could not create aliases." -msgstr "Avatar bilgisi kaydedilemedi" - -#: actions/editgroup.php:280 -#, fuzzy +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." -msgstr "Ayarlar kaydedildi." +msgstr "Seçenekler kaydedildi." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Profil ayarları" +msgstr "E-posta ayarları" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "%%site.name%%'dan nasıl e-posta alacağınızı yönetin." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" -msgstr "Eposta adresi onayı" +msgstr "E-posta adresi" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." -msgstr "" +msgstr "Mevcut doğrulanmış e-posta adresi." #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "Kaldır" +msgstr "Geri al" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" +"Bu adresten onay bekleniyor. Ayrıntılı bilgi içeren mesaj için gelen " +"kutunuzu (ve gereksiz e-postalar bölümünü) kontrol edin." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "İptal et" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "\"kullanıcıadı@örnek.org\" benzeri bir e-posta adresi." #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 -#, fuzzy msgctxt "BUTTON" msgid "Add" msgstr "Ekle" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" +msgstr "Gelen e-posta" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." msgstr "" #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." +msgstr "Yeni durum mesajları göndermek için bu adrese e-posta atın." + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." msgstr "" +"Gönderim yapmak için yeni bir e-posta adresi oluşturun; eskisi iptal " +"olacaktır." #. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" -msgstr "" +msgstr "Yeni" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Tercihler" +msgstr "E-posta tercihleri" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 +#, fuzzy msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "Durum mesajlarını Jabber/GTalk üzerinden gönder." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" +"Biri benim durum mesajımı favori olarak eklediğinde bana e-posta gönder." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Birisi bana özel mesaj attığında bana e-posta gönder." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 +#, fuzzy msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "Bir takma ad veya eposta adresi girin." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "Tercihler kaydedildi." +msgstr "E-posta tercihleri kaydedildi." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 +#, fuzzy msgid "No email address." -msgstr "" +msgstr "Geçersiz bir eposta adresi." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 +#, fuzzy msgid "Cannot normalize that email address" -msgstr "" +msgstr "Jabber işlemlerinde bir hata oluştu." #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Geçersiz bir eposta adresi." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." -msgstr "" +msgstr "Bu zaten sizin e-posta adresiniz." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 +#, fuzzy msgid "That email address already belongs to another user." -msgstr "" +msgstr "Jabber ID başka bir kullanıcıya ait." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Onay kodu eklenemedi." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 +#, fuzzy msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" +"Eklemiş olduğunuz IM adresine bir onay kodu gönderildi. %s tarafından size " +"mesaj yollanabilmesi için onaylamanız gerekmektedir." #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "İptal etmek için beklenen onay yok." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy +#: actions/emailsettings.php:459 msgid "That is the wrong email address." -msgstr "Yanlış IM adresi." +msgstr "Bu yanlış e-posta adresi." + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Eposta onayı silinemedi." #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Onaylama iptal edildi." +msgstr "İptal etmek için beklenen onay yok." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." -msgstr "" +msgstr "Bu sizin e-posta adresiniz değil." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Bu adres kaldırılmıştı." +msgstr "Eposta adresi zaten var." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 +#, fuzzy msgid "No incoming email address." -msgstr "" +msgstr "Geçersiz bir eposta adresi." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." -msgstr "" +msgstr "Kullanıcı kayıtları güncellenemedi." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "" +msgstr "Gelen e-posta adresi silindi." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." -msgstr "" +msgstr "Yeni gelen e-posta adresi eklendi." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Bu durum mesajı zaten bir favori!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "" +msgstr "Favoriliğini kaldır" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 -#, fuzzy msgid "Popular notices" -msgstr "Böyle bir durum mesajı yok." +msgstr "Popüler durum mesajları" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "Böyle bir durum mesajı yok." +msgstr "Popüler durum mesajları, sayfa %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "Şu an sitedeki en popüler durum mesajları." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"Favori durum mesajları bu sayfada görüntülenir ama daha hiç kimse favorilere " +"eklememiş." #: actions/favorited.php:153 msgid "" @@ -1684,10 +2423,10 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s kullanıcısının favori durum mesajları" #: actions/favoritesrss.php:115 #, fuzzy, php-format @@ -1697,41 +2436,37 @@ msgstr "%s adli kullanicinin durum mesajlari" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "" +msgstr "Öne çıkan kullanıcılar" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "Öne çıkan kullanıcılar, sayfa %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "%s üzerindeki harika kullanıcılardan bazılarının bir seçkisi" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Yeni durum mesajı" +msgstr "Böyle bir durum mesajı yok." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Yeni durum mesajı" +msgstr "Böyle bir durum mesajı yok." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Böyle bir belge yok." +msgstr "Ek yok." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Böyle bir belge yok." +msgstr "Yüklenmiş ek yok." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" -msgstr "" +msgstr "Bu yanıt beklenmiyordu!" #: actions/finishremotesubscribe.php:80 msgid "User being listened to does not exist." @@ -1746,9 +2481,8 @@ msgid "That user has blocked you from subscribing." msgstr "" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Yetkilendirilmemiş." +msgstr "Takip talebine izin verildi" #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." @@ -1759,20 +2493,18 @@ msgstr "" msgid "Remote service uses unknown version of OMB protocol." msgstr "OMB protokolünün bilinmeğen sürümü." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Uzaktaki profili güncellemede hata oluştu" #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "Böyle bir durum mesajı yok." +msgstr "Böyle bir dosya yok." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Böyle bir durum mesajı yok." +msgstr "Profil kaydedilemedi." #: actions/grantrole.php:62 actions/revokerole.php:62 #, fuzzy @@ -1793,41 +2525,42 @@ msgstr "Bize o profili yollamadınız" msgid "User already has this role." msgstr "Kullanıcının profili yok." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." -msgstr "" +msgstr "Hiçbir profil belirtilmedi." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." -msgstr "" +msgstr "Hiçbir grup belirtilmedi." #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "" +msgstr "Sadece bir yönetici grup üyelerini engelleyebilir." #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "Kullanıcının profili yok." +msgstr "Kullanıcı zaten gruptan engellenmiş." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "Bize o profili yollamadınız" +msgstr "Kullanıcı grubunun bir üyesi değil." -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "Böyle bir kullanıcı yok." +msgstr "Kullanıcıyı gruptan engelle" #: actions/groupblock.php:160 #, php-format @@ -1839,32 +2572,29 @@ msgstr "" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 -#, fuzzy msgid "Do not block this user from this group" -msgstr "Sunucuya yönlendirme yapılamadı: %s" +msgstr "Bu kullanıcıyı bu gruptan engellemeyin" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 -#, fuzzy msgid "Block this user from this group" -msgstr "Böyle bir kullanıcı yok." +msgstr "Bu kullanıcıyı bu gruptan engelleyin" #: actions/groupblock.php:206 msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Kullanıcı numarası yok" +msgstr "JabberID yok." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "" +msgstr "Bir grubu düzenlemek için giriş yapmış olmanız gerekir." #: actions/groupdesignsettings.php:144 msgid "Group design" -msgstr "" +msgstr "Grup dizaynı" #: actions/groupdesignsettings.php:155 msgid "" @@ -1872,8 +2602,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Kullanıcı güncellenemedi." @@ -1885,17 +2617,26 @@ msgstr "Tercihler kaydedildi." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" -msgstr "" +msgstr "Grup logosu" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +"Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Yükle" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Kırp" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "" +msgstr "Resimden logo olacak bir kare alanı seçin." #: actions/grouplogo.php:399 #, fuzzy @@ -1907,48 +2648,55 @@ msgstr "Avatar güncellendi." msgid "Failed updating logo." msgstr "Avatar güncellemede hata." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" -msgstr "" +msgstr "%s grup üyeleri" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." -msgstr "" +msgstr "Bu gruptaki kullanıcıların listesi." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" -msgstr "" +msgstr "Yönetici" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" -msgstr "" +msgstr "Engelle" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Bu kullanıcıyı engelle" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" -msgstr "" +msgstr "Kullanıcıyı grubun bir yöneticisi yap" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" -msgstr "" +msgstr "Yönetici Yap" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "" +msgstr "Bu kullanıcıyı yönetici yap" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -1959,7 +2707,7 @@ msgstr "%s adli kullanicinin durum mesajlari" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" -msgstr "" +msgstr "Gruplar" #: actions/groups.php:64 #, php-format @@ -1977,9 +2725,8 @@ msgid "" msgstr "" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 -#, fuzzy msgid "Create a new group" -msgstr "Yeni hesap oluştur" +msgstr "Yeni bir grup oluştur" #: actions/groupsearch.php:52 #, fuzzy, php-format @@ -1992,15 +2739,13 @@ msgstr "" "karakterden oluşmalı. " #: actions/groupsearch.php:58 -#, fuzzy msgid "Group search" -msgstr "Kişi Arama" +msgstr "Grup arama" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "Sonuç yok" +msgstr "Sonuç yok." #: actions/groupsearch.php:82 #, php-format @@ -2016,25 +2761,25 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 -#, fuzzy +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "Kullanıcının profili yok." +msgstr "Kullanıcı gruptan engellenmedi." -#: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." -msgstr "Kullanıcıyı kaydetmede hata oluştu." +msgstr "Engellemeyi kaldırırken hata." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "IM Ayarları" +msgstr "Profil ayarları" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2050,16 +2795,14 @@ msgstr "" #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. #: actions/imsettings.php:94 -#, fuzzy msgid "IM is not available." -msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" +msgstr "Anlık mesajlaşma mevcut değil." #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "IM adresi" +msgstr "Anlık mesajlaşma adresi" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2078,7 +2821,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2088,65 +2834,66 @@ msgstr "" "IM istemcisi veya Gtalk arkadaşlar listenize eklenmiş olmalıdır." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Tercihler" +msgstr "Tercihler kaydedildi." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Durum mesajlarını Jabber/GTalk üzerinden gönder." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" "Jabber/GTalk durum mesajim değiştiğinde nedurum.com'da durumumu güncelle" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 +#, fuzzy msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "" +msgstr "Durum mesajlarını Jabber/GTalk üzerinden gönder." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 +#, fuzzy msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "Onaylanmış Jabber/Gtalk adresi." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Tercihler kaydedildi." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "JabberID yok." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Jabber işlemlerinde bir hata oluştu." #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Geçersiz bir Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Bu zaten sizin Jabber ID'niz." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID başka bir kullanıcıya ait." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2156,30 +2903,29 @@ msgstr "" "mesaj yollanabilmesi için onaylamanız gerekmektedir." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Yanlış IM adresi." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Eposta onayı silinemedi." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Onaylama iptal edildi." +msgstr "Onay kodu yok." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Bu sizin Jabber ID'niz değil." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 #, fuzzy msgid "The IM address was removed." msgstr "Bu adres kaldırılmıştı." @@ -2192,96 +2938,132 @@ msgstr "" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "%s için gelen kutusu" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, fuzzy, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Kullanıcı güncellenemedi." -#: actions/invite.php:72 -#, php-format -msgid "Invalid email address: %s" -msgstr "" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, fuzzy, php-format +msgid "Invalid email address: %s." +msgstr "Geçersiz bir eposta adresi." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +#, fuzzy +msgid "Invitations sent" +msgstr "Davet(iyeler) gönderildi" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" -msgstr "" +msgstr "Yeni kullanıcıları davet et" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +#, fuzzy +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Bize o profili yollamadınız" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, fuzzy, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" -msgstr "" +msgstr "%1$s'in %2$s'deki durum mesajları " -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "" +msgstr[0] "" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 +#, fuzzy msgid "Email addresses" -msgstr "" +msgstr "Eposta adresi zaten var." -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" -msgstr "" +msgstr "Kişisel mesaj" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 -#, fuzzy +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Gönder" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 -#, php-format +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 +#, fuzzy, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "" +msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2314,16 +3096,9 @@ msgstr "" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "Gruba katılmak için giriş yapmalısınız." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Takma ad yok" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2332,18 +3107,122 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 -#, fuzzy +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." -msgstr "Bize o profili yollamadınız" +msgstr "Bu grubun bir üyesi değilsiniz." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Lisans" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Bu StatusNet sitesi için lisans" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Geçersiz lisans seçimi." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +#, fuzzy +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Geçersiz lisans başlığı. En fazla uzunluk 255 karakterdir." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Geçersiz lisans bağlantısı." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Geçersiz lisans resmi bağlantısı." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Lisans bağlantısı boş veya geçerli bir tane olmalıdır." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Lisans resmi boş veya geçerli bir tane olmalıdır." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Lisans seçimi" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Gizlilik" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Tüm Hakları Saklıdır" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Creative Commons" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Lisans seç" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Lisans ayrıntıları" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Sahibi" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "site içeriğinin sahibinin ismi (eğer varsa)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Lisans Başlığı" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Lisansın başlığı." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "Lisans Bağlantısı" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "Lisans hakkında daha fazla bilgi için bağlantı." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "Lisans Resminin Bağlantısı" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "Lisansla birlikte gösterilecek bir resim için bağlantı." + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Lisans ayarlarını kaydet" + #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "Zaten giriş yapılmış." @@ -2363,13 +3242,13 @@ msgstr "Giriş" #: actions/login.php:249 msgid "Login to site" -msgstr "" +msgstr "Siteye giriş" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Beni hatırla" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Gelecekte kendiliğinden giriş yap, paylaşılan bilgisayarlar için değildir!" @@ -2387,9 +3266,8 @@ msgstr "" "ve parolanızı tekrar giriniz." #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." -msgstr "Geçersiz kullanıcı adı veya parola." +msgstr "Yanlış kullanıcı adı veya parola." #: actions/login.php:295 #, fuzzy, php-format @@ -2402,7 +3280,7 @@ msgstr "" #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "Sadece bir yönetici, başka bir kullanıcıyı yönetici yapabilir." #: actions/makeadmin.php:96 #, fuzzy, php-format @@ -2424,79 +3302,88 @@ msgstr "Kullanıcının profili yok." msgid "No current status." msgstr "Sonuç yok" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 #, fuzzy -msgid "New Application" -msgstr "Böyle bir durum mesajı yok." +msgid "New application" +msgstr "Yeni Uygulama" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "" -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." -msgstr "Avatar bilgisi kaydedilemedi" +msgstr "Eposta onayı silinemedi." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Yeni grup" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" -msgstr "" +msgstr "Yeni mesaj" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 +#, fuzzy msgid "You can't send a message to this user." -msgstr "" +msgstr "Bize o profili yollamadınız" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "İçerik yok!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" -msgstr "" +msgstr "Mesaj gönder" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." -msgstr "" +msgstr "%s kullanıcısına özel mesaj gönderildi." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" -msgstr "" +msgstr "Ajax Hatası" #: actions/newnotice.php:69 msgid "New notice" msgstr "Yeni durum mesajı" -#: actions/newnotice.php:217 -#, fuzzy +#: actions/newnotice.php:230 msgid "Notice posted" -msgstr "Durum mesajları" +msgstr "Durum mesajı gönderildi" #: actions/noticesearch.php:68 #, php-format @@ -2512,9 +3399,9 @@ msgid "Text search" msgstr "Metin arama" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " \"%s\" için arama sonuçları" +msgstr "%2$s üzerindeki \"%1$s\" için arama sonuçları" #: actions/noticesearch.php:121 #, php-format @@ -2542,7 +3429,8 @@ msgstr "\"%s\" kelimesinin geçtiği tüm güncellemeler" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2553,118 +3441,148 @@ msgstr "" msgid "Nudge sent!" msgstr "" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "" +msgstr "Uygulamalarınızı listelemek için giriş yapmış olmanız gerekir." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" -msgstr "" +msgstr "OAuth uygulamaları" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "" +msgstr "Kaydettiğiniz uygulamalar" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" -msgstr "" +msgstr "Bağlı uygulamalar" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 -#, fuzzy +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." -msgstr "Bize o profili yollamadınız" +msgstr "Bu uygulamanın bir kullanıcısı değilsiniz." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 +#, fuzzy, php-format +msgid "Unable to revoke access for application: %s." +msgstr "Uygulamayı düzenlemek için bu biçimi kullan." + +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" +msgstr "Kullanıcının profili yok." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "Bağlan" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." -msgstr "" +msgstr "Desteklenen bir veri biçimi değil." #: actions/opensearch.php:64 msgid "People Search" -msgstr "" +msgstr "Kişi Arama" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "" +msgstr "Durum Mesajı Arama" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Ayarlar" +msgstr "Profil ayarları" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" -msgstr "" - -#: actions/othersettings.php:117 -msgid "Automatic shortening service to use." -msgstr "" +msgstr "Bağlantıları şununla kısalt" +#. TRANS: Tooltip for for dropdown with URL shortener services. #: actions/othersettings.php:122 -#, fuzzy -msgid "View profile designs" -msgstr "Profil ayarları" +msgid "Automatic shortening service to use." +msgstr "Kullanılacak otomatik kısaltma servisi." -#: actions/othersettings.php:123 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 +msgid "View profile designs" +msgstr "Profil dizaynlarını görüntüle" + +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 #, fuzzy -msgid "URL shortening service is too long (max 50 chars)." +msgid "URL shortening service is too long (maximum 50 characters)." msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." #: actions/otp.php:69 @@ -2710,14 +3628,12 @@ msgid "Change password" msgstr "Parolayı değiştir" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Parolayı değiştir" +msgstr "Parolanızı değiştirin." #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "Parola kaydedildi." +msgstr "Parola değiştirildi" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2732,7 +3648,7 @@ msgid "6 or more characters" msgstr "6 veya daha fazla karakter" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Onayla" @@ -2744,11 +3660,11 @@ msgstr "yukarıdaki parolanın aynısı" msgid "Change" msgstr "Değiştir" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Parola 6 veya daha fazla karakterden oluşmalıdır." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Parolalar birbirini tutmuyor." @@ -2768,164 +3684,288 @@ msgstr "Yeni parola kaydedilemedi." msgid "Password saved." msgstr "Parola kaydedildi." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" -msgstr "" +msgstr "Yollar" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "" +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Bu StatusNet sitesi için yol ve sunucu ayarları" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" -msgstr "" +msgstr "Site" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Sunucu" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" -msgstr "" +msgstr "Yol" -#: actions/pathsadminpanel.php:242 +#: actions/pathsadminpanel.php:249 #, fuzzy -msgid "Site path" -msgstr "Yeni durum mesajı" +msgid "Site path." +msgstr "Site yolu" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +#, fuzzy +msgid "Locale directory" +msgstr "Avatar güncellendi." + +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" - -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +#, fuzzy +msgid "Server for themes." +msgstr "Site için tema." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "Sunucu" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +#, fuzzy +msgid "SSL path" +msgstr "Site yolu" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." msgstr "" -#: actions/pathsadminpanel.php:279 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +#, fuzzy +msgid "Directory" +msgstr "Avatar güncellendi." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 #, fuzzy msgid "Avatars" msgstr "Avatar" -#: actions/pathsadminpanel.php:284 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 msgid "Avatar server" -msgstr "Ayarlar" +msgstr "Avatar" -#: actions/pathsadminpanel.php:288 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +#, fuzzy +msgid "Server for avatars." +msgstr "Site için tema." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 #, fuzzy msgid "Avatar path" msgstr "Avatar güncellendi." -#: actions/pathsadminpanel.php:292 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +#, fuzzy +msgid "Web path to avatars." +msgstr "Avatar güncellemede hata." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 #, fuzzy msgid "Avatar directory" msgstr "Avatar güncellendi." -#: actions/pathsadminpanel.php:301 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 msgid "Backgrounds" msgstr "" -#: actions/pathsadminpanel.php:305 -msgid "Background server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +#, fuzzy +msgid "Server for backgrounds." +msgstr "Site için tema." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." msgstr "" -#: actions/pathsadminpanel.php:309 -msgid "Background path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." msgstr "" -#: actions/pathsadminpanel.php:313 -msgid "Background directory" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." msgstr "" -#: actions/pathsadminpanel.php:320 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +#, fuzzy +msgid "Server for attachments." +msgstr "Site için tema." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +#, fuzzy +msgid "Web path to attachments." +msgstr "Ek yok." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +#, fuzzy +msgid "Server for attachments on SSL pages." +msgstr "Site için tema." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 msgid "Never" -msgstr "Geri al" +msgstr "Sunucu" -#: actions/pathsadminpanel.php:324 +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 #, fuzzy msgid "Sometimes" msgstr "Durum mesajları" -#: actions/pathsadminpanel.php:325 +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 msgid "Always" msgstr "" -#: actions/pathsadminpanel.php:329 +#: actions/pathsadminpanel.php:485 msgid "Use SSL" msgstr "" -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." msgstr "" -#: actions/pathsadminpanel.php:335 -#, fuzzy -msgid "SSL server" -msgstr "Geri al" - -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Yeni durum mesajı" @@ -2955,153 +3995,197 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "%s adli kullanicinin durum mesajlari" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Geçersiz durum mesajı" +msgstr "Geçersiz büyüklük." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Profil ayarları" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Burada kişisel profilinizi güncelleyebilirsiniz, böylelikle insanlar sizin " "hakkınızda daha fazla bilgi sahibi olur." -#: actions/profilesettings.php:99 -#, fuzzy +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" -msgstr "Profil bilinmiyor" +msgstr "Profil ayarları" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +#, fuzzy +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." msgstr "" "1-64 küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " "verilmez" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Tam İsim" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Başlangıç Sayfası" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +#, fuzzy +msgid "URL of your homepage, blog, or profile on another site." msgstr "" "Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi" -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 #, fuzzy msgid "Describe yourself and your interests" msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Hakkında" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Yer" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" -msgstr "" +msgstr "Etiketler" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" +"Kendiniz için etiketler (harf, sayı, -. ., ve _ kullanılabilir), virgül veya " +"boşlukla ayırabilirsiniz" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" -msgstr "" +msgstr "Dil" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" -msgstr "" +msgstr "Tercih edilen dil" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" -msgstr "" +msgstr "Zaman dilimi" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "" +msgstr "Normalde hangi zaman dilimi içindesiniz?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "" +msgstr "Bana abone olan herkese abone yap (insan olmayanlar için en iyisi)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Yer bilgisi çok uzun (azm: %d karakter)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." -msgstr "" +msgstr "Zaman dilimi seçilmedi." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "" +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +#, fuzzy +msgid "Language is too long (maximum 50 characters)." +msgstr "Dil çok uzun (maksimum: 50 karakter)." -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "%s Geçersiz başlangıç sayfası" +msgstr "Geçersiz büyüklük." -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 +#, fuzzy msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "Kullanıcı güncellenemedi." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Profil kaydedilemedi." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Profil kaydedilemedi." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 #, fuzzy msgid "Couldn't save tags." msgstr "Profil kaydedilemedi." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Ayarlar kaydedildi." @@ -3111,8 +4195,9 @@ msgid "Beyond the page limit (%s)." msgstr "" #: actions/public.php:92 +#, fuzzy msgid "Could not retrieve public stream." -msgstr "" +msgstr "Kullanıcı güncellenemedi." #: actions/public.php:130 #, fuzzy, php-format @@ -3172,33 +4257,46 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 #, fuzzy msgid "Public tag cloud" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "" @@ -3227,26 +4325,32 @@ msgid "This confirmation code is too old. Please start again." msgstr "Onay kodu çok eski. Lütfen tekrar başlayınız." #: actions/recoverpassword.php:111 +#, fuzzy msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "Kullanıcı güncellenemedi." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"Hesabınıza eklemiş olduğunuz eposta adresine parolanızı geri getirmek için " +"gerekli olan talimatlar yollanmıştır." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Parola geri alma isteği" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Bir takma ad veya eposta adresi girin." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3285,8 +4389,9 @@ msgid "Enter a nickname or email address." msgstr "Bir takma ad veya eposta adresi girin." #: actions/recoverpassword.php:282 +#, fuzzy msgid "No user with that email address or username." -msgstr "" +msgstr "Kullanıcı için kaydedilmiş eposta adresi yok." #: actions/recoverpassword.php:299 msgid "No registered email address for that user." @@ -3309,14 +4414,15 @@ msgid "Unexpected password reset." msgstr "Beklemeğen parola sıfırlaması." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +#, fuzzy +msgid "Password must be 6 characters or more." msgstr "Parola 6 veya daha fazla karakterden oluşmalıdır." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Parola ve onaylaması birbirini tutmuyor." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Kullanıcı ayarlamada hata oluştu." @@ -3324,7 +4430,7 @@ msgstr "Kullanıcı ayarlamada hata oluştu." msgid "New password successfully saved. You are now logged in." msgstr "Yeni parola başarıyla kaydedildi. Şimdi giriş yaptınız." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3335,84 +4441,94 @@ msgstr "Onay kodu hatası." #: actions/register.php:119 msgid "Registration successful" -msgstr "" +msgstr "Kayıt başarılı" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Kayıt" #: actions/register.php:142 msgid "Registration not allowed." -msgstr "" +msgstr "Kayıt yapılmasına izin verilmiyor." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Eposta adresi zaten var." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Geçersiz kullanıcı adı veya parola." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 +#, fuzzy msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" +"1-64 küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" -#: actions/register.php:437 +#: actions/register.php:438 +#, fuzzy msgid "6 or more characters. Required." -msgstr "" +msgstr "6 veya daha fazla karakter" -#: actions/register.php:441 +#: actions/register.php:442 +#, fuzzy msgid "Same as password above. Required." -msgstr "" +msgstr "yukarıdaki parolanın aynısı" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Eposta" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "" "Sadece sistem güncellemeleri, duyurular ve parola geri alma için kullanılır." -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" +"Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "Tüm hakları saklıdır." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " @@ -3421,7 +4537,7 @@ msgstr "" "bu özel veriler haricinde: parola, eposta adresi, IM adresi, telefon " "numarası." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3440,7 +4556,7 @@ msgid "" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3480,7 +4596,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Abone ol" @@ -3520,10 +4636,9 @@ 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:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "Yarat" +msgstr "Sıfırla" #: actions/repeat.php:119 #, fuzzy @@ -3531,7 +4646,7 @@ msgid "Repeated!" msgstr "Yarat" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "%s için cevaplar" @@ -3552,9 +4667,9 @@ msgid "Replies feed for %s (RSS 2.0)" msgstr "%s için durum RSS beslemesi" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "%s için durum RSS beslemesi" +msgstr "%s için cevaplar" #: actions/replies.php:199 #, php-format @@ -3593,9 +4708,8 @@ msgid "User doesn't have this role." msgstr "Kullanıcının profili yok." #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Avatar güncellendi." +msgstr "İstatistikler" #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy @@ -3609,12 +4723,12 @@ msgstr "Kullanıcının profili yok." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3634,10 +4748,8 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "Ayarlar" +msgstr "Profil ayarları" #: actions/showapplication.php:82 msgid "You must be logged in to view an application." @@ -3649,31 +4761,30 @@ msgid "Application profile" msgstr "Bu durum mesajının ait oldugu kullanıcı profili yok" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" -msgstr "" +msgstr "Simge" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Takma ad" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" -msgstr "Yer" +msgstr "Organizasyon" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 -#, fuzzy +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" -msgstr "Abonelikler" +msgstr "Tanım" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "İstatistikler" @@ -3691,6 +4802,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Sil" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3731,8 +4847,9 @@ msgid "%1$s's favorite notices, page %2$d" msgstr "%s ve arkadaşları" #: actions/showfavorites.php:132 +#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Profil kaydedilemedi." #: actions/showfavorites.php:171 #, fuzzy, php-format @@ -3774,81 +4891,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" msgstr "" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, fuzzy, php-format msgid "%1$s group, page %2$d" msgstr "Bütün abonelikler" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Böyle bir durum mesajı yok." +msgstr "Kullanıcının profili yok." -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" -msgstr "" +msgstr "Bağlantı" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 -#, fuzzy +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" -msgstr "Durum mesajları" +msgstr "Not" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" -msgstr "" +msgstr "Diğerisimler" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" msgstr "" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 -#, fuzzy +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" -msgstr "Üyelik başlangıcı" +msgstr "Üyeler" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Yok)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" -msgstr "" +msgstr "Tüm üyeler" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 #, fuzzy +msgctxt "LABEL" msgid "Created" -msgstr "Yarat" +msgstr "Oluşturuldu" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +#, fuzzy +msgctxt "LABEL" +msgid "Members" +msgstr "Üyeler" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3858,7 +5000,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3867,87 +5012,119 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" -msgstr "" +msgstr "Yöneticiler" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." -msgstr "" +msgstr "Böyle bir mesaj yok." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "" -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Durum mesajları" +msgstr "Durum mesajı silindi." -#: actions/showstream.php:73 -#, php-format -msgid " tagged %s" -msgstr "" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, fuzzy, php-format +msgid "%1$s tagged %2$s" +msgstr "%s ve arkadaşları" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, fuzzy, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%s adli kullanicinin durum mesajlari" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, fuzzy, php-format msgid "%1$s, page %2$d" msgstr "%s ve arkadaşları" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, fuzzy, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, fuzzy, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, fuzzy, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, fuzzy, php-format msgid "Notice feed for %s (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "" -#: actions/showstream.php:200 -#, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, fuzzy, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" +"Bu, %s ve arkadaşlarının zaman çizelgesi ama henüz hiç kimse bir şey " +"göndermemiş." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3956,7 +5133,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3964,7 +5143,8 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "%s için cevaplar" @@ -4006,12 +5186,11 @@ msgstr "" #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "Genel" #: actions/siteadminpanel.php:224 -#, fuzzy msgid "Site name" -msgstr "Yeni durum mesajı" +msgstr "Site ismi" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -4039,13 +5218,12 @@ msgid "Contact email address for your site" msgstr "Kullanıcı için kaydedilmiş eposta adresi yok." #: actions/siteadminpanel.php:245 -#, fuzzy msgid "Local" -msgstr "Yer" +msgstr "Yerel" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Öntanımlı saat dilimi" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." @@ -4053,7 +5231,7 @@ msgstr "" #: actions/siteadminpanel.php:262 msgid "Default language" -msgstr "" +msgstr "Öntanımlı dil" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -4079,43 +5257,49 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Yeni durum mesajı" +msgstr "Durum mesajları" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +#, fuzzy +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "Geçersiz lisans başlığı. En fazla uzunluk 255 karakterdir." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 #, fuzzy msgid "Site notice text" msgstr "Yeni durum mesajı" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 #, fuzzy msgid "Save site notice" msgstr "Yeni durum mesajı" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "IM Ayarları" +msgstr "Profil ayarları" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4148,8 +5332,9 @@ msgstr "" #. TRANS: Field label for SMS address input in SMS settings form. #: actions/smssettings.php:142 +#, fuzzy msgid "Confirmation code" -msgstr "" +msgstr "Onay kodu yok." #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 @@ -4170,14 +5355,16 @@ msgstr "" #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 +#, fuzzy msgid "Phone number, no punctuation or spaces, with area code" msgstr "" +"1-64 küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Tercihler" +msgstr "Tercihler kaydedildi." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4194,8 +5381,9 @@ msgstr "Tercihler kaydedildi." #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 +#, fuzzy msgid "No phone number." -msgstr "" +msgstr "Böyle bir kullanıcı yok." #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 @@ -4204,38 +5392,42 @@ msgstr "" #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 +#, fuzzy msgid "That is already your phone number." -msgstr "" +msgstr "Bu zaten sizin Jabber ID'niz." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 +#, fuzzy msgid "That phone number already belongs to another user." -msgstr "" +msgstr "Jabber ID başka bir kullanıcıya ait." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "O onay kodu sizin için değil!" +msgstr "" +"Eklemiş olduğunuz IM adresine bir onay kodu gönderildi. %s tarafından size " +"mesaj yollanabilmesi için onaylamanız gerekmektedir." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 +#, fuzzy msgid "That is the wrong confirmation number." -msgstr "" +msgstr "Yanlış IM adresi." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Onaylama iptal edildi." +msgstr "Onay kodu yok." #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. #: actions/smssettings.php:448 +#, fuzzy msgid "That is not your phone number." -msgstr "" +msgstr "Bu sizin Jabber ID'niz değil." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 @@ -4264,19 +5456,19 @@ msgstr "" #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 +#, fuzzy msgid "No code entered" -msgstr "" +msgstr "İçerik yok!" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Abonelikler" +msgstr "Eposta adresi onayı" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4327,26 +5519,22 @@ msgstr "" msgid "Save snapshot settings" msgstr "Ayarlar" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 #, fuzzy msgid "You are not subscribed to that profile." msgstr "Bize o profili yollamadınız" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Abonelik oluşturulamadı." +msgstr "Yeni abonelik eklenemedi." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Böyle bir durum mesajı yok." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4357,63 +5545,84 @@ msgstr "Bize o profili yollamadınız" msgid "Subscribed" msgstr "Abone ol" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, fuzzy, php-format msgid "%s subscribers" msgstr "Abone olanlar" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, fuzzy, php-format msgid "%1$s subscribers, page %2$d" msgstr "Bütün abonelikler" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Sizin durumunuzu takip edenler" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "%s adlı kullanıcının durumunu takip edenler" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Bütün abonelikler" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Bütün abonelikler" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Sizin durumlarını takip ettiğiniz kullanıcılar" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "%s adlı kullanıcının durumlarını takip ettiği kullanıcılar" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4423,17 +5632,27 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, fuzzy, php-format msgid "%s is not listening to anyone." msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#: actions/subscriptions.php:208 -#, fuzzy -msgid "Jabber" -msgstr "JabberID yok." +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%s için durum RSS beslemesi" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 +msgid "Jabber" +msgstr "Jabber" + +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "" @@ -4473,13 +5692,13 @@ msgid "User profile" msgstr "Kullanıcının profili yok." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" -msgstr "" +msgstr "Fotoğraf" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "Kullanıcıyı etiketle" #: actions/tagother.php:151 msgid "" @@ -4493,18 +5712,16 @@ msgid "" msgstr "" #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." -msgstr "Avatar bilgisi kaydedilemedi" +msgstr "Profil kaydedilemedi." #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "Böyle bir durum mesajı yok." +msgstr "Böyle bir etiket yok." #: actions/unblock.php:59 #, fuzzy @@ -4538,77 +5755,99 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +#, fuzzy +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Geçersiz lisans başlığı. En fazla uzunluk 255 karakterdir." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" -msgstr "" - -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" +msgstr "Yeni kullanıcılar" +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgid "New user welcome" +msgstr "Yeni kullanıcı karşılaması" -#: actions/useradminpanel.php:241 +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +#, fuzzy +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Yeni kullanıcılar için hoşgeldiniz metni (En fazla 255 karakter)." + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Bütün abonelikler" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Takip talebine izin verildi" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Yer" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Takip isteğini onayla" @@ -4624,9 +5863,11 @@ msgstr "" "detayları gözden geçirin. Kimsenin durumunu taki etme isteğinde " "bulunmadıysanız \"İptal\" tuşuna basın. " +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" -msgstr "" +msgstr "Lisans" #: actions/userauthorization.php:217 msgid "Accept" @@ -4634,18 +5875,16 @@ msgstr "Kabul et" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Takip talebine izin verildi" +msgstr "Bize o profili yollamadınız" #: actions/userauthorization.php:219 msgid "Reject" msgstr "Reddet" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Bütün abonelikler" +msgstr "Takip isteğini onayla" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4708,12 +5947,14 @@ msgstr "Avatar URLi '%s' okunamıyor" msgid "Wrong image type for avatar URL ‘%s’." msgstr "%s için yanlış resim türü" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Profil ayarları" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4749,15 +5990,15 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "" #: actions/version.php:75 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "İstatistikler" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -4795,76 +6036,119 @@ msgstr "" #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "Eklentiler" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -#, fuzzy +#: actions/version.php:198 lib/action.php:885 msgid "Version" -msgstr "Kişisel" +msgstr "Sürüm" #: actions/version.php:199 msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, fuzzy, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s %2$s'da durumunuzu takip ediyor" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "Geçersiz büyüklük." +msgstr "Geçersiz dosya ismi." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 #, fuzzy msgid "Group join failed." msgstr "Böyle bir durum mesajı yok." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Kullanıcı güncellenemedi." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Böyle bir durum mesajı yok." +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, fuzzy, php-format +msgid "Group ID %s is invalid." +msgstr "Kullanıcıyı kaydetmede hata oluştu; geçersiz." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +#, fuzzy +msgid "Join" +msgstr "Giriş" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -4884,19 +6168,21 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 +#, fuzzy msgid "Could not insert message." -msgstr "" +msgstr "Yeni abonelik eklenemedi." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 +#, fuzzy msgid "Could not update message with new URI." -msgstr "" +msgstr "Kullanıcı güncellenemedi." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4906,408 +6192,442 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Cevap eklenirken veritabanı hatası: %s" +msgstr "Avatar eklemede hata oluştu" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 -#, fuzzy +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." -msgstr "Durum mesajını kaydederken hata oluştu." +msgstr "Durum mesajını kaydederken hata oluştu. Çok uzun." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 -#, fuzzy +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." -msgstr "Durum mesajını kaydederken hata oluştu." +msgstr "Durum mesajını kaydederken hata oluştu. Bilinmeyen kullanıcı." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, fuzzy, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Profil kaydedilemedi." + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, fuzzy, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s'in %2$s'deki durum mesajları " + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "Kullanıcının profili yok." +msgstr "Profil yok." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "Durum mesajını kaydederken hata oluştu." +msgstr "Etiket kaydedilemedi." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" -msgstr "" +msgstr "Zaten abone olunmuş!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 #, fuzzy msgid "User has blocked you." msgstr "Kullanıcının profili yok." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Abonelik silinemedi." +msgstr "Yeni abonelik eklenemedi." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Abonelik silinemedi." +msgstr "Yeni abonelik eklenemedi." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Abonelik silinemedi." +msgstr "Yeni abonelik eklenemedi." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, fuzzy, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s %2$s'da durumunuzu takip ediyor" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 -#, fuzzy +#: classes/User_group.php:511 msgid "Could not create group." -msgstr "Avatar bilgisi kaydedilemedi" +msgstr "Kullanıcı güncellenemedi." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Abonelik oluşturulamadı." +msgstr "Profil kaydedilemedi." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "Abonelik oluşturulamadı." +msgstr "Kullanıcı güncellenemedi." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Abonelik oluşturulamadı." +msgstr "Profil kaydedilemedi." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" -msgstr "" +msgstr "Profil ayarlarınızı değiştirin" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 -#, fuzzy +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" -msgstr "Avatar güncellemede hata." +msgstr "Bir kullanıcı resmi yükle" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" -msgstr "" +msgstr "Parolanızı değiştirin" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "Kullanıcının profili yok." +msgstr "Profilinizi tasarlayın" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" -msgstr "" +msgstr "Diğer seçenekler" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" -msgstr "" +msgstr "Diğer" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, fuzzy, php-format msgid "%1$s - %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" +msgstr "Başlıksız sayfa" + +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" msgstr "" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "Kişisel profil ve arkadaşların zaman çizelgesi" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -#, fuzzy +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Kişisel" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Parolayı değiştir" +msgstr "E-postanızı, kullanıcı resminizi, parolanızı, profilinizi değiştirin" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Hesap" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -#, fuzzy +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Sunucuya yönlendirme yapılamadı: %s" +msgstr "Servislere bağlan" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Bağlan" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Abonelikler" +msgstr "Site yapılandırmasını değiştir" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" -msgstr "" +msgstr "Yönetim" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" +"%s üzerinde size katılmaları için arkadaşlarınızı ve meslektaşlarınızı davet " +"edin" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -#, fuzzy +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" -msgstr "Geçersiz büyüklük." +msgstr "Davet et" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Çıkış" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -#, fuzzy +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Yeni hesap oluştur" +msgstr "Bir hesap oluştur" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Kayıt" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Siteye giriş" -#: lib/action.php:491 -#, fuzzy +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Giriş" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Yardım" +msgstr "Bana yardım et!" -#: lib/action.php:497 -#, fuzzy +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Yardım" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "Kişi ya da yazılar için arama yap" -#: lib/action.php:503 -#, fuzzy +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Ara" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 #, fuzzy msgid "Site notice" msgstr "Yeni durum mesajı" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 #, fuzzy msgid "Page notice" msgstr "Yeni durum mesajı" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 #, fuzzy msgid "Secondary site navigation" msgstr "Abonelikler" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Yardım" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Hakkında" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "SSS" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Gizlilik" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Kaynak" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "İletişim" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" -msgstr "" +msgstr "StatusNet yazılım lisansı" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5317,13 +6637,16 @@ msgstr "" "hazırlanan anında mesajlaşma ağıdır. " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5335,365 +6658,460 @@ msgstr "" "microbloglama yazılımının %s. versiyonunu kullanmaktadır." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy +#: lib/action.php:954 msgid "Site content license" -msgstr "Yeni durum mesajı" +msgstr "Site içeriği lisansı" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 -#, fuzzy +#: lib/action.php:1351 msgid "After" -msgstr "« Sonra" +msgstr "Sonra" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 -#, fuzzy +#: lib/action.php:1361 msgid "Before" -msgstr "Önce »" +msgstr "Önce" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Fotoğraf" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm() gerçeklenmemiş." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings() gerçeklenmemiş." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "" +msgstr "Dizayn ayarı silinemedi." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "Eposta adresi onayı" +msgstr "Temel site yapılandırması" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -#, fuzzy +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" -msgstr "Yeni durum mesajı" +msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "Eposta adresi onayı" +msgstr "Dizayn yapılandırması" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" -msgstr "Kişisel" +msgstr "Dizayn" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "Eposta adresi onayı" +msgstr "Onay kodu yok." #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" -msgstr "" +msgstr "Kullanıcı" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "Eposta adresi onayı" +msgstr "Erişim yapılandırması" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "Eposta adresi onayı" +msgstr "Yol yapılandırması" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "Eposta adresi onayı" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Yeni durum mesajı" +msgstr "Site durum mesajını düzenle" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "Eposta adresi onayı" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +#, fuzzy +msgid "Could not create anonymous consumer." +msgstr "Kullanıcı güncellenemedi." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +#, fuzzy +msgid "Could not create anonymous OAuth application." +msgstr "Eposta onayı silinemedi." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +#, fuzzy +msgid "Could not issue access token." +msgstr "Yeni abonelik eklenemedi." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "OAuth uygulama kullanıcısı eklerken veritabanı hatası." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" -msgstr "" +msgstr "Bu uygulama için simge" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 #, fuzzy msgid "Describe your application" msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "" "Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Kaynak" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "" "Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" -msgstr "" +msgstr "Tarayıcı" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" -msgstr "" +msgstr "Masaüstü" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "İptal et" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Kaldır" +msgstr "Geri al" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "Profil" +msgstr "Sağlayıcı" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 #, fuzzy -msgid "Password changing failed" +msgid "Password changing failed." msgstr "Parola kaydedildi." -#: lib/authenticationplugin.php:236 +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 #, fuzzy -msgid "Password changing is not allowed" +msgid "Password changing is not allowed." msgstr "Parola kaydedildi." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Engelle" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:99 lib/command.php:596 +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 #, fuzzy -msgid "User has no last notice" +msgid "User has no last notice." msgstr "Kullanıcının profili yok." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" +#: lib/command.php:128 +#, fuzzy, php-format +msgid "Could not find a user with nickname %s." msgstr "Kullanıcı güncellenemedi." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Kullanıcı güncellenemedi." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "%s için cevaplar" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5701,205 +7119,241 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Zaten giriş yapmış durumdasıznız!" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Sunucuya yönlendirme yapılamadı: %s" +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 #, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "OpenID formu yaratılamadı: %s" +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s'in %2$s'deki durum mesajları " #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format -msgid "Fullname: %s" -msgstr "Tam İsim" - -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 -#, php-format -msgid "Location: %s" -msgstr "" - -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, php-format -msgid "Homepage: %s" -msgstr "" - -#. TRANS: Whois output. %s is the bio information of the queried user. #: lib/command.php:430 #, php-format -msgid "About: %s" -msgstr "" +msgid "Fullname: %s" +msgstr "Tam İsim: %s" -#: lib/command.php:457 +#. TRANS: Whois output. %s is the location of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format +msgid "Location: %s" +msgstr "Yer: %s" + +#. TRANS: Whois output. %s is the homepage of the queried user. +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, fuzzy, php-format +msgid "Homepage: %s" +msgstr "Başlangıç Sayfası" + +#. TRANS: Whois output. %s is the bio information of the queried user. +#: lib/command.php:442 +#, php-format +msgid "About: %s" +msgstr "Hakkında: %s" + +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +#: lib/command.php:488 +#, fuzzy, php-format +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Bu çok uzun. Maksimum durum mesajı boyutu %d karakterdir." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 +#, fuzzy msgid "Error sending direct message." -msgstr "" - -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Zaten giriş yapmış durumdasıznız!" +msgstr "Kullanıcı ayarlamada hata oluştu." #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Durum mesajları" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Durum mesajını kaydederken hata oluştu." +msgstr "Kullanıcı ayarlamada hata oluştu." -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" - -#: lib/command.php:571 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "Bu çok uzun. Maksimum durum mesajı boyutu %d karakterdir." + +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, fuzzy, php-format +msgid "Reply to %s sent." msgstr "%s için cevaplar" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Bize o profili yollamadınız" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 +#, fuzzy msgid "Notification off." -msgstr "" +msgstr "Onay kodu yok." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 +#, fuzzy msgid "Notification on." -msgstr "" +msgstr "Onay kodu yok." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Aboneliği sonlandır" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Bize o profili yollamadınız" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Bize o profili yollamadınız" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Uzaktan abonelik" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Uzaktan abonelik" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Bize o profili yollamadınız" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Bize o profili yollamadınız" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5941,53 +7395,75 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 #, fuzzy -msgid "No configuration file found. " +msgid "No configuration file found." msgstr "Onay kodu yok." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" msgstr "" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 #, fuzzy +msgctxt "MENU" msgid "Connections" msgstr "Bağlan" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 #, fuzzy msgid "Upload file" msgstr "Yükle" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 #, fuzzy msgid "" @@ -5995,41 +7471,60 @@ msgid "" msgstr "" "Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +#, fuzzy +msgctxt "RADIO" +msgid "On" +msgstr "Açık" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +#, fuzzy +msgctxt "RADIO" +msgid "Off" +msgstr "Kapalı" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +#, fuzzy +msgctxt "BUTTON" +msgid "Reset" +msgstr "Sıfırla" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 #, fuzzy msgid "Favor this notice" msgstr "Böyle bir durum mesajı yok." -#: lib/favorform.php:140 -msgid "Favor" -msgstr "" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" -msgstr "" +msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" -msgstr "" +msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -6061,9 +7556,15 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" + #: lib/groupeditform.php:163 #, fuzzy -msgid "URL of the homepage or blog of the group or topic" +msgid "URL of the homepage or blog of the group or topic." msgstr "" "Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi" @@ -6074,63 +7575,111 @@ msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" #: lib/groupeditform.php:170 #, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 #, fuzzy msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "Bulunduğunuz yer, \"Şehir, Eyalet (veya Bölge), Ülke\" gibi" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Böyle bir kullanıcı yok." - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Böyle bir kullanıcı yok." - -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Çıkış" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" msgstr "" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -6144,40 +7693,56 @@ msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" msgid "Unsupported image file format." msgstr "Desteklenmeyen görüntü dosyası biçemi." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Kısmi yükleme." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Dosya yüklemede sistem hatası." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Bu bir resim dosyası değil ya da dosyada hata var" -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 #, fuzzy msgid "Lost our file." msgstr "Böyle bir durum mesajı yok." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, fuzzy, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "MB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, fuzzy, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "kB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" #: lib/jabber.php:387 #, php-format @@ -6189,11 +7754,6 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "Giriş" - #: lib/leaveform.php:114 #, fuzzy msgid "Leave" @@ -6209,44 +7769,53 @@ msgstr "Geçersiz kullanıcı adı veya parola." msgid "Sign up for a new account" msgstr "Yeni hesap oluştur" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Eposta adresi onayı" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6255,10 +7824,10 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" "%1$s %2$s durum mesajlarınızı takip etmeye başladı.\n" "\n" @@ -6267,20 +7836,24 @@ msgstr "" "Kendisini durumsuz bırakmayın!,\n" "%4$s.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, fuzzy, php-format msgid "Bio: %s" msgstr "Hakkında" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 -#, php-format +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 +#, fuzzy, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "Kullanıcı için kaydedilmiş eposta adresi yok." -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6290,34 +7863,40 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s durum" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 +#, fuzzy msgid "SMS confirmation" -msgstr "" +msgstr "Onay kodu yok." -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6333,14 +7912,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6359,14 +7942,19 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" +msgid "%1$s (@%2$s) added your notice as a favorite" msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6388,7 +7976,7 @@ msgid "" msgstr "" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6396,13 +7984,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6439,186 +8034,237 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" msgstr "" #: lib/mailhandler.php:37 msgid "Could not parse message." -msgstr "" +msgstr "Mesaj ayrıştırılamadı." #: lib/mailhandler.php:42 msgid "Not a registered user." -msgstr "" +msgstr "Kayıtlı bir kullanıcı değil." #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "Üzgünüz, bu sizin gelen e-posta adresiniz değil." #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." msgstr "" -#: lib/mailhandler.php:228 -#, fuzzy, php-format +#: lib/mailhandler.php:229 +#, php-format msgid "Unsupported message type: %s" -msgstr "Desteklenmeyen görüntü dosyası biçemi." +msgstr "Desteklenmeyen mesaj türü: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "Kullanıcı güncellenemedi." +msgstr "Dosyanın MIME türü belirlenemedi." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Alıcıyı seçin:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +#, fuzzy +msgid "No mutual subscribers." +msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!" + +#: lib/messageform.php:153 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 #, fuzzy msgid "Available characters" msgstr "6 veya daha fazla karakter" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Gönder" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Takma ad sadece küçük harflerden ve rakamlardan oluşabilir, boşluk " +"kullanılamaz. " + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Yeni durum mesajı" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "N'aber %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Profil kaydedilemedi." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Profil kaydedilemedi." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" -msgstr "" +msgstr "K" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" -msgstr "" +msgstr "G" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" -msgstr "" +msgstr "D" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" -msgstr "" +msgstr "B" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:629 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:630 -#, fuzzy +#: lib/noticelist.php:646 msgid "Reply" -msgstr "cevapla" +msgstr "Cevaplar" -#: lib/noticelist.php:674 +#: lib/noticelist.php:690 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -6635,56 +8281,52 @@ msgstr "" msgid "Send a nudge to this user" msgstr "" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Yeni profil eklemede hata oluştu" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Avatar eklemede hata oluştu" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Uzaktaki profili güncellemede hata oluştu" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Uzak profil eklemede hata oluştu" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Yeni durum mesajı" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Yeni abonelik eklenemedi." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Kişisel" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Cevaplar" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "" @@ -6693,7 +8335,8 @@ msgstr "" msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "" @@ -6780,9 +8423,11 @@ msgstr "Böyle bir durum mesajı yok." msgid "Revoke the \"%s\" role from this user" msgstr "Böyle bir kullanıcı yok." -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +#, fuzzy +msgid "Page not found." +msgstr "Onay kodu bulunamadı." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6793,27 +8438,34 @@ msgstr "" msgid "Sandbox this user" msgstr "Böyle bir kullanıcı yok." +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Ara" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Ara" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Ara" #: lib/searchgroupnav.php:80 +#, fuzzy msgid "People" -msgstr "" +msgstr "Kişi Arama" #: lib/searchgroupnav.php:81 msgid "Find people on this site" @@ -6883,6 +8535,12 @@ msgstr "" msgid "None" msgstr "" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +#, fuzzy +msgid "Invalid theme name." +msgstr "Geçersiz dosya ismi." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -6892,37 +8550,43 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Avatar güncellemede hata." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 #, fuzzy msgid "Error opening theme archive." msgstr "Uzaktaki profili güncellemede hata oluştu" @@ -6931,6 +8595,13 @@ msgstr "Uzaktaki profili güncellemede hata oluştu" msgid "Top posters" msgstr "" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +#, fuzzy +msgctxt "TITLE" +msgid "Unblock" +msgstr "Engellemeyi Kaldır" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -6950,132 +8621,180 @@ msgid "Unsilence this user" msgstr "Böyle bir kullanıcı yok." #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 +#, fuzzy msgid "Unsubscribe from this user" -msgstr "" +msgstr "Bize o profili yollamadınız" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" msgstr "Aboneliği sonlandır" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, fuzzy, php-format -msgid "User %s (%d) has no profile record." +msgid "User %1$s (%2$d) has no profile record." msgstr "Kullanıcının profili yok." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Avatar" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 #, fuzzy msgid "Edit profile settings" msgstr "Profil ayarları" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 #, fuzzy msgid "User role" msgstr "Kullanıcının profili yok." -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "birkaç saniye önce" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "yaklaşık bir dakika önce" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "yaklaşık %d dakika önce" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "yaklaşık bir saat önce" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "yaklaşık %d saat önce" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "yaklaşık bir gün önce" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "yaklaşık %d gün önce" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "yaklaşık bir ay önce" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "yaklaşık %d ay önce" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "yaklaşık bir yıl önce" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, fuzzy, php-format msgid "%s is not a valid color!" msgstr "Başlangıç sayfası adresi geçerli bir URL değil." -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 +#, fuzzy, php-format +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "Başlangıç sayfası adresi geçerli bir URL değil." + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, fuzzy, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "Bu çok uzun. Maksimum durum mesajı boyutu %d karakterdir." + +#. TRANS: Exception. +#: lib/xrd.php:64 +#, fuzzy +msgid "Invalid XML." +msgstr "Geçersiz büyüklük." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +#, fuzzy +msgid "No user specified; using backup user." +msgstr "Yeni durum mesajı" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index e425f6c621..36adfb46e8 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -1,175 +1,217 @@ -# Translation of StatusNet to Ukrainian +# Translation of StatusNet - Core to Ukrainian (Українська) +# Expored from translatewiki.net # -# Author@translatewiki.net: AS -# Author@translatewiki.net: Boogie -# Author@translatewiki.net: Prima klasy4na -# Author@translatewiki.net: Тест +# Author: AS +# Author: Boogie +# Author: Prima klasy4na +# Author: Тест # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:13:19+0000\n" -"Language-Team: Ukrainian\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:17+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" -"X-Message-Group: out-statusnet\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" -"10< =4 && (n%100<10 or n%100>=20) ? 1 : 2);\n" +"X-Message-Group: #out-statusnet-core\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Погодитись" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" msgstr "Параметри доступу на сайт" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Реєстрація" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Заборонити анонімним відвідувачам (ті, що не увійшли до системи) переглядати " "сайт?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Приватно" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." -msgstr "Зробити регістрацію лише за запрошеннями." +msgstr "Зробити реєстрацію лише за запрошеннями." #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 msgid "Invite only" msgstr "Лише за запрошеннями" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." -msgstr "Скасувати подальшу регістрацію." +msgstr "Скасувати подальшу реєстрацію." #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Закрито" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" msgstr "Зберегти параметри доступу" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Зберегти" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page." msgstr "Немає такої сторінки." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Такого користувача немає." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s та друзі, сторінка %2$d" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s з друзями" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Стрічка дописів для друзів %s (RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Стрічка дописів для друзів %s (RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Стрічка дописів для друзів %s (Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Це стрічка дописів %s і друзів, але вона поки що порожня." -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"Спробуйте до когось підписатись, [приєднатись до групи](%%action.groups%%) " -"або напишіть щось самі." +"Спробуйте до когось підписатись, приєднатись [до спільноти](%%action.groups%" +"%) або напишіть щось самі." -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " @@ -178,7 +220,11 @@ msgstr "" "Ви можете [«розштовхати» %1$s](../%2$s) зі сторінки його профілю або [щось " "йому написати](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -187,836 +233,1478 @@ msgstr "" "Чому б не [зареєструватись](%%%%action.register%%%%) і не спробувати " "«розштовхати» %s або щось йому написати." -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Ви з друзями" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" msgstr "Оновлення від %1$s та друзів на %2$s!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." msgstr "API метод не знайдено." -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Цей метод потребує POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" "Ви мусите встановити параметр «device» з одним зі значень: sms, im, none." -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "Не вдалося оновити користувача." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Користувач не має профілю." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 msgid "Could not save profile." msgstr "Не вдалося зберегти профіль." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" -"Сервер нездатен обробити таку кількість даних (%s байтів) за поточної " +msgstr[0] "" +"Сервер не здатен обробити таку кількість даних (%s байт) за поточної " +"конфігурації." +msgstr[1] "" +"Сервер не здатен обробити таку кількість даних (%s байтів) за поточної " +"конфігурації." +msgstr[2] "" +"Сервер не здатен обробити таку кількість даних (%s байтів) за поточної " "конфігурації." -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "Не маю можливості зберегти налаштування дизайну." -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." -msgstr "Не вдалося оновити Ваш дизайн." +msgstr "Не вдалося оновити ваш дизайн." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "Головна" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s стрічка" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "Підписки %s" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Обрані" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Учасники спільноти %s" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" msgstr "Ви не можете блокувати самого себе!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Спроба заблокувати користувача невдала." -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." msgstr "Спроба розблокувати користувача невдала." -#: actions/apidirectmessage.php:89 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 #, php-format msgid "Direct messages from %s" msgstr "Прямі повідомлення від %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" msgstr "Всі прямі повідомлення надіслані від %s" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" msgstr "Пряме повідомлення до %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "Всі прямі повідомлення надіслані до %s" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "Повідомлення без тексту!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 #, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Надто довго. Максимальний розмір %d знаків." +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "Надто довго. Максимальний розмір допису — %d знак." +msgstr[1] "Надто довго. Максимальний розмір допису — %d знаків." +msgstr[2] "Надто довго. Максимальний розмір допису — %d знаків." -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "Отримувача не знайдено." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -"Не можна надіслати пряме повідомлення користувачеві, який не є Вашим другом." +"Не можна надіслати пряме повідомлення користувачеві, який не є вашим другом." -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Не надсилайте повідомлень самому собі; поговоріть самі з собою тихенько, так " +"щоб ніхто не почув." + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Жодних статусів з таким ID." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 msgid "This status is already a favorite." msgstr "Цей статус вже є обраним." -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Не можна позначити як обране." -#: actions/apifavoritedestroy.php:123 +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." msgstr "Цей статус не є обраним." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "Не можна видалити зі списку обраних." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: profile not found." msgstr "Не вдалося додати користувача: користувача не знайдено." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "Не вдалося додати користувача: %s вже присутній у Вашому списку." +msgstr "Не вдалося додати користувача: %s вже присутній у вашому списку." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 msgid "Could not unfollow user: User not found." msgstr "Не вдалося відмінити підписку: користувача не знайдено." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." msgstr "Ви не можете відписатись від самого себе." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "Два ID або імені у мережі мають бути представлені." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "" +"Два чинних ID або двоє чинних імен користувачів (ніків) мають бути " +"представлені." -#: actions/apifriendshipsshow.php:134 +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." msgstr "Не вдалось встановити джерело користувача." -#: actions/apifriendshipsshow.php:142 +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." msgstr "Не вдалося знайти цільового користувача." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" -"Ім’я користувача повинно складатись з літер нижнього регістру і цифр, ніяких " -"інтервалів." - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "Це ім’я вже використовується. Спробуйте інше." -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Це недійсне ім’я користувача." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Веб-сторінка має недійсну URL-адресу." -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Повне ім’я задовге (255 знаків максимум)" +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." +msgstr "Повне ім’я надто довге (не більше 255 символів)." -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Description is too long (max %d chars)." -msgstr "Опис надто довгий (%d знаків максимум)." +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "Опис надто довгий (максимум — %d знак)." +msgstr[1] "Опис надто довгий (максимум — %d знаків)." +msgstr[2] "Опис надто довгий (максимум — %d знаків)." -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Розташування надто довге (255 знаків максимум)." +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "Розташування надто довге (не більше 255 символів)." -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "Забагато додаткових імен! Максимум становить %d." +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "Надто багато додаткових імен! Максимум становить %d." +msgstr[1] "Надто багато додаткових імен! Максимум становить %d." +msgstr[2] "Надто багато додаткових імен! Максимум становить %d." -#: actions/apigroupcreate.php:267 +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 #, php-format msgid "Invalid alias: \"%s\"." msgstr "Помилкове додаткове ім’я: «%s»." -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Додаткове ім’я «%s» вже використовується. Спробуйте інше." -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "Додаткове ім’я не може бути таким самим що й основне." -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." -msgstr "Групу не знайдено." +msgstr "Спільноту не знайдено." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." -msgstr "Ви вже є учасником цієї групи." +msgstr "Ви вже стоїте у цій спільноти." -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." -msgstr "Адмін цієї групи заблокував Вашу присутність в ній." +msgstr "Адміністратор спільноти заблокував ваш профіль." -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "Не вдалось долучити користувача %1$s до групи %2$s." +msgstr "Не вдалось долучити користувача %1$s до спільноти %2$s." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 msgid "You are not a member of this group." -msgstr "Ви не є учасником цієї групи." +msgstr "Ви не стоїте у цій спільноті." -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "Не вдалось видалити користувача %1$s з групи %2$s." +msgstr "Не вдалось видалити користувача %1$s зі спільноти %2$s." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, php-format msgid "%s's groups" -msgstr "%s групи" +msgstr "Спільноти %s" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, php-format msgid "%1$s groups %2$s is a member of." -msgstr "%1$s групи, в яких %2$s бере участь." +msgstr "Спільноти на %1$s, до яких долучився %2$s." -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "%s групи" +msgstr "Спільноти %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, php-format msgid "groups on %s" -msgstr "групи на %s" +msgstr "спільноти на %s" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "Збій при завантаженні." -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "Неправильний запит токену або його підтвердження." + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "Жодного параметру oauth_token не забезпечено." -#: actions/apioauthauthorize.php:106 -msgid "Invalid token." -msgstr "Невірний токен." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "Неправильний запит токену." -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "Токен запиту вже авторизовано." + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "" "Виникли певні проблеми з токеном поточної сесії. Спробуйте знов, будь ласка." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "Недійсне ім’я / пароль!" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "Помилка бази даних при видаленні користувача OAuth-додатку." - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "Помилка бази даних при додаванні користувача OAuth-додатку." - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" -"Токен запиту %s було авторизовано. Будь ласка, обміняйте його на токен " -"доступу." - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "Токен запиту %s було скасовано і відхилено." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "Помилка бази даних при додаванні параметру oauth_token_association." +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Несподіване представлення форми." -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" -msgstr "Запит на дозвіл під’єднатися до Вашого облікового запису" +msgstr "Запит на дозвіл під’єднатися до вашого облікового запису" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "Дозволити або заборонити доступ" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"Додаток запитує дозвіл на <strong>%3$s</strong> до вашого акаунту %4$s. Ви " +"повинні надавати дозвіл на доступ до вашого акаунту %4$s лише тим стороннім " +"додаткам, яким ви довіряєте." + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " "the ability to <strong>%3$s</strong> your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" -"Додаток <strong>%1$s</strong> від <strong>%2$s</strong> запитує дозвіл на " -"<strong>%3$s</strong> дані Вашого акаунту %4$s. Ви повинні надавати дозвіл " -"на доступ до Вашого акаунту %4$s лише тим стороннім додаткам, яким Ви " +"Додаток <strong>%1$s</strong> від <strong>%2$s</strong> запитує дозвіл на " +"<strong>%3$s</strong> дані вашого акаунту %4$s. Ви повинні надавати дозвіл " +"на доступ до вашого акаунту %4$s лише тим стороннім додаткам, яким ви " "довіряєте." -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "Акаунт" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Ім’я користувача" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Пароль" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "Відхилити" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Скасувати" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "Дозволити" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "Дозволити або заборонити доступ до Вашого облікового запису." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "Дозвіл на доступ до вашого облікового запису." -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "Авторизацію скасовано." + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "Запит токену %s було скасовано." + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "Ви успішно авторизували додаток" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" +"Будь ласка, поверніться до додатку і уведіть наступний код безпеки, аби " +"завершити процес." + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "Ви успішно авторизували додаток %s" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" +"Будь ласка, поверніться на %s і уведіть наступний код безпеки, аби завершити " +"процес." + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Цей метод потребує або НАПИСАТИ, або ВИДАЛИТИ." -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Ви не можете видалити статус іншого користувача." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Такого допису немає." -#: actions/apistatusesretweet.php:83 +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "Не можу повторити Ваш власний допис." +msgstr "Не можна повторювати власні дописи." -#: actions/apistatusesretweet.php:91 +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." msgstr "Цей допис вже повторено." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP спосіб не підтримується." + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "Не підтримується формат: %s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." msgstr "Статус видалено." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Не знайдено жодних статусів з таким ID." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "Можна видалити тільки у форматі Atom." + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Не можна видалити цей допис." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "Вилучене повідомлення %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "Клієнт мусить надати параметр «статус» зі значенням." -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 #, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Надто довго. Максимальний розмір допису — %d знаків." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "Надто довго. Максимальний розмір допису — %d знак." +msgstr[1] "Надто довго. Максимальний розмір допису — %d знаків." +msgstr[2] "Надто довго. Максимальний розмір допису — %d знаків." -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Не знайдено." +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "Початковий допис не знайдено." -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" +"Максимальна довжина допису становить %d знак, включно з URL-адресою " +"вкладення." +msgstr[1] "" +"Максимальна довжина допису становить %d знаків, включно з URL-адресою " +"вкладення." +msgstr[2] "" "Максимальна довжина допису становить %d знаків, включно з URL-адресою " "вкладення." -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." msgstr "Формат не підтримується." -#: actions/apitimelinefavorites.php:110 +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Обрані від %2$s" -#: actions/apitimelinefavorites.php:119 +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 #, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%1$s оновлення обраних від %2$s / %2$s." +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s, оновлення обраних дописів %2$s / %3$s." -#: actions/apitimelinementions.php:118 +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "Не вдалося створити веб-стрічку для спільноти — %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 #, php-format msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Оновленні відповіді %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s оновив цю відповідь на допис від %2$s / %3$s." -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s загальна стрічка" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s оновлення від усіх!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "Метод не виконується." + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, php-format msgid "Repeated to %s" msgstr "Повторено для %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, php-format msgid "Repeats of %s" msgstr "Повторення %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Дописи позначені з %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Оновлення позначені з %1$s на %2$s!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "Користувач може робити доповнення тільки до своєї власної хронології." + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Приймати лише AtomPub для веб-стрічок формату Atom." + +#: actions/apitimelineuser.php:310 +#, fuzzy +msgid "Atom post must not be empty." +msgstr "POST-запит Atom має бути записом формату Atom." + +#: actions/apitimelineuser.php:315 +#, fuzzy +msgid "Atom post must be well-formed XML." +msgstr "POST-запит Atom має бути записом формату Atom." + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "POST-запит Atom має бути записом формату Atom." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +#, fuzzy +msgid "Can only handle POST activities." +msgstr "Можливою є обробка лише для POST-запитів." + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, fuzzy, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "Неможливо опрацювати дії об’єкта типу «%s»" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Пошук дописів за змістом" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "Повідомлення з URI \"%s\" вже існує." + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "Запис AtomPub з невідомим цільовим URI %s" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API метод наразі знаходиться у розробці." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Сторінку не знайдено." + +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Немає такого профілю." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Не вдалося додати нову підписку." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +#, fuzzy +msgid "Can only handle Favorite activities." +msgstr "Можливою є обробка лише для POST-запитів." + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Можливою є обробка лише для POST-запитів." + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Невідомо" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Додати до обраних" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "Немає такого профілю." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Учасники спільноти %s" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Спільноти, до яких залучений %s" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +#, fuzzy +msgid "Can only handle Join activities." +msgstr "Можливою є обробка лише для POST-запитів." + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Невідомо" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Всі учасники" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Такого файлу немає." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Не можна видалити зі списку обраних." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Такої спільноти не існує." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Всі учасники" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP спосіб не підтримується." + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Немає такого профілю." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Ви не підписані до цього профілю." + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Не можу видалити самопідписку." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Люди підписані до %s" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +#, fuzzy +msgid "Can only handle Follow activities." +msgstr "Можливою є обробка лише для POST-запитів." + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Тип файлу не підтримується" + +#. TRANS: Client error displayed trying to get a non-existing attachment. #: actions/attachment.php:73 msgid "No such attachment." msgstr "Такого вкладення немає." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Немає імені." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Немає розміру." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Недійсний розмір." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Аватара" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." msgstr "Ви можете завантажити аватару. Максимальний розмір %s." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 msgid "User without matching profile." msgstr "Користувач без відповідного профілю." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Налаштування аватари" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригінал" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Перегляд" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" msgstr "Видалити" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "Завантажити" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "Втяти" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." msgstr "Жодного файлу не завантажено." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" -msgstr "Оберіть квадратну ділянку зображення, яка й буде Вашою автарою." +msgstr "Оберіть квадратну ділянку зображення, яка й буде вашою автарою." -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." -msgstr "Дані Вашого файлу десь загубились." +msgstr "Дані вашого файлу загублено." -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Аватару оновлено." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Оновлення аватари невдале." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." msgstr "Аватару видалено." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." msgstr "Цього користувача вже заблоковано." -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Блокувати користувача" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 "" "Впевнені, що бажаєте блокувати цього користувача? Позаяк, його буде " -"відписано від Вас, він не зможе підписатись до Вас у майбутньому і Ви більше " -"не отримуватимете жодних дописів від нього." +"відписано від вас, він не зможе підписатись до вас у майбутньому і ви більше " +"не отримуватимете жодних звісток від нього." #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" msgstr "Ні" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" msgstr "Не блокувати цього користувача" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "Так" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" msgstr "Блокувати користувача" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "Збереження інформації про блокування завершилось невдачею." -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." -msgstr "Такої групи немає." +msgstr "Такої спільноти не існує." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" msgstr "Заблоковані профілі %s" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Заблоковані профілі %1$s, сторінка %2$d" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." -msgstr "Список користувачів блокованих в цій групі." +msgstr "Список користувачів, котрих заблоковано в цій спільноті." -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" msgstr "Розблокувати користувача" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" msgstr "Розблокувати" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Розблокувати цього користувача" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 #, php-format msgid "Post to %s" msgstr "Опублікувати в %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Немає коду підтвердження." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Код підтвердження не знайдено." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" -msgstr "Цей код підтвердження не для Вас!" +msgstr "Цей код підтвердження не для вас!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." msgstr "Невизначений тип адреси %s." -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Цю адресу вже підтверджено." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Не вдалося оновити користувача." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Не вдалося видалити підтвердження поштової адреси." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "Не вдалося видалити адресу підтвердження." -#: actions/confirmaddress.php:146 +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" msgstr "Підтвердити адресу" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "Адресу «%s» підтверджено для Вашого акаунту." +msgstr "Адресу «%s» підтверджено для вашого акаунту." -#: actions/conversation.php:99 +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" msgstr "Розмова" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Дописи" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." msgstr "Ви маєте спочатку увійти, аби мати змогу видалити додаток." +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 msgid "Application not found." msgstr "Додаток не виявлено." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 msgid "You are not the owner of this application." msgstr "Ви не є власником цього додатку." -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." msgstr "Виникли певні проблеми з токеном поточної сесії." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" msgstr "Видалити додаток" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1027,51 +1715,111 @@ msgstr "" "додатку користувачів." #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 msgid "Do not delete this application" msgstr "Не видаляти додаток" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" msgstr "Видалити додаток" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "Ви повинні спочатку увійти на сайт, аби видалити спільноту." + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Немає імені або ІД." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "Вам не дозволено видаляти цю спільноту спільноту." + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "Не вдалося видалити спільноту %s." + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "Спільноту %s видалено" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "Видалити спільноту" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"Впевнені, що бажаєте видалити цю спільноту? Усі дані про спільноту будуть " +"видалені з бази даних без можливості відновлення. Публічні дописи до цієї " +"спільноти залишаться у стрічках дописів колишніх членів спільноти." + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "Не видаляти цю спільноту" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "Видалити спільноту" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не увійшли." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Не можна видалити цей допис." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 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 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Видалити допис" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Ви впевненні, що бажаєте видалити цей допис?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 msgid "Do not delete this notice" msgstr "Не видаляти цей допис" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" msgstr "Видалити допис" @@ -1102,62 +1850,71 @@ msgstr "Видалити цього користувача" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "Дизайн" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "Налаштування дизайну для цього сайту StatusNet." +msgid "Design settings for this StatusNet site" +msgstr "Налаштування дизайну для цього сайту StatusNet" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." msgstr "Помилкова URL-адреса логотипу." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "Невірний SSL або URL-адреса логотипу." + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." msgstr "Тема недоступна: %s." -#: actions/designadminpanel.php:426 +#: actions/designadminpanel.php:448 msgid "Change logo" msgstr "Змінити логотип" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" msgstr "Логотип сайту" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "Логотип сайту з SSL" + +#: actions/designadminpanel.php:469 msgid "Change theme" msgstr "Змінити тему" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" msgstr "Тема сайту" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "Тема для цього сайту." -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" msgstr "Своя тема" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "Ви можете завантажити свою тему для сайту StatusNet як .ZIP архів." -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" msgstr "Змінити фонове зображення" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" msgstr "Фон" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1167,75 +1924,84 @@ msgstr "" "%1$s." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "Увімк." #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "Вимк." -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "Увімкнути або вимкнути фонове зображення." -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" msgstr "Замостити фон" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" msgstr "Змінити кольори" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" msgstr "Зміст" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" -msgstr "Бічна панель" +msgstr "Сайдбар" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Текст" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" msgstr "Посилання" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "Додатково" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "Свій CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "За замовч." -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "Оновити налаштування за замовчуванням" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "Повернутись до початкових налаштувань" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Зберегти" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 msgid "Save design" msgstr "Зберегти дизайн" @@ -1252,109 +2018,131 @@ msgstr "Додати до обраних" msgid "No such document \"%s\"" msgstr "Немає такого документа «%s»" -#: actions/editapplication.php:54 -msgid "Edit Application" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" msgstr "Керувати додатками" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." msgstr "Ви маєте спочатку увійти, аби мати змогу керувати додатком." -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." msgstr "Такого додатку немає." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "Скористайтесь цією формою, щоб відредагувати додаток." -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." msgstr "Потрібне ім’я." -#: actions/editapplication.php:180 actions/newapplication.php:165 -msgid "Name is too long (max 255 chars)." -msgstr "Ім’я задовге (255 знаків максимум)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "Ім’я надто довге (не більше 255 знаків)." -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." msgstr "Це ім’я вже використовується. Спробуйте інше." -#: actions/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." msgstr "Потрібен опис." -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "URL-адреса надто довга." -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." msgstr "URL-адреса не є дійсною." -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "Потрібна організація." -#: actions/editapplication.php:206 actions/newapplication.php:191 -msgid "Organization is too long (max 255 chars)." -msgstr "Назва організації надто довга (255 знаків максимум)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "Назва організації надто довга (не більше 255 знаків)." -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "Потрібна домашня сторінка організації." -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "Форма зворотнього дзвінка надто довга." -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "URL-адреса для зворотнього дзвінка не є дійсною." -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." msgstr "Не вдалося оновити додаток." -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" -msgstr "Редагувати групу %s" +msgstr "Змінити властивості спільноти %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: 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:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." -msgstr "Ви маєте бути наділені правами адмінистратора, аби редагувати групу" +msgstr "" +"Ви маєте бути наділені правами адміністратора, аби відредагувати властивості " +"даної спільноти." -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." -msgstr "Скористайтесь цією формою, щоб відредагувати групу." +msgstr "Скористайтесь цією формою, щоб відредагувати властивості спільноти." -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, php-format -msgid "description is too long (max %d chars)." -msgstr "опис надто довгий (%d знаків максимум)." - -#: actions/editgroup.php:228 actions/newgroup.php:168 +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Помилкове додаткове ім’я: «%s»" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." -msgstr "Не вдалося оновити групу." +msgstr "Не вдалося оновити спільноту." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." msgstr "Неможна призначити додаткові імена." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "Опції збережено." @@ -1368,16 +2156,16 @@ msgstr "Налаштування пошти" #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "Зазначте, як саме Ви бажаєте отримувати листи з %%site.name%%." +msgstr "Зазначте, як саме ви бажаєте отримувати листи з %%site.name%%." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" msgstr "Електронна адреса" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Поточна підтверджена поштова адреса." @@ -1386,14 +2174,14 @@ msgstr "Поточна підтверджена поштова адреса." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "Видалити" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1401,25 +2189,19 @@ msgstr "" "Очікування підтвердження цієї адреси. Перевірте вхідну пошту (і теку зі " "спамом також!), там має бути повідомлення з подальшими інструкціями." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Скасувати" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "Електронна адреса, на зразок «UserName@example.org»" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" @@ -1427,165 +2209,178 @@ msgstr "Додати" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "Вхідна пошта" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Я хочу надсилати дописи поштою." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Надсилайте дописи на цю адресу і їх буде опубліковано на сайті." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Створити нову адресу для надсилання повідомлень; видалити стару." +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "Нове" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 +#: actions/emailsettings.php:208 msgid "Email preferences" msgstr "Преференції ел. пошти" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Поівдомляти мене поштою про нові підписки." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "Надсилати мені листа, коли хтось додає мій допис до списку обраних." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Надсилати мені листа, коли хтось має приватне повідомлення для мене." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Надсилати мені листа, коли на мій допис з’являється «@-відповідь»." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "Дозволити друзям «розштовхати» мене, надіславши мені листа." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Я хочу надсилати дописи поштою." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Позначати міткою MicroID мою електронну адресу." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 msgid "Email preferences saved." msgstr "Преференції пошти збережно." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Немає електронної адреси." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "Не можна полагодити цю поштову адресу" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Це недійсна електронна адреса." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." -msgstr "Це і є Вашою адресою." +msgstr "Це і є вашою адресою." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "Ця електронна адреса належить іншому користувачу." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Не вдалося додати код підтвердження." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" -"Код підтвердження був відправлений на електронну адресу, яку Ви додали. " +"Код підтвердження був відправлений на електронну адресу, яку ви зазначили. " "Перевірте вхідну пошту (і теку зі спамом також!), там має бути код та " "подальші інструкції." #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Не очікується підтвердження для скасування." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 msgid "That is the wrong email address." msgstr "Це помилкова адреса електронної пошти." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Не вдалося видалити підтвердження поштової адреси." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." msgstr "Підтвердження електронної пошти скасовано." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." -msgstr "Це не є Вашою адресою." +msgstr "Це не є вашою адресою." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 +#: actions/emailsettings.php:514 msgid "The email address was removed." msgstr "Адреса була видалена." -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "Немає адреси для вхідної пошти." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "Не вдалося оновити запис користувача." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "Адресу вхідної пошти видалено." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "Нову адресу для вхідних повідомлень додано." @@ -1593,11 +2388,11 @@ msgstr "Нову адресу для вхідних повідомлень до msgid "This notice is already a favorite!" msgstr "Цей допис вже є обраним!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" msgstr "Видалити з обраних" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 msgid "Popular notices" msgstr "Популярні дописи" @@ -1633,7 +2428,7 @@ msgstr "" "дописи до улюблених!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Обрані дописи %s" @@ -1680,7 +2475,7 @@ msgstr "Ця відповідь не очікується!" #: actions/finishremotesubscribe.php:80 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!" @@ -1688,7 +2483,7 @@ msgstr "Ви можете користуватись локальними під #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "Цей користувач заблокував Вашу можливість підписатись." +msgstr "Цей користувач позбавив вас можливості підписатись до нього." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." @@ -1702,7 +2497,7 @@ msgstr "Не вдалося перетворити токени запиту н msgid "Remote service uses unknown version of OMB protocol." msgstr "Невідома версія протоколу OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." msgstr "Помилка при оновленні віддаленого профілю." @@ -1730,38 +2525,42 @@ msgstr "Ви не можете надавати користувачеві жо msgid "User already has this role." msgstr "Користувач вже має цю роль." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "Не визначено жодного профілю." -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 msgid "No profile with that ID." msgstr "Не визначено профілю з таким ID." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: 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 msgid "User is already blocked from group." -msgstr "Користувача заблоковано в цій групі." +msgstr "Користувача заблоковано в цій спільноті." #: actions/groupblock.php:100 msgid "User is not a member of group." -msgstr "Користувач не є учасником групи." +msgstr "Користувач не є учасником спільноти." -#: actions/groupblock.php:134 actions/groupmembers.php:360 +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "Блокувати користувача в групі" +msgstr "Блокувати користувача у цій спільноті" #: actions/groupblock.php:160 #, php-format @@ -1770,23 +2569,23 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" -"Впевнені, що бажаєте блокувати користувача «%1$s» у групі «%2$s»? Його буде " -"позбавлено членства в групі, він не зможе сюди писати, і не зможе вступити " -"до групи знов." +"Впевнені, що бажаєте заблокувати користувача «%1$s» у спільноті «%2$s»? Його " +"буде позбавлено членства, він не зможе сюди писати, і не зможе вступити до " +"спільноти знов." #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 msgid "Do not block this user from this group" -msgstr "Не блокувати користувача в групі" +msgstr "Не блокувати користувача в спільноті" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 msgid "Block this user from this group" -msgstr "Блокувати користувача цієї групи" +msgstr "Заблокувати користувача в спільноті" #: actions/groupblock.php:206 msgid "Database error blocking user from group." -msgstr "Виникла помилка при блокуванні користувача в цій групі." +msgstr "Виникла помилка при блокуванні користувача в цій спільноті." #: actions/groupbyid.php:74 actions/userbyid.php:70 msgid "No ID." @@ -1794,22 +2593,25 @@ msgstr "Немає ID." #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "Ви маєте спочатку увійти, аби мати змогу редагувати групу." +msgstr "" +"Ви маєте спочатку увійти, аби мати змогу відредагувати властивості спільноти." #: actions/groupdesignsettings.php:144 msgid "Group design" -msgstr "Дизайн групи" +msgstr "Дизайн спільноти" #: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -"Налаштуйте вигляд сторінки групи, використовуючи фонове зображення і кольори " -"на свій смак." +"Налаштуйте вигляд сторінки спільноти, використовуючи фонове зображення і " +"кольори на свій смак." +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." msgstr "Не вдалося оновити дизайн." @@ -1819,19 +2621,27 @@ msgstr "Преференції дизайну збережно." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" -msgstr "Логотип групи" +msgstr "Логотип спільноти" #: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -"Ви маєте можливість завантажити логотип для Вашої группи. Максимальний " -"розмір файлу %s." +"Ви маєте можливість завантажити логотип для вашої спільноти. Максимальний " +"розмір файлу становить %s." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Завантажити" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "Втяти" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "Оберіть квадратну ділянку зображення, яка й буде логотипом групи." +msgstr "Оберіть квадратну ділянку зображення, яка й буде логотипом спільноти." #: actions/grouplogo.php:399 msgid "Logo updated." @@ -1841,49 +2651,56 @@ msgstr "Логотип оновлено." msgid "Failed updating logo." msgstr "Оновлення логотипу завершилось невдачею." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" -msgstr "Учасники групи %s" +msgstr "Учасники спільноти %s" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" -msgstr "Учасники групи %1$s, сторінка %2$d" +msgstr "Учасники спільноти %1$s, сторінка %2$d" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." -msgstr "Список учасників цієї групи." +msgstr "Список учасників цієї спільноти." -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "Адмін" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "Блок" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "Блокувати користувача" + +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "Надати користувачеві права адміністратора" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "Зробити адміном" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "Надати цьому користувачеві права адміністратора" -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, php-format -msgid "%s timeline" -msgstr "%s стрічка" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 #, php-format @@ -1893,12 +2710,12 @@ msgstr "Оновлення членів %1$s на %2$s!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: 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 "Групи, сторінка %d" +msgstr "Спільноти, сторінка %d" #: actions/groups.php:90 #, php-format @@ -1909,15 +2726,15 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" -"Групи на сайті %%%%site.name%%%% дозволять Вам відшукати людей зі спільними " -"інтересами. Лише приєднайтеся до групи і надсилайте повідомлення до усіх її " -"учасників використовуючи просту команду «!groupname» у тексті повідомлення. " -"Не бачите групу, яка Вас цікавить? Спробуйте її [знайти](%%%%action." -"groupsearch%%%%) або [створіть власну!](%%%%action.newgroup%%%%)" +"Спільноти на сайті %%%%site.name%%%% дозволять вам відшукати людей зі " +"схожими інтересами. Лише приєднайтеся до спільноти і надсилайте повідомлення " +"до усіх її учасників використовуючи просту команду «!groupname» у тексті " +"повідомлення. Не бачите спільноту, яка вас цікавить? Спробуйте її [знайти](%%" +"%%action.groupsearch%%%%) або [створіть власну!](%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 msgid "Create a new group" -msgstr "Створити нову групу" +msgstr "Створити нову спільноту" #: actions/groupsearch.php:52 #, php-format @@ -1925,13 +2742,13 @@ 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%% за їхньою назвою, розташуванням або описом. " +"Пошук спільнот на %%site.name%% за їхньою назвою, розташуванням або описом. " "Відокремлюйте пошукові умови інтервалами; вони повинні складатись з 3 знаків " "або більше." #: actions/groupsearch.php:58 msgid "Group search" -msgstr "Пошук груп" +msgstr "Пошук спільнот" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 @@ -1944,7 +2761,7 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" -"Якщо не можете відшукати групу, яка Вас цікавить, то [створіть](%%action." +"Якщо не можете відшукати спільноту, яка вас цікавить, то [створіть](%%action." "newgroup%%) власну." #: actions/groupsearch.php:85 @@ -1953,18 +2770,21 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" -"Чому б не [зареєструватись](%%action.register%%) і не [створити](%%action." -"newgroup%%) свою власну групу!" +"Чому б не [зареєструватись](%%action.register%%) і не [започаткувати](%%" +"action.newgroup%%) свою власну спільноту!" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." -msgstr "Лише адміни можуть розблокувати членів групи." +msgstr "Лише адміністратори можуть розблокувати учасників спільноти." -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." msgstr "Користувача не блоковано." -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." msgstr "Помилка при розблокуванні." @@ -2010,11 +2830,14 @@ msgid "" msgstr "" "Очікування підтвердження цієї адреси. Перевірте свій Jabber/GTalk акаунт, " "туди має надійти повідомлення з подальшими інструкціями. (Ви додали %s до " -"Вашого списку контактів?)" +"вашого списку контактів?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2025,96 +2848,96 @@ msgstr "" "GTalk." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "Преференції ІМ" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Повідомляти мене через Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Надсилати дописи на сайт, коли мій статус Jabber/GTalk змінюється." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Надсилати також мені відповіді через Jabber/GTalk від людей, до яких я не " "підписаний." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Позначати міткою MicroID мою адресу Jabber/GTalk." #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Преференції збережно." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Немає Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Не можна полагодити цей Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Це недійсний Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." -msgstr "Це і є Ваш Jabber ID." +msgstr "Це і є ваш Jabber ID." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID вже належить іншому користувачу." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." msgstr "" -"Код підтвердження був відправлений на адресу IM, яку Ви додали. Ви повинні " -"затведити %s для відправлення вам повідомлень." +"Код підтвердження був відправлений на адресу IM, яку ви зазначили. Ви " +"повинні затвердити %s для відправлення вам повідомлень." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Це помилкова адреса IM." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." msgstr "Не вдалося видалити підтвердження ІМ." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "Підтвердження ІМ скасовано." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "Це не Ваш Jabber ID." +msgstr "Це не ваш Jabber ID." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "Адреса ІМ була видалена." @@ -2131,96 +2954,139 @@ msgstr "Вхідні для %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" -"Це Ваші вхідні повідомлення, тут містяться повідомлення надіслані приватно." +"Це ваші вхідні повідомлення, тут містяться повідомлення надіслані приватно." -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "Запрошення були скасовані." -#: actions/invite.php:41 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format msgid "You must be logged in to invite other users to use %s." msgstr "Ви маєте спочатку увійти, аби мати змогу запросити когось до %s." -#: actions/invite.php:72 +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 #, php-format -msgid "Invalid email address: %s" -msgstr "Недійсна електронна адреса: %s" +msgid "Invalid email address: %s." +msgstr "Неправильна електронна адреса: %s." -#: actions/invite.php:110 -msgid "Invitation(s) sent" +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" msgstr "Запрошення надіслано" -#: actions/invite.php:112 +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Запросити нових користувачів" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Ви вже підписані до цих користувачів:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "Ви вже підписані до цього користувача:" +msgstr[1] "Ви вже підписані до цих користувачів:" +msgstr[2] "Ви вже підписані до цих користувачів:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "Ці люди вже є користувачами і Вас було автоматично підписано до них:" +msgstr[0] "" +"Ця особа вже є користувачем і вас було автоматично підписано до неї:" +msgstr[1] "" +"Ці люди вже є користувачами і вас було автоматично підписано до них:" +msgstr[2] "" +"Ці люди вже є користувачами і вас було автоматично підписано до них:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Запрошення були надіслани наступним особам:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "Запрошення було надіслано наступній особі:" +msgstr[1] "Запрошення були надіслані наступним особам:" +msgstr[2] "Запрошення були надіслані наступним особам:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 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 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -"Скористайтесь цією формою аби запросити Ваших друзів та колег до нашого " +"Скористайтесь цією формою, аби запросити ваших друзів та колег до нашого " "сервісу." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Електронні адреси" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" "Адреси друзів куди надсилатимуться запрошення (кожна адреса окремим рядком)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Особисті повідомлення" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "Можна додати персональне повідомлення до запрошення (опціонально)." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" msgstr "Надіслати" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s запросив(ла) Вас приєднатися до нього(неї) на %2$s" +msgstr "%1$s запросив(ла) вас приєднатися до нього(неї) на %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2250,12 +3116,12 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s запросив(ла) Вас приєднатися до нього(неї) на %2$s (%3$s).\n" +"%1$s запросив(ла) вас приєднатися до нього(неї) на %2$s (%3$s).\n" "\n" -"%2$s — це сервіс мікроблоґів що дозволяє Вам знаходитись у курсі подій, які " -"відбуваються з Вашими знайомими і тими особами, якими Ви цікавитесь.\n" +"%2$s — це сервіс мікроблоґів що дозволяє вам знаходитись у курсі подій, які " +"відбуваються з вашими знайомими і тими особами, якими ви цікавитесь.\n" "\n" -"Також Ви маєте можливість ділитись новинами про себе, своїми думками, " +"Також ви маєте можливість ділитись новинами про себе, своїми думками, " "подіями у житті, розміщуючи все це у режимі «онлайн» для своїх знайомих та " "друзів. А ще це чудовий спосіб зустріти нових друзів зі спільними " "інтересами.\n" @@ -2268,7 +3134,7 @@ msgstr "" "\n" "%5$s\n" "\n" -"Якщо Ви виявили бажання спробувати користуватись даним сервісом, то " +"Якщо ви виявили бажання спробувати користуватись даним сервісом, то " "перейдіть за посиланням внизу, аби погодитись із запрошенням.\n" "\n" "%6$s\n" @@ -2276,41 +3142,140 @@ msgstr "" "Якщо ж ні, то просто проігноруйте це повідомлення. Дякуємо за розуміння та " "витрачений час.\n" "\n" -"Щиро Ваші, %2$s\n" +"Щиро ваші, %2$s\n" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "Ви повинні спочатку увійти на сайт, аби приєднатися до групи." +msgstr "Ви повинні спочатку увійти на сайт, аби долучитися до спільноти." -#: actions/joingroup.php:88 actions/leavegroup.php:88 -msgid "No nickname or ID." -msgstr "Немає імені або ІД." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "%1$s приєднався до групи %2$s" +msgstr "%1$s приєднався до спільноти %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." -msgstr "Ви повинні спочатку увійти на сайт, аби залишити групу." +msgstr "Ви повинні спочатку увійти на сайт, аби залишити спільноту." -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." -msgstr "Ви не є учасником цієї групи." +msgstr "Ви не є учасником цієї спільноти." -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" -msgstr "%1$s залишив групу %2$s" +msgstr "%1$s залишив спільноту %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "Ліцензія" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "Ліцензія для цього сайту StatusNet" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "Невірний вибір ліцензії." + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" +"Ви повинні зазначити власника змісту повідомлень, якщо збираєтесь " +"використовувати варіант «Всі права захищені»." + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "Помилкова назва ліцензії. Максимальна довжина — 255 символів." + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "Помилкова URL-адреса ліцензії." + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "Помилкова URL-адреса логотипу ліцензії." + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "Адреса ліцензії має бути порожньою або містити коректний URL." + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "Адреса логотипу ліцензії має бути порожньою або містити коректний URL." + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "Вибір ліцензії" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "Приватно" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "Всі права захищені." + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "Кріейтів Комонс" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "Тип" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "Оберіть ліцензію" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "Подробиці ліцензії" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "Власник" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "Ім’я власника усього змісту на сайті (якщо він є)." + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "Назва ліцензії" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "Назва ліцензії." + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "URL-адреса ліцензії" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "URL-адреса додаткової інформації щодо ліцензії." + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "URL-адреса логотипу ліцензії" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "URL-адреса зображення (логотипу) для показу поруч з ліцензією" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "Зберегти налаштування ліцензії" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." -msgstr "Тепер Ви увійшли." +msgstr "Тепер ви увійшли." #: actions/login.php:148 msgid "Incorrect username or password." @@ -2318,7 +3283,7 @@ msgstr "Неточне ім’я або пароль." #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "Помилка. Можливо, Ви не авторизовані." +msgstr "Помилка. Можливо, ви не авторизовані." #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2328,11 +3293,11 @@ msgstr "Увійти" msgid "Login to site" msgstr "Вхід на сайт" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Пам’ятати мене" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Автоматично входити у майбутньому; не для комп’ютерів загального " @@ -2365,88 +3330,100 @@ msgstr "" #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." msgstr "" -"Лише користувач з правами адміністратора може призначити інших адмінів групи." +"Лише користувач з правами адміністратора може призначати інших " +"адміністраторів спільноти." #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "%1$s вже є адміном у групі «%2$s»." +msgstr "%1$s вже є адміністратором спільноти «%2$s»." #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Не можна отримати запис для %1$s щодо членства у групі %2$s." +msgstr "" +"Не можна отримати запис для %1$s щодо його перебування у спільноті %2$s." #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Не можна надати %1$s права адміна в групі %2$s." +msgstr "Не можна надати %1$s права адміністратора у спільноті %2$s." #: actions/microsummary.php:69 msgid "No current status." msgstr "Жодного поточного статусу." +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" +msgid "New application" msgstr "Новий додаток" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." msgstr "Ви маєте спочатку увійти, аби мати змогу зареєструвати додаток." -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "Скористайтесь цією формою, щоб зареєструвати новий додаток." -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "Потрібна URL-адреса." -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." msgstr "Не вдалося створити додаток." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" -msgstr "Нова група" +msgstr "Нова спільнота" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "Скористайтесь цією формою для створення нової групи." +msgstr "Скористайтесь цією формою для створення нової спільноти." -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "Нове повідомлення" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "Ви не можете надіслати повідомлення цьому користувачеві." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Немає змісту!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "Жодного отримувача не визначено." -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" "Не надсилайте повідомлень самому собі; краще поговоріть із собою вголос." -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 msgid "Message sent" msgstr "Повідомлення надіслано" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, php-format msgid "Direct message to %s sent." msgstr "Пряме повідомлення для %s надіслано." -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Помилка в Ajax" @@ -2454,7 +3431,7 @@ msgstr "Помилка в Ajax" msgid "New notice" msgstr "Новий допис" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "Допис надіслано" @@ -2474,7 +3451,7 @@ msgstr "Пошук текстів" #: actions/noticesearch.php:91 #, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Результати пошуку на запит «%1$s» на %2$s" +msgstr "Результати пошуку «%1$s» на сайті %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2506,7 +3483,8 @@ msgstr "Всі оновлення за збігом з «%s» на %2$s!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" "Цей користувач не дозволив себе «розштовхувати», або не підтвердив чи не " "налаштував преференції електронної пошти." @@ -2519,73 +3497,101 @@ msgstr "Спробу «розштовхати» зараховано" msgid "Nudge sent!" msgstr "Спробу «розштовхати» зараховано!" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "Ви повинні увійти, аби переглянути список Ваших додатків." +msgstr "Ви повинні увійти, аби переглянути список ваших додатків." -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "Додатки OAuth" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "Додатки, які Ви зареєстрували" +msgstr "Додатки, які ви зареєстрували" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "Поки що Ви не зареєстрували жодних додатків." +msgstr "Поки що ви не зареєстрували жодних додатків." -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "Під’єднані додатки" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "" -"Ви маєте дозволити наступним додаткам доступ до Вашого облікового запису." +msgid "The following connections exist for your account." +msgstr "Наступні з’єднання вже існують для вашого профілю." -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." msgstr "Ви не є користувачем даного додатку." -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." -msgstr "Не вдалося скасувати доступ для додатку: %s." +msgid "Unable to revoke access for application: %s." +msgstr "Неможливо скасувати доступ для додатку: %s." -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" +"Ви успішно відкликали дозвіл для додатку %1$s, токен доступу починається з %2" +"$s." + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "Ви не дозволили жодним додаткам використовувати Ваш акаунт." +msgstr "Ви не дозволили жодним додаткам використовувати ваш акаунт." -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " -msgstr "Розробники можуть змінити налаштування реєстрації для їхніх додатків " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." +msgstr "" +"Ви — розробник? [Зареєструйте клієнтський додаток OAuth](%s) щоб " +"користуватися ним на даному сайті StatusNet." #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." msgstr "Допис не має профілю." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s має статус на %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." msgstr "Тип змісту %s не підтримується." #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "URL-адреса %s лише в простому HTTP, будь ласка." #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -2597,37 +3603,46 @@ msgstr "Пошук людей" msgid "Notice Search" msgstr "Пошук дописів" -#: actions/othersettings.php:60 +#: actions/othersettings.php:59 msgid "Other settings" msgstr "Інші опції" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "Керування деякими іншими опціями." -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr " (вільний сервіс)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "Скорочення URL" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "Доступні сервіси." -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" msgstr "Переглядати дизайн користувачів" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "Показувати або приховувати дизайни сторінок окремих користувачів." -#: actions/othersettings.php:153 -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Сервіс скорочення URL-адрес надто довгий (50 знаків максимум)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "Сервіс скорочення URL-адрес надто довгий (50 символів максимум)." #: actions/otp.php:69 msgid "No user ID specified." @@ -2662,7 +3677,7 @@ msgstr "Вихідні для %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" -"Це Ваші вихідні повідомлення, тут містяться повідомлення, які Ви надіслали " +"Це ваші вихідні повідомлення, тут містяться повідомлення, які ви надіслали " "приватно." #: actions/passwordsettings.php:58 @@ -2690,7 +3705,7 @@ msgid "6 or more characters" msgstr "6 або більше знаків" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Підтвердити" @@ -2702,11 +3717,11 @@ msgstr "Такий само, як і пароль вище" msgid "Change" msgstr "Змінити" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "Пароль має складатись з 6-ти або більше знаків." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Паролі не співпадають." @@ -2726,156 +3741,273 @@ msgstr "Неможна зберегти новий пароль." msgid "Password saved." msgstr "Пароль збережено." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "Шлях" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "Шлях та налаштування серверу для цього сайту StatusNet." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "Параметри серверу та шляху для даного сайту StatusNet" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." msgstr "Директорію теми не можна прочитати: %s." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." msgstr "Директорія аватарів не доступна для запису: %s." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." msgstr "Директорія фонових зображень не доступна для запису:% s." -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." msgstr "Не можна прочитати директорію локалі: %s." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Помилковий SSL-сервер. Максимальна довжина 255 знаків." -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" msgstr "Сайт" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" msgstr "Сервер" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "Ім’я хосту сервера на якому знаходиться сайт." -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "Шлях" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "Шлях до сайту" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "Шлях до сайту." -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "Шлях до локалей" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "Директорія локалі" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "Директорія шляху до локалей" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "Шлях до директорії локалей." -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "Надзвичайні URL-адреси" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "Використовувати надзвичайні (найбільш пам’ятні і визначні) URL-адреси?" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "Тема" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "Сервер теми" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "Сервер для тем." -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "Шлях до теми" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "Шлях до тем." -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "Директорія теми" - -#: actions/pathsadminpanel.php:279 -msgid "Avatars" -msgstr "Аватари" - -#: actions/pathsadminpanel.php:284 -msgid "Avatar server" -msgstr "Сервер аватари" - -#: actions/pathsadminpanel.php:288 -msgid "Avatar path" -msgstr "Шлях до аватари" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "Директорія аватари" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "Фони" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "Сервер фонів" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "Шлях до фонів" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "Директорія фонів" - -#: actions/pathsadminpanel.php:320 -msgid "SSL" -msgstr "SSL-шифрування" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -msgid "Never" -msgstr "Ніколи" - -#: actions/pathsadminpanel.php:324 -msgid "Sometimes" -msgstr "Іноді" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "Завжди" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "Використовувати SSL" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "Тоді використовувати SSL" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 msgid "SSL server" msgstr "SSL-сервер" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "Сервер на який направляти SSL-запити" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL-сервер для тем (за замовчуванням: SSL-сервер)." -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "Шлях з SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL-шлях до тем (за замовчуванням: /theme/)." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "Директорія" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "Директорія, в якій знаходяться теми." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +msgid "Avatars" +msgstr "Аватари" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +msgid "Avatar server" +msgstr "Сервер аватари" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "Сервер для аватар." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "Шлях до аватари" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "Шлях до аватар." + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "Директорія аватари" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "Директорія, в якій знаходяться аватари." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "Фони" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "Сервер для фонових зображень." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "Шлях до фонових зображень." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "Сервер для фонових зображень на захищених SSL-сторінках." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "Шлях до фонових зображень на захищених SSL-сторінках." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "Директорія, в якій знаходяться фонові зображення." + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "Вкладення" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "Сервер для вкладень." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "Шлях до вкладень." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "Сервер для вкладень на захищених SSL-сторінках." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "Шлях до вкладень на захищених SSL-сторінках." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "Директорія, в якій знаходяться вкладення." + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL-шифрування" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Ніколи" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "Іноді" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "Завжди" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "Використовувати SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "Коли використовувати SSL." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "Сервер на який направляти SSL-запити." + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" msgstr "Зберегти шляхи" @@ -2901,7 +4033,7 @@ msgstr "Це недійсний особистий теґ: %s." #: actions/peopletag.php:142 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "Користувачі з особистим теґом %1$s — сторінка %2$d" +msgstr "Користувачі з особистим теґом «%1$s» — сторінка %2$d" #: actions/postnotice.php:95 msgid "Invalid notice content." @@ -2912,140 +4044,183 @@ msgstr "Недійсний зміст допису." msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Ліцензія допису «%1$s» є несумісною з ліцензією сайту «%2$s»." -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Налаштування профілю" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" -"Ви можете заповнити свій особистий профіль і люди знатимуть про Вас більше." +"Ви можете заповнити свій особистий профіль і люди знатимуть про вас більше." -#: actions/profilesettings.php:99 +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" msgstr "Інформація профілю" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" -"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1-64 рядкових літер і цифр, ніякої пунктуації або інтервалів." -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Повне ім’я" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Веб-сторінка" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL-адреса Вашої веб-сторінки, блоґу, або профілю на іншому сайті" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "URL-адреса вашої веб-сторінки, блоґу, або профілю на іншому сайті." -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Опишіть себе та свої інтереси (%d знаків)" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "Опишіть себе та свої інтереси вкладаючись у %d символ" +msgstr[1] "Опишіть себе та свої інтереси інтереси вкладаючись у %d символів" +msgstr[2] "Опишіть себе та свої інтереси інтереси вкладаючись у %d символів" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" msgstr "Опишіть себе та свої інтереси" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Про себе" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Розташування" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "Де Ви живете, на кшталт «Місто, область (регіон), країна»" +msgstr "Де ви живете, на кшталт «Місто, область (регіон), країна»" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "Показувати моє місцезнаходження при надсиланні дописів" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Теґи" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Позначте себе теґами (літери, цифри, -, . та _), відокремлюючи кожен комою " "або пробілом" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Мова" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Мова, котрій надаєте перевагу" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Часовий пояс" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "За яким часовим поясом Ви живете?" +msgstr "За яким часовим поясом ви живете?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Автоматично підписуватись до тих, хто підписався до мене. (Слава роботам!)" -#: actions/profilesettings.php:228 actions/register.php:230 +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 #, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Ви перевищили ліміт (%d знаків максимум)." +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "Біографія надто довга (не більше %d символу)." +msgstr[1] "Біографія надто довга (не більше %d символів)." +msgstr[2] "Біографія надто довга (не більше %d символів)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Часовий пояс не обрано." -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." -msgstr "Мова задовга (50 знаків максимум)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "Мова надто довга (не більше 50 символів)." -#: actions/profilesettings.php:253 actions/tagother.php:178 +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Недійсний теґ: «%s»" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." msgstr "Не вдалося оновити користувача для автопідписки." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." msgstr "Не вдалося зберегти налаштування розташування." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Не вдалося зберегти профіль." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." msgstr "Не вдалося зберегти теґи." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Налаштування збережено." @@ -3124,25 +4299,38 @@ msgstr "" "Мікроблогінг), який працює на вільному програмному забезпеченні [StatusNet]" "(http://status.net/)." +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 msgid "Public tag cloud" msgstr "Загальна хмарка теґів" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "Це найбільш популярні нові теґи на %s " +msgid "These are most popular recent tags on %s" +msgstr "Це найбільш популярні нові теґи на %s" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "Поки що ніхто не використовував теґ [hashtag](%%doc.tags%%)." -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "Станьте першим! Напишіть щось!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " @@ -3151,7 +4339,7 @@ msgstr "" "Чому б не [зареєструватись](%%%%action.register%%%%) і не написати щось " "цікаве!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "Хмарка теґів" @@ -3189,7 +4377,7 @@ msgid "" "the email address you have stored in your account." msgstr "" "Якщо загубите або втратите свій пароль, його буде легко відновити за " -"допомогою електронної адреси, яку Ви вказали у власному профілі." +"допомогою електронної адреси, яку ви зазначили у власному профілі." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " @@ -3257,30 +4445,30 @@ msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." msgstr "" -"Інструкції з відновлення паролю було надіслано на електронну адресу, яку Ви " -"вказали у налаштуваннях Вашого профілю." +"Інструкції з відновлення паролю було надіслано на електронну адресу, яку ви " +"вказали у налаштуваннях вашого профілю." #: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Несподіване скидання паролю." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." +msgid "Password must be 6 characters or more." msgstr "Пароль має складатись з 6-ти або більше знаків." #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Пароль та підтвердження не співпадають." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Помилка в налаштуваннях користувача." #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." -msgstr "Новий пароль успішно збережено. Тепер Ви увійшли." +msgstr "Новий пароль успішно збережено. Тепер ви увійшли." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" "Пробачте, але лише ті, кого було запрошено, мають змогу зареєструватись тут." @@ -3293,7 +4481,7 @@ msgstr "Даруйте, помилка у коді запрошення." msgid "Registration successful" msgstr "Реєстрація успішна" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Реєстрація" @@ -3301,19 +4489,19 @@ msgstr "Реєстрація" msgid "Registration not allowed." msgstr "Реєстрацію не дозволено." -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Ця адреса вже використовується." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Недійсне ім’я або пароль." -#: actions/register.php:350 +#: actions/register.php:351 msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " @@ -3321,66 +4509,70 @@ msgstr "" "Ця форма дозволить вам створити новий акаунт. Ви зможете робити дописи і " "будете в курсі справ ваших друзів та колег. " -#: actions/register.php:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 літери нижнього регістра і цифри, ніякої пунктуації або інтервалів. " "Неодмінно." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "6 або більше знаків. Неодмінно." -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Такий само, як і пароль вище. Неодмінно." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Пошта" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Використовується лише для оновлень, оголошень та відновлення паролю" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" -msgstr "Повне ім’я, звісно ж Ваше справжнє ім’я :)" +msgstr "Повне ім’я, звісно ж ваше справжнє ім’я" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL-адреса вашої веб-сторінки, блоґу, або профілю на іншому сайті" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "Я розумію, що зміст і дані %1$s є приватними і конфіденційними." -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "Авторські права на мої тексти і файли належать %1$s." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "Авторські права на мої тексти і файли залишаються за мною." #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "Всі права захищені." #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" -"Мої тексти і файли доступні під %s, окрім цих приватних даних: пароль, " +"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " "електронна адреса, адреса IM, телефонний номер." -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3398,28 +4590,28 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Вітаємо, %1$s! І ласкаво просимо до %%%%site.name%%%%. Звідси Ви зможете...\n" +"Вітаємо, %1$s! І ласкаво просимо до %%%%site.name%%%%. Звідси ви зможете...\n" "\n" -"*Подивитись [Ваш профіль](%2$s) та зробити свій перший допис.\n" +"*Подивитись [ваш профіль](%2$s) та зробити свій перший допис.\n" "*Додати [адресу Jabber/GTalk](%%%%action.imsettings%%%%), аби мати змогу " "надсилати дописи через службу миттєвих повідомлень.\n" -"*[Розшукати людей](%%%%action.peoplesearch%%%%), які мають спільні з Вами " +"*[Розшукати людей](%%%%action.peoplesearch%%%%), які мають спільні з вами " "інтереси.\n" "*Оновити [налаштування профілю](%%%%action.profilesettings%%%%), аби інші " -"могли знати про Вас більше.\n" -"*Прочитати [додаткову інформацію](%%%%doc.help%%%%), аби переконатись, що Ви " +"могли знати про вас більше.\n" +"*Прочитати [додаткову інформацію](%%%%doc.help%%%%), аби переконатися, що ви " "нічого не пропустили. \n" "\n" -"Дякуємо, що зареєструвались у нас, і, сподіваємось, Вам сподобається наш " +"Дякуємо, що зареєструвались у нас, і, сподіваємось, вам сподобається наш " "сервіс." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" msgstr "" "(Ви маєте негайно отримати листа електронною поштою, в якому знаходитимуться " -"інструкції щодо підтвердження Вашої електронної адреси.)" +"інструкції щодо підтвердження вашої електронної адреси.)" #: actions/remotesubscribe.php:98 #, php-format @@ -3428,9 +4620,9 @@ 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.register%%) новий акаунт. Якщо Ви вже маєте акаунт на [сумісному " -"сайті](%%doc.openmublog%%), введіть URL-адресу Вашого профілю нижче." +"Щоб підписатись, ви можете [увійти](%%action.login%%), або [зареєструвати](%%" +"action.register%%) новий акаунт. Якщо ви вже маєте акаунт на [сумісному " +"сайті](%%doc.openmublog%%), введіть URL-адресу вашого профілю нижче." #: actions/remotesubscribe.php:112 msgid "Remote subscribe" @@ -3446,7 +4638,7 @@ msgstr "Ім’я користувача" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "Ім’я користувача за яким Ви бажаєте слідувати" +msgstr "Ім’я користувача, дописи якого ви хотіли б читати." #: actions/remotesubscribe.php:133 msgid "Profile URL" @@ -3454,10 +4646,10 @@ msgstr "URL-адреса профілю" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL-адреса Вашого профілю на іншому сумісному сервісі" +msgstr "URL-адреса вашого профілю на іншому сумісному сервісі" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Підписатись" @@ -3488,13 +4680,13 @@ 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 "Ви вже повторили цей допис." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" msgstr "Повторено" @@ -3503,7 +4695,7 @@ msgid "Repeated!" msgstr "Повторено!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Відповіді до %s" @@ -3544,7 +4736,7 @@ msgid "" "[join groups](%%action.groups%%)." msgstr "" "Ви можете долучити інших користувачів до спілкування, підписавшись до " -"більшої кількості людей або [приєднавшись до груп](%%action.groups%%)." +"більшої кількості людей або [приєднавшись до спільноти](%%action.groups%%)." #: actions/replies.php:206 #, php-format @@ -3582,13 +4774,13 @@ msgstr "Користувача ізольовано доки наберетьс #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "Сесії" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "Налаштування сесії для цього сайту StatusNet." +msgid "Session settings for this StatusNet site" +msgstr "Налаштування сесії для даного сайту StatusNet" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3607,7 +4799,6 @@ msgid "Turn on debugging output for sessions." msgstr "Виводити дані сесії наладки." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зберегти налаштування сайту" @@ -3620,28 +4811,29 @@ msgid "Application profile" msgstr "Профіль додатку" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "Іконка" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 msgid "Name" msgstr "Ім’я" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" msgstr "Організація" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Статистика" @@ -3659,6 +4851,11 @@ msgstr "Можливості додатку" msgid "Reset key & secret" msgstr "Призначити новий ключ і таємне слово" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Видалити" + #: actions/showapplication.php:261 msgid "Application info" msgstr "Інфо додатку" @@ -3693,7 +4890,7 @@ msgstr "" #: actions/showapplication.php:309 msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Ви впевнені, що бажаєте скинути Ваш ключ споживача і таємну фразу?" +msgstr "Ви впевнені, що бажаєте скинути ваш ключ споживача і секретний код?" #: actions/showfavorites.php:79 #, php-format @@ -3725,7 +4922,7 @@ msgid "" "notices you like to bookmark them for later or shed a spotlight on them." msgstr "" "Ви поки що не відмітили жодних дописів. Натисніть на відповідну кнопку у " -"дописі який Ви вподобали, аби повернутись до нього пізніше, або звернути на " +"дописі який ви вподобали, аби повернутись до нього пізніше, або звернути на " "нього увагу інших." #: actions/showfavorites.php:208 @@ -3734,7 +4931,7 @@ msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" msgstr "" -"%s поки що не вподобав жодного допису. Може Ви б написали йому щось " +"%s поки що не вподобав жодного допису. Може ви написали б йому щось " "цікаве? :)" #: actions/showfavorites.php:212 @@ -3752,77 +4949,104 @@ msgstr "" msgid "This is a way to share what you like." msgstr "Це спосіб поділитись з усіма тим, що вам подобається." -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" -msgstr "Група %s" +msgstr "Спільнота %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, php-format msgid "%1$s group, page %2$d" -msgstr "Група %1$s, сторінка %2$d" +msgstr "Спільнота %1$s, сторінка %2$d" -#: actions/showgroup.php:227 +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Профіль групи" +msgstr "Профіль спільноти" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" msgstr "Зауваження" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "Додаткові імена" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" -msgstr "Діяльність групи" +msgstr "Дії спільноти" -#: actions/showgroup.php:338 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 #, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Стрічка дописів групи %s (RSS 1.0)" +msgstr "Стрічка дописів спільноти %s (RSS 1.0)" -#: actions/showgroup.php:344 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 #, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Стрічка дописів групи %s (RSS 2.0)" +msgstr "Стрічка дописів спільноти %s (RSS 2.0)" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Стрічка дописів групи %s (Atom)" +msgstr "Стрічка дописів спільноти %s (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" -msgstr "FOAF для групи %s" +msgstr "FOAF спільноти %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Учасники" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Пусто)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "Всі учасники" -#: actions/showgroup.php:439 +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" msgstr "Створено" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "Учасники" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3831,14 +5055,17 @@ 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%%%% — сервісі [мікроблоґів](http://uk." +"**%s** це спільнота на %%%%site.name%%%% — сервісі [мікроблоґів](http://uk." "wikipedia.org/wiki/Мікроблогінг), який працює на вільному програмному " -"забезпеченні [StatusNet](http://status.net/). Члени цієї групи роблять " -"короткі дописи про своє життя та інтереси. [Приєднуйтесь](%%%%action.register" -"%%%%) зараз і долучіться до спілкування! ([Дізнатися більше](%%%%doc.help%%%" -"%))" +"забезпеченні [StatusNet](http://status.net/). Учасники цієї спільноти " +"роблять короткі дописи про своє життя та інтереси. [Приєднуйтесь](%%%%action." +"register%%%%) зараз і долучіться до спілкування! ([Дізнатися більше](%%%%doc." +"help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3846,29 +5073,36 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" -"**%s** це група користувачів на %%%%site.name%%%% — сервісі [мікроблоґів]" +"**%s** це спільнота користувачів на %%%%site.name%%%% — сервісі [мікроблоґів]" "(http://uk.wikipedia.org/wiki/Мікроблогінг), який працює на вільному " -"програмному забезпеченні [StatusNet](http://status.net/). Члени цієї групи " -"роблять короткі дописи про своє життя та інтереси. " +"програмному забезпеченні [StatusNet](http://status.net/). Учасники цієї " +"спільноти роблять короткі дописи про своє життя та інтереси. " -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "Адміни" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Немає такого повідомлення." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "Лише відправник та отримувач мають можливість читати це повідомлення." -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "Повідомлення до %1$s на %2$s" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "Повідомлення від %1$s на %2$s" @@ -3877,47 +5111,67 @@ msgstr "Повідомлення від %1$s на %2$s" msgid "Notice deleted." msgstr "Допис видалено." -#: actions/showstream.php:73 +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 #, php-format -msgid " tagged %s" -msgstr " позначено з %s" +msgid "%1$s tagged %2$s" +msgstr "Дописи %1$s позначені теґом %2$s" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "Дописи %1$s позначені теґом %2$s, сторінка %3$d" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, php-format msgid "%1$s, page %2$d" msgstr "%1$s, сторінка %2$d" -#: actions/showstream.php:122 +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 #, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Стрічка дописів %1$s з теґом %2$s (RSS 1.0)" +msgstr "Стрічка дописів %1$s з теґом «%2$s» (RSS 1.0)" -#: actions/showstream.php:129 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 1.0)" msgstr "Стрічка дописів для %s (RSS 1.0)" -#: actions/showstream.php:136 +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 #, php-format msgid "Notice feed for %s (RSS 2.0)" msgstr "Стрічка дописів для %s (RSS 2.0)" -#: actions/showstream.php:143 +#: actions/showstream.php:152 #, php-format msgid "Notice feed for %s (Atom)" msgstr "Стрічка дописів для %s (Atom)" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, php-format msgid "FOAF for %s" msgstr "FOAF для %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "Це стрічка дописів %1$s, але %2$s ще нічого не написав." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "Це стрічка дописів %1$s, але %1$s ще нічого не написав." -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" @@ -3925,7 +5179,9 @@ msgstr "" "Побачили щось цікаве нещодавно? Ви ще нічого не написали і це слушна нагода " "аби розпочати! :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" @@ -3934,7 +5190,9 @@ msgstr "" "Ви можете «розштовхати» %1$s або [щось йому написати](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3945,10 +5203,12 @@ msgstr "" "**%s** користується %%%%site.name%%%% — сервісом [мікроблоґів](http://uk." "wikipedia.org/wiki/Мікроблогінг), який працює на вільному програмному " "забезпеченні [StatusNet](http://status.net/). [Приєднуйтесь](%%%%action." -"register%%%%) зараз і слідкуйте за дописами **%s**, також на Вас чекає " +"register%%%%) зараз і слідкуйте за дописами **%s**, також на вас чекає " "багато іншого! ([Дізнатися більше](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3959,7 +5219,8 @@ msgstr "" "(http://uk.wikipedia.org/wiki/Мікроблогінг), який працює на вільному " "програмному забезпеченні [StatusNet](http://status.net/). " -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, php-format msgid "Repeat of %s" msgstr "Повторення за %s" @@ -4009,7 +5270,7 @@ msgstr "Назва сайту" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "Назва Вашого сайту, щось на зразок «Мікроблоґи компанії ...»" +msgstr "Назва сайту, щось на зразок «Мікроблоґи компанії...»" #: actions/siteadminpanel.php:229 msgid "Brought by" @@ -4029,7 +5290,7 @@ msgstr "URL використаний для посілань кредитів у #: actions/siteadminpanel.php:239 msgid "Contact email address for your site" -msgstr "Контактна електронна адреса для Вашого сайту" +msgstr "Контактна електронна адреса для вашого сайту" #: actions/siteadminpanel.php:245 msgid "Local" @@ -4063,7 +5324,7 @@ msgstr "Текстові обмеження" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "Максимальна кількість знаків у дописі." +msgstr "Максимальна кількість знаків у дописі (0 — необмежено)." #: actions/siteadminpanel.php:278 msgid "Dupe limit" @@ -4075,32 +5336,39 @@ msgstr "" "Як довго користувачі мають зачекати (в секундах) аби надіслати той самий " "допис ще раз." -#: actions/sitenoticeadminpanel.php:56 +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" msgstr "Повідомлення сайту" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" msgstr "Змінити повідомлення сайту" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." msgstr "Не вдається зберегти повідомлення сайту." -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "Максимальна довжина повідомлення сайту становить 255 символів." +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 msgid "Site notice text" msgstr "Текст повідомлення" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" "Текст повідомлення сайту (255 символів максимум; деякий HTML дозволено)" -#: actions/sitenoticeadminpanel.php:198 +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" msgstr "Зберегти повідомлення сайту" @@ -4144,7 +5412,7 @@ msgstr "Код підтвердження" #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." -msgstr "Введіть код, який Ви отримали телефоном." +msgstr "Введіть код, який ви отримали телефоном." #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 @@ -4194,7 +5462,7 @@ msgstr "Оператора не обрано." #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 msgid "That is already your phone number." -msgstr "Це і є Ваш телефонний номер." +msgstr "Це і є ваш телефонний номер." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 @@ -4207,7 +5475,7 @@ 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 "" -"Код підтвердження був відправлений на телефонний номер, який Ви додали. " +"Код підтвердження був відправлений на телефонний номер, який ви зазначили. " "Перевірте вхідні повідомлення, там має бути код та подальші інструкції." #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. @@ -4224,7 +5492,7 @@ msgstr "Підтвердження SMS скасовано." #. TRANS: registered for the active user. #: actions/smssettings.php:448 msgid "That is not your phone number." -msgstr "Це не Ваш телефонний номер." +msgstr "Це не ваш телефонний номер." #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 @@ -4249,9 +5517,9 @@ 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 "" -"Оператор мобільного зв’язку. Якщо Вам відомий оператор, що підтримує " +"Оператор мобільного зв’язку. Якщо вам відомий оператор, що підтримує " "надсилання СМС через електронну пошту, але він тут не вказаний, напишіть нам " -"і ми внесемо його до списку." +"на %s і ми внесемо його до списку." #. TRANS: Message given saving SMS phone number confirmation code without having provided one. #: actions/smssettings.php:548 @@ -4260,7 +5528,7 @@ msgstr "Код не введено" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "Снепшоти" @@ -4316,12 +5584,14 @@ msgstr "Снепшоти надсилатимуться на цю URL-адрес msgid "Save snapshot settings" msgstr "Зберегти налаштування знімку" -#: actions/subedit.php:70 +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." msgstr "Ви не підписані до цього профілю." +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." msgstr "Не вдалося зберегти підписку." @@ -4329,79 +5599,96 @@ msgstr "Не вдалося зберегти підписку." msgid "This action only accepts POST requests." msgstr "Ця дія приймає лише запити POST." -#: actions/subscribe.php:107 -msgid "No such profile." -msgstr "Немає такого профілю." - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Цією дією Ви не зможете підписатися до віддаленого профілю OMB 0.1." +msgstr "Цією дією ви не зможете підписатися до віддаленого профілю OMB 0.1." #: actions/subscribe.php:145 msgid "Subscribed" msgstr "Підписані" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, php-format msgid "%s subscribers" msgstr "Підписані до %s" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, php-format msgid "%1$s subscribers, page %2$d" -msgstr "Підписчики %1$s, сторінка %2$d" +msgstr "Підписані до %1$s, сторінка %2$d" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." -msgstr "Тут представлені ті, хто слідкує за Вашими дописами." +msgstr "Тут представлені ті, хто слідкує за вашими дописами." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Тут представлені ті, хто слідкує за дописами від %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -"Ви не маєте підписчиків. Спробуйте підписатись до когось і, можливо, до Вас " +"Ви не маєте читачів. Спробуйте підписатись до когось і, можливо, до вас " "підпишуться навзаєм." -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "%s ще не має підписчиків. Будете першим?" +msgstr "%s ще не має читачів. Будете першим?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -"%s ще не має підписчиків. Чому б не [зареєструватись](%%%%action.register%%%" -"%) і не стати першим?" +"%s ще не має пчитачів. Чому б не [зареєструватись](%%%%action.register%%%%) " +"і не стати першим?" -#: actions/subscriptions.php:52 -#, php-format -msgid "%s subscriptions" -msgstr "Підписки %s" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Підписки %1$s, сторінка %2$d" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." -msgstr "Тут представлені ті, за чиїми дописами Ви слідкуєте." +msgstr "Тут представлені ті, за чиїми дописами ви слідкуєте." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Тут представлені ті, за чиїми дописами слідкує %s." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4411,22 +5698,33 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" "Ви не слідкуєте за жодним з дописувачів, спробуйте підписатись до тих, кого " -"Ви знаєте. Спробуйте [розшукати людей](%%action.peoplesearch%%), роздивіться " -"серед членів груп, які Вас цікавлять, або прогляньте список [користувачів " -"вартих уваги](%%action.featured%%). Якщо Ви користуєтесь [Твіттером](%%" -"action.twittersettings%%), то можете автоматично підписатись до людей, за " -"якими слідкуєте там." +"ви знаєте. Спробуйте [розшукати людей](%%action.peoplesearch%%), роздивіться " +"серед учасників спільнот, які вас цікавлять, або прогляньте список " +"[користувачів вартих уваги](%%action.featured%%). Якщо ви користуєтесь " +"[Twitter](%%action.twittersettings%%), то можете автоматично підписатись до " +"людей, за якими слідкуєте там." -#: actions/subscriptions.php:128 actions/subscriptions.php:132 +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 #, php-format msgid "%s is not listening to anyone." msgstr "%s не відслідковує нічого" -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Стрічка дописів для %s (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "СМС" @@ -4464,7 +5762,7 @@ msgid "User profile" msgstr "Профіль користувача." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "Фото" @@ -4484,8 +5782,8 @@ msgstr "" msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" -"Ви маєте можливість позначати теґами тих, до кого Ви підписані, а також тих, " -"хто є підписаним до Вас." +"Ви маєте можливість позначати теґами тих, до кого ви підписані, а також тих, " +"хто є підписаним до вас." #: actions/tagother.php:200 msgid "Could not save tags." @@ -4493,7 +5791,7 @@ msgstr "Не вдалося зберегти теґи." #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "Скористайтесь цією формою, щоб додати теґи підпискам та підписчикам." +msgstr "Скористайтесь цією формою, щоб додати теґи своїм підпискам та читачам." #: actions/tagrss.php:35 msgid "No such tag." @@ -4526,75 +5824,95 @@ msgid "" msgstr "Ліцензія «%1$s» не відповідає ліцензії сайту «%2$s»." #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "Користувач" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "Власні налаштування користувача для цього сайту StatusNet." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "Налаштування користувача даного сайту StatusNet" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "Помилкове обмеження біо. Це мають бути цифри." -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "Помилковий текст привітання. Максимальна довжина 255 знаків." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "Помилковий текст привітання. Максимальна довжина — 255 символів." -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "Помилкова підписка за замовчуванням: «%1$s» не є користувачем." #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Профіль" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "Обмеження біо" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "Максимальна довжина біо користувача в знаках." +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 msgid "New users" msgstr "Нові користувачі" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "Привітання нового користувача" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "Текст привітання нових користувачів (255 знаків)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "Текст привітання нових користувачів (не більше 255 символів)." -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" msgstr "Підписка за замовчуванням" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." msgstr "Автоматично підписувати нових користувачів до цього користувача." -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 msgid "Invitations" msgstr "Запрошення" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 msgid "Invitations enabled" msgstr "Запрошення скасовано" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" "В той чи інший спосіб дозволити користувачам вітати нових користувачів." +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "Зберегти налаштування користувача" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Авторизувати підписку" @@ -4605,11 +5923,13 @@ msgid "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" -"Будь ласка, перевірте всі деталі, щоб упевнитись, що Ви дійсно бажаєте " -"підписатись на дописи цього користувача. Якщо Ви не збирались підписуватись " -"ні на чиї дописи, просто натисніть «Відмінити»." +"Будь ласка, перевірте всі деталі, щоб упевнитись, що ви дійсно бажаєте " +"підписатись на дописи цього користувача. Якщо ви не збирались підписуватись " +"ні до чиїх дописів, просто натисніть «Відмінити»." +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "Ліцензія" @@ -4697,11 +6017,13 @@ msgstr "Не можна прочитати URL аватари «%s»." msgid "Wrong image type for avatar URL ‘%s’." msgstr "Неправильний тип зображення для URL-адреси аватари «%s»." -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" msgstr "Дизайн профілю" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4717,22 +6039,23 @@ msgstr "Поласуйте бутербродом!" #: actions/usergroups.php:66 #, php-format msgid "%1$s groups, page %2$d" -msgstr "Групи %1$s, сторінка %2$d" +msgstr "Спільноти %1$s, сторінка %2$d" #: actions/usergroups.php:132 msgid "Search for more groups" -msgstr "Шукати групи ще" +msgstr "Пошук інших спільнот" #: actions/usergroups.php:159 #, php-format msgid "%s is not a member of any group." -msgstr "%s не є учасником жодної групи." +msgstr "%s не є учасником жодної спільноти." #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -"Спробуйте [знайти якісь групи](%%action.groupsearch%%) і приєднайтеся до них." +"Спробуйте [знайти якісь спільноти](%%action.groupsearch%%) і приєднайтеся до " +"них." #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -4740,7 +6063,7 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "Оновлення від %1$s на %2$s!" @@ -4770,10 +6093,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" -"StatusNet є вільним програмним забезпеченням: Ви можете розповсюджувати та/" +"StatusNet є вільним програмним забезпеченням: ви можете розповсюджувати та/" "або змінювати його відповідно до умов GNU Affero General Public License, що " "їх було опубліковано Free Software Foundation, 3-тя версія ліцензії або (на " -"Ваш розсуд) будь-яка подальша версія. " +"ваш розсуд) будь-яка подальша версія. " #: actions/version.php:176 msgid "" @@ -4793,7 +6116,7 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" -"Разом з програмою Ви маєте отримати копію ліцензійних умов GNU Affero " +"Разом з програмою ви маєте отримати копію ліцензійних умов GNU Affero " "General Public License. Якщо ні, перейдіть на %s." #: actions/version.php:191 @@ -4801,7 +6124,7 @@ msgid "Plugins" msgstr "Додатки" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 msgid "Version" msgstr "Версія" @@ -4809,66 +6132,120 @@ msgstr "Версія" msgid "Author(s)" msgstr "Автор(и)" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "Обрати" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s додав(ла) ваш допис %2$s до обраних." + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "Неможливо обробити URL «%s»" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "Робін вважає, що це неможливо." #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" -"Ні, файл не може бути більшим за %d байтів, а те, що Ви хочете надіслати, " -"важить %d байтів. Спробуйте завантажити меншу версію." +msgstr[0] "" +"Файл не може бути більшим за %1$d байт, а те, що ви хочете надіслати, важить " +"%2$d байтів. Спробуйте завантажити меншу версію." +msgstr[1] "" +"Файл не може бути більшим за %1$d байтів, а те, що ви хочете надіслати, " +"важить %2$d байтів. Спробуйте завантажити меншу версію." +msgstr[2] "" +"Файл не може бути більшим за %1$d байтів, а те, що ви хочете надіслати, " +"важить %2$d байтів. Спробуйте завантажити меншу версію." #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "Розміри цього файлу перевищують Вашу квоту на %d байтів." +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "Розміри цього файлу перевищують вашу квоту у %d байт." +msgstr[1] "Розміри цього файлу перевищують вашу квоту у %d байтів." +msgstr[2] "Розміри цього файлу перевищують вашу квоту у %d байтів." #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "Розміри цього файлу перевищують Вашу місячну квоту на %d байтів." +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "Розміри цього файлу перевищують вашу місячну квоту у %d байт." +msgstr[1] "Розміри цього файлу перевищують вашу місячну квоту у %d байтів." +msgstr[2] "Розміри цього файлу перевищують вашу місячну квоту у %d байтів." #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." msgstr "Невірне ім’я файлу." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "Не вдалося приєднатись до групи." +msgstr "Не вдалося приєднатися до спільноти." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 msgid "Not part of group." -msgstr "Не є частиною групи." +msgstr "Не є частиною спільноти." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 msgid "Group leave failed." -msgstr "Не вдалося залишити групу." +msgstr "Не вдалося залишити спільноту." + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "Ід. номер профілю %s не є дійсним." + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "Ідентифікатор спільноти %s є недійсним." + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "Приєднатись" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s долучився до спільноти %2$s." #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 msgid "Could not update local group." -msgstr "Не вдається оновити локальну групу." +msgstr "Не вдається оновити локальну спільноту." #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. @@ -4883,17 +6260,17 @@ msgid "No database name or DSN found anywhere." msgstr "Немає імені бази даних або DSN ніде не знайдено" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 +#: classes/Message.php:45 msgid "You are banned from sending direct messages." msgstr "Вам заборонено надсилати прямі повідомлення." #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "Не можна долучити повідомлення." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." msgstr "Не можна оновити повідомлення з новим URI." @@ -4905,23 +6282,23 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "Немає такого профілю (%1$d) для повідомлення (%2$d)." #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 +#: classes/Notice.php:193 #, php-format msgid "Database error inserting hashtag: %s" msgstr "Помилка бази даних при додаванні хеш-теґу: %s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." msgstr "Проблема при збереженні допису. Надто довге." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." msgstr "Проблема при збереженні допису. Невідомий користувач." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" @@ -4929,7 +6306,7 @@ msgstr "" "повертайтесь за кілька хвилин." #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4938,43 +6315,57 @@ msgstr "" "повертайтесь за кілька хвилин." #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "Вам заборонено надсилати дописи до цього сайту." #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Проблема при збереженні допису." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "Задається невірний тип для saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "Вказано невірний тип для saveKnownGroups." #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 msgid "Problem saving group inbox." -msgstr "Проблема при збереженні вхідних дописів для групи." +msgstr "Проблема при збереженні вхідних дописів спільноти." + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "Не вдалося зберегти відповідь для %1$d, %2$d." #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1645 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "Не вдалося скасувати роль «%s» для користувача #%2$s; не існує." #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -4986,301 +6377,343 @@ msgid "Missing profile." msgstr "Загублений профіль." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 msgid "Unable to save tag." msgstr "Не вдається зберегти теґ." #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "Вас позбавлено можливості підписатись." #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 msgid "Already subscribed!" msgstr "Вже підписаний!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 msgid "User has blocked you." -msgstr "Користувач заблокував Вас." +msgstr "Користувач заблокував вас." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 msgid "Not subscribed!" msgstr "Не підписано!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." msgstr "Не можу видалити самопідписку." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." msgstr "Не вдається видалити токен підписки OMB." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 +#: classes/Subscription.php:223 msgid "Could not delete subscription." msgstr "Не вдалося видалити підписку." +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "Слідкувати" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s тепер слідкує за %2$s." + #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "Користувача для однокористувацького режиму не визначено." + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "Код для однокористувацького режиму називається, коли не ввімкнуто." + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." -msgstr "Не вдалося створити нову групу." +msgstr "Не вдалося створити нову спільноту." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Не вдалося встановити URI групи." +msgstr "Не вдалося встановити URI спільноти." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 +#: classes/User_group.php:544 msgid "Could not set group membership." msgstr "Не вдалося встановити членство." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Не вдалося зберегти інформацію про локальну групу." +msgstr "Не вдалося зберегти інформацію про локальну спільноту." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Змінити налаштування профілю" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" msgstr "Завантаження аватари" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" -msgstr "Змінити Ваш пароль" +msgstr "Змінити пароль" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Змінити електронну адресу" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "Дизайн Вашого профілю" +msgstr "Дизайн вашого профілю" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "Інші опції" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "Інше" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 +#: lib/action.php:148 #, php-format msgid "%1$s - %2$s" msgstr "%1$s — %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "Сторінка без заголовку" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "Розгорнути" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "Відправна навігація по сайту" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Персональний профіль і стрічка друзів" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "Особисте" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Змінити електронну адресу, аватару, пароль, профіль" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Акаунт" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "З’єднання з сервісами" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "З’єднання" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Змінити конфігурацію сайту" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "Адмін" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "Запросіть друзів та колег приєднатись до Вас на %s" +msgstr "Запросіть друзів та колег приєднатись до вас на %s" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "Запросити" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Вийти з сайту" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" msgstr "Вийти" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Створити новий акаунт" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Реєстрація" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Увійти на сайт" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "Увійти" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Допоможіть!" -#: lib/action.php:497 +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "Довідка" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пошук людей або текстів" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "Пошук" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" msgstr "Об’яви на сайті" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "Огляд" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 msgid "Page notice" msgstr "Зауваження сторінки" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 msgid "Secondary site navigation" msgstr "Другорядна навігація по сайту" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Допомога" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Про" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "ЧаП" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "Умови" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Приватність" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Джерело" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Контакт" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" msgstr "Бедж" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "Ліцензія програмного забезпечення StatusNet" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5290,13 +6723,16 @@ msgstr "" "site.broughtbyurl%%)." #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** — це сервіс мікроблоґів." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5308,346 +6744,453 @@ msgstr "" "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 msgid "Site content license" msgstr "Ліцензія змісту сайту" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Зміст і дані %1$s є приватними і конфіденційними." #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Авторські права на зміст і дані належать %1$s. Всі права захищено." #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторські права на зміст і дані належать розробникам. Всі права захищено." -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "Весь зміст і дані %1$s доступні на умовах ліцензії %2$s." #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "Нумерація сторінок" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 msgid "After" msgstr "Вперед" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" msgstr "Назад" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" "В очікуванні кореневого елементу веб-стрічки, отримали цілий документ XML." -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "Фото" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "Поки що не можу обробити віддалений контент." -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "Поки що не можу обробити вбудований XML контент." -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "Поки що не можу обробити вбудований контент Base64." #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "Ви не можете щось змінювати на цьому сайті." #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "Для цієї панелі зміни не припустимі." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "showForm() не виконано." #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "saveSettings() не виконано." #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "Немає можливості видалити налаштування дизайну." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" msgstr "Основна конфігурація сайту" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 msgid "Design configuration" msgstr "Конфігурація дизайну" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" msgstr "Дизайн" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "Конфігурація користувача" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "Користувач" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 msgid "Access configuration" msgstr "Прийняти конфігурацію" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 msgid "Paths configuration" msgstr "Конфігурація шляху" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" msgstr "Конфігурація сесій" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 +#: lib/adminpanelaction.php:385 msgid "Edit site notice" msgstr "Редагувати повідомлення сайту" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" msgstr "Конфігурація знімків" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "Зазначте ліцензію сайту" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурс вимагає дозвіл типу «читання-запис», але у вас є лише доступ для " "читання." -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "Керувати додатками" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "Немає додатків для даного споживчого ключа." + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "Токен погодження невірний." + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "Немає користувача для цього токену." + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "Не вдалося автентифікувати вас." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "Не вдалося створити анонімного споживача." + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "Не вдалося створити анонімний додаток OAuth." + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "Не вдалося знайти профіль і додаток, пов’язаний з токеном запиту." + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "Не вдалося видати токен доступу." + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "Помилка бази даних при додаванні користувача OAuth-додатку." + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "Спроба скасувати невідомий токен." + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "Не вдалося видалити скасований токен." #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "Іконка для цього додатку" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "Опишіть додаток, вкладаючись у %d знаків" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "Опишіть ваш додаток, вкладаючись у %d знак" +msgstr[1] "Опишіть ваш додаток, вкладаючись у %d знаків" +msgstr[2] "Опишіть ваш додаток, вкладаючись у %d знаків" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Опишіть Ваш додаток" +msgstr "Опишіть ваш додаток" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" msgstr "URL-адреса веб-сторінки цього додатку" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 msgid "Source URL" msgstr "URL-адреса" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "Організація, відповідальна за цей додаток" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" msgstr "URL-адреса веб-сторінки організації" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "URL-адреса, на яку перенаправляти після автентифікації" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "Браузер" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "Десктоп" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "Тип додатку, браузер або десктоп" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "Лише читання" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "Читати-писати" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" "Дозвіл за замовчуванням для цього додатку: лише читання або читати-писати" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Скасувати" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " від " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "читання/запис" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "лише читання" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "Підтверджено доступ %1$s — «%2$s»." +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Токен доступу починається з: %s" + #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" msgstr "Відкликати" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "Вкладення" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "елемент author повинен містити елемент name." #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "Автор" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 +#: lib/attachmentlist.php:308 msgid "Provider" msgstr "Провайдер" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "Дописи, до яких прикріплено це вкладення" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "Теґи для цього вкладення" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -msgid "Password changing failed" -msgstr "Не вдалося змінити пароль" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "Не вдалося змінити пароль." -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "Змінювати пароль не дозволено" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "Змінювати пароль не дозволено." -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "Блок" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "Результати команди" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "Помилка AJAX" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "Команду виконано" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "Команду не виконано" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "Такого допису не існує" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "Допису з таким id не існує." -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "Користувач не має останнього допису" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "Користувач не має останнього допису." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, php-format -msgid "Could not find a user with nickname %s" -msgstr "Не вдалося знайти користувача з іменем %s" +msgid "Could not find a user with nickname %s." +msgstr "Не вдалося знайти користувача з ім’ям %s." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 +#: lib/command.php:148 #, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Не вдалося знайти локального користувача з іменем %s" +msgid "Could not find a local user with nickname %s." +msgstr "Користувача з нікнеймом %s на даному сайті не знайдено." -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "Даруйте, але виконання команди ще не завершено." -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Гадаємо, користі від «розштовхування» самого себе небагато, чи не так?!" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, php-format -msgid "Nudge sent to %s" -msgstr "Спробу «розштовхати» %s зараховано" +msgid "Nudge sent to %s." +msgstr "Спробу «розштовхати» %s зараховано." -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5655,210 +7198,258 @@ msgid "" "Notices: %3$s" msgstr "" "Підписки: %1$s\n" -"Підписчики: %2$s\n" +"Підписані: %2$s\n" "Дописи: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." msgstr "Допис позначено як обраний." -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "Ви вже є учасником цієї групи." - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Не вдалось долучити користувача %1$s до групи %2$s." +msgid "%1$s joined group %2$s." +msgstr "%1$s приєднався до спільноти %2$s." -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Не вдалось видалити користувача %1$s з групи %2$s" +msgid "%1$s left group %2$s." +msgstr "%1$s залишив спільноту %2$s." + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "Повне ім’я: %s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "Розташування: %s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "Веб-сторінка: %s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "Про мене: %s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -"%s — це віддалений профіль; Ви можете надсилати приватні повідомлення лише " +"%s — це віддалений профіль; ви можете надсилати приватні повідомлення лише " "користувачам одного з вами сервісу." -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" -"Повідомлення надто довге — максимум становить %1$d символів, Ви надсилаєте %2" -"$d" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Повідомлення надто довге, максимум становить %1$d символ, натомість ви " +"надсилаєте %2$d." +msgstr[1] "" +"Повідомлення надто довге, максимум становить %1$d символів, натомість ви " +"надсилаєте %2$d." +msgstr[2] "" +"Повідомлення надто довге, максимум становить %1$d символів, натомість ви " +"надсилаєте %2$d." -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "Пряме повідомлення для %s надіслано." - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "Помилка при відправці прямого повідомлення." -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "Не можу повторити Ваш власний допис" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "Цей допис вже повторили" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, php-format -msgid "Notice from %s repeated" -msgstr "Допис %s повторили" +msgid "Notice from %s repeated." +msgstr "Допису від %s вторували." -#: lib/command.php:531 +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." msgstr "Помилка при повторенні допису." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Допис надто довгий — максимум %d знаків, а ви надсилаєте %d" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Допис надто довгий, максимум становить %1$d символ, ви надсилаєте %2$d." +msgstr[1] "" +"Допис надто довгий, максимум становить %1$d символів, ви надсилаєте %2$d." +msgstr[2] "" +"Допис надто довгий, максимум становить %1$d символів, ви надсилаєте %2$d." -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, php-format -msgid "Reply to %s sent" -msgstr "Відповідь до %s надіслано" +msgid "Reply to %s sent." +msgstr "Відповідь для %s надіслано." -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." msgstr "Проблема при збереженні допису." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "Зазначте ім’я користувача, до якого бажаєте підписатись" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "Зазначте ім’я користувача, до якого бажаєте підписатись." -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." msgstr "Не можу підписатись до профілю OMB за командою." -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "Підписано до %s" +msgid "Subscribed to %s." +msgstr "Тепер ви підписані на дописи %s." -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "Зазначте ім’я користувача, від якого бажаєте відписатись" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "Зазначте ім’я користувача, від якого бажаєте відписатись." -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "Відписано від %s" +msgid "Unsubscribed from %s." +msgstr "Підписку на дописи від %s скасовано." -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "Виконання команди ще не завершено." -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." msgstr "Сповіщення вимкнуто." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "Не можна вимкнути сповіщення." -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." msgstr "Сповіщення увімкнуто." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "Не можна увімкнути сповіщення." -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "Команду входу відключено" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "Команду входу відключено." -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -"Це посилання можна використати лише раз, воно дійсне протягом 2 хвилин: %s" +"Дане посилання можна використати лише раз, воно дійсне протягом 2 хвилин: %s." -#: lib/command.php:761 +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 #, php-format -msgid "Unsubscribed %s" -msgstr "Відписано %s" +msgid "Unsubscribed %s." +msgstr "Підписку %s скасовано." -#: lib/command.php:778 +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." msgstr "Ви не маєте жодних підписок." -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ви підписані до цієї особи:" msgstr[1] "Ви підписані до цих людей:" msgstr[2] "Ви підписані до цих людей:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." -msgstr "До Вас ніхто не підписаний." +msgstr "Ніхто до вас не підписаний." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Ця особа є підписаною до Вас:" -msgstr[1] "Ці люди підписані до Вас:" -msgstr[2] "Ці люди підписані до Вас:" +msgstr[0] "Ця особа є підписаною до вас:" +msgstr[1] "Ці люди підписані до вас:" +msgstr[2] "Ці люди підписані до вас:" -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." -msgstr "Ви не є учасником жодної групи." +msgstr "Ви не залучені до жодної спільноти." -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "Ви є учасником групи:" -msgstr[1] "Ви є учасником таких груп:" -msgstr[2] "Ви є учасником таких груп:" +msgstr[0] "Ви є учасником спільноти:" +msgstr[1] "Ви є учасником таких спільнот:" +msgstr[2] "Ви є учасником таких спільнот:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5904,9 +7495,9 @@ msgstr "" "off — вимкнути сповіщення\n" "help — список команд\n" "follow <nickname> — підписатись до користувача\n" -"groups — групи, до яких Ви входите\n" -"subscriptions — користувачі, до яких Ви підписані\n" -"subscribers — користувачі, які підписані до Вас\n" +"groups — спільноти, до яких ви входите\n" +"subscriptions — користувачі, до яких ви підписані\n" +"subscribers — користувачі, які підписані до вас\n" "leave <nickname> — відписатись від користувача\n" "d <nickname> <text> — надіслати особисте повідомлення\n" "get <nickname> — отримати останній допис користувача\n" @@ -5915,9 +7506,9 @@ msgstr "" "fav #<notice_id> — додати допис до обраних\n" "reply #<notice_id> — відповісти на допис\n" "reply <nickname> — відповісти на останній допис користувача\n" -"join <group> — приєднатися до групи\n" -"login — отримати посилання для входу у веб-інтерфейс\n" -"drop <group> — залишити групу\n" +"join <group> — приєднатися до спільноти\n" +"login — отримати посилання входу до веб-інтерфейсу\n" +"drop <group> — залишити спільноту\n" "stats — отримати статистику\n" "stop — те саме що і 'off'\n" "quit — те саме що і 'off'\n" @@ -5935,50 +7526,72 @@ msgstr "" "tracks — наразі не виконується\n" "tracking — наразі не виконується\n" -#: lib/common.php:135 -msgid "No configuration file found. " -msgstr "Файлу конфігурації не знайдено. " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "Файл конфігурації не знайдено." -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "Шукав файли конфігурації в цих місцях: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "Пошук файлів конфігурації проводився тут:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "Запустіть файл інсталяції, аби полагодити це." -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "Іти до файлу інсталяції." -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "ІМ" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Оновлення за допомогою служби миттєвих повідомлень (ІМ)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "СМС" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Оновлення через СМС" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 +msgctxt "MENU" msgid "Connections" msgstr "З’єднання" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "Авторизовані під’єднані додатки" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "Помилка бази даних" -#: lib/designsettings.php:105 +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" msgstr "Завантажити файл" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5986,41 +7599,57 @@ msgstr "" "Ви можете завантажити власне фонове зображення. Максимальний розмір файлу " "становить 2Мб." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "Увімк." + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "Вимк." + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "Скинути" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "Дизайн за замовчуванням відновлено." -#: lib/disfavorform.php:114 lib/disfavorform.php:140 +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" msgstr "Видалити з обраних" -#: lib/favorform.php:114 lib/favorform.php:140 +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" msgstr "Позначити як обране" -#: lib/favorform.php:140 -msgid "Favor" -msgstr "Обрати" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "Експорт даних" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Веб-стрічки" #: lib/galleryaction.php:121 msgid "Filter tags" @@ -6051,74 +7680,139 @@ msgstr "Вперед" msgid "Grant this user the \"%s\" role" msgstr "Надати цьому користувачеві роль «%s»" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + #: lib/groupeditform.php:163 -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL-адреса веб-сторінки, блоґу групи, або тематичного блоґу" +msgid "URL of the homepage or blog of the group or topic." +msgstr "URL-адреса веб-сторінки або тематичного блоґу спільноти" #: lib/groupeditform.php:168 msgid "Describe the group or topic" -msgstr "Опишіть групу або тему" +msgstr "Опишіть спільноту або тему" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Опишіть групу або тему, вкладаючись у %d знаків" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "Опишіть спільноту або тему, вкладаючись у %d знак" +msgstr[1] "Опишіть спільноту або тему, вкладаючись у %d знаків" +msgstr[2] "Опишіть спільноту або тему, вкладаючись у %d знаків" -#: lib/groupeditform.php:179 +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Розташування групи, на кшталт «Місто, область (або регіон), країна»" - -#: lib/groupeditform.php:187 -#, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -"Додаткові імена для групи, відокремлювати комами або пробілами, максимум %d" +"Розташування спільноти, на кшталт «Місто, область (або регіон), країна»." -#: lib/groupnav.php:85 +#: lib/groupeditform.php:190 +#, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" +"Додаткові імена для спільноти, відокремлювати комами або пробілами, максимум " +"— %d ім’я." +msgstr[1] "" +"Додаткові імена для спільноти, відокремлювати комами або пробілами, максимум " +"— %d імені." +msgstr[2] "" +"Додаткові імена для спільноти, відокремлювати комами або пробілами, максимум " +"— %d імен." + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "Група" +msgstr "Спільнота" -#: lib/groupnav.php:101 -msgid "Blocked" -msgstr "Блок" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "%s заблокувані користувачі" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "Спільнота %s" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "Учасники" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "Учасники спільноти %s" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "Заблоковані" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "Заблоковані користувачі %s" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" -msgstr "Редагувати властивості групи %s" +msgstr "Редагувати властивості спільноти %s" -#: lib/groupnav.php:113 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Лого" +msgstr "Логотип" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "Додати або редагувати логотип %s" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "Додати або редагувати дизайн %s" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "Групи з найбільшою кількістю учасників" +msgstr "Спільноти з найбільшою кількістю учасників" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "Групи з найбільшою кількістю дописів" +msgstr "Спільноти з найбільшою кількістю дописів" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" -msgstr "Теґи у дописах групи %s" +msgstr "Теґи у дописах спільноти %s" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 @@ -6129,38 +7823,60 @@ msgstr "Ця сторінка не доступна для того типу м msgid "Unsupported image file format." msgstr "Формат зображення не підтримується." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Цей файл завеликий. Максимальний розмір %s." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Часткове завантаження." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Система відповіла помилкою при завантаженні цього файла." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Це не зображення, або файл зіпсовано." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "Файл втрачено." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "Тип файлу не підтримується" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "Мб" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%d Мб" +msgstr[1] "%d Мб" +msgstr[2] "%d Мб" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "кб" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%d кб" +msgstr[1] "%d кб" +msgstr[2] "%d кб" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%d б" +msgstr[1] "%d б" +msgstr[2] "%d б" #: lib/jabber.php:387 #, php-format @@ -6172,10 +7888,6 @@ msgstr "[%s]" msgid "Unknown inbox source %d." msgstr "Невідоме джерело вхідного повідомлення %d." -#: lib/joinform.php:114 -msgid "Join" -msgstr "Приєднатись" - #: lib/leaveform.php:114 msgid "Leave" msgstr "Залишити" @@ -6188,59 +7900,68 @@ msgstr "Увійти використовуючи ім’я та пароль" msgid "Sign up for a new account" msgstr "Зареєструвати новий акаунт" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Підтвердження електронної адреси" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Агов, %s!\n" +"Агов, %1$s.\n" "\n" -"Хтось щойно ввів цю електронну адресу на %s.\n" +"Хтось щойно ввів цю електронну адресу на %2$s.\n" "\n" -"Якщо то були Ви, мусите це підтвердити, використовуючи посилання:\n" +"Якщо то були ви, мусите це підтвердити, використовуючи посилання:\n" "\n" -"%s\n" +"%3$s\n" "\n" "А якщо ні, просто ігноруйте це повідомлення.\n" "\n" -"Вибачте за турботу, \n" -"%s\n" +"Вибачте, що потурбували, \n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, 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:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -"Якщо Ви вважаєте, що цей акаунт використовується неправомірно, Ви можете " -"заблокувати його у списку своїх підписчиків і повідомити адміністраторів " -"сайту про факт спаму на %s" +"Якщо ви вважаєте, що цей акаунт використовується неправомірно, ви можете " +"заблокувати його у списку своїх читачів і повідомити адміністраторів сайту " +"про факт спаму на %s" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6249,36 +7970,40 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -"%1$s тепер слідкує за Вашими дописами на %2$s.\n" +"%1$s тепер слідкує за вашими дописами на %2$s.\n" "\n" -"\t%3$s\n" +"%3$s\n" "\n" "%4$s%5$s%6$s\n" -"Щиро Ваші,\n" -"%7$s.\n" +"Щиро ваші,\n" +"%2$s.\n" "\n" "----\n" -"Змінити електронну адресу або умови сповіщення — %8$s\n" +"Змінити електронну адресу або умови сповіщення — %7$s\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 #, php-format msgid "Bio: %s" msgstr "Про себе: %s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Нова електронна адреса для надсилання повідомлень на %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6288,44 +8013,49 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"Ви маєте нову адресу на %1$s.\n" +"Ви маєте нову електронну адресу для надсилання дописів на %1$s.\n" "\n" -"Надсилайте листи на %2$s, щоб друкувати нові повідомлення.\n" +"Надсилайте листи на адресу %2$s, і ваші повідомлення будуть опубліковані.\n" "\n" -"Більше інформації про використання електронної пошти на %3$s.\n" +"Більше інформації про використання електронної пошти — %3$s.\n" "\n" -"Щиро Ваші,\n" -"%4$s" +"Щиро ваші,\n" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s статус" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Підтвердження СМС" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "" -"%s, підтвердьте, що Ви є власником зазначеного номеру телефону, " +"%s, підтвердьте, що ви є власником зазначеного номеру телефону, " "скориставшись даним кодом:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "Вас спробував «розштовхати» %s" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6340,10 +8070,10 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" -"%1$s (%2$s) цікавиться як Ваші справи останнім часом і пропонує про це " +"%1$s (%2$s) цікавиться як ваші справи останнім часом і пропонує про це " "написати.\n" "\n" -"Може розповісте, що в Вас нового? Задовольніть цікавість друзів! :)\n" +"Може розповісте, що в вас нового? Задовольніть цікавість друзів! :)\n" "\n" "%3$s\n" "\n" @@ -6352,14 +8082,18 @@ msgstr "" "З найкращими побажаннями,\n" "%4$s\n" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Нове приватне повідомлення від %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6377,7 +8111,7 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" -"%1$s (%2$s) надіслав(ла) Вам приватне повідомлення:\n" +"%1$s (%2$s) надіслав(ла) вам приватне повідомлення:\n" "\n" "------------------------------------------------------\n" "%3$s\n" @@ -6392,14 +8126,19 @@ msgstr "" "З найкращими побажаннями,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 #, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s (@%s) додав(ла) Ваш допис обраних" +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) додав(ла) ваш допис обраних" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6419,13 +8158,13 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" -"%1$s (@%7$s) щойно додав(ла) Ваш допис %2$s до обраних.\n" +"%1$s (@%7$s) щойно додав(ла) ваш допис %2$s до обраних.\n" "\n" -"URL-адреса Вашого допису:\n" +"URL-адреса вашого допису:\n" "\n" "%3$s\n" "\n" -"Текст Вашого допису:\n" +"Текст вашого допису:\n" "\n" "%4$s\n" "\n" @@ -6433,11 +8172,11 @@ msgstr "" "\n" "%5$s\n" "\n" -"Щиро Ваші,\n" +"Щиро ваші,\n" "%6$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6448,13 +8187,20 @@ msgstr "" "\n" "%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "%s (@%s) пропонує до Вашої уваги наступний допис" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) пропонує до вашої уваги наступний допис" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6480,7 +8226,7 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" -"%1$s (@%9$s) щойно надіслав(ла) Вам повідомлення («@-відповідь») на %2$s.\n" +"%1$s (@%9$s) щойно надіслав(ла) вам повідомлення («@-відповідь») на %2$s.\n" "\n" "Повідомлення знаходиться тут:\n" "\n" @@ -6494,7 +8240,7 @@ msgstr "" "\n" "%6$s\n" "\n" -"Список всіх @-відповідей, надісланих Вам, знаходиться тут:\n" +"Список всіх @-відповідей, надісланих вам, знаходиться тут:\n" "\n" "%7$s\n" "\n" @@ -6513,13 +8259,13 @@ 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:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "від" +msgstr "з" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6531,27 +8277,30 @@ msgstr "Це незареєстрований користувач." #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." -msgstr "Вибачте, але це не є Вашою електронною адресою для вхідної пошти." +msgstr "Вибачте, але це не є вашою електронною адресою для вхідної пошти." #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." msgstr "" "Вибачте, але не затверджено жодної електронної адреси для вхідної пошти." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, php-format msgid "Unsupported message type: %s" msgstr "Формат повідомлення не підтримується: %s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." -msgstr "Виникла помилка під час завантаження Вашого файлу. Спробуйте ще." +msgstr "Виникла помилка під час завантаження вашого файлу. Спробуйте ще." -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "Завантажений файл перевищив UPLOAD_MAX_FILESIZE вказаний у php.ini." -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." @@ -6559,140 +8308,193 @@ msgstr "" "Завантажений файл перевищив MAX_FILE_SIZE котрий було встановлено для форми " "HTML." -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "Файл було завантажено частково." -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "Загублено тимчасову теку." -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "Запис файлу на диск скасовано." -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "Завантаження файлу зупинено розширенням." -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "Файл перевищив квоту користувача." -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "Файл не може бути переміщений у директорію призначення." -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." msgstr "Не вдається визначити MIME-тип файлу." -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr " Спробуйте використати інший %s формат." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "" +"Тип файлів «%1$s» тепер не підтримується на даному сервері. Спробуйте " +"використати інший формат %2$s." -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "%s не підтримується як тип файлів на цьому сервері." +msgid "\"%s\" is not a supported file type on this server." +msgstr "Тип файлів «%s» тепер не підтримується на даному сервері." #: lib/messageform.php:120 msgid "Send a direct notice" msgstr "Надіслати прямий допис" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "Оберіть одержувача:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "Немає відповідних абонентів." + +#: lib/messageform.php:153 msgid "To" msgstr "До" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" msgstr "Лишилось знаків" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" -msgstr "Так!" +msgstr "Так" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" +"Ім’я користувача повинно складатись з літер нижнього регістру і цифр, ніяких " +"інтервалів." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "Псевдонім не може бути порожнім." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "Псевдонім не може бути довшим за %d символ." +msgstr[1] "Псевдонім не може бути довшим за %d символів." +msgstr[2] "Псевдонім не може бути довшим за %d символів." #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Надіслати допис" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Що нового, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "Вкласти" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "Вкласти файл" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" msgstr "Показувати місцезнаходження." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 msgid "Do not share my location" msgstr "Приховувати моє місцезнаходження" -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" -"На жаль, отримання інформації щодо Вашого місцезнаходження займе більше " -"часу, ніж очікувалось; будь ласка, спробуйте пізніше" +"На жаль, отримання інформації щодо вашого розташування займе більше часу, " +"ніж очікувалось; будь ласка, спробуйте пізніше" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" msgstr "Півн." #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "Півд." #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "Сх." #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "Зах." -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" msgstr "в" -#: lib/noticelist.php:568 -msgid "in context" -msgstr "в контексті" +#: lib/noticelist.php:517 +msgid "web" +msgstr "вебу" -#: lib/noticelist.php:603 +#: lib/noticelist.php:583 +msgid "in context" +msgstr "у контексті" + +#: lib/noticelist.php:618 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:630 +#: lib/noticelist.php:645 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:631 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:675 +#: lib/noticelist.php:690 msgid "Notice repeated" msgstr "Допис повторили" @@ -6708,55 +8510,52 @@ msgstr "«Розштовхати»" msgid "Send a nudge to this user" msgstr "Спробувати «розштовхати» цього користувача" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Помилка при додаванні нового профілю" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "Помилка при додаванні нового профілю." -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Помилка при додаванні аватари" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "Помилка при додаванні аватари." -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Помилка при оновленні віддаленого профілю" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "Помилка при додаванні віддаленого профілю." -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Помилка при додаванні віддаленого профілю" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "Дублікат допису." -#: lib/oauthstore.php:345 -msgid "Duplicate notice" -msgstr "Дублікат допису" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Не вдалося додати нову підписку." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Особисте" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Відповіді" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Обрані" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Вхідні" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Ваші вхідні повідомлення" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Вихідні" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Надіслані вами повідомлення" @@ -6765,7 +8564,8 @@ msgstr "Надіслані вами повідомлення" msgid "Tags in %s's notices" msgstr "Теґи у дописах %s" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" msgstr "Невідомо" @@ -6779,15 +8579,15 @@ msgstr "Всі підписки" #: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 msgid "Subscribers" -msgstr "Підписчики" +msgstr "Підписані" #: lib/profileaction.php:161 msgid "All subscribers" -msgstr "Всі підписчики" +msgstr "Всі підписані" #: lib/profileaction.php:191 msgid "User ID" -msgstr "ІД" +msgstr "Ід. номер" #: lib/profileaction.php:196 msgid "Member since" @@ -6796,11 +8596,11 @@ msgstr "Реєстрація" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "За добу" +msgstr "Щоденно" #: lib/profileaction.php:264 msgid "All groups" -msgstr "Всі групи" +msgstr "Всі спільноти" #: lib/profileformaction.php:123 msgid "Unimplemented method." @@ -6812,7 +8612,7 @@ msgstr "Загал" #: lib/publicgroupnav.php:82 msgid "User groups" -msgstr "Групи користувачів" +msgstr "Спільноти" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" @@ -6847,9 +8647,10 @@ msgstr "Повторити цей допис" msgid "Revoke the \"%s\" role from this user" msgstr "Відкликати роль «%s» для цього користувача" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "Користувача для однокористувацького режиму не визначено." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "Сторінку не знайдено." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6859,19 +8660,25 @@ msgstr "Пісочниця" msgid "Sandbox this user" msgstr "Ізолювати, відіслати користувача гратися у пісочниці" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 msgid "Search site" msgstr "Пошук" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "Ключові слова" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "Пошук" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "Пошук" @@ -6881,15 +8688,15 @@ 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" -msgstr "Знайти групи на цьому сайті" +msgstr "Пошук спільнот на цьому сайті" #: lib/section.php:89 msgid "Untitled section" @@ -6920,7 +8727,7 @@ msgstr "Люди підписані до %s" #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" -msgstr "%s бере участь в цих групах" +msgstr "Спільноти, до яких залучений %s" #: lib/subgroupnav.php:105 msgid "Invite" @@ -6929,7 +8736,7 @@ msgstr "Запросити" #: lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "Запросіть друзів та колег приєднатись до Вас на %s" +msgstr "Запросіть друзів та колег приєднатись до вас на %s" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6939,12 +8746,17 @@ msgstr "Хмарка теґів (позначки самих користува #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "Хмарка теґів (позначки, якими Ви позначили користувачів)" +msgstr "Хмарка теґів (якими ви позначили користувачів)" #: lib/tagcloudsection.php:56 msgid "None" msgstr "Пусто" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "Невірне назва теми." + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "Цей сервер не може опрацювати завантаження теми без підтримки ZIP." @@ -6954,27 +8766,35 @@ msgid "The theme file is missing or the upload failed." msgstr "Файл теми відсутній, або стався збій при завантаженні." #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." msgstr "Помилка при збереженні теми." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "Невірна тема: хибна структура каталогів." #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" -"Тема, що її було завантажено, надто велика; без компресії розмір має " +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" +"Тема, що її було завантажено, надто велика; без компресії її розмір має " +"становити менше ніж %d байт." +msgstr[1] "" +"Тема, що її було завантажено, надто велика; без компресії її розмір має " +"становити менше ніж %d байтів." +msgstr[2] "" +"Тема, що її було завантажено, надто велика; без компресії її розмір має " "становити менше ніж %d байтів." -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "В архіві з темою є помилка: відсутній файл css/display.css" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." @@ -6982,12 +8802,18 @@ msgstr "" "Тема містить неприпустиме ім’я файлу або теки. Використовуйте літери " "стандарту ASCII, цифри, знаки підкреслення та мінусу." -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" +"У темі містяться файли, що мають небезпечні розширення; це може виявитися " +"небезпечним." + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "Тема містить файл типу «.%s», який є неприпустимим." -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 msgid "Error opening theme archive." msgstr "Помилка при відкритті архіву з темою." @@ -6995,6 +8821,12 @@ msgstr "Помилка при відкритті архіву з темою." msgid "Top posters" msgstr "Топ-дописувачі" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "Розблокувати" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "Витягти з пісочниці" @@ -7019,123 +8851,188 @@ msgstr "Відписатись від цього користувача" msgid "Unsubscribe" msgstr "Відписатись" -#: lib/usernoprofileexception.php:58 +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 #, php-format -msgid "User %s (%d) has no profile record." -msgstr "Користувач %s (%d) не має запису профілю." +msgid "User %1$s (%2$d) has no profile record." +msgstr "Користувач %1$s (%2$d) не має профілю." -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 msgid "Edit Avatar" msgstr "Аватара" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" msgstr "Діяльність користувача" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "Видалення користувача у процесі..." -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 msgid "Edit profile settings" msgstr "Налаштування профілю" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "Правка" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 msgid "Send a direct message to this user" msgstr "Надіслати пряме повідомлення цьому користувачеві" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 msgid "Message" msgstr "Повідомлення" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "Модерувати" -#: lib/userprofile.php:364 +#: lib/userprofile.php:369 msgid "User role" msgstr "Роль користувача" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "Адміністратор" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "Модератор" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "мить тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "хвилину тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "близько %d хвилин тому" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "хвилину тому" +msgstr[1] "близько %d хвилин тому" +msgstr[2] "близько %d хвилин тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "годину тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "близько %d годин тому" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "годину тому" +msgstr[1] "близько %d годин тому" +msgstr[2] "близько %d годин тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "день тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "близько %d днів тому" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "день тому" +msgstr[1] "близько %d днів тому" +msgstr[2] "близько %d днів тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "місяць тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "близько %d місяців тому" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "місяць тому" +msgstr[1] "близько %d місяців тому" +msgstr[2] "близько %d місяців тому" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" -msgstr "рік тому" +msgstr "близько року тому" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, php-format msgid "%s is not a valid color!" msgstr "%s є неприпустимим кольором!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "%s неприпустимий колір! Використайте 3 або 6 знаків (HEX-формат)" +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s є неприпустимим кольором! Використайте 3 або 6 знаків (HEX-формат)" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" -"Повідомлення надто довге — максимум %1$d символів, а Ви надсилаєте %2$d." +"Невідомий користувач. Перейти до %s, аби додати свою адресу до акаунту." + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" +"Повідомлення надто довге. Максимум становить %1$d символів, натомість ви " +"надсилаєте %2$d." +msgstr[1] "" +"Повідомлення надто довге. Максимум становить %1$d символів, натомість ви " +"надсилаєте %2$d." +msgstr[2] "" +"Повідомлення надто довге. Максимум становить %1$d символів, натомість ви " +"надсилаєте %2$d." + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "Непрацездатний XML." + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "Неправильний XML, корінь XRD відсутній." + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "Отримання резервної копії файлу «%s»." + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "" +"Користувача не зазначено; для створення резервної копії потрібно зазначити " +"користувача." + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "У резервному файлі збережено %d допис." +msgstr[1] "У резервному файлі збережено %d дописів." +msgstr[2] "У резервному файлі збережено %d дописів." diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index c82d34e663..2a50598415 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -1,90 +1,105 @@ -# Translation of StatusNet to Vietnamese +# Translation of StatusNet - Core to Vietnamese (Tiếng Việt) +# Expored from translatewiki.net # -# Author@translatewiki.net: Minh Nguyen +# Author: Minh Nguyen # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-07 16:23+0000\n" -"PO-Revision-Date: 2010-08-07 16:25:06+0000\n" -"Language-Team: Vietnamese\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:20+0000\n" +"Language-Team: Vietnamese <http://translatewiki.net/wiki/Portal:vi>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70633); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" msgstr "Truy cập" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 #, fuzzy msgid "Site access settings" msgstr "Thay đổi hình đại diện" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "Đăng ký" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" msgstr "Riêng tư" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 +#: actions/accessadminpanel.php:166 #, fuzzy msgid "Invite only" msgstr "Thư mời" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." msgstr "" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" msgstr "Đóng" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 #, fuzzy msgid "Save access settings" msgstr "Thay đổi hình đại diện" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "Lưu" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 @@ -92,188 +107,258 @@ msgstr "Lưu" msgid "No such page." msgstr "Không có tin nhắn nào." -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Không có user nào." #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s và bạn bè" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" msgstr "%s và bạn bè" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Chọn những người bạn của %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Chọn những người bạn của %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Chọn những người bạn của %s" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" msgstr "Bạn và bạn bè" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 -#, php-format +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 +#, fuzzy, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "" +msgstr "Dòng tin nhắn cho %s" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 #, fuzzy msgid "API method not found." msgstr "Phương thức API không tìm thấy!" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "Phương thức này yêu cầu là POST." -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 #, fuzzy msgid "Could not update user." msgstr "Không thể cập nhật thành viên." -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "Người dùng không có thông tin." +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 #, fuzzy msgid "Could not save profile." msgstr "Không thể lưu hồ sơ cá nhân." +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 @@ -281,321 +366,468 @@ msgstr "" msgid "Unable to save your design settings." msgstr "Không thể lưu thông tin Twitter của bạn!" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 #, fuzzy msgid "Could not update your design." msgstr "Không thể cập nhật thành viên." -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "Dòng tin công cộng" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, fuzzy, php-format +msgid "%s subscriptions" +msgstr "Tất cả đăng nhận" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "Ưa thích" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "Thành viên" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 #, fuzzy msgid "You cannot block yourself!" msgstr "Không thể cập nhật thành viên." +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 +#, fuzzy msgid "Block user failed." -msgstr "" +msgstr "Chặn người dùng" -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 +#, fuzzy msgid "Unblock user failed." -msgstr "" +msgstr "Bỏ chặn người dùng này" -#: actions/apidirectmessage.php:89 -#, fuzzy, php-format +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 +#, php-format msgid "Direct messages from %s" -msgstr "Tin nhắn riêng" +msgstr "Bạn có tin nhắn riêng từ %s" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, fuzzy, php-format msgid "All the direct messages sent from %s" msgstr "Bạn có tin nhắn riêng từ %s" -#: actions/apidirectmessage.php:101 -#, fuzzy, php-format +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 +#, php-format msgid "Direct messages to %s" -msgstr "Tin nhắn riêng" +msgstr "Bạn có tin nhắn riêng từ %s" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" msgstr "" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 #, fuzzy msgid "No message text!" msgstr "Không có tin nhắn nào." -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "Quá dài. Tối đa là 140 ký tự." +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "" -#: actions/apidirectmessagenew.php:138 -#, fuzzy +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." -msgstr "Không tìm thấy user." +msgstr "Không tìm thấy mã xác nhận." -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 #, fuzzy msgid "This status is already a favorite." msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "Không thể tạo favorite." -#: actions/apifavoritedestroy.php:123 -#, fuzzy +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." -msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" +msgstr "Không thể tạo favorite." +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 #, fuzzy msgid "Could not delete favorite." msgstr "Không thể tạo favorite." +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 #, fuzzy msgid "Could not follow user: profile not found." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 #, fuzzy msgid "Could not unfollow user: User not found." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 #, fuzzy msgid "You cannot unfollow yourself." msgstr "Không thể cập nhật thành viên." -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "Không thể lấy lại các tin nhắn ưa thích" +msgstr "Không thể cập nhật thành viên." -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "Không tìm thấy bất kỳ trạng thái nào." +msgstr "Không thể cập nhật thành viên." -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -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:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 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:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "Biệt hiệu không hợp lệ." -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "Trang chủ không phải là URL" -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." -msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." - -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "Lý lịch quá dài (không quá 140 ký tự)" - -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "Tên khu vực quá dài (không quá 255 ký tự)." - -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 -#, php-format -msgid "Too many aliases! Maximum %d." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "" -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format -msgid "Invalid alias: \"%s\"." -msgstr "Trang chủ '%s' không hợp lệ" +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 +#, php-format +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "" + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "" + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format +msgid "Invalid alias: \"%s\"." +msgstr "Địa chỉ email không đúng:%s" + +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 #, fuzzy, php-format msgid "Alias \"%s\" 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:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "Không tìm thấy nhóm." -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." -msgstr "Bạn đã theo những người này:" +msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 #, fuzzy msgid "You are not a member of this group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 #, fuzzy, php-format msgid "%s's groups" msgstr "%s và nhóm" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 #, fuzzy, php-format msgid "%1$s groups %2$s is a member of." msgstr "Bạn chưa cập nhật thông tin riêng" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 -#, fuzzy, php-format +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 +#, php-format msgid "%s groups" -msgstr "%s và nhóm" +msgstr "Hộp thư đi của %s" -#: actions/apigrouplistall.php:96 +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 #, fuzzy, php-format msgid "groups on %s" msgstr "Mã nhóm" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 #, fuzzy msgid "Upload failed." msgstr "Tải file" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." -msgstr "Kích thước không hợp lệ." +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "" -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." -#: actions/apioauthauthorize.php:135 +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 #, fuzzy msgid "Invalid nickname / password!" msgstr "Tên đăng nhập hoặc mật khẩu không hợp lệ." -#: actions/apioauthauthorize.php:159 -#, fuzzy -msgid "Database error deleting OAuth application user." -msgstr "Lỗi xảy ra khi tạo thành viên." - -#: actions/apioauthauthorize.php:185 -#, fuzzy -msgid "Database error inserting OAuth application user." -msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." msgstr "" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "Bất ngờ gửi mẫu thông tin. " -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" msgstr "" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" msgstr "" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " @@ -603,173 +835,522 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" -msgstr "Tài khoản" +msgstr "" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "Biệt danh" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "Mật khẩu" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +#, fuzzy +msgctxt "BUTTON" +msgid "Cancel" +msgstr "Hủy" -#: actions/apioauthauthorize.php:334 +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" msgstr "" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." msgstr "" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "Phương thức này yêu cầu là POST hoặc DELETE" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 msgid "You may not delete another user's status." msgstr "Bạn đã không xóa trạng thái của những người khác." -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 -#: actions/deletenotice.php:52 actions/shownotice.php:92 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." msgstr "Không có tin nhắn nào." -#: actions/apistatusesretweet.php:83 -#, fuzzy +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "Bạn không thể đăng ký nếu không đồng ý các điều khoản." +msgstr "Không thể xóa tin nhắn này." -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "Xóa tin nhắn" +msgstr "Không thể xóa tin nhắn này." -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "" + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 #, fuzzy msgid "Status deleted." msgstr "Hình đại diện đã được cập nhật." -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "Không thể xóa tin nhắn này." + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "Quá dài. Tối đa là 140 ký tự." - -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -msgid "Not found." -msgstr "Không tìm thấy." - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format -msgid "Max notice size is %d chars, including attachment URL." +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "" + +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." msgstr "" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "" + +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 #, fuzzy msgid "Unsupported format." msgstr "Không hỗ trợ kiểu file ảnh này." -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "Tìm kiếm các tin nhắn ưa thích của %s" +msgstr "Trạng thái của %1$s vào %2$s" -#: actions/apitimelinefavorites.php:119 -#, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "Tất cả các cập nhật của %s" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "" -#: actions/apitimelinementions.php:118 -#, fuzzy, php-format +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Các cập nhật đang trả lời tới %2$s" +msgstr "Trạng thái của %1$s vào %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, fuzzy, php-format msgid "%s public timeline" msgstr "Dòng tin công cộng" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s cập nhật từ tất cả mọi người!" -#: actions/apitimelineretweetedtome.php:111 +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 #, fuzzy, php-format msgid "Repeated to %s" msgstr "Trả lời cho %s" -#: actions/apitimelineretweetsofme.php:114 +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 #, fuzzy, php-format msgid "Repeats of %s" msgstr "Trả lời cho %s" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Thông báo được gắn thẻ %s" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +msgid "Only accept AtomPub for Atom feeds." +msgstr "" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "Tìm theo nội dung của tin nhắn" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "Phương thức API dưới cấu trúc có sẵn." -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "Không có tài liệu nào." +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "Không tìm thấy user." -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "Không có tin nhắn nào." + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "Không thể chèn thêm vào đăng nhận." + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "Tìm theo nội dung của tin nhắn" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "Không tìm thấy action" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "Ưa thích" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +#, fuzzy +msgid "No such profile." +msgstr "Không có tin nhắn nào." + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "Thành viên" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "Bạn chưa cập nhật thông tin riêng" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "Không tìm thấy action" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "Thành viên" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "Không có tin nhắn nào." + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "Không thể tạo favorite." + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "Không có user nào." + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "Thành viên" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "Kết nối" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "Không có tin nhắn nào." + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "Bạn đã theo những người này:" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "Không thể chèn thêm vào đăng nhận." + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "Đăng nhận từ xa" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "Không hỗ trợ kiểu file ảnh này." + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "Không có tin nhắn nào." + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "Không có biệt hiệu." -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "Không có kích thước." -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "Kích thước không hợp lệ." +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "Hình đại diện" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 #, fuzzy, php-format msgid "You can upload your personal avatar. The maximum file size is %s." @@ -777,78 +1358,98 @@ msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" +msgstr "Người dùng không có thông tin." -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Thay đổi hình đại diện" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Xem trước" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:656 +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "Xóa" +msgstr "" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" -msgstr "Tải file" +msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 -#, fuzzy +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" -msgstr "Nhóm" +msgstr "" -#: actions/avatarsettings.php:305 +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 #, fuzzy msgid "No file uploaded." msgstr "Upload từng phần." -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "Hình đại diện đã được cập nhật." -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "Cập nhật hình đại diện không thành công." -#: actions/avatarsettings.php:397 +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 #, fuzzy msgid "Avatar deleted." msgstr "Hình đại diện đã được cập nhật." -#: actions/block.php:69 +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 #, fuzzy msgid "You already blocked that user." msgstr "Bạn đã theo những người này:" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" msgstr "Chặn người dùng" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 " @@ -857,12 +1458,13 @@ msgstr "" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 #, fuzzy msgctxt "BUTTON" msgid "No" @@ -870,175 +1472,213 @@ msgstr "Không" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 #, fuzzy msgid "Do not block this user" msgstr "Bỏ chặn người dùng này" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 #, fuzzy msgctxt "BUTTON" msgid "Yes" msgstr "Có" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -#, fuzzy +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" -msgstr "Ban user" +msgstr "Bỏ chặn người dùng này" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." -msgstr "Không có tin nhắn nào." +msgstr "Không có user nào." -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Hồ sơ" -#: actions/blockedfromgroup.php:100 +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s và bạn bè" -#: actions/blockedfromgroup.php:115 +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:288 +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 #, fuzzy msgid "Unblock user from group" msgstr "Bỏ chặn người dùng này" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" -msgstr "Bỏ chặn" +msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" msgstr "Bỏ chặn người dùng này" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "Mã nhóm" +msgstr "Trả lời cho %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." msgstr "Không có mã số xác nhận." +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "Không tìm thấy mã xác nhận." -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" msgstr "Mã xác nhận này không phải của bạn!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, fuzzy, php-format msgid "Unrecognized address type %s." msgstr "Không nhận dạng kiểu địa chỉ %s" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." msgstr "Địa chỉ đó đã được xác nhận rồi." +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "Không thể cập nhật thành viên." -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "Không thể xóa email xác nhận." +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "" -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "Xác nhận địa chỉ" +msgstr "Đã xác nhận địa chỉ này." -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." msgstr "Địa chỉ \"%s\" đã được xác nhận từ tài khoản của bạn." -#: actions/conversation.php:99 -#, fuzzy +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" -msgstr "Không có mã số xác nhận." +msgstr "Thành phố" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Tin nhắn" -#: actions/deleteapplication.php:63 +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 #, fuzzy msgid "You must be logged in to delete an application." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Tin nhắn không có hồ sơ cá nhân" +msgstr "Không tìm thấy mã xác nhận." -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 #, fuzzy msgid "You are not the owner of this application." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 #, 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." -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 #, fuzzy msgid "Delete application" msgstr "Không có tin nhắn nào." -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " @@ -1046,55 +1686,113 @@ msgid "" msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 +#: actions/deleteapplication.php:161 #, fuzzy msgid "Do not delete this application" msgstr "Không thể xóa tin nhắn này." #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 #, fuzzy msgid "Delete this application" msgstr "Xóa tin nhắn" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Không có biệt hiệu." + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "" + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Chưa đăng nhập." -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "Không thể xóa tin nhắn này." - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 #, fuzzy msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "Bạn muốn xóa tin nhắn này? Sau khi xóa, bạn không thể lấy lại được." -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" msgstr "Xóa tin nhắn" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 +#: actions/deletenotice.php:159 #, fuzzy msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:656 +#: actions/deletenotice.php:166 lib/noticelist.php:672 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1110,9 +1808,8 @@ msgid "You can only delete local users." msgstr "Bạn đã không xóa trạng thái của những người khác." #: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy msgid "Delete user" -msgstr "Xóa tin nhắn" +msgstr "Xóa" #: actions/deleteuser.php:136 msgid "" @@ -1128,70 +1825,78 @@ msgstr "Xóa tin nhắn" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" msgstr "" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." +msgid "Design settings for this StatusNet site" msgstr "" -#: actions/designadminpanel.php:318 +#: actions/designadminpanel.php:335 #, fuzzy msgid "Invalid logo URL." msgstr "Kích thước không hợp lệ." -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "" + +#: actions/designadminpanel.php:344 #, fuzzy, php-format msgid "Theme not available: %s." msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "Thay đổi mật khẩu của bạn" +msgstr "Thay đổi" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 #, fuzzy msgid "Site logo" msgstr "Thư mời" -#: actions/designadminpanel.php:443 +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "" + +#: actions/designadminpanel.php:469 #, fuzzy msgid "Change theme" msgstr "Thay đổi" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 #, fuzzy msgid "Site theme" msgstr "Thông báo mới" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 #, fuzzy msgid "Custom theme" msgstr "Thông báo mới" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 #, fuzzy msgid "Change background image" msgstr "Background Theme:" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 #, fuzzy msgid "Background" msgstr "Background Theme:" -#: actions/designadminpanel.php:496 +#: actions/designadminpanel.php:522 #, fuzzy, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" @@ -1201,80 +1906,89 @@ msgstr "" "về bạn." #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" msgstr "" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" msgstr "" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." msgstr "" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 #, fuzzy msgid "Tile background image" msgstr "Background Theme:" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 #, fuzzy msgid "Change colours" msgstr "Thay đổi mật khẩu của bạn" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 #, fuzzy msgid "Content" msgstr "Kết nối" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 #, fuzzy msgid "Sidebar" msgstr "Tìm kiếm" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" msgstr "Chuỗi bất kỳ" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 #, fuzzy msgid "Links" msgstr "Đăng nhập" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" msgstr "" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" msgstr "" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" msgstr "" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" msgstr "" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "Lưu" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 #, fuzzy msgid "Save design" msgstr "Lưu" @@ -1285,141 +1999,156 @@ msgid "This notice is not a favorite!" msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" #: actions/disfavor.php:94 -#, fuzzy msgid "Add to favorites" -msgstr "Tìm kiếm các tin nhắn ưa thích của %s" +msgstr "Ưa thích" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Không có tài liệu nào." +msgstr "Không có tin nhắn nào." -#: actions/editapplication.php:54 -#, fuzzy -msgid "Edit Application" -msgstr "Tin nhắn không có hồ sơ cá nhân" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 #, fuzzy msgid "You must be logged in to edit an application." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 #, fuzzy msgid "No such application." msgstr "Không có tin nhắn nào." -#: actions/editapplication.php:161 +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." msgstr "" -#: actions/editapplication.php:177 actions/newapplication.php:159 +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 #, fuzzy msgid "Name is required." msgstr "Cùng mật khẩu ở trên. Bắt buộc." -#: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "" -#: actions/editapplication.php:183 actions/newapplication.php:162 +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 #, fuzzy msgid "Name 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/editapplication.php:186 actions/newapplication.php:168 +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 #, fuzzy msgid "Description is required." msgstr "Mô tả" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 #, fuzzy msgid "Source URL is not valid." msgstr "Trang chủ không phải là URL" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "Tên khu vực quá dài (không quá 255 ký tự)." +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." msgstr "" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." msgstr "" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." msgstr "" -#: actions/editapplication.php:258 +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 #, fuzzy msgid "Could not update application." msgstr "Không thể cập nhật thành viên." -#: actions/editgroup.php:56 -#, fuzzy, php-format +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 +#, php-format msgid "Edit %s group" -msgstr "%s và nhóm" +msgstr "Hộp thư đi của %s" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 #, fuzzy msgid "You must be logged in to create a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editgroup.php:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "Lý lịch quá dài (không quá 140 ký tự)" - -#: actions/editgroup.php:228 actions/newgroup.php:168 -#, fuzzy, php-format +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 +#, php-format msgid "Invalid alias: \"%s\"" -msgstr "Trang chủ '%s' không hợp lệ" +msgstr "Địa chỉ email không đúng:%s" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 #, fuzzy msgid "Could not update group." msgstr "Không thể cập nhật thành viên." +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 +#: actions/editgroup.php:279 classes/User_group.php:529 #, fuzzy msgid "Could not create aliases." msgstr "Không thể tạo favorite." -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 #, fuzzy msgid "Options saved." msgstr "Đã lưu các điều chỉnh." #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "Thiết lập địa chỉ email" +msgstr "Các thiết lập cho Hồ sơ cá nhân" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -1430,13 +2159,13 @@ msgstr "Bạn nhận email từ %%site.name%% như thế nào." #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 +#: actions/emailsettings.php:107 actions/emailsettings.php:133 #, fuzzy msgid "Email address" msgstr "Địa chỉ email" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." msgstr "Đã xác nhận địa chỉ này." @@ -1445,15 +2174,14 @@ msgstr "Đã xác nhận địa chỉ này." #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "Xóa" +msgstr "Khôi phục" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." @@ -1461,19 +2189,12 @@ msgstr "" "Đang đợi xác nhận đến địa chỉ này. Hãy kiểm tra hộp thư đến (hoặc thư rác) " "để nhận tin nhắn và lời hướng dẫn." -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "Hủy" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 #, fuzzy msgid "Email address, like \"UserName@example.org\"" msgstr "Địa chỉ email GTalk, Ví dụ: \"UserName@example.org\"" @@ -1481,7 +2202,7 @@ msgstr "Địa chỉ email GTalk, Ví dụ: \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 #, fuzzy msgctxt "BUTTON" @@ -1490,119 +2211,122 @@ msgstr "Thêm" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" msgstr "" +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:158 +msgid "I want to post notices by email." +msgstr "Tôi muốn đưa tin nhắn lên bằng email." + #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:180 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "Gửi email đến địa chỉ này để đưa tin nhắn mới lên." -#. TRANS: Instructions for incoming e-mail address input form. +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:189 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "Tạo một địa chỉ email mới để đưa tin nhắn lên; và xóa " +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:199 actions/smssettings.php:189 #, fuzzy msgctxt "BUTTON" msgid "New" msgstr "Mới" #. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy +#: actions/emailsettings.php:208 msgid "Email preferences" -msgstr "Tính năng" +msgstr "Địa chỉ email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:216 msgid "Send me notices of new subscriptions through email." msgstr "Hãy gửi email cho tôi thông báo về các đăng nhận mới." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:222 msgid "Send me email when someone adds my notice as a favorite." msgstr "" "Gửi email thông báo tôi khi có ai đó lưu tin nhắn của tôi vào danh sách ưa " "thích của họ." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:229 msgid "Send me email when someone sends me a private message." msgstr "Gửi email báo cho tôi biết khi có ai đó gửi tin nhắn riêng cho tôi." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:235 #, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." msgstr "Gửi email báo cho tôi biết khi có ai đó gửi tin nhắn riêng cho tôi." #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:241 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 -msgid "I want to post notices by email." -msgstr "Tôi muốn đưa tin nhắn lên bằng email." - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "Xuất bản một MicroID đến địa chỉ email của tôi." #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:368 #, fuzzy msgid "Email preferences saved." msgstr "Các tính năng đã được lưu." #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "Không có địa chỉ email." #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 -#, fuzzy +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" -msgstr "Không thể bình thường hóa địa chỉ GTalk này" +msgstr "Không thể bình thường hóa Jabber ID" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Địa chỉ email không hợp lệ." #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 -#, fuzzy +#: actions/emailsettings.php:405 msgid "That is already your email address." -msgstr "Bạn đã dùng địa chỉ email này rồi" +msgstr "Tài khoản đó đã là tên tài khoản Jabber của bạn rồi." #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 -#, fuzzy +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." -msgstr "Địa chỉ email GTalk này đã có người khác sử dụng rồi." +msgstr "Jabber ID này đã thuộc về người khác rồi." #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "Không thể chèn mã xác nhận." #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." @@ -1613,75 +2337,75 @@ msgstr "" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "Sự xác nhận chưa được hủy bỏ." #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 +#: actions/emailsettings.php:459 #, fuzzy msgid "That is the wrong email address." msgstr "Sai IM." +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "Không thể xóa email xác nhận." + #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "Sự xác nhận đã bị hủy bỏ." +msgstr "Sự xác nhận chưa được hủy bỏ." #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 #, fuzzy msgid "That is not your email address." msgstr "Xin lỗi, đó không phải là địa chỉ email mà bạn nhập vào." #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "Đã xóa địa chỉ." +msgstr "Không có địa chỉ email." -#: actions/emailsettings.php:493 actions/smssettings.php:568 -#, fuzzy +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." -msgstr "Địa chỉ email không hợp lệ." +msgstr "Không có địa chỉ email." #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 #, fuzzy msgid "Couldn't update user record." msgstr "Không thể cập nhật thành viên." #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 -#, fuzzy +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "Địa chỉ email hoặc mật khẩu không đúng." +msgstr "Không có địa chỉ email." #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 -#, fuzzy +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." -msgstr "Đã xác nhận địa chỉ này." +msgstr "Không có địa chỉ email." #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" -#: actions/favor.php:92 lib/disfavorform.php:140 +#: actions/favor.php:92 lib/disfavorform.php:144 #, fuzzy msgid "Disfavor favorite" msgstr "Không thích" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: lib/publicgroupnav.php:93 -#, fuzzy msgid "Popular notices" -msgstr "Các tin nhắn bị cảnh báo" +msgstr "Không có tin nhắn nào." #: actions/favorited.php:67 #, fuzzy, php-format @@ -1711,7 +2435,7 @@ msgid "" msgstr "" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" msgstr "Những tin nhắn ưa thích của %s" @@ -1737,14 +2461,12 @@ msgid "A selection of some great users on %s" msgstr "" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Thông báo mới" +msgstr "Không có tin nhắn nào." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Thông báo mới" +msgstr "Không có tin nhắn nào." #: actions/file.php:42 #, fuzzy @@ -1774,9 +2496,8 @@ msgid "That user has blocked you from subscribing." msgstr "" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Chưa được phép." +msgstr "Đăng nhận được phép" #: actions/finishremotesubscribe.php:113 #, fuzzy @@ -1788,7 +2509,7 @@ msgstr "Không thể chuyển các token yêu cầu đến token truy cập." msgid "Remote service uses unknown version of OMB protocol." msgstr "Không biết phiên bản của giao thức OMB." -#: actions/finishremotesubscribe.php:138 +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 #, fuzzy msgid "Error updating remote profile." msgstr "Lỗi xảy ra khi cập nhật hồ sơ cá nhân" @@ -1799,9 +2520,8 @@ msgid "No such file." msgstr "Không có tin nhắn nào." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Không có tin nhắn nào." +msgstr "Không thể tạo favorite." #: actions/grantrole.php:62 actions/revokerole.php:62 #, fuzzy @@ -1822,20 +2542,24 @@ msgstr "Bạn đã theo những người này:" msgid "User already has this role." msgstr "Người dùng không có thông tin." +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 msgid "No profile specified." msgstr "" -#: actions/groupblock.php:76 actions/groupunblock.php:76 -#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 #, fuzzy msgid "No profile with that ID." msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 msgid "No group specified." msgstr "" @@ -1854,10 +2578,9 @@ msgstr "Người dùng không có thông tin." msgid "User is not a member of group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/groupblock.php:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "Ban user" +msgstr "Chặn người dùng" #: actions/groupblock.php:160 #, php-format @@ -1884,9 +2607,8 @@ msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "Không có id." +msgstr "Không có Jabber ID." #: actions/groupdesignsettings.php:68 #, fuzzy @@ -1904,8 +2626,10 @@ msgid "" "palette of your choice." msgstr "" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 +#: lib/designsettings.php:405 lib/designsettings.php:427 #, fuzzy msgid "Couldn't update your design." msgstr "Không thể cập nhật thành viên." @@ -1916,15 +2640,25 @@ msgid "Design preferences saved." msgstr "Các tính năng đã được lưu." #: actions/grouplogo.php:142 actions/grouplogo.php:195 -#, fuzzy msgid "Group logo" -msgstr "Mã nhóm" +msgstr "Nhóm" #: actions/grouplogo.php:153 -#, php-format +#, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +"Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " +"về bạn." + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "Tải file" + +#: actions/grouplogo.php:289 +#, fuzzy +msgid "Crop" +msgstr "Nhóm" #: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." @@ -1940,50 +2674,56 @@ msgstr "Hình đại diện đã được cập nhật." msgid "Failed updating logo." msgstr "Cập nhật hình đại diện không thành công." -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, fuzzy, php-format msgid "%s group members" msgstr "Thành viên" -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "Thành viên" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "" + +#: actions/groupmembers.php:498 #, fuzzy msgid "Make user an admin of the group" msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 -#, fuzzy +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" -msgstr "Kênh mà bạn tham gia" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 -#, fuzzy, php-format -msgid "%s timeline" -msgstr "Dòng tin nhắn của %s" +msgstr "" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 @@ -2051,25 +2791,27 @@ msgid "" "action.newgroup%%) yourself!" msgstr "" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." msgstr "" -#: actions/groupunblock.php:95 +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 #, fuzzy 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:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Lỗi xảy ra khi lưu thành viên." #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "Cấu hình IM" +msgstr "Thay đổi hình đại diện" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2092,9 +2834,8 @@ msgstr "Trang này không phải là phương tiện truyền thông mà bạn c #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "IM" +msgstr "Địa chỉ email" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2113,7 +2854,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2123,66 +2867,65 @@ msgstr "" "tạo thêm %s vào danh sách buddy trên IM client hoặc GTalk của bạn." #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "Tính năng" +msgstr "Các tính năng đã được lưu." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "Hãy gửi tin nhắn đến tôi qua Jabber hay GTalk" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "Gửi một tin nhắn khi trạng thái của tôi trên Jabber hay GTalk " #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" "Gửi những tin nhắn trả lời của tôi từ những người mà tôi không theo qua " "Jabber/GTalk." #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." msgstr "Gửi MicroID đến địa chỉ Jabber/GTalk của tôi. " #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "Các tính năng đã được lưu." #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "Không có Jabber ID." #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "Không thể bình thường hóa Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "Jabber ID không hợp lệ" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." msgstr "Tài khoản đó đã là tên tài khoản Jabber của bạn rồi." #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID này đã thuộc về người khác rồi." #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2192,30 +2935,29 @@ msgstr "" "tin nhắn đến bạn." #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "Sai IM." #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 +#: actions/imsettings.php:400 #, fuzzy msgid "Couldn't delete IM confirmation." msgstr "Không thể xóa email xác nhận." #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "Sự xác nhận đã bị hủy bỏ." +msgstr "Không có mã số xác nhận." #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." msgstr "Đây không phải Jabber ID của bạn." #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 #, fuzzy msgid "The IM address was removed." msgstr "Đã xóa địa chỉ." @@ -2234,51 +2976,72 @@ msgstr "Hộp thư đến của %s" msgid "This is your inbox, which lists your incoming private messages." msgstr "Đây là hộp thư đến của bạn, bao gồm các tin nhắn gửi đến riêng cho bạn" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" -msgstr "Địa chỉ email không đúng:%s" +msgid "You must be logged in to invite other users to use %s." +msgstr "Bạn đã không xóa trạng thái của những người khác." -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "Thư mời đã gửi" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, php-format +msgid "Invalid email address: %s." +msgstr "" -#: actions/invite.php:112 +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "" + +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "Gửi thư mời đến những người chưa có tài khoản" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "Bạn đã theo những người này:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 -#, fuzzy, php-format +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 +#, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" -msgstr "%s (%s)" - -#: actions/invite.php:136 -msgid "" -"These people are already users and you were automatically subscribed to them:" msgstr "" -"Những người này đã là thành viên rồi và bạn chỉ cần nhấn nút \"Tôi theo " -"người này\" để theo họ:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "Thư mời đã gửi đến:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" +"These people are already users and you were automatically subscribed to them:" +msgstr[0] "" -#: actions/invite.php:150 +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "" + +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" @@ -2286,45 +3049,56 @@ msgstr "" "Bạn sẽ nhận được thông báo khi những người được bạn mời nhận lời mời và đăng " "ký vào trang web này. Cảm ơn bạn " -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." 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." -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" msgstr "Địa chỉ email" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "" "Các địa chỉ email của những người bạn muốn mời (mỗi địa chỉ nằm trên 1 dòng)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "Tin nhắn cá nhân" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 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." #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 #, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Gửi" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s moi ban tham gia vao %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2386,14 +3160,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "Không có biệt hiệu." - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s và nhóm" @@ -2403,17 +3170,121 @@ msgstr "%s và nhóm" msgid "You must be logged in to leave a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/leavegroup.php:100 lib/command.php:373 +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 #, fuzzy msgid "You are not a member of that group." msgstr "Bạn chưa cập nhật thông tin riêng" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s và nhóm" +msgstr "Trạng thái của %1$s vào %2$s" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "" + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "" + +#: actions/licenseadminpanel.php:245 +#, fuzzy +msgid "Private" +msgstr "Riêng tư" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2436,11 +3307,11 @@ msgstr "Đăng nhập" msgid "Login to site" msgstr "" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "Nhớ tôi" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" msgstr "Sẽ tự động đăng nhập, không dành cho các máy sử dụng chung!" @@ -2494,73 +3365,80 @@ msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những msgid "No current status." msgstr "Không có kết quả nào" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -#, fuzzy -msgid "New Application" -msgstr "Không có tin nhắn nào." +msgid "New application" +msgstr "" -#: actions/newapplication.php:64 +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 #, fuzzy msgid "You must be logged in to register an application." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/newapplication.php:143 +#: actions/newapplication.php:147 msgid "Use this form to register a new application." msgstr "" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." msgstr "" -#: actions/newapplication.php:258 actions/newapplication.php:267 +#: actions/newapplication.php:266 actions/newapplication.php:275 #, fuzzy msgid "Could not create application." msgstr "Không thể tạo favorite." +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 #, fuzzy msgid "New group" msgstr "Tạo nhóm" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" -#: actions/newmessage.php:71 actions/newmessage.php:231 -#, fuzzy +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" -msgstr "Tin mới nhất" +msgstr "Tin nhắn cá nhân" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 -#, fuzzy +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." -msgstr "Bạn đã theo những người này:" +msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "Không có nội dung!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -#: actions/newmessage.php:181 +#: actions/newmessage.php:184 #, fuzzy msgid "Message sent" msgstr "Tin mới nhất" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 #, fuzzy, php-format msgid "Direct message to %s sent." msgstr "Tin nhắn riêng" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 #, fuzzy msgid "Ajax Error" msgstr "Lỗi" @@ -2569,10 +3447,9 @@ msgstr "Lỗi" msgid "New notice" msgstr "Thông báo mới" -#: actions/newnotice.php:217 -#, fuzzy +#: actions/newnotice.php:230 msgid "Notice posted" -msgstr "Tin đã gửi" +msgstr "Tin nhắn" #: actions/noticesearch.php:68 #, php-format @@ -2588,9 +3465,9 @@ msgid "Text search" msgstr "Chuỗi cần tìm" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr " Tìm dòng thông tin cho \"%s\"" +msgstr "%s chào mừng bạn " #: actions/noticesearch.php:121 #, php-format @@ -2612,13 +3489,14 @@ msgid "Updates with \"%s\"" msgstr "Dòng tin nhắn cho %s" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Các thay đổi phù hợp với từ \"%s\"" +msgstr "Dòng tin nhắn cho %s" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." msgstr "" #: actions/nudge.php:94 @@ -2631,75 +3509,99 @@ msgstr "Tin đã gửi" msgid "Nudge sent!" msgstr "Tin đã gửi" -#: actions/oauthappssettings.php:59 +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 #, fuzzy msgid "You must be logged in to list your applications." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/oauthappssettings.php:74 +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" msgstr "" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." msgstr "" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" msgstr "" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." +msgid "The following connections exist for your account." msgstr "" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 #, fuzzy msgid "You are not a user of that application." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." +msgid "Unable to revoke access for application: %s." msgstr "" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." msgstr "" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "Tin nhắn không có hồ sơ cá nhân" +msgstr "Người dùng không có thông tin." -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" msgstr "Trạng thái của %1$s vào %2$s" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, fuzzy, php-format msgid "Content type %s not supported." msgstr "Kết nối" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -2712,40 +3614,47 @@ msgstr "Tìm kiếm nhiều người" msgid "Notice Search" msgstr "Tìm kiếm thông báo" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "Thiết lập tài khoản Twitter" +msgstr "Thay đổi hình đại diện" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" msgstr "" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" msgstr "" -#: actions/othersettings.php:117 +#. TRANS: Tooltip for for dropdown with URL shortener services. +#: actions/othersettings.php:122 msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 #, fuzzy msgid "View profile designs" msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -#, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "Tên khu vực quá dài (không quá 255 ký tự)." +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "" #: actions/otp.php:69 #, fuzzy @@ -2758,9 +3667,8 @@ msgid "No login token specified." msgstr "Thông báo mới" #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Không có URL cho hồ sơ để quay về." +msgstr "Không có yêu cầu!" #: actions/otp.php:95 #, fuzzy @@ -2814,7 +3722,7 @@ msgid "6 or more characters" msgstr "Nhiều hơn 6 ký tự" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" msgstr "Xác nhận" @@ -2826,12 +3734,12 @@ msgstr "Cùng mật khẩu ở trên" msgid "Change" msgstr "Thay đổi" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 #, fuzzy msgid "Password must be 6 or more characters." msgstr "Mật khẩu phải nhiều hơn 6 ký tự." -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "Mật khẩu không khớp." @@ -2851,171 +3759,284 @@ msgstr "Không thể lưu mật khẩu mới" msgid "Password saved." msgstr "Đã lưu mật khẩu." +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" msgstr "" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, fuzzy, php-format msgid "Theme directory not readable: %s." msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, fuzzy, php-format msgid "Avatar directory not writable: %s." msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, fuzzy, php-format msgid "Background directory not writable: %s." msgstr "Background Theme:" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, fuzzy, php-format msgid "Locales directory not readable: %s." msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 #, fuzzy msgid "Site" msgstr "Thư mời" -#: actions/pathsadminpanel.php:238 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 #, fuzzy msgid "Server" msgstr "Khôi phục" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." msgstr "" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -#, fuzzy -msgid "Site path" -msgstr "Thông báo mới" - -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" +#: actions/pathsadminpanel.php:249 +msgid "Site path." msgstr "" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" msgstr "" -#: actions/pathsadminpanel.php:250 +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "" + +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" msgstr "" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" msgstr "" -#: actions/pathsadminpanel.php:259 +#: actions/pathsadminpanel.php:272 msgid "Theme" msgstr "" -#: actions/pathsadminpanel.php:264 -msgid "Theme server" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." msgstr "" -#: actions/pathsadminpanel.php:268 -msgid "Theme path" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." msgstr "" -#: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" - -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "Hình đại diện" - -#: actions/pathsadminpanel.php:284 -#, fuzzy -msgid "Avatar server" -msgstr "Thay đổi hình đại diện" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "Hình đại diện đã được cập nhật." - -#: actions/pathsadminpanel.php:292 -#, fuzzy -msgid "Avatar directory" -msgstr "Hình đại diện đã được cập nhật." - -#: actions/pathsadminpanel.php:301 -#, fuzzy -msgid "Backgrounds" -msgstr "Background Theme:" - -#: actions/pathsadminpanel.php:305 -#, fuzzy -msgid "Background server" -msgstr "Background Theme:" - -#: actions/pathsadminpanel.php:309 -#, fuzzy -msgid "Background path" -msgstr "Background Theme:" - -#: actions/pathsadminpanel.php:313 -#, fuzzy -msgid "Background directory" -msgstr "Background Theme:" - -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "SMS" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "Khôi phục" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "Tin nhắn" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:335 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 #, fuzzy msgid "SSL server" msgstr "Khôi phục" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." msgstr "" -#: actions/pathsadminpanel.php:352 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 +#, fuzzy +msgid "Avatars" +msgstr "Hình đại diện" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 +#, fuzzy +msgid "Avatar server" +msgstr "Thay đổi hình đại diện" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:335 +msgid "Server for avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +#, fuzzy +msgid "Avatar path" +msgstr "Hình đại diện đã được cập nhật." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +#, fuzzy +msgid "Avatar directory" +msgstr "Hình đại diện đã được cập nhật." + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +#, fuzzy +msgid "Backgrounds" +msgstr "Background Theme:" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +#, fuzzy +msgid "SSL" +msgstr "SMS" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +#, fuzzy +msgid "Never" +msgstr "Khôi phục" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +#, fuzzy +msgid "Sometimes" +msgstr "Tin nhắn" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 #, fuzzy msgid "Save paths" msgstr "Thông báo mới" @@ -3044,152 +4065,189 @@ msgid "Users self-tagged with %1$s - page %2$d" msgstr "Dòng tin nhắn cho %s" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "Nội dung tin nhắn không hợp lệ" +msgstr "Kích thước không hợp lệ." #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: actions/profilesettings.php:99 -#, fuzzy +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" -msgstr "Hồ sơ này không biết" +msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 chữ cái thường hoặc là chữ số, không có dấu chấm hay " +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "Tên đầy đủ" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "Trang chủ hoặc Blog" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên " +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "" -#: actions/profilesettings.php:122 actions/register.php:468 -#, fuzzy, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "Nói về bạn và những sở thích của bạn khoảng 140 ký tự" +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 +#, php-format +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 #, fuzzy msgid "Describe yourself and your interests" msgstr "Nói về bạn và những sở thích của bạn khoảng 140 ký tự" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "Lý lịch" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "Thành phố" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 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 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" msgstr "" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "Từ khóa" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "Ngôn ngữ" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "Ngôn ngữ bạn thích" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "Khu vực" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" msgstr "Khu vực nào bạn thường ở?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 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:228 actions/register.php:230 -#, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "Lý lịch quá dài (không quá 140 ký tự)" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: 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ự)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." +msgstr "" -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "Trang chủ '%s' không hợp lệ" +msgstr "Địa chỉ email không đúng:%s" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 #, fuzzy msgid "Couldn't update user for autosubscribe." msgstr "Không thể cập nhật thành viên." -#: actions/profilesettings.php:363 +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 #, fuzzy msgid "Couldn't save location prefs." msgstr "Không thể lưu hồ sơ cá nhân." -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "Không thể lưu hồ sơ cá nhân." -#: actions/profilesettings.php:383 +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 #, fuzzy msgid "Couldn't save tags." msgstr "Không thể lưu hồ sơ cá nhân." +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "Đã lưu các điều chỉnh." @@ -3261,33 +4319,46 @@ msgid "" "tool." msgstr "" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 #, fuzzy msgid "Public tag cloud" msgstr "Dòng tin công cộng" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " +msgid "These are most popular recent tags on %s" msgstr "" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" msgstr "" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" msgstr "" @@ -3320,22 +4391,27 @@ msgid "Could not update user with confirmed email address." msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." #: actions/recoverpassword.php:152 +#, fuzzy 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 "" +"Hướng dẫn cách khôi phục mật khẩu đã được gửi đến địa chỉ email đăng ký " +"trong tài khoản của bạn." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " msgstr "" #: actions/recoverpassword.php:188 +#, fuzzy msgid "Password recovery" -msgstr "" +msgstr "Yêu cầu khôi phục lại mật khẩu đã được gửi" #: actions/recoverpassword.php:191 +#, fuzzy msgid "Nickname or email address" -msgstr "" +msgstr "Nhập biệt hiệu hoặc email." #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -3399,14 +4475,14 @@ msgid "Unexpected password reset." msgstr "Bất ngờ reset mật khẩu." #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." -msgstr "Mật khẩu phải nhiều hơn 6 ký tự." +msgid "Password must be 6 characters or more." +msgstr "" #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Mật khẩu và mật khẩu xác nhận không khớp nhau." -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "Lỗi xảy ra khi tạo thành viên." @@ -3414,7 +4490,7 @@ msgstr "Lỗi xảy ra khi tạo thành viên." msgid "New password successfully saved. You are now logged in." msgstr "Mật khẩu mới đã được lưu. Bạn có thể đăng nhập ngay bây giờ." -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." msgstr "" @@ -3427,91 +4503,94 @@ 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:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "Đăng ký" #: actions/register.php:142 -#, fuzzy msgid "Registration not allowed." -msgstr "Biệt hiệu không được cho phép." +msgstr "Đăng ký" -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." msgstr "Bạn không thể đăng ký nếu không đồng ý các điều khoản." -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "Địa chỉ email đã tồn tại." -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "Tên đăng nhập hoặc mật khẩu không hợp lệ." -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." msgstr "" "1-64 chữ cái thường hoặc là chữ số, không có dấu chấm hay khoảng trắng. Bắt " "buộc." -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." msgstr "Nhiều hơn 6 ký tự. Bắt buộc" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." msgstr "Cùng mật khẩu ở trên. Bắt buộc." #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "Email" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" msgstr "Chỉ dùng để cập nhật, thông báo, và hồi phục mật khẩu" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" msgstr "Họ tên đầy đủ của bạn, tốt nhất là tên thật của bạn." -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên " + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." msgstr "" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." msgstr "" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, fuzzy, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr " ngoại trừ thông tin riêng: mật khẩu, email, địa chỉ IM, số điện thoại" -#: actions/register.php:583 +#: actions/register.php:589 #, fuzzy, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3542,7 +4621,7 @@ msgstr "" "\n" "Cảm ơn bạn đã đăng ký để là thành viên và rất mong bạn sẽ thích dịch vụ này." -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" @@ -3567,9 +4646,8 @@ msgid "Remote subscribe" msgstr "Đăng nhận từ xa" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "Theo nhóm này" +msgstr "Ngừng đăng ký từ người dùng này" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -3588,7 +4666,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL trong hồ sơ cá nhân của bạn ở trên các trang microblogging khác" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" msgstr "Theo bạn này" @@ -3629,10 +4707,9 @@ 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:675 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "Tạo" +msgstr "Khởi tạo" #: actions/repeat.php:119 #, fuzzy @@ -3640,7 +4717,7 @@ msgid "Repeated!" msgstr "Tạo" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" msgstr "Trả lời cho %s" @@ -3651,19 +4728,19 @@ msgid "Replies to %1$s, page %2$d" msgstr "%s chào mừng bạn " #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/replies.php:199 #, php-format @@ -3702,9 +4779,8 @@ msgid "User doesn't have this role." msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "Hình đại diện đã được cập nhật." +msgstr "Số liệu thống kê" #: actions/sandbox.php:65 actions/unsandbox.php:65 #, fuzzy @@ -3718,12 +4794,12 @@ msgstr "Người dùng không có thông tin." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." +msgid "Session settings for this StatusNet site" msgstr "" #: actions/sessionsadminpanel.php:175 @@ -3743,7 +4819,6 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Thay đổi hình đại diện" @@ -3759,30 +4834,31 @@ msgid "Application profile" msgstr "Tin nhắn không có hồ sơ cá nhân" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 +#: lib/applicationeditform.php:190 #, fuzzy msgid "Name" msgstr "Biệt danh" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 +#: actions/showapplication.php:178 lib/applicationeditform.php:227 #, fuzzy msgid "Organization" msgstr "Thư mời đã gửi" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3800,6 +4876,11 @@ msgstr "" msgid "Reset key & secret" msgstr "" +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "Xóa" + #: actions/showapplication.php:261 msgid "Application info" msgstr "" @@ -3884,82 +4965,106 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 -#, fuzzy, php-format +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 +#, php-format msgid "%s group" -msgstr "%s và nhóm" +msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:84 +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 #, fuzzy, php-format msgid "%1$s group, page %2$d" msgstr "Thành viên" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "Thông tin nhóm" +msgstr "Người dùng không có thông tin." -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 #, fuzzy msgid "Note" msgstr "Tin nhắn" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 -#, fuzzy +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" -msgstr "Mã nhóm" +msgstr "Không tìm thấy nhóm." -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" -#: actions/showgroup.php:350 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" msgstr "Thành viên" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 #, fuzzy msgid "All members" msgstr "Thành viên" -#: actions/showgroup.php:439 -#, fuzzy +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" -msgstr "Tạo" +msgstr "" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3969,7 +5074,10 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3978,88 +5086,118 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:489 +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" msgstr "" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "Không có tin nhắn nào." -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 #, fuzzy msgid "Only the sender and recipient may read this message." msgstr "Chỉ có người gửi hoặc người nhận mới có thể xem tin nhắn này" -#: actions/showmessage.php:108 -#, php-format +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 +#, fuzzy, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "%s chào mừng bạn " -#: actions/showmessage.php:113 -#, php-format +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 +#, fuzzy, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "%s chào mừng bạn " #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Tin đã gửi" +msgstr "Không có mã nào được nhập" -#: actions/showstream.php:73 -#, fuzzy, php-format -msgid " tagged %s" -msgstr "Thông báo được gắn thẻ %s" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, php-format +msgid "%1$s tagged %2$s" +msgstr "" -#: actions/showstream.php:79 +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 #, fuzzy, php-format msgid "%1$s, page %2$d" msgstr "%s và bạn bè" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Dòng tin nhắn cho %s" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "Chọn những người bạn của %s" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" -#: actions/showstream.php:148 +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 #, fuzzy, php-format msgid "FOAF for %s" msgstr "Hộp thư đi của %s" -#: actions/showstream.php:200 +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 #, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." msgstr "" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4068,7 +5206,9 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -4076,7 +5216,8 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" -#: actions/showstream.php:305 +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 #, fuzzy, php-format msgid "Repeat of %s" msgstr "Trả lời cho %s" @@ -4193,44 +5334,47 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "Thông báo mới" +msgstr "Tin nhắn" -#: actions/sitenoticeadminpanel.php:67 +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 #, fuzzy msgid "Edit site-wide message" msgstr "Tin mới nhất" -#: actions/sitenoticeadminpanel.php:103 +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 #, fuzzy msgid "Unable to save site notice." msgstr "Không thể lưu thông tin Twitter của bạn!" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." msgstr "" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Thông báo mới" +msgstr "Xóa tin nhắn" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "Thông báo mới" +msgstr "Xóa tin nhắn" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "Thiết lập SMS" +msgstr "Thay đổi hình đại diện" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4247,9 +5391,8 @@ msgstr "Trang này không phải là phương tiện truyền thông mà bạn c #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "IM" +msgstr "Địa chỉ email" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4282,9 +5425,8 @@ msgstr "Xác nhận" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "Số điện thoại để nhắn SMS " +msgstr "Không có số điện thoại." #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4293,9 +5435,8 @@ msgstr "Số điện thoại, không cho phép nhập dấu chấm và ký tự #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "Tính năng" +msgstr "Các tính năng đã được lưu." #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 @@ -4331,9 +5472,8 @@ msgstr "Đó không phải là số điện thoại của bạn." #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 -#, fuzzy msgid "That phone number already belongs to another user." -msgstr "Địa chỉ email Yahoo này đã có người khác sử dụng rồi." +msgstr "Jabber ID này đã thuộc về người khác rồi." #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 @@ -4353,9 +5493,8 @@ msgstr "Đó không phải là số điện thoại của bạn." #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "Sự xác nhận đã bị hủy bỏ." +msgstr "Xác nhận SMS" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4399,14 +5538,13 @@ msgstr "Không có mã nào được nhập" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Tôi theo" +msgstr "Xac nhan dia chi email" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4457,26 +5595,21 @@ msgstr "" msgid "Save snapshot settings" msgstr "Thay đổi hình đại diện" -#: actions/subedit.php:70 -#, fuzzy +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." -msgstr "Bạn chưa cập nhật thông tin riêng" +msgstr "Bạn đã theo những người này:" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "Không thể tạo đăng nhận." +msgstr "Không thể chèn thêm vào đăng nhận." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "Không có tin nhắn nào." - #: actions/subscribe.php:117 #, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." @@ -4487,63 +5620,84 @@ msgstr "Bạn chưa cập nhật thông tin riêng" msgid "Subscribed" msgstr "Theo bạn này" -#: actions/subscribers.php:50 +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 #, fuzzy, php-format msgid "%s subscribers" msgstr "Bạn này theo tôi" -#: actions/subscribers.php:52 +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 #, fuzzy, php-format msgid "%1$s subscribers, page %2$d" msgstr "Theo tôi" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." msgstr "Có nhiều người nghe theo lời nhắn của bạn." -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." msgstr "Có nhiều người nghe theo lời nhắn của %s." -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" +"return the favor." msgstr "" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" msgstr "" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "Tất cả đăng nhận" - -#: actions/subscriptions.php:54 +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 #, fuzzy, php-format msgid "%1$s subscriptions, page %2$d" msgstr "Tất cả đăng nhận" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." msgstr "Có nhiều người gửi lời nhắn để bạn nghe theo." -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." msgstr "Có nhiều người gửi lời nhắn để %s nghe theo." -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4553,39 +5707,50 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format msgid "%s is not listening to anyone." -msgstr "%1$s dang theo doi tin nhan cua ban tren %2$s." +msgstr "%1$s đang theo dõi lưu ý của bạn trên %2$s." -#: actions/subscriptions.php:208 +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "Chọn những người bạn của %s" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 #, fuzzy msgid "Jabber" msgstr "Không có Jabber ID." -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Dòng tin nhắn cho %s" +msgstr "Thông báo được gắn thẻ %s" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Dòng tin nhắn cho %s" +msgstr "Chọn những người bạn của %s" #: actions/tagother.php:39 #, fuzzy @@ -4598,12 +5763,11 @@ msgid "Tag %s" msgstr "Từ khóa" #: actions/tagother.php:77 lib/userprofile.php:76 -#, fuzzy msgid "User profile" -msgstr "Hồ sơ" +msgstr "Người dùng không có thông tin." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "" @@ -4653,9 +5817,8 @@ msgid "User is not silenced." msgstr "Người dùng không có thông tin." #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "Không có URL cho hồ sơ để quay về." +msgstr "Không có yêu cầu!" #: actions/unsubscribe.php:98 #, fuzzy @@ -4669,79 +5832,99 @@ msgid "" msgstr "" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" msgstr "" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." msgstr "" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." +msgid "Invalid default subscripton: '%1$s' is not a user." msgstr "" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "Hồ sơ " -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." msgstr "" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Gửi thư mời đến những người chưa có tài khoản" -#: actions/useradminpanel.php:235 +#. TRANS: Field label in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:236 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." msgstr "" -#: actions/useradminpanel.php:241 +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 #, fuzzy msgid "Default subscription" msgstr "Tất cả đăng nhận" -#: actions/useradminpanel.php:242 +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Tự động theo những người nào đăng ký theo tôi" -#: actions/useradminpanel.php:251 +#. TRANS: Form legend in user admin panel. +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations" msgstr "Thư mời đã gửi" -#: actions/useradminpanel.php:256 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 #, fuzzy msgid "Invitations enabled" msgstr "Thư mời đã gửi" -#: actions/useradminpanel.php:258 +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." msgstr "" +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "" + #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Đăng nhận cho phép" @@ -4757,7 +5940,9 @@ msgstr "" "nhắn của các thành viên này. Nếu bạn không yêu cầu đăng nhận xem tin nhắn " "của họ, hãy nhấn \"Hủy bỏ\"" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" msgstr "" @@ -4767,18 +5952,16 @@ msgstr "Chấp nhận" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "Theo nhóm này" +msgstr "Ngừng đăng ký từ người dùng này" #: actions/userauthorization.php:219 msgid "Reject" msgstr "Từ chối" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Tất cả đăng nhận" +msgstr "Đăng nhận cho phép" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4848,12 +6031,14 @@ msgstr "Không thể đọc URL cho hình đại diện '%s'" msgid "Wrong image type for avatar URL ‘%s’." msgstr "Kiểu file ảnh không phù hợp với '%s'" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 #, fuzzy msgid "Profile design" msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." @@ -4889,10 +6074,10 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 -#, php-format +#: lib/atomusernoticefeed.php:75 +#, fuzzy, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "Dòng tin nhắn cho %s" #: actions/version.php:75 #, fuzzy, php-format @@ -4938,7 +6123,7 @@ msgid "Plugins" msgstr "" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 +#: actions/version.php:198 lib/action.php:885 #, fuzzy msgid "Version" msgstr "Cá nhân" @@ -4947,64 +6132,109 @@ msgstr "Cá nhân" msgid "Author(s)" msgstr "" +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +#, fuzzy +msgid "Favor" +msgstr "Ưa thích" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "" + #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" msgstr "" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." msgstr "" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 +#: classes/File.php:276 classes/File.php:291 #, fuzzy msgid "Invalid filename." msgstr "Kích thước không hợp lệ." #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "Thông tin nhóm" +msgstr "Không tìm thấy nhóm." #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 +#: classes/Group_member.php:64 #, fuzzy msgid "Not part of group." msgstr "Không thể cập nhật thành viên." #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 +#: classes/Group_member.php:72 #, fuzzy msgid "Group leave failed." msgstr "Thông tin nhóm" +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +#, fuzzy +msgid "Join" +msgstr "Đăng nhập" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 #, fuzzy @@ -5024,22 +6254,20 @@ msgid "No database name or DSN found anywhere." msgstr "" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 -#, fuzzy +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "Thư bạn đã gửi" +msgstr "Thư đến của bạn" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 #, fuzzy msgid "Could not insert message." msgstr "Không thể chèn thêm vào đăng nhận." #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 -#, fuzzy +#: classes/Message.php:80 msgid "Could not update message with new URI." -msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." +msgstr "Không thể cập nhật thành viên." #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -5049,75 +6277,89 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" +msgstr "Lỗi xảy ra khi thêm mới hình đại diện" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 +#: classes/Notice.php:270 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Có lỗi xảy ra khi lưu tin nhắn." #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 +#: classes/Notice.php:275 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Có lỗi xảy ra khi lưu tin nhắn." #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." msgstr "" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 +#: classes/Notice.php:1012 #, fuzzy msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "" + #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1745 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" -msgstr "%s (%s)" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" +msgstr "" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." msgstr "" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." msgstr "" @@ -5129,183 +6371,210 @@ msgid "Missing profile." msgstr "Người dùng không có thông tin." #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:338 #, fuzzy msgid "Unable to save tag." msgstr "Không thể lưu thông tin Twitter của bạn!" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." msgstr "" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 +#: classes/Subscription.php:82 +#, fuzzy msgid "Already subscribed!" -msgstr "" +msgstr "Chưa đăng nhận!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 +#: classes/Subscription.php:87 #, fuzzy msgid "User has blocked you." msgstr "Người dùng không có thông tin." #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 +#: classes/Subscription.php:176 #, fuzzy msgid "Not subscribed!" msgstr "Chưa đăng nhận!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "Không thể xóa đăng nhận." +msgstr "Không thể chèn thêm vào đăng nhận." #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "Không thể xóa đăng nhận." +msgstr "Không thể chèn thêm vào đăng nhận." #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "Không thể xóa đăng nhận." +msgstr "Không thể chèn thêm vào đăng nhận." + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 +#: classes/User.php:395 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "" + #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 #, fuzzy msgid "Could not create group." msgstr "Không thể tạo favorite." #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "Không thể tạo đăng nhận." +msgstr "Không thể lưu hồ sơ cá nhân." #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "Không thể tạo đăng nhận." +msgstr "Không thể cập nhật thành viên." #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "Không thể tạo đăng nhận." +msgstr "Không thể lưu hồ sơ cá nhân." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" msgstr "Thay đổi các thiết lập trong hồ sơ cá nhân của bạn" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 #, fuzzy msgid "Upload an avatar" msgstr "Cập nhật hình đại diện không thành công." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "Thay đổi mật khẩu của bạn" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "Đang thực hiện việc thay đổi email" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "Hồ sơ" +msgstr "Người dùng không có thông tin." #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 -#, fuzzy +#: lib/accountsettingsaction.php:141 msgid "Other" -msgstr "Sau" +msgstr "Khác" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format +#: lib/action.php:148 +#, php-format msgid "%1$s - %2$s" -msgstr "%s (%s)" +msgstr "Trạng thái của %1$s vào %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 +#: lib/action.php:540 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Cá nhân" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 +#: lib/action.php:542 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Thay đổi mật khẩu của bạn" +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "Tài khoản" + #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Không thể chuyển đến máy chủ: %s" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" msgstr "Kết nối" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:553 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Tôi theo" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:560 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" @@ -5314,71 +6583,72 @@ msgstr "" "của bạn tham gia vào dịch vụ này." #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 +#: lib/action.php:563 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Thư mời" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:572 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Thoát" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Tạo tài khoản mới" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "Đăng ký" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Đăng nhập" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 +#: lib/action.php:589 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hướng dẫn" -#: lib/action.php:497 -#, fuzzy +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" -msgstr "Hướng dẫn" +msgstr "Trợ giúp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 #, fuzzy msgctxt "MENU" msgid "Search" @@ -5386,75 +6656,80 @@ msgstr "Tìm kiếm" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 +#: lib/action.php:620 lib/adminpanelaction.php:387 #, fuzzy msgid "Site notice" msgstr "Thông báo mới" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 +#: lib/action.php:757 #, fuzzy msgid "Page notice" msgstr "Thông báo mới" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:858 #, fuzzy msgid "Secondary site navigation" msgstr "Tôi theo" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "Hướng dẫn" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "Giới thiệu" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "Riêng tư" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" msgstr "Nguồn" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" msgstr "Liên hệ" -#: lib/action.php:794 +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 #, fuzzy msgid "Badge" msgstr "Tin đã gửi" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" msgstr "" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5464,13 +6739,16 @@ msgstr "" "%](%%site.broughtbyurl%%). " #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn." #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, fuzzy, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5482,369 +6760,469 @@ msgstr "" "licenses/agpl-3.0.html)." #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 +#: lib/action.php:954 #, fuzzy msgid "Site content license" msgstr "Tìm theo nội dung của tin nhắn" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 +#, fuzzy msgid "Pagination" -msgstr "" +msgstr "Đăng ký" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1351 #, fuzzy msgid "After" msgstr "Sau" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 #, fuzzy msgid "Before" msgstr "Trước" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +msgid "Post" +msgstr "" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 #, fuzzy msgid "You cannot make changes to this site." msgstr "Bạn đã theo những người này:" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Biệt hiệu không được cho phép." #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 #, fuzzy msgid "Unable to delete design setting." msgstr "Không thể lưu thông tin Twitter của bạn!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 +#: lib/adminpanelaction.php:337 #, fuzzy msgid "Basic site configuration" msgstr "Xac nhan dia chi email" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 +#: lib/adminpanelaction.php:339 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Thư mời" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 +#: lib/adminpanelaction.php:345 #, fuzzy msgid "Design configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Cá nhân" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 +#: lib/adminpanelaction.php:353 #, fuzzy msgid "User configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 +#: lib/adminpanelaction.php:361 #, fuzzy msgid "Access configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 +#: lib/adminpanelaction.php:369 #, fuzzy msgid "Paths configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 +#: lib/adminpanelaction.php:377 #, fuzzy msgid "Sessions configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "Thông báo mới" +msgstr "Xóa tin nhắn" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 +#: lib/adminpanelaction.php:393 #, fuzzy msgid "Snapshots configuration" msgstr "Xác nhận SMS" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "" + #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "" + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +#, fuzzy +msgid "Database error inserting OAuth application user." +msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, fuzzy, php-format -msgid "Describe your application in %d characters" -msgstr "Nói về những sở thích của nhóm trong vòng 140 ký tự" +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 +#, php-format +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -#, fuzzy +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "Nói về những sở thích của nhóm trong vòng 140 ký tự" +msgstr "Mô tả" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 #, fuzzy msgid "URL of the homepage of this application" msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên " #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:218 #, fuzzy msgid "Source URL" msgstr "Nguồn" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 #, fuzzy msgid "URL for the homepage of the organization" msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên " #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "Hủy" +#: lib/applicationlist.php:247 +msgid " by " +msgstr "" + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" msgstr "" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "" + #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "Xóa" +msgstr "Khôi phục" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" msgstr "" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "Hồ sơ " +msgstr "Xem trước" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" msgstr "" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -#, fuzzy -msgid "Password changing failed" -msgstr "Đã lưu mật khẩu." +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "" -#: lib/authenticationplugin.php:236 -#, fuzzy -msgid "Password changing is not allowed" -msgstr "Đã lưu mật khẩu." +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +#, fuzzy +msgid "Block" +msgstr "Chặn người dùng" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 #, fuzzy msgid "Command results" msgstr "Không có kết quả nào" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "" -#: lib/channel.php:240 -#, fuzzy +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" -msgstr " và bạn bè" +msgstr "Bạn và bạn bè" -#: lib/command.php:83 lib/command.php:105 +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 #, fuzzy -msgid "Notice with that id does not exist" +msgid "Notice with that id does not exist." msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." -#: lib/command.php:99 lib/command.php:596 +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 #, fuzzy -msgid "User has no last notice" +msgid "User has no last notice." msgstr "Người dùng không có thông tin." #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 +#: lib/command.php:128 #, fuzzy, php-format -msgid "Could not find a user with nickname %s" +msgid "Could not find a user with nickname %s." msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:238 #, fuzzy, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "Tin đã gửi" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5852,209 +7230,241 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 #, fuzzy msgid "Notice marked as fave." msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "Bạn đã theo những người này:" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." +#: lib/command.php:357 +#, php-format +msgid "%1$s joined group %2$s." +msgstr "" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 -#, fuzzy, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." +#: lib/command.php:405 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, fuzzy, php-format msgid "Fullname: %s" msgstr "Tên đầy đủ" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 +#, php-format msgid "Location: %s" -msgstr "Thành phố: %s" +msgstr "Thành phố" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 +#, php-format msgid "Homepage: %s" -msgstr "Trang chủ hoặc Blog: %s" +msgstr "Trang chủ hoặc Blog" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, fuzzy, php-format msgid "About: %s" msgstr "Giới thiệu" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, fuzzy, php-format -msgid "Direct message to %s sent" -msgstr "Tin nhắn riêng" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 #, fuzzy msgid "Error sending direct message." msgstr "Thư bạn đã gửi" -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "Bạn không thể đăng ký nếu không đồng ý các điều khoản." - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "Xóa tin nhắn" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#: lib/command.php:553 #, fuzzy, php-format -msgid "Notice from %s repeated" +msgid "Notice from %s repeated." msgstr "Tin đã gửi" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "Có lỗi xảy ra khi lưu tin nhắn." +msgstr "Lỗi xảy ra khi tạo thành viên." -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "" -#: lib/command.php:571 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 #, fuzzy, php-format -msgid "Reply to %s sent" +msgid "Reply to %s sent." msgstr "Trả lời tin nhắn này" -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 #, fuzzy msgid "Error saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 #, fuzzy msgid "Can't subscribe to OMB profiles by command." msgstr "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:634 -#, fuzzy, php-format -msgid "Subscribed to %s" -msgstr "Theo nhóm này" - -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 +#, php-format +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:664 -#, fuzzy, php-format -msgid "Unsubscribed from %s" -msgstr "Hết theo" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 +#, php-format +msgid "Unsubscribed from %s." +msgstr "" + +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 #, fuzzy msgid "Notification off." msgstr "Không có mã số xác nhận." -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 #, fuzzy msgid "Notification on." msgstr "Không có mã số xác nhận." -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "Hết theo" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 -#, fuzzy +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." -msgstr "Bạn chưa cập nhật thông tin riêng" +msgstr "Bạn đã theo những người này:" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Bạn đã theo những người này:" -#: lib/command.php:800 +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 #, fuzzy msgid "No one is subscribed to you." msgstr "Không thể tạo favorite." -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Không thể tạo favorite." -#: lib/command.php:822 +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 #, fuzzy msgid "You are not a member of any groups." msgstr "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -6096,53 +7506,72 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -#, fuzzy -msgid "No configuration file found. " -msgstr "Không có mã số xác nhận." - -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." msgstr "" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "" + +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." msgstr "" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" -msgstr "IM" +msgstr "" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "Thay đổi bởi tin nhắn nhanh (IM)" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" msgstr "Thay đổi bởi SMS" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 -#, fuzzy +msgctxt "MENU" msgid "Connections" -msgstr "Kết nối" +msgstr "" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" msgstr "" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 -#, fuzzy +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "Tải file" +msgstr "Tải tập tin lên" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 #, fuzzy msgid "" @@ -6151,43 +7580,56 @@ msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." msgstr "" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "cảnh báo tin nhắn" +msgstr "Những tin nhắn ưa thích của %s" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "Bạn muốn cảnh báo tin nhắn này?" +msgstr "Những tin nhắn ưa thích của %s" -#: lib/favorform.php:140 -#, fuzzy -msgid "Favor" -msgstr "Ưa thích" - -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" msgstr "" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" msgstr "" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" msgstr "" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" msgstr "" -#: lib/feedlist.php:64 -msgid "Export data" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" msgstr "" #: lib/galleryaction.php:121 @@ -6221,10 +7663,13 @@ msgstr "" msgid "Grant this user the \"%s\" role" msgstr "" +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 chữ cái thường hoặc là chữ số, không có dấu chấm hay " + #: lib/groupeditform.php:163 -#, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên " +msgid "URL of the homepage or blog of the group or topic." +msgstr "" #: lib/groupeditform.php:168 #, fuzzy @@ -6232,65 +7677,112 @@ msgid "Describe the group or topic" msgstr "Nói về những sở thích của nhóm trong vòng 140 ký tự" #: lib/groupeditform.php:170 -#, fuzzy, php-format -msgid "Describe the group or topic in %d characters" -msgstr "Nói về những sở thích của nhóm trong vòng 140 ký tự" - -#: lib/groupeditform.php:179 -#, fuzzy -msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Bạn ở đâu, \"Thành phố, Tỉnh thành, Quốc gia\"" - -#: lib/groupeditform.php:187 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "" + +#: lib/groupeditform.php:182 +msgid "" +"Location for the group, if any, like \"City, State (or Region), Country\"." msgstr "" -#: lib/groupnav.php:85 -msgid "Group" -msgstr "Nhóm" - -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "Ban user" - -#: lib/groupnav.php:102 -#, fuzzy, php-format -msgid "%s blocked users" -msgstr "Ban user" - -#: lib/groupnav.php:108 +#: lib/groupeditform.php:190 #, php-format +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" +msgid "Group" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 +#, php-format +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 +#, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "Thoát" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 #, fuzzy msgid "Groups with most members" msgstr "Thành viên" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" msgstr "" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "" @@ -6304,42 +7796,58 @@ msgstr "Trang này không phải là phương tiện truyền thông mà bạn c msgid "Unsupported image file format." msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:88 +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Upload từng phần." -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "Hệ thống xảy ra lỗi trong khi tải file." -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "File hỏng hoặc không phải là file ảnh." -#: lib/imagefile.php:122 +#: lib/imagefile.php:160 #, fuzzy msgid "Lost our file." msgstr "Không có tin nhắn nào." -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 #, fuzzy msgid "Unknown file type" msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "" #: lib/jabber.php:387 #, php-format @@ -6351,80 +7859,68 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "Đăng nhập" - #: lib/leaveform.php:114 #, fuzzy msgid "Leave" msgstr "Lưu" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "Sai tên đăng nhập hoặc mật khẩu." +msgstr "Tên đăng nhập hoặc mật khẩu không hợp lệ." #: lib/logingroupnav.php:86 #, fuzzy msgid "Sign up for a new account" msgstr "Tạo tài khoản mới" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "Xac nhan dia chi email" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 -#, fuzzy, php-format +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 +#, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" -"Chào, %1$s .\n" -"\n" -"Không biết có phải bạn là người vừa nhập địa chỉ email này trên %2$s.\n" -"\n" -"Nếu bạn là người nhập, và bạn muốn xác nhận lại, hãy nhấn chuột vào đường " -"dẫn dưới đây: \n" -"\n" -"\t%3$s\n" -"\n" -"Nếu không phải bạn, hãy bỏ qua tin nhắn này.\n" -"\n" -"Cảm ơn bạn đã bỏ thời gian để đọc thư,\n" -"\n" -"%4$s\n" -"\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s đang theo dõi lưu ý của bạn trên %2$s." -#: lib/mail.php:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, fuzzy, php-format +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 +#, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -6432,32 +7928,30 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" -"%1$s đang theo dõi các tin nhắn của bạn trên %2$s.\n" -"\n" -"\t%3$s\n" -"\n" -"Người bạn trung thành của bạn,\n" -"%4$s.\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "Thành phố: %s" +msgstr "Lý lịch" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "Dia chi email moi de gui tin nhan den %s" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6467,42 +7961,39 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"Bạn có địa chỉ mới để gửi tin nhắn trên %1$s.\n" -"\n" -"Hãy gửi email đến %2$s để có thể nhắn tin.\n" -"\n" -"Bạn có thể đọc hướng dẫn tại %3$s.\n" -"\n" -"Chúc sức khỏe,\n" -"%4$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, fuzzy, php-format msgid "%s status" msgstr "Trạng thái của %1$s vào %2$s" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" msgstr "Xác nhận SMS" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 #, fuzzy, php-format msgid "%s: confirm you own this phone number with this code:" msgstr "Đó không phải là số điện thoại của bạn." -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" msgstr "" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6518,14 +8009,18 @@ msgid "" "%4$s\n" msgstr "" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" msgstr "Bạn có tin nhắn riêng từ %s" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6558,14 +8053,19 @@ msgstr "" "Chúc sức khỏe,\n" "%5$s\n" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "%s da them tin nhan cua ban vao danh sach tin nhan ua thich" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6600,7 +8100,7 @@ msgstr "" "%5$s\n" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" @@ -6608,13 +8108,20 @@ msgid "" "\t%s" msgstr "" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" +msgid "%1$s (@%2$s) sent a notice to your attention" msgstr "" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6651,7 +8158,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:505 +#: lib/mailbox.php:228 lib/noticelist.php:521 #, fuzzy msgid "from" msgstr " từ " @@ -6673,62 +8180,81 @@ msgstr "Xin lỗi, đó không phải là địa chỉ email mà bạn nhập v msgid "Sorry, no incoming email allowed." msgstr "Xin lỗi, không có địa chỉ email cho phép." -#: lib/mailhandler.php:228 +#: lib/mailhandler.php:229 #, fuzzy, php-format msgid "Unsupported message type: %s" msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." msgstr "" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 #, fuzzy msgid "Could not determine file's MIME type." msgstr "Không thể lấy lại các tin nhắn ưa thích" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 @@ -6736,113 +8262,141 @@ msgstr "" msgid "Send a direct notice" msgstr "Xóa tin nhắn" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "" + +#: lib/messageform.php:153 msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 +#: lib/messageform.php:166 lib/noticeform.php:186 #, fuzzy msgid "Available characters" msgstr "Nhiều hơn 6 ký tự" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 #, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Gửi" +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +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." + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Thông báo mới" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "Bạn đang làm gì thế, %s?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 #, fuzzy msgid "Share my location" msgstr "Không thể lưu hồ sơ cá nhân." -#: lib/noticeform.php:215 +#: lib/noticeform.php:216 #, fuzzy msgid "Do not share my location" msgstr "Không thể lưu hồ sơ cá nhân." -#: lib/noticeform.php:216 +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 #, fuzzy msgid "N" msgstr "Không" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" msgstr "" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" msgstr "" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" msgstr "" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:453 +#: lib/noticelist.php:468 msgid "at" msgstr "" -#: lib/noticelist.php:567 +#: lib/noticelist.php:517 +msgid "web" +msgstr "" + +#: lib/noticelist.php:583 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:602 +#: lib/noticelist.php:618 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:629 -#, fuzzy +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "Trả lời tin nhắn này" +msgstr "Không thể xóa tin nhắn này." -#: lib/noticelist.php:630 +#: lib/noticelist.php:646 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:674 -#, fuzzy +#: lib/noticelist.php:690 msgid "Notice repeated" -msgstr "Tin đã gửi" +msgstr "Tìm kiếm thông báo" #: lib/nudgeform.php:116 -#, fuzzy msgid "Nudge this user" -msgstr "Tin đã gửi" +msgstr "Bỏ chặn người dùng này" #: lib/nudgeform.php:128 #, fuzzy @@ -6854,56 +8408,52 @@ msgstr "Tin đã gửi" msgid "Send a nudge to this user" msgstr "Bạn đã theo những người này:" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "Lỗi xảy ra khi thêm mới hồ sơ cá nhân" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "Lỗi xảy ra khi thêm mới hình đại diện" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "Lỗi xảy ra khi cập nhật hồ sơ cá nhân" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "Lỗi xảy ra khi thêm mới hồ sơ cá nhân" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "Xóa tin nhắn" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." msgstr "Không thể chèn thêm vào đăng nhận." -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" msgstr "Cá nhân" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "Trả lời" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "Ưa thích" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "Hộp thư đến" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" msgstr "Thư đến của bạn" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "Hộp thư đi" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" msgstr "Thư bạn đã gửi" @@ -6912,7 +8462,8 @@ msgstr "Thư bạn đã gửi" msgid "Tags in %s's notices" msgstr "cảnh báo tin nhắn" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 #, fuzzy msgid "Unknown" msgstr "Không tìm thấy action" @@ -6985,26 +8536,25 @@ msgid "No return-to arguments." msgstr "Không có tài liệu nào." #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Trả lời tin nhắn này" +msgstr "Không thể xóa tin nhắn này." #: lib/repeatform.php:132 msgid "Yes" msgstr "Có" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Trả lời tin nhắn này" +msgstr "Không thể xóa tin nhắn này." #: lib/revokeroleform.php:91 #, fuzzy, php-format msgid "Revoke the \"%s\" role from this user" msgstr "Ban user" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." msgstr "" #: lib/sandboxform.php:67 @@ -7017,20 +8567,26 @@ msgstr "Hộp thư đến" msgid "Sandbox this user" msgstr "Bỏ chặn người dùng này" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 #, fuzzy msgid "Search site" msgstr "Tìm kiếm" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" -msgstr "Tìm kiếm" +msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 #, fuzzy msgid "Search help" msgstr "Tìm kiếm" @@ -7066,9 +8622,8 @@ msgid "Silence" msgstr "Thông báo mới" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Ban user" +msgstr "Bỏ chặn người dùng này" #: lib/subgroupnav.php:83 #, fuzzy, php-format @@ -7076,9 +8631,9 @@ msgid "People %s subscribes to" msgstr "Đăng nhận từ xa" #: lib/subgroupnav.php:91 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "Theo nhóm này" +msgstr "Đăng nhận từ xa" #: lib/subgroupnav.php:99 #, php-format @@ -7111,6 +8666,11 @@ msgstr "" msgid "None" msgstr "Không" +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "" + #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." msgstr "" @@ -7120,37 +8680,43 @@ msgid "The theme file is missing or the upload failed." msgstr "" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 #, fuzzy msgid "Failed saving theme." msgstr "Cập nhật hình đại diện không thành công." -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 +#: lib/themeuploader.php:260 #, fuzzy msgid "Error opening theme archive." msgstr "Lỗi xảy ra khi cập nhật hồ sơ cá nhân" @@ -7160,6 +8726,12 @@ msgstr "Lỗi xảy ra khi cập nhật hồ sơ cá nhân" msgid "Top posters" msgstr "Top posters" +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +msgstr "" + #: lib/unsandboxform.php:69 msgid "Unsandbox" msgstr "" @@ -7186,128 +8758,172 @@ msgstr "Ngừng đăng ký từ người dùng này" msgid "Unsubscribe" msgstr "Hết theo" -#: lib/usernoprofileexception.php:58 -#, fuzzy, php-format -msgid "User %s (%d) has no profile record." -msgstr "Người dùng không có thông tin." +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "" -#: lib/userprofile.php:117 +#: lib/userprofile.php:119 #, fuzzy msgid "Edit Avatar" msgstr "Hình đại diện" -#: lib/userprofile.php:234 lib/userprofile.php:248 +#: lib/userprofile.php:236 lib/userprofile.php:250 #, fuzzy msgid "User actions" msgstr "Không tìm thấy action" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." msgstr "" -#: lib/userprofile.php:263 +#: lib/userprofile.php:265 #, fuzzy msgid "Edit profile settings" msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "" -#: lib/userprofile.php:287 +#: lib/userprofile.php:289 #, fuzzy msgid "Send a direct message to this user" msgstr "Bạn đã theo những người này:" -#: lib/userprofile.php:288 +#: lib/userprofile.php:290 #, fuzzy msgid "Message" msgstr "Tin mới nhất" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 -#, fuzzy +#: lib/userprofile.php:369 msgid "User role" -msgstr "Hồ sơ" +msgstr "Người dùng không có thông tin." -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "vài giây trước" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" msgstr "1 phút trước" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "%d phút trước" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" msgstr "1 giờ trước" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "%d giờ trước" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" msgstr "1 ngày trước" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "%d ngày trước" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" msgstr "1 tháng trước" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "%d tháng trước" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" msgstr "1 năm trước" -#: lib/webcolor.php:82 +#: lib/webcolor.php:80 #, fuzzy, php-format msgid "%s is not a valid color!" msgstr "Trang chủ không phải là URL" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgid "Unknown user. Go to %s to add your address to your account" msgstr "" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "" + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." +msgstr "" + +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 +#, php-format +msgid "Getting backup from file '%s'." +msgstr "" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 0a982b2e44..30b5f63bd7 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -1,1698 +1,2384 @@ -# Translation of StatusNet to Simplified Chinese +# Translation of StatusNet - Core to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net # -# Author@translatewiki.net: Chenxiaoqino -# Author@translatewiki.net: Shizhao -# Author@translatewiki.net: Sweeite012f +# Author: Brion +# Author: Chenxiaoqino +# Author: Shizhao +# Author: Sweeite012f +# Author: Tommyang +# Author: ZhengYiFeng # -- -# Messages of identi.ca -# Copyright (C) 2008 Gouki <gouki@goukihq.org> # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:13:25+0000\n" -"Language-Team: Simplified Chinese\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:21+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-POT-Import-Date: 2010-11-30 20:43:14+0000\n" -#. TRANS: Page title +#. TRANS: Page title for Access admin panel that allows configuring site access. #. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy +#: actions/accessadminpanel.php:53 lib/adminpanelaction.php:363 msgid "Access" -msgstr "接受" +msgstr "访问" -#. TRANS: Page notice -#: actions/accessadminpanel.php:67 -#, fuzzy +#. TRANS: Page notice. +#: actions/accessadminpanel.php:64 msgid "Site access settings" -msgstr "头像设置" +msgstr "网站访问设置" #. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 -#, fuzzy +#: actions/accessadminpanel.php:151 msgid "Registration" msgstr "注册" -#. TRANS: Checkbox instructions for admin setting "Private" -#: actions/accessadminpanel.php:165 +#. TRANS: Checkbox instructions for admin setting "Private". +#: actions/accessadminpanel.php:155 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "要禁止匿名用户(未登录)浏览网站吗?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. -#: actions/accessadminpanel.php:167 -#, fuzzy +#: actions/accessadminpanel.php:157 msgctxt "LABEL" msgid "Private" -msgstr "隐私" +msgstr "非公开" -#. TRANS: Checkbox instructions for admin setting "Invite only" -#: actions/accessadminpanel.php:174 +#. TRANS: Checkbox instructions for admin setting "Invite only". +#: actions/accessadminpanel.php:164 msgid "Make registration invitation only." msgstr "只允许邀请注册。" #. TRANS: Checkbox label for configuring site as invite only. -#: actions/accessadminpanel.php:176 -#, fuzzy +#: actions/accessadminpanel.php:166 msgid "Invite only" -msgstr "邀请" +msgstr "邀请制" -#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) -#: actions/accessadminpanel.php:183 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations). +#: actions/accessadminpanel.php:173 msgid "Disable new registrations." -msgstr "禁止新用户注册" +msgstr "禁止新用户注册。" #. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 +#: actions/accessadminpanel.php:175 msgid "Closed" -msgstr "" +msgstr "封闭(不允许新用户注册)" -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 -#, fuzzy +#. TRANS: Title for button to save access settings in site admin panel. +#: actions/accessadminpanel.php:191 msgid "Save access settings" -msgstr "头像设置" +msgstr "保存访问设置" +#. TRANS: Tooltip for button to save access settings in site admin panel. #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. +#. TRANS: Button text for saving "Other settings" in profile. +#. TRANS: Button text to store form data in the Paths admin panel. +#. TRANS: Button to save input in profile settings. +#. TRANS: Button text for saving site notice in admin panel. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 -#, fuzzy +#. TRANS: Save button for settings for a profile in a subscriptions list. +#. TRANS: Button text to save user settings in user admin panel. +#. TRANS: Button label in the "Edit application" form. +#. TRANS: Button text on profile design page to save settings. +#: actions/accessadminpanel.php:193 actions/emailsettings.php:254 +#: actions/imsettings.php:187 actions/othersettings.php:134 +#: actions/pathsadminpanel.php:512 actions/profilesettings.php:201 +#: actions/sitenoticeadminpanel.php:197 actions/smssettings.php:209 +#: actions/subscriptions.php:262 actions/useradminpanel.php:298 +#: lib/applicationeditform.php:355 lib/designsettings.php:270 +#: lib/groupeditform.php:207 msgctxt "BUTTON" msgid "Save" msgstr "保存" +#. TRANS: Server error when page not found (404). #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." -msgstr "未找到此消息。" +msgstr "没有这个页面。" -#: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 -#: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 -#: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 -#: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/hcard.php:67 actions/microsummary.php:62 actions/newmessage.php:116 -#: actions/otp.php:76 actions/remotesubscribe.php:145 -#: actions/remotesubscribe.php:154 actions/replies.php:73 -#: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 -#: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#. TRANS: Client error when user not found for an action. +#. TRANS: Client error when user not found for an rss related action. +#. TRANS: Client error displayed when no existing user is provided for a user's delivery device setting. +#. TRANS: Client error displayed if a user could not be found. +#. TRANS: Client error when user not found updating a profile background image. +#. TRANS: Client error displayed updating profile image without having a user object. +#. TRANS: Client error when user not found for an API action to remove a block for a user. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error when user not found for an API direct message action. +#. TRANS: Client error given when a user was not found (404). +#. TRANS: Client error displayed when checking group membership for a non-existing user. +#. TRANS: Client error displayed when trying to have a non-existing user join a group. +#. TRANS: Client error displayed when trying to have a non-existing user leave a group. +#. TRANS: Client error displayed when updating a status for a non-existing user. +#. TRANS: Client error displayed when requesting a list of followers for a non-existing user. +#. TRANS: Client error displayed when requesting most recent favourite notices by a user for a non-existing user. +#. TRANS: Client error displayed when requesting dents of a user and friends for a user that does not exist. +#. TRANS: Client error displayed when requesting most recent dents by user and friends for a non-existing user. +#. TRANS: Client error displayed when requesting most recent mentions for a non-existing user. +#. TRANS: Client error displayed requesting most recent notices for a non-existing user. +#. TRANS: Client error displayed trying to get an avatar for a non-existing user. +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. +#: actions/all.php:80 actions/allrss.php:69 +#: actions/apiaccountupdatedeliverydevice.php:110 +#: actions/apiaccountupdateprofile.php:103 +#: actions/apiaccountupdateprofilebackgroundimage.php:118 +#: actions/apiaccountupdateprofileimage.php:104 actions/apiatomservice.php:60 +#: actions/apiblockcreate.php:95 actions/apiblockdestroy.php:94 +#: actions/apidirectmessage.php:75 actions/apidirectmessagenew.php:72 +#: actions/apigroupcreate.php:111 actions/apigroupismember.php:89 +#: actions/apigroupjoin.php:98 actions/apigroupleave.php:98 +#: actions/apigrouplist.php:70 actions/apistatusesupdate.php:230 +#: actions/apisubscriptions.php:85 actions/apitimelinefavorites.php:70 +#: actions/apitimelinefriends.php:173 actions/apitimelinehome.php:78 +#: actions/apitimelinementions.php:77 actions/apitimelineuser.php:79 +#: actions/avatarbynickname.php:79 actions/favoritesrss.php:74 +#: actions/foaf.php:40 actions/foaf.php:58 actions/hcard.php:67 +#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 +#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 +#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 +#: actions/showfavorites.php:105 actions/userbyid.php:74 +#: actions/usergroups.php:93 actions/userrss.php:40 actions/userxrd.php:59 +#: actions/xrds.php:71 lib/command.php:497 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "没有这个用户。" #. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 +#: actions/all.php:91 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s 和好友,第%2$d页" -#. TRANS: Page title. %1$s is user nickname -#. TRANS: H1 text. %1$s is user nickname +#. TRANS: Page title. %s is user nickname +#. TRANS: H1 text for page. %s is a user nickname. #. TRANS: Message is used as link title. %s is a user nickname. -#: actions/all.php:93 actions/all.php:185 actions/allrss.php:116 -#: actions/apitimelinefriends.php:210 actions/apitimelinehome.php:116 -#: lib/personalgroupnav.php:100 +#. TRANS: Timeline title for user and friends. %s is a user nickname. +#: actions/all.php:94 actions/all.php:191 actions/allrss.php:117 +#: actions/apitimelinefriends.php:207 actions/apitimelinehome.php:113 +#: lib/personalgroupnav.php:103 #, php-format msgid "%s and friends" -msgstr "%s 及好友" +msgstr "%s 和好友们" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 +#. TRANS: %s is user nickname. +#: actions/all.php:108 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s 好友的聚合(RSS 1.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:116 +#. TRANS: %s is user nickname. +#: actions/all.php:117 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s 好友的聚合(RSS 2.0)" -#. TRANS: %1$s is user nickname -#: actions/all.php:125 +#. TRANS: %s is user nickname. +#: actions/all.php:126 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s 好友的聚合(Atom)" -#. TRANS: %1$s is user nickname -#: actions/all.php:138 +#. TRANS: Empty list message. %s is a user nickname. +#: actions/all.php:139 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" -#: actions/all.php:143 +#. TRANS: Encouragement displayed on logged in user's empty timeline. +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:146 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"尝试关注更多的人、[加入一个小组](%%action.groups%%) 或者自己发一些东西。" -#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" -#: actions/all.php:146 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@". +#. TRANS: This message contains Markdown links. Keep "](" together. +#: actions/all.php:150 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from their profile or [post something " "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" +"你可以试着到他们的资料页 [呼叫%1$s](../%2$s) 他们或者 [给他们发消息](%%%%" +"action.newnotice%%%%?status_textarea=%3$s)。" -#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211 +#. TRANS: Encoutagement displayed on empty timeline user pages for anonymous users. +#. TRANS: %s is a user nickname. This message contains Markdown links. Keep "](" together. +#. TRANS: Second sentence of empty message for anonymous users. %s is a user nickname. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/all.php:155 actions/replies.php:210 actions/showstream.php:227 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to them." msgstr "" +"现在就[注册一个帐号](%%%%action.register%%%%)并呼叫或者发一条消息给%s。" -#. TRANS: H1 text -#: actions/all.php:182 +#. TRANS: H1 text for page when viewing a list for self. +#: actions/all.php:188 msgid "You and friends" -msgstr "你和好友" +msgstr "你和好友们" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. -#: actions/allrss.php:121 actions/apitimelinefriends.php:216 -#: actions/apitimelinehome.php:122 +#: actions/allrss.php:122 actions/apitimelinefriends.php:213 +#: actions/apitimelinehome.php:119 #, php-format msgid "Updates from %1$s and friends on %2$s!" -msgstr "来自%2$s 上 %1$s 和好友的更新!" +msgstr "%2$s上%1$s和好友们的更新!" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy +#. TRANS: Client error displayed handling a non-existing API method. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method updating profile colours. +#. TRANS: Client error displayed trying to execute an unknown API method verifying user credentials. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed when trying to handle an unknown API method. +#. TRANS: Client error displayed trying to execute an unknown API method showing friendship. +#. TRANS: Client error given when an API method was not found (404). +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method joining a group. +#. TRANS: Client error displayed trying to execute an unknown API method leaving a group. +#. TRANS: Client error displayed trying to execute an unknown API method checking group membership. +#. TRANS: Client error displayed trying to execute an unknown API method listing the latest 20 groups. +#. TRANS: Client error displayed trying to execute an unknown API method showing group membership. +#. TRANS: Client error displayed trying to execute an unknown API method showing a group. +#. TRANS: Client error displayed trying to execute an unknown API method testing API connectivity. +#. TRANS: Client error displayed trying to execute an unknown API method deleting a status. +#. TRANS: Client error displayed when trying to handle an unknown API method. +#: actions/apiaccountratelimitstatus.php:69 +#: actions/apiaccountupdatedeliverydevice.php:92 +#: actions/apiaccountupdateprofile.php:94 +#: actions/apiaccountupdateprofilebackgroundimage.php:92 +#: actions/apiaccountupdateprofilecolors.php:115 +#: actions/apiaccountverifycredentials.php:68 actions/apidirectmessage.php:157 +#: actions/apifavoritecreate.php:98 actions/apifavoritedestroy.php:98 +#: actions/apifriendshipscreate.php:99 actions/apifriendshipsdestroy.php:99 +#: actions/apifriendshipsshow.php:124 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:115 actions/apigroupjoin.php:160 +#: actions/apigroupleave.php:145 actions/apigrouplist.php:134 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:105 +#: actions/apigroupshow.php:114 actions/apihelptest.php:84 +#: actions/apistatusesdestroy.php:101 actions/apistatusesretweets.php:110 +#: actions/apistatusesshow.php:105 actions/apistatusnetconfig.php:138 +#: actions/apistatusnetversion.php:91 actions/apisubscriptions.php:109 +#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:268 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:239 +#: actions/apitimelineretweetedtome.php:118 +#: actions/apitimelineretweetsofme.php:150 actions/apitimelinetag.php:159 +#: actions/apitimelineuser.php:206 actions/apiusershow.php:100 msgid "API method not found." -msgstr "API 方法未实现!" +msgstr "API方法没有找到。" -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:83 +#: actions/apiaccountupdateprofile.php:85 +#: actions/apiaccountupdateprofilebackgroundimage.php:83 +#: actions/apiaccountupdateprofilecolors.php:106 +#: actions/apiaccountupdateprofileimage.php:80 actions/apiblockcreate.php:87 +#: actions/apiblockdestroy.php:85 actions/apidirectmessagenew.php:107 +#: actions/apifavoritecreate.php:88 actions/apifavoritedestroy.php:88 +#: actions/apifriendshipscreate.php:89 actions/apifriendshipsdestroy.php:89 +#: actions/apigroupcreate.php:102 actions/apigroupjoin.php:89 +#: actions/apigroupleave.php:89 actions/apimediaupload.php:66 +#: actions/apistatusesretweet.php:63 actions/apistatusesupdate.php:194 msgid "This method requires a POST." msgstr "此方法接受POST请求。" -#: actions/apiaccountupdatedeliverydevice.php:106 +#. TRANS: Client error displayed when no valid device parameter is provided for a user's delivery device setting. +#: actions/apiaccountupdatedeliverydevice.php:103 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" +"你必须指定一个名为'device'的参数,值可以是以下中的一个:sms, im, none。" -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy +#. TRANS: Server error displayed when a user's delivery device cannot be updated. +#: actions/apiaccountupdatedeliverydevice.php:130 msgid "Could not update user." msgstr "无法更新用户。" -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 +#. TRANS: Client error displayed if a user profile could not be found. +#. TRANS: Client error displayed when a user has no profile. +#. TRANS: Client error displayed a user has no profile updating profile colours. +#. TRANS: Client error displayed if a user profile could not be found updating a profile image. +#. TRANS: Client error displayed when requesting user information for a user without a profile. +#. TRANS: Client error displayed trying to get an avatar for a user without a profile. +#: actions/apiaccountupdateprofile.php:111 +#: actions/apiaccountupdateprofilebackgroundimage.php:199 +#: actions/apiaccountupdateprofilecolors.php:183 #: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/avatarbynickname.php:85 actions/foaf.php:65 actions/hcard.php:74 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 #: lib/profileaction.php:84 msgid "User has no profile." msgstr "用户没有个人信息。" +#. TRANS: Server error displayed if a user profile could not be saved. #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." msgstr "无法保存个人信息。" +#. TRANS: Client error displayed when the number of bytes in a POST request exceeds a limit. +#. TRANS: %s is the number of bytes of the CONTENT_LENGTH. +#. TRANS: Form validation error in design settings form. POST should remain untranslated. #: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 -#: actions/designadminpanel.php:123 actions/editapplication.php:118 -#: actions/newapplication.php:101 actions/newnotice.php:94 -#: lib/designsettings.php:283 +#: actions/apiaccountupdateprofileimage.php:95 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:210 actions/avatarsettings.php:269 +#: actions/designadminpanel.php:125 actions/editapplication.php:121 +#: actions/newapplication.php:104 actions/newnotice.php:95 +#: lib/designsettings.php:298 #, php-format msgid "" +"The server was unable to handle that much POST data (%s byte) due to its " +"current configuration." +msgid_plural "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." -msgstr "" +msgstr[0] "服务器当前的设置无法处理这么多的 POST 数据(%s bytes)。" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#. TRANS: Client error displayed when saving design settings fails because of an empty id. +#. TRANS: Client error displayed when saving design settings fails because of an empty result. +#. TRANS: Client error displayed when a database error occurs inserting profile colours. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:138 +#: actions/apiaccountupdateprofilebackgroundimage.php:149 +#: actions/apiaccountupdateprofilecolors.php:160 +#: actions/apiaccountupdateprofilecolors.php:171 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: 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 "无法保存 Twitter 设置!" +msgstr "无法保存你的外观设置。" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy +#. TRANS: Error displayed when updating design settings fails. +#. TRANS: Client error displayed when a database error occurs updating profile colours. +#: actions/apiaccountupdateprofilebackgroundimage.php:191 +#: actions/apiaccountupdateprofilecolors.php:139 msgid "Could not update your design." -msgstr "无法更新用户。" +msgstr "无法更新你的外观。" -#: actions/apiblockcreate.php:105 +#: actions/apiatomservice.php:86 +msgid "Main" +msgstr "首页" + +#. TRANS: Message is used as link title. %s is a user nickname. +#. TRANS: Title in atom group notice feed. %s is a group name. +#. TRANS: Title in atom user notice feed. %s is a user name. +#: actions/apiatomservice.php:93 actions/grouprss.php:139 +#: actions/userrss.php:94 lib/atomgroupnoticefeed.php:63 +#: lib/atomusernoticefeed.php:68 +#, php-format +msgid "%s timeline" +msgstr "%s的时间线" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: actions/apiatomservice.php:103 actions/atompubsubscriptionfeed.php:147 +#: actions/subscriptions.php:51 +#, php-format +msgid "%s subscriptions" +msgstr "%s 关注的用户" + +#: actions/apiatomservice.php:113 actions/atompubfavoritefeed.php:142 +#, fuzzy, php-format +msgid "%s favorites" +msgstr "收藏夹" + +#: actions/apiatomservice.php:123 +#, fuzzy, php-format +msgid "%s memberships" +msgstr "%s 的小组成员" + +#. TRANS: Client error displayed when users try to block themselves. +#: actions/apiblockcreate.php:104 msgid "You cannot block yourself!" -msgstr "" +msgstr "你不能屏蔽自己!" +#. TRANS: Server error displayed when blocking a user has failed. #: actions/apiblockcreate.php:126 msgid "Block user failed." -msgstr "阻止用户失败。" +msgstr "屏蔽用户失败。" -#: actions/apiblockdestroy.php:114 +#. TRANS: Server error displayed when unblocking a user has failed. +#: actions/apiblockdestroy.php:113 msgid "Unblock user failed." -msgstr "取消阻止用户失败。" +msgstr "取消屏蔽用户失败。" -#: actions/apidirectmessage.php:89 -#, fuzzy, php-format +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:88 +#, php-format msgid "Direct messages from %s" -msgstr "发给 %s 的直接消息" +msgstr "%s发来的私信" +#. TRANS: Subtitle. %s is a user nickname. #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" -msgstr "%s 发送的直接消息" +msgstr "所有来自%s的私信" -#: actions/apidirectmessage.php:101 +#. TRANS: Title. %s is a user nickname. +#: actions/apidirectmessage.php:102 #, php-format msgid "Direct messages to %s" -msgstr "发给 %s 的直接消息" +msgstr "发给%s的私信" -#: actions/apidirectmessage.php:105 +#. TRANS: Subtitle. %s is a user nickname. +#: actions/apidirectmessage.php:107 #, php-format msgid "All the direct messages sent to %s" -msgstr "发给 %s 的直接消息" +msgstr "所有发给%s的私信" -#: actions/apidirectmessagenew.php:118 +#. TRANS: Client error displayed when no message text was submitted (406). +#: actions/apidirectmessagenew.php:117 msgid "No message text!" msgstr "消息没有正文!" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 -#, fuzzy, php-format -msgid "That's too long. Max message size is %d chars." -msgstr "你可以给你的组上载一个logo图。" +#. TRANS: Client error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#. TRANS: Form validation error displayed when message content is too long. +#. TRANS: %d is the maximum number of characters for a message. +#: actions/apidirectmessagenew.php:127 actions/newmessage.php:152 +#, php-format +msgid "That's too long. Maximum message size is %d character." +msgid_plural "That's too long. Maximum message size is %d characters." +msgstr[0] "太长了。最长的信息长度是%d个字符。" -#: actions/apidirectmessagenew.php:138 +#. TRANS: Client error displayed if a recipient user could not be found (403). +#: actions/apidirectmessagenew.php:139 msgid "Recipient user not found." msgstr "未找到收件人。" -#: actions/apidirectmessagenew.php:142 +#. TRANS: Client error displayed trying to direct message another user who's not a friend (403). +#: actions/apidirectmessagenew.php:144 msgid "Can't send direct messages to users who aren't your friend." -msgstr "无法向并非好友的用户发送直接消息。" +msgstr "不能给未成为好友的用户发送私信。" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#. TRANS: Client error displayed trying to direct message self (403). +#: actions/apidirectmessagenew.php:154 +msgid "" +"Do not send a message to yourself; just say it to yourself quietly instead." +msgstr "不要向自己发送消息;跟自己悄悄说就得了。" + +#. TRANS: Client error displayed when requesting a status with a non-existing ID. +#. TRANS: Client error displayed when trying to remove a favourite with an invalid ID. +#. TRANS: Client error displayed trying to delete a status with an invalid ID. +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:108 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." -msgstr "没有找到此ID的信息。" +msgstr "没有找到此 ID 的消息。" +#. TRANS: Client error displayed when trying to mark a notice favourite that already is a favourite. #: actions/apifavoritecreate.php:120 -#, fuzzy msgid "This status is already a favorite." -msgstr "已收藏此通告!" +msgstr "已收藏过此消息。" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 +#. TRANS: Client error displayed when marking a notice as favourite fails. +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:294 msgid "Could not create favorite." msgstr "无法创建收藏。" -#: actions/apifavoritedestroy.php:123 -#, fuzzy +#. TRANS: Client error displayed when trying to remove a favourite that was not a favourite. +#: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite." -msgstr "此通告未被收藏!" +msgstr "此消息未被收藏。" +#. TRANS: Client error displayed when removing a favourite has failed. #: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 msgid "Could not delete favorite." msgstr "无法删除收藏。" +#. TRANS: Client error displayed when trying follow who's profile could not be found. #: actions/apifriendshipscreate.php:109 -#, fuzzy msgid "Could not follow user: profile not found." -msgstr "无法订阅用户:%s 已在订阅列表中。" +msgstr "无法关注用户:未找到用户。" -#: actions/apifriendshipscreate.php:118 +#. TRANS: Client error displayed when trying to follow a user that's already being followed. +#. TRANS: %s is the nickname of the user that is already being followed. +#: actions/apifriendshipscreate.php:120 #, php-format msgid "Could not follow user: %s is already on your list." -msgstr "无法订阅用户:%s 已在订阅列表中。" +msgstr "无法关注用户:你已经关注了%s。" +#. TRANS: Client error displayed when trying to unfollow a user that cannot be found. #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "无法订阅用户:%s 已在订阅列表中。" +msgstr "无法取消关注用户:未找到用户。" -#: actions/apifriendshipsdestroy.php:120 +#. TRANS: Client error displayed when trying to unfollow self. +#: actions/apifriendshipsdestroy.php:121 msgid "You cannot unfollow yourself." -msgstr "" +msgstr "你不能取消关注自己。" -#: actions/apifriendshipsexists.php:91 -msgid "Two valid IDs or screen_names must be supplied." -msgstr "" +#. TRANS: Client error displayed when supplying invalid parameters to an API call checking if a friendship exists. +#: actions/apifriendshipsexists.php:88 +msgid "Two valid IDs or nick names must be supplied." +msgstr "必须提供两个有效的 ID 或用户昵称。" -#: actions/apifriendshipsshow.php:134 -#, fuzzy +#. TRANS: Client error displayed when a source user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:131 msgid "Could not determine source user." -msgstr "无法更新用户。" +msgstr "无法确定源用户。" -#: actions/apifriendshipsshow.php:142 -#, fuzzy +#. TRANS: Client error displayed when a target user could not be determined showing friendship. +#: actions/apifriendshipsshow.php:140 msgid "Could not find target user." -msgstr "无法更新用户。" +msgstr "无法找到目标用户。" -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 -#: actions/newgroup.php:126 actions/profilesettings.php:215 -#: actions/register.php:212 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "昵称只能使用小写字母和数字,不包含空格。" - -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 -#: actions/newgroup.php:130 actions/profilesettings.php:238 -#: actions/register.php:215 +#. TRANS: Client error trying to create a group with a nickname this is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:156 actions/editgroup.php:189 +#: actions/newgroup.php:129 actions/profilesettings.php:277 +#: actions/register.php:214 msgid "Nickname already in use. Try another one." msgstr "昵称已被使用,换一个吧。" -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:164 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:247 +#: actions/register.php:216 msgid "Not a valid nickname." msgstr "不是有效的昵称。" -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 -#: actions/editgroup.php:199 actions/newapplication.php:203 -#: actions/newgroup.php:139 actions/profilesettings.php:222 -#: actions/register.php:224 +#. TRANS: Client error in form for group creation. +#. TRANS: Validation error shown when providing an invalid homepage URL in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:181 actions/editapplication.php:233 +#: actions/editgroup.php:200 actions/newapplication.php:211 +#: actions/newgroup.php:140 actions/profilesettings.php:252 +#: actions/register.php:223 msgid "Homepage is not a valid URL." msgstr "主页的URL不正确。" -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 -#: actions/newgroup.php:142 actions/profilesettings.php:225 -#: actions/register.php:227 -msgid "Full name is too long (max 255 chars)." +#. TRANS: Client error in form for group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:191 actions/editgroup.php:204 +#: actions/newgroup.php:144 actions/profilesettings.php:256 +#: actions/register.php:226 +msgid "Full name is too long (maximum 255 characters)." msgstr "全名过长(不能超过 255 个字符)。" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 -#: actions/newapplication.php:172 -#, fuzzy, php-format -msgid "Description is too long (max %d chars)." -msgstr "位置过长(不能超过255个字符)。" - -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 -#: actions/newgroup.php:148 actions/profilesettings.php:232 -#: actions/register.php:234 -msgid "Location is too long (max 255 chars)." -msgstr "位置过长(不能超过255个字符)。" - -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 -#: actions/newgroup.php:159 +#. TRANS: Client error shown when providing too long a description during group creation. +#. TRANS: %d is the maximum number of allowed characters. +#. TRANS: Validation error shown when providing too long a description in the "Edit application" form. +#. TRANS: Group edit form validation error. +#. TRANS: Form validation error in New application form. +#. TRANS: %d is the maximum number of characters for the description. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed characters. +#: actions/apigroupcreate.php:201 actions/editapplication.php:201 +#: actions/editgroup.php:209 actions/newapplication.php:178 +#: actions/newgroup.php:149 #, php-format -msgid "Too many aliases! Maximum %d." -msgstr "太多化名了!最多%d 个。" +msgid "Description is too long (maximum %d character)." +msgid_plural "Description is too long (maximum %d characters)." +msgstr[0] "D描述过长(不能超过%d 个字符)。" -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format +#. TRANS: Client error shown when providing too long a location during group creation. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#. TRANS: Validation error in form for profile settings. +#: actions/apigroupcreate.php:215 actions/editgroup.php:216 +#: actions/newgroup.php:156 actions/profilesettings.php:269 +#: actions/register.php:235 +msgid "Location is too long (maximum 255 characters)." +msgstr "位置过长(不能超过255个字符)。" + +#. TRANS: Client error shown when providing too many aliases during group creation. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group edit form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#. TRANS: Group create form validation error. +#. TRANS: %d is the maximum number of allowed aliases. +#: actions/apigroupcreate.php:236 actions/editgroup.php:229 +#: actions/newgroup.php:169 +#, php-format +msgid "Too many aliases! Maximum %d allowed." +msgid_plural "Too many aliases! Maximum %d allowed." +msgstr[0] "太多别名了!最多允许%d 个。" + +#. TRANS: Client error shown when providing an invalid alias during group creation. +#. TRANS: %s is the invalid alias. +#: actions/apigroupcreate.php:253 +#, php-format msgid "Invalid alias: \"%s\"." -msgstr "电子邮件地址 %s 不正确" +msgstr "无效的别名:“%s”。" -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format +#. TRANS: Client error displayed when trying to use an alias during group creation that is already in use. +#. TRANS: %s is the alias that is already in use. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:264 actions/editgroup.php:244 +#: actions/newgroup.php:184 +#, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "昵称已被使用,换一个吧。" +msgstr "%s这个别名已被使用,换一个吧。" -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 -#: actions/newgroup.php:178 +#. TRANS: Client error displayed when trying to use an alias during group creation that is the same as the group's nickname. +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/apigroupcreate.php:278 actions/editgroup.php:251 +#: actions/newgroup.php:191 msgid "Alias can't be the same as nickname." -msgstr "昵称不能和化名相同。" +msgstr "别名不能和昵称相同。" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 -#: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 +#. TRANS: Client error displayed when checking group membership for a non-existing group. +#. TRANS: Client error displayed when trying to join a group that does not exist. +#. TRANS: Client error displayed when trying to leave a group that does not exist. +#. TRANS: Client error displayed trying to show group membership on a non-existing group. +#. TRANS: Client error displayed when trying to show a group that could not be found. +#. TRANS: Client error displayed requesting most recent notices to a group for a non-existing group. +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:89 +#: actions/apigroupshow.php:81 actions/apitimelinegroup.php:89 msgid "Group not found." msgstr "小组未找到。" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy +#. TRANS: Server error displayed when trying to join a group the user is already a member of. +#. TRANS: Error text shown a user tries to join a group they already are a member of. +#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:333 msgid "You are already a member of that group." -msgstr "您已经是该组成员" +msgstr "你已经是该小组成员。" -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Server error displayed when trying to join a group the user is blocked from joining. +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:338 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "你已经被管理员从该小组中屏蔽。" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 -#, fuzzy, php-format +#. TRANS: Server error displayed when joining a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:142 actions/joingroup.php:134 lib/command.php:350 +#, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "无法更新组" +msgstr "无法把用户%1$s添加到%2$s小组" +#. TRANS: Server error displayed when trying to leave a group the user is not a member of. #: actions/apigroupleave.php:115 -#, fuzzy msgid "You are not a member of this group." -msgstr "您未告知此个人信息" +msgstr "你不是该小组成员。" -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 -#, fuzzy, php-format +#. TRANS: Server error displayed when leaving a group fails. +#. TRANS: %1$s is a user nickname, $2$s is a group nickname. +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:127 actions/leavegroup.php:129 +#: lib/command.php:398 +#, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "无法创建组。" +msgstr "无法把用户%1$s从%2$s小组删除" -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 -#, fuzzy, php-format +#. TRANS: Used as title in check for group membership. %s is a user name. +#: actions/apigrouplist.php:94 +#, php-format msgid "%s's groups" -msgstr "%s 群组" +msgstr "%s 的小组" -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, fuzzy, php-format +#. TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. +#: actions/apigrouplist.php:104 +#, php-format msgid "%1$s groups %2$s is a member of." -msgstr "%s 组是成员组成了" +msgstr "%1$s 的小组,%2$s 是小组成员。" -#. TRANS: Message is used as a title. %s is a site name. +#. TRANS: Message is used as a title when listing the lastest 20 groups. %s is a site name. #. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 +#: actions/apigrouplistall.php:88 actions/usergroups.php:63 #, php-format msgid "%s groups" -msgstr "%s 群组" +msgstr "%s 的小组" -#: actions/apigrouplistall.php:96 -#, fuzzy, php-format +#. TRANS: Message is used as a subtitle when listing the lastest 20 groups. %s is a site name. +#: actions/apigrouplistall.php:93 +#, php-format msgid "groups on %s" -msgstr "组动作" +msgstr "在%s上的小组" -#: actions/apimediaupload.php:99 +#. TRANS: Client error displayed when uploading a media file has failed. +#: actions/apimediaupload.php:101 msgid "Upload failed." msgstr "上传失败" -#: actions/apioauthauthorize.php:101 +#. TRANS: Client error given from the OAuth API when the request token or verifier is invalid. +#: actions/apioauthaccesstoken.php:101 +msgid "Invalid request token or verifier." +msgstr "无效的请求 token 或 verifier。" + +#. TRANS: Client error given when no oauth_token was passed to the OAuth API. +#: actions/apioauthauthorize.php:107 msgid "No oauth_token parameter provided." -msgstr "" +msgstr "没有提供 oauth_token 参数" -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." -msgstr "大小不正确。" +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:115 actions/apioauthauthorize.php:129 +msgid "Invalid request token." +msgstr "无效的 token。" -#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 -#: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#. TRANS: Client error given when an invalid request token was passed to the OAuth API. +#: actions/apioauthauthorize.php:121 +msgid "Request token already authorized." +msgstr "请求 token 已被授权了。" + +#. TRANS: Form validation error in API OAuth authorisation because of an invalid session token. +#: actions/apioauthauthorize.php:147 actions/avatarsettings.php:280 +#: actions/deletenotice.php:177 actions/disfavor.php:74 +#: actions/emailsettings.php:297 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 -#: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 -#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 -#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 -#: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:194 actions/recoverpassword.php:350 +#: actions/groupunblock.php:65 actions/imsettings.php:230 +#: actions/invite.php:59 actions/login.php:137 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:105 actions/nudge.php:80 +#: actions/oauthappssettings.php:165 actions/oauthconnectionssettings.php:138 +#: actions/othersettings.php:153 actions/passwordsettings.php:138 +#: actions/profilesettings.php:221 actions/recoverpassword.php:350 #: actions/register.php:172 actions/remotesubscribe.php:77 -#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:38 +#: actions/repeat.php:83 actions/smssettings.php:256 actions/subedit.php:40 #: actions/subscribe.php:86 actions/tagother.php:166 #: actions/unsubscribe.php:69 actions/userauthorization.php:52 -#: lib/designsettings.php:294 +#: lib/designsettings.php:310 msgid "There was a problem with your session token. Try again, please." -msgstr "会话标识有问题,请重试。" +msgstr "你的 session 出现了一个问题,请重试。" -#: actions/apioauthauthorize.php:135 -#, fuzzy +#. TRANS: Form validation error given when an invalid username and/or password was passed to the OAuth API. +#: actions/apioauthauthorize.php:168 msgid "Invalid nickname / password!" msgstr "用户名或密码不正确。" -#: actions/apioauthauthorize.php:159 -msgid "Database error deleting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:185 -msgid "Database error inserting OAuth application user." -msgstr "" - -#: actions/apioauthauthorize.php:214 -#, php-format -msgid "" -"The request token %s has been authorized. Please exchange it for an access " -"token." -msgstr "" - -#: actions/apioauthauthorize.php:227 -#, php-format -msgid "The request token %s has been denied and revoked." -msgstr "" +#. TRANS: Server error displayed when a database action fails. +#: actions/apioauthauthorize.php:217 +msgid "Database error inserting oauth_token_association." +msgstr "插入 oauth_token_association 时数据库出错。" +#. TRANS: Client error given on when invalid data was passed through a form in the OAuth API. +#. TRANS: Unexpected validation error on avatar upload form. +#. TRANS: Client error displayed submitting invalid form data for edit application. #. TRANS: Message given submitting a form with an unknown action in e-mail settings. #. TRANS: Message given submitting a form with an unknown action in IM settings. +#. TRANS: Client error when submitting a form with unexpected information. #. TRANS: Message given submitting a form with an unknown action in SMS settings. -#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 -#: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#. TRANS: Unknown form validation error in design settings form. +#: actions/apioauthauthorize.php:294 actions/avatarsettings.php:294 +#: actions/designadminpanel.php:104 actions/editapplication.php:144 +#: actions/emailsettings.php:316 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:125 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 -#: actions/smssettings.php:277 lib/designsettings.php:304 +#: actions/smssettings.php:277 lib/designsettings.php:321 msgid "Unexpected form submission." msgstr "未预料的表单提交。" -#: actions/apioauthauthorize.php:259 +#. TRANS: Title for a page where a user can confirm/deny account access by an external application. +#: actions/apioauthauthorize.php:387 msgid "An application would like to connect to your account" -msgstr "" +msgstr "一个应用想连接到你的账号" -#: actions/apioauthauthorize.php:276 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:404 msgid "Allow or deny access" -msgstr "" +msgstr "允许或阻止访问" -#: actions/apioauthauthorize.php:292 +#. TRANS: User notification of external application requesting account access. +#. TRANS: %3$s is the access type requested (read-write or read-only), %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:425 +#, php-format +msgid "" +"An application would like the ability to <strong>%3$s</strong> your %4$s " +"account data. You should only give access to your %4$s account to third " +"parties you trust." +msgstr "" +"一个应用希望能够<strong>%3$s</strong>你的%4$s账号数据。你应该只允许你信任信任" +"的第三方程序访问你的%4$s账户。" + +#. TRANS: User notification of external application requesting account access. +#. TRANS: %1$s is the application name requesting access, %2$s is the organisation behind the application, +#. TRANS: %3$s is the access type requested, %4$s is the StatusNet sitename. +#: actions/apioauthauthorize.php:433 #, php-format msgid "" "The application <strong>%1$s</strong> by <strong>%2$s</strong> would like " "the ability to <strong>%3$s</strong> your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" +"来自<strong>%2$s</strong>的<strong>%1$s</strong>应用希望能够<strong>%3$s</" +"strong>你的%4$s账户数据。你应该只允许你信任信任的第三方程序访问你的%4$s账户。" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 +#. TRANS: Fieldset legend. +#: actions/apioauthauthorize.php:455 +msgctxt "LEGEND" msgid "Account" msgstr "帐号" -#: actions/apioauthauthorize.php:313 actions/login.php:252 -#: actions/profilesettings.php:106 actions/register.php:431 -#: actions/showgroup.php:245 actions/tagother.php:94 +#. TRANS: Field label on OAuth API authorisation form. +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group nickname (dt). Text hidden by default. +#: actions/apioauthauthorize.php:459 actions/login.php:252 +#: actions/profilesettings.php:110 actions/register.php:432 +#: actions/showgroup.php:240 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:132 +#: lib/userprofile.php:134 msgid "Nickname" msgstr "昵称" +#. TRANS: Field label on OAuth API authorisation form. #. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 +#: actions/apioauthauthorize.php:463 actions/login.php:255 +#: actions/register.php:437 lib/accountsettingsaction.php:120 msgid "Password" msgstr "密码" -#: actions/apioauthauthorize.php:328 -msgid "Deny" -msgstr "" +#. TRANS: Button text that when clicked will cancel the process of allowing access to an account +#. TRANS: by an external application. +#. TRANS: Button label to cancel an e-mail address confirmation procedure. +#. TRANS: Button label to cancel an IM address confirmation procedure. +#. TRANS: Button label to cancel a SMS address confirmation procedure. +#. TRANS: Button label in the "Edit application" form. +#: actions/apioauthauthorize.php:478 actions/emailsettings.php:128 +#: actions/imsettings.php:131 actions/smssettings.php:137 +#: lib/applicationeditform.php:351 +msgctxt "BUTTON" +msgid "Cancel" +msgstr "取消" -#: actions/apioauthauthorize.php:334 -#, fuzzy +#. TRANS: Button text that when clicked will allow access to an account by an external application. +#: actions/apioauthauthorize.php:485 +msgctxt "BUTTON" msgid "Allow" -msgstr "全部" +msgstr "允许" -#: actions/apioauthauthorize.php:351 -msgid "Allow or deny access to your account information." -msgstr "" +#. TRANS: Form instructions. +#: actions/apioauthauthorize.php:502 +msgid "Authorize access to your account information." +msgstr "授权对你账号信息的访问。" -#: actions/apistatusesdestroy.php:112 +#. TRANS: Header for user notification after revoking OAuth access to an application. +#: actions/apioauthauthorize.php:594 +msgid "Authorization canceled." +msgstr "授权已取消。" + +#. TRANS: User notification after revoking OAuth access to an application. +#. TRANS: %s is an OAuth token. +#: actions/apioauthauthorize.php:598 +#, php-format +msgid "The request token %s has been revoked." +msgstr "%s的 request token 已被取消。" + +#. TRANS: Title of the page notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:621 +msgid "You have successfully authorized the application" +msgstr "你成功授权了这个应用" + +#. TRANS: Message notifying the user that an anonymous client application was successfully authorized to access the user's account with OAuth. +#: actions/apioauthauthorize.php:625 +msgid "" +"Please return to the application and enter the following security code to " +"complete the process." +msgstr "请返回应用并输入下面的安全码完成此过程。" + +#. TRANS: Title of the page notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:632 +#, php-format +msgid "You have successfully authorized %s" +msgstr "你成功授权了%s。" + +#. TRANS: Message notifying the user that the client application was successfully authorized to access the user's account with OAuth. +#. TRANS: %s is the authorised application name. +#: actions/apioauthauthorize.php:639 +#, php-format +msgid "" +"Please return to %s and enter the following security code to complete the " +"process." +msgstr "请返回 %s 并输入下面的安全码完成此过程。" + +#. TRANS: Client error displayed trying to delete a status not using POST or DELETE. +#. TRANS: POST and DELETE should not be translated. +#: actions/apistatusesdestroy.php:111 msgid "This method requires a POST or DELETE." msgstr "此方法接受POST或DELETE请求。" -#: actions/apistatusesdestroy.php:135 +#. TRANS: Client error displayed trying to delete a status of another user. +#: actions/apistatusesdestroy.php:136 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 +#. TRANS: Client error displayed trying to repeat a non-existing notice through the API. +#. TRANS: Client error displayed trying to display redents of a non-exiting notice. +#. TRANS: Error message displayed trying to delete a non-existing notice. +#: actions/apistatusesretweet.php:74 actions/apistatusesretweets.php:70 +#: actions/atompubshowfavorite.php:82 actions/deletenotice.php:61 +#: actions/shownotice.php:92 msgid "No such notice." -msgstr "没有这份通告。" +msgstr "没有这条消息。" -#: actions/apistatusesretweet.php:83 -#, fuzzy +#. TRANS: Client error displayed trying to repeat an own notice through the API. +#. TRANS: Error text shown when trying to repeat an own notice. +#: actions/apistatusesretweet.php:83 lib/command.php:537 msgid "Cannot repeat your own notice." -msgstr "无法开启通告。" +msgstr "不能转发你自己的消息。" -#: actions/apistatusesretweet.php:91 -#, fuzzy +#. TRANS: Client error displayed trying to re-repeat a notice through the API. +#. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user. +#: actions/apistatusesretweet.php:92 lib/command.php:543 msgid "Already repeated that notice." -msgstr "无法删除通告。" +msgstr "已转发了该消息。" -#: actions/apistatusesshow.php:139 +#: actions/apistatusesshow.php:117 actions/atompubfavoritefeed.php:104 +#: actions/atompubmembershipfeed.php:106 actions/atompubshowfavorite.php:116 +#: actions/atompubshowsubscription.php:118 +#: actions/atompubsubscriptionfeed.php:109 +msgid "HTTP method not supported." +msgstr "HTTP 方法不支持。" + +#: actions/apistatusesshow.php:141 +#, php-format +msgid "Unsupported format: %s" +msgstr "不支持的格式:%s" + +#. TRANS: Client error displayed requesting a deleted status. +#: actions/apistatusesshow.php:152 msgid "Status deleted." -msgstr "" +msgstr "消息已删除。" -#: actions/apistatusesshow.php:145 +#. TRANS: Client error displayed requesting a status with an invalid ID. +#: actions/apistatusesshow.php:159 msgid "No status with that ID found." -msgstr "没有找到此ID的信息。" +msgstr "没有找到此 ID 的消息。" +#: actions/apistatusesshow.php:223 +msgid "Can only delete using the Atom format." +msgstr "只能使用 Atom 格式删除。" + +#. TRANS: Error message displayed trying to delete a notice that was not made by the current user. +#: actions/apistatusesshow.php:230 actions/deletenotice.php:78 +msgid "Can't delete this notice." +msgstr "无法删除这条消息。" + +#: actions/apistatusesshow.php:243 +#, php-format +msgid "Deleted notice %d" +msgstr "删除消息 %d" + +#. TRANS: Client error displayed when the parameter "status" is missing. #: actions/apistatusesupdate.php:221 msgid "Client must provide a 'status' parameter with a value." -msgstr "" +msgstr "客户端必须提供一个包含内容的“状态”参数。" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 +#. TRANS: Client error displayed when the parameter "status" is missing. +#. TRANS: %d is the maximum number of character for a notice. +#: actions/apistatusesupdate.php:244 actions/newnotice.php:161 #: lib/mailhandler.php:60 -#, fuzzy, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "你可以给你的组上载一个logo图。" - -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 -#, fuzzy -msgid "Not found." -msgstr "小组未找到。" - -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 #, php-format -msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgid "That's too long. Maximum notice size is %d character." +msgid_plural "That's too long. Maximum notice size is %d characters." +msgstr[0] "太长了。最长的消息长度是%d个字符。" -#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262 -#, fuzzy +#. TRANS: Client error displayed when replying to a non-existing notice. +#: actions/apistatusesupdate.php:284 +msgid "Parent notice not found." +msgstr "没有找到父级的消息。" + +#. TRANS: Client error displayed exceeding the maximum notice length. +#. TRANS: %d is the maximum lenth for a notice. +#: actions/apistatusesupdate.php:308 actions/newnotice.php:184 +#, php-format +msgid "Maximum notice size is %d character, including attachment URL." +msgid_plural "Maximum notice size is %d characters, including attachment URL." +msgstr[0] "每条消息最长%d字符,包括附件的链接 URL。" + +#. TRANS: Client error displayed when requesting profiles of followers in an unsupported format. +#. TRANS: Client error displayed when requesting IDs of followers in an unsupported format. +#: actions/apisubscriptions.php:228 actions/apisubscriptions.php:258 msgid "Unsupported format." -msgstr "不支持这种图像格式。" +msgstr "不支持的格式。" -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format +#. TRANS: Title for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinefavorites.php:108 +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s / 来自 %2$s 的收藏" -#: actions/apitimelinefavorites.php:119 -#, fuzzy, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "回复 %2$s / %3$s 的 %1$s 更新。" +#. TRANS: Subtitle for timeline of most recent favourite notices by a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user's full name, +#. TRANS: %3$s is a user nickname. +#: actions/apitimelinefavorites.php:120 +#, php-format +msgid "%1$s updates favorited by %2$s / %3$s." +msgstr "%1$s上被%2$s(%3$s)收藏的消息。" -#: actions/apitimelinementions.php:118 -#, fuzzy, php-format +#. TRANS: Server error displayed when generating an Atom feed fails. +#. TRANS: %s is the error. +#: actions/apitimelinegroup.php:138 +#, php-format +msgid "Could not generate feed for group - %s" +msgstr "无法生成小组的 feed - %s" + +#. TRANS: Title for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname. +#: actions/apitimelinementions.php:115 +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s / 条消息提到了 %2$s" +#. TRANS: Subtitle for timeline of most recent mentions of a user. +#. TRANS: %1$s is the StatusNet sitename, %2$s is a user nickname, +#. TRANS: %3$s is a user's full name. #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "回复 %2$s / %3$s 的 %1$s 更新。" +msgstr " %1$s 条消息回复给来自 %2$s 的消息 / %3$s。" -#: actions/apitimelinepublic.php:197 actions/publicrss.php:103 +#. TRANS: Title for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:193 actions/publicrss.php:103 #, php-format msgid "%s public timeline" -msgstr "%s 公众时间表" +msgstr "%s 公共时间线" -#: actions/apitimelinepublic.php:202 actions/publicrss.php:105 +#. TRANS: Subtitle for site timeline. %s is the StatusNet sitename. +#: actions/apitimelinepublic.php:199 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" -msgstr "来自所有人的 %s 消息!" +msgstr "%s条来自所有人的消息!" -#: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#. TRANS: Server error displayed calling unimplemented API method for 'retweeted by me'. +#: actions/apitimelineretweetedbyme.php:71 +msgid "Unimplemented." +msgstr "未生效。" + +#. TRANS: Title for Atom feed "repeated to me". %s is the user nickname. +#: actions/apitimelineretweetedtome.php:108 +#, php-format msgid "Repeated to %s" -msgstr "%s 的回复" +msgstr "转发给%s" -#: actions/apitimelineretweetsofme.php:114 -#, fuzzy, php-format +#. TRANS: Title of list of repeated notices of the logged in user. +#. TRANS: %s is the nickname of the logged in user. +#: actions/apitimelineretweetsofme.php:112 +#, php-format msgid "Repeats of %s" -msgstr "%s 的回复" +msgstr "%s 的转发" -#: actions/apitimelinetag.php:105 actions/tag.php:67 +#. TRANS: Title for timeline with lastest notices with a given tag. +#. TRANS: %s is the tag. +#: actions/apitimelinetag.php:101 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" -msgstr "带 %s 标签的通告" +msgstr "带 %s 标签的消息" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, fuzzy, php-format +#. TRANS: Subtitle for timeline with lastest notices with a given tag. +#. TRANS: %1$s is the tag, $2$s is the StatusNet sitename. +#: actions/apitimelinetag.php:105 actions/tagrss.php:65 +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "%2$s 上 %1$s 的更新!" +msgstr "%2$s 上有 %1$s 标签的消息!" -#: actions/apitrends.php:87 +#. TRANS: Client error displayed trying to add a notice to another user's timeline. +#: actions/apitimelineuser.php:297 +msgid "Only the user can add to their own timeline." +msgstr "只有该用户才能添加到他们的时间线。" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:304 +#, fuzzy +msgid "Only accept AtomPub for Atom feeds." +msgstr "Atom feeds 只接受 AtomPub。" + +#: actions/apitimelineuser.php:310 +msgid "Atom post must not be empty." +msgstr "" + +#: actions/apitimelineuser.php:315 +msgid "Atom post must be well-formed XML." +msgstr "" + +#. TRANS: Client error displayed when not using an Atom entry. +#: actions/apitimelineuser.php:321 actions/atompubfavoritefeed.php:226 +#: actions/atompubmembershipfeed.php:228 +#: actions/atompubsubscriptionfeed.php:233 +msgid "Atom post must be an Atom entry." +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/apitimelineuser.php:332 +msgid "Can only handle POST activities." +msgstr "" + +#. TRANS: Client error displayed when using an unsupported activity object type. +#. TRANS: %s is the unsupported activity object type. +#: actions/apitimelineuser.php:343 +#, php-format +msgid "Cannot handle activity object type \"%s\"." +msgstr "" + +#. TRANS: Client error displayed when posting a notice without content through the API. +#: actions/apitimelineuser.php:376 +#, fuzzy, php-format +msgid "No content for notice %d." +msgstr "搜索消息内容" + +#. TRANS: Client error displayed when using another format than AtomPub. +#: actions/apitimelineuser.php:404 +#, php-format +msgid "Notice with URI \"%s\" already exists." +msgstr "已存在使用 URI \"%s\" 的消息了。" + +#: actions/apitimelineuser.php:435 +#, php-format +msgid "AtomPub post with unknown attention URI %s" +msgstr "" + +#. TRANS: Server error for unfinished API method showTrends. +#: actions/apitrends.php:85 msgid "API method under construction." msgstr "API 方法尚未实现。" -#: actions/attachment.php:73 -#, fuzzy -msgid "No such attachment." -msgstr "没有这份通告。" +#. TRANS: Client error displayed when requesting user information for a non-existing user. +#: actions/apiusershow.php:94 +msgid "User not found." +msgstr "API方法没有找到。" -#: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73 -#: actions/editgroup.php:84 actions/groupdesignsettings.php:84 +#: actions/atompubfavoritefeed.php:70 +#, fuzzy +msgid "No such profile" +msgstr "没有这个文件。" + +#: actions/atompubfavoritefeed.php:145 +#, php-format +msgid "Notices %s has favorited to on %s" +msgstr "" + +#: actions/atompubfavoritefeed.php:215 actions/atompubsubscriptionfeed.php:222 +#, fuzzy +msgid "Can't add someone else's subscription" +msgstr "无法添加新的关注。" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubfavoritefeed.php:239 +msgid "Can only handle Favorite activities." +msgstr "" + +#: actions/atompubfavoritefeed.php:248 actions/atompubmembershipfeed.php:248 +#, fuzzy +msgid "Can only fave notices." +msgstr "搜索消息内容" + +#: actions/atompubfavoritefeed.php:256 +#, fuzzy +msgid "Unknown note." +msgstr "未知的" + +#: actions/atompubfavoritefeed.php:263 +#, fuzzy +msgid "Already a favorite." +msgstr "加入收藏" + +#: actions/atompubmembershipfeed.php:72 actions/atompubshowfavorite.php:76 +#: actions/atompubshowmembership.php:73 actions/subscribe.php:107 +msgid "No such profile." +msgstr "没有这个文件。" + +#: actions/atompubmembershipfeed.php:144 +#, fuzzy, php-format +msgid "%s group memberships" +msgstr "%s 的小组成员" + +#: actions/atompubmembershipfeed.php:147 +#, fuzzy, php-format +msgid "Groups %s is a member of on %s" +msgstr "%s 组是成员组成了" + +#: actions/atompubmembershipfeed.php:217 +msgid "Can't add someone else's membership" +msgstr "" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubmembershipfeed.php:241 +msgid "Can only handle Join activities." +msgstr "" + +#: actions/atompubmembershipfeed.php:256 +#, fuzzy +msgid "Unknown group." +msgstr "未知的" + +#: actions/atompubmembershipfeed.php:263 +#, fuzzy +msgid "Already a member." +msgstr "所有成员" + +#: actions/atompubmembershipfeed.php:270 +msgid "Blocked by admin." +msgstr "" + +#: actions/atompubshowfavorite.php:89 +#, fuzzy +msgid "No such favorite." +msgstr "没有这个文件。" + +#: actions/atompubshowfavorite.php:151 +#, fuzzy +msgid "Can't delete someone else's favorite" +msgstr "无法删除收藏。" + +#: actions/atompubshowmembership.php:81 +#, fuzzy +msgid "No such group" +msgstr "没有这个组。" + +#: actions/atompubshowmembership.php:90 +#, fuzzy +msgid "Not a member" +msgstr "所有成员" + +#: actions/atompubshowmembership.php:115 +#, fuzzy +msgid "Method not supported" +msgstr "HTTP 方法不支持。" + +#: actions/atompubshowmembership.php:150 +msgid "Can't delete someone else's membership" +msgstr "" + +#: actions/atompubshowsubscription.php:72 +#: actions/atompubshowsubscription.php:81 +#: actions/atompubsubscriptionfeed.php:74 +#, fuzzy, php-format +msgid "No such profile id: %d" +msgstr "没有这个文件。" + +#: actions/atompubshowsubscription.php:90 +#, fuzzy, php-format +msgid "Profile %d not subscribed to profile %d" +msgstr "你没有关注这个用户" + +#: actions/atompubshowsubscription.php:154 +#, fuzzy +msgid "Can't delete someone else's subscription" +msgstr "无法删除自我关注。" + +#: actions/atompubsubscriptionfeed.php:150 +#, fuzzy, php-format +msgid "People %s has subscribed to on %s" +msgstr "关注了%s的用户" + +#. TRANS: Client error displayed when not using the POST verb. +#. TRANS: Do not translate POST. +#: actions/atompubsubscriptionfeed.php:246 +msgid "Can only handle Follow activities." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:253 +msgid "Can only follow people." +msgstr "" + +#: actions/atompubsubscriptionfeed.php:262 +#, fuzzy, php-format +msgid "Unknown profile %s" +msgstr "未知文件类型" + +#. TRANS: Client error displayed trying to get a non-existing attachment. +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "没有这个附件。" + +#. TRANS: Client error displayed trying to get an avatar without providing a nickname. +#. TRANS: Client error displayed when requesting a list of blocked users for a group without providing a group nickname. +#. TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit. +#. TRANS: Client error displayed if no nickname argument was given requesting a group page. +#: actions/avatarbynickname.php:60 actions/blockedfromgroup.php:73 +#: actions/editgroup.php:85 actions/groupdesignsettings.php:84 #: actions/grouplogo.php:86 actions/groupmembers.php:76 -#: actions/grouprss.php:91 actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:116 msgid "No nickname." msgstr "没有昵称。" -#: actions/avatarbynickname.php:64 +#. TRANS: Client error displayed trying to get an avatar without providing an avatar size. +#: actions/avatarbynickname.php:66 msgid "No size." msgstr "没有大小。" -#: actions/avatarbynickname.php:69 +#. TRANS: Client error displayed trying to get an avatar providing an invalid avatar size. +#: actions/avatarbynickname.php:72 msgid "Invalid size." msgstr "大小不正确。" +#. TRANS: Title for avatar upload page. +#. TRANS: Label for group avatar (dt). Text hidden by default. #. TRANS: Link description in user account settings menu. -#: actions/avatarsettings.php:67 actions/showgroup.php:230 -#: lib/accountsettingsaction.php:118 +#: actions/avatarsettings.php:66 actions/showgroup.php:224 +#: lib/accountsettingsaction.php:113 msgid "Avatar" msgstr "头像" +#. TRANS: Instruction for avatar upload page. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". #: actions/avatarsettings.php:78 -#, fuzzy, php-format +#, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "你可以给你的组上载一个logo图。" +msgstr "你可以上传你的个人头像。文件大小限制在%s以下。" -#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#. TRANS: Server error displayed in avatar upload page when no matching profile can be found for a user. +#: actions/avatarsettings.php:108 actions/avatarsettings.php:192 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:108 -#, fuzzy msgid "User without matching profile." -msgstr "用户没有个人信息。" +msgstr "用户没有相应个人信息。" -#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#. TRANS: Avatar upload page form legend. +#. TRANS: Avatar upload page crop form legend. +#: actions/avatarsettings.php:122 actions/avatarsettings.php:205 #: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "头像设置" -#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#. TRANS: Header on avatar upload page for thumbnail of originally uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of originally uploaded avatar (h2). +#: actions/avatarsettings.php:131 actions/avatarsettings.php:214 #: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "原来的" +msgstr "原始" -#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#. TRANS: Header on avatar upload page for thumbnail of to be used rendition of uploaded avatar (h2). +#. TRANS: Header on avatar upload crop form for thumbnail of to be used rendition of uploaded avatar (h2). +#: actions/avatarsettings.php:147 actions/avatarsettings.php:227 #: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "预览" -#: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 -#, fuzzy +#. TRANS: Button on avatar upload page to delete current avatar. +#: actions/avatarsettings.php:155 +msgctxt "BUTTON" msgid "Delete" -msgstr "删除通告" +msgstr "删除" -#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +#. TRANS: Button on avatar upload page to upload an avatar. +#: actions/avatarsettings.php:173 +msgctxt "BUTTON" msgid "Upload" msgstr "上传" -#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +#. TRANS: Button on avatar upload crop form to confirm a selected crop as avatar. +#: actions/avatarsettings.php:243 +msgctxt "BUTTON" msgid "Crop" msgstr "剪裁" -#: actions/avatarsettings.php:305 -#, fuzzy +#. TRANS: Validation error on avatar upload form when no file was uploaded. +#: actions/avatarsettings.php:318 msgid "No file uploaded." -msgstr "部分上传。" +msgstr "没有文件被上传。" -#: actions/avatarsettings.php:332 +#. TRANS: Avatar upload form unstruction after uploading a file. +#: actions/avatarsettings.php:346 msgid "Pick a square area of the image to be your avatar" msgstr "请选择一块方形区域作为你的头像" -#: actions/avatarsettings.php:347 actions/grouplogo.php:380 +#. TRANS: Server error displayed if an avatar upload went wrong somehow server side. +#: actions/avatarsettings.php:361 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "文件数据丢失" -#: actions/avatarsettings.php:370 +#. TRANS: Success message for having updated a user avatar. +#: actions/avatarsettings.php:385 msgid "Avatar updated." msgstr "头像已更新。" -#: actions/avatarsettings.php:373 +#. TRANS: Error displayed on the avatar upload page if the avatar could not be updated for an unknown reason. +#: actions/avatarsettings.php:389 msgid "Failed updating avatar." msgstr "更新头像失败。" -#: actions/avatarsettings.php:397 -#, fuzzy +#. TRANS: Success message for deleting a user avatar. +#: actions/avatarsettings.php:413 msgid "Avatar deleted." -msgstr "头像已更新。" +msgstr "头像已删除。" -#: actions/block.php:69 -#, fuzzy +#. TRANS: Client error displayed when blocking a user that has already been blocked. +#: actions/block.php:68 msgid "You already blocked that user." -msgstr "您已订阅这些用户:" +msgstr "你已经屏蔽该用户。" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy +#. TRANS: Title for block user page. +#. TRANS: Legend for block user form. +#: actions/block.php:106 actions/block.php:136 actions/groupblock.php:158 msgid "Block user" -msgstr "阻止用户失败。" +msgstr "屏蔽用户。" -#: actions/block.php:138 +#. TRANS: Explanation of consequences when blocking a user on the block user page. +#: actions/block.php:139 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 "" +"你确定要屏蔽这个用户吗?屏蔽后,会取消这个用户对你的关注,将来也无法再关注" +"你,你也不会收到任何来自这个用户的@回复提醒。" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:153 actions/deleteapplication.php:154 -#: actions/deletenotice.php:147 actions/deleteuser.php:152 -#: actions/groupblock.php:178 +#: actions/block.php:154 actions/deleteapplication.php:157 +#: actions/deletegroup.php:220 actions/deletenotice.php:155 +#: actions/deleteuser.php:152 actions/groupblock.php:178 msgctxt "BUTTON" msgid "No" -msgstr "" +msgstr "否" #. TRANS: Submit button title for 'No' when blocking a user. #. TRANS: Submit button title for 'No' when deleting a user. -#: actions/block.php:157 actions/deleteuser.php:156 +#: actions/block.php:158 actions/deleteuser.php:156 msgid "Do not block this user" -msgstr "" +msgstr "不要屏蔽这个用户" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. +#. TRANS: Button label on the delete group form. #. TRANS: Button label on the delete notice form. #. TRANS: Button label on the delete user form. #. TRANS: Button label on the form to block a user from a group. -#: actions/block.php:160 actions/deleteapplication.php:161 -#: actions/deletenotice.php:154 actions/deleteuser.php:159 -#: actions/groupblock.php:185 -#, fuzzy +#: actions/block.php:161 actions/deleteapplication.php:164 +#: actions/deletegroup.php:227 actions/deletenotice.php:162 +#: actions/deleteuser.php:159 actions/groupblock.php:185 msgctxt "BUTTON" msgid "Yes" msgstr "是" #. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -#, fuzzy +#. TRANS: Description of the form to block a user. +#: actions/block.php:165 lib/blockform.php:79 msgid "Block this user" -msgstr "呼叫这个用户" +msgstr "屏蔽这个用户" -#: actions/block.php:187 +#. TRANS: Server error displayed when blocking a user fails. +#: actions/block.php:189 msgid "Failed to save block information." -msgstr "保存阻止信息失败。" +msgstr "保存屏蔽信息失败。" -#: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 -#: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 +#. TRANS: Client error displayed when requesting a list of blocked users for a non-local group. +#. TRANS: Client error displayed when requesting a list of blocked users for a non-existing group. +#. TRANS: Client error when trying to delete a non-local group. +#. TRANS: Client error when trying to delete a non-existing group. +#. TRANS: Client error displayed trying to edit a non-existing group. +#. TRANS: Client error displayed when trying to unblock a user from a non-existing group. +#. TRANS: Client error displayed if no remote group with a given name was found requesting group page. +#. TRANS: Client error displayed if no local group with a given name was found requesting group page. +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. +#: actions/blockedfromgroup.php:81 actions/blockedfromgroup.php:89 +#: actions/deletegroup.php:87 actions/deletegroup.php:100 +#: actions/editgroup.php:102 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 #: actions/groupdesignsettings.php:100 actions/grouplogo.php:102 #: actions/groupmembers.php:83 actions/groupmembers.php:90 #: actions/grouprss.php:98 actions/grouprss.php:105 -#: actions/groupunblock.php:86 actions/joingroup.php:82 +#: actions/groupunblock.php:88 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 +#: actions/showgroup.php:134 actions/showgroup.php:143 lib/command.php:168 +#: lib/command.php:380 msgid "No such group." msgstr "没有这个组。" -#: actions/blockedfromgroup.php:97 +#. TRANS: Title for first page with list of users blocked from a group. +#. TRANS: %s is a group nickname. +#: actions/blockedfromgroup.php:101 #, php-format msgid "%s blocked profiles" -msgstr "" +msgstr "%s屏蔽的用户" -#: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#. TRANS: Title for any but the first page with list of users blocked from a group. +#. TRANS: %1$s is a group nickname, %2$d is a page number. +#: actions/blockedfromgroup.php:106 +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%1$s 和好友,第%2$d页" +msgstr "%1$s屏蔽的用户,第%2$d页" -#: actions/blockedfromgroup.php:115 -#, fuzzy +#. TRANS: Instructions for list of users blocked from a group. +#: actions/blockedfromgroup.php:122 msgid "A list of the users blocked from joining this group." -msgstr "该组成员列表。" +msgstr "被屏蔽加入此小组的用户列表。" -#: actions/blockedfromgroup.php:288 -#, fuzzy +#. TRANS: Form legend for unblocking a user from a group. +#: actions/blockedfromgroup.php:291 msgid "Unblock user from group" -msgstr "取消阻止用户失败。" +msgstr "取消小组对用户的屏蔽。" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Button text for unblocking a user from a group. +#: actions/blockedfromgroup.php:323 +msgctxt "BUTTON" msgid "Unblock" -msgstr "取消阻止" +msgstr "取消屏蔽" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 -#, fuzzy +#. TRANS: Tooltip for button for unblocking a user from a group. +#. TRANS: Description of the form to unblock a user. +#: actions/blockedfromgroup.php:327 lib/unblockform.php:78 msgid "Unblock this user" -msgstr "取消阻止用户失败。" +msgstr "取消屏蔽这个用户。" #. TRANS: Title for mini-posting window loaded from bookmarklet. +#. TRANS: %s is the StatusNet site name. #: actions/bookmarklet.php:51 -#, fuzzy, php-format +#, php-format msgid "Post to %s" -msgstr "%s 的回复" +msgstr "发布到 %s" -#: actions/confirmaddress.php:75 +#. TRANS: Client error displayed when not providing a confirmation code in the contact address confirmation action. +#: actions/confirmaddress.php:74 msgid "No confirmation code." -msgstr "没有验证码" +msgstr "没有确认码" +#. TRANS: Client error displayed when providing a non-existing confirmation code in the contact address confirmation action. #: actions/confirmaddress.php:80 msgid "Confirmation code not found." msgstr "未找到确认码。" -#: actions/confirmaddress.php:85 +#. TRANS: Client error displayed when not providing a confirmation code for another user in the contact address confirmation action. +#: actions/confirmaddress.php:86 msgid "That confirmation code is not for you!" -msgstr "此确认码不适用!" +msgstr "此确认码不是你的!" -#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. -#: actions/confirmaddress.php:91 +#. TRANS: Server error for a unknow address type %s, which can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:92 #, php-format msgid "Unrecognized address type %s." -msgstr "" +msgstr "不可识别的地址类型%s。" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 +#. TRANS: Client error for an already confirmed email/jabber/sms address. +#: actions/confirmaddress.php:97 msgid "That address has already been confirmed." -msgstr "此地址已被确认。" +msgstr "此地址已被确认过了。" +#. TRANS: Server error displayed when a user update to the database fails in the contact address confirmation action. #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. +#. TRANS: Server error displayed when "Other" settings in user profile could not be updated on the server. +#. TRANS: Server error thrown when user profile settings could not be updated. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 -#: actions/profilesettings.php:283 actions/smssettings.php:308 +#: actions/confirmaddress.php:118 actions/emailsettings.php:359 +#: actions/emailsettings.php:508 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:184 +#: actions/profilesettings.php:326 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." msgstr "无法更新用户。" -#. TRANS: Server error thrown on database error canceling e-mail address confirmation. -#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 -#: actions/smssettings.php:422 -msgid "Couldn't delete email confirmation." -msgstr "无法删除电子邮件确认。" +#. TRANS: Server error displayed when an address confirmation code deletion from the +#. TRANS: database fails in the contact address confirmation action. +#: actions/confirmaddress.php:132 +msgid "Could not delete address confirmation." +msgstr "无法删除地址确认码。" -#: actions/confirmaddress.php:146 -#, fuzzy +#. TRANS: Title for the contact address confirmation action. +#: actions/confirmaddress.php:150 msgid "Confirm address" -msgstr "已确认的电子邮件。" +msgstr "确认地址" -#: actions/confirmaddress.php:161 +#. TRANS: Success message for the contact address confirmation action. +#. TRANS: %s can be 'email', 'jabber', or 'sms'. +#: actions/confirmaddress.php:166 #, php-format msgid "The address \"%s\" has been confirmed for your account." -msgstr "地址 \"%s\" 已确认。" +msgstr "你账户的地址 \"%s\" 已被确认。" -#: actions/conversation.php:99 -#, fuzzy +#. TRANS: Title for page with a conversion (multiple notices in context). +#: actions/conversation.php:96 msgid "Conversation" -msgstr "确认码" +msgstr "对话" -#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#. TRANS: Header on conversation page. Hidden by default (h2). +#: actions/conversation.php:149 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 msgid "Notices" -msgstr "通告" +msgstr "消息" -#: actions/deleteapplication.php:63 -#, fuzzy +#. TRANS: Client error displayed trying to delete an application while not logged in. +#: actions/deleteapplication.php:62 msgid "You must be logged in to delete an application." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录后才能删除应用。" +#. TRANS: Client error displayed trying to delete an application that does not exist. #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "未找到确认码。" +msgstr "未找到应用。" -#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#. TRANS: Client error displayed trying to delete an application the current user does not own. +#. TRANS: Client error displayed trying to edit an application while not being its owner. +#: actions/deleteapplication.php:79 actions/editapplication.php:78 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "您未告知此个人信息" +msgstr "你不是该应用的拥有者。" -#: actions/deleteapplication.php:102 actions/editapplication.php:127 -#: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 -#, fuzzy +#. TRANS: Client error text when there is a problem with the session token. +#: actions/deleteapplication.php:102 actions/editapplication.php:131 +#: actions/newapplication.php:114 actions/showapplication.php:118 +#: lib/action.php:1409 msgid "There was a problem with your session token." -msgstr "会话标识有问题,请重试。" +msgstr "你的 session token 出现了问题。" -#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +#. TRANS: Title for delete application page. +#. TRANS: Fieldset legend on delete application page. +#: actions/deleteapplication.php:124 actions/deleteapplication.php:149 msgid "Delete application" -msgstr "" +msgstr "删除应用" -#: actions/deleteapplication.php:149 +#. TRANS: Confirmation text on delete application page. +#: actions/deleteapplication.php:152 msgid "" "Are you sure you want to delete this application? This will clear all data " "about the application from the database, including all existing user " "connections." msgstr "" -"你确定要删除这个组件吗?这将从数据库中清除有关这个组件的所有数据,包括所有的" -"用户联系。" +"你确定要删除这个应用吗?这将从数据库中清除有关这个应用的所有数据,包括所有的" +"用户关联。" #. TRANS: Submit button title for 'No' when deleting an application. -#: actions/deleteapplication.php:158 -#, fuzzy +#: actions/deleteapplication.php:161 msgid "Do not delete this application" -msgstr "无法删除通告。" +msgstr "不删除该应用" #. TRANS: Submit button title for 'Yes' when deleting an application. -#: actions/deleteapplication.php:164 +#: actions/deleteapplication.php:167 msgid "Delete this application" -msgstr "" +msgstr "删除这个应用" +#. TRANS: Client error when trying to delete group while not logged in. +#: actions/deletegroup.php:64 +msgid "You must be logged in to delete a group." +msgstr "你必须登录才能删除小组。" + +#. TRANS: Client error when trying to delete a group without providing a nickname or ID for the group. +#: actions/deletegroup.php:94 actions/joingroup.php:88 +#: actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "没有昵称或 ID。" + +#. TRANS: Client error when trying to delete a group without having the rights to delete it. +#: actions/deletegroup.php:107 +msgid "You are not allowed to delete this group." +msgstr "你不能删除这个小组。" + +#. TRANS: Server error displayed if a group could not be deleted. +#. TRANS: %s is the name of the group that could not be deleted. +#: actions/deletegroup.php:150 +#, php-format +msgid "Could not delete group %s." +msgstr "无法删除%s小组。" + +#. TRANS: Message given after deleting a group. +#. TRANS: %s is the deleted group's name. +#: actions/deletegroup.php:159 +#, php-format +msgid "Deleted group %s" +msgstr "删除了%s小组" + +#. TRANS: Title of delete group page. +#. TRANS: Form legend for deleting a group. +#: actions/deletegroup.php:176 actions/deletegroup.php:202 +msgid "Delete group" +msgstr "删除小组" + +#. TRANS: Warning in form for deleleting a group. +#: actions/deletegroup.php:206 +msgid "" +"Are you sure you want to delete this group? This will clear all data about " +"the group from the database, without a backup. Public posts to this group " +"will still appear in individual timelines." +msgstr "" +"你确定要删除这个小组吗?这将从数据库中清除有关这个用户的所有数据,没有备份。" +"对这个小组公开的消息将仍在各自的时间线中保留。" + +#. TRANS: Submit button title for 'No' when deleting a group. +#: actions/deletegroup.php:224 +msgid "Do not delete this group" +msgstr "不要删除这个小组" + +#. TRANS: Submit button title for 'Yes' when deleting a group. +#: actions/deletegroup.php:231 +msgid "Delete this group" +msgstr "删除这个小组" + +#. TRANS: Error message displayed trying to delete a notice while not logged in. +#. TRANS: Client error displayed when trying to unblock a user from a group while not logged in. +#. TRANS: Client error displayed trying a change a subscription while not logged in. #. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 +#: actions/deletenotice.php:52 actions/disfavor.php:61 actions/favor.php:62 +#: actions/groupblock.php:61 actions/groupunblock.php:60 actions/logout.php:69 +#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:88 +#: actions/nudge.php:63 actions/subedit.php:33 actions/subscribe.php:96 #: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 +#: lib/adminpanelaction.php:71 lib/profileformaction.php:64 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "未登录。" -#: actions/deletenotice.php:71 -msgid "Can't delete this notice." -msgstr "无法删除通告。" - -#: actions/deletenotice.php:103 +#. TRANS: Instructions for deleting a notice. +#: actions/deletenotice.php:110 msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." -msgstr "" +msgstr "你即将永久删除一条消息,此操作无法撤销。" -#: actions/deletenotice.php:109 actions/deletenotice.php:141 +#. TRANS: Page title when deleting a notice. +#. TRANS: Fieldset legend for the delete notice form. +#: actions/deletenotice.php:117 actions/deletenotice.php:148 msgid "Delete notice" -msgstr "删除通告" +msgstr "删除消息" -#: actions/deletenotice.php:144 +#. TRANS: Message for the delete notice form. +#: actions/deletenotice.php:152 msgid "Are you sure you want to delete this notice?" -msgstr "确定要删除这条消息吗?" +msgstr "你确定要删除这条消息吗?" #. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 -#, fuzzy +#: actions/deletenotice.php:159 msgid "Do not delete this notice" -msgstr "无法删除通告。" +msgstr "不要删除这个消息" #. TRANS: Submit button title for 'Yes' when deleting a notice. -#: actions/deletenotice.php:158 lib/noticelist.php:657 -#, fuzzy +#: actions/deletenotice.php:166 lib/noticelist.php:672 msgid "Delete this notice" -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:136 -#, fuzzy 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 "" -"你确定要删除这个组件吗?这将从数据库中清除有关这个组件的所有数据,包括所有的" -"用户联系。" +"你确定要删除这个用户吗?这将从数据库中清除有关这个用户的所有数据,没有备份。" #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "呼叫这个用户" +msgstr "删除这个用户" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. -#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 +#: actions/designadminpanel.php:63 lib/accountsettingsaction.php:134 msgid "Design" -msgstr "" +msgstr "外观" #: actions/designadminpanel.php:74 -msgid "Design settings for this StatusNet site." -msgstr "" +msgid "Design settings for this StatusNet site" +msgstr "这个 StatusNet 网站的外观设置" -#: actions/designadminpanel.php:318 -#, fuzzy +#: actions/designadminpanel.php:335 msgid "Invalid logo URL." -msgstr "大小不正确。" +msgstr "无效的 logo URL。" -#: actions/designadminpanel.php:322 +#: actions/designadminpanel.php:340 +msgid "Invalid SSL logo URL." +msgstr "无效的 SSL logo URL。" + +#: actions/designadminpanel.php:344 #, php-format msgid "Theme not available: %s." -msgstr "" +msgstr "主题不可用:%s。" -#: actions/designadminpanel.php:426 -#, fuzzy +#: actions/designadminpanel.php:448 msgid "Change logo" -msgstr "修改" +msgstr "更换 logo" -#: actions/designadminpanel.php:431 +#: actions/designadminpanel.php:453 msgid "Site logo" -msgstr "" +msgstr "网站 logo" -#: actions/designadminpanel.php:443 -#, fuzzy +#: actions/designadminpanel.php:457 +msgid "SSL logo" +msgstr "网站 SSL logo" + +#: actions/designadminpanel.php:469 msgid "Change theme" -msgstr "修改" +msgstr "更换主题" -#: actions/designadminpanel.php:460 +#: actions/designadminpanel.php:486 msgid "Site theme" -msgstr "" +msgstr "网站主题" -#: actions/designadminpanel.php:461 +#: actions/designadminpanel.php:487 msgid "Theme for the site." -msgstr "" +msgstr "这个网站的主题。" -#: actions/designadminpanel.php:467 +#: actions/designadminpanel.php:493 msgid "Custom theme" -msgstr "" +msgstr "自定义主题" -#: actions/designadminpanel.php:471 +#: actions/designadminpanel.php:497 msgid "You can upload a custom StatusNet theme as a .ZIP archive." -msgstr "" +msgstr "你可以上传一个 .ZIP 压缩文件作为一个自定义的 StatusNet 主题" -#: actions/designadminpanel.php:486 lib/designsettings.php:101 +#. TRANS: Fieldset legend on profile design page. +#: actions/designadminpanel.php:512 lib/designsettings.php:98 msgid "Change background image" -msgstr "" +msgstr "更换背景图像" -#: actions/designadminpanel.php:491 actions/designadminpanel.php:574 -#: lib/designsettings.php:178 +#. TRANS: Label on profile design page for setting a profile page background colour. +#: actions/designadminpanel.php:517 actions/designadminpanel.php:600 +#: lib/designsettings.php:183 msgid "Background" -msgstr "" +msgstr "背景" -#: actions/designadminpanel.php:496 -#, fuzzy, php-format +#: actions/designadminpanel.php:522 +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "你可以给你的组上载一个logo图。" +msgstr "你可以为网站上传一个背景图像。文件大小限制在%1$s以下。" #. TRANS: Used as radio button label to add a background image. -#: actions/designadminpanel.php:527 lib/designsettings.php:139 +#: actions/designadminpanel.php:553 msgid "On" -msgstr "" +msgstr "打开" #. TRANS: Used as radio button label to not add a background image. -#: actions/designadminpanel.php:544 lib/designsettings.php:155 +#: actions/designadminpanel.php:570 msgid "Off" -msgstr "" +msgstr "关闭" -#: actions/designadminpanel.php:545 lib/designsettings.php:156 +#. TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable +#. TRANS: use of the uploaded profile image. +#: actions/designadminpanel.php:571 lib/designsettings.php:159 msgid "Turn background image on or off." -msgstr "" +msgstr "打开或关闭背景图片" -#: actions/designadminpanel.php:550 lib/designsettings.php:161 +#. TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. +#: actions/designadminpanel.php:576 lib/designsettings.php:165 msgid "Tile background image" -msgstr "" +msgstr "平铺背景图片" -#: actions/designadminpanel.php:564 lib/designsettings.php:170 -#, fuzzy +#. TRANS: Fieldset legend on profile design page to change profile page colours. +#: actions/designadminpanel.php:590 lib/designsettings.php:175 msgid "Change colours" -msgstr "修改密码" +msgstr "改变颜色" -#: actions/designadminpanel.php:587 lib/designsettings.php:191 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page content colour. +#: actions/designadminpanel.php:613 lib/designsettings.php:197 msgid "Content" -msgstr "连接" +msgstr "内容" -#: actions/designadminpanel.php:600 lib/designsettings.php:204 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page sidebar colour. +#: actions/designadminpanel.php:626 lib/designsettings.php:211 msgid "Sidebar" -msgstr "搜索" +msgstr "边栏" -#: actions/designadminpanel.php:613 lib/designsettings.php:217 +#. TRANS: Label on profile design page for setting a profile page text colour. +#: actions/designadminpanel.php:639 lib/designsettings.php:225 msgid "Text" -msgstr "文本" +msgstr "文字" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy +#. TRANS: Label on profile design page for setting a profile page links colour. +#: actions/designadminpanel.php:652 lib/designsettings.php:239 msgid "Links" -msgstr "登录" +msgstr "链接" -#: actions/designadminpanel.php:651 +#: actions/designadminpanel.php:677 msgid "Advanced" -msgstr "" +msgstr "高级" -#: actions/designadminpanel.php:655 +#: actions/designadminpanel.php:681 msgid "Custom CSS" -msgstr "" +msgstr "自定义CSS" -#: actions/designadminpanel.php:676 lib/designsettings.php:247 +#. TRANS: Button text on profile design page to immediately reset all colour settings to default. +#: actions/designadminpanel.php:702 lib/designsettings.php:257 msgid "Use defaults" -msgstr "" +msgstr "使用默认值" -#: actions/designadminpanel.php:677 lib/designsettings.php:248 +#. TRANS: Title for button on profile design page to reset all colour settings to default. +#: actions/designadminpanel.php:703 lib/designsettings.php:259 msgid "Restore default designs" -msgstr "" +msgstr "恢复默认外观" -#: actions/designadminpanel.php:683 lib/designsettings.php:254 +#. TRANS: Title for button on profile design page to reset all colour settings to default without saving. +#: actions/designadminpanel.php:709 lib/designsettings.php:267 msgid "Reset back to default" -msgstr "" +msgstr "重置到默认" -#. TRANS: Submit button title -#: actions/designadminpanel.php:685 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#. TRANS: Submit button title. +#: actions/designadminpanel.php:711 actions/licenseadminpanel.php:319 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 -#: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 -#: lib/designsettings.php:256 lib/groupeditform.php:202 +#: actions/snapshotadminpanel.php:245 actions/tagother.php:154 +#: lib/applicationeditform.php:357 msgid "Save" msgstr "保存" -#: actions/designadminpanel.php:686 lib/designsettings.php:257 +#. TRANS: Title for button on profile design page to save settings. +#: actions/designadminpanel.php:712 lib/designsettings.php:272 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 "加入收藏" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "没有这份通告。" +msgstr "没有这个文件“%s”。" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "" +#. TRANS: Title for "Edit application" form. +#. TRANS: Form legend. +#: actions/editapplication.php:54 lib/applicationeditform.php:129 +msgid "Edit application" +msgstr "编辑应用" +#. TRANS: Client error displayed trying to edit an application while not logged in. #: actions/editapplication.php:66 -#, fuzzy msgid "You must be logged in to edit an application." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录后才能编辑应用。" -#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 -#: actions/showapplication.php:87 -#, fuzzy +#. TRANS: Client error displayed trying to edit an application that does not exist. +#: actions/editapplication.php:83 actions/showapplication.php:87 msgid "No such application." -msgstr "没有这份通告。" +msgstr "没有这个应用。" -#: actions/editapplication.php:161 -#, fuzzy +#. TRANS: Instructions for "Edit application" form. +#: actions/editapplication.php:167 msgid "Use this form to edit your application." -msgstr "使用这个表单来编辑组" +msgstr "通过此表单来编辑你的应用。" -#: actions/editapplication.php:177 actions/newapplication.php:159 -#, fuzzy +#. TRANS: Validation error shown when not providing a name in the "Edit application" form. +#: actions/editapplication.php:184 actions/newapplication.php:163 msgid "Name is required." -msgstr "相同的密码。此项必填。" +msgstr "名字为必填项。" -#: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "全名过长(不能超过 255 个字符)。" +#. TRANS: Validation error shown when providing too long a name in the "Edit application" form. +#: actions/editapplication.php:188 actions/newapplication.php:169 +msgid "Name is too long (maximum 255 characters)." +msgstr "名称过长(不能超过255个字符)。" -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy +#. TRANS: Validation error shown when providing a name for an application that already exists in the "Edit application" form. +#: actions/editapplication.php:192 actions/newapplication.php:166 msgid "Name already in use. Try another one." -msgstr "昵称已被使用,换一个吧。" +msgstr "名字已被使用,换一个吧。" -#: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy +#. TRANS: Validation error shown when not providing a description in the "Edit application" form. +#: actions/editapplication.php:196 actions/newapplication.php:172 msgid "Description is required." -msgstr "订阅被拒绝" +msgstr "必须填写描述。" -#: actions/editapplication.php:194 +#. TRANS: Validation error shown when providing too long a source URL in the "Edit application" form. +#: actions/editapplication.php:208 msgid "Source URL is too long." -msgstr "" +msgstr "来源 URL 太长。" -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy +#. TRANS: Validation error shown when providing an invalid source URL in the "Edit application" form. +#: actions/editapplication.php:215 actions/newapplication.php:193 msgid "Source URL is not valid." -msgstr "主页的URL不正确。" +msgstr "来源 URL 无效。" -#: actions/editapplication.php:203 actions/newapplication.php:188 +#. TRANS: Validation error shown when not providing an organisation in the "Edit application" form. +#: actions/editapplication.php:219 actions/newapplication.php:196 msgid "Organization is required." -msgstr "" +msgstr "组织名称必填。" -#: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "位置过长(不能超过255个字符)。" +#. TRANS: Validation error shown when providing too long an arganisation name in the "Edit application" form. +#: actions/editapplication.php:223 actions/newapplication.php:199 +msgid "Organization is too long (maximum 255 characters)." +msgstr "组织名称过长(不能超过255个字符)。" -#: actions/editapplication.php:209 actions/newapplication.php:194 +#: actions/editapplication.php:226 actions/newapplication.php:202 msgid "Organization homepage is required." -msgstr "" +msgstr "组织首页必填。" -#: actions/editapplication.php:218 actions/newapplication.php:206 +#. TRANS: Validation error shown when providing too long a callback URL in the "Edit application" form. +#: actions/editapplication.php:237 actions/newapplication.php:214 msgid "Callback is too long." -msgstr "" +msgstr "调回地址(callback)过长。" -#: actions/editapplication.php:225 actions/newapplication.php:215 +#. TRANS: Validation error shown when providing an invalid callback URL in the "Edit application" form. +#: actions/editapplication.php:245 actions/newapplication.php:223 msgid "Callback URL is not valid." -msgstr "" +msgstr "调回地址(Callback URL)无效。" -#: actions/editapplication.php:258 -#, fuzzy +#. TRANS: Server error occuring when an application could not be updated from the "Edit application" form. +#: actions/editapplication.php:282 msgid "Could not update application." -msgstr "无法更新组" +msgstr "无法更新应用。" -#: actions/editgroup.php:56 +#. TRANS: Title for form to edit a group. %s is a group nickname. +#: actions/editgroup.php:55 #, php-format msgid "Edit %s group" -msgstr "编辑 %s 组" +msgstr "编辑 %s 小组" +#. TRANS: Client error displayed trying to edit a group while not logged in. +#. TRANS: Client error displayed trying to create a group while not logged in. #: 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:107 actions/editgroup.php:172 +#. TRANS: Client error displayed trying to edit a group while not being a group admin. +#: actions/editgroup.php:110 actions/editgroup.php:176 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." -msgstr "您必须登录才能创建小组。" +msgstr "管理员才可以编辑小组。" -#: actions/editgroup.php:158 +#. TRANS: Form instructions for group edit form. +#: actions/editgroup.php:161 msgid "Use this form to edit the group." -msgstr "使用这个表单来编辑组" +msgstr "通过这个表单来编辑小组" -#: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format -msgid "description is too long (max %d chars)." -msgstr "位置过长(不能超过255个字符)。" - -#: actions/editgroup.php:228 actions/newgroup.php:168 -#, fuzzy, php-format +#. TRANS: Group edit form validation error. +#. TRANS: Group create form validation error. +#: actions/editgroup.php:239 actions/newgroup.php:179 +#, php-format msgid "Invalid alias: \"%s\"" -msgstr "电子邮件地址 %s 不正确" +msgstr "无效的别名:“%s”。" -#: actions/editgroup.php:258 +#. TRANS: Server error displayed when editing a group fails. +#: actions/editgroup.php:272 msgid "Could not update group." -msgstr "无法更新组" +msgstr "无法更新小组" +#. TRANS: Server error displayed when group aliases could not be added. #. TRANS: Server exception thrown when creating group aliases failed. -#: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy +#: actions/editgroup.php:279 classes/User_group.php:529 msgid "Could not create aliases." -msgstr "无法创建收藏。" +msgstr "无法创建别名。" -#: actions/editgroup.php:280 +#. TRANS: Group edit form success message. +#: actions/editgroup.php:296 msgid "Options saved." msgstr "选项已保存。" #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" -msgstr "个人设置" +msgstr "Email 设置" #. TRANS: E-mail settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/emailsettings.php:76 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "设置 %%site.name%% 发送的邮件。" +msgstr "设置你如何接受来自 %%site.name%% 的邮件。" #. TRANS: Form legend for e-mail settings form. #. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy +#: actions/emailsettings.php:107 actions/emailsettings.php:133 msgid "Email address" -msgstr "电子邮件地址" +msgstr "电邮地址" #. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 +#: actions/emailsettings.php:113 msgid "Current confirmed email address." -msgstr "已确认的电子邮件。" +msgstr "当前确认的电子邮件。" #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:116 actions/emailsettings.php:183 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 -#, fuzzy msgctxt "BUTTON" msgid "Remove" -msgstr "恢复" +msgstr "移除" -#: actions/emailsettings.php:122 +#: actions/emailsettings.php:123 msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" -"等待确认此地址。请查看您的收件箱(和垃圾箱)是否收到了邮件,其中包含了进一步的" -"指示。" +"正等待确认此邮件。请查看你的收件箱(和垃圾箱)是否收到了邮件,里面包含了更多的" +"说明。" -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "取消" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:140 msgid "Email address, like \"UserName@example.org\"" msgstr "电子邮件,类似 \"UserName@example.org\"" #. TRANS: Button label for adding an e-mail address in e-mail settings form. #. TRANS: Button label for adding an IM address in IM settings form. #. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 +#: actions/emailsettings.php:144 actions/imsettings.php:151 #: actions/smssettings.php:162 msgctxt "BUTTON" msgid "Add" -msgstr "" +msgstr "添加" #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:152 actions/smssettings.php:171 msgid "Incoming email" -msgstr "发布用的电子邮件" - -#. TRANS: Form instructions for incoming e-mail form in e-mail settings. -#. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 -msgid "Send email to this address to post new notices." -msgstr "向这个电子邮件发信以发布新的通告。" - -#. TRANS: Instructions for incoming e-mail address input form. -#. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 -msgid "Make a new email address for posting to; cancels the old one." -msgstr "生成新的电子邮件地址用于发布信息;取消旧的。" - -#. TRANS: Button label for adding an e-mail address to send notices from. -#. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 -msgctxt "BUTTON" -msgid "New" -msgstr "" - -#. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -#, fuzzy -msgid "Email preferences" -msgstr "电子邮件地址" +msgstr "接收用 email" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 -msgid "Send me notices of new subscriptions through email." -msgstr "如果有新订阅,通过电子邮件告诉我。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 -msgid "Send me email when someone adds my notice as a favorite." -msgstr "如果有人收藏我的通告,发邮件通知我。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 -msgid "Send me email when someone sends me a private message." -msgstr "如果收到私人信息,发邮件通知我。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 -#, fuzzy -msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "如果收到私人信息,发邮件通知我。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 -msgid "Allow friends to nudge me and send me an email." -msgstr "允许朋友们呼叫并给我发送邮件。" - -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 +#: actions/emailsettings.php:158 msgid "I want to post notices by email." msgstr "我希望通过邮件发布信息。" +#. TRANS: Form instructions for incoming e-mail form in e-mail settings. +#. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. +#: actions/emailsettings.php:180 actions/smssettings.php:178 +msgid "Send email to this address to post new notices." +msgstr "通过发送电子邮件到这个地址来发布新的消息。" + +#. TRANS: Instructions for incoming e-mail address input form, when an address has already been assigned. +#. TRANS: Instructions for incoming SMS e-mail address input form. +#: actions/emailsettings.php:189 actions/smssettings.php:186 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "生成新的电子邮件地址用于发布消息;取消旧的。" + +#. TRANS: Instructions for incoming e-mail address input form. +#: actions/emailsettings.php:193 +msgid "" +"To send notices via email, we need to create a unique email address for you " +"on this server:" +msgstr "" + +#. TRANS: Button label for adding an e-mail address to send notices from. +#. TRANS: Button label for adding an SMS e-mail address to send notices from. +#: actions/emailsettings.php:199 actions/smssettings.php:189 +msgctxt "BUTTON" +msgid "New" +msgstr "新增" + +#. TRANS: Form legend for e-mail preferences form. +#: actions/emailsettings.php:208 +msgid "Email preferences" +msgstr "Email 偏好" + #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 +#: actions/emailsettings.php:216 +msgid "Send me notices of new subscriptions through email." +msgstr "将新的关注通过电子邮件发送给我。" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:222 +msgid "Send me email when someone adds my notice as a favorite." +msgstr "有人收藏我的消息时,发邮件通知我。" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:229 +msgid "Send me email when someone sends me a private message." +msgstr "有人给我发送私信时,发邮件通知我。" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:235 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "有人给我发送 @ 消息时,发邮件通知我。" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:241 +msgid "Allow friends to nudge me and send me an email." +msgstr "允许朋友们呼叫我并给我发送邮件。" + +#. TRANS: Checkbox label in e-mail preferences form. +#: actions/emailsettings.php:247 msgid "Publish a MicroID for my email address." msgstr "公开电子邮件的 MicroID。" #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 -#, fuzzy +#: actions/emailsettings.php:368 msgid "Email preferences saved." -msgstr "首选项已保存。" +msgstr "Email 偏好已保存。" #. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 +#: actions/emailsettings.php:388 msgid "No email address." msgstr "没有电子邮件地址。" #. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 +#: actions/emailsettings.php:396 msgid "Cannot normalize that email address" msgstr "无法识别此电子邮件" #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:401 actions/register.php:212 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "不是有效的电子邮件。" #. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 +#: actions/emailsettings.php:405 msgid "That is already your email address." -msgstr "您已登记此电子邮件。" +msgstr "你已登记此电子邮件。" #. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 +#: actions/emailsettings.php:409 msgid "That email address already belongs to another user." msgstr "此电子邮件属于其他用户。" #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:426 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." -msgstr "无法插入验证码。" +msgstr "无法插入确认码。" #. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 +#: actions/emailsettings.php:433 msgid "" "A confirmation code was sent to the email address you added. Check your " "inbox (and spam box!) for the code and instructions on how to use it." msgstr "" -"验证码已被发送到您新增的电子邮件。请检查收件箱(和垃圾箱),找到验证码并按要求" -"使用它。" +"确认码已被发送到你新增的电子邮件地址。请检查收件箱(和垃圾箱),找到确认码和使" +"用说明。" #. TRANS: Message given canceling e-mail address confirmation that is not pending. #. TRANS: Message given canceling IM address confirmation that is not pending. #. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 +#: actions/emailsettings.php:454 actions/imsettings.php:386 #: actions/smssettings.php:408 msgid "No pending confirmation to cancel." msgstr "没有可以取消的确认。" #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy +#: actions/emailsettings.php:459 msgid "That is the wrong email address." -msgstr "即时通讯帐号错误。" +msgstr "这是错误的电子邮件地址。" + +#. TRANS: Server error thrown on database error canceling e-mail address confirmation. +#. TRANS: Server error thrown on database error canceling SMS phone number confirmation. +#: actions/emailsettings.php:468 actions/smssettings.php:422 +msgid "Couldn't delete email confirmation." +msgstr "无法删除电子邮件确认。" #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:473 msgid "Email confirmation cancelled." -msgstr "没有可以取消的确认。" +msgstr "Email 确认已取消。" #. TRANS: Message given trying to remove an e-mail address that is not #. TRANS: registered for the active user. -#: actions/emailsettings.php:458 +#: actions/emailsettings.php:493 msgid "That is not your email address." -msgstr "这是他人的电子邮件。" +msgstr "这个不是你的电子邮件地址。" #. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy +#: actions/emailsettings.php:514 msgid "The email address was removed." -msgstr "发布用的电子邮件被移除。" +msgstr "电子邮件地址已被删除。" -#: actions/emailsettings.php:493 actions/smssettings.php:568 +#: actions/emailsettings.php:528 actions/smssettings.php:568 msgid "No incoming email address." msgstr "没有发布用的电子邮件地址。" #. TRANS: Server error thrown on database error removing incoming e-mail address. #. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 +#: actions/emailsettings.php:540 actions/emailsettings.php:565 #: actions/smssettings.php:578 actions/smssettings.php:602 msgid "Couldn't update user record." msgstr "无法更新用户记录。" #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:544 actions/smssettings.php:581 msgid "Incoming email address removed." -msgstr "发布用的电子邮件被移除。" +msgstr "发布用的电子邮件被删除。" #. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 +#: actions/emailsettings.php:569 actions/smssettings.php:605 msgid "New incoming email address added." msgstr "已添加新的发布用的电子邮件地址。" #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "已收藏此通告!" +msgstr "已收藏过此消息!" -#: actions/favor.php:92 lib/disfavorform.php:140 -#, fuzzy +#: actions/favor.php:92 lib/disfavorform.php:144 msgid "Disfavor favorite" -msgstr "加入收藏" +msgstr "取消收藏" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: actions/favorited.php:65 lib/popularnoticesection.php:62 #: 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 "组,第 %d 页" +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 "" +msgstr "此页面展示收藏的消息,但还没有人收藏任何消息。" #: 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 "" +msgstr "通过点击任意消息下的收藏图标成为第一个给自己的收藏添加消息的人。" #: actions/favorited.php:156 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" -msgstr "" +msgstr "现在就[注册一个账户](%%action.register%%)并成为第一个添加收藏的人!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 -#: lib/personalgroupnav.php:115 +#: lib/personalgroupnav.php:118 #, php-format msgid "%s's favorite notices" -msgstr "%s 收藏的通告" +msgstr "%s收藏的消息" #: actions/favoritesrss.php:115 -#, fuzzy, php-format +#, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "%2$s 上 %1$s 的更新!" +msgstr "%2$s 上被 %1$s 收藏的消息!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1707,25 +2393,23 @@ 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 msgid "No attachments." -msgstr "" +msgstr "没有附件。" #: actions/file.php:51 msgid "No uploaded attachments." -msgstr "" +msgstr "没有已上传的附件。" #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1733,100 +2417,92 @@ msgstr "未预料的响应!" #: actions/finishremotesubscribe.php:80 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!" -msgstr "您可以在这里订阅!" +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 "订阅已确认" +msgstr "你没有被授权。" #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." -msgstr "" +msgstr "无法将 request token 转换为 access token。" #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "" +msgstr "远程服务使用了未知版本的 OMB 协议。" -#: actions/finishremotesubscribe.php:138 -#, fuzzy +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:317 msgid "Error updating remote profile." -msgstr "更新远程的个人信息时出错" +msgstr "更新远程的个人信息时出错。" #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "没有这份通告。" +msgstr "没有这个文件。" #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "无法创建收藏。" +msgstr "无法读取文件。" #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "大小不正确。" +msgstr "无效的权限。" #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "此权限是保留的且不能被设置。" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "在这个网站你被禁止发布消息。" +msgstr "你不能在这个网站授予用户权限。" #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "用户没有个人信息。" +msgstr "用户已有此权限。" +#. TRANS: Client error displayed when trying to unblock a user from a group without providing a profile. +#. TRANS: Client error displayed trying a change a subscription without providing a profile. #: actions/groupblock.php:71 actions/groupunblock.php:71 -#: actions/makeadmin.php:71 actions/subedit.php:46 +#: actions/makeadmin.php:71 actions/subedit.php:49 #: lib/profileformaction.php:79 -#, fuzzy 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 +#. TRANS: Client error displayed when trying to unblock a user from a group without providing an existing profile. +#. TRANS: Client error displayed trying a change a subscription for a non-existant profile ID. +#: actions/groupblock.php:76 actions/groupunblock.php:77 +#: actions/makeadmin.php:76 actions/subedit.php:57 actions/tagother.php:46 #: actions/unsubscribe.php:84 lib/profileformaction.php:86 -#, fuzzy msgid "No profile with that ID." -msgstr "没有找到此ID的信息。" +msgstr "此 ID 没有用户。" -#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/groupblock.php:81 actions/groupunblock.php:82 #: actions/makeadmin.php:81 -#, fuzzy msgid "No group specified." -msgstr "没有收件人。" +msgstr "没有指定小组。" #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "" +msgstr "只有管理员可以屏蔽小组成员。" #: actions/groupblock.php:95 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:134 actions/groupmembers.php:360 -#, fuzzy +#: actions/groupblock.php:134 actions/groupmembers.php:364 msgid "Block user from group" -msgstr "阻止用户失败。" +msgstr "从小组中屏蔽用户" #: actions/groupblock.php:160 #, php-format @@ -1835,138 +2511,147 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" +"你确定要在“%2$s”小组中屏蔽用户“%1$s”么?他们将被从小组中删除,并且不能在小组" +"内发布消息或关注该小组。" #. TRANS: Submit button title for 'No' when blocking a user from a group. #: actions/groupblock.php:182 -#, fuzzy msgid "Do not block this user from this group" -msgstr "该组成员列表。" +msgstr "不要在此小组屏蔽此用户。" #. TRANS: Submit button title for 'Yes' when blocking a user from a group. #: actions/groupblock.php:189 -#, fuzzy msgid "Block this user from this group" -msgstr "该组成员列表。" +msgstr "在小组中屏蔽此用户。" #: actions/groupblock.php:206 msgid "Database error blocking user from group." -msgstr "" +msgstr "在小组中屏蔽用户时数据库发生错误。" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "没有 Jabber ID。" +msgstr "没有 ID。" #: actions/groupdesignsettings.php:68 -#, fuzzy msgid "You must be logged in to edit a group." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能创建小组。" #: actions/groupdesignsettings.php:144 -#, fuzzy msgid "Group design" -msgstr "组" +msgstr "小组页面外观。" #: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "通过背景图片和颜色板来自定义你的小组的外观。" +#. TRANS: Error message displayed if design settings could not be saved. +#. TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy +#: lib/designsettings.php:405 lib/designsettings.php:427 msgid "Couldn't update your design." -msgstr "无法更新用户。" +msgstr "无法更新你的外观。" #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "首选项已保存。" +msgstr "外观偏好已保存。" #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" -msgstr "组logo" +msgstr "小组logo" #: actions/grouplogo.php:153 -#, fuzzy, php-format +#, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "你可以给你的组上载一个logo图。" +msgstr "你可以给你的小组上传一个 logo。文件最大限制为%s。" + +#: actions/grouplogo.php:236 +msgid "Upload" +msgstr "上传" + +#: actions/grouplogo.php:289 +msgid "Crop" +msgstr "剪裁" #: actions/grouplogo.php:365 -#, fuzzy msgid "Pick a square area of the image to be the logo." -msgstr "请选择一块方形区域作为你的头像" +msgstr "请选择一块方形区域作为 logo。" #: actions/grouplogo.php:399 msgid "Logo updated." msgstr "logo已更新。" #: actions/grouplogo.php:401 -#, fuzzy msgid "Failed updating logo." -msgstr "更新头像失败。" +msgstr "更新 logo 失败。" -#: actions/groupmembers.php:100 lib/groupnav.php:92 +#. TRANS: Title of the page showing group members. +#. TRANS: %s is the name of the group. +#: actions/groupmembers.php:102 #, php-format msgid "%s group members" -msgstr "%s 组成员" +msgstr "%s 的小组成员" -#: actions/groupmembers.php:103 -#, fuzzy, php-format -msgid "%1$s group members, page %2$d" -msgstr "%s 组成员" - -#: actions/groupmembers.php:118 -msgid "A list of the users in this group." -msgstr "该组成员列表。" - -#: actions/groupmembers.php:182 lib/groupnav.php:107 -msgid "Admin" -msgstr "admin管理员" - -#: actions/groupmembers.php:392 lib/blockform.php:69 -msgid "Block" -msgstr "阻止" - -#: actions/groupmembers.php:487 -msgid "Make user an admin of the group" -msgstr "" - -#: actions/groupmembers.php:519 -#, fuzzy -msgid "Make Admin" -msgstr "admin管理员" - -#: actions/groupmembers.php:519 -msgid "Make this user an admin" -msgstr "" - -#. TRANS: Message is used as link title. %s is a user nickname. -#. TRANS: Title in atom group notice feed. %s is a group name. -#. TRANS: Title in atom user notice feed. %s is a user name. -#: actions/grouprss.php:139 actions/userrss.php:94 -#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format -msgid "%s timeline" -msgstr "%s 时间表" +msgid "%1$s group members, page %2$d" +msgstr "%s 的小组成员,第%2$d页" + +#: actions/groupmembers.php:122 +msgid "A list of the users in this group." +msgstr "该小组的成员列表。" + +#: actions/groupmembers.php:186 +msgid "Admin" +msgstr "管理" + +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" +msgid "Block" +msgstr "屏蔽" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:403 +msgctxt "TOOLTIP" +msgid "Block this user" +msgstr "屏蔽这个用户" + +#: actions/groupmembers.php:498 +msgid "Make user an admin of the group" +msgstr "使用户成为小组的管理员" + +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" +msgid "Make Admin" +msgstr "设置管理员" + +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" +msgid "Make this user an admin" +msgstr "将这个用户设为管理员" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #: actions/grouprss.php:142 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "%2$s 上 %1$s 的更新!" +msgstr "在%2$s上%1$s小组组员的更新!" #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: 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 "组,第 %d 页" +msgstr "小组,第 %d 页" #: actions/groups.php:90 #, php-format @@ -1977,37 +2662,39 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"%%%%site.name%%%%的小组可以让你找到有相同兴趣的朋友一起交流。当你加入到一个小" +"组后可以可以通过使用“!小组名称”发布消息给所有其他的小组成员。找不到感兴趣的小" +"组?试一下[搜索小组](%%%%action.groupsearch%%%%)或[建立自己的小组](%%%%" +"action.newgroup%%%%)!" #: actions/groups.php:107 actions/usergroups.php:126 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" -msgstr "组检索" +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 msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." -msgstr "" +msgstr "如果你找不到你想要的小组,你可以自己 [创建它](%%action.newgroup%%) 。" #: actions/groupsearch.php:85 #, php-format @@ -2015,25 +2702,28 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"现在就 [注册一个帐号](%%action.register%%) 并 [创建该小组](%%action.newgroup%" +"%) !" -#: actions/groupunblock.php:91 +#. TRANS: Client error displayed when trying to unblock a user from a group without being an administrator for the group. +#: actions/groupunblock.php:94 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "只有管理员可以取消屏蔽小组成员。" -#: actions/groupunblock.php:95 -#, fuzzy +#. TRANS: Client error displayed when trying to unblock a non-blocked user from a group. +#: actions/groupunblock.php:99 msgid "User is not blocked from group." -msgstr "使用这个表单来编辑组" +msgstr "用户未被小组屏蔽。" -#: actions/groupunblock.php:128 actions/unblock.php:86 +#. TRANS: Server error displayed when unblocking a user from a group fails because of an unknown error. +#: actions/groupunblock.php:131 actions/unblock.php:86 msgid "Error removing the block." -msgstr "" +msgstr "取消屏蔽时出错。" #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" -msgstr "头像设置" +msgstr "IM 设置" #. TRANS: Instant messaging settings page instructions. #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link. @@ -2044,20 +2734,19 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"您可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接受通告。在这里配置它" +"你可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接收消息。在这里配置它" "们。" #. TRANS: Message given in the IM settings if XMPP is not enabled on the site. #: actions/imsettings.php:94 msgid "IM is not available." -msgstr "" +msgstr "IM 不可用。" #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 -#, fuzzy msgid "IM address" -msgstr "电子邮件地址" +msgstr "IM 地址" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2071,118 +2760,117 @@ msgid "" "Awaiting confirmation on this address. Check your Jabber/GTalk account for a " "message with further instructions. (Did you add %s to your buddy list?)" msgstr "" -"正在等待这个地址的确认。请查阅你Jabber/GTalk的帐户看有没有收到进一步的指示。" -"(你是否已经添加 %s为你的好友?)" +"正在等待验证这个地址。请查阅你的 Jabber/GTalk 帐户看有没有收到下一步的指示。" +"(你添加 %s 为到你的好友了吗?)" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format 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 "" "Jabber 或 GTalk 帐号,类似\"UserName@example.org\"。首先,必须在即时聊天工具" -"或GTalk中将 %s 加为好友。" +"或 GTalk 中将 %s 加为好友。" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 -#, fuzzy +#: actions/imsettings.php:158 msgid "IM preferences" -msgstr "首选项已保存。" +msgstr "IM 首选项已保存。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." -msgstr "通过Jabber/GTalk发送通告。" +msgstr "通过 Jabber/GTalk 发送通告。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." -msgstr "当我的Jabber/GTalk状态改变时自动发布通告。" +msgstr "当我的 Jabber/GTalk 状态改变时自动发布消息。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." -msgstr "如果我尚未订阅的用户回我消息,使用Jabber/GTalk通知我。" +msgstr "将我没有关注的用户给我的回复通过 Jabber/GTalk 发送给我。" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 +#: actions/imsettings.php:182 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "公开Jabber/GTalk帐号的 MicroID。" +msgstr "公开 Jabber/GTalk 帐号的 MicroID。" #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:190 msgid "Preferences saved." msgstr "首选项已保存。" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "没有 Jabber ID。" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" -msgstr "无法识别此Jabber ID" +msgstr "无法识别此 Jabber ID" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "不是有效的 Jabber ID" #. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 +#: actions/imsettings.php:329 msgid "That is already your Jabber ID." -msgstr "您已登记此Jabber帐号。" +msgstr "这个已经是你的 Jabber 帐号了。" #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "Jabber ID 属于另一用户。" #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" "s for sending messages to you." -msgstr "验证码已被发送到您新增的即时通讯帐号。您必须允许 %s 向您发送信息。" +msgstr "验证码已被发送到你新增的 IM 地址。你必须允许 %s 向你发送信息。" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." -msgstr "即时通讯帐号错误。" +msgstr "IM 地址错误。" #. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy +#: actions/imsettings.php:400 msgid "Couldn't delete IM confirmation." -msgstr "无法删除电子邮件确认。" +msgstr "无法删除 IM 确认。" #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." -msgstr "没有验证码" +msgstr "IM 确认已取消。" #. TRANS: Message given trying to remove an IM address that is not #. TRANS: registered for the active user. -#: actions/imsettings.php:424 +#: actions/imsettings.php:427 msgid "That is not your Jabber ID." -msgstr "这不是您的Jabber帐号。" +msgstr "这不是你的 Jabber ID。" #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 -#, fuzzy +#: actions/imsettings.php:450 msgid "The IM address was removed." -msgstr "发布用的电子邮件被移除。" +msgstr "IM 地址已删除。" #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "%s 的收件箱" +msgstr "%1$s的收件箱 - 第%2$d页" #: actions/inbox.php:62 #, php-format @@ -2191,91 +2879,125 @@ msgstr "%s 的收件箱" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "这是您的收件箱,包含发给您的私人消息。" +msgstr "这是你的收件箱,包含发给你的私信。" -#: actions/invite.php:39 +#. TRANS: Client error displayed when trying to sent invites while they have been disabled. +#: actions/invite.php:40 msgid "Invites have been disabled." -msgstr "" +msgstr "邀请已被禁用。" -#: actions/invite.php:41 -#, fuzzy, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "您必须登录才能创建小组。" - -#: actions/invite.php:72 +#. TRANS: Client error displayed when trying to sent invites while not logged in. +#. TRANS: %s is the StatusNet site name. +#: actions/invite.php:44 #, php-format -msgid "Invalid email address: %s" -msgstr "电子邮件地址 %s 不正确" +msgid "You must be logged in to invite other users to use %s." +msgstr "你必须登录才能邀请他人使用%s。" -#: actions/invite.php:110 -msgid "Invitation(s) sent" -msgstr "已发送邀请" +#. TRANS: Form validation message when providing an e-mail address that does not validate. +#. TRANS: %s is an invalid e-mail address. +#: actions/invite.php:77 +#, php-format +msgid "Invalid email address: %s." +msgstr "无效的电子邮件地址:%s" -#: actions/invite.php:112 +#. TRANS: Page title when invitations have been sent. +#: actions/invite.php:116 +msgid "Invitations sent" +msgstr "邀请已发送" + +#. TRANS: Page title when inviting potential users. +#: actions/invite.php:119 msgid "Invite new users" msgstr "邀请新用户" -#: actions/invite.php:128 -msgid "You are already subscribed to these users:" -msgstr "您已订阅这些用户:" +#. TRANS: Message displayed inviting users to use a StatusNet site while the inviting user +#. TRANS: is already subscribed to one or more users with the given e-mail address(es). +#. TRANS: Plural form is based on the number of reported already subscribed e-mail addresses. +#. TRANS: Followed by a bullet list. +#: actions/invite.php:139 +msgid "You are already subscribed to this user:" +msgid_plural "You are already subscribed to these users:" +msgstr[0] "你已经关注了这些用户:" -#. TRANS: Whois output. -#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#. TRANS: Used as list item for already subscribed users (%1$s is nickname, %2$s is e-mail address). +#. TRANS: Used as list item for already registered people (%1$s is nickname, %2$s is e-mail address). +#: actions/invite.php:145 actions/invite.php:159 #, php-format +msgctxt "INVITE" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" -#: actions/invite.php:136 -msgid "" +#. TRANS: Message displayed inviting users to use a StatusNet site while the invited user +#. TRANS: already uses a this StatusNet site. Plural form is based on the number of +#. TRANS: reported already present people. Followed by a bullet list. +#: actions/invite.php:153 +msgid "This person is already a user and you were automatically subscribed:" +msgid_plural "" "These people are already users and you were automatically subscribed to them:" -msgstr "这些好友已注册,您已自动订阅这些用户。" +msgstr[0] "这些人已经注册了用户,你已自动关注了他们:" -#: actions/invite.php:144 -msgid "Invitation(s) sent to the following people:" -msgstr "已发送邀请给这些人:" +#. TRANS: Message displayed inviting users to use a StatusNet site. Plural form is +#. TRANS: based on the number of invitations sent. Followed by a bullet list of +#. TRANS: e-mail addresses to which invitations were sent. +#: actions/invite.php:167 +msgid "Invitation sent to the following person:" +msgid_plural "Invitations sent to the following people:" +msgstr[0] "邀请已发送给了这些人:" -#: actions/invite.php:150 +#. TRANS: Generic message displayed after sending out one or more invitations to +#. TRANS: people to join a StatusNet site. +#: actions/invite.php:177 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" -msgstr "如果其他人接受邀请并注册,您将得到通知。谢谢您推动了社区发展壮大!" +msgstr "如果其他人接受邀请并注册,你将得到通知。谢谢你推动了社区发展壮大!" -#: actions/invite.php:162 +#. TRANS: Form instructions. +#: actions/invite.php:190 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "使用这个表单来邀请好友和同事加入。" -#: actions/invite.php:187 +#. TRANS: Field label for a list of e-mail addresses. +#: actions/invite.php:217 msgid "Email addresses" -msgstr "电子邮件地址" +msgstr "电邮地址" -#: actions/invite.php:189 +#. TRANS: Tooltip for field label for a list of e-mail addresses. +#: actions/invite.php:220 msgid "Addresses of friends to invite (one per line)" msgstr "要邀请的好友地址(每行一个)" -#: actions/invite.php:192 +#. TRANS: Field label for a personal message to send to invitees. +#: actions/invite.php:224 msgid "Personal message" msgstr "个人消息" -#: actions/invite.php:194 +#. TRANS: Tooltip for field label for a personal message to send to invitees. +#: actions/invite.php:227 msgid "Optionally add a personal message to the invitation." msgstr "在邀请中加几句话(可选)。" #. TRANS: Send button for inviting friends -#: actions/invite.php:198 +#: actions/invite.php:231 msgctxt "BUTTON" msgid "Send" -msgstr "" +msgstr "发布" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 +#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, $2$s is +#. TRANS: the StatusNet sitename. +#: actions/invite.php:263 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s 邀请您加入 %2$s" +msgstr "%1$s 邀请你加入 %2$s" -#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:231 +#. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral +#. TRANS: singular 3rd-person pronoun in English. %1$s is the inviting user, %2$s is the +#. TRANS: StatusNet sitename, %3$s is the site URL, %4$s is the personal message from the +#. TRANS: inviting user, %s%5 a link to the timeline for the inviting user, %s$6 is a link +#. TRANS: to register with the StatusNet site. +#: actions/invite.php:270 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2305,60 +3027,155 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s 邀请你加入 %2$s (%3$s).\n" +"%1$s 邀请你加入 %2$s (%3$s)。\n" +"\n" +"%2$s 是一个能让你和你认识的或感兴趣的人保持联系的微博客服务。 \n" "\n" -"%2$s 是一个能让你和你认识的、感兴趣的人保持联系的微博客服务。 \n" "你可以和你认识的人分享你的近况、想法或者你的网络生活。你也可以结交有共同兴趣" "的新朋友。\n" "\n" -"%1$s 说:\n" +"%1$s 说:\n" "\n" "%4$s\n" "\n" -"你可以在这里查阅 %1$s's 的资料 %2$s :\n" +"你可以在这里查看%1$s在%2$s的资料页:\n" "\n" "%5$s\n" "\n" -"如果你想使用这个服务,请点击一下链接接受邀请。\n" +"如果你想试试这个服务,请点击下面的链接接受邀请。\n" +"\n" "%6$s\n" "\n" -"如果你不愿意,请跳过这条信息。感谢您的耐心和时间。\n" +"如果你目前不愿意,请跳过这条信息。感谢你的耐心和时间。\n" "\n" "诚挚的感谢, %2$s\n" #: actions/joingroup.php:60 -#, fuzzy msgid "You must be logged in to join a group." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能加入小组。" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "没有昵称。" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" -msgstr "" +msgstr "%1$s加入了%2$s小组" #: actions/leavegroup.php:60 -#, fuzzy msgid "You must be logged in to leave a group." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能离开小组。" -#: actions/leavegroup.php:100 lib/command.php:373 -#, fuzzy +#. TRANS: Error text shown when trying to leave an existing group the user is not a member of. +#: actions/leavegroup.php:100 lib/command.php:386 msgid "You are not a member of that group." -msgstr "您已经是该组成员" +msgstr "你不是该群小组成员。" -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s离开了%2$s小组。" + +#. TRANS: User admin panel title +#: actions/licenseadminpanel.php:56 +msgctxt "TITLE" +msgid "License" +msgstr "许可协议" + +#: actions/licenseadminpanel.php:67 +msgid "License for this StatusNet site" +msgstr "这个 StatusNet 网站的许可协议" + +#: actions/licenseadminpanel.php:139 +msgid "Invalid license selection." +msgstr "无效的许可协议选择。" + +#: actions/licenseadminpanel.php:149 +msgid "" +"You must specify the owner of the content when using the All Rights Reserved " +"license." +msgstr "当使用版权所有的许可协议时,你必须指定内容的所有者。" + +#: actions/licenseadminpanel.php:156 +msgid "Invalid license title. Maximum length is 255 characters." +msgstr "无效的许可标题。最大长度255个字符。" + +#: actions/licenseadminpanel.php:168 +msgid "Invalid license URL." +msgstr "无效的许可协议 URL。" + +#: actions/licenseadminpanel.php:171 +msgid "Invalid license image URL." +msgstr "无效的许可协议图片 URL。" + +#: actions/licenseadminpanel.php:179 +msgid "License URL must be blank or a valid URL." +msgstr "许可协议 URL 必须是个有效的 URL 或者为空。" + +#: actions/licenseadminpanel.php:187 +msgid "License image must be blank or valid URL." +msgstr "许可协议图片 URL 必须是个有效的 URL 或者为空。" + +#: actions/licenseadminpanel.php:239 +msgid "License selection" +msgstr "许可协议选择" + +#: actions/licenseadminpanel.php:245 +msgid "Private" +msgstr "私有" + +#: actions/licenseadminpanel.php:246 +msgid "All Rights Reserved" +msgstr "版权所有" + +#: actions/licenseadminpanel.php:247 +msgid "Creative Commons" +msgstr "创作共用" + +#: actions/licenseadminpanel.php:252 +msgid "Type" +msgstr "类型" + +#: actions/licenseadminpanel.php:254 +msgid "Select license" +msgstr "选择许可协议" + +#: actions/licenseadminpanel.php:268 +msgid "License details" +msgstr "许可协议细节" + +#: actions/licenseadminpanel.php:274 +msgid "Owner" +msgstr "所有者" + +#: actions/licenseadminpanel.php:275 +msgid "Name of the owner of the site's content (if applicable)." +msgstr "这个网站内容的所有者姓名(如果适用)。" + +#: actions/licenseadminpanel.php:283 +msgid "License Title" +msgstr "许可协议标题" + +#: actions/licenseadminpanel.php:284 +msgid "The title of the license." +msgstr "许可协议的标题。" + +#: actions/licenseadminpanel.php:292 +msgid "License URL" +msgstr "许可协议 URL" + +#: actions/licenseadminpanel.php:293 +msgid "URL for more information about the license." +msgstr "更多许可协议信息的 URL。" + +#: actions/licenseadminpanel.php:300 +msgid "License Image URL" +msgstr "许可协议图片 URL。" + +#: actions/licenseadminpanel.php:301 +msgid "URL for an image to display with the license." +msgstr "与许可协议一起出现的图片 URL。" + +#: actions/licenseadminpanel.php:319 +msgid "Save license settings" +msgstr "保存许可协议设置" #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." @@ -2370,7 +3187,7 @@ msgstr "用户名或密码不正确。" #: actions/login.php:154 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "" +msgstr "设置用户时出错。你可能没有被认证。" #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79 msgid "Login" @@ -2380,13 +3197,13 @@ msgstr "登录" msgid "Login to site" msgstr "登录" -#: actions/login.php:258 actions/register.php:485 +#: actions/login.php:258 actions/register.php:491 msgid "Remember me" msgstr "记住登录状态" -#: actions/login.php:259 actions/register.php:487 +#: actions/login.php:259 actions/register.php:493 msgid "Automatically login in the future; not for shared computers!" -msgstr "保持这台机器上的登录状态。不要在共用的机器上保持登录!" +msgstr "下次自动登录,请不要在公共电脑上使用此选项!" #: actions/login.php:269 msgid "Lost or forgotten password?" @@ -2399,111 +3216,116 @@ msgid "" msgstr "由于安全原因,修改设置前需要输入用户名和密码。" #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." -msgstr "用户名或密码不正确。" +msgstr "使用用户名和密码登录。" #: actions/login.php:295 #, php-format msgid "" "Don't have a username yet? [Register](%%action.register%%) a new account." -msgstr "" +msgstr "没有帐号?[注册](%%action.register%%) 一个新帐号。" #: actions/makeadmin.php:92 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "只有管理员可以让另一个用户成为管理员。" #: actions/makeadmin.php:96 #, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "" +msgstr "%1$s已经是\"%2$s\"小组的管理员了。" #: actions/makeadmin.php:133 #, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" +msgstr "无法找到%1$s在%2$s小组的记录。" #: actions/makeadmin.php:146 #, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "" +msgstr "无法让%1$s成为%2$s小组的管理员。" #: actions/microsummary.php:69 msgid "No current status." -msgstr "" +msgstr "没有当前消息。" +#. TRANS: This is the title of the form for adding a new application. #: actions/newapplication.php:52 -msgid "New Application" -msgstr "" +msgid "New application" +msgstr "新应用" -#: actions/newapplication.php:64 -#, fuzzy +#. TRANS: Client error displayed trying to add a new application while not logged in. +#: actions/newapplication.php:65 msgid "You must be logged in to register an application." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能登记你的应用。" -#: actions/newapplication.php:143 -#, fuzzy +#: actions/newapplication.php:147 msgid "Use this form to register a new application." -msgstr "使用此表格创建组。" +msgstr "通过此表单登记一个新的应用。" -#: actions/newapplication.php:176 +#: actions/newapplication.php:184 msgid "Source URL is required." -msgstr "" +msgstr "Source URL 必填。" -#: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy +#: actions/newapplication.php:266 actions/newapplication.php:275 msgid "Could not create application." -msgstr "无法创建收藏。" +msgstr "无法创建应用。" +#. TRANS: Title for form to create a group. #: actions/newgroup.php:53 msgid "New group" -msgstr "新组" +msgstr "新小组" +#. TRANS: Form instructions for group create form. #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "使用此表格创建组。" +msgstr "通过此表单创建小组。" -#: actions/newmessage.php:71 actions/newmessage.php:231 +#: actions/newmessage.php:71 actions/newmessage.php:234 msgid "New message" msgstr "新消息" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 +#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). +#: actions/newmessage.php:121 actions/newmessage.php:164 lib/command.php:501 msgid "You can't send a message to this user." msgstr "无法向此用户发送消息。" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:140 lib/command.php:478 +#: lib/command.php:581 msgid "No content!" msgstr "没有内容!" -#: actions/newmessage.php:158 +#: actions/newmessage.php:161 msgid "No recipient specified." msgstr "没有收件人。" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:167 lib/command.php:505 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "不要向自己发送消息;跟自己悄悄说就得了。" -#: actions/newmessage.php:181 -#, fuzzy +#: actions/newmessage.php:184 msgid "Message sent" -msgstr "消息没有正文!" +msgstr "消息已发送" -#: actions/newmessage.php:185 -#, fuzzy, php-format +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:188 lib/command.php:513 +#, php-format msgid "Direct message to %s sent." -msgstr "已向 %s 发送消息" +msgstr "向%s发送私信成功。" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:213 actions/newnotice.php:264 msgid "Ajax Error" msgstr "Ajax错误" #: actions/newnotice.php:69 msgid "New notice" -msgstr "新通告" +msgstr "新消息" -#: actions/newnotice.php:217 +#: actions/newnotice.php:230 msgid "Notice posted" msgstr "消息已发布。" @@ -2513,17 +3335,17 @@ 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 个字符,多个搜索条件用" -"空格分隔。" +"在%%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 \"%1$s\" on %2$s" -msgstr "来自 %1$s 的 %2$s 消息" +msgstr "在%2$s上搜索\"%1$s\"的结果" #: actions/noticesearch.php:121 #, php-format @@ -2531,6 +3353,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 @@ -2538,99 +3362,125 @@ 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 #, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "\"%s\"的更新" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "%2$s 上 %1$s 的更新!" +msgstr "%2$s上符合搜索关键字\"%1$s\"的更新!" #: actions/nudge.php:85 msgid "" -"This user doesn't allow nudges or hasn't confirmed or set their email yet." -msgstr "" +"This user doesn't allow nudges or hasn't confirmed or set their email " +"address yet." +msgstr "该用户不允许对其呼叫或者还没有验证电子邮件地址。" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "振铃呼叫发出。" +msgstr "呼叫已发出。" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "振铃呼叫已经发出!" +msgstr "呼叫已发出!" -#: actions/oauthappssettings.php:59 -#, fuzzy +#. TRANS: Message displayed to an anonymous user trying to view OAuth application list. +#: actions/oauthappssettings.php:60 msgid "You must be logged in to list your applications." -msgstr "您必须登录才能创建小组。" +msgstr "必须登录才能查看你的应用列表。" -#: actions/oauthappssettings.php:74 -#, fuzzy +#. TRANS: Page title for OAuth applications +#: actions/oauthappssettings.php:76 msgid "OAuth applications" -msgstr "其他选项" +msgstr "OAuth 应用" -#: actions/oauthappssettings.php:85 +#. TRANS: Page instructions for OAuth applications +#: actions/oauthappssettings.php:88 msgid "Applications you have registered" -msgstr "" +msgstr "你已经登记的程序。" -#: actions/oauthappssettings.php:135 +#. TRANS: Empty list message on page with OAuth applications. +#: actions/oauthappssettings.php:141 #, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "你还没登记任何程序。" -#: actions/oauthconnectionssettings.php:72 +#. TRANS: Title for OAuth connection settings. +#: actions/oauthconnectionssettings.php:71 msgid "Connected applications" -msgstr "" +msgstr "关联的应用" +#. TRANS: Instructions for OAuth connection settings. #: actions/oauthconnectionssettings.php:83 -msgid "You have allowed the following applications to access you account." -msgstr "" +msgid "The following connections exist for your account." +msgstr "你的账号的关联。" -#: actions/oauthconnectionssettings.php:175 +#. TRANS: Client error when trying to revoke access for an application while not being a user of it. +#: actions/oauthconnectionssettings.php:168 msgid "You are not a user of that application." -msgstr "" +msgstr "你不是那个应用的用户。" -#: actions/oauthconnectionssettings.php:186 +#. TRANS: Client error when revoking access has failed for some reason. +#. TRANS: %s is the application ID revoking access failed for. +#: actions/oauthconnectionssettings.php:183 #, php-format -msgid "Unable to revoke access for app: %s." -msgstr "" +msgid "Unable to revoke access for application: %s." +msgstr "不能取消%s应用的访问。" -#: actions/oauthconnectionssettings.php:198 +#. TRANS: Success message after revoking access for an application. +#. TRANS: %1$s is the application name, %2$s is the first part of the user token. +#: actions/oauthconnectionssettings.php:202 +#, php-format +msgid "" +"You have successfully revoked access for %1$s and the access token starting " +"with %2$s." +msgstr "你已成功取消了%1$s的访问,access token 中前面的部分是 %2$s。" + +#. TRANS: Empty list message when no applications have been authorised yet. +#: actions/oauthconnectionssettings.php:213 msgid "You have not authorized any applications to use your account." -msgstr "" +msgstr "你还没允许任何程序使用你的账户。" -#: actions/oauthconnectionssettings.php:211 -msgid "Developers can edit the registration settings for their applications " +#. TRANS: Note for developers in the OAuth connection settings form. +#. TRANS: This message contains a Markdown link. Do not separate "](". +#. TRANS: %s is the URL to the OAuth settings. +#: actions/oauthconnectionssettings.php:233 +#, php-format +msgid "" +"Are you a developer? [Register an OAuth client application](%s) to use with " +"this instance of StatusNet." msgstr "" +"你是开发者么?[注册一个 OAuth 客户端应用](%s) 来使用这个 StatusNet 网站。" #: actions/oembed.php:80 actions/shownotice.php:100 -#, fuzzy msgid "Notice has no profile." -msgstr "用户没有个人信息。" +msgstr "消息没有对应用户。" -#: actions/oembed.php:87 actions/shownotice.php:175 +#: actions/oembed.php:83 actions/shownotice.php:172 #, php-format msgid "%1$s's status on %2$s" -msgstr "%1$s 的 %2$s 状态" +msgstr "%1$s在%2$s时发的消息" #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 +#: actions/oembed.php:168 #, php-format msgid "Content type %s not supported." -msgstr "" +msgstr "%s内容类型不被支持。" #. TRANS: Error message displaying attachments. %s is the site's base URL. -#: actions/oembed.php:163 +#: actions/oembed.php:172 #, php-format msgid "Only %s URLs over plain HTTP please." -msgstr "" +msgstr "请只用HTTP明文的%sURLs的地址。" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:193 actions/oembed.php:212 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1362 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -2640,71 +3490,73 @@ msgstr "搜索用户" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "搜索通告" +msgstr "搜索消息" -#: actions/othersettings.php:60 -#, fuzzy +#: actions/othersettings.php:59 msgid "Other settings" -msgstr "头像设置" +msgstr "其他设置" +#. TRANS: Instructions for tab "Other" in user profile settings. #: actions/othersettings.php:71 msgid "Manage various other options." msgstr "管理其他选项。" -#: actions/othersettings.php:108 +#. TRANS: Used as a suffix for free URL shorteners in a dropdown list in the tab "Other" of a +#. TRANS: user's profile settings. This message has one space at the beginning. Use your +#. TRANS: language's word separator here if it has one (most likely a single space). +#: actions/othersettings.php:111 msgid " (free service)" -msgstr "" +msgstr "(免费服务)" -#: actions/othersettings.php:116 +#. TRANS: Label for dropdown with URL shortener services. +#: actions/othersettings.php:120 msgid "Shorten URLs with" -msgstr "" - -#: actions/othersettings.php:117 -msgid "Automatic shortening service to use." -msgstr "要使用的自动缩短服务。" +msgstr "缩短 URL 使用" +#. TRANS: Tooltip for for dropdown with URL shortener services. #: actions/othersettings.php:122 -#, fuzzy +msgid "Automatic shortening service to use." +msgstr "要使用的自动短网址服务。" + +#. TRANS: Label for checkbox. +#: actions/othersettings.php:128 msgid "View profile designs" -msgstr "个人设置" +msgstr "查看个人页面外观" -#: actions/othersettings.php:123 +#. TRANS: Tooltip for checkbox. +#: actions/othersettings.php:130 msgid "Show or hide profile designs." -msgstr "" +msgstr "显示或隐藏个人页面外观。" -#: actions/othersettings.php:153 -#, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "语言过长(不能超过50个字符)。" +#. TRANS: Form validation error for form "Other settings" in user profile. +#: actions/othersettings.php:162 +msgid "URL shortening service is too long (maximum 50 characters)." +msgstr "短网址服务过长(不能超过50个字符)。" #: actions/otp.php:69 -#, fuzzy msgid "No user ID specified." -msgstr "没有收件人。" +msgstr "没用指定用户 ID。" #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "没有收件人。" +msgstr "没有指定登录 token。" #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "未收到认证请求!" +msgstr "没有请求的登录 token。" #: actions/otp.php:95 msgid "Invalid login token specified." -msgstr "" +msgstr "指定的登录 token 无效。" #: actions/otp.php:104 -#, fuzzy msgid "Login token expired." -msgstr "登录" +msgstr "登录 token 已过期。" #: actions/outbox.php:58 -#, fuzzy, php-format +#, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "%s 的发件箱" +msgstr "%1$s的发件箱 - 第%2$d页" #: actions/outbox.php:61 #, php-format @@ -2713,21 +3565,19 @@ msgstr "%s 的发件箱" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "这是您的发件箱,包含您发送的私人消息。" +msgstr "这是你的发件箱,包含你发送的私信。" #: actions/passwordsettings.php:58 msgid "Change password" msgstr "修改密码" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "修改密码" +msgstr "修改你的密码" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "密码已保存。" +msgstr "修改密码" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2742,23 +3592,23 @@ msgid "6 or more characters" msgstr "6 个或更多字符" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 -#: actions/register.php:440 +#: actions/register.php:441 msgid "Confirm" -msgstr "确认" +msgstr "密码确认" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" -msgstr "相同的密码" +msgstr "与上面相同的密码" #: actions/passwordsettings.php:117 msgid "Change" msgstr "修改" -#: actions/passwordsettings.php:154 actions/register.php:237 +#: actions/passwordsettings.php:154 actions/register.php:238 msgid "Password must be 6 or more characters." msgstr "密码必须包含 6 个或更多字符。" -#: actions/passwordsettings.php:157 actions/register.php:240 +#: actions/passwordsettings.php:157 actions/register.php:241 msgid "Passwords don't match." msgstr "密码不匹配。" @@ -2768,7 +3618,7 @@ msgstr "旧密码不正确" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." -msgstr "保存用户时出错;不正确。" +msgstr "保存用户时出错;无效。" #: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." @@ -2778,166 +3628,275 @@ msgstr "无法保存新密码。" msgid "Password saved." msgstr "密码已保存。" +#. TRANS: Title for Paths admin panel. #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:58 lib/adminpanelaction.php:371 msgid "Paths" -msgstr "" +msgstr "路径" -#: actions/pathsadminpanel.php:70 -msgid "Path and server settings for this StatusNet site." -msgstr "" +#. TRANS: Form instructions for Path admin panel. +#: actions/pathsadminpanel.php:69 +msgid "Path and server settings for this StatusNet site" +msgstr "这个 StatusNet 网站的路径和服务器设置。" -#: actions/pathsadminpanel.php:157 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the directory that could not be read from. +#: actions/pathsadminpanel.php:155 #, php-format msgid "Theme directory not readable: %s." -msgstr "" +msgstr "主题目录无法读取:%s。" +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the avatar directory that could not be written to. #: actions/pathsadminpanel.php:163 #, php-format msgid "Avatar directory not writable: %s." -msgstr "" +msgstr "头像目录无法写入:%s。" -#: actions/pathsadminpanel.php:169 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the background directory that could not be written to. +#: actions/pathsadminpanel.php:171 #, php-format msgid "Background directory not writable: %s." -msgstr "" +msgstr "背景目录无法写入:%s。" -#: actions/pathsadminpanel.php:177 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the locales directory that could not be read from. +#: actions/pathsadminpanel.php:181 #, php-format msgid "Locales directory not readable: %s." -msgstr "" +msgstr "本地化目录无法读取:%s。" -#: actions/pathsadminpanel.php:183 +#. TRANS: Client error in Paths admin panel. +#. TRANS: %s is the SSL server URL that is too long. +#: actions/pathsadminpanel.php:189 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "无效的 SSL 服务器。最大长度255个字符。" -#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#, fuzzy +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:235 actions/siteadminpanel.php:58 msgid "Site" -msgstr "邀请" +msgstr "网站" -#: actions/pathsadminpanel.php:238 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:241 actions/pathsadminpanel.php:279 +#: actions/pathsadminpanel.php:370 actions/pathsadminpanel.php:425 msgid "Server" -msgstr "恢复" +msgstr "服务器" -#: actions/pathsadminpanel.php:238 +#: actions/pathsadminpanel.php:242 msgid "Site's server hostname." -msgstr "" +msgstr "网站的服务器主机名。" -#: actions/pathsadminpanel.php:242 +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:248 actions/pathsadminpanel.php:288 +#: actions/pathsadminpanel.php:379 actions/pathsadminpanel.php:434 msgid "Path" -msgstr "" +msgstr "路径" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "" +#: actions/pathsadminpanel.php:249 +msgid "Site path." +msgstr "网站路径" -#: actions/pathsadminpanel.php:246 -msgid "Path to locales" -msgstr "" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:255 +msgid "Locale directory" +msgstr "本地化目录" -#: actions/pathsadminpanel.php:246 -msgid "Directory path to locales" -msgstr "" +#: actions/pathsadminpanel.php:256 +msgid "Directory path to locales." +msgstr "本地化文件的目录路径" -#: actions/pathsadminpanel.php:250 +#. TRANS: Checkbox label in Paths admin panel. +#: actions/pathsadminpanel.php:263 msgid "Fancy URLs" -msgstr "" +msgstr "优化 URLs" -#: actions/pathsadminpanel.php:252 +#: actions/pathsadminpanel.php:265 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" - -#: actions/pathsadminpanel.php:259 -msgid "Theme" -msgstr "" - -#: actions/pathsadminpanel.php:264 -msgid "Theme server" -msgstr "" - -#: actions/pathsadminpanel.php:268 -msgid "Theme path" -msgstr "" +msgstr "使用优化的 URLs(更简洁易记)?" #: actions/pathsadminpanel.php:272 -msgid "Theme directory" -msgstr "" +msgid "Theme" +msgstr "主题" -#: actions/pathsadminpanel.php:279 -#, fuzzy +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:281 +msgid "Server for themes." +msgstr "主题服务器。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:290 +msgid "Web path to themes." +msgstr "主题的网站路径。" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:297 actions/pathsadminpanel.php:388 +#: actions/pathsadminpanel.php:443 actions/pathsadminpanel.php:495 +msgid "SSL server" +msgstr "SSL 服务器" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:299 +msgid "SSL server for themes (default: SSL server)." +msgstr "SSL 主题服务器(默认:SSL 服务器)。" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:306 actions/pathsadminpanel.php:397 +#: actions/pathsadminpanel.php:452 +msgid "SSL path" +msgstr "SSL 路径" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:308 +msgid "SSL path to themes (default: /theme/)." +msgstr "SSL 主题路径(默认:/theme/)。" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:315 actions/pathsadminpanel.php:406 +#: actions/pathsadminpanel.php:461 +msgid "Directory" +msgstr "目录" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:317 +msgid "Directory where themes are located." +msgstr "主题文件的目录。" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:326 msgid "Avatars" msgstr "头像" -#: actions/pathsadminpanel.php:284 -#, fuzzy +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:333 msgid "Avatar server" -msgstr "头像设置" - -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "头像已更新。" - -#: actions/pathsadminpanel.php:292 -msgid "Avatar directory" -msgstr "" - -#: actions/pathsadminpanel.php:301 -msgid "Backgrounds" -msgstr "" - -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - -#: actions/pathsadminpanel.php:309 -msgid "Background path" -msgstr "" - -#: actions/pathsadminpanel.php:313 -msgid "Background directory" -msgstr "" - -#: actions/pathsadminpanel.php:320 -#, fuzzy -msgid "SSL" -msgstr "SMS短信" - -#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 -#, fuzzy -msgid "Never" -msgstr "恢复" - -#: actions/pathsadminpanel.php:324 -#, fuzzy -msgid "Sometimes" -msgstr "通告" - -#: actions/pathsadminpanel.php:325 -msgid "Always" -msgstr "" - -#: actions/pathsadminpanel.php:329 -msgid "Use SSL" -msgstr "" - -#: actions/pathsadminpanel.php:330 -msgid "When to use SSL" -msgstr "" +msgstr "头像服务器" +#. TRANS: Tooltip for field label in Paths admin panel. #: actions/pathsadminpanel.php:335 -msgid "SSL server" -msgstr "" +msgid "Server for avatars." +msgstr "头像服务器。" -#: actions/pathsadminpanel.php:336 -msgid "Server to direct SSL requests to" -msgstr "" +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:342 +msgid "Avatar path" +msgstr "头像路径" -#: actions/pathsadminpanel.php:352 +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:344 +msgid "Web path to avatars." +msgstr "头像的网站路径。" + +#. TRANS: Field label in Paths admin panel. +#: actions/pathsadminpanel.php:351 +msgid "Avatar directory" +msgstr "头像目录" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:353 +msgid "Directory where avatars are located." +msgstr "头像文件的目录。" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:364 +msgid "Backgrounds" +msgstr "背景" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:372 +msgid "Server for backgrounds." +msgstr "背景服务器。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:381 +msgid "Web path to backgrounds." +msgstr "背景的网站路径。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:390 +msgid "Server for backgrounds on SSL pages." +msgstr "SSL 页面的背景服务器。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:399 +msgid "Web path to backgrounds on SSL pages." +msgstr "SSL 页面的背景网站路径。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:408 +msgid "Directory where backgrounds are located." +msgstr "背景文件的目录。" + +#. TRANS: Fieldset legens in Paths admin panel. +#. TRANS: DT element label in attachment list. +#: actions/pathsadminpanel.php:419 lib/attachmentlist.php:99 +msgid "Attachments" +msgstr "附件" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:427 +msgid "Server for attachments." +msgstr "附件服务器。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:436 +msgid "Web path to attachments." +msgstr "附件的网站路径。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:445 +msgid "Server for attachments on SSL pages." +msgstr "SSL 页面的附件服务器。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:454 +msgid "Web path to attachments on SSL pages." +msgstr "SSL 页面的附件网站路径。" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:463 +msgid "Directory where attachments are located." +msgstr "附件文件的目录。" + +#. TRANS: Fieldset legend in Paths admin panel. +#: actions/pathsadminpanel.php:472 +msgid "SSL" +msgstr "SSL" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:477 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "从不" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:479 +msgid "Sometimes" +msgstr "有时" + +#. TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). +#: actions/pathsadminpanel.php:481 +msgid "Always" +msgstr "总是" + +#: actions/pathsadminpanel.php:485 +msgid "Use SSL" +msgstr "使用 SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:487 +msgid "When to use SSL." +msgstr "什么时候使用 SSL" + +#. TRANS: Tooltip for field label in Paths admin panel. +#: actions/pathsadminpanel.php:497 +msgid "Server to direct SSL requests to." +msgstr "直接SSL请求的服务器" + +#. TRANS: Button title text to store form data in the Paths admin panel. +#: actions/pathsadminpanel.php:514 msgid "Save paths" -msgstr "" +msgstr "保存路径" #: actions/peoplesearch.php:52 #, php-format @@ -2945,215 +3904,250 @@ 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:68 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s." -msgstr "不是有效的电子邮件。" +msgstr "不是有效的标签:%s。" #: actions/peopletag.php:142 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" +msgstr "用户自加标签%s - 第%d 页" #: actions/postnotice.php:95 -#, fuzzy msgid "Invalid notice content." -msgstr "大小不正确。" +msgstr "无效的消息内容。" #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "消息许可证“%1$s”与这个网站的许可证“%2$s”不兼容。" -#: actions/profilesettings.php:60 +#. TRANS: Page title for profile settings. +#: actions/profilesettings.php:61 msgid "Profile settings" msgstr "个人设置" -#: actions/profilesettings.php:71 +#. TRANS: Usage instructions for profile settings. +#: actions/profilesettings.php:73 msgid "" "You can update your personal profile info here so people know more about you." -msgstr "在这里更新个人信息,让大家对您了解得更多。" +msgstr "在这里更新个人信息,让大家对你了解得更多。" -#: actions/profilesettings.php:99 -#, fuzzy +#. TRANS: Profile settings form legend. +#: actions/profilesettings.php:102 msgid "Profile information" -msgstr "个人设置" +msgstr "个人信息" -#: actions/profilesettings.php:108 lib/groupeditform.php:154 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1 到 64 个小写字母或数字,不包含标点及空白" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:113 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces." +msgstr "1 到 64 个小写字母或数字,不包含标点或空格。" -#: actions/profilesettings.php:111 actions/register.php:455 -#: actions/showgroup.php:256 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:150 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for full group name (dt). Text hidden by default. +#: actions/profilesettings.php:117 actions/register.php:456 +#: actions/showgroup.php:252 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:152 msgid "Full name" msgstr "全名" +#. TRANS: Field label in form for profile settings. #. TRANS: Form input field label. -#: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: actions/profilesettings.php:122 actions/register.php:461 +#: lib/applicationeditform.php:236 lib/groupeditform.php:161 msgid "Homepage" msgstr "主页" -#: actions/profilesettings.php:117 actions/register.php:462 -msgid "URL of your homepage, blog, or profile on another site" -msgstr "您的主页、博客或在其他站点的URL" +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:125 +msgid "URL of your homepage, blog, or profile on another site." +msgstr "你的主页、博客或在其他网站的URL。" -#: actions/profilesettings.php:122 actions/register.php:468 +#. TRANS: Tooltip for field label in form for profile settings. Plural +#. TRANS: is decided by the number of characters available for the +#. TRANS: biography (%d). +#: actions/profilesettings.php:133 actions/register.php:472 #, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" +msgid "Describe yourself and your interests in %d character" +msgid_plural "Describe yourself and your interests in %d characters" +msgstr[0] "用不超过%d个字符描述你自己和你的兴趣" -#: actions/profilesettings.php:125 actions/register.php:471 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:139 actions/register.php:477 msgid "Describe yourself and your interests" -msgstr "" +msgstr "描述你自己和你的兴趣" -#: actions/profilesettings.php:127 actions/register.php:473 +#. TRANS: Text area label in form for profile settings where users can provide. +#. TRANS: their biography. +#: actions/profilesettings.php:143 actions/register.php:479 msgid "Bio" msgstr "自述" -#: actions/profilesettings.php:132 actions/register.php:478 -#: actions/showgroup.php:265 actions/tagother.php:112 -#: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:165 +#. TRANS: Field label in form for profile settings. +#. TRANS: Label for group location (dt). Text hidden by default. +#: actions/profilesettings.php:149 actions/register.php:484 +#: actions/showgroup.php:262 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:180 +#: lib/userprofile.php:167 msgid "Location" msgstr "位置" -#: actions/profilesettings.php:134 actions/register.php:480 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:152 actions/register.php:486 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "你的位置,格式类似\"城市,省份,国家\"" +msgstr "你的地理位置,格式类似\"城市,省份,国家\"" -#: actions/profilesettings.php:138 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:157 msgid "Share my current location when posting notices" -msgstr "" +msgstr "当发布消息时分享我的地理位置" -#: actions/profilesettings.php:145 actions/tagother.php:149 +#. TRANS: Field label in form for profile settings. +#: actions/profilesettings.php:165 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:210 +#: lib/subscriptionlist.php:108 lib/userprofile.php:212 msgid "Tags" msgstr "标签" -#: actions/profilesettings.php:147 +#. TRANS: Tooltip for field label in form for profile settings. +#: actions/profilesettings.php:168 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -msgstr "你的标签 (字母letters, 数字numbers, -, ., 和 _), 以逗号或空格分隔" +msgstr "你的标签 (字母、数字、“-”、“. ”和“ _”), 以逗号或空格分隔" -#: actions/profilesettings.php:151 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:173 msgid "Language" msgstr "语言" -#: actions/profilesettings.php:152 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:175 msgid "Preferred language" msgstr "首选语言" -#: actions/profilesettings.php:161 +#. TRANS: Dropdownlist label in form for profile settings. +#: actions/profilesettings.php:185 msgid "Timezone" msgstr "时区" -#: actions/profilesettings.php:162 +#. TRANS: Tooltip for dropdown list label in form for profile settings. +#: actions/profilesettings.php:187 msgid "What timezone are you normally in?" -msgstr "您一般处于哪个时区?" +msgstr "你一般处于哪个时区?" -#: actions/profilesettings.php:167 +#. TRANS: Checkbox label in form for profile settings. +#: actions/profilesettings.php:193 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "自动订阅任何订阅我的更新的人(这个选项最适合机器人)" +msgstr "自动关注任何关注我的人 (这个选项适合机器人)" -#: actions/profilesettings.php:228 actions/register.php:230 -#, fuzzy, php-format -msgid "Bio is too long (max %d chars)." -msgstr "位置过长(不能超过255个字符)。" +#. TRANS: Validation error in form for profile settings. +#. TRANS: Plural form is used based on the maximum number of allowed +#. TRANS: characters for the biography (%d). +#: actions/profilesettings.php:262 actions/register.php:229 +#, php-format +msgid "Bio is too long (maximum %d character)." +msgid_plural "Bio is too long (maximum %d characters)." +msgstr[0] "自述过长(不能超过%d个字符)。" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:273 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "未选择时区。" -#: actions/profilesettings.php:241 -msgid "Language is too long (max 50 chars)." +#. TRANS: Validation error in form for profile settings. +#: actions/profilesettings.php:281 +msgid "Language is too long (maximum 50 characters)." msgstr "语言过长(不能超过50个字符)。" -#: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#. TRANS: Validation error in form for profile settings. +#. TRANS: %s is an invalid tag. +#: actions/profilesettings.php:295 actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "电子邮件地址 %s 不正确" +msgstr "无效的标签:\"%s\"。" -#: actions/profilesettings.php:306 +#. TRANS: Server error thrown when user profile settings could not be updated to +#. TRANS: automatically subscribe to any subscriber. +#: actions/profilesettings.php:351 msgid "Couldn't update user for autosubscribe." -msgstr "无法更新用户的自动订阅选项。" +msgstr "无法更新用户的自动关注。" -#: actions/profilesettings.php:363 -#, fuzzy +#. TRANS: Server error thrown when user profile location preference settings could not be updated. +#: actions/profilesettings.php:409 msgid "Couldn't save location prefs." -msgstr "无法保存个人信息。" +msgstr "无法保存标签。" -#: actions/profilesettings.php:375 +#. TRANS: Server error thrown when user profile settings could not be saved. +#: actions/profilesettings.php:422 msgid "Couldn't save profile." msgstr "无法保存个人信息。" -#: actions/profilesettings.php:383 -#, fuzzy +#. TRANS: Server error thrown when user profile settings tags could not be saved. +#: actions/profilesettings.php:431 msgid "Couldn't save tags." -msgstr "无法保存个人信息。" +msgstr "无法保存标签。" +#. TRANS: Confirmation shown when user profile settings are saved. #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:440 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "设置已保存。" #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)." -msgstr "" +msgstr "超出页面限制(%s)。" #: actions/public.php:92 -#, fuzzy msgid "Could not retrieve public stream." -msgstr "无法获取收藏的通告。" +msgstr "无法获取到公共的时间线。" #: actions/public.php:130 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "公开的时间表" +msgstr "公共时间线,第%d页" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" -msgstr "公开的时间表" +msgstr "公共时间线" #: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" -msgstr "" +msgstr "公开的 RSS 聚合 (RSS 1.0)" #: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" -msgstr "" +msgstr "公开的 RSS 聚合 (RSS 2.0)" #: actions/public.php:168 msgid "Public Stream Feed (Atom)" -msgstr "" +msgstr "公开的 RSS 聚合 (Atom)" #: actions/public.php:188 -#, fuzzy, php-format +#, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." -msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" +msgstr "这是%%site.name%%的公共时间线,但是还没有人发布任何内容。" #: actions/public.php:191 msgid "Be the first to post!" -msgstr "" +msgstr "成为第一个发布消息的人!" #: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" -msgstr "" +msgstr "现在就 [注册](%%action.register%%) 并成为第一个发布消息的人!" #: actions/public.php:242 #, php-format @@ -3163,6 +4157,10 @@ 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://zh.wikipedia.org/zh-hans/%E5%BE%AE%E5%8D%9A%E5%AE%A2) 服" +"务。[现在加入](%%action.register%%) 并与你的朋友、家人和同事们一起分享你的消" +"息。([查看更多](%%doc.help%%))" #: actions/public.php:247 #, php-format @@ -3171,40 +4169,54 @@ msgid "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" +"这里是%%site.name%%,一个基于自由软件[StatusNet](http://status.net/)的[微博" +"客](http://zh.wikipedia.org/zh-hans/%E5%BE%AE%E5%8D%9A%E5%AE%A2) 。" +#. TRANS: Title for public tag cloud. #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "标签云聚集" +msgstr "公开的标签云" -#: actions/publictagcloud.php:63 +#. TRANS: Instructions (more used like an explanation/header). +#. TRANS: %s is the StatusNet sitename. +#: actions/publictagcloud.php:65 #, php-format -msgid "These are most popular recent tags on %s " -msgstr "这些是最近的 %s 流行标签 " +msgid "These are most popular recent tags on %s" +msgstr "这些是%s最近的流行的标签" -#: actions/publictagcloud.php:69 +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:74 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." -msgstr "" +msgstr "还没有人发布带[标签](%%doc.tags%%)的消息。" -#: actions/publictagcloud.php:72 +#. TRANS: Message shown to a logged in user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#: actions/publictagcloud.php:79 msgid "Be the first to post one!" -msgstr "" +msgstr "成为第一个发布消息的人!" -#: actions/publictagcloud.php:75 +#. TRANS: Message shown to a anonymous user for the public tag cloud +#. TRANS: while no tags exist yet. "One" refers to the non-existing hashtag. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/publictagcloud.php:87 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" -msgstr "" +msgstr "现在就[注册](%%action.register%%)并发布第一个!" -#: actions/publictagcloud.php:134 +#: actions/publictagcloud.php:146 msgid "Tag cloud" -msgstr "标签云聚集" +msgstr "标签云" #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "已登录!" +msgstr "你已经登录了!" #: actions/recoverpassword.php:62 msgid "No such recovery code." @@ -3216,7 +4228,7 @@ msgstr "不是恢复码。" #: actions/recoverpassword.php:73 msgid "Recovery code for unknown user." -msgstr "恢复码未知" +msgstr "未知用户的恢复码" #: actions/recoverpassword.php:86 msgid "Error with confirmation code." @@ -3224,36 +4236,33 @@ msgstr "验证码出错。" #: actions/recoverpassword.php:97 msgid "This confirmation code is too old. Please start again." -msgstr "验证码超时,请重来。" +msgstr "验证码已过期,请重来。" #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." msgstr "无法更新已确认的电子邮件。" #: actions/recoverpassword.php:152 -#, fuzzy 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 "恢复密码的指示已被发送到您的注册邮箱。" +msgstr "如果你忘记或丢失了密码,你可以发送一个新的密码到你之前设置的邮箱中。" #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "你的身份已被验证,请在下面输入新的密码。 " #: actions/recoverpassword.php:188 -#, fuzzy msgid "Password recovery" -msgstr "请求恢复密码" +msgstr "恢复密码" #: actions/recoverpassword.php:191 -#, fuzzy msgid "Nickname or email address" -msgstr "输入昵称或电子邮件。" +msgstr "昵称或电子邮件" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." -msgstr "您在此服务器的昵称,或注册邮箱。" +msgstr "你在此服务器的昵称,或登记的邮箱。" #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -3269,7 +4278,7 @@ msgstr "恢复密码" #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" -msgstr "请求恢复密码" +msgstr "已请求密码恢复" #: actions/recoverpassword.php:213 msgid "Unknown action" @@ -3277,7 +4286,7 @@ msgstr "未知动作" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" -msgstr "6 个或更多字符,不能忘记!" +msgstr "至少6个字符,还有,别忘记它!" #: actions/recoverpassword.php:243 msgid "Reset" @@ -3293,7 +4302,7 @@ msgstr "没有拥有这个用户名或电子邮件的用户。" #: actions/recoverpassword.php:299 msgid "No registered email address for that user." -msgstr "用户没有注册电子邮件。" +msgstr "该用户没有登记电子邮件。" #: actions/recoverpassword.php:313 msgid "Error saving address confirmation." @@ -3303,42 +4312,41 @@ msgstr "保存地址确认时出错。" msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." -msgstr "恢复密码的指示已被发送到您的注册邮箱。" +msgstr "恢复密码的说明已被发送到你登记的电子邮箱中。" #: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "未预料的密码重置。" #: actions/recoverpassword.php:365 -msgid "Password must be 6 chars or more." -msgstr "密码必须是 6 个字符或更多。" +msgid "Password must be 6 characters or more." +msgstr "密码必须是 6 位或更多字符。" #: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." -msgstr "密码和确认不匹配。" +msgstr "密码和确认密码不匹配。" -#: actions/recoverpassword.php:388 actions/register.php:255 +#: actions/recoverpassword.php:388 actions/register.php:256 msgid "Error setting user." msgstr "保存用户设置时出错。" #: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." -msgstr "新密码已保存,您现在已登录。" +msgstr "新密码已保存,你现在已登录。" -#: actions/register.php:92 actions/register.php:196 actions/register.php:412 +#: actions/register.php:92 actions/register.php:196 actions/register.php:413 msgid "Sorry, only invited people can register." -msgstr "对不起,请邀请那些能注册的人。" +msgstr "对不起,只有被邀请的用户才能注册。" #: actions/register.php:99 -#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "验证码出错。" +msgstr "对不起,无效的邀请码。" #: actions/register.php:119 msgid "Registration successful" -msgstr "注册成功。" +msgstr "注册成功" -#: actions/register.php:121 actions/register.php:506 lib/logingroupnav.php:85 +#: actions/register.php:121 actions/register.php:512 lib/logingroupnav.php:85 msgid "Register" msgstr "注册" @@ -3346,80 +4354,88 @@ msgstr "注册" msgid "Registration not allowed." msgstr "不允许注册。" -#: actions/register.php:205 +#: actions/register.php:209 msgid "You can't register if you don't agree to the license." -msgstr "您必须同意此授权方可注册。" +msgstr "你必须同意许可协议才能注册。" -#: actions/register.php:219 +#: actions/register.php:218 msgid "Email address already exists." msgstr "电子邮件地址已存在。" -#: actions/register.php:250 actions/register.php:272 +#: actions/register.php:251 actions/register.php:273 msgid "Invalid username or password." msgstr "用户名或密码不正确。" -#: actions/register.php:350 +#: actions/register.php:351 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:432 +#: actions/register.php:433 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "1 到 64 个小写字母或数字,不包含标点及空白。此项必填。" +msgstr "1 到 64 位的小写字母或数字,不能使用标点和空格。此项必填。" -#: actions/register.php:437 +#: actions/register.php:438 msgid "6 or more characters. Required." -msgstr "6 个或更多字符。此项必填。" +msgstr "至少 6 位字符。此项必填。" -#: actions/register.php:441 +#: actions/register.php:442 msgid "Same as password above. Required." -msgstr "相同的密码。此项必填。" +msgstr "与上面输入相同的密码。此项必填。" #. TRANS: Link description in user account settings menu. -#: actions/register.php:445 actions/register.php:449 -#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:132 +#: actions/register.php:446 actions/register.php:450 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:127 msgid "Email" msgstr "电子邮件" -#: actions/register.php:446 actions/register.php:450 +#: actions/register.php:447 actions/register.php:451 msgid "Used only for updates, announcements, and password recovery" -msgstr "只用于更新、通告或密码恢复" +msgstr "只用于更新、通知及密码恢复" -#: actions/register.php:457 +#: actions/register.php:458 msgid "Longer name, preferably your \"real\" name" -msgstr "长名字,最好是“实名”" +msgstr "更长的名字,最好是“真实姓名”" -#: actions/register.php:518 +#: actions/register.php:463 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "你的主页、博客或在其他网站的URL" + +#: actions/register.php:524 #, php-format msgid "" "I understand that content and data of %1$s are private and confidential." -msgstr "" +msgstr "我明白%1$s的信息是私人且保密的。" -#: actions/register.php:528 +#: actions/register.php:534 #, php-format msgid "My text and files are copyright by %1$s." -msgstr "" +msgstr "我的文字和文件的版权归%1$s所有。" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors. -#: actions/register.php:532 +#: actions/register.php:538 msgid "My text and files remain under my own copyright." -msgstr "" +msgstr "我的文字和文件的版权由我自己保留。" #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved. -#: actions/register.php:535 +#: actions/register.php:541 msgid "All rights reserved." -msgstr "" +msgstr "保留所有权利。" #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 +#: actions/register.php:546 #, php-format msgid "" "My text and files are available under %s except this private data: password, " "email address, IM address, and phone number." msgstr "" +"我的文字和文件在%s下提供,除了如下隐私内容:密码、电子邮件地址、IM 地址和电话" +"号码。" -#: actions/register.php:583 +#: actions/register.php:589 #, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " @@ -3437,12 +4453,23 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" +"恭喜,%s!欢迎来到%%%%site.name%%%%。你可能想要……\n" +"\n" +"* 查看你的[资料页](%2$s) 并发布你的第一条消息.\n" +"* 添加 [Jabber/GTalk 地址](%%%%action.imsettings%%%%) 然后通过 IM 发布信" +"息。\n" +"* [搜索](%%%%action.peoplesearch%%%%) 你认识的或和你有共同兴趣的朋友。 \n" +"* 更新你的 [资料页设置](%%%%action.profilesettings%%%%) 告诉大家更多关于你的" +"情况。 \n" +"* 阅读 [在线文档](%%%%doc.help%%%%) 有的功能也许你还不熟悉。\n" +"\n" +"感谢你的注册,希望你喜欢这个服务。" -#: actions/register.php:607 +#: actions/register.php:613 msgid "" "(You should receive a message by email momentarily, with instructions on how " "to confirm your email address.)" -msgstr "(您将收到一封邮件,包含了如何确认邮件地址的说明。)" +msgstr "(你将收到一封邮件,包含了如何确认邮件地址的说明。)" #: actions/remotesubscribe.php:98 #, php-format @@ -3451,18 +4478,17 @@ 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.register%%) 一个新帐" -"号。如果你已经有在另一个兼容的微博客的帐号(%%doc.openmublog%%), 请填入你资料" -"的互联网地址URL." +"要关注用户或小组,你需要[登录](%%action.login%%),或[注册](%%action.register%" +"%) 一个新账户。如果你已经在另一个[兼容的微博客](%%doc.openmublog%%)有账户,请" +"填入你的资料页 URL。" #: actions/remotesubscribe.php:112 msgid "Remote subscribe" -msgstr "远程订阅" +msgstr "远程关注" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "订阅 %s" +msgstr "关注一个远程用户" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -3470,97 +4496,93 @@ msgstr "昵称" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "希望订阅的用户的昵称" +msgstr "希望关注的用户昵称" #: actions/remotesubscribe.php:133 msgid "Profile URL" -msgstr "个人信息URL" +msgstr "资料页 URL" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "您在其他兼容的微博客服务的个人信息URL" +msgstr "你在其他兼容的微博客服务的资料页 URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 +#: lib/userprofile.php:411 msgid "Subscribe" -msgstr "订阅" +msgstr "关注" #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" -msgstr "个人信息URL不正确(格式错误)" +msgstr "无效的用户 URL (格式错误)" #: actions/remotesubscribe.php:168 msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "" +msgstr "不是有效的资料页 URL (没有YADIS 文档或定义了无效的 XRDS)。" #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." -msgstr "" +msgstr "这是一个本地用户!登录才能关注。" #: actions/remotesubscribe.php:183 msgid "Couldn’t get a request token." -msgstr "" +msgstr "无法获得一个 request token。" #: actions/repeat.php:57 -#, fuzzy 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 msgid "You already repeated that notice." -msgstr "" +msgstr "你已转发过了那个消息。" -#: actions/repeat.php:114 lib/noticelist.php:676 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:691 msgid "Repeated" -msgstr "特征" +msgstr "已转发" #: actions/repeat.php:119 msgid "Repeated!" -msgstr "" +msgstr "已转发!" #: actions/replies.php:126 actions/repliesrss.php:68 -#: lib/personalgroupnav.php:105 +#: lib/personalgroupnav.php:108 #, php-format msgid "Replies to %s" -msgstr "%s 的回复" +msgstr "对 %s 的回复" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "%s 的回复" +msgstr "对%s的回复,第%2$d页" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "%s 好友的聚合(RSS 1.0)" +msgstr "%s 的回复聚合 (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "%s 好友的聚合(RSS 2.0)" +msgstr "%s 的回复聚合 (RSS 2.0)" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "%s 好友的聚合(Atom)" +msgstr "%s 的回复聚合 (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " "notice to them yet." -msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" +msgstr "这里显示了所有发送@给%s的信息,但是%2$s还没有收到任何人的消息。" #: actions/replies.php:204 #, php-format @@ -3568,6 +4590,7 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"你可以让其他用户参与对话,关注更多的人或者 [加入小组](%%action.groups%%)。" #: actions/replies.php:206 #, php-format @@ -3575,102 +4598,96 @@ msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action." "newnotice%%%%?status_textarea=%3$s)." msgstr "" +"你可以试着 [呼叫%1$s](../%2$s) 或者给他们 [发一些消息](%%%%action.newnotice%%" +"%%?status_textarea=%3$s)。" #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "发送给 %1$s 的 %2$s 消息" +msgstr "在%2$s上对%1$s的回复!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "在这个网站你被禁止发布消息。" +msgstr "你不能在这个网站移除用户角色。" #: actions/revokerole.php:82 msgid "User doesn't have this role." -msgstr "" +msgstr "用户没有此权限。" #: actions/rsd.php:146 actions/version.php:159 -#, fuzzy msgid "StatusNet" -msgstr "统计" +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "无法向此用户发送消息。" +msgstr "你不能在这个网站授予用户权限。" #: actions/sandbox.php:72 msgid "User is already sandboxed." -msgstr "" +msgstr "用于已经在沙盒中了。" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" -msgstr "" +msgstr "Sessions" #: actions/sessionsadminpanel.php:65 -msgid "Session settings for this StatusNet site." -msgstr "" +msgid "Session settings for this StatusNet site" +msgstr "这个 StatusNet 网站的 session 设置" #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" -msgstr "" +msgstr "管理 sessions" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "是否自己处理sessions。" #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "Session 调试" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "打开 sessions 的调试输出。" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 -#: actions/useradminpanel.php:294 -#, fuzzy msgid "Save site settings" -msgstr "头像设置" +msgstr "保存访问设置" #: actions/showapplication.php:82 -#, fuzzy msgid "You must be logged in to view an application." -msgstr "您必须登录才能创建小组。" +msgstr "你必须登录才能创建小组。" #: actions/showapplication.php:157 msgid "Application profile" -msgstr "" +msgstr "未找到应用。" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" -msgstr "" +msgstr "图标" #. TRANS: Form input field label for application name. #: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 -#, fuzzy +#: lib/applicationeditform.php:190 msgid "Name" -msgstr "昵称" +msgstr "名称" #. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -#, fuzzy +#: actions/showapplication.php:178 lib/applicationeditform.php:227 msgid "Organization" -msgstr "分页" +msgstr "组织名称必填。" #. TRANS: Form input field label. #: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 -#, fuzzy +#: lib/applicationeditform.php:208 lib/groupeditform.php:175 msgid "Description" -msgstr "订阅" +msgstr "描述" -#: actions/showapplication.php:192 actions/showgroup.php:436 +#. TRANS: Header for group statistics on a group page (h2). +#: actions/showapplication.php:192 actions/showgroup.php:448 #: lib/profileaction.php:187 msgid "Statistics" msgstr "统计" @@ -3678,59 +4695,63 @@ msgstr "统计" #: actions/showapplication.php:203 #, php-format msgid "Created by %1$s - %2$s access by default - %3$d users" -msgstr "" +msgstr "由%1$s创建 - 默认访问权限%2$s - %3$d个用户" #: actions/showapplication.php:213 msgid "Application actions" -msgstr "" +msgstr "应用程序动作" #: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "重置key和secret" + +#: actions/showapplication.php:252 lib/deletegroupform.php:121 +#: lib/deleteuserform.php:66 lib/noticelist.php:672 +msgid "Delete" +msgstr "删除" #: actions/showapplication.php:261 msgid "Application info" -msgstr "" +msgstr "应用程序信息" #: actions/showapplication.php:263 msgid "Consumer key" -msgstr "" +msgstr "Consumer key" #: actions/showapplication.php:268 msgid "Consumer secret" -msgstr "" +msgstr "Consumer secret" #: actions/showapplication.php:273 msgid "Request token URL" -msgstr "" +msgstr "请求令牌URL" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "" +msgstr "访问令牌URL" #: actions/showapplication.php:283 msgid "Authorize URL" -msgstr "" +msgstr "授权URL" #: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." -msgstr "" +msgstr "提示:我们支持HMAC-SHA1签名。我们不支持明文的签名方法。" #: actions/showapplication.php:309 -#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "确定要删除这条消息吗?" +msgstr "你确定要重置你的consumer key和secret吗?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%s 收藏的通告" +msgstr "%1$s收藏的消息,第%2$d页" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "无法获取收藏的通告。" +msgstr "无法获取收藏的消息。" #: actions/showfavorites.php:171 #, php-format @@ -3752,13 +4773,15 @@ 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:208 #, php-format msgid "" "%s hasn't added any favorite notices yet. Post something interesting they " "would add to their favorites :)" -msgstr "" +msgstr "%s还没有收藏任何的消息。发一些他/她可能会添加到收藏的有趣的消息吧 :)" #: actions/showfavorites.php:212 #, php-format @@ -3767,86 +4790,111 @@ msgid "" "action.register%%%%) and then post something interesting they would add to " "their favorites :)" msgstr "" +"%s还没有收藏任何的消息。现在就 [注册账户](%%%%action.register%%%%) 并发一些" +"他/她可能会添加到收藏的有趣的消息吧 :)" #: actions/showfavorites.php:243 msgid "This is a way to share what you like." -msgstr "" +msgstr "这是一种分享你喜欢的内容的方式。" -#: actions/showgroup.php:82 lib/groupnav.php:86 +#. TRANS: Page title for first group page. %s is a group name. +#: actions/showgroup.php:75 #, php-format msgid "%s group" -msgstr "%s 组" +msgstr "%s 小组" -#: actions/showgroup.php:84 -#, fuzzy, php-format +#. TRANS: Page title for any but first group page. +#. TRANS: %1$s is a group name, $2$s is a page number. +#: actions/showgroup.php:79 +#, php-format msgid "%1$s group, page %2$d" -msgstr "组,第 %d 页" +msgstr "%1$s小组,第%2$d页" -#: actions/showgroup.php:227 -#, fuzzy +#. TRANS: Group profile header (h2). Text hidden by default. +#: actions/showgroup.php:220 msgid "Group profile" -msgstr "组logo" +msgstr "小组资料" -#: actions/showgroup.php:272 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:178 +#. TRANS: Label for group URL (dt). Text hidden by default. +#: actions/showgroup.php:270 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:180 msgid "URL" msgstr "URL 互联网地址" -#: actions/showgroup.php:283 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:195 -#, fuzzy +#. TRANS: Label for group description or group note (dt). Text hidden by default. +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:197 msgid "Note" -msgstr "通告" +msgstr "注释" -#: actions/showgroup.php:293 lib/groupeditform.php:184 +#. TRANS: Label for group aliases (dt). Text hidden by default. +#: actions/showgroup.php:293 lib/groupeditform.php:187 msgid "Aliases" -msgstr "" +msgstr "别名" -#: actions/showgroup.php:302 +#. TRANS: Group actions header (h2). Text hidden by default. +#: actions/showgroup.php:304 msgid "Group actions" -msgstr "组动作" +msgstr "小组动作" -#: actions/showgroup.php:338 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:345 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "%s 好友的聚合(RSS 1.0)" +msgstr "%s小组的消息聚合 (RSS 1.0)" -#: actions/showgroup.php:344 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:352 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "%s 好友的聚合(RSS 2.0)" +msgstr "%s小组的消息聚合 (RSS 2.0)" -#: actions/showgroup.php:350 -#, fuzzy, php-format +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:359 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "%s 好友的聚合(Atom)" +msgstr "%s小组的消息聚合 (Atom)" -#: actions/showgroup.php:355 +#. TRANS: Tooltip for feed link. %s is a group nickname. +#: actions/showgroup.php:365 #, php-format msgid "FOAF for %s group" msgstr "%s 的发件箱" -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 -#, fuzzy +#. TRANS: Header for mini list of group members on a group page (h2). +#: actions/showgroup.php:402 msgid "Members" -msgstr "用户始于" +msgstr "小组成员" -#: actions/showgroup.php:398 lib/profileaction.php:117 +#. TRANS: Description for mini list of group members on a group page when the group has no members. +#: actions/showgroup.php:408 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 msgid "(None)" -msgstr "(没有)" +msgstr "(无)" -#: actions/showgroup.php:404 +#. TRANS: Link to all group members from mini list of group members if group has more than n members. +#: actions/showgroup.php:417 msgid "All members" msgstr "所有成员" -#: actions/showgroup.php:439 -#, fuzzy +#. TRANS: Label for creation date in statistics on group page. +#: actions/showgroup.php:453 +msgctxt "LABEL" msgid "Created" -msgstr "特征" +msgstr "已创建" -#: actions/showgroup.php:455 +#. TRANS: Label for member count in statistics on group page. +#: actions/showgroup.php:461 +msgctxt "LABEL" +msgid "Members" +msgstr "成员" + +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: %%%%action.register%%%% is the URL for registration, %%%%doc.help%%%% is a URL to help. +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:476 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3855,8 +4903,16 @@ 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%%%%上的一个用户小组,%%%%site.name%%%%是一个基于自由软" +"件[StatusNet](http://status.net/)的[微博客](http://zh.wikipedia.org/zh-hans/%" +"E5%BE%AE%E5%8D%9A%E5%AE%A2)服务。用户通过短消息分享他们的生活和兴趣。现在[加" +"入](%%%%action.register%%%%)成为该小组的一员并享受更多的欢乐!([阅读更多](%%" +"%%doc.help%%%%))" -#: actions/showgroup.php:461 +#. TRANS: Notice on group pages for anonymous users for StatusNet sites that accept no new registrations. +#. TRANS: **%s** is the group alias, %%%%site.name%%%% is the site name, +#. TRANS: This message contains Markdown links. Ensure they are formatted correctly: [Description](link). +#: actions/showgroup.php:486 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3864,89 +4920,124 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** 是%%%%site.name%%%%上的一个小组,%%%%site.name%%%%是一个基于自由软件 " +"[StatusNet](http://status.net/) 的[微博客](http://zh.wikipedia.org/zh-hans/%" +"E5%BE%AE%E5%8D%9A%E5%AE%A2)。%%%%site.name%%%%的用户分享关于他们生活和各种兴" +"趣的消息。" -#: actions/showgroup.php:489 -#, fuzzy +#. TRANS: Header for list of group administrators on a group page (h2). +#: actions/showgroup.php:515 msgid "Admins" -msgstr "admin管理员" +msgstr "管理员" -#: actions/showmessage.php:81 +#. TRANS: Client error displayed requesting a single message that does not exist. +#: actions/showmessage.php:79 msgid "No such message." msgstr "未找到此消息。" -#: actions/showmessage.php:98 +#. TRANS: Client error displayed requesting a single direct message the requesting user was not a party in. +#: actions/showmessage.php:97 msgid "Only the sender and recipient may read this message." msgstr "只有发送和接受双方可以阅读此消息。" -#: actions/showmessage.php:108 +#. TRANS: Page title for single direct message display when viewing user is the sender. +#. TRANS: %1$s is the addressed user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:110 #, php-format msgid "Message to %1$s on %2$s" msgstr "发送给 %1$s 的 %2$s 消息" -#: actions/showmessage.php:113 +#. TRANS: Page title for single message display. +#. TRANS: %1$s is the sending user's nickname, $2$s is a timestamp. +#: actions/showmessage.php:118 #, php-format msgid "Message from %1$s on %2$s" msgstr "来自 %1$s 的 %2$s 消息" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "消息已发布。" +msgstr "消息已删除" -#: actions/showstream.php:73 -#, fuzzy, php-format -msgid " tagged %s" -msgstr "带 %s 标签的通告" +#. TRANS: Page title showing tagged notices in one user's stream. %1$s is the username, %2$s is the hash tag. +#: actions/showstream.php:70 +#, php-format +msgid "%1$s tagged %2$s" +msgstr "%1$s 的标签 %2$s" -#: actions/showstream.php:79 -#, fuzzy, php-format +#. TRANS: Page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$s is the hash tag, %1$d is the page number. +#: actions/showstream.php:74 +#, php-format +msgid "%1$s tagged %2$s, page %3$d" +msgstr "%1$s 的标签 %2$s,第%3$d页" + +#. TRANS: Extended page title showing tagged notices in one user's stream. +#. TRANS: %1$s is the username, %2$d is the page number. +#: actions/showstream.php:82 +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s 和好友,第%2$d页" +msgstr "%1$s,第%2$d页" -#: actions/showstream.php:122 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. +#. TRANS: %1$s is a user nickname, %2$s is a hashtag. +#: actions/showstream.php:127 +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "%s 好友的聚合(RSS 1.0)" - -#: actions/showstream.php:129 -#, fuzzy, php-format -msgid "Notice feed for %s (RSS 1.0)" -msgstr "%s 好友的聚合(RSS 1.0)" +msgstr "%1$s的有%2$s标签的消息聚合 (RSS 1.0)" +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format +msgid "Notice feed for %s (RSS 1.0)" +msgstr "%s的消息聚合 (RSS 1.0)" + +#. TRANS: Title for link to notice feed. +#. TRANS: %s is a user nickname. +#: actions/showstream.php:145 +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "%s 好友的聚合(RSS 2.0)" +msgstr "%s的消息聚合 (RSS 2.0)" -#: actions/showstream.php:143 -#, fuzzy, php-format +#: actions/showstream.php:152 +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "%s 好友的聚合(Atom)" +msgstr "%s的消息聚合 (Atom)" -#: actions/showstream.php:148 -#, fuzzy, php-format +#. TRANS: Title for link to notice feed. FOAF stands for Friend of a Friend. +#. TRANS: More information at http://www.foaf-project.org. %s is a user nickname. +#: actions/showstream.php:159 +#, php-format msgid "FOAF for %s" -msgstr "%s 的发件箱" +msgstr "%s的FOAF" -#: actions/showstream.php:200 -#, fuzzy, php-format -msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" +#. TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. +#: actions/showstream.php:211 +#, php-format +msgid "This is the timeline for %1$s, but %1$s hasn't posted anything yet." +msgstr "这是%1$s的时间线,但是%1$s还没有发布任何内容。" -#: actions/showstream.php:205 +#. TRANS: Second sentence of empty list message for a stream for the user themselves. +#: actions/showstream.php:217 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" -msgstr "" +msgstr "最近看到了什么有趣的消息了么?你还没有发布消息呢,现在开始吧 :)" -#: actions/showstream.php:207 +#. TRANS: Second sentence of empty list message for a non-self stream. %1$s is a user nickname, %2$s is a part of a URL. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:221 #, php-format msgid "" "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%" "%?status_textarea=%2$s)." msgstr "" +"你可以试着呼叫%1$s或给他们 [发一些消息](%%%%action.newnotice%%%%?" +"status_textarea=%2$s)。" -#: actions/showstream.php:243 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are open. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:264 #, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3954,186 +5045,191 @@ 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%%%%有一个账号,%%%%site.name%%%%是一个基于自由软件" +"[StatusNet](http://status.net/)的[微博客](http://zh.wikipedia.org/zh-hans/%" +"E5%BE%AE%E5%8D%9A%E5%AE%A2)服务。[现在加入](%%%%action.register%%%%)并关注**%" +"s**的消息和享受更多乐趣! ([阅读更多](%%%%doc.help%%%%))" -#: actions/showstream.php:248 +#. TRANS: Announcement for anonymous users showing a stream if site registrations are closed or invite only. +#. TRANS: This message contains a Markdown link. Keep "](" together. +#: actions/showstream.php:271 #, 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 "" +"**%s**在%%%%site.name%%%%有一个账号,%%%%site.name%%%%是一个基于自由软件" +"[StatusNet](http://status.net/)的[微博客](http://zh.wikipedia.org/zh-hans/%" +"E5%BE%AE%E5%8D%9A%E5%AE%A2)。" -#: actions/showstream.php:305 -#, fuzzy, php-format +#. TRANS: Link to the author of a repeated notice. %s is a linked nickname. +#: actions/showstream.php:328 +#, php-format msgid "Repeat of %s" -msgstr "%s 的回复" +msgstr "%s 的转发" #: actions/silence.php:65 actions/unsilence.php:65 -#, fuzzy msgid "You cannot silence users on this site." -msgstr "无法向此用户发送消息。" +msgstr "你不能在这个站点上将用户禁言。" #: actions/silence.php:72 msgid "User is already silenced." -msgstr "" +msgstr "用户已经被禁言。" #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site" -msgstr "" +msgstr "这个 StatusNet 网站的基本设置" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." -msgstr "" +msgstr "网站名称长度必须大于零。" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "不是有效的电子邮件。" +msgstr "你必须有一个有效的 email 地址。" #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "未知的语言“%s”" #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 0 (unlimited)." -msgstr "" +msgstr "最短的文字限制为0(没有限制)。" #: actions/siteadminpanel.php:171 msgid "Dupe limit must be one or more seconds." -msgstr "" +msgstr "防刷新限制至少要1秒或者更长。" #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "一般" #: actions/siteadminpanel.php:224 msgid "Site name" -msgstr "" +msgstr "网站名称" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "你的网站名称,例如\\\"你公司网站的微博\\\"" #: actions/siteadminpanel.php:229 msgid "Brought by" -msgstr "" +msgstr "提供商" #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" -msgstr "" +msgstr "用于每页页脚的 credits 链接文字" #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "提供商 URL" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" -msgstr "" +msgstr "用于每页页脚的 credits URL" #: actions/siteadminpanel.php:239 -#, fuzzy msgid "Contact email address for your site" -msgstr "新的电子邮件地址,用于发布 %s 信息" +msgstr "网站的联系我们电子邮件地址" #: actions/siteadminpanel.php:245 -#, fuzzy msgid "Local" -msgstr "本地显示" +msgstr "本地" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "默认时区" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "默认的网站时区;通常使用 UTC。" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "首选语言" +msgstr "默认语言" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" -msgstr "" +msgstr "当从浏览器自动获取语言不可用时网站的语言" #: actions/siteadminpanel.php:271 msgid "Limits" -msgstr "" +msgstr "限制" #: actions/siteadminpanel.php:274 msgid "Text limit" -msgstr "" +msgstr "文字限制" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "消息最长的字符数。" #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "防刷新限制" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +msgstr "用户再次发布相同内容时需要等待的时间(秒)。" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy +#. TRANS: Page title for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:55 msgid "Site Notice" -msgstr "通告" +msgstr "网站公告" -#: actions/sitenoticeadminpanel.php:67 -#, fuzzy +#. TRANS: Instructions for site-wide notice tab in admin panel. +#: actions/sitenoticeadminpanel.php:66 msgid "Edit site-wide message" -msgstr "新消息" +msgstr "编辑整个网站的公告" -#: actions/sitenoticeadminpanel.php:103 -#, fuzzy +#. TRANS: Server error displayed when saving a site-wide notice was impossible. +#: actions/sitenoticeadminpanel.php:101 msgid "Unable to save site notice." -msgstr "无法保存 Twitter 设置!" +msgstr "无法保存网站公告。" -#: actions/sitenoticeadminpanel.php:113 -msgid "Max length for the site-wide notice is 255 chars." -msgstr "" +#. TRANS: Client error displayed when a site-wide notice was longer than allowed. +#: actions/sitenoticeadminpanel.php:112 +msgid "Maximum length for the site-wide notice is 255 characters." +msgstr "整个网站的公告最长限制为255字符。" +#. TRANS: Label for site-wide notice text field in admin panel. #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "删除通告" +msgstr "网站公告文字" -#: actions/sitenoticeadminpanel.php:178 -msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +#. TRANS: Tooltip for site-wide notice text field in admin panel. +#: actions/sitenoticeadminpanel.php:179 +msgid "Site-wide notice text (255 characters maximum; HTML allowed)" +msgstr "整个网站的公告文字(最长255字符;可使用HTML)" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy +#. TRANS: Title for button to save site notice in admin panel. +#: actions/sitenoticeadminpanel.php:201 msgid "Save site notice" -msgstr "删除通告" +msgstr "保存网站公告" #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 -#, fuzzy msgid "SMS settings" -msgstr "头像设置" +msgstr "SMS 设置" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. #: actions/smssettings.php:74 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "您可以通过 %%site.name%% 的电子邮件接收SMS短信。" +msgstr "你可以通过 %%site.name%% 的电子邮件接收SMS短信。" #. TRANS: Message given in the SMS settings if SMS is not enabled on the site. #: actions/smssettings.php:97 msgid "SMS is not available." -msgstr "" +msgstr "SMS 不可用。" #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 -#, fuzzy msgid "SMS address" -msgstr "电子邮件地址" +msgstr "SMS 地址" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4157,16 +5253,14 @@ msgstr "输入手机收到的验证码。" #. TRANS: Button label to confirm SMS confirmation code in SMS settings. #: actions/smssettings.php:148 -#, fuzzy msgctxt "BUTTON" msgid "Confirm" msgstr "确认" #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 -#, fuzzy msgid "SMS phone number" -msgstr "没有电话号码。" +msgstr "SMS 电话号码" #. TRANS: SMS phone number input field instructions in SMS settings form. #: actions/smssettings.php:156 @@ -4175,22 +5269,20 @@ msgstr "电话号码,不带标点或空格,包含地区代码" #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 -#, fuzzy msgid "SMS preferences" -msgstr "首选项已保存。" +msgstr "SMS 偏好" #. TRANS: Checkbox label in SMS preferences form. #: actions/smssettings.php:201 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." -msgstr "通过SMS短信将通告发给我;我了解这样也许会给我带来不菲的开支。" +msgstr "通过SMS短信将消息发给我;我了解这样也许会给我带来不菲的开支。" #. TRANS: Confirmation message for successful SMS preferences save. #: actions/smssettings.php:315 -#, fuzzy msgid "SMS preferences saved." -msgstr "首选项已保存。" +msgstr "SMS设置已保存。" #. TRANS: Message given saving SMS phone number without having provided one. #: actions/smssettings.php:338 @@ -4205,7 +5297,7 @@ msgstr "未选择运营商。" #. TRANS: Message given saving SMS phone number that is already set. #: actions/smssettings.php:352 msgid "That is already your phone number." -msgstr "您已登记此电话号码。" +msgstr "你已登记此电话号码。" #. TRANS: Message given saving SMS phone number that is already set for another user. #: actions/smssettings.php:356 @@ -4214,13 +5306,11 @@ msgstr "这个电话号码属于另一个用户。" #. TRANS: Message given saving valid SMS phone number that is to be confirmed. #: actions/smssettings.php:384 -#, 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 "" -"验证码已被发送到您新增的电子邮件。请检查收件箱(和垃圾箱),找到验证码并按要求" -"使用它。" +"验证码已被发送到你新增的电话号码。请检查你的电话,找到验证码并按要求使用它。" #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. #: actions/smssettings.php:413 @@ -4229,9 +5319,8 @@ msgstr "确认码错误。" #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." -msgstr "SMS短信确认" +msgstr "SMS 验证已取消。" #. TRANS: Message given trying to remove an SMS phone number that is not #. TRANS: registered for the active user. @@ -4242,13 +5331,12 @@ msgstr "这是他人的电话号码。" #. TRANS: Message given after successfully removing a registered SMS phone number. #: actions/smssettings.php:470 msgid "The SMS phone number was removed." -msgstr "" +msgstr "SMS 电话号码已移除。" #. TRANS: Label for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:511 -#, fuzzy msgid "Mobile carrier" -msgstr "选择运营商" +msgstr "移动运营商" #. TRANS: Default option for mobile carrier dropdown menu in SMS settings. #: actions/smssettings.php:516 @@ -4263,7 +5351,7 @@ 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短信,而这里尚未列出,请联" +"电话的服务商。如果你的服务商支持通过电子邮件发送SMS短信,而这里尚未列出,请联" "系 %s 以告知。" #. TRANS: Message given saving SMS phone number confirmation code without having provided one. @@ -4273,150 +5361,165 @@ msgstr "没有输入验证码" #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" -msgstr "" +msgstr "快照" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "电子邮件地址确认" +msgstr "管理快照配置" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." -msgstr "" +msgstr "无效的快照运行值。" #: actions/snapshotadminpanel.php:133 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "快照频率必须是一个数字。" #: actions/snapshotadminpanel.php:144 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "无效的快照报告 URL。" #: actions/snapshotadminpanel.php:200 msgid "Randomly during web hit" -msgstr "" +msgstr "被访问时随机" #: actions/snapshotadminpanel.php:201 msgid "In a scheduled job" -msgstr "" +msgstr "按照计划的作业" #: actions/snapshotadminpanel.php:206 msgid "Data snapshots" -msgstr "" +msgstr "数据快照" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "什么时候将统计数据发送到 status.net 服务器" #: actions/snapshotadminpanel.php:217 msgid "Frequency" -msgstr "" +msgstr "频率" #: actions/snapshotadminpanel.php:218 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "每第N次访问是发送快照" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "报告 URL" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "快照将被发送到这个 URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "头像设置" +msgstr "保存访问设置" -#: actions/subedit.php:70 -#, fuzzy +#. TRANS: Client error displayed trying a change a subscription for a non-subscribed profile. +#: actions/subedit.php:75 msgid "You are not subscribed to that profile." -msgstr "您已订阅这些用户:" +msgstr "你没有关注这个用户" +#. TRANS: Server error displayed when updating a subscription fails with a database error. #. TRANS: Exception thrown when a subscription could not be stored on the server. -#: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy +#: actions/subedit.php:89 classes/Subscription.php:141 msgid "Could not save subscription." -msgstr "无法添加新的订阅。" +msgstr "无法保存关注。" #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" - -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "没有这份通告。" +msgstr "这个动作只接受 POST 请求" #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "" +msgstr "你不能用这个操作关注一个 OMB 0.1 远程用户。" #: actions/subscribe.php:145 -#, fuzzy msgid "Subscribed" -msgstr "订阅" +msgstr "已关注" -#: actions/subscribers.php:50 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (first page). +#. TRANS: %s is the user's nickname. +#: actions/subscribers.php:51 +#, php-format msgid "%s subscribers" -msgstr "订阅者" +msgstr "%s的关注者" -#: actions/subscribers.php:52 -#, fuzzy, php-format +#. TRANS: Header for list of subscribers for a user (not first page). +#. TRANS: %1$s is the user's nickname, $2$d is the page number. +#: actions/subscribers.php:55 +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%1$s 和好友,第%2$d页" +msgstr "%1$s的关注者,第%2$d页" -#: actions/subscribers.php:63 +#. TRANS: Page notice for page with an overview of all subscribers +#. TRANS: of the logged in user's own profile. +#: actions/subscribers.php:68 msgid "These are the people who listen to your notices." -msgstr "这些用户订阅了您的通告。" +msgstr "这些用户关注了你的消息。" -#: actions/subscribers.php:67 +#. TRANS: Page notice for page with an overview of all subscribers of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscribers.php:74 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "这些用户订阅了 %s 的通告。" +msgstr "这些用户关注了%s的消息。" -#: actions/subscribers.php:108 +#. TRANS: Subscriber list text when the logged in user has no subscribers. +#: actions/subscribers.php:116 msgid "" "You have no subscribers. Try subscribing to people you know and they might " -"return the favor" -msgstr "" +"return the favor." +msgstr "还没有人关注你,尝试关注一些你认识的用户,他们或许会关注你" -#: actions/subscribers.php:110 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user other +#. TRANS: than the logged in user that has no subscribers. %s is the user nickname. +#: actions/subscribers.php:120 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "还没有人关注%s,成为第一个关注者?" -#: actions/subscribers.php:114 +#. TRANS: Subscriber list text when looking at the subscribers for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#. TRANS: This message contains a Markdown URL. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscribers.php:129 #, php-format msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"还没有人关注%s。现在就[注册一个帐号](%%%%action.register%%%%)并成为第一个关注" +"者!" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "所有订阅" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: actions/subscriptions.php:55 +#, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "%1$s 和好友,第%2$d页" +msgstr "%1$s 关注的用户,第%2$d页" -#: actions/subscriptions.php:65 +#. TRANS: Page notice for page with an overview of all subscriptions +#. TRANS: of the logged in user's own profile. +#: actions/subscriptions.php:68 msgid "These are the people whose notices you listen to." -msgstr "这是您订阅的用户。" +msgstr "这是你关注的用户。" -#: actions/subscriptions.php:69 +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: actions/subscriptions.php:74 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "这是 %s 订阅的用户。" +msgstr "这是%s关注的用户。" -#: actions/subscriptions.php:126 +#. TRANS: Subscription list text when the logged in user has no subscriptions. +#. TRANS: This message contains Markdown URLs. The link description is between +#. TRANS: square brackets, and the link between parentheses. Do not separate "](" +#. TRANS: and do not change the URL part. +#: actions/subscriptions.php:135 #, php-format msgid "" "You're not listening to anyone's notices right now, try subscribing to " @@ -4425,64 +5528,76 @@ 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:128 actions/subscriptions.php:132 -#, fuzzy, php-format +#. TRANS: Subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: actions/subscriptions.php:143 actions/subscriptions.php:149 +#, php-format msgid "%s is not listening to anyone." -msgstr "%1$s 开始关注您的 %2$s 信息。" +msgstr "%s没有关注任何人。" -#: actions/subscriptions.php:208 -#, fuzzy +#: actions/subscriptions.php:178 +#, fuzzy, php-format +msgid "Subscription feed for %s (Atom)" +msgstr "%s的消息聚合 (Atom)" + +#. TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. +#: actions/subscriptions.php:242 msgid "Jabber" -msgstr "没有 Jabber ID。" +msgstr "Jabber" -#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 +#. TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. +#: actions/subscriptions.php:257 msgid "SMS" -msgstr "SMS短信" +msgstr "SMS" #: actions/tag.php:69 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "带 %s 标签的通告" +msgstr "带%1$s标签的消息,第%2$d页" #: actions/tag.php:87 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "%s 好友的聚合" +msgstr "%s标签的消息聚合 (RSS 1.0)" #: actions/tag.php:93 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "%s 好友的聚合" +msgstr "%s标签的消息聚合 (RSS 2.0)" #: actions/tag.php:99 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "%s 好友的聚合" +msgstr "%s标签的消息聚合 (Atom)" #: actions/tagother.php:39 msgid "No ID argument." -msgstr "" +msgstr "没有 ID 冲突。" #: actions/tagother.php:65 -#, fuzzy, php-format +#, php-format msgid "Tag %s" -msgstr "标签" +msgstr "将%s加为标签" #: actions/tagother.php:77 lib/userprofile.php:76 -#, fuzzy msgid "User profile" -msgstr "用户没有个人信息。" +msgstr "用户页面" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:103 +#: lib/userprofile.php:107 msgid "Photo" msgstr "相片" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "标签" +msgstr "将用户加为标签" #: actions/tagother.php:151 msgid "" @@ -4494,130 +5609,138 @@ msgstr "" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." -msgstr "你只能给你订阅的人或订阅你的人加标签。" +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/unblock.php:59 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 msgid "User is not silenced." -msgstr "用户没有个人信息。" +msgstr "用户未被禁言。" #: actions/unsubscribe.php:77 -#, fuzzy msgid "No profile ID in request." -msgstr "未收到认证请求!" +msgstr "请求不含资料页 ID。" #: actions/unsubscribe.php:98 -#, fuzzy msgid "Unsubscribed" -msgstr "退订" +msgstr "已取消关注" #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "" +msgstr "Listenee stream 许可证“‘%1$s” 与本网站的许可证 “%2$s”不兼容。" #. TRANS: User admin panel title -#: actions/useradminpanel.php:59 -#, fuzzy +#: actions/useradminpanel.php:58 msgctxt "TITLE" msgid "User" msgstr "用户" -#: actions/useradminpanel.php:70 -msgid "User settings for this StatusNet site." -msgstr "" +#. TRANS: Instruction for user admin panel. +#: actions/useradminpanel.php:69 +msgid "User settings for this StatusNet site" +msgstr "这个 StatusNet 网站的用户设置" -#: actions/useradminpanel.php:149 +#. TRANS: Form validation error in user admin panel when a non-numeric character limit was set. +#: actions/useradminpanel.php:147 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "无效的自述限制,必须为数字。" -#: actions/useradminpanel.php:155 -msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +#. TRANS: Form validation error in user admin panel when welcome text is too long. +#: actions/useradminpanel.php:154 +msgid "Invalid welcome text. Maximum length is 255 characters." +msgstr "无效的欢迎文字。最大长度255个字符。" -#: actions/useradminpanel.php:165 +#. TRANS: Client error displayed when trying to set a non-existing user as default subscription for new +#. TRANS: users in user admin panel. %1$s is the invalid nickname. +#: actions/useradminpanel.php:166 #, php-format -msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgid "Invalid default subscripton: '%1$s' is not a user." +msgstr "无效的默认关注:“%1$s”不是一个用户。" #. TRANS: Link description in user account settings menu. -#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111 -#: lib/personalgroupnav.php:109 +#: actions/useradminpanel.php:215 lib/accountsettingsaction.php:106 +#: lib/personalgroupnav.php:112 msgid "Profile" msgstr "个人信息" -#: actions/useradminpanel.php:222 +#. TRANS: Field label in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:220 msgid "Bio Limit" -msgstr "" +msgstr "自述限制" -#: actions/useradminpanel.php:223 +#. TRANS: Tooltip in user admin panel for setting the character limit for the bio field. +#: actions/useradminpanel.php:222 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "个人资料自述最长的字符数。" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "邀请新用户" - -#: actions/useradminpanel.php:235 -msgid "New user welcome" -msgstr "" +msgstr "新用户" +#. TRANS: Field label in user admin panel for setting new user welcome text. #: actions/useradminpanel.php:236 -msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgid "New user welcome" +msgstr "新用户欢迎" -#: actions/useradminpanel.php:241 -#, fuzzy +#. TRANS: Tooltip in user admin panel for setting new user welcome text. +#: actions/useradminpanel.php:238 +msgid "Welcome text for new users (maximum 255 characters)." +msgstr "给新用户的欢迎文字(不能超过255个字符)。" + +#. TRANS: Field label in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:244 msgid "Default subscription" -msgstr "所有订阅" +msgstr "默认关注" -#: actions/useradminpanel.php:242 -#, fuzzy +#. TRANS: Tooltip in user admin panel for setting default subscription for new users. +#: actions/useradminpanel.php:246 msgid "Automatically subscribe new users to this user." -msgstr "自动订阅任何订阅我的更新的人(这个选项最适合机器人)" - -#: actions/useradminpanel.php:251 -#, fuzzy -msgid "Invitations" -msgstr "已发送邀请" +msgstr "自动关注所有关注我的人 (这个选项适合机器人)" +#. TRANS: Form legend in user admin panel. #: actions/useradminpanel.php:256 -#, fuzzy -msgid "Invitations enabled" -msgstr "已发送邀请" +msgid "Invitations" +msgstr "邀请" -#: actions/useradminpanel.php:258 +#. TRANS: Field label for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:262 +msgid "Invitations enabled" +msgstr "邀请已启用" + +#. TRANS: Tooltip for checkbox in user admin panel for allowing users to invite friend using site e-mail. +#: actions/useradminpanel.php:265 msgid "Whether to allow users to invite new users." -msgstr "" +msgstr "是否允许用户发送注册邀请。" + +#. TRANS: Title for button to save user settings in user admin panel. +#: actions/useradminpanel.php:302 +msgid "Save user settings" +msgstr "保存用户设置" #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "确认订阅" +msgstr "授权关注" #: actions/userauthorization.php:110 msgid "" @@ -4625,10 +5748,14 @@ msgid "" "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" +"请检查这些详细信息,确认希望关注此用户的消息。如果你不想关注,请点击\\\"拒绝" +"\\\"。" +#. TRANS: Menu item for site administration #: actions/userauthorization.php:196 actions/version.php:167 +#: lib/adminpanelaction.php:403 msgid "License" -msgstr "" +msgstr "许可协议" #: actions/userauthorization.php:217 msgid "Accept" @@ -4636,26 +5763,24 @@ msgstr "接受" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 -#, fuzzy msgid "Subscribe to this user" -msgstr "订阅 %s" +msgstr "关注这个用户" #: actions/userauthorization.php:219 msgid "Reject" msgstr "拒绝" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "确认订阅" +msgstr "拒绝此关注" #: actions/userauthorization.php:232 msgid "No authorization request!" -msgstr "未收到认证请求!" +msgstr "没有授权请求!" #: actions/userauthorization.php:254 msgid "Subscription authorized" -msgstr "订阅已确认" +msgstr "已授权关注" #: actions/userauthorization.php:256 msgid "" @@ -4663,87 +5788,90 @@ msgid "" "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"已授权关注,但是没有回传 URL。请到网站查看如何授权关注。你的 subscription " +"token 是:" #: actions/userauthorization.php:266 msgid "Subscription rejected" -msgstr "订阅被拒绝" +msgstr "关注已拒绝" #: actions/userauthorization.php:268 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 "" +msgstr "关注已拒绝,但是没有回传 URL。请到网站查看如何完全拒绝关注。" #: actions/userauthorization.php:303 #, php-format msgid "Listener URI ‘%s’ not found here." -msgstr "" +msgstr "Listener URI ‘%s’ 没有找到。" #: actions/userauthorization.php:308 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "Listenee URI ‘%s’ 过长。" #: actions/userauthorization.php:314 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "Listenee URI ‘%s’ 是一个本地用户。" #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "个人信息 URL “%s” 是为本地用户的。" #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "头像地址‘%s’无效。" #: actions/userauthorization.php:350 #, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "" +msgstr "无法读取头像 URL '%s'。" #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "" +msgstr "头像 URL ‘%s’ 图像格式错误。" -#: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy +#. TRANS: Page title for profile design page. +#: actions/userdesignsettings.php:76 lib/designsettings.php:63 msgid "Profile design" -msgstr "个人设置" +msgstr "个人页面外观" -#: actions/userdesignsettings.php:87 lib/designsettings.php:76 +#. TRANS: Instructions for profile design page. +#: actions/userdesignsettings.php:87 lib/designsettings.php:74 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "通过背景图片和调色板自定义你的页面外观。" #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "享受你的成果吧!" #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. #: actions/usergroups.php:66 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "组,第 %d 页" +msgstr "%1$s的小组,第%2$d页" #: actions/usergroups.php:132 msgid "Search for more groups" -msgstr "" +msgstr "搜索更多小组" #: actions/usergroups.php:159 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "您未告知此个人信息" +msgstr "%s还未加入任何小组。" #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." -msgstr "" +msgstr "试一下[搜索小组](%%action.groupsearch%%)并加入他们。" #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle in atom group notice feed. @@ -4751,15 +5879,15 @@ msgstr "" #. TRANS: Message is used as a subtitle in atom user notice feed. #. TRANS: %1$s is a user name, %2$s is a site name. #: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70 -#: lib/atomusernoticefeed.php:76 +#: lib/atomusernoticefeed.php:75 #, php-format msgid "Updates from %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" #: actions/version.php:75 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "统计" +msgstr "StatusNet %s" #: actions/version.php:155 #, php-format @@ -4767,10 +5895,11 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"此网站使用%1$s版本%2$s,2008-2010 StatusNet, Inc. 和其他贡献者版权所有。" #: actions/version.php:163 msgid "Contributors" -msgstr "" +msgstr "贡献者" #: actions/version.php:170 msgid "" @@ -4779,6 +5908,8 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet 是一个免费软件,你可以在遵守自由软件基金会发布的 GNU Affero GPL 或" +"第三版或以后的版本的情况下重新部署或者修改它," #: actions/version.php:176 msgid "" @@ -4787,1117 +5918,1300 @@ msgid "" "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details. " msgstr "" +"这个程序的发布是希望它可以有用,但没有任何的担保;也没有售后性或者符合其他特" +"别目的的担保。查看 GNU Affero GPL 了解更多信息。" #: actions/version.php:182 #, php-format msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." -msgstr "" +msgstr "你应该在本程序中收到了一份 GNU Affero GPL 的副本,如果没有收到请看%s。" #: actions/version.php:191 msgid "Plugins" -msgstr "" +msgstr "插件" #. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -#, fuzzy +#: actions/version.php:198 lib/action.php:885 msgid "Version" -msgstr "个人" +msgstr "版本" #: actions/version.php:199 msgid "Author(s)" -msgstr "" +msgstr "作者" + +#. TRANS: Activity title when marking a notice as favorite. +#: classes/Fave.php:151 lib/favorform.php:143 +msgid "Favor" +msgstr "收藏" + +#. TRANS: Ntofication given when a user marks a notice as favorite. +#. TRANS: %1$s is a user nickname or full name, %2$s is a notice URI. +#: classes/Fave.php:154 +#, php-format +msgid "%1$s marked notice %2$s as a favorite." +msgstr "%1$s 收藏了消息 %2$s 。" #. TRANS: Server exception thrown when a URL cannot be processed. -#: classes/File.php:143 +#: classes/File.php:156 #, php-format msgid "Cannot process URL '%s'" -msgstr "" +msgstr "不能处理 URL “%s”" #. TRANS: Server exception thrown when... Robin thinks something is impossible! -#: classes/File.php:175 +#: classes/File.php:188 msgid "Robin thinks something is impossible." -msgstr "" +msgstr "麦子认为卖烧麦是份很令人愉快的工作。" #. TRANS: Message given if an upload is larger than the configured maximum. #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file. -#: classes/File.php:190 +#. TRANS: %1$s is used for plural. +#: classes/File.php:204 #, php-format msgid "" +"No file may be larger than %1$d byte and the file you sent was %2$d bytes. " +"Try to upload a smaller version." +msgid_plural "" "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. " "Try to upload a smaller version." -msgstr "" +msgstr[0] "文件不能大于%1$d字节,而你上传的文件是%2$d字节。换个小点的试一下。" #. TRANS: Message given if an upload would exceed user quota. -#. TRANS: %d (number) is the user quota in bytes. -#: classes/File.php:202 +#. TRANS: %d (number) is the user quota in bytes and is used for plural. +#: classes/File.php:217 #, php-format -msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your user quota of %d byte." +msgid_plural "A file this large would exceed your user quota of %d bytes." +msgstr[0] "这么大的文件会超过你%d字节的用户配额。" #. TRANS: Message given id an upload would exceed a user's monthly quota. -#. TRANS: $d (number) is the monthly user quota in bytes. -#: classes/File.php:211 +#. TRANS: $d (number) is the monthly user quota in bytes and is used for plural. +#: classes/File.php:229 #, php-format -msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgid "A file this large would exceed your monthly quota of %d byte." +msgid_plural "A file this large would exceed your monthly quota of %d bytes." +msgstr[0] "这么大的文件会超过你%d字节的每月配额。" #. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy +#: classes/File.php:276 classes/File.php:291 msgid "Invalid filename." -msgstr "大小不正确。" +msgstr "无效的文件名。" #. TRANS: Exception thrown when joining a group fails. -#: classes/Group_member.php:42 -#, fuzzy +#: classes/Group_member.php:51 msgid "Group join failed." -msgstr "小组未找到。" +msgstr "加入小组失败。" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. -#: classes/Group_member.php:55 -#, fuzzy +#: classes/Group_member.php:64 msgid "Not part of group." -msgstr "无法更新组" +msgstr "不是小组成员。" #. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -#, fuzzy +#: classes/Group_member.php:72 msgid "Group leave failed." -msgstr "上传失败" +msgstr "离开小组失败。" + +#. TRANS: Exception thrown providing an invalid profile ID. +#. TRANS: %s is the invalid profile ID. +#: classes/Group_member.php:85 +#, php-format +msgid "Profile ID %s is invalid." +msgstr "无效的用户 ID %s。" + +#. TRANS: Exception thrown providing an invalid group ID. +#. TRANS: %s is the invalid group ID. +#: classes/Group_member.php:98 +#, php-format +msgid "Group ID %s is invalid." +msgstr "小组 ID %s 无效。" + +#. TRANS: Activity title. +#: classes/Group_member.php:147 lib/joinform.php:114 +msgid "Join" +msgstr "加入" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: classes/Group_member.php:151 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s加入了%2$s小组。" #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "无法更新组" +msgstr "无法更新本地小组。" #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "无法创建收藏。" +msgstr "无法创建别名。" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 msgid "No database name or DSN found anywhere." -msgstr "" +msgstr "没有找到数据库名称或者 DSN。" #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them. -#: classes/Message.php:46 -#, fuzzy +#: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "发送消息出错。" +msgstr "你被禁止发送私信。" #. TRANS: Message given when a message could not be stored on the server. -#: classes/Message.php:63 +#: classes/Message.php:69 msgid "Could not insert message." msgstr "无法添加信息。" #. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 +#: classes/Message.php:80 msgid "Could not update message with new URI." -msgstr "无法添加新URI的信息。" +msgstr "无法通过新的 URI 更新消息。" #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). #: classes/Notice.php:98 #, php-format msgid "No such profile (%1$d) for notice (%2$d)." -msgstr "" +msgstr "没有对于 消息 (%2$d) 的 个人信息页 (%1$d) 。" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" -msgstr "添加头像出错" +msgstr "插入标签时数据库出错:%s" #. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 -#, fuzzy +#: classes/Notice.php:270 msgid "Problem saving notice. Too long." -msgstr "保存通告时出错。" +msgstr "保存消息时出错。太长。" #. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 -#, fuzzy +#: classes/Notice.php:275 msgid "Problem saving notice. Unknown user." -msgstr "保存通告时出错。" +msgstr "保存消息时出错。未知用户。" #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:281 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 -#, fuzzy +#: classes/Notice.php:288 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." -msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" +msgstr "你在短时间里发布了过多的重复消息,请深呼吸,过几分钟再发消息。" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:296 msgid "You are banned from posting notices on this site." msgstr "在这个网站你被禁止发布消息。" #. TRANS: Server exception thrown when a notice cannot be saved. #. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 +#: classes/Notice.php:363 classes/Notice.php:390 msgid "Problem saving notice." -msgstr "保存通告时出错。" +msgstr "保存消息时出错。" #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 -msgid "Bad type provided to saveKnownGroups" -msgstr "" +#: classes/Notice.php:913 +msgid "Bad type provided to saveKnownGroups." +msgstr "对 saveKnownGroups 提供的类型无效。" #. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 -#, fuzzy +#: classes/Notice.php:1012 msgid "Problem saving group inbox." -msgstr "保存通告时出错。" +msgstr "保存小组收件箱时出错。" + +#. TRANS: Server exception thrown when a reply cannot be saved. +#. TRANS: %1$d is a notice ID, %2$d is the ID of the mentioned user. +#: classes/Notice.php:1126 +#, php-format +msgid "Could not save reply for %1$d, %2$d." +msgstr "无法保存回复,%1$d 对 %2$d。" #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 -#, fuzzy, php-format +#: classes/Notice.php:1645 +#, php-format msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#. TRANS: Full name of a profile or group followed by nickname in parens +#: classes/Profile.php:172 classes/User_group.php:247 +#, php-format +msgctxt "FANCYNAME" +msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:737 +#: classes/Profile.php:798 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist." -msgstr "" +msgstr "无法取消用户#%2$d的\\\"%1$s\\\"权限,不存在。" #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query. #. TRANS: %1$s is the role name, %2$s is the user ID (number). -#: classes/Profile.php:746 +#: classes/Profile.php:807 #, php-format msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error." -msgstr "" +msgstr "无法取消用户#%2$d的\\\"%1$s\\\"权限,数据库错误。" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." -msgstr "用户没有个人信息。" +msgstr "丢失的个人信息。" #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 -#, fuzzy +#: classes/Status_network.php:338 msgid "Unable to save tag." -msgstr "无法保存 Twitter 设置!" +msgstr "无法保存标签。" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 -#, fuzzy +#: classes/Subscription.php:77 lib/oauthstore.php:482 msgid "You have been banned from subscribing." -msgstr "那个用户阻止了你的订阅。" +msgstr "你被禁止添加关注。" #. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -#, fuzzy +#: classes/Subscription.php:82 msgid "Already subscribed!" -msgstr "未订阅!" +msgstr "已经关注了!" #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. -#: classes/Subscription.php:85 -#, fuzzy +#: classes/Subscription.php:87 msgid "User has blocked you." -msgstr "用户没有个人信息。" +msgstr "用户将你屏蔽了。" #. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy +#: classes/Subscription.php:176 msgid "Not subscribed!" -msgstr "未订阅!" +msgstr "未关注!" #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. -#: classes/Subscription.php:178 -#, fuzzy +#: classes/Subscription.php:183 msgid "Could not delete self-subscription." -msgstr "无法添加新的订阅。" +msgstr "无法删除自我关注。" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. -#: classes/Subscription.php:206 -#, fuzzy +#: classes/Subscription.php:211 msgid "Could not delete subscription OMB token." -msgstr "无法添加新的订阅。" +msgstr "无法删除关注 OMB token。" #. TRANS: Exception thrown when a subscription could not be deleted on the server. -#: classes/Subscription.php:218 -#, fuzzy +#: classes/Subscription.php:223 msgid "Could not delete subscription." -msgstr "无法添加新的订阅。" +msgstr "无法取消关注。" + +#. TRANS: Activity tile when subscribing to another person. +#: classes/Subscription.php:265 +msgid "Follow" +msgstr "关注" + +#. TRANS: Notification given when one person starts following another. +#. TRANS: %1$s is the subscriber, %2$s is the subscribed. +#: classes/Subscription.php:268 +#, php-format +msgid "%1$s is now following %2$s." +msgstr "%1$s 现在开始关注了 %2$s。" #. TRANS: Notice given on user registration. #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname. -#: classes/User.php:365 -#, fuzzy, php-format +#: classes/User.php:395 +#, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "发送给 %1$s 的 %2$s 消息" +msgstr "欢迎来到 %1$s,@%2$s!" + +#. TRANS: Server exception. +#: classes/User.php:923 +msgid "No single user defined for single-user mode." +msgstr "没有单独的用户被定义为单用户模式。" + +#. TRANS: Server exception. +#: classes/User.php:927 +msgid "Single-user mode code called when not enabled." +msgstr "没启用单用户模式的代码。" #. TRANS: Server exception thrown when creating a group failed. -#: classes/User_group.php:496 +#: classes/User_group.php:511 msgid "Could not create group." -msgstr "无法创建组。" +msgstr "无法创建小组。" #. TRANS: Server exception thrown when updating a group URI failed. -#: classes/User_group.php:506 -#, fuzzy +#: classes/User_group.php:521 msgid "Could not set group URI." -msgstr "无法创建组。" +msgstr "无法设置小组 URI。" #. TRANS: Server exception thrown when setting group membership failed. -#: classes/User_group.php:529 -#, fuzzy +#: classes/User_group.php:544 msgid "Could not set group membership." -msgstr "无法创建组。" +msgstr "无法设置小组成员。" #. TRANS: Server exception thrown when saving local group information failed. -#: classes/User_group.php:544 -#, fuzzy +#: classes/User_group.php:559 msgid "Could not save local group info." -msgstr "无法保存个人信息。" +msgstr "无法保存本地小组信息。" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 +#: lib/accountsettingsaction.php:104 msgid "Change your profile settings" -msgstr "修改您的个人信息" +msgstr "修改你的个人信息" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 +#: lib/accountsettingsaction.php:111 msgid "Upload an avatar" -msgstr "上载一个头像。" +msgstr "上传一个头像。" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 +#: lib/accountsettingsaction.php:118 msgid "Change your password" msgstr "修改密码" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:130 +#: lib/accountsettingsaction.php:125 msgid "Change email handling" msgstr "修改电子邮件" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:137 -#, fuzzy +#: lib/accountsettingsaction.php:132 msgid "Design your profile" -msgstr "用户没有个人信息。" +msgstr "设计你的个人页面外观" #. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 +#: lib/accountsettingsaction.php:139 msgid "Other options" msgstr "其他选项" #. TRANS: Link description in user account settings menu. -#: lib/accountsettingsaction.php:146 +#: lib/accountsettingsaction.php:141 msgid "Other" msgstr "其他" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format +#: lib/action.php:148 +#, php-format msgid "%1$s - %2$s" -msgstr "%1$s (%2$s)" +msgstr "%1$s - %2$s" #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "无标题页" +#. TRANS: Localized tooltip for '...' expansion button on overlong remote messages. +#: lib/action.php:312 +msgctxt "TOOLTIP" +msgid "Show more" +msgstr "显示更多" + #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:531 msgid "Primary site navigation" msgstr "主站导航" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:537 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "" +msgstr "个人资料及朋友的时间线" #. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -#, fuzzy +#: lib/action.php:540 msgctxt "MENU" msgid "Personal" msgstr "个人" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -#, fuzzy +#: lib/action.php:542 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "修改密码" +msgstr "修改你的 email 地址、头像、密码、资料" + +#. TRANS: Main menu option when logged in for access to user settings +#: lib/action.php:545 +msgid "Account" +msgstr "帐号" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 +#: lib/action.php:547 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "关联的服务" #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:550 msgid "Connect" -msgstr "连接" +msgstr "关联" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 -#, fuzzy +#: lib/action.php:553 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "主站导航" +msgstr "更改网站配置" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:556 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" -msgstr "admin管理员" +msgstr "管理" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 -#, fuzzy, php-format +#: lib/action.php:560 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "使用这个表单来邀请好友和同事加入。" +msgstr "邀请好友和同事加入%s。" #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -#, fuzzy +#: lib/action.php:563 msgctxt "MENU" msgid "Invite" msgstr "邀请" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 -#, fuzzy +#: lib/action.php:569 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "登录" +msgstr "从网站登出" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 -#, fuzzy +#: lib/action.php:572 msgctxt "MENU" msgid "Logout" -msgstr "logo已更新。" +msgstr "登出" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 +#: lib/action.php:577 msgctxt "TOOLTIP" msgid "Create an account" -msgstr "" +msgstr "创建一个账户" #. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -#, fuzzy +#: lib/action.php:580 msgctxt "MENU" msgid "Register" msgstr "注册" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 -#, fuzzy +#: lib/action.php:583 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "登录" +msgstr "登录这个网站" -#: lib/action.php:491 -#, fuzzy +#. TRANS: Main menu option when not logged in to log in +#: lib/action.php:586 msgctxt "MENU" msgid "Login" msgstr "登录" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy +#: lib/action.php:589 msgctxt "TOOLTIP" msgid "Help me!" -msgstr "帮助" +msgstr "帮助我!" -#: lib/action.php:497 -#, fuzzy +#. TRANS: Main menu option for help on the StatusNet site +#: lib/action.php:592 msgctxt "MENU" msgid "Help" msgstr "帮助" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:595 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "搜索人或文字" -#: lib/action.php:503 -#, fuzzy +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: lib/action.php:598 msgctxt "MENU" msgid "Search" msgstr "搜索" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -#, fuzzy +#: lib/action.php:620 lib/adminpanelaction.php:387 msgid "Site notice" -msgstr "新通告" +msgstr "网站消息" #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:687 msgid "Local views" msgstr "本地显示" #. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -#, fuzzy +#: lib/action.php:757 msgid "Page notice" -msgstr "新通告" +msgstr "页面消息" #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 -#, fuzzy +#: lib/action.php:858 msgid "Secondary site navigation" -msgstr "主站导航" +msgstr "副站导航" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:864 msgid "Help" msgstr "帮助" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:867 msgid "About" msgstr "关于" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:870 msgid "FAQ" -msgstr "常见问题FAQ" +msgstr "FAQ" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:875 msgid "TOS" -msgstr "" +msgstr "条款" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:879 msgid "Privacy" msgstr "隐私" -#. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#. TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. +#: lib/action.php:882 msgid "Source" -msgstr "来源" +msgstr "源码" -#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#. TRANS: Secondary navigation menu option leading to e-mail contact information on the +#. TRANS: StatusNet site, where to report bugs, ... +#: lib/action.php:889 msgid "Contact" -msgstr "联系人" +msgstr "联系" -#: lib/action.php:794 -#, fuzzy +#. TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. +#: lib/action.php:892 msgid "Badge" -msgstr "呼叫" +msgstr "挂件" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:921 msgid "StatusNet software license" -msgstr "StatusNet软件注册证" +msgstr "StatusNet 软件许可证" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby +#: lib/action.php:928 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." msgstr "" +"**%%site.name%%**是一个微博客服务,提供者为[%%site.broughtby%%](%%site." +"broughtbyurl%%)。" #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:931 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%** 是一个微博客服务。" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:938 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"它运行[StatusNet](http://status.net/)微博客服务,版本 %s,采用[GNU Affero " -"General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)" -"授权。" +"它运行[StatusNet](http://status.net/)微博客服务,版本 %s,[GNU Affero GPL]" +"(http://www.fsf.org/licensing/licenses/agpl-3.0.html)授权。" #. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -#, fuzzy +#: lib/action.php:954 msgid "Site content license" -msgstr "StatusNet软件注册证" +msgstr "网站内容许可协议" #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:961 #, php-format msgid "Content and data of %1$s are private and confidential." -msgstr "" +msgstr "%1$s的内容和数据是私人且保密的。" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:968 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." -msgstr "" +msgstr "内容和数据%1$s版权所有并保留所有权利。" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:972 msgid "Content and data copyright by contributors. All rights reserved." -msgstr "" +msgstr "内容和数据贡献者版权所有并保留所有权利。" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:1004 #, php-format msgid "All %1$s content and data are available under the %2$s license." -msgstr "" +msgstr "所有%1$s的内容和数据在%2$s许可下有效。" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1340 msgid "Pagination" msgstr "分页" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 -#, fuzzy +#: lib/action.php:1351 msgid "After" -msgstr "其他" +msgstr "之后" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: past than the currently displayed information. -#: lib/action.php:1213 +#: lib/action.php:1361 msgid "Before" -msgstr "" +msgstr "之前" #. TRANS: Client exception thrown when a feed instance is a DOMDocument. -#: lib/activity.php:122 +#: lib/activity.php:125 msgid "Expecting a root feed element but got a whole XML document." -msgstr "" +msgstr "只期待一个 root feed 元素但收到了整个的 XML 文档。" -#: lib/activityutils.php:208 +#: lib/activity.php:360 +#, fuzzy +msgid "Post" +msgstr "相片" + +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:200 msgid "Can't handle remote content yet." -msgstr "" +msgstr "还不能处理远程内容。" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:237 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "还不能处理嵌入式 XML 内容。" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:242 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "还不能处理嵌入式 Base64 内容。" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 -#, fuzzy +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "无法向此用户发送消息。" +msgstr "你不能在这个站点上修改。" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 -#, fuzzy +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." -msgstr "不允许注册。" +msgstr "不允许对该面板进行修改。" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 -#, fuzzy +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." -msgstr "命令尚未实现。" +msgstr "showForm() 尚未实现。" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 -#, fuzzy +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." -msgstr "命令尚未实现。" +msgstr "saveSettings() 尚未实现。" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 -#, fuzzy +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." -msgstr "无法保存 Twitter 设置!" +msgstr "无法删除外观设置。" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "电子邮件地址确认" +msgstr "基本网站配置" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -#, fuzzy +#: lib/adminpanelaction.php:339 msgctxt "MENU" msgid "Site" -msgstr "邀请" +msgstr "网站" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "SMS短信确认" +msgstr "外观配置" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/adminpanelaction.php:347 lib/groupnav.php:135 msgctxt "MENU" msgid "Design" -msgstr "" +msgstr "外观" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" -msgstr "SMS短信确认" +msgstr "用户配置" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:118 msgid "User" msgstr "用户" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "SMS短信确认" +msgstr "访问配置" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "SMS短信确认" +msgstr "路径配置" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "SMS短信确认" +msgstr "会话配置" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy +#: lib/adminpanelaction.php:385 msgid "Edit site notice" -msgstr "删除通告" +msgstr "编辑网站消息" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "SMS短信确认" +msgstr "更改站点配置" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:401 +msgid "Set site license" +msgstr "设置网站许可协议" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." -msgstr "" +msgstr "API 资源需要读写的访问权限,但是你只有只读的权限。" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" -msgstr "" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:177 +msgid "No application for that consumer key." +msgstr "没有应用使用这个 consumer key。" + +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:219 +msgid "Bad access token." +msgstr "无效的 access token。" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:224 +msgid "No user for that token." +msgstr "没有用户使用这个 token。" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:266 lib/apiauth.php:293 +msgid "Could not authenticate you." +msgstr "无法验证你。" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth consumer. +#: lib/apioauthstore.php:45 +msgid "Could not create anonymous consumer." +msgstr "无法创建匿名 consumer。" + +#. TRANS: Server error displayed when trying to create an anynymous OAuth application. +#: lib/apioauthstore.php:69 +msgid "Could not create anonymous OAuth application." +msgstr "无法创建匿名 OAuth 应用。" + +#. TRANS: Exception thrown when no token association could be found. +#: lib/apioauthstore.php:151 +msgid "" +"Could not find a profile and application associated with the request token." +msgstr "无法找到请求 token 对应的用户和应用。" + +#. TRANS: Exception thrown when no access token can be issued. +#: lib/apioauthstore.php:186 +msgid "Could not issue access token." +msgstr "无法发行 access token。" + +#. TRANS: Server error displayed when a database error occurs. +#: lib/apioauthstore.php:243 +msgid "Database error inserting OAuth application user." +msgstr "插入 OAuth 应用用户时数据库出错。" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:285 +msgid "Tried to revoke unknown token." +msgstr "尝试了取消未知的 token。" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:290 +msgid "Failed to delete revoked token." +msgstr "删除取消的 token 失败。" #. TRANS: Form guide. -#: lib/applicationeditform.php:187 +#: lib/applicationeditform.php:178 msgid "Icon for this application" -msgstr "" +msgstr "该应用的图标" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 +#. TRANS: %d is the number of available characters for the description. +#: lib/applicationeditform.php:201 #, php-format -msgid "Describe your application in %d characters" -msgstr "" +msgid "Describe your application in %d character" +msgid_plural "Describe your application in %d characters" +msgstr[0] "用不超过%d个字符描述你的应用" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 +#: lib/applicationeditform.php:205 msgid "Describe your application" -msgstr "" +msgstr "描述你的应用" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:216 msgid "URL of the homepage of this application" -msgstr "" +msgstr "这个应用的主页 URL" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 -#, fuzzy +#: lib/applicationeditform.php:218 msgid "Source URL" -msgstr "来源" +msgstr "来源网址" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:225 msgid "Organization responsible for this application" -msgstr "" +msgstr "该应用的负责组织" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:234 msgid "URL for the homepage of the organization" -msgstr "" +msgstr "这个组织的主页 URL" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:243 msgid "URL to redirect to after authentication" -msgstr "" +msgstr "通过授权后转向的 URL" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:271 msgid "Browser" -msgstr "" +msgstr "浏览器" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:288 msgid "Desktop" -msgstr "" +msgstr "桌面" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:290 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "应用的类型,浏览器或桌面" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:314 msgid "Read-only" -msgstr "" +msgstr "只读" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:334 msgid "Read-write" -msgstr "" +msgstr "读写" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:336 msgid "Default access for this application: read-only, or read-write" -msgstr "" +msgstr "该应用默认的访问权限:只读或读写" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:353 msgid "Cancel" msgstr "取消" +#: lib/applicationlist.php:247 +msgid " by " +msgstr " by " + #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:260 msgid "read-write" -msgstr "" +msgstr "读写" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:262 msgid "read-only" -msgstr "" +msgstr "只读" -#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type ("read-write" or "read-only") +#: lib/applicationlist.php:268 #, php-format msgid "Approved %1$s - \"%2$s\" access." -msgstr "" +msgstr "通过了%1$s - \"%2$s\"的访问权限。" + +#. TRANS: Access token in the application list. +#. TRANS: %s are the first 7 characters of the access token. +#: lib/applicationlist.php:282 +#, php-format +msgid "Access token starting with: %s" +msgstr "Access token 的开始:%s" #. TRANS: Button label -#: lib/applicationlist.php:159 -#, fuzzy +#: lib/applicationlist.php:298 msgctxt "BUTTON" msgid "Revoke" -msgstr "恢复" +msgstr "取消" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "" +#: lib/atom10feed.php:112 +msgid "author element must contain a name element." +msgstr "作者元素必须包含一个名称元素。" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:294 msgid "Author" -msgstr "" +msgstr "作者" #. TRANS: DT element label in attachment list item. -#: lib/attachmentlist.php:279 -#, fuzzy +#: lib/attachmentlist.php:308 msgid "Provider" -msgstr "预览" +msgstr "提供者" +#. TRANS: Title. #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "出现这个附件的消息" +#. TRANS: Title. #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "" +msgstr "此附件的标签" -#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 -#, fuzzy -msgid "Password changing failed" -msgstr "密码已保存。" +#. TRANS: Exception thrown when a password change fails. +#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:227 +msgid "Password changing failed." +msgstr "修改密码失败。" -#: lib/authenticationplugin.php:236 -msgid "Password changing is not allowed" -msgstr "" +#. TRANS: Exception thrown when a password change attempt fails because it is not allowed. +#: lib/authenticationplugin.php:238 +msgid "Password changing is not allowed." +msgstr "不允许更改密码。" -#: lib/channel.php:157 lib/channel.php:177 +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:68 +msgid "Block" +msgstr "屏蔽" + +#. TRANS: Title for command results. +#: lib/channel.php:160 lib/channel.php:181 msgid "Command results" msgstr "执行结果" -#: lib/channel.php:229 lib/mailhandler.php:142 +#. TRANS: Title for command results. +#: lib/channel.php:194 +msgid "AJAX error" +msgstr "AJAX 错误" + +#. TRANS: E-mail subject when a command has completed. +#: lib/channel.php:233 lib/mailhandler.php:143 msgid "Command complete" msgstr "执行完毕" -#: lib/channel.php:240 +#. TRANS: E-mail subject when a command has failed. +#: lib/channel.php:244 msgid "Command failed" msgstr "执行失败" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" -msgstr "" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:82 lib/command.php:106 +msgid "Notice with that id does not exist." +msgstr "没有此 id 的消息。" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" -msgstr "用户没有通告。" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:99 lib/command.php:630 +msgid "User has no last notice." +msgstr "用户没有最后一条的消息。" #. TRANS: Message given requesting a profile for a non-existing user. #. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, fuzzy, php-format -msgid "Could not find a user with nickname %s" -msgstr "无法更新已确认的电子邮件。" +#: lib/command.php:128 +#, php-format +msgid "Could not find a user with nickname %s." +msgstr "无法找到昵称为 %s 的用户。" #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "无法更新已确认的电子邮件。" +#: lib/command.php:148 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "无法在本地找到昵称为%s的用户。" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:183 msgid "Sorry, this command is not yet implemented." msgstr "对不起,这个命令还没有实现。" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:229 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "呼叫自己不太符合逻辑吧。" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 -#, fuzzy, php-format -msgid "Nudge sent to %s" -msgstr "振铃呼叫发出。" +#: lib/command.php:238 +#, php-format +msgid "Nudge sent to %s." +msgstr "呼叫已发给 %s。" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:268 #, php-format msgid "" "Subscriptions: %1$s\n" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"关注数: %1$s\\n\n" +"关注者: %2$s\\n\n" +"消息数: %3$s" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:312 msgid "Notice marked as fave." -msgstr "通告被标记为收藏。" +msgstr "收藏了消息。" -#: lib/command.php:323 -msgid "You are already a member of that group" -msgstr "您已经是该组成员" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 +#: lib/command.php:357 #, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "" +msgid "%1$s joined group %2$s." +msgstr "%1$s加入了%2$s小组。" -#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: Message given having removed a user from a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:405 #, php-format -msgid "Could not remove user %1$s from group %2$s" -msgstr "" +msgid "%1$s left group %2$s." +msgstr "%1$s离开了%2$s小组。" + +#. TRANS: Whois output. +#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. +#: lib/command.php:426 +#, php-format +msgctxt "WHOIS" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 +#: lib/command.php:430 #, php-format msgid "Fullname: %s" msgstr "全名:%s" #. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a location. +#: lib/command.php:434 lib/mail.php:278 #, php-format msgid "Location: %s" msgstr "位置:%s" #. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is a homepage. +#: lib/command.php:438 lib/mail.php:282 #, php-format msgid "Homepage: %s" msgstr "主页:%s" #. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 +#: lib/command.php:442 #, php-format msgid "About: %s" msgstr "关于:%s" -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#. TRANS: %s is a remote profile. +#: lib/command.php:471 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." -msgstr "" +msgstr "%s是一个远程的用户;你只能给同一个服务器上的用户发送私信。" -#. TRANS: Message given if content is too long. +#. TRANS: Message given if content is too long. %1$sd is used for plural. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:488 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" -msgstr "" +msgid "Message too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "消息太长了 - 最大长度为%1$d字符,你发送的是%2$d字符。" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 -#, php-format -msgid "Direct message to %s sent" -msgstr "已向 %s 发送消息" - -#: lib/command.php:494 +#. TRANS: Error text shown sending a direct message fails with an unknown reason. +#: lib/command.php:516 msgid "Error sending direct message." msgstr "发送消息出错。" -#: lib/command.php:514 -#, fuzzy -msgid "Cannot repeat your own notice" -msgstr "无法开启通告。" - -#: lib/command.php:519 -#, fuzzy -msgid "Already repeated that notice" -msgstr "无法删除通告。" - #. TRANS: Message given having repeated a notice from another user. #. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 -#, fuzzy, php-format -msgid "Notice from %s repeated" -msgstr "消息已发布。" +#: lib/command.php:553 +#, php-format +msgid "Notice from %s repeated." +msgstr "来自 %s 的消息已转发。" -#: lib/command.php:531 -#, fuzzy +#. TRANS: Error text shown when repeating a notice fails with an unknown reason. +#: lib/command.php:556 msgid "Error repeating notice." -msgstr "保存用户设置时出错。" +msgstr "转发消息时出错。" -#: lib/command.php:562 +#. TRANS: Message given if content of a notice for a reply is too long. %1$d is used for plural. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:591 #, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgid "Notice too long - maximum is %1$d character, you sent %2$d." +msgid_plural "Notice too long - maximum is %1$d characters, you sent %2$d." +msgstr[0] "消息过长 - 最长%1$d个字符,你发送的是%2$d。" -#: lib/command.php:571 -#, fuzzy, php-format -msgid "Reply to %s sent" -msgstr "%s 的回复" +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:604 +#, php-format +msgid "Reply to %s sent." +msgstr "给 %s 的回复已发送。" -#: lib/command.php:573 -#, fuzzy +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:607 msgid "Error saving notice." -msgstr "保存通告时出错。" +msgstr "保存消息时出错。" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" -msgstr "指定要订阅的用户名" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:654 +msgid "Specify the name of the user to subscribe to." +msgstr "指定要关注的用户名。" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:663 msgid "Can't subscribe to OMB profiles by command." -msgstr "" +msgstr "无法通过命令行关注 OMB 用户。" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:671 #, php-format -msgid "Subscribed to %s" -msgstr "订阅 %s" +msgid "Subscribed to %s." +msgstr "已关注%s。" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" -msgstr "指定要取消订阅的用户名" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:692 lib/command.php:803 +msgid "Specify the name of the user to unsubscribe from." +msgstr "指定要取消关注的用户名。" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:703 #, php-format -msgid "Unsubscribed from %s" -msgstr "取消订阅 %s" +msgid "Unsubscribed from %s." +msgstr "取消关注%s。" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:723 lib/command.php:749 msgid "Command not yet implemented." msgstr "命令尚未实现。" -#: lib/command.php:685 +#. TRANS: Text shown when issuing the command "off" successfully. +#: lib/command.php:727 msgid "Notification off." -msgstr "通告关闭。" +msgstr "通知已关闭。" -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:730 msgid "Can't turn off notification." -msgstr "无法关闭通告。" +msgstr "无法关闭通知。" -#: lib/command.php:708 +#. TRANS: Text shown when issuing the command "on" successfully. +#: lib/command.php:753 msgid "Notification on." -msgstr "通告开启。" +msgstr "通知已开启。" -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:756 msgid "Can't turn on notification." -msgstr "无法开启通告。" +msgstr "无法开启通知。" -#: lib/command.php:723 -msgid "Login command is disabled" -msgstr "" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:770 +msgid "Login command is disabled." +msgstr "登录命令被禁用。" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:783 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgid "This link is useable only once and is valid for only 2 minutes: %s." +msgstr "这个链接只能使用一次并且仅在2分钟内有效:%s。" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "取消订阅 %s" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:812 +#, php-format +msgid "Unsubscribed %s." +msgstr "已取消关注%s。" -#: lib/command.php:778 -#, fuzzy +#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions. +#: lib/command.php:830 msgid "You are not subscribed to anyone." -msgstr "您已订阅这些用户:" +msgstr "你没有关注任何人。" -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:835 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "您已订阅这些用户:" +msgstr[0] "你已关注了这个用户:" -#: lib/command.php:800 -#, fuzzy +#. TRANS: Text shown after requesting other users that are subscribed to a user +#. TRANS: (followers) without having any subscribers. +#: lib/command.php:857 msgid "No one is subscribed to you." -msgstr "无法订阅他人更新。" +msgstr "没有人关注你。" -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:862 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "无法订阅他人更新。" +msgstr[0] "这个用户正在关注你:" -#: lib/command.php:822 -#, fuzzy +#. TRANS: Text shown after requesting groups a user is subscribed to without having +#. TRANS: any group subscriptions. +#: lib/command.php:884 msgid "You are not a member of any groups." -msgstr "您未告知此个人信息" +msgstr "你还未成为任何一个小组的成员。" -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:889 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "您未告知此个人信息" +msgstr[0] "你是该小组成员:" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:904 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5938,113 +7252,181 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"命令:\n" +"on - 打开提醒\n" +"off - 关闭提醒\n" +"help - 显示此帮助\n" +"follow <昵称> - 关注该用户\n" +"groups - 列出你加入的小组\n" +"subscriptions - 列出你关注的用户\n" +"subscribers - 列出你的关注者\n" +"leave <昵称> - 取消关注该用户\n" +"d <昵称> <文字> - 给该用户发送私信\n" +"get <昵称> - 获取该用户的最后一条消息\n" +"whois <昵称> - 获取该用户的个人信息\n" +"lose <昵称> - 强行取消该用户对你的关注\n" +"fav <昵称> - 将该用户最后一条消息加为'收藏'\n" +"fav #<消息id> - 将该id的消息加为'收藏'\n" +"repeat #<消息id> - 转发该id的消息\n" +"repeat <昵称> - 转发该用户的最后一条消息\n" +"reply #<消息id> - 对该id消息回复\n" +"reply <昵称> - 对该用户的最后一条消息回复\n" +"join <小组> - 加入小组\n" +"login - 获取网页登录的地址\n" +"drop <小组> - 离开小组\n" +"stats - 获取你的统计\n" +"stop - 和'off'相同\n" +"quit - 和'off'相同\n" +"sub <昵称> - 和'follow'相同\n" +"unsub <昵称> - 和'leave'相同\n" +"last <昵称> - 和'get'相同\n" +"on <昵称> - 尚未实现。\n" +"off <昵称> - 尚未实现。\n" +"nudge <昵称> - 提醒该用户更新消息。\n" +"invite <电话号码> - 尚未实现。\n" +"track <word> - 尚未实现。\n" +"untrack <word> - 尚未实现。\n" +"track off - 尚未实现。\n" +"untrack all - 尚未实现。\n" +"tracks - 尚未实现。\n" +"tracking - 尚未实现。\n" -#: lib/common.php:135 -#, fuzzy -msgid "No configuration file found. " -msgstr "没有验证码" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:147 +msgid "No configuration file found." +msgstr "没有找到配置文件。" -#: lib/common.php:136 -msgid "I looked for configuration files in the following places: " -msgstr "" +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: Is followed by a list of directories (separated by HTML breaks). +#: lib/common.php:150 +msgid "I looked for configuration files in the following places:" +msgstr "我在以下位置查找了配置文件:" -#: lib/common.php:138 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#: lib/common.php:153 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "或许你想运行安装程序来解决这个问题。" -#: lib/common.php:139 +#. TRANS: Error message displayed when no configuration file was found for a StatusNet installation. +#. TRANS: The text is link text that leads to the installer page. +#: lib/common.php:157 msgid "Go to the installer." -msgstr "" +msgstr "去安装程序。" -#: lib/connectsettingsaction.php:110 +#. TRANS: Menu item for Instant Messaging settings. +#: lib/connectsettingsaction.php:106 +msgctxt "MENU" msgid "IM" msgstr "即时通讯IM" -#: lib/connectsettingsaction.php:111 +#. TRANS: Tooltip for Instant Messaging menu item. +#: lib/connectsettingsaction.php:108 msgid "Updates by instant messenger (IM)" msgstr "使用即时通讯工具(IM)更新" -#: lib/connectsettingsaction.php:116 +#. TRANS: Menu item for Short Message Service settings. +#: lib/connectsettingsaction.php:113 +msgctxt "MENU" +msgid "SMS" +msgstr "SMS" + +#. TRANS: Tooltip for Short Message Service menu item. +#: lib/connectsettingsaction.php:115 msgid "Updates by SMS" -msgstr "使用SMS短信更新" +msgstr "使用 SMS 更新" +#. TRANS: Menu item for OuAth connection settings. #: lib/connectsettingsaction.php:120 -#, fuzzy +msgctxt "MENU" msgid "Connections" -msgstr "连接" +msgstr "关联" -#: lib/connectsettingsaction.php:121 +#. TRANS: Tooltip for connected applications (Connections through OAuth) menu item. +#: lib/connectsettingsaction.php:122 msgid "Authorized connected applications" -msgstr "" +msgstr "被授权已连接的应用" -#: lib/dberroraction.php:60 +#: lib/dberroraction.php:59 msgid "Database error" -msgstr "" +msgstr "数据库错误" -#: lib/designsettings.php:105 -#, fuzzy +#. TRANS: Label in form on profile design page. +#. TRANS: Field contains file name on user's computer that could be that user's custom profile background image. +#: lib/designsettings.php:104 msgid "Upload file" -msgstr "上传失败" +msgstr "上传文件" +#. TRANS: Instructions for form on profile design page. #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "你可以给你的组上载一个logo图。" +msgstr "你可以上传你的个人页面背景。文件最大 2MB。" -#: lib/designsettings.php:418 +#. TRANS: Radio button on profile design page that will enable use of the uploaded profile image. +#: lib/designsettings.php:139 +msgctxt "RADIO" +msgid "On" +msgstr "打开" + +#. TRANS: Radio button on profile design page that will disable use of the uploaded profile image. +#: lib/designsettings.php:156 +msgctxt "RADIO" +msgid "Off" +msgstr "关闭" + +#. TRANS: Button text on profile design page to reset all colour settings to default without saving. +#: lib/designsettings.php:264 +msgctxt "BUTTON" +msgid "Reset" +msgstr "重置" + +#. TRANS: Success message displayed if design settings were saved after clicking "Use defaults". +#: lib/designsettings.php:433 msgid "Design defaults restored." -msgstr "" +msgstr "默认外观已恢复。" -#: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy +#: lib/disfavorform.php:114 lib/disfavorform.php:144 msgid "Disfavor this notice" -msgstr "%s 收藏的通告" +msgstr "取消收藏这个消息" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy +#: lib/favorform.php:114 lib/favorform.php:143 msgid "Favor this notice" -msgstr "%s 收藏的通告" - -#: lib/favorform.php:140 -msgid "Favor" msgstr "收藏" -#: lib/feed.php:85 +#: lib/feed.php:84 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" -#: lib/feed.php:87 +#: lib/feed.php:86 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" -#: lib/feed.php:89 +#: lib/feed.php:88 msgid "Atom" -msgstr "" +msgstr "Atom" -#: lib/feed.php:91 +#: lib/feed.php:90 msgid "FOAF" -msgstr "" +msgstr "FOAF" -#: lib/feedlist.php:64 -msgid "Export data" -msgstr "导出数据" +#. TRANS: Header for feed links (h2). +#: lib/feedlist.php:66 +msgid "Feeds" +msgstr "Feeds" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "" +msgstr "过滤标签" #: lib/galleryaction.php:131 msgid "All" msgstr "全部" #: lib/galleryaction.php:139 -#, fuzzy msgid "Select tag to filter" -msgstr "选择运营商" +msgstr "选择要过滤的标签" #: lib/galleryaction.php:140 -#, fuzzy msgid "Tag" msgstr "标签" @@ -6059,76 +7441,126 @@ msgstr "执行" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "给这个用户添加\\\"%s\\\"权限" + +#: lib/groupeditform.php:154 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 到 64 个小写字母或数字,不包含标点或空格" #: lib/groupeditform.php:163 -#, fuzzy -msgid "URL of the homepage or blog of the group or topic" -msgstr "您的主页、博客或在其他站点的URL" +msgid "URL of the homepage or blog of the group or topic." +msgstr "这个小组或主题的主页或博客 URL。" #: lib/groupeditform.php:168 msgid "Describe the group or topic" -msgstr "" +msgstr "小组或主题的描述" #: lib/groupeditform.php:170 #, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" +msgid "Describe the group or topic in %d character or less" +msgid_plural "Describe the group or topic in %d characters or less" +msgstr[0] "用不超过%d个字符描述下这个小组或者主题" -#: lib/groupeditform.php:179 -#, fuzzy +#: lib/groupeditform.php:182 msgid "" -"Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "你的位置,格式类似\"城市,省份,国家\"" +"Location for the group, if any, like \"City, State (or Region), Country\"." +msgstr "小组的地理位置,例如“国家、省份、城市”。" -#: lib/groupeditform.php:187 +#: lib/groupeditform.php:190 #, php-format -msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgid "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"alias allowed." +msgid_plural "" +"Extra nicknames for the group, separated with commas or spaces. Maximum %d " +"aliases allowed." +msgstr[0] "该小组额外的昵称,用逗号或者空格分隔开,最多%d个别名。" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" -msgstr "组" +msgstr "小组" -#: lib/groupnav.php:101 -#, fuzzy -msgid "Blocked" -msgstr "阻止" - -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 #, php-format -msgid "%s blocked users" -msgstr "" +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "%s小组" +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "组员" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "%s 小组成员" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. #: lib/groupnav.php:108 +msgctxt "MENU" +msgid "Blocked" +msgstr "屏蔽的用户" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format -msgid "Edit %s group properties" -msgstr "编辑 %s群选项" - -#: lib/groupnav.php:113 -#, fuzzy -msgid "Logo" -msgstr "登录" - -#: lib/groupnav.php:114 -#, php-format -msgid "Add or edit %s logo" -msgstr "添加或编辑 %s 图标" +msgctxt "TOOLTIP" +msgid "%s blocked users" +msgstr "%s 屏蔽的用户" +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. #: lib/groupnav.php:120 -#, fuzzy, php-format -msgid "Add or edit %s design" -msgstr "添加或编辑 %s 图标" +#, php-format +msgctxt "TOOLTIP" +msgid "Edit %s group properties" +msgstr "编辑 %s 小组设置" +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" +msgid "Logo" +msgstr "Logo" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s logo" +msgstr "添加或编辑 %s logo" + +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 +#, php-format +msgctxt "TOOLTIP" +msgid "Add or edit %s design" +msgstr "添加或编辑 %s 外观" + +#. TRANS: Title for groups with the most members section. #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "人气最旺的群" +msgstr "人气最旺的小组" +#. TRANS: Title for groups with the most posts section. #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "消息最多的群" +msgstr "发布消息最多的小组" -#: lib/grouptagcloudsection.php:56 +#. TRANS: Title for group tag cloud section. +#. TRANS: %s is a group name. +#: lib/grouptagcloudsection.php:57 #, php-format msgid "Tags in %s group's notices" msgstr "这个组所发布的消息的标签" @@ -6136,113 +7568,144 @@ msgstr "这个组所发布的消息的标签" #. TRANS: Client exception 406 #: lib/htmloutputter.php:104 msgid "This page is not available in a media type you accept" -msgstr "这个页面不提供您想要的媒体类型" +msgstr "这个页面不提供你想要的媒体类型" #: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "不支持这种图像格式。" -#: lib/imagefile.php:88 -#, fuzzy, php-format +#. TRANS: Exception thrown when too large a file is uploaded. +#. TRANS: %s is the maximum file size, for example "500b", "10kB" or "2MB". +#: lib/imagefile.php:90 +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "你可以给你的组上载一个logo图。" +msgstr "文件太大。文件大小限制在%s以下。" -#: lib/imagefile.php:93 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "部分上传。" -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:103 lib/mediafile.php:228 msgid "System error uploading file." msgstr "上传文件时出错。" -#: lib/imagefile.php:109 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "不是图片文件或文件已损坏。" -#: lib/imagefile.php:122 -#, fuzzy +#: lib/imagefile.php:160 msgid "Lost our file." msgstr "文件数据丢失" -#: lib/imagefile.php:163 lib/imagefile.php:224 +#: lib/imagefile.php:197 lib/imagefile.php:237 msgid "Unknown file type" msgstr "未知文件类型" -#: lib/imagefile.php:244 -msgid "MB" -msgstr "" +#. TRANS: Number of megabytes. %d is the number. +#: lib/imagefile.php:283 +#, php-format +msgid "%dMB" +msgid_plural "%dMB" +msgstr[0] "%dMB" -#: lib/imagefile.php:246 -msgid "kB" -msgstr "" +#. TRANS: Number of kilobytes. %d is the number. +#: lib/imagefile.php:287 +#, php-format +msgid "%dkB" +msgid_plural "%dkB" +msgstr[0] "%dkB" + +#. TRANS: Number of bytes. %d is the number. +#: lib/imagefile.php:290 +#, php-format +msgid "%dB" +msgid_plural "%dB" +msgstr[0] "%dB" #: lib/jabber.php:387 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/jabber.php:567 #, php-format msgid "Unknown inbox source %d." -msgstr "" - -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "登录" +msgstr "未知的收件箱来源%d。" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "保存" +msgstr "离开" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "用户名或密码不正确。" +msgstr "用用户名和密码登录。" #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "" +msgstr "注册一个新帐户" -#. TRANS: Subject for address confirmation email +#. TRANS: Subject for address confirmation email. #: lib/mail.php:174 msgid "Email address confirmation" msgstr "电子邮件地址确认" #. TRANS: Body for address confirmation email. -#: lib/mail.php:177 +#. TRANS: %1$s is the addressed user's nickname, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the URL to confirm at. +#: lib/mail.php:179 #, php-format msgid "" -"Hey, %s.\n" +"Hey, %1$s.\n" "\n" -"Someone just entered this email address on %s.\n" +"Someone just entered this email address on %2$s.\n" "\n" "If it was you, and you want to confirm your entry, use the URL below:\n" "\n" -"\t%s\n" +"\t%3$s\n" "\n" "If not, just ignore this message.\n" "\n" "Thanks for your time, \n" -"%s\n" +"%2$s\n" msgstr "" +"嗨, %1$s。\n" +"\n" +"刚刚有人在%2$s填写了你的电子邮件地址。\n" +"\n" +"如果是你的操作并且你想完成你的确认,请使用下面的URL:\n" +"\n" +"%3$s\n" +"\n" +"如果你不知道这封邮件是怎么回事,忽略掉这封邮件就好。\n" +"\n" +"谢谢你的宝贵时间,\n" +"%2$s\n" -#. TRANS: Subject of new-subscriber notification e-mail -#: lib/mail.php:243 +#. TRANS: Subject of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. +#: lib/mail.php:246 #, 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:248 +#. TRANS: This is a paragraph in a new-subscriber e-mail. +#. TRANS: %s is a URL where the subscriber can be reported as abusive. +#: lib/mail.php:253 #, php-format msgid "" "If you believe this account is being used abusively, you can block them from " "your subscribers list and report as spam to site administrators at %s" msgstr "" +"如果你认为此帐户正被人恶意使用,你可以将其从你的关注者中屏蔽掉并到 %s 报告给" +"网站的管理员为他们在发垃圾信息。" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 +#. TRANS: Main body of new-subscriber notification e-mail. +#. TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename, +#. TRANS: %3$s is the subscriber's profile URL, %4$s is the subscriber's location (or empty) +#. TRANS: %5$s is the subscriber's homepage URL (or empty), %6%s is the subscriber's bio (or empty) +#. TRANS: %7$s is a link to the addressed user's e-mail settings. +#: lib/mail.php:263 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -6251,26 +7714,40 @@ msgid "" "\n" "%4$s%5$s%6$s\n" "Faithfully yours,\n" -"%7$s.\n" +"%2$s.\n" "\n" "----\n" -"Change your email address or notification options at %8$s\n" +"Change your email address or notification options at %7$s\n" msgstr "" +"%1$s开始关注你在%2$s的消息。\n" +"\n" +"%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"真诚的问候,\n" +"%2$s.\n" +"\n" +"----\n" +"在%7$s更改你的 email 地址或通知选项\n" -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format +#. TRANS: Profile info line in new-subscriber notification e-mail. +#. TRANS: %s is biographical information. +#: lib/mail.php:286 +#, php-format msgid "Bio: %s" -msgstr "位置:%s" +msgstr "自我介绍:%s" -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 +#. TRANS: Subject of notification mail for new posting email address. +#. TRANS: %s is the StatusNet sitename. +#: lib/mail.php:315 #, php-format msgid "New email address for posting to %s" msgstr "新的电子邮件地址,用于发布 %s 信息" -#. TRANS: Body of notification mail for new posting email address -#: lib/mail.php:308 +#. TRANS: Body of notification mail for new posting email address. +#. TRANS: %1$s is the StatusNet sitename, %2$s is the e-mail address to send +#. TRANS: to to post by e-mail, %3$s is a URL to more instructions. +#: lib/mail.php:321 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -6280,41 +7757,48 @@ msgid "" "More email instructions at %3$s.\n" "\n" "Faithfully yours,\n" -"%4$s" +"%1$s" msgstr "" -"您的 %1$s 发布用地址已更新。\n" +"你的 %1$s 发布用地址已更新。\n" "\n" "发送邮件到 %2$s 来发布新消息。\n" "\n" "更多电子邮件的帮助请见 %3$s。\n" "\n" -"为您效力的 %4$s" +"真诚的问候,\n" +"\n" +"%1$s" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 +#. TRANS: Subject line for SMS-by-email notification messages. +#. TRANS: %s is the posting user's nickname. +#: lib/mail.php:442 #, php-format msgid "%s status" msgstr "%s 状态" -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 +#. TRANS: Subject line for SMS-by-email address confirmation message. +#: lib/mail.php:468 msgid "SMS confirmation" -msgstr "SMS短信确认" +msgstr "SMS 验证" -#. TRANS: Main body heading for SMS-by-email address confirmation message -#: lib/mail.php:463 -#, fuzzy, php-format +#. TRANS: Main body heading for SMS-by-email address confirmation message. +#. TRANS: %s is the addressed user's nickname. +#: lib/mail.php:472 +#, php-format msgid "%s: confirm you own this phone number with this code:" -msgstr "等待确认此电话号码。" +msgstr "%s:通过此代码证明这是你的手机:" -#. TRANS: Subject for 'nudge' notification email -#: lib/mail.php:484 +#. TRANS: Subject for 'nudge' notification email. +#. TRANS: %s is the nudging user. +#: lib/mail.php:493 #, php-format msgid "You've been nudged by %s" -msgstr "%s 振铃呼叫你" +msgstr "你被%s呼叫了" -#. TRANS: Body for 'nudge' notification email -#: lib/mail.php:489 +#. TRANS: Body for 'nudge' notification email. +#. TRANS: %1$s is the nuding user's long name, $2$s is the nudging user's nickname, +#. TRANS: %3$s is a URL to post notices at, %4$s is the StatusNet sitename. +#: lib/mail.php:500 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6329,15 +7813,29 @@ 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" -#. TRANS: Subject for direct-message notification email -#: lib/mail.php:536 +#. TRANS: Subject for direct-message notification email. +#. TRANS: %s is the sending user's nickname. +#: lib/mail.php:547 #, php-format msgid "New private message from %s" -msgstr "%s 发送了新的私人信息" +msgstr "来自%s的私信" -#. TRANS: Body for direct-message notification email -#: lib/mail.php:541 +#. TRANS: Body for direct-message notification email. +#. TRANS: %1$s is the sending user's long name, %2$s is the sending user's nickname, +#. TRANS: %3$s is the message content, %4$s a URL to the message, +#. TRANS: %5$s is the StatusNet sitename. +#: lib/mail.php:555 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6355,15 +7853,34 @@ 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" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, fuzzy, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "如果有人收藏我的通告,发邮件通知我。" +#. TRANS: Subject for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:607 +#, php-format +msgid "%1$s (@%2$s) added your notice as a favorite" +msgstr "%1$s (@%2$s) 收藏了你的消息" -#. TRANS: Body for favorite notification email -#: lib/mail.php:592 +#. TRANS: Body for favorite notification e-mail. +#. TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created, +#. TRANS: %3$s is a URL to the faved notice, %4$s is the faved notice text, +#. TRANS: %5$s is a URL to all faves of the adding user, %6$s is the StatusNet sitename, +#. TRANS: %7$s is the adding user's nickname. +#: lib/mail.php:614 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6383,23 +7900,49 @@ 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" #. TRANS: Line in @-reply notification e-mail. %s is conversation URL. -#: lib/mail.php:651 +#: lib/mail.php:672 #, php-format msgid "" "The full conversation can be read here:\n" "\n" "\t%s" msgstr "" +"到这里查看完整的对话:\n" +"\n" +"\t%s" -#: lib/mail.php:657 +#. TRANS: E-mail subject for notice notification. +#. TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. +#: lib/mail.php:680 #, php-format -msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgid "%1$s (@%2$s) sent a notice to your attention" +msgstr "%1$s (@%2$s) 给你发送了一条消息" #. TRANS: Body of @-reply notification e-mail. -#: lib/mail.php:660 +#. TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, +#. TRANS: %3$s is a URL to the notice, %4$s is the notice text, +#. TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), +#. TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, +#. TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. +#: lib/mail.php:688 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6425,20 +7968,44 @@ msgid "" "\n" "P.S. You can turn off these email notifications here: %8$s\n" msgstr "" +"%1$s (@%9$s) 刚刚在%2$s通过(@回复)发送了一条消息给你。\n" +"\n" +"消息的地址是:\n" +"\n" +"\t%3$s\n" +"\n" +"消息的内容是:\n" +"\n" +"\t%4$s\n" +"\n" +"%5$s你可以到这里回复:\n" +"\n" +"\t%6$s\n" +"\n" +"所有给你的 @回复 消息:\n" +"\n" +"%7$s\n" +"\n" +"真切的问候,\n" +"%2$s\n" +"\n" +"P.S. 你可以到这里关掉这些邮件提醒:%8$s\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:228 lib/noticelist.php:506 +#: lib/mailbox.php:228 lib/noticelist.php:521 msgid "from" -msgstr "" +msgstr "通过" #: lib/mailhandler.php:37 msgid "Could not parse message." @@ -6450,364 +8017,399 @@ msgstr "不是已注册用户。" #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." -msgstr "对不起,这个发布用的电子邮件属于其他用户。" +msgstr "抱歉,这个不是你的收信电子邮件地址。" #: lib/mailhandler.php:50 msgid "Sorry, no incoming email allowed." -msgstr "对不起,发布用的电子邮件无法使用。" +msgstr "抱歉,现在不允许电子邮件发布。" -#: lib/mailhandler.php:228 -#, fuzzy, php-format +#: lib/mailhandler.php:229 +#, php-format msgid "Unsupported message type: %s" -msgstr "不支持这种图像格式。" +msgstr "不支持的信息格式:%s" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:102 lib/mediafile.php:174 msgid "There was a database error while saving your file. Please try again." -msgstr "" +msgstr "保存你的文件时数据库出现了一个错误。请重试。" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:194 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." -msgstr "" +msgstr "上传文件大小超过了 php.ini 中 upload_max_filesize 的设置限制。" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:200 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." -msgstr "" +msgstr "上传文件大小超过了 HTML 表单中 MAX_FILE_SIZE 的设置限制。" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:206 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "上传的文件只有部分被上传。" -#: lib/mediafile.php:159 +#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload. +#: lib/mediafile.php:214 msgid "Missing a temporary folder." -msgstr "" +msgstr "缺少一个临时文件夹。" -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:218 msgid "Failed to write file to disk." -msgstr "" +msgstr "写入磁盘失败。" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:222 msgid "File upload stopped by extension." -msgstr "" +msgstr "文件上传被扩展停止了。" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:238 lib/mediafile.php:281 msgid "File exceeds user's quota." -msgstr "" +msgstr "文件超过了用户的配额。" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:258 lib/mediafile.php:300 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "文件不能被移动到目标目录。" -#: lib/mediafile.php:202 lib/mediafile.php:238 -#, fuzzy +#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME +#. TRANS: type of the uploaded file could not be determined. +#: lib/mediafile.php:265 lib/mediafile.php:306 msgid "Could not determine file's MIME type." -msgstr "无法删除收藏。" +msgstr "无法判断文件的 MIME 类型。" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:394 #, php-format -msgid " Try using another %s format." -msgstr "" +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." +msgstr "此服务器不支持 “%1$s” 的文件格式,试下使用其他的 %2$s 格式。" -#: lib/mediafile.php:323 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:399 #, php-format -msgid "%s is not a supported file type on this server." -msgstr "" +msgid "\"%s\" is not a supported file type on this server." +msgstr "这个服务器不支持 %s 的文件格式。" #: lib/messageform.php:120 -#, fuzzy msgid "Send a direct notice" -msgstr "删除通告" +msgstr "发送一条私信" -#: lib/messageform.php:146 +#. TRANS Label entry in drop-down selection box in direct-message inbox/outbox. This is the default entry in the drop-down box, doubling as instructions and a brake against accidental submissions with the first user in the list. +#: lib/messageform.php:137 +msgid "Select recipient:" +msgstr "选择收件人:" + +#. TRANS Entry in drop-down selection box in direct-message inbox/outbox when no one is available to message. +#: lib/messageform.php:150 +msgid "No mutual subscribers." +msgstr "没有共同的关注者。" + +#: lib/messageform.php:153 msgid "To" msgstr "到" -#: lib/messageform.php:159 lib/noticeform.php:185 -#, fuzzy +#: lib/messageform.php:166 lib/noticeform.php:186 msgid "Available characters" -msgstr "6 个或更多字符" +msgstr "可用的字符" -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:185 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" -msgstr "" +msgstr "发布" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:163 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "昵称只能使用小写字母和数字且不能使用空格。" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:176 +msgid "Nickname cannot be empty." +msgstr "昵称不能为空。" + +#. TRANS: Validation error in form for registration, profile and group settings, etc. +#: lib/nickname.php:189 +#, php-format +msgid "Nickname cannot be more than %d character long." +msgid_plural "Nickname cannot be more than %d characters long." +msgstr[0] "昵称长度不能超过%d字符。" #: lib/noticeform.php:160 -#, fuzzy msgid "Send a notice" -msgstr "新通告" +msgstr "发送一个通知" -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" -msgstr "怎么样,%s?" +msgstr "%s,最近怎么样?" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" -msgstr "" +msgstr "附件" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" -msgstr "" +msgstr "添加一个文件附件" -#: lib/noticeform.php:212 +#: lib/noticeform.php:213 msgid "Share my location" -msgstr "" - -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "" +msgstr "分享我的地理位置。" #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "不要分享我的地理位置。" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" -msgstr "" +msgstr "抱歉,获取你的地理位置时间过长,请稍候重试" #. TRANS: Used in coordinates as abbreviation of north -#: lib/noticelist.php:436 +#: lib/noticelist.php:451 msgid "N" -msgstr "" +msgstr "N" #. TRANS: Used in coordinates as abbreviation of south -#: lib/noticelist.php:438 +#: lib/noticelist.php:453 msgid "S" -msgstr "" +msgstr "S" #. TRANS: Used in coordinates as abbreviation of east -#: lib/noticelist.php:440 +#: lib/noticelist.php:455 msgid "E" -msgstr "" +msgstr "E" #. TRANS: Used in coordinates as abbreviation of west -#: lib/noticelist.php:442 +#: lib/noticelist.php:457 msgid "W" -msgstr "" +msgstr "W" -#: lib/noticelist.php:444 +#: lib/noticelist.php:459 #, 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:453 +#: lib/noticelist.php:468 msgid "at" -msgstr "" +msgstr "位于" -#: lib/noticelist.php:568 -#, fuzzy +#: lib/noticelist.php:517 +msgid "web" +msgstr "网页" + +#: lib/noticelist.php:583 msgid "in context" -msgstr "没有内容!" +msgstr "查看对话" -#: lib/noticelist.php:603 +#: lib/noticelist.php:618 msgid "Repeated by" -msgstr "" +msgstr "转发来自" -#: lib/noticelist.php:630 -#, fuzzy +#: lib/noticelist.php:645 msgid "Reply to this notice" -msgstr "无法删除通告。" +msgstr "回复" -#: lib/noticelist.php:631 -#, fuzzy +#: lib/noticelist.php:646 msgid "Reply" msgstr "回复" -#: lib/noticelist.php:675 -#, fuzzy +#: lib/noticelist.php:690 msgid "Notice repeated" -msgstr "消息已发布。" +msgstr "消息已转发" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "呼叫这个用户" +msgstr "呼叫用户" #: lib/nudgeform.php:128 msgid "Nudge" msgstr "呼叫" #: lib/nudgeform.php:128 -#, fuzzy msgid "Send a nudge to this user" msgstr "呼叫这个用户" -#: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "添加个人信息出错" +#: lib/oauthstore.php:294 +msgid "Error inserting new profile." +msgstr "添加新个人信息出错。" -#: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "添加头像出错" +#: lib/oauthstore.php:302 +msgid "Error inserting avatar." +msgstr "添加头像出错。" -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "更新远程的个人信息时出错" +#: lib/oauthstore.php:322 +msgid "Error inserting remote profile." +msgstr "添加远程个人信息时出错。" -#: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "添加远程的个人信息出错" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:362 +msgid "Duplicate notice." +msgstr "复制消息。" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "删除通告" - -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:507 msgid "Couldn't insert new subscription." -msgstr "无法添加新的订阅。" +msgstr "无法添加新的关注。" -#: lib/personalgroupnav.php:99 +#: lib/personalgroupnav.php:102 msgid "Personal" -msgstr "个人" +msgstr "我的主页" -#: lib/personalgroupnav.php:104 +#: lib/personalgroupnav.php:107 msgid "Replies" msgstr "回复" -#: lib/personalgroupnav.php:114 +#: lib/personalgroupnav.php:117 msgid "Favorites" msgstr "收藏夹" -#: lib/personalgroupnav.php:125 +#: lib/personalgroupnav.php:128 msgid "Inbox" msgstr "收件箱" -#: lib/personalgroupnav.php:126 +#: lib/personalgroupnav.php:129 msgid "Your incoming messages" -msgstr "您接收的消息" +msgstr "你收到的私信" -#: lib/personalgroupnav.php:130 +#: lib/personalgroupnav.php:133 msgid "Outbox" msgstr "发件箱" -#: lib/personalgroupnav.php:131 +#: lib/personalgroupnav.php:134 msgid "Your sent messages" -msgstr "您发送的消息" +msgstr "你发送的私信" #: lib/personaltagcloudsection.php:56 -#, fuzzy, php-format +#, php-format msgid "Tags in %s's notices" -msgstr "这个组所发布的消息的标签" +msgstr "%s的消息中的标签" -#: lib/plugin.php:115 -#, fuzzy +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:121 msgid "Unknown" -msgstr "未知动作" +msgstr "未知的" #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 msgid "Subscriptions" -msgstr "订阅" +msgstr "关注的" #: lib/profileaction.php:126 msgid "All subscriptions" -msgstr "所有订阅" +msgstr "所有关注的" #: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 msgid "Subscribers" -msgstr "订阅者" +msgstr "关注者" #: lib/profileaction.php:161 -#, fuzzy msgid "All subscribers" -msgstr "订阅者" +msgstr "所有关注者" #: lib/profileaction.php:191 -#, fuzzy msgid "User ID" -msgstr "用户" +msgstr "用户 ID" #: lib/profileaction.php:196 msgid "Member since" -msgstr "用户始于" +msgstr "注册时间" #. TRANS: Average count of posts made per day since account registration #: lib/profileaction.php:235 msgid "Daily average" -msgstr "" +msgstr "日均" #: lib/profileaction.php:264 msgid "All groups" -msgstr "所有组" +msgstr "所有小组" #: lib/profileformaction.php:123 msgid "Unimplemented method." -msgstr "" +msgstr "未使用的方法。" #: lib/publicgroupnav.php:78 msgid "Public" -msgstr "公告" +msgstr "公共" #: lib/publicgroupnav.php:82 msgid "User groups" -msgstr "用户组" +msgstr "用户小组" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "" +msgstr "最近标签" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "特征" +msgstr "推荐用户" #: lib/publicgroupnav.php:92 -#, fuzzy msgid "Popular" -msgstr "用户" +msgstr "热门收藏" #: lib/redirectingaction.php:95 msgid "No return-to arguments." -msgstr "" +msgstr "没有 return-to 冲突。" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "无法删除通告。" +msgstr "转发这个消息?" #: lib/repeatform.php:132 msgid "Yes" msgstr "是" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "无法删除通告。" +msgstr "转发" #: lib/revokeroleform.php:91 #, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "" +msgstr "取消这个用户的\"%s\"权限" -#: lib/router.php:709 -msgid "No single user defined for single-user mode." -msgstr "" +#. TRANS: Client error on action trying to visit a non-existing page. +#: lib/router.php:957 +msgid "Page not found." +msgstr "没有找到页面。" #: lib/sandboxform.php:67 -#, fuzzy msgid "Sandbox" -msgstr "收件箱" +msgstr "沙盒" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "呼叫这个用户" +msgstr "将这个用户放入沙盒。" +#. TRANS: Fieldset legend for the search form. #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "搜索" +msgstr "搜索帮助" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:128 msgid "Keyword(s)" -msgstr "" +msgstr "关键词" -#: lib/searchaction.php:127 +#. TRANS: Button text for searching site. +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "搜索" -#: lib/searchaction.php:162 -#, fuzzy +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" -msgstr "搜索" +msgstr "搜索帮助" #: lib/searchgroupnav.php:80 msgid "People" @@ -6815,16 +8417,15 @@ 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 -#, fuzzy msgid "Find groups on this site" -msgstr "搜索用户信息" +msgstr "搜索本站小组" #: lib/section.php:89 msgid "Untitled section" @@ -6836,22 +8437,21 @@ msgstr "更多..." #: lib/silenceform.php:67 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 "订阅 %s" +msgstr "关注了%s的用户" #: lib/subgroupnav.php:99 #, php-format @@ -6863,222 +8463,273 @@ msgid "Invite" msgstr "邀请" #: lib/subgroupnav.php:106 -#, fuzzy, php-format +#, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "使用这个表单来邀请好友和同事加入。" +msgstr "邀请朋友和同事来%s一起和你交流" #: 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/tagcloudsection.php:56 -#, fuzzy msgid "None" -msgstr "(没有)" +msgstr "无" + +#. TRANS: Server exception displayed if a theme name was invalid. +#: lib/theme.php:74 +msgid "Invalid theme name." +msgstr "无效的主题名。" #: lib/themeuploader.php:50 msgid "This server cannot handle theme uploads without ZIP support." -msgstr "" +msgstr "服务器不支持 ZIP,无法处理上传的主题。" #: lib/themeuploader.php:58 lib/themeuploader.php:61 msgid "The theme file is missing or the upload failed." -msgstr "" +msgstr "主题文件丢失或上传失败。" #: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy +#: lib/themeuploader.php:279 lib/themeuploader.php:283 +#: lib/themeuploader.php:291 lib/themeuploader.php:298 msgid "Failed saving theme." -msgstr "更新头像失败。" +msgstr "保存主题失败" -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." -msgstr "" +msgstr "无效的主题:目录结构损坏。" #: lib/themeuploader.php:166 #, php-format -msgid "Uploaded theme is too large; must be less than %d bytes uncompressed." -msgstr "" +msgid "Uploaded theme is too large; must be less than %d byte uncompressed." +msgid_plural "" +"Uploaded theme is too large; must be less than %d bytes uncompressed." +msgstr[0] "上传的主题过大,解压后必须小于%d字节。" -#: lib/themeuploader.php:178 +#: lib/themeuploader.php:179 msgid "Invalid theme archive: missing file css/display.css" -msgstr "" +msgstr "无效的主题存档:css/display.css 文件丢失" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:219 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" +"主题包含无效的文件或文件夹的名称。请只使用 ASCII 字母,数字,下划线和减号。" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:225 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "主题包含不安全的文件扩展名,可能有危险。" + +#: lib/themeuploader.php:242 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." -msgstr "" +msgstr "主题包含不允许的”.%s“格式文件。" -#: lib/themeuploader.php:234 -#, fuzzy +#: lib/themeuploader.php:260 msgid "Error opening theme archive." -msgstr "发送消息出错。" +msgstr "打开主题文件时出错。" #: lib/topposterssection.php:74 msgid "Top posters" -msgstr "" +msgstr "灌水精英" + +#. TRANS: Title for the form to unblock a user. +#: lib/unblockform.php:67 +msgctxt "TITLE" +msgid "Unblock" +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 -#, fuzzy msgid "Unsubscribe from this user" -msgstr "取消订阅 %s" +msgstr "取消关注这个用户" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" -msgstr "退订" +msgstr "取消关注" -#: lib/usernoprofileexception.php:58 -#, fuzzy, php-format -msgid "User %s (%d) has no profile record." -msgstr "用户没有个人信息。" +#. TRANS: Exception text shown when no profile can be found for a user. +#. TRANS: %1$s is a user nickname, $2$d is a user ID (number). +#: lib/usernoprofileexception.php:60 +#, php-format +msgid "User %1$s (%2$d) has no profile record." +msgstr "用户 %1$s (%2$d) 没有个人信息记录。" -#: lib/userprofile.php:117 -#, fuzzy +#: lib/userprofile.php:119 msgid "Edit Avatar" -msgstr "头像" +msgstr "编辑头像" -#: lib/userprofile.php:234 lib/userprofile.php:248 -#, fuzzy +#: lib/userprofile.php:236 lib/userprofile.php:250 msgid "User actions" -msgstr "组动作" +msgstr "用户动作" -#: lib/userprofile.php:237 +#: lib/userprofile.php:239 msgid "User deletion in progress..." -msgstr "" +msgstr "用户删除处理中……" -#: lib/userprofile.php:263 -#, fuzzy +#: lib/userprofile.php:265 msgid "Edit profile settings" -msgstr "个人设置" +msgstr "编辑个人信息设置" -#: lib/userprofile.php:264 +#: lib/userprofile.php:266 msgid "Edit" msgstr "编辑" -#: lib/userprofile.php:287 -#, fuzzy +#: lib/userprofile.php:289 msgid "Send a direct message to this user" -msgstr "无法向此用户发送消息。" +msgstr "给该用户发送私信" -#: lib/userprofile.php:288 -#, fuzzy +#: lib/userprofile.php:290 msgid "Message" -msgstr "新消息" +msgstr "私信" -#: lib/userprofile.php:326 +#: lib/userprofile.php:331 msgid "Moderate" -msgstr "" +msgstr "审核" -#: lib/userprofile.php:364 -#, fuzzy +#: lib/userprofile.php:369 msgid "User role" -msgstr "用户组" +msgstr "用户权限" -#: lib/userprofile.php:366 +#: lib/userprofile.php:371 msgctxt "role" msgid "Administrator" -msgstr "" +msgstr "管理员" -#: lib/userprofile.php:367 +#: lib/userprofile.php:372 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "审核员" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1306 msgid "a few seconds ago" msgstr "几秒前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1309 msgid "about a minute ago" -msgstr "一分钟前" +msgstr "约1分钟前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1313 #, php-format -msgid "about %d minutes ago" -msgstr "%d 分钟前" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "约%d分钟前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1316 msgid "about an hour ago" -msgstr "一小时前" +msgstr "约1小时前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1320 #, php-format -msgid "about %d hours ago" -msgstr "%d 小时前" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "约%d小时前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1323 msgid "about a day ago" -msgstr "一天前" +msgstr "约1天前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1327 #, php-format -msgid "about %d days ago" -msgstr "%d 天前" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "约%d天前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1330 msgid "about a month ago" -msgstr "一个月前" +msgstr "约1个月前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1334 #, php-format -msgid "about %d months ago" -msgstr "%d 个月前" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "约%d个月前" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1337 msgid "about a year ago" -msgstr "一年前" +msgstr "约1年前" -#: lib/webcolor.php:82 -#, fuzzy, php-format +#: lib/webcolor.php:80 +#, php-format msgid "%s is not a valid color!" -msgstr "主页的URL不正确。" +msgstr "%s不是有效的颜色!" -#: lib/webcolor.php:123 +#. TRANS: Validation error for a web colour. +#. TRANS: %s is the provided (invalid) text for colour. +#: lib/webcolor.php:120 #, php-format -msgid "%s is not a valid color! Use 3 or 6 hex chars." +msgid "%s is not a valid color! Use 3 or 6 hex characters." +msgstr "%s不是有效的颜色!应使用3或6个十六进制字符。" + +#. TRANS: %s is the URL to the StatusNet site's Instant Messaging settings. +#: lib/xmppmanager.php:287 +#, php-format +msgid "Unknown user. Go to %s to add your address to your account" +msgstr "未知的用户。到 %s 添加你的账号的地址" + +#. TRANS: Response to XMPP source when it sent too long a message. +#. TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number. +#: lib/xmppmanager.php:406 +#, php-format +msgid "Message too long. Maximum is %1$d character, you sent %2$d." +msgid_plural "Message too long. Maximum is %1$d characters, you sent %2$d." +msgstr[0] "消息太长了,不能超过%1$d个字符,你发送的是%2$d。" + +#. TRANS: Exception. +#: lib/xrd.php:64 +msgid "Invalid XML." +msgstr "无效的 XML。" + +#. TRANS: Exception. +#: lib/xrd.php:69 +msgid "Invalid XML, missing XRD root." msgstr "" -#: lib/xmppmanager.php:403 +#. TRANS: Commandline script output. %s is the filename that contains a backup for a user. +#: scripts/restoreuser.php:61 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" +msgid "Getting backup from file '%s'." +msgstr "从文件'%s'获取备份。" + +#. TRANS: Commandline script output. +#: scripts/restoreuser.php:91 +msgid "No user specified; using backup user." +msgstr "没有用户被指定;使用备份用户。" + +#. TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. +#: scripts/restoreuser.php:98 +#, php-format +msgid "%d entry in backup." +msgid_plural "%d entries in backup." +msgstr[0] "备份中有 %d 个条目。" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 3f29e3f5bf..d9fcb3ff45 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -1,39 +1,30 @@ -# Translation of StatusNet to Traditional Chinese +# Translation of StatusNet - Core to Traditional Chinese (‪中文(繁體)‬) +# Expored from translatewiki.net # # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - Core\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-11 10:11+0000\n" -"PO-Revision-Date: 2010-08-11 10:13:29+0000\n" -"Language-Team: Traditional Chinese\n" +"POT-Creation-Date: 2010-09-18 22:06+0000\n" +"PO-Revision-Date: 2010-09-18 22:08:32+0000\n" +"Language-Team: Traditional Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hant>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r70848); Translate extension (2010-07-21)\n" +"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" -"X-Message-Group: out-statusnet\n" +"X-Message-Group: #out-statusnet-core\n" "Plural-Forms: nplurals=1; plural=0;\n" - -#. TRANS: Page title -#. TRANS: Menu item for site administration -#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376 -#, fuzzy -msgid "Access" -msgstr "接受" +"X-POT-Import-Date: 1284-74-75 38::+0000\n" #. TRANS: Page notice #: actions/accessadminpanel.php:67 msgid "Site access settings" -msgstr "" - -#. TRANS: Form legend for registration form. -#: actions/accessadminpanel.php:161 -msgid "Registration" -msgstr "" +msgstr "使用者設定發生錯誤" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 @@ -61,23 +52,13 @@ msgstr "" msgid "Disable new registrations." msgstr "" -#. TRANS: Checkbox label for disabling new user registrations. -#: actions/accessadminpanel.php:185 -msgid "Closed" -msgstr "" - -#. TRANS: Title / tooltip for button to save access settings in site admin panel -#: actions/accessadminpanel.php:202 -msgid "Save access settings" -msgstr "" - #. TRANS: Button label to save e-mail preferences. #. TRANS: Button label to save IM preferences. #. TRANS: Button label to save SMS preferences. -#. TRANS: Button label -#: actions/accessadminpanel.php:203 actions/emailsettings.php:224 -#: actions/imsettings.php:184 actions/smssettings.php:209 -#: lib/applicationeditform.php:361 +#. TRANS: Button label in the "Edit application" form. +#: actions/accessadminpanel.php:203 actions/emailsettings.php:228 +#: actions/imsettings.php:187 actions/smssettings.php:209 +#: lib/applicationeditform.php:351 msgctxt "BUTTON" msgid "Save" msgstr "" @@ -85,20 +66,20 @@ msgstr "" #. TRANS: Server error when page not found (404) #: actions/all.php:68 actions/public.php:98 actions/replies.php:93 #: actions/showfavorites.php:138 actions/tag.php:52 -#, fuzzy msgid "No such page." msgstr "無此使用者" +#. TRANS: Error text shown when trying to send a direct message to a user that does not exist. #: actions/all.php:79 actions/allrss.php:68 -#: actions/apiaccountupdatedeliverydevice.php:114 -#: actions/apiaccountupdateprofile.php:105 -#: actions/apiaccountupdateprofilebackgroundimage.php:116 -#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97 -#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77 -#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113 -#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100 -#: actions/apigroupleave.php:100 actions/apigrouplist.php:73 -#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87 +#: actions/apiaccountupdatedeliverydevice.php:115 +#: actions/apiaccountupdateprofile.php:106 +#: actions/apiaccountupdateprofilebackgroundimage.php:117 +#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98 +#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77 +#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114 +#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101 +#: actions/apigroupleave.php:101 actions/apigrouplist.php:73 +#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75 @@ -108,17 +89,11 @@ msgstr "無此使用者" #: actions/remotesubscribe.php:154 actions/replies.php:73 #: actions/repliesrss.php:38 actions/rsd.php:116 actions/showfavorites.php:105 #: actions/userbyid.php:74 actions/usergroups.php:93 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:478 lib/galleryaction.php:59 +#: actions/xrds.php:71 lib/command.php:498 lib/galleryaction.php:59 #: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "無此使用者" -#. TRANS: Page title. %1$s is user nickname, %2$d is page number -#: actions/all.php:90 -#, fuzzy, php-format -msgid "%1$s and friends, page %2$d" -msgstr "%s與好友" - #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname #. TRANS: Message is used as link title. %s is a user nickname. @@ -129,24 +104,6 @@ msgstr "%s與好友" msgid "%s and friends" msgstr "%s與好友" -#. TRANS: %1$s is user nickname -#: actions/all.php:107 -#, php-format -msgid "Feed for friends of %s (RSS 1.0)" -msgstr "" - -#. TRANS: %1$s is user nickname -#: actions/all.php:116 -#, php-format -msgid "Feed for friends of %s (RSS 2.0)" -msgstr "" - -#. TRANS: %1$s is user nickname -#: actions/all.php:125 -#, php-format -msgid "Feed for friends of %s (Atom)" -msgstr "" - #. TRANS: %1$s is user nickname #: actions/all.php:138 #, php-format @@ -176,12 +133,6 @@ msgid "" "post a notice to them." msgstr "" -#. TRANS: H1 text -#: actions/all.php:182 -#, fuzzy -msgid "You and friends" -msgstr "%s與好友" - #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name. #: actions/allrss.php:121 actions/apitimelinefriends.php:216 @@ -190,75 +141,31 @@ msgstr "%s與好友" msgid "Updates from %1$s and friends on %2$s!" msgstr "" -#: actions/apiaccountratelimitstatus.php:72 -#: actions/apiaccountupdatedeliverydevice.php:94 -#: actions/apiaccountupdateprofile.php:97 -#: actions/apiaccountupdateprofilebackgroundimage.php:94 -#: actions/apiaccountupdateprofilecolors.php:118 -#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 -#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101 -#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139 -#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156 -#: actions/apigroupleave.php:142 actions/apigrouplist.php:137 -#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107 -#: actions/apigroupshow.php:116 actions/apihelptest.php:88 -#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141 -#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271 -#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175 -#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241 -#: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161 -#: actions/apitimelineuser.php:163 actions/apiusershow.php:101 -#, fuzzy -msgid "API method not found." -msgstr "確認碼遺失" - -#: actions/apiaccountupdatedeliverydevice.php:86 -#: actions/apiaccountupdateprofile.php:89 -#: actions/apiaccountupdateprofilebackgroundimage.php:86 -#: actions/apiaccountupdateprofilecolors.php:110 -#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89 -#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109 -#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92 -#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 -#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92 -#: actions/apigroupleave.php:92 actions/apimediaupload.php:67 -#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198 +#. TRANS: Client error message. POST is a HTTP command. It should not be translated. +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: actions/apiaccountupdatedeliverydevice.php:87 +#: actions/apiaccountupdateprofile.php:90 +#: actions/apiaccountupdateprofilebackgroundimage.php:87 +#: actions/apiaccountupdateprofilecolors.php:111 +#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90 +#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110 +#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93 +#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92 +#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93 +#: actions/apigroupleave.php:93 actions/apimediaupload.php:68 +#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199 msgid "This method requires a POST." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:106 +#: actions/apiaccountupdatedeliverydevice.php:107 msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none." msgstr "" -#: actions/apiaccountupdatedeliverydevice.php:133 -#, fuzzy -msgid "Could not update user." -msgstr "無法更新使用者" - -#: actions/apiaccountupdateprofile.php:112 -#: actions/apiaccountupdateprofilebackgroundimage.php:194 -#: actions/apiaccountupdateprofilecolors.php:185 -#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108 -#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 -#: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66 -#: lib/profileaction.php:84 -msgid "User has no profile." -msgstr "" - -#: actions/apiaccountupdateprofile.php:147 -#, fuzzy -msgid "Could not save profile." -msgstr "無法儲存個人資料" - -#: actions/apiaccountupdateprofilebackgroundimage.php:108 -#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80 -#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257 +#: actions/apiaccountupdateprofilebackgroundimage.php:109 +#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81 +#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257 #: actions/designadminpanel.php:123 actions/editapplication.php:118 #: actions/newapplication.php:101 actions/newnotice.php:94 #: lib/designsettings.php:283 @@ -268,31 +175,21 @@ msgid "" "current configuration." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:136 -#: actions/apiaccountupdateprofilebackgroundimage.php:146 -#: actions/apiaccountupdateprofilecolors.php:164 -#: actions/apiaccountupdateprofilecolors.php:174 +#: actions/apiaccountupdateprofilebackgroundimage.php:137 +#: actions/apiaccountupdateprofilebackgroundimage.php:147 +#: actions/apiaccountupdateprofilecolors.php:165 +#: actions/apiaccountupdateprofilecolors.php:175 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." msgstr "" -#: actions/apiaccountupdateprofilebackgroundimage.php:187 -#: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy -msgid "Could not update your design." -msgstr "無法更新使用者" - -#: actions/apiblockcreate.php:105 -msgid "You cannot block yourself!" -msgstr "" - -#: actions/apiblockcreate.php:126 +#: actions/apiblockcreate.php:127 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:114 +#: actions/apiblockdestroy.php:115 msgid "Unblock user failed." msgstr "" @@ -316,218 +213,141 @@ msgstr "" msgid "All the direct messages sent to %s" msgstr "" -#: actions/apidirectmessagenew.php:118 +#: actions/apidirectmessagenew.php:119 msgid "No message text!" msgstr "" -#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150 +#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150 #, php-format msgid "That's too long. Max message size is %d chars." msgstr "" -#: actions/apidirectmessagenew.php:138 -#, fuzzy -msgid "Recipient user not found." -msgstr "確認碼遺失" - -#: actions/apidirectmessagenew.php:142 +#: actions/apidirectmessagenew.php:143 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110 +#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111 #: actions/apistatusesdestroy.php:121 msgid "No status found with that ID." msgstr "" -#: actions/apifavoritecreate.php:120 +#: actions/apifavoritecreate.php:121 msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:285 -#, fuzzy +#. TRANS: Error message text shown when a favorite could not be set. +#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296 msgid "Could not create favorite." -msgstr "無法儲存個人資料" +msgstr "無法更新使用者" -#: actions/apifavoritedestroy.php:123 +#: actions/apifavoritedestroy.php:124 msgid "That status is not a favorite." msgstr "" -#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87 -#, fuzzy +#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "無法更新使用者" +msgstr "無法新增訂閱" -#: actions/apifriendshipscreate.php:109 -#, fuzzy +#: actions/apifriendshipscreate.php:110 msgid "Could not follow user: profile not found." msgstr "無法儲存個人資料" -#: actions/apifriendshipscreate.php:118 -#, php-format -msgid "Could not follow user: %s is already on your list." -msgstr "" - -#: actions/apifriendshipsdestroy.php:109 +#: actions/apifriendshipsdestroy.php:110 msgid "Could not unfollow user: User not found." -msgstr "" - -#: actions/apifriendshipsdestroy.php:120 -msgid "You cannot unfollow yourself." -msgstr "" +msgstr "無法儲存個人資料" #: actions/apifriendshipsexists.php:91 msgid "Two valid IDs or screen_names must be supplied." msgstr "" -#: actions/apifriendshipsshow.php:134 -#, fuzzy -msgid "Could not determine source user." -msgstr "無法更新使用者" - -#: actions/apifriendshipsshow.php:142 -#, fuzzy -msgid "Could not find target user." -msgstr "無法更新使用者" - -#: actions/apigroupcreate.php:167 actions/editgroup.php:186 +#: actions/apigroupcreate.php:168 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:212 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "暱稱請用小寫字母或數字,勿加空格。" -#: actions/apigroupcreate.php:176 actions/editgroup.php:190 +#: actions/apigroupcreate.php:177 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:215 msgid "Nickname already in use. Try another one." msgstr "此暱稱已有人使用。再試試看別的吧。" -#: actions/apigroupcreate.php:183 actions/editgroup.php:193 -#: actions/newgroup.php:133 actions/profilesettings.php:218 -#: actions/register.php:217 -#, fuzzy -msgid "Not a valid nickname." -msgstr "無暱稱" - -#: actions/apigroupcreate.php:199 actions/editapplication.php:215 +#: actions/apigroupcreate.php:200 actions/editapplication.php:215 #: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:224 msgid "Homepage is not a valid URL." msgstr "個人首頁位址錯誤" -#: actions/apigroupcreate.php:208 actions/editgroup.php:202 +#: actions/apigroupcreate.php:209 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:227 msgid "Full name is too long (max 255 chars)." msgstr "全名過長(最多255字元)" -#: actions/apigroupcreate.php:216 actions/editapplication.php:190 +#: actions/apigroupcreate.php:217 actions/editapplication.php:190 #: actions/newapplication.php:172 -#, fuzzy, php-format +#, php-format msgid "Description is too long (max %d chars)." -msgstr "地點過長(共255個字)" +msgstr "地點過長(共%d個字)" -#: actions/apigroupcreate.php:227 actions/editgroup.php:208 +#: actions/apigroupcreate.php:228 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:234 msgid "Location is too long (max 255 chars)." msgstr "地點過長(共255個字)" -#: actions/apigroupcreate.php:246 actions/editgroup.php:219 +#: actions/apigroupcreate.php:247 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:267 -#, fuzzy, php-format -msgid "Invalid alias: \"%s\"." -msgstr "尺寸錯誤" - -#: actions/apigroupcreate.php:276 actions/editgroup.php:232 -#: actions/newgroup.php:172 -#, fuzzy, php-format -msgid "Alias \"%s\" already in use. Try another one." -msgstr "此暱稱已有人使用。再試試看別的吧。" - -#: actions/apigroupcreate.php:289 actions/editgroup.php:238 +#: actions/apigroupcreate.php:290 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" -#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105 -#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92 +#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106 +#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92 -#, fuzzy msgid "Group not found." msgstr "確認碼遺失" -#: actions/apigroupjoin.php:111 actions/joingroup.php:100 -#, fuzzy -msgid "You are already a member of that group." -msgstr "無法連結到伺服器:%s" - -#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:327 +#. TRANS: Error text shown when a user tries to join a group they are blocked from joining. +#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:139 actions/joingroup.php:134 +#. TRANS: Message given having failed to add a user to a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353 #, php-format msgid "Could not join user %1$s to group %2$s." -msgstr "" +msgstr "無法更新使用者" -#: actions/apigroupleave.php:115 -#, fuzzy -msgid "You are not a member of this group." -msgstr "無法連結到伺服器:%s" - -#: actions/apigroupleave.php:125 actions/leavegroup.php:129 +#. TRANS: Message given having failed to remove a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: actions/apigroupleave.php:126 actions/leavegroup.php:129 +#: lib/command.php:401 #, php-format msgid "Could not remove user %1$s from group %2$s." -msgstr "" - -#. TRANS: %s is a user name -#: actions/apigrouplist.php:98 -#, php-format -msgid "%s's groups" -msgstr "" - -#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s -#: actions/apigrouplist.php:108 -#, php-format -msgid "%1$s groups %2$s is a member of." -msgstr "" - -#. TRANS: Message is used as a title. %s is a site name. -#. TRANS: Message is used as a page title. %s is a nick name. -#: actions/apigrouplistall.php:92 actions/usergroups.php:63 -#, php-format -msgid "%s groups" -msgstr "" +msgstr "無法更新使用者" #: actions/apigrouplistall.php:96 #, php-format msgid "groups on %s" msgstr "" -#: actions/apimediaupload.php:99 -msgid "Upload failed." -msgstr "" - #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." msgstr "" -#: actions/apioauthauthorize.php:106 -#, fuzzy -msgid "Invalid token." -msgstr "尺寸錯誤" - #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:169 actions/disfavor.php:74 -#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55 +#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55 #: actions/groupblock.php:66 actions/grouplogo.php:312 -#: actions/groupunblock.php:66 actions/imsettings.php:227 +#: actions/groupunblock.php:66 actions/imsettings.php:230 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 @@ -541,18 +361,13 @@ msgstr "尺寸錯誤" msgid "There was a problem with your session token. Try again, please." msgstr "" -#: actions/apioauthauthorize.php:135 -#, fuzzy -msgid "Invalid nickname / password!" -msgstr "使用者名稱或密碼無效" - #: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." -msgstr "" +msgstr "個人圖像插入錯誤" #: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." -msgstr "" +msgstr "個人圖像插入錯誤" #: actions/apioauthauthorize.php:214 #, php-format @@ -571,8 +386,8 @@ msgstr "" #. TRANS: Message given submitting a form with an unknown action in SMS settings. #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:104 actions/editapplication.php:139 -#: actions/emailsettings.php:286 actions/grouplogo.php:322 -#: actions/imsettings.php:242 actions/newapplication.php:121 +#: actions/emailsettings.php:290 actions/grouplogo.php:322 +#: actions/imsettings.php:245 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:277 lib/designsettings.php:304 msgid "Unexpected form submission." @@ -594,12 +409,6 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#. TRANS: Main menu option when logged in for access to user settings -#: actions/apioauthauthorize.php:310 lib/action.php:450 -#, fuzzy -msgid "Account" -msgstr "關於" - #: actions/apioauthauthorize.php:313 actions/login.php:252 #: actions/profilesettings.php:106 actions/register.php:431 #: actions/showgroup.php:245 actions/tagother.php:94 @@ -608,13 +417,6 @@ msgstr "關於" msgid "Nickname" msgstr "暱稱" -#. TRANS: Link description in user account settings menu. -#: actions/apioauthauthorize.php:316 actions/login.php:255 -#: actions/register.php:436 lib/accountsettingsaction.php:125 -#, fuzzy -msgid "Password" -msgstr "新密碼" - #: actions/apioauthauthorize.php:328 msgid "Deny" msgstr "" @@ -635,42 +437,24 @@ msgstr "" msgid "You may not delete another user's status." msgstr "" -#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 +#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 msgid "No such notice." msgstr "無此通知" -#: actions/apistatusesretweet.php:83 -msgid "Cannot repeat your own notice." -msgstr "" - -#: actions/apistatusesretweet.php:91 -msgid "Already repeated that notice." -msgstr "" - -#: actions/apistatusesshow.php:139 -msgid "Status deleted." -msgstr "" - #: actions/apistatusesshow.php:145 msgid "No status with that ID found." msgstr "" -#: actions/apistatusesupdate.php:221 +#: actions/apistatusesupdate.php:222 msgid "Client must provide a 'status' parameter with a value." msgstr "" -#: actions/apistatusesupdate.php:242 actions/newnotice.php:155 -#: lib/mailhandler.php:60 -#, php-format -msgid "That's too long. Max notice size is %d chars." -msgstr "" - -#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96 +#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96 msgid "Not found." -msgstr "" +msgstr "確認碼遺失" -#: actions/apistatusesupdate.php:306 actions/newnotice.php:178 +#: actions/apistatusesupdate.php:307 actions/newnotice.php:181 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -679,21 +463,6 @@ msgstr "" msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:110 -#, fuzzy, php-format -msgid "%1$s / Favorites from %2$s" -msgstr "%1$s的狀態是%2$s" - -#: actions/apitimelinefavorites.php:119 -#, php-format -msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "" - -#: actions/apitimelinementions.php:118 -#, fuzzy, php-format -msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s的狀態是%2$s" - #: actions/apitimelinementions.php:131 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." @@ -724,18 +493,7 @@ msgstr "" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:107 actions/tagrss.php:65 -#, php-format -msgid "Updates tagged with %1$s on %2$s!" -msgstr "" - -#: actions/apitrends.php:87 -#, fuzzy -msgid "API method under construction." -msgstr "確認碼遺失" - #: actions/attachment.php:73 -#, fuzzy msgid "No such attachment." msgstr "無此通知" @@ -774,7 +532,7 @@ msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:254 msgid "Avatar settings" -msgstr "" +msgstr "使用者設定發生錯誤" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:202 actions/grouplogo.php:262 @@ -819,21 +577,10 @@ msgstr "更新個人圖像" msgid "Failed updating avatar." msgstr "無法上傳個人圖像" -#: actions/avatarsettings.php:397 -#, fuzzy -msgid "Avatar deleted." -msgstr "更新個人圖像" - #: actions/block.php:69 -#, fuzzy msgid "You already blocked that user." msgstr "此Jabber ID已有人使用" -#: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158 -#, fuzzy -msgid "Block user" -msgstr "無此使用者" - #: actions/block.php:138 msgid "" "Are you sure you want to block this user? Afterwards, they will be " @@ -857,7 +604,7 @@ msgstr "" #. TRANS: Submit button title for 'No' when deleting a user. #: actions/block.php:157 actions/deleteuser.php:156 msgid "Do not block this user" -msgstr "" +msgstr "此Jabber ID已有人使用" #. TRANS: Button label on the user block form. #. TRANS: Button label on the delete application form. @@ -871,15 +618,12 @@ msgctxt "BUTTON" msgid "Yes" msgstr "" -#. TRANS: Submit button title for 'Yes' when blocking a user. -#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80 -msgid "Block this user" -msgstr "" - #: actions/block.php:187 msgid "Failed to save block information." msgstr "" +#. TRANS: Command exception text shown when a group is requested that does not exist. +#. TRANS: Error text shown when trying to leave a group that does not exist. #: actions/blockedfromgroup.php:80 actions/blockedfromgroup.php:87 #: actions/editgroup.php:100 actions/foafgroup.php:44 actions/foafgroup.php:62 #: actions/foafgroup.php:69 actions/groupblock.php:86 actions/groupbyid.php:83 @@ -889,38 +633,20 @@ msgstr "" #: actions/groupunblock.php:86 actions/joingroup.php:82 #: actions/joingroup.php:93 actions/leavegroup.php:82 #: actions/leavegroup.php:93 actions/makeadmin.php:86 -#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:166 -#: lib/command.php:368 -#, fuzzy +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:170 +#: lib/command.php:383 msgid "No such group." msgstr "無此使用者" -#: actions/blockedfromgroup.php:97 -#, php-format -msgid "%s blocked profiles" -msgstr "" - -#: actions/blockedfromgroup.php:100 -#, php-format -msgid "%1$s blocked profiles, page %2$d" -msgstr "" - #: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:288 -msgid "Unblock user from group" -msgstr "" - -#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +#. TRANS: Title for the form to unblock a user. +#: actions/blockedfromgroup.php:320 lib/unblockform.php:70 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 -msgid "Unblock this user" -msgstr "" - #. TRANS: Title for mini-posting window loaded from bookmarklet. #: actions/bookmarklet.php:51 #, php-format @@ -935,32 +661,21 @@ msgstr "無確認碼" msgid "Confirmation code not found." msgstr "確認碼遺失" -#: actions/confirmaddress.php:85 -#, fuzzy -msgid "That confirmation code is not for you!" -msgstr "確認碼遺失" - #. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'. #: actions/confirmaddress.php:91 #, php-format msgid "Unrecognized address type %s." msgstr "" -#. TRANS: Client error for an already confirmed email/jabbel/sms address. -#: actions/confirmaddress.php:96 -#, fuzzy -msgid "That address has already been confirmed." -msgstr "此電子信箱已註冊過了" - #. TRANS: Server error thrown on database error updating e-mail preferences. #. TRANS: Server error thrown on database error removing a registered e-mail address. #. TRANS: Server error thrown on database error updating IM preferences. #. TRANS: Server error thrown on database error removing a registered IM address. #. TRANS: Server error thrown on database error updating SMS preferences. #. TRANS: Server error thrown on database error removing a registered SMS phone number. -#: actions/confirmaddress.php:116 actions/emailsettings.php:327 -#: actions/emailsettings.php:473 actions/imsettings.php:280 -#: actions/imsettings.php:439 actions/othersettings.php:174 +#: actions/confirmaddress.php:116 actions/emailsettings.php:331 +#: actions/emailsettings.php:477 actions/imsettings.php:283 +#: actions/imsettings.php:442 actions/othersettings.php:174 #: actions/profilesettings.php:283 actions/smssettings.php:308 #: actions/smssettings.php:464 msgid "Couldn't update user." @@ -968,13 +683,12 @@ msgstr "無法更新使用者" #. TRANS: Server error thrown on database error canceling e-mail address confirmation. #. TRANS: Server error thrown on database error canceling SMS phone number confirmation. -#: actions/confirmaddress.php:128 actions/emailsettings.php:433 +#: actions/confirmaddress.php:128 actions/emailsettings.php:437 #: actions/smssettings.php:422 msgid "Couldn't delete email confirmation." msgstr "無法取消信箱確認" #: actions/confirmaddress.php:146 -#, fuzzy msgid "Confirm address" msgstr "確認" @@ -983,41 +697,30 @@ msgstr "確認" msgid "The address \"%s\" has been confirmed for your account." msgstr "" -#: actions/conversation.php:99 -#, fuzzy -msgid "Conversation" -msgstr "地點" - #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:229 lib/searchgroupnav.php:82 -#, fuzzy msgid "Notices" -msgstr "新訊息" +msgstr "無此通知" #: actions/deleteapplication.php:63 msgid "You must be logged in to delete an application." -msgstr "" - -#: actions/deleteapplication.php:71 -#, fuzzy -msgid "Application not found." -msgstr "確認碼遺失" +msgstr "無法取消信箱確認" #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "無法連結到伺服器:%s" +msgstr "無法取消信箱確認" +#. TRANS: Client error text when there is a problem with the session token. #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1263 +#: lib/action.php:1315 msgid "There was a problem with your session token." msgstr "" #: actions/deleteapplication.php:123 actions/deleteapplication.php:147 msgid "Delete application" -msgstr "" +msgstr "無法取消信箱確認" #: actions/deleteapplication.php:149 msgid "" @@ -1029,28 +732,11 @@ msgstr "" #. TRANS: Submit button title for 'No' when deleting an application. #: actions/deleteapplication.php:158 msgid "Do not delete this application" -msgstr "" +msgstr "無法取消信箱確認" #. TRANS: Submit button title for 'Yes' when deleting an application. #: actions/deleteapplication.php:164 msgid "Delete this application" -msgstr "" - -#. TRANS: Client error message thrown when trying to access the admin panel while not logged in. -#: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 -#: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 -#: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89 -#: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96 -#: actions/tagother.php:33 actions/unsubscribe.php:52 -#: lib/adminpanelaction.php:73 lib/profileformaction.php:64 -#: lib/settingsaction.php:72 -#, fuzzy -msgid "Not logged in." -msgstr "已登入" - -#: actions/deletenotice.php:71 -#, fuzzy -msgid "Can't delete this notice." msgstr "無法取消信箱確認" #: actions/deletenotice.php:103 @@ -1059,34 +745,15 @@ msgid "" "be undone." msgstr "" -#: actions/deletenotice.php:109 actions/deletenotice.php:141 -#, fuzzy -msgid "Delete notice" -msgstr "新訊息" - #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" msgstr "" -#. TRANS: Submit button title for 'No' when deleting a notice. -#: actions/deletenotice.php:151 -msgid "Do not delete this notice" -msgstr "" - #. TRANS: Submit button title for 'Yes' when deleting a notice. #: actions/deletenotice.php:158 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" -#: actions/deleteuser.php:67 -#, fuzzy -msgid "You cannot delete users." -msgstr "無法更新使用者" - -#: actions/deleteuser.php:74 -msgid "You can only delete local users." -msgstr "" - #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" msgstr "" @@ -1100,12 +767,11 @@ msgstr "" #. TRANS: Submit button title for 'Yes' when deleting a user. #: actions/deleteuser.php:163 lib/deleteuserform.php:77 msgid "Delete this user" -msgstr "" +msgstr "註冊確認" #. TRANS: Message used as title for design settings for the site. #. TRANS: Link description in user account settings menu. #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139 -#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1113,42 +779,18 @@ msgstr "" msgid "Design settings for this StatusNet site." msgstr "" -#: actions/designadminpanel.php:318 -#, fuzzy -msgid "Invalid logo URL." -msgstr "尺寸錯誤" - -#: actions/designadminpanel.php:322 -#, php-format -msgid "Theme not available: %s." -msgstr "" - #: actions/designadminpanel.php:426 -#, fuzzy msgid "Change logo" msgstr "更改" #: actions/designadminpanel.php:431 msgid "Site logo" -msgstr "" - -#: actions/designadminpanel.php:443 -#, fuzzy -msgid "Change theme" msgstr "更改" -#: actions/designadminpanel.php:460 -msgid "Site theme" -msgstr "" - #: actions/designadminpanel.php:461 msgid "Theme for the site." msgstr "" -#: actions/designadminpanel.php:467 -msgid "Custom theme" -msgstr "" - #: actions/designadminpanel.php:471 msgid "You can upload a custom StatusNet theme as a .ZIP archive." msgstr "" @@ -1188,14 +830,8 @@ msgid "Tile background image" msgstr "" #: actions/designadminpanel.php:564 lib/designsettings.php:170 -#, fuzzy msgid "Change colours" -msgstr "更改密碼" - -#: actions/designadminpanel.php:587 lib/designsettings.php:191 -#, fuzzy -msgid "Content" -msgstr "連結" +msgstr "更改" #: actions/designadminpanel.php:600 lib/designsettings.php:204 msgid "Sidebar" @@ -1205,11 +841,6 @@ msgstr "" msgid "Text" msgstr "" -#: actions/designadminpanel.php:626 lib/designsettings.php:230 -#, fuzzy -msgid "Links" -msgstr "登入" - #: actions/designadminpanel.php:651 msgid "Advanced" msgstr "" @@ -1230,13 +861,13 @@ msgstr "" msgid "Reset back to default" msgstr "" -#. TRANS: Submit button title +#. TRANS: Submit button title. #: actions/designadminpanel.php:685 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245 #: actions/subscriptions.php:226 actions/tagother.php:154 -#: actions/useradminpanel.php:294 lib/applicationeditform.php:363 +#: actions/useradminpanel.php:294 lib/applicationeditform.php:353 #: lib/designsettings.php:256 lib/groupeditform.php:202 msgid "Save" msgstr "" @@ -1254,23 +885,14 @@ msgid "Add to favorites" msgstr "" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" msgstr "無此通知" -#: actions/editapplication.php:54 -msgid "Edit Application" -msgstr "" - -#: actions/editapplication.php:66 -msgid "You must be logged in to edit an application." -msgstr "" - #: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 -#, fuzzy msgid "No such application." -msgstr "無此通知" +msgstr "無此使用者" #: actions/editapplication.php:161 msgid "Use this form to edit your application." @@ -1280,38 +902,14 @@ msgstr "" msgid "Name is required." msgstr "" -#: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy -msgid "Name is too long (max 255 chars)." -msgstr "全名過長(最多255字元)" - -#: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy -msgid "Name already in use. Try another one." -msgstr "此暱稱已有人使用。再試試看別的吧。" - -#: actions/editapplication.php:186 actions/newapplication.php:168 -msgid "Description is required." -msgstr "" - #: actions/editapplication.php:194 msgid "Source URL is too long." msgstr "" -#: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy -msgid "Source URL is not valid." -msgstr "個人首頁位址錯誤" - #: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." msgstr "" -#: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy -msgid "Organization is too long (max 255 chars)." -msgstr "地點過長(共255個字)" - #: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." msgstr "" @@ -1325,19 +923,14 @@ msgid "Callback URL is not valid." msgstr "" #: actions/editapplication.php:258 -#, fuzzy msgid "Could not update application." -msgstr "無法更新使用者" +msgstr "無法取消信箱確認" #: actions/editgroup.php:56 #, php-format msgid "Edit %s group" msgstr "" -#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 -msgid "You must be logged in to create a group." -msgstr "" - #: actions/editgroup.php:107 actions/editgroup.php:172 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 msgid "You must be an admin to edit the group." @@ -1348,23 +941,17 @@ msgid "Use this form to edit the group." msgstr "" #: actions/editgroup.php:205 actions/newgroup.php:145 -#, fuzzy, php-format +#, php-format msgid "description is too long (max %d chars)." msgstr "地點過長(共255個字)" #: actions/editgroup.php:228 actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" -msgstr "" - -#: actions/editgroup.php:258 -#, fuzzy -msgid "Could not update group." -msgstr "無法更新使用者" +msgstr "尺寸錯誤" #. TRANS: Server exception thrown when creating group aliases failed. #: actions/editgroup.php:264 classes/User_group.php:514 -#, fuzzy msgid "Could not create aliases." msgstr "無法更新使用者" @@ -1374,7 +961,6 @@ msgstr "" #. TRANS: Title for e-mail settings. #: actions/emailsettings.php:61 -#, fuzzy msgid "Email settings" msgstr "使用者設定發生錯誤" @@ -1385,240 +971,111 @@ msgstr "使用者設定發生錯誤" msgid "Manage how you get email from %%site.name%%." msgstr "" -#. TRANS: Form legend for e-mail settings form. -#. TRANS: Field label for e-mail address input in e-mail settings form. -#: actions/emailsettings.php:106 actions/emailsettings.php:132 -#, fuzzy -msgid "Email address" -msgstr "確認信箱" - -#. TRANS: Form note in e-mail settings form. -#: actions/emailsettings.php:112 -#, fuzzy -msgid "Current confirmed email address." -msgstr "目前已確認的Jabber/Gtalk地址" - #. TRANS: Button label to remove a confirmed e-mail address. #. TRANS: Button label for removing a set sender e-mail address to post notices from. #. TRANS: Button label to remove a confirmed IM address. #. TRANS: Button label to remove a confirmed SMS address. #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from. -#: actions/emailsettings.php:115 actions/emailsettings.php:158 +#: actions/emailsettings.php:115 actions/emailsettings.php:162 #: actions/imsettings.php:116 actions/smssettings.php:124 #: actions/smssettings.php:180 msgctxt "BUTTON" msgid "Remove" msgstr "" -#: actions/emailsettings.php:122 -#, fuzzy -msgid "" -"Awaiting confirmation on this address. Check your inbox (and spam box!) for " -"a message with further instructions." -msgstr "" -"等待確認此信箱。看看你的Jabber/GTalk是否有訊息指示下一步動作。(你加入%s到你的" -"好友清單了嗎?)" - -#. TRANS: Button label to cancel an e-mail address confirmation procedure. -#. TRANS: Button label to cancel an IM address confirmation procedure. -#. TRANS: Button label to cancel a SMS address confirmation procedure. -#. TRANS: Button label -#: actions/emailsettings.php:127 actions/imsettings.php:131 -#: actions/smssettings.php:137 lib/applicationeditform.php:357 -#, fuzzy -msgctxt "BUTTON" -msgid "Cancel" -msgstr "取消" - -#. TRANS: Instructions for e-mail address input form. -#: actions/emailsettings.php:135 +#. TRANS: Instructions for e-mail address input form. Do not translate +#. TRANS: "example.org". It is one of the domain names reserved for +#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt. +#. TRANS: Any other domain may be owned by a legitimate person or +#. TRANS: organization. +#: actions/emailsettings.php:139 msgid "Email address, like \"UserName@example.org\"" msgstr "" -#. TRANS: Button label for adding an e-mail address in e-mail settings form. -#. TRANS: Button label for adding an IM address in IM settings form. -#. TRANS: Button label for adding a SMS phone number in SMS settings form. -#: actions/emailsettings.php:139 actions/imsettings.php:148 -#: actions/smssettings.php:162 -msgctxt "BUTTON" -msgid "Add" -msgstr "" - #. TRANS: Form legend for incoming e-mail settings form. #. TRANS: Form legend for incoming SMS settings form. -#: actions/emailsettings.php:147 actions/smssettings.php:171 +#: actions/emailsettings.php:151 actions/smssettings.php:171 msgid "Incoming email" msgstr "" #. TRANS: Form instructions for incoming e-mail form in e-mail settings. #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings. -#: actions/emailsettings.php:155 actions/smssettings.php:178 +#: actions/emailsettings.php:159 actions/smssettings.php:178 msgid "Send email to this address to post new notices." msgstr "" #. TRANS: Instructions for incoming e-mail address input form. #. TRANS: Instructions for incoming SMS e-mail address input form. -#: actions/emailsettings.php:164 actions/smssettings.php:186 +#: actions/emailsettings.php:168 actions/smssettings.php:186 msgid "Make a new email address for posting to; cancels the old one." msgstr "" #. TRANS: Button label for adding an e-mail address to send notices from. #. TRANS: Button label for adding an SMS e-mail address to send notices from. -#: actions/emailsettings.php:168 actions/smssettings.php:189 +#: actions/emailsettings.php:172 actions/smssettings.php:189 msgctxt "BUTTON" msgid "New" msgstr "" -#. TRANS: Form legend for e-mail preferences form. -#: actions/emailsettings.php:174 -msgid "Email preferences" -msgstr "" - #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:180 +#: actions/emailsettings.php:184 msgid "Send me notices of new subscriptions through email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:186 +#: actions/emailsettings.php:190 msgid "Send me email when someone adds my notice as a favorite." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:193 +#: actions/emailsettings.php:197 msgid "Send me email when someone sends me a private message." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:199 +#: actions/emailsettings.php:203 msgid "Send me email when someone sends me an \"@-reply\"." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:205 +#: actions/emailsettings.php:209 msgid "Allow friends to nudge me and send me an email." msgstr "" #. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:212 +#: actions/emailsettings.php:216 msgid "I want to post notices by email." msgstr "" -#. TRANS: Checkbox label in e-mail preferences form. -#: actions/emailsettings.php:219 -#, fuzzy -msgid "Publish a MicroID for my email address." -msgstr "請輸入暱稱或電子信箱" - #. TRANS: Confirmation message for successful e-mail preferences save. -#: actions/emailsettings.php:334 +#: actions/emailsettings.php:338 msgid "Email preferences saved." msgstr "" -#. TRANS: Message given saving e-mail address without having provided one. -#: actions/emailsettings.php:353 -#, fuzzy -msgid "No email address." -msgstr "此信箱無效" - -#. TRANS: Message given saving e-mail address that cannot be normalised. -#: actions/emailsettings.php:361 -#, fuzzy -msgid "Cannot normalize that email address" -msgstr "此JabberID錯誤" - #. TRANS: Message given saving e-mail address that not valid. -#: actions/emailsettings.php:366 actions/register.php:208 +#: actions/emailsettings.php:370 actions/register.php:208 #: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "此信箱無效" -#. TRANS: Message given saving e-mail address that is already set. -#: actions/emailsettings.php:370 -#, fuzzy -msgid "That is already your email address." -msgstr "此信箱無效" - -#. TRANS: Message given saving e-mail address that is already set for another user. -#: actions/emailsettings.php:374 -#, fuzzy -msgid "That email address already belongs to another user." -msgstr "此Jabber ID已有人使用" - #. TRANS: Server error thrown on database error adding e-mail confirmation code. #. TRANS: Server error thrown on database error adding IM confirmation code. #. TRANS: Server error thrown on database error adding SMS confirmation code. -#: actions/emailsettings.php:391 actions/imsettings.php:348 +#: actions/emailsettings.php:395 actions/imsettings.php:351 #: actions/smssettings.php:373 msgid "Couldn't insert confirmation code." msgstr "無法輸入確認碼" -#. TRANS: Message given saving valid e-mail address that is to be confirmed. -#: actions/emailsettings.php:398 -#, fuzzy -msgid "" -"A confirmation code was sent to the email address you added. Check your " -"inbox (and spam box!) for the code and instructions on how to use it." -msgstr "確認信已寄到你的線上即時通信箱。%s送給你得訊息要先經過你的認可。" - -#. TRANS: Message given canceling e-mail address confirmation that is not pending. -#. TRANS: Message given canceling IM address confirmation that is not pending. -#. TRANS: Message given canceling SMS phone number confirmation that is not pending. -#: actions/emailsettings.php:419 actions/imsettings.php:383 -#: actions/smssettings.php:408 -#, fuzzy -msgid "No pending confirmation to cancel." -msgstr "無確認碼" - -#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address. -#: actions/emailsettings.php:424 -#, fuzzy -msgid "That is the wrong email address." -msgstr "請輸入暱稱或電子信箱" - #. TRANS: Message given after successfully canceling e-mail address confirmation. -#: actions/emailsettings.php:438 -#, fuzzy +#: actions/emailsettings.php:442 msgid "Email confirmation cancelled." msgstr "無確認碼" -#. TRANS: Message given trying to remove an e-mail address that is not -#. TRANS: registered for the active user. -#: actions/emailsettings.php:458 -#, fuzzy -msgid "That is not your email address." -msgstr "請輸入暱稱或電子信箱" - -#. TRANS: Message given after successfully removing a registered e-mail address. -#: actions/emailsettings.php:479 -#, fuzzy -msgid "The email address was removed." -msgstr "此電子信箱已註冊過了" - -#: actions/emailsettings.php:493 actions/smssettings.php:568 -#, fuzzy -msgid "No incoming email address." -msgstr "此信箱無效" - -#. TRANS: Server error thrown on database error removing incoming e-mail address. -#. TRANS: Server error thrown on database error adding incoming e-mail address. -#: actions/emailsettings.php:504 actions/emailsettings.php:528 -#: actions/smssettings.php:578 actions/smssettings.php:602 -#, fuzzy -msgid "Couldn't update user record." -msgstr "無法更新使用者" - #. TRANS: Message given after successfully removing an incoming e-mail address. -#: actions/emailsettings.php:508 actions/smssettings.php:581 +#: actions/emailsettings.php:512 actions/smssettings.php:581 msgid "Incoming email address removed." msgstr "" -#. TRANS: Message given after successfully adding an incoming e-mail address. -#: actions/emailsettings.php:532 actions/smssettings.php:605 -#, fuzzy -msgid "New incoming email address added." -msgstr "此信箱無效" - #: actions/favor.php:79 msgid "This notice is already a favorite!" msgstr "" @@ -1627,17 +1084,6 @@ msgstr "" msgid "Disfavor favorite" msgstr "" -#: actions/favorited.php:65 lib/popularnoticesection.php:91 -#: lib/publicgroupnav.php:93 -#, fuzzy -msgid "Popular notices" -msgstr "無此通知" - -#: actions/favorited.php:67 -#, php-format -msgid "Popular notices, page %d" -msgstr "" - #: actions/favorited.php:79 msgid "The most popular notices on the site right now." msgstr "" @@ -1665,11 +1111,6 @@ msgstr "" msgid "%s's favorite notices" msgstr "" -#: actions/favoritesrss.php:115 -#, php-format -msgid "Updates favored by %1$s on %2$s!" -msgstr "" - #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" @@ -1686,22 +1127,20 @@ msgid "A selection of some great users on %s" msgstr "" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." msgstr "無此通知" #: actions/file.php:38 -#, fuzzy msgid "No notice." msgstr "無此通知" #: actions/file.php:42 msgid "No attachments." -msgstr "" +msgstr "無此通知" #: actions/file.php:51 msgid "No uploaded attachments." -msgstr "" +msgstr "無此通知" #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1711,11 +1150,6 @@ msgstr "" msgid "User being listened to does not exist." msgstr "" -#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 -#, fuzzy -msgid "You can use the local subscription!" -msgstr "無法新增訂閱" - #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." msgstr "" @@ -1724,42 +1158,18 @@ msgstr "" msgid "You are not authorized." msgstr "" -#: actions/finishremotesubscribe.php:113 -msgid "Could not convert request token to access token." -msgstr "" - #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." msgstr "" -#: actions/finishremotesubscribe.php:138 -#, fuzzy -msgid "Error updating remote profile." -msgstr "更新遠端個人資料發生錯誤" - -#: actions/getfile.php:79 -#, fuzzy -msgid "No such file." -msgstr "無此通知" - #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." msgstr "無法儲存個人資料" -#: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy -msgid "Invalid role." -msgstr "尺寸錯誤" - #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" -#: actions/grantrole.php:75 -msgid "You cannot grant user roles on this site." -msgstr "" - #: actions/grantrole.php:82 msgid "User already has this role." msgstr "" @@ -1785,19 +1195,6 @@ msgstr "" msgid "Only an admin can block group members." msgstr "" -#: actions/groupblock.php:95 -msgid "User is already blocked from group." -msgstr "" - -#: actions/groupblock.php:100 -#, fuzzy -msgid "User is not a member of group." -msgstr "無法連結到伺服器:%s" - -#: actions/groupblock.php:134 actions/groupmembers.php:360 -msgid "Block user from group" -msgstr "" - #: actions/groupblock.php:160 #, php-format msgid "" @@ -1806,24 +1203,13 @@ msgid "" "the group in the future." msgstr "" -#. TRANS: Submit button title for 'No' when blocking a user from a group. -#: actions/groupblock.php:182 -msgid "Do not block this user from this group" -msgstr "" - -#. TRANS: Submit button title for 'Yes' when blocking a user from a group. -#: actions/groupblock.php:189 -msgid "Block this user from this group" -msgstr "" - #: actions/groupblock.php:206 msgid "Database error blocking user from group." msgstr "" #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "查無此Jabber ID" +msgstr "無此通知" #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." @@ -1839,20 +1225,10 @@ msgid "" "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 -#: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy -msgid "Couldn't update your design." -msgstr "無法更新使用者" - #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:142 actions/grouplogo.php:195 -msgid "Group logo" -msgstr "" - #: actions/grouplogo.php:153 #, php-format msgid "" @@ -1863,47 +1239,40 @@ msgstr "" msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:399 -#, fuzzy -msgid "Logo updated." -msgstr "更新個人圖像" - -#: actions/grouplogo.php:401 -#, fuzzy -msgid "Failed updating logo." -msgstr "無法上傳個人圖像" - -#: actions/groupmembers.php:100 lib/groupnav.php:92 -#, php-format -msgid "%s group members" -msgstr "" - -#: actions/groupmembers.php:103 +#. TRANS: Title of the page showing group members. +#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list. +#: actions/groupmembers.php:107 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:118 +#: actions/groupmembers.php:122 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/groupnav.php:107 +#: actions/groupmembers.php:186 msgid "Admin" msgstr "" -#: actions/groupmembers.php:392 lib/blockform.php:69 +#. TRANS: Button text for the form that will block a user from a group. +#: actions/groupmembers.php:399 +msgctxt "BUTTON" msgid "Block" msgstr "" -#: actions/groupmembers.php:487 +#: actions/groupmembers.php:498 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Button text for the form that will make a user administrator. +#: actions/groupmembers.php:533 +msgctxt "BUTTON" msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:519 +#. TRANS: Submit button title. +#: actions/groupmembers.php:537 +msgctxt "TOOLTIP" msgid "Make this user an admin" msgstr "" @@ -1916,12 +1285,6 @@ msgstr "" msgid "%s timeline" msgstr "" -#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name. -#: actions/grouprss.php:142 -#, php-format -msgid "Updates from members of %1$s on %2$s!" -msgstr "" - #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" @@ -1942,10 +1305,6 @@ msgid "" "%%%%)" msgstr "" -#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122 -msgid "Create a new group" -msgstr "" - #: actions/groupsearch.php:52 #, php-format msgid "" @@ -1957,11 +1316,6 @@ msgstr "" msgid "Group search" msgstr "" -#: actions/groupsearch.php:79 actions/noticesearch.php:117 -#: actions/peoplesearch.php:83 -msgid "No results." -msgstr "" - #: actions/groupsearch.php:82 #, php-format msgid "" @@ -1984,14 +1338,8 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy -msgid "Error removing the block." -msgstr "儲存使用者發生錯誤" - #. TRANS: Title for instance messaging settings. #: actions/imsettings.php:60 -#, fuzzy msgid "IM settings" msgstr "使用者設定發生錯誤" @@ -2005,16 +1353,11 @@ msgid "" "doc.im%%). Configure your address and settings below." msgstr "" -#. TRANS: Message given in the IM settings if XMPP is not enabled on the site. -#: actions/imsettings.php:94 -msgid "IM is not available." -msgstr "" - #. TRANS: Form legend for IM settings form. #. TRANS: Field label for IM address input in IM settings form. #: actions/imsettings.php:106 actions/imsettings.php:136 msgid "IM address" -msgstr "" +msgstr "確認" #: actions/imsettings.php:113 msgid "Current confirmed Jabber/GTalk address." @@ -2033,7 +1376,10 @@ msgstr "" #. TRANS: IM address input field instructions in IM settings form. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:140 +#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by +#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate +#. TRANS: person or organization. +#: actions/imsettings.php:143 #, php-format msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " @@ -2041,65 +1387,53 @@ msgid "" msgstr "" #. TRANS: Form legend for IM preferences form. -#: actions/imsettings.php:155 +#: actions/imsettings.php:158 msgid "IM preferences" msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:160 +#: actions/imsettings.php:163 msgid "Send me notices through Jabber/GTalk." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:166 +#: actions/imsettings.php:169 msgid "Post a notice when my Jabber/GTalk status changes." msgstr "" #. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:172 +#: actions/imsettings.php:175 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -#. TRANS: Checkbox label in IM preferences form. -#: actions/imsettings.php:179 -#, fuzzy -msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "目前已確認的Jabber/Gtalk地址" - #. TRANS: Confirmation message for successful IM preferences save. -#: actions/imsettings.php:287 actions/othersettings.php:180 +#: actions/imsettings.php:290 actions/othersettings.php:180 msgid "Preferences saved." msgstr "" #. TRANS: Message given saving IM address without having provided one. -#: actions/imsettings.php:309 +#: actions/imsettings.php:312 msgid "No Jabber ID." msgstr "查無此Jabber ID" #. TRANS: Message given saving IM address that cannot be normalised. -#: actions/imsettings.php:317 +#: actions/imsettings.php:320 msgid "Cannot normalize that Jabber ID" msgstr "此JabberID錯誤" #. TRANS: Message given saving IM address that not valid. -#: actions/imsettings.php:322 +#: actions/imsettings.php:325 msgid "Not a valid Jabber ID" msgstr "此JabberID無效" -#. TRANS: Message given saving IM address that is already set. -#: actions/imsettings.php:326 -#, fuzzy -msgid "That is already your Jabber ID." -msgstr "此JabberID無效" - #. TRANS: Message given saving IM address that is already set for another user. -#: actions/imsettings.php:330 +#: actions/imsettings.php:333 msgid "Jabber ID already belongs to another user." msgstr "此Jabber ID已有人使用" #. TRANS: Message given saving valid IM address that is to be confirmed. #. TRANS: %s is the IM address set for the site. -#: actions/imsettings.php:358 +#: actions/imsettings.php:361 #, php-format msgid "" "A confirmation code was sent to the IM address you added. You must approve %" @@ -2107,31 +1441,17 @@ msgid "" msgstr "確認信已寄到你的線上即時通信箱。%s送給你得訊息要先經過你的認可。" #. TRANS: Message given canceling IM address confirmation for the wrong IM address. -#: actions/imsettings.php:388 +#: actions/imsettings.php:391 msgid "That is the wrong IM address." msgstr "" -#. TRANS: Server error thrown on database error canceling IM address confirmation. -#: actions/imsettings.php:397 -#, fuzzy -msgid "Couldn't delete IM confirmation." -msgstr "無法取消信箱確認" - #. TRANS: Message given after successfully canceling IM address confirmation. -#: actions/imsettings.php:402 -#, fuzzy +#: actions/imsettings.php:405 msgid "IM confirmation cancelled." msgstr "無確認碼" -#. TRANS: Message given trying to remove an IM address that is not -#. TRANS: registered for the active user. -#: actions/imsettings.php:424 -#, fuzzy -msgid "That is not your Jabber ID." -msgstr "查無此Jabber ID" - #. TRANS: Message given after successfully removing a registered IM address. -#: actions/imsettings.php:447 +#: actions/imsettings.php:450 msgid "The IM address was removed." msgstr "" @@ -2153,16 +1473,6 @@ msgstr "" msgid "Invites have been disabled." msgstr "" -#: actions/invite.php:41 -#, php-format -msgid "You must be logged in to invite other users to use %s." -msgstr "" - -#: actions/invite.php:72 -#, fuzzy, php-format -msgid "Invalid email address: %s" -msgstr "此信箱無效" - #: actions/invite.php:110 msgid "Invitation(s) sent" msgstr "" @@ -2171,14 +1481,9 @@ msgstr "" msgid "Invite new users" msgstr "" -#: actions/invite.php:128 -#, fuzzy -msgid "You are already subscribed to these users:" -msgstr "此帳號已註冊" - #. TRANS: Whois output. #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL. -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:414 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:430 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2203,11 +1508,6 @@ msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" -#: actions/invite.php:187 -#, fuzzy -msgid "Email addresses" -msgstr "此電子信箱已註冊過了" - #: actions/invite.php:189 msgid "Addresses of friends to invite (one per line)" msgstr "" @@ -2226,12 +1526,6 @@ msgctxt "BUTTON" msgid "Send" msgstr "" -#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. -#: actions/invite.php:228 -#, fuzzy, php-format -msgid "%1$s has invited you to join them on %2$s" -msgstr "現在%1$s在%2$s成為你的粉絲囉" - #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English. #: actions/invite.php:231 #, php-format @@ -2268,14 +1562,7 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy -msgid "No nickname or ID." -msgstr "無暱稱" - -#. TRANS: Message given having added a user to a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/joingroup.php:141 lib/command.php:346 +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2284,18 +1571,6 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:373 -#, fuzzy -msgid "You are not a member of that group." -msgstr "無法連結到伺服器:%s" - -#. TRANS: Message given having removed a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: actions/leavegroup.php:137 lib/command.php:392 -#, fuzzy, php-format -msgid "%1$s left group %2$s" -msgstr "%1$s的狀態是%2$s" - #: actions/login.php:102 actions/otp.php:62 actions/register.php:144 msgid "Already logged in." msgstr "已登入" @@ -2316,11 +1591,6 @@ msgstr "登入" msgid "Login to site" msgstr "" -#: actions/login.php:258 actions/register.php:485 -#, fuzzy -msgid "Remember me" -msgstr "何時加入會員的呢?" - #: actions/login.php:259 actions/register.php:487 msgid "Automatically login in the future; not for shared computers!" msgstr "未來在同一部電腦自動登入" @@ -2336,7 +1606,6 @@ msgid "" msgstr "為安全起見,請先重新輸入你的使用者名稱與密碼再更改設定。" #: actions/login.php:292 -#, fuzzy msgid "Login with your username and password." msgstr "使用者名稱或密碼錯誤" @@ -2355,28 +1624,6 @@ msgstr "" msgid "%1$s is already an admin for group \"%2$s\"." msgstr "" -#: actions/makeadmin.php:133 -#, php-format -msgid "Can't get membership record for %1$s in group %2$s." -msgstr "" - -#: actions/makeadmin.php:146 -#, php-format -msgid "Can't make %1$s an admin for group %2$s." -msgstr "" - -#: actions/microsummary.php:69 -msgid "No current status." -msgstr "" - -#: actions/newapplication.php:52 -msgid "New Application" -msgstr "" - -#: actions/newapplication.php:64 -msgid "You must be logged in to register an application." -msgstr "" - #: actions/newapplication.php:143 msgid "Use this form to register a new application." msgstr "" @@ -2386,14 +1633,9 @@ msgid "Source URL is required." msgstr "" #: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy msgid "Could not create application." msgstr "無法取消信箱確認" -#: actions/newgroup.php:53 -msgid "New group" -msgstr "" - #: actions/newgroup.php:110 msgid "Use this form to create a new group." msgstr "" @@ -2402,13 +1644,10 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:481 -#, fuzzy -msgid "You can't send a message to this user." -msgstr "無法連結到伺服器:%s" - -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:463 -#: lib/command.php:555 +#. TRANS: Command exception text shown when trying to send a direct message to another user without content. +#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply. +#: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481 +#: lib/command.php:582 msgid "No content!" msgstr "無內容" @@ -2416,7 +1655,8 @@ msgstr "無內容" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:484 +#. TRANS: Error text shown when trying to send a direct message to self. +#: actions/newmessage.php:164 lib/command.php:506 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2425,12 +1665,14 @@ msgstr "" msgid "Message sent" msgstr "" -#: actions/newmessage.php:185 +#. TRANS: Message given have sent a direct message to another user. +#. TRANS: %s is the name of the other user. +#: actions/newmessage.php:185 lib/command.php:514 #, php-format msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:251 lib/channel.php:189 +#: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2438,7 +1680,7 @@ msgstr "" msgid "New notice" msgstr "新訊息" -#: actions/newnotice.php:217 +#: actions/newnotice.php:227 msgid "Notice posted" msgstr "" @@ -2453,11 +1695,6 @@ msgstr "" msgid "Text search" msgstr "" -#: actions/noticesearch.php:91 -#, php-format -msgid "Search results for \"%1$s\" on %2$s" -msgstr "" - #: actions/noticesearch.php:121 #, php-format msgid "" @@ -2472,16 +1709,6 @@ msgid "" "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" -#: actions/noticesearchrss.php:96 -#, php-format -msgid "Updates with \"%s\"" -msgstr "" - -#: actions/noticesearchrss.php:98 -#, php-format -msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "" - #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set their email yet." @@ -2507,22 +1734,13 @@ msgstr "" msgid "Applications you have registered" msgstr "" -#: actions/oauthappssettings.php:135 -#, php-format -msgid "You have not registered any applications yet." -msgstr "" - -#: actions/oauthconnectionssettings.php:72 -msgid "Connected applications" -msgstr "" - #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" #: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." -msgstr "" +msgstr "無法取消信箱確認" #: actions/oauthconnectionssettings.php:186 #, php-format @@ -2539,19 +1757,13 @@ msgstr "" #: actions/oembed.php:80 actions/shownotice.php:100 msgid "Notice has no profile." -msgstr "" +msgstr "新的更人資料輸入錯誤" #: actions/oembed.php:87 actions/shownotice.php:175 #, php-format msgid "%1$s's status on %2$s" msgstr "%1$s的狀態是%2$s" -#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png') -#: actions/oembed.php:159 -#, php-format -msgid "Content type %s not supported." -msgstr "" - #. TRANS: Error message displaying attachments. %s is the site's base URL. #: actions/oembed.php:163 #, php-format @@ -2559,8 +1771,8 @@ msgid "Only %s URLs over plain HTTP please." msgstr "" #. TRANS: Client error on an API request with an unsupported data format. -#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1204 -#: lib/apiaction.php:1232 lib/apiaction.php:1355 +#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206 +#: lib/apiaction.php:1233 lib/apiaction.php:1356 msgid "Not a supported data format." msgstr "" @@ -2573,7 +1785,6 @@ msgid "Notice Search" msgstr "" #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" msgstr "使用者設定發生錯誤" @@ -2593,36 +1804,10 @@ msgstr "" msgid "Automatic shortening service to use." msgstr "" -#: actions/othersettings.php:122 -msgid "View profile designs" -msgstr "" - #: actions/othersettings.php:123 msgid "Show or hide profile designs." msgstr "" -#: actions/othersettings.php:153 -#, fuzzy -msgid "URL shortening service is too long (max 50 chars)." -msgstr "地點過長(共255個字)" - -#: actions/otp.php:69 -msgid "No user ID specified." -msgstr "" - -#: actions/otp.php:83 -msgid "No login token specified." -msgstr "" - -#: actions/otp.php:90 -#, fuzzy -msgid "No login token requested." -msgstr "無確認請求" - -#: actions/otp.php:95 -msgid "Invalid login token specified." -msgstr "" - #: actions/otp.php:104 msgid "Login token expired." msgstr "" @@ -2645,20 +1830,10 @@ msgstr "" msgid "Change password" msgstr "更改密碼" -#: actions/passwordsettings.php:69 -#, fuzzy -msgid "Change your password." -msgstr "更改密碼" - #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 msgid "Password change" msgstr "" -#: actions/passwordsettings.php:104 -#, fuzzy -msgid "Old password" -msgstr "新密碼" - #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" msgstr "新密碼" @@ -2680,11 +1855,6 @@ msgstr "" msgid "Change" msgstr "更改" -#: actions/passwordsettings.php:154 actions/register.php:237 -#, fuzzy -msgid "Password must be 6 or more characters." -msgstr "6個以上字元" - #: actions/passwordsettings.php:157 actions/register.php:240 msgid "Passwords don't match." msgstr "" @@ -2706,7 +1876,7 @@ msgid "Password saved." msgstr "" #. TRANS: Menu item for site administration -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384 +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371 msgid "Paths" msgstr "" @@ -2714,26 +1884,6 @@ msgstr "" msgid "Path and server settings for this StatusNet site." msgstr "" -#: actions/pathsadminpanel.php:157 -#, php-format -msgid "Theme directory not readable: %s." -msgstr "" - -#: actions/pathsadminpanel.php:163 -#, php-format -msgid "Avatar directory not writable: %s." -msgstr "" - -#: actions/pathsadminpanel.php:169 -#, php-format -msgid "Background directory not writable: %s." -msgstr "" - -#: actions/pathsadminpanel.php:177 -#, php-format -msgid "Locales directory not readable: %s." -msgstr "" - #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" @@ -2754,10 +1904,6 @@ msgstr "" msgid "Path" msgstr "" -#: actions/pathsadminpanel.php:242 -msgid "Site path" -msgstr "" - #: actions/pathsadminpanel.php:246 msgid "Path to locales" msgstr "" @@ -2790,33 +1936,18 @@ msgstr "" msgid "Theme directory" msgstr "" -#: actions/pathsadminpanel.php:279 -#, fuzzy -msgid "Avatars" -msgstr "個人圖像" - #: actions/pathsadminpanel.php:284 -#, fuzzy msgid "Avatar server" msgstr "個人圖像" -#: actions/pathsadminpanel.php:288 -#, fuzzy -msgid "Avatar path" -msgstr "更新個人圖像" - #: actions/pathsadminpanel.php:292 msgid "Avatar directory" -msgstr "" +msgstr "個人圖像" #: actions/pathsadminpanel.php:301 msgid "Backgrounds" msgstr "" -#: actions/pathsadminpanel.php:305 -msgid "Background server" -msgstr "" - #: actions/pathsadminpanel.php:309 msgid "Background path" msgstr "" @@ -2851,16 +1982,12 @@ msgstr "" #: actions/pathsadminpanel.php:335 msgid "SSL server" -msgstr "" +msgstr "個人圖像" #: actions/pathsadminpanel.php:336 msgid "Server to direct SSL requests to" msgstr "" -#: actions/pathsadminpanel.php:352 -msgid "Save paths" -msgstr "" - #: actions/peoplesearch.php:52 #, php-format msgid "" @@ -2872,31 +1999,11 @@ msgstr "" msgid "People search" msgstr "" -#: actions/peopletag.php:68 -#, fuzzy, php-format -msgid "Not a valid people tag: %s." -msgstr "此信箱無效" - -#: actions/peopletag.php:142 -#, php-format -msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" - -#: actions/postnotice.php:95 -#, fuzzy -msgid "Invalid notice content." -msgstr "尺寸錯誤" - #: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/profilesettings.php:60 -#, fuzzy -msgid "Profile settings" -msgstr "使用者設定發生錯誤" - #: actions/profilesettings.php:71 msgid "" "You can update your personal profile info here so people know more about you." @@ -2918,7 +2025,7 @@ msgstr "全名" #. TRANS: Form input field label. #: actions/profilesettings.php:115 actions/register.php:460 -#: lib/applicationeditform.php:244 lib/groupeditform.php:161 +#: lib/applicationeditform.php:235 lib/groupeditform.php:161 msgid "Homepage" msgstr "個人首頁" @@ -2926,15 +2033,6 @@ msgstr "個人首頁" msgid "URL of your homepage, blog, or profile on another site" msgstr "" -#: actions/profilesettings.php:122 actions/register.php:468 -#, php-format -msgid "Describe yourself and your interests in %d chars" -msgstr "" - -#: actions/profilesettings.php:125 actions/register.php:471 -msgid "Describe yourself and your interests" -msgstr "" - #: actions/profilesettings.php:127 actions/register.php:473 msgid "Bio" msgstr "自我介紹" @@ -2987,45 +2085,25 @@ msgid "" msgstr "" #: actions/profilesettings.php:228 actions/register.php:230 -#, fuzzy, php-format +#, php-format msgid "Bio is too long (max %d chars)." -msgstr "地點過長(共255個字)" +msgstr "地點過長(共%d個字)" #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:241 -#, fuzzy -msgid "Language is too long (max 50 chars)." -msgstr "地點過長(共255個字)" - #: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#, php-format msgid "Invalid tag: \"%s\"" msgstr "尺寸錯誤" -#: actions/profilesettings.php:306 -#, fuzzy -msgid "Couldn't update user for autosubscribe." -msgstr "無法更新使用者" - -#: actions/profilesettings.php:363 -#, fuzzy -msgid "Couldn't save location prefs." -msgstr "無法儲存個人資料" - #: actions/profilesettings.php:375 msgid "Couldn't save profile." msgstr "無法儲存個人資料" -#: actions/profilesettings.php:383 -#, fuzzy -msgid "Couldn't save tags." -msgstr "無法儲存個人資料" - #. TRANS: Message after successful saving of administrative settings. -#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +#: actions/profilesettings.php:391 lib/adminpanelaction.php:138 msgid "Settings saved." msgstr "" @@ -3034,11 +2112,6 @@ msgstr "" msgid "Beyond the page limit (%s)." msgstr "" -#: actions/public.php:92 -#, fuzzy -msgid "Could not retrieve public stream." -msgstr "無法更新使用者" - #: actions/public.php:130 #, php-format msgid "Public timeline, page %d" @@ -3056,10 +2129,6 @@ msgstr "" msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:168 -msgid "Public Stream Feed (Atom)" -msgstr "" - #: actions/public.php:188 #, php-format msgid "" @@ -3123,11 +2192,6 @@ msgstr "" msgid "Tag cloud" msgstr "" -#: actions/recoverpassword.php:36 -#, fuzzy -msgid "You are already logged in!" -msgstr "已登入" - #: actions/recoverpassword.php:62 msgid "No such recovery code." msgstr "無此恢復碼" @@ -3148,18 +2212,6 @@ msgstr "確認碼發生錯誤" msgid "This confirmation code is too old. Please start again." msgstr "" -#: actions/recoverpassword.php:111 -#, fuzzy -msgid "Could not update user with confirmed email address." -msgstr "無法更新使用者" - -#: actions/recoverpassword.php:152 -#, fuzzy -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 "" @@ -3168,11 +2220,6 @@ msgstr "" msgid "Password recovery" msgstr "" -#: actions/recoverpassword.php:191 -#, fuzzy -msgid "Nickname or email address" -msgstr "請輸入暱稱或電子信箱" - #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." msgstr "" @@ -3181,16 +2228,6 @@ msgstr "" msgid "Recover" msgstr "" -#: actions/recoverpassword.php:208 -#, fuzzy -msgid "Reset password" -msgstr "新密碼" - -#: actions/recoverpassword.php:209 -#, fuzzy -msgid "Recover password" -msgstr "新密碼" - #: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -3211,11 +2248,6 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "請輸入暱稱或電子信箱" -#: actions/recoverpassword.php:282 -#, fuzzy -msgid "No user with that email address or username." -msgstr "查無此使用者所註冊的信箱" - #: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "查無此使用者所註冊的信箱" @@ -3254,11 +2286,6 @@ msgstr "新密碼已儲存成功。你已登入。" msgid "Sorry, only invited people can register." msgstr "" -#: actions/register.php:99 -#, fuzzy -msgid "Sorry, invalid invitation code." -msgstr "確認碼發生錯誤" - #: actions/register.php:119 msgid "Registration successful" msgstr "" @@ -3289,16 +2316,6 @@ msgid "" "link up to friends and colleagues. " msgstr "" -#: actions/register.php:432 -#, fuzzy -msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." -msgstr "1-64個小寫英文字母或數字,勿加標點符號或空格" - -#: actions/register.php:437 -#, fuzzy -msgid "6 or more characters. Required." -msgstr "6個以上字元" - #: actions/register.php:441 msgid "Same as password above. Required." msgstr "" @@ -3338,14 +2355,6 @@ msgstr "" msgid "All rights reserved." msgstr "" -#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses. -#: actions/register.php:540 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" - #: actions/register.php:583 #, php-format msgid "" @@ -3379,20 +2388,10 @@ msgid "" "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -#: actions/remotesubscribe.php:112 -#, fuzzy -msgid "Remote subscribe" -msgstr "此帳號已註冊" - #: actions/remotesubscribe.php:124 msgid "Subscribe to a remote user" msgstr "" -#: actions/remotesubscribe.php:129 -#, fuzzy -msgid "User nickname" -msgstr "無暱稱" - #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" msgstr "你想成為誰的粉絲呢?請輸入他/她的暱稱。" @@ -3405,12 +2404,6 @@ msgstr "" msgid "URL of your profile on another compatible microblogging service" msgstr "" -#: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:406 -#, fuzzy -msgid "Subscribe" -msgstr "此帳號已註冊" - #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" msgstr "個人資料連結無效(格式錯誤)" @@ -3423,17 +2416,13 @@ msgstr "" msgid "That’s a local profile! Login to subscribe." msgstr "" -#: actions/remotesubscribe.php:183 -msgid "Couldn’t get a request token." -msgstr "" - #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." 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." @@ -3441,15 +2430,7 @@ msgstr "" #: actions/repeat.php:90 msgid "You already repeated that notice." -msgstr "" - -#: actions/repeat.php:114 lib/noticelist.php:676 -msgid "Repeated" -msgstr "" - -#: actions/repeat.php:119 -msgid "Repeated!" -msgstr "" +msgstr "此Jabber ID已有人使用" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3457,26 +2438,6 @@ msgstr "" msgid "Replies to %s" msgstr "" -#: actions/replies.php:128 -#, php-format -msgid "Replies to %1$s, page %2$d" -msgstr "" - -#: actions/replies.php:145 -#, php-format -msgid "Replies feed for %s (RSS 1.0)" -msgstr "" - -#: actions/replies.php:152 -#, php-format -msgid "Replies feed for %s (RSS 2.0)" -msgstr "" - -#: actions/replies.php:159 -#, php-format -msgid "Replies feed for %s (Atom)" -msgstr "" - #: actions/replies.php:199 #, php-format msgid "" @@ -3498,34 +2459,17 @@ msgid "" "newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/repliesrss.php:72 -#, php-format -msgid "Replies to %1$s on %2$s!" -msgstr "" - -#: actions/revokerole.php:75 -msgid "You cannot revoke user roles on this site." -msgstr "" - #: actions/revokerole.php:82 msgid "User doesn't have this role." msgstr "" -#: actions/rsd.php:146 actions/version.php:159 -msgid "StatusNet" -msgstr "" - -#: actions/sandbox.php:65 actions/unsandbox.php:65 -msgid "You cannot sandbox users on this site." -msgstr "" - #: actions/sandbox.php:72 msgid "User is already sandboxed." msgstr "" #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:392 +#: lib/adminpanelaction.php:379 msgid "Sessions" msgstr "" @@ -3552,40 +2496,13 @@ msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" -msgstr "" - -#: actions/showapplication.php:82 -msgid "You must be logged in to view an application." -msgstr "" - -#: actions/showapplication.php:157 -msgid "Application profile" -msgstr "" +msgstr "使用者設定發生錯誤" #. TRANS: Form input field label for application icon. -#: actions/showapplication.php:159 lib/applicationeditform.php:182 +#: actions/showapplication.php:159 lib/applicationeditform.php:173 msgid "Icon" msgstr "" -#. TRANS: Form input field label for application name. -#: actions/showapplication.php:169 actions/version.php:197 -#: lib/applicationeditform.php:199 -#, fuzzy -msgid "Name" -msgstr "暱稱" - -#. TRANS: Form input field label. -#: actions/showapplication.php:178 lib/applicationeditform.php:235 -msgid "Organization" -msgstr "" - -#. TRANS: Form input field label. -#: actions/showapplication.php:187 actions/version.php:200 -#: lib/applicationeditform.php:216 lib/groupeditform.php:172 -#, fuzzy -msgid "Description" -msgstr "所有訂閱" - #: actions/showapplication.php:192 actions/showgroup.php:436 #: lib/profileaction.php:187 msgid "Statistics" @@ -3638,30 +2555,9 @@ msgstr "" msgid "Are you sure you want to reset your consumer key and secret?" msgstr "" -#: actions/showfavorites.php:79 -#, php-format -msgid "%1$s's favorite notices, page %2$d" -msgstr "" - #: actions/showfavorites.php:132 -#, fuzzy msgid "Could not retrieve favorite notices." -msgstr "無法儲存個人資料" - -#: actions/showfavorites.php:171 -#, php-format -msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "" - -#: actions/showfavorites.php:178 -#, php-format -msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "" - -#: actions/showfavorites.php:185 -#, php-format -msgid "Feed for favorites of %s (Atom)" -msgstr "" +msgstr "無法更新使用者" #: actions/showfavorites.php:206 msgid "" @@ -3688,20 +2584,6 @@ msgstr "" msgid "This is a way to share what you like." msgstr "" -#: actions/showgroup.php:82 lib/groupnav.php:86 -#, php-format -msgid "%s group" -msgstr "" - -#: actions/showgroup.php:84 -#, php-format -msgid "%1$s group, page %2$d" -msgstr "" - -#: actions/showgroup.php:227 -msgid "Group profile" -msgstr "" - #: actions/showgroup.php:272 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" @@ -3716,10 +2598,6 @@ msgstr "" msgid "Aliases" msgstr "" -#: actions/showgroup.php:302 -msgid "Group actions" -msgstr "" - #: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" @@ -3735,16 +2613,6 @@ msgstr "" msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:355 -#, php-format -msgid "FOAF for %s group" -msgstr "" - -#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91 -#, fuzzy -msgid "Members" -msgstr "何時加入會員的呢?" - #: actions/showgroup.php:398 lib/profileaction.php:117 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71 @@ -3755,10 +2623,6 @@ msgstr "" msgid "All members" msgstr "" -#: actions/showgroup.php:439 -msgid "Created" -msgstr "" - #: actions/showgroup.php:455 #, php-format msgid "" @@ -3782,11 +2646,6 @@ msgstr "" msgid "Admins" msgstr "" -#: actions/showmessage.php:81 -#, fuzzy -msgid "No such message." -msgstr "無此使用者" - #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." msgstr "" @@ -3801,25 +2660,11 @@ msgstr "" msgid "Message from %1$s on %2$s" msgstr "" -#: actions/shownotice.php:90 -msgid "Notice deleted." -msgstr "" - #: actions/showstream.php:73 #, php-format msgid " tagged %s" msgstr "" -#: actions/showstream.php:79 -#, php-format -msgid "%1$s, page %2$d" -msgstr "" - -#: actions/showstream.php:122 -#, php-format -msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "" - #: actions/showstream.php:129 #, php-format msgid "Notice feed for %s (RSS 1.0)" @@ -3896,11 +2741,6 @@ msgstr "" msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:141 -#, fuzzy -msgid "You must have a valid contact email address." -msgstr "此信箱無效" - #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." @@ -3918,10 +2758,6 @@ msgstr "" msgid "General" msgstr "" -#: actions/siteadminpanel.php:224 -msgid "Site name" -msgstr "" - #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" @@ -3942,16 +2778,6 @@ msgstr "" msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:239 -#, fuzzy -msgid "Contact email address for your site" -msgstr "查無此使用者所註冊的信箱" - -#: actions/siteadminpanel.php:245 -#, fuzzy -msgid "Local" -msgstr "地點" - #: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" @@ -3988,41 +2814,22 @@ msgstr "" msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/sitenoticeadminpanel.php:56 -#, fuzzy -msgid "Site Notice" -msgstr "新訊息" - #: actions/sitenoticeadminpanel.php:67 msgid "Edit site-wide message" msgstr "" -#: actions/sitenoticeadminpanel.php:103 -msgid "Unable to save site notice." -msgstr "" - #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars." msgstr "" -#: actions/sitenoticeadminpanel.php:176 -#, fuzzy -msgid "Site notice text" -msgstr "新訊息" - #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/sitenoticeadminpanel.php:198 -#, fuzzy -msgid "Save site notice" -msgstr "新訊息" - #. TRANS: Title for SMS settings. #: actions/smssettings.php:59 msgid "SMS settings" -msgstr "" +msgstr "使用者設定發生錯誤" #. TRANS: SMS settings page instructions. #. TRANS: %%site.name%% is the name of the site. @@ -4031,15 +2838,10 @@ msgstr "" msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" -#. TRANS: Message given in the SMS settings if SMS is not enabled on the site. -#: actions/smssettings.php:97 -msgid "SMS is not available." -msgstr "" - #. TRANS: Form legend for SMS settings form. #: actions/smssettings.php:111 msgid "SMS address" -msgstr "" +msgstr "確認" #. TRANS: Form guide in SMS settings form. #: actions/smssettings.php:120 @@ -4051,35 +2853,16 @@ msgstr "" msgid "Awaiting confirmation on this phone number." msgstr "" -#. TRANS: Field label for SMS address input in SMS settings form. -#: actions/smssettings.php:142 -#, fuzzy -msgid "Confirmation code" -msgstr "無確認碼" - #. TRANS: Form field instructions in SMS settings form. #: actions/smssettings.php:144 msgid "Enter the code you received on your phone." msgstr "" -#. TRANS: Button label to confirm SMS confirmation code in SMS settings. -#: actions/smssettings.php:148 -#, fuzzy -msgctxt "BUTTON" -msgid "Confirm" -msgstr "確認" - #. TRANS: Field label for SMS phone number input in SMS settings form. #: actions/smssettings.php:153 msgid "SMS phone number" msgstr "" -#. TRANS: SMS phone number input field instructions in SMS settings form. -#: actions/smssettings.php:156 -#, fuzzy -msgid "Phone number, no punctuation or spaces, with area code" -msgstr "1-64個小寫英文字母或數字,勿加標點符號或空格" - #. TRANS: Form legend for SMS preferences form. #: actions/smssettings.php:195 msgid "SMS preferences" @@ -4097,12 +2880,6 @@ msgstr "" msgid "SMS preferences saved." msgstr "" -#. TRANS: Message given saving SMS phone number without having provided one. -#: actions/smssettings.php:338 -#, fuzzy -msgid "No phone number." -msgstr "無此使用者" - #. TRANS: Message given saving SMS phone number without having selected a carrier. #: actions/smssettings.php:344 msgid "No carrier selected." @@ -4113,29 +2890,8 @@ msgstr "" msgid "That is already your phone number." msgstr "" -#. TRANS: Message given saving SMS phone number that is already set for another user. -#: actions/smssettings.php:356 -#, fuzzy -msgid "That phone number already belongs to another user." -msgstr "此Jabber ID已有人使用" - -#. TRANS: Message given saving valid SMS phone number that is to be confirmed. -#: actions/smssettings.php:384 -#, 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 "確認信已寄到你的線上即時通信箱。%s送給你得訊息要先經過你的認可。" - -#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number. -#: actions/smssettings.php:413 -#, fuzzy -msgid "That is the wrong confirmation number." -msgstr "無法輸入確認碼" - #. TRANS: Message given after successfully canceling SMS phone number confirmation. #: actions/smssettings.php:427 -#, fuzzy msgid "SMS confirmation cancelled." msgstr "無確認碼" @@ -4169,22 +2925,15 @@ msgid "" "email but isn't listed here, send email to let us know at %s." msgstr "" -#. TRANS: Message given saving SMS phone number confirmation code without having provided one. -#: actions/smssettings.php:548 -#, fuzzy -msgid "No code entered" -msgstr "無內容" - #. TRANS: Menu item for site administration #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 -#: lib/adminpanelaction.php:408 +#: lib/adminpanelaction.php:395 msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "確認信箱" +msgstr "無確認碼" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4230,18 +2979,8 @@ msgstr "" msgid "Snapshots will be sent to this URL" msgstr "" -#: actions/snapshotadminpanel.php:248 -msgid "Save snapshot settings" -msgstr "" - -#: actions/subedit.php:70 -#, fuzzy -msgid "You are not subscribed to that profile." -msgstr "此帳號已註冊" - #. TRANS: Exception thrown when a subscription could not be stored on the server. #: actions/subedit.php:83 classes/Subscription.php:136 -#, fuzzy msgid "Could not save subscription." msgstr "無法新增訂閱" @@ -4249,35 +2988,10 @@ msgstr "無法新增訂閱" msgid "This action only accepts POST requests." msgstr "" -#: actions/subscribe.php:107 -#, fuzzy -msgid "No such profile." -msgstr "無此通知" - #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" -#: actions/subscribe.php:145 -#, fuzzy -msgid "Subscribed" -msgstr "此帳號已註冊" - -#: actions/subscribers.php:50 -#, fuzzy, php-format -msgid "%s subscribers" -msgstr "此帳號已註冊" - -#: actions/subscribers.php:52 -#, php-format -msgid "%1$s subscribers, page %2$d" -msgstr "" - -#: actions/subscribers.php:63 -#, fuzzy -msgid "These are the people who listen to your notices." -msgstr "現在%1$s在%2$s成為你的粉絲囉" - #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." @@ -4301,16 +3015,6 @@ msgid "" "%) and be the first?" msgstr "" -#: actions/subscriptions.php:52 -#, fuzzy, php-format -msgid "%s subscriptions" -msgstr "所有訂閱" - -#: actions/subscriptions.php:54 -#, fuzzy, php-format -msgid "%1$s subscriptions, page %2$d" -msgstr "所有訂閱" - #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." msgstr "" @@ -4330,44 +3034,20 @@ msgid "" "automatically subscribe to people you already follow there." msgstr "" -#: actions/subscriptions.php:128 actions/subscriptions.php:132 -#, fuzzy, php-format -msgid "%s is not listening to anyone." -msgstr "現在%1$s在%2$s成為你的粉絲囉" - -#: actions/subscriptions.php:208 -#, fuzzy -msgid "Jabber" -msgstr "查無此Jabber ID" - #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115 msgid "SMS" msgstr "" -#: actions/tag.php:69 -#, php-format -msgid "Notices tagged with %1$s, page %2$d" -msgstr "" - #: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:93 -#, php-format -msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "" - #: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" -#: actions/tagother.php:39 -msgid "No ID argument." -msgstr "" - #: actions/tagother.php:65 #, php-format msgid "Tag %s" @@ -4375,7 +3055,7 @@ msgstr "" #: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" -msgstr "" +msgstr "新的更人資料輸入錯誤" #: actions/tagother.php:81 actions/userauthorization.php:132 #: lib/userprofile.php:103 @@ -4398,7 +3078,6 @@ msgid "" msgstr "" #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." msgstr "無法儲存個人資料" @@ -4407,13 +3086,12 @@ msgid "Use this form to add tags to your subscribers or subscriptions." msgstr "" #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "無此通知" +msgstr "無此使用者" #: actions/unblock.php:59 msgid "You haven't blocked that user." -msgstr "" +msgstr "此Jabber ID已有人使用" #: actions/unsandbox.php:72 msgid "User is not sandboxed." @@ -4423,16 +3101,6 @@ msgstr "" msgid "User is not silenced." msgstr "" -#: actions/unsubscribe.php:77 -#, fuzzy -msgid "No profile ID in request." -msgstr "無確認請求" - -#: actions/unsubscribe.php:98 -#, fuzzy -msgid "Unsubscribed" -msgstr "此帳號已註冊" - #: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" @@ -4488,19 +3156,10 @@ msgstr "" msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:241 -#, fuzzy -msgid "Default subscription" -msgstr "所有訂閱" - #: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:251 -msgid "Invitations" -msgstr "" - #: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" @@ -4528,18 +3187,11 @@ msgstr "" msgid "Accept" msgstr "接受" -#: actions/userauthorization.php:218 lib/subscribeform.php:115 -#: lib/subscribeform.php:139 -#, fuzzy -msgid "Subscribe to this user" -msgstr "此帳號已註冊" - #: actions/userauthorization.php:219 msgid "Reject" msgstr "" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" msgstr "註冊確認" @@ -4594,11 +3246,6 @@ msgstr "" msgid "Avatar URL ‘%s’ is not valid." msgstr "" -#: actions/userauthorization.php:350 -#, php-format -msgid "Can’t read avatar URL ‘%s’." -msgstr "" - #: actions/userauthorization.php:355 #, php-format msgid "Wrong image type for avatar URL ‘%s’." @@ -4618,21 +3265,10 @@ msgstr "" msgid "Enjoy your hotdog!" msgstr "" -#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. -#: actions/usergroups.php:66 -#, php-format -msgid "%1$s groups, page %2$d" -msgstr "" - #: actions/usergroups.php:132 msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:159 -#, fuzzy, php-format -msgid "%s is not a member of any group." -msgstr "無法連結到伺服器:%s" - #: actions/usergroups.php:164 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." @@ -4692,11 +3328,6 @@ msgstr "" msgid "Plugins" msgstr "" -#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site. -#: actions/version.php:198 lib/action.php:789 -msgid "Version" -msgstr "" - #: actions/version.php:199 msgid "Author(s)" msgstr "" @@ -4735,39 +3366,27 @@ msgstr "" msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" -#. TRANS: Client exception thrown if a file upload does not have a valid name. -#: classes/File.php:248 classes/File.php:263 -#, fuzzy -msgid "Invalid filename." -msgstr "尺寸錯誤" - #. TRANS: Exception thrown when joining a group fails. #: classes/Group_member.php:42 msgid "Group join failed." -msgstr "" +msgstr "確認碼遺失" #. TRANS: Exception thrown when trying to leave a group the user is not a member of. #: classes/Group_member.php:55 msgid "Not part of group." -msgstr "" - -#. TRANS: Exception thrown when trying to leave a group fails. -#: classes/Group_member.php:63 -msgid "Group leave failed." -msgstr "" +msgstr "無此使用者" #. TRANS: Server exception thrown when updating a local group fails. #: classes/Local_group.php:42 -#, fuzzy msgid "Could not update local group." -msgstr "無法更新使用者" +msgstr "無法儲存個人資料" #. TRANS: Exception thrown when trying creating a login token failed. #. TRANS: %s is the user nickname for which token creation failed. #: classes/Login_token.php:78 #, php-format msgid "Could not create login token for %s" -msgstr "" +msgstr "無法更新使用者" #. TRANS: Exception thrown when database name or Data Source Name could not be found. #: classes/Memcached_DataObject.php:533 @@ -4781,15 +3400,8 @@ msgstr "" #. TRANS: Message given when a message could not be stored on the server. #: classes/Message.php:63 -#, fuzzy msgid "Could not insert message." -msgstr "無法新增訂閱" - -#. TRANS: Message given when a message could not be updated on the server. -#: classes/Message.php:74 -#, fuzzy -msgid "Could not update message with new URI." -msgstr "無法更新使用者" +msgstr "無法儲存個人資料" #. TRANS: Server exception thrown when a user profile for a notice cannot be found. #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number). @@ -4799,61 +3411,37 @@ msgid "No such profile (%1$d) for notice (%2$d)." msgstr "" #. TRANS: Server exception. %s are the error details. -#: classes/Notice.php:190 -#, fuzzy, php-format +#: classes/Notice.php:193 +#, php-format msgid "Database error inserting hashtag: %s" msgstr "個人圖像插入錯誤" -#. TRANS: Client exception thrown if a notice contains too many characters. -#: classes/Notice.php:260 -#, fuzzy -msgid "Problem saving notice. Too long." -msgstr "儲存使用者發生錯誤" - -#. TRANS: Client exception thrown when trying to save a notice for an unknown user. -#: classes/Notice.php:265 -#, fuzzy -msgid "Problem saving notice. Unknown user." -msgstr "儲存使用者發生錯誤" - #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame. -#: classes/Notice.php:271 +#: classes/Notice.php:276 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame. -#: classes/Notice.php:278 +#: classes/Notice.php:283 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" #. TRANS: Client exception thrown when a user tries to post while being banned. -#: classes/Notice.php:286 +#: classes/Notice.php:291 msgid "You are banned from posting notices on this site." msgstr "" -#. TRANS: Server exception thrown when a notice cannot be saved. -#. TRANS: Server exception thrown when a notice cannot be updated. -#: classes/Notice.php:353 classes/Notice.php:380 -#, fuzzy -msgid "Problem saving notice." -msgstr "儲存使用者發生錯誤" - #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). -#: classes/Notice.php:892 +#: classes/Notice.php:899 msgid "Bad type provided to saveKnownGroups" msgstr "" -#. TRANS: Server exception thrown when an update for a group inbox fails. -#: classes/Notice.php:991 -msgid "Problem saving group inbox." -msgstr "" - #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: classes/Notice.php:1746 +#: classes/Notice.php:1759 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4874,52 +3462,36 @@ msgstr "" #. TRANS: Exception thrown when a right for a non-existing user profile is checked. #: classes/Remote_profile.php:54 -#, fuzzy msgid "Missing profile." msgstr "新的更人資料輸入錯誤" #. TRANS: Exception thrown when a tag cannot be saved. -#: classes/Status_network.php:346 +#: classes/Status_network.php:339 msgid "Unable to save tag." -msgstr "" +msgstr "無法儲存個人資料" #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing. -#: classes/Subscription.php:75 lib/oauthstore.php:465 +#: classes/Subscription.php:75 lib/oauthstore.php:466 msgid "You have been banned from subscribing." msgstr "" -#. TRANS: Exception thrown when trying to subscribe while already subscribed. -#: classes/Subscription.php:80 -#, fuzzy -msgid "Already subscribed!" -msgstr "此帳號已註冊" - #. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user. #: classes/Subscription.php:85 msgid "User has blocked you." msgstr "" -#. TRANS: Exception thrown when trying to unsibscribe without a subscription. -#: classes/Subscription.php:171 -#, fuzzy -msgid "Not subscribed!" -msgstr "此帳號已註冊" - #. TRANS: Exception thrown when trying to unsubscribe a user from themselves. #: classes/Subscription.php:178 -#, fuzzy msgid "Could not delete self-subscription." msgstr "無法新增訂閱" #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server. #: classes/Subscription.php:206 -#, fuzzy msgid "Could not delete subscription OMB token." msgstr "無法新增訂閱" #. TRANS: Exception thrown when a subscription could not be deleted on the server. #: classes/Subscription.php:218 -#, fuzzy msgid "Could not delete subscription." msgstr "無法新增訂閱" @@ -4932,45 +3504,24 @@ msgstr "" #. TRANS: Server exception thrown when creating a group failed. #: classes/User_group.php:496 -#, fuzzy msgid "Could not create group." msgstr "無法更新使用者" #. TRANS: Server exception thrown when updating a group URI failed. #: classes/User_group.php:506 -#, fuzzy msgid "Could not set group URI." msgstr "無法儲存個人資料" #. TRANS: Server exception thrown when setting group membership failed. #: classes/User_group.php:529 -#, fuzzy msgid "Could not set group membership." msgstr "無法更新使用者" #. TRANS: Server exception thrown when saving local group information failed. #: classes/User_group.php:544 -#, fuzzy msgid "Could not save local group info." msgstr "無法儲存個人資料" -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:109 -msgid "Change your profile settings" -msgstr "" - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:116 -#, fuzzy -msgid "Upload an avatar" -msgstr "無法上傳個人圖像" - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:123 -#, fuzzy -msgid "Change your password" -msgstr "更改密碼" - #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:130 msgid "Change email handling" @@ -4979,231 +3530,148 @@ msgstr "" #. TRANS: Link title attribute in user account settings menu. #: lib/accountsettingsaction.php:137 msgid "Design your profile" -msgstr "" - -#. TRANS: Link title attribute in user account settings menu. -#: lib/accountsettingsaction.php:144 -msgid "Other options" -msgstr "" +msgstr "新的更人資料輸入錯誤" #. TRANS: Link description in user account settings menu. #: lib/accountsettingsaction.php:146 msgid "Other" msgstr "" -#. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: lib/action.php:145 -#, fuzzy, php-format -msgid "%1$s - %2$s" -msgstr "%1$s的狀態是%2$s" - #. TRANS: Page title for a page without a title set. -#: lib/action.php:161 +#: lib/action.php:164 msgid "Untitled page" msgstr "" #. TRANS: DT element for primary navigation menu. String is hidden in default CSS. -#: lib/action.php:436 +#: lib/action.php:449 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:442 +#: lib/action.php:455 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#. TRANS: Main menu option when logged in for access to personal profile and friends timeline -#: lib/action.php:445 -msgctxt "MENU" -msgid "Personal" -msgstr "" - -#. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:447 -msgctxt "TOOLTIP" -msgid "Change your email, avatar, password, profile" -msgstr "" - -#. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:452 -msgctxt "TOOLTIP" -msgid "Connect to services" -msgstr "" - #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services -#: lib/action.php:455 +#: lib/action.php:468 msgid "Connect" msgstr "連結" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:458 +#: lib/action.php:471 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "無確認碼" #. TRANS: Main menu option when logged in and site admin for access to site configuration -#: lib/action.php:461 +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/action.php:474 lib/groupnav.php:117 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:465 +#: lib/action.php:478 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users -#: lib/action.php:468 -msgctxt "MENU" -msgid "Invite" -msgstr "" - #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:474 +#: lib/action.php:487 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" #. TRANS: Main menu option when logged in to log out the current user -#: lib/action.php:477 +#: lib/action.php:490 msgctxt "MENU" msgid "Logout" -msgstr "" - -#. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:482 -msgctxt "TOOLTIP" -msgid "Create an account" -msgstr "" - -#. TRANS: Main menu option when not logged in to register a new account -#: lib/action.php:485 -msgctxt "MENU" -msgid "Register" -msgstr "" +msgstr "登入" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:488 +#: lib/action.php:501 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:491 -#, fuzzy -msgctxt "MENU" -msgid "Login" -msgstr "登入" - -#. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:494 -#, fuzzy -msgctxt "TOOLTIP" -msgid "Help me!" -msgstr "求救" - -#: lib/action.php:497 -#, fuzzy -msgctxt "MENU" -msgid "Help" -msgstr "求救" - #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:500 +#: lib/action.php:513 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:503 +#: lib/action.php:516 msgctxt "MENU" msgid "Search" msgstr "" -#. TRANS: DT element for site notice. String is hidden in default CSS. -#. TRANS: Menu item for site administration -#: lib/action.php:525 lib/adminpanelaction.php:400 -#, fuzzy -msgid "Site notice" -msgstr "新訊息" - #. TRANS: DT element for local views block. String is hidden in default CSS. -#: lib/action.php:592 +#: lib/action.php:605 msgid "Local views" msgstr "" -#. TRANS: DT element for page notice. String is hidden in default CSS. -#: lib/action.php:659 -#, fuzzy -msgid "Page notice" -msgstr "新訊息" - #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS. -#: lib/action.php:762 +#: lib/action.php:778 msgid "Secondary site navigation" msgstr "" #. TRANS: Secondary navigation menu option leading to help on StatusNet. -#: lib/action.php:768 +#: lib/action.php:784 msgid "Help" msgstr "求救" #. TRANS: Secondary navigation menu option leading to text about StatusNet site. -#: lib/action.php:771 +#: lib/action.php:787 msgid "About" msgstr "關於" #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions. -#: lib/action.php:774 +#: lib/action.php:790 msgid "FAQ" msgstr "常見問題" #. TRANS: Secondary navigation menu option leading to Terms of Service. -#: lib/action.php:779 +#: lib/action.php:795 msgid "TOS" msgstr "" #. TRANS: Secondary navigation menu option leading to privacy policy. -#: lib/action.php:783 +#: lib/action.php:799 msgid "Privacy" msgstr "" #. TRANS: Secondary navigation menu option. -#: lib/action.php:786 +#: lib/action.php:802 msgid "Source" msgstr "" #. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site. -#: lib/action.php:792 +#: lib/action.php:808 msgid "Contact" msgstr "好友名單" -#: lib/action.php:794 +#: lib/action.php:810 msgid "Badge" msgstr "" #. TRANS: DT element for StatusNet software license. -#: lib/action.php:823 +#: lib/action.php:839 msgid "StatusNet software license" msgstr "" -#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set. -#: lib/action.php:827 -#, php-format -msgid "" -"**%%site.name%%** is a microblogging service brought to you by [%%site." -"broughtby%%](%%site.broughtbyurl%%)." -msgstr "" - #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set. -#: lib/action.php:830 +#: lib/action.php:849 #, php-format msgid "**%%site.name%%** is a microblogging service." msgstr "**%%site.name%%**是個微型部落格" #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license. -#: lib/action.php:834 +#. TRANS: Make sure there is no whitespace between "]" and "(". +#. TRANS: Text between [] is a link description, text between () is the link itself. +#. TRANS: %s is the version of StatusNet that is being used. +#: lib/action.php:856 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5211,274 +3679,247 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#. TRANS: DT element for StatusNet site content license. -#: lib/action.php:850 -msgid "Site content license" -msgstr "" - #. TRANS: Content license displayed when license is set to 'private'. #. TRANS: %1$s is the site name. -#: lib/action.php:857 +#: lib/action.php:879 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved'. #. TRANS: %1$s is the copyright owner. -#: lib/action.php:864 +#: lib/action.php:886 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set. -#: lib/action.php:868 +#: lib/action.php:890 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. -#: lib/action.php:881 +#. TRANS: license message in footer. +#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration. +#: lib/action.php:904 #, php-format msgid "All %1$s content and data are available under the %2$s license." msgstr "" #. TRANS: DT element for pagination (previous/next, etc.). -#: lib/action.php:1192 +#: lib/action.php:1243 msgid "Pagination" msgstr "" #. TRANS: Pagination message to go to a page displaying information more in the #. TRANS: present than the currently displayed information. -#: lib/action.php:1203 +#: lib/action.php:1254 msgid "After" msgstr "" -#. TRANS: Pagination message to go to a page displaying information more in the -#. TRANS: past than the currently displayed information. -#: lib/action.php:1213 -msgid "Before" -msgstr "" - #. TRANS: Client exception thrown when a feed instance is a DOMDocument. #: lib/activity.php:122 msgid "Expecting a root feed element but got a whole XML document." msgstr "" -#: lib/activityutils.php:208 +#. TRANS: Client exception thrown when there is no source attribute. +#: lib/activityutils.php:203 msgid "Can't handle remote content yet." msgstr "" -#: lib/activityutils.php:244 +#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet. +#: lib/activityutils.php:240 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activityutils.php:248 +#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet. +#: lib/activityutils.php:245 msgid "Can't handle embedded Base64 content yet." msgstr "" #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights. -#: lib/adminpanelaction.php:98 +#: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." msgstr "" #. TRANS: Client error message throw when a certain panel's settings cannot be changed. -#: lib/adminpanelaction.php:110 +#: lib/adminpanelaction.php:108 msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message. -#: lib/adminpanelaction.php:229 +#: lib/adminpanelaction.php:222 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:259 +#: lib/adminpanelaction.php:250 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message thrown if design settings could not be deleted in #. TRANS: the admin panel Design. -#: lib/adminpanelaction.php:284 +#: lib/adminpanelaction.php:274 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:350 -#, fuzzy +#: lib/adminpanelaction.php:337 msgid "Basic site configuration" -msgstr "確認信箱" - -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:352 -msgctxt "MENU" -msgid "Site" -msgstr "" +msgstr "無確認碼" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:358 -#, fuzzy +#: lib/adminpanelaction.php:345 msgid "Design configuration" -msgstr "確認信箱" - -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:360 -msgctxt "MENU" -msgid "Design" -msgstr "" +msgstr "無確認碼" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:366 -#, fuzzy +#: lib/adminpanelaction.php:353 msgid "User configuration" msgstr "無確認碼" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115 +#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:374 -#, fuzzy +#: lib/adminpanelaction.php:361 msgid "Access configuration" -msgstr "確認信箱" +msgstr "無確認碼" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:382 -#, fuzzy +#: lib/adminpanelaction.php:369 msgid "Paths configuration" -msgstr "確認信箱" +msgstr "無確認碼" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:390 -#, fuzzy +#: lib/adminpanelaction.php:377 msgid "Sessions configuration" -msgstr "確認信箱" +msgstr "無確認碼" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:398 -#, fuzzy -msgid "Edit site notice" -msgstr "新訊息" - -#. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:406 -#, fuzzy +#: lib/adminpanelaction.php:393 msgid "Snapshots configuration" -msgstr "確認信箱" +msgstr "無確認碼" #. TRANS: Client error 401. -#: lib/apiauth.php:113 +#: lib/apiauth.php:111 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#. TRANS: Form legend. -#: lib/applicationeditform.php:137 -msgid "Edit application" +#. TRANS: OAuth exception thrown when no application is found for a given consumer key. +#: lib/apiauth.php:175 +msgid "No application for that consumer key." msgstr "" -#. TRANS: Form guide. -#: lib/applicationeditform.php:187 -msgid "Icon for this application" +#. TRANS: OAuth exception given when an incorrect access token was given for a user. +#: lib/apiauth.php:212 +msgid "Bad access token." +msgstr "" + +#. TRANS: OAuth exception given when no user was found for a given token (no token was found). +#: lib/apiauth.php:217 +msgid "No user for that token." +msgstr "" + +#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel". +#. TRANS: Client error thrown when authentication fails. +#: lib/apiauth.php:258 lib/apiauth.php:290 +msgid "Could not authenticate you." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to revoke an unknown token. +#: lib/apioauthstore.php:178 +msgid "Tried to revoke unknown token." +msgstr "" + +#. TRANS: Exception thrown when an attempt is made to remove a revoked token. +#: lib/apioauthstore.php:182 +msgid "Failed to delete revoked token." msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:209 -#, php-format -msgid "Describe your application in %d characters" -msgstr "" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:213 -msgid "Describe your application" -msgstr "" - -#. TRANS: Form input field instructions. -#: lib/applicationeditform.php:224 +#: lib/applicationeditform.php:215 msgid "URL of the homepage of this application" msgstr "" #. TRANS: Form input field label. -#: lib/applicationeditform.php:226 +#: lib/applicationeditform.php:217 msgid "Source URL" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:233 +#: lib/applicationeditform.php:224 msgid "Organization responsible for this application" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:242 +#: lib/applicationeditform.php:233 msgid "URL for the homepage of the organization" msgstr "" #. TRANS: Form input field instructions. -#: lib/applicationeditform.php:251 +#: lib/applicationeditform.php:242 msgid "URL to redirect to after authentication" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:278 +#: lib/applicationeditform.php:269 msgid "Browser" msgstr "" #. TRANS: Radio button label for application type -#: lib/applicationeditform.php:295 +#: lib/applicationeditform.php:286 msgid "Desktop" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:297 +#: lib/applicationeditform.php:288 msgid "Type of application, browser or desktop" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:320 +#: lib/applicationeditform.php:311 msgid "Read-only" msgstr "" #. TRANS: Radio button label for access type. -#: lib/applicationeditform.php:339 +#: lib/applicationeditform.php:330 msgid "Read-write" msgstr "" #. TRANS: Form guide. -#: lib/applicationeditform.php:341 +#: lib/applicationeditform.php:332 msgid "Default access for this application: read-only, or read-write" msgstr "" -#. TRANS: Submit button title -#: lib/applicationeditform.php:359 +#. TRANS: Submit button title. +#: lib/applicationeditform.php:349 msgid "Cancel" msgstr "取消" #. TRANS: Application access type -#: lib/applicationlist.php:136 +#: lib/applicationlist.php:135 msgid "read-write" msgstr "" #. TRANS: Application access type -#: lib/applicationlist.php:138 +#: lib/applicationlist.php:137 msgid "read-only" msgstr "" #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only) -#: lib/applicationlist.php:144 +#: lib/applicationlist.php:143 #, php-format msgid "Approved %1$s - \"%2$s\" access." msgstr "" #. TRANS: Button label -#: lib/applicationlist.php:159 +#: lib/applicationlist.php:158 msgctxt "BUTTON" msgid "Revoke" msgstr "" -#. TRANS: DT element label in attachment list. -#: lib/attachmentlist.php:88 -msgid "Attachments" -msgstr "" - #. TRANS: DT element label in attachment list item. #: lib/attachmentlist.php:265 msgid "Author" @@ -5489,14 +3930,11 @@ msgstr "" msgid "Provider" msgstr "" -#: lib/attachmentnoticesection.php:67 +#. TRANS: Title. +#: lib/attachmentnoticesection.php:68 msgid "Notices where this attachment appears" msgstr "" -#: lib/attachmenttagcloudsection.php:48 -msgid "Tags for this attachment" -msgstr "" - #: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226 msgid "Password changing failed" msgstr "" @@ -5505,8 +3943,9 @@ msgstr "" msgid "Password changing is not allowed" msgstr "" -#: lib/channel.php:157 lib/channel.php:177 -msgid "Command results" +#. TRANS: Title for the form to block a user. +#: lib/blockform.php:70 +msgid "Block" msgstr "" #: lib/channel.php:229 lib/mailhandler.php:142 @@ -5517,44 +3956,46 @@ msgstr "" msgid "Command failed" msgstr "" -#: lib/command.php:83 lib/command.php:105 -msgid "Notice with that id does not exist" +#. TRANS: Command exception text shown when a notice ID is requested that does not exist. +#: lib/command.php:84 lib/command.php:108 +msgid "Notice with that id does not exist." msgstr "" -#: lib/command.php:99 lib/command.php:596 -msgid "User has no last notice" +#. TRANS: Command exception text shown when a last user notice is requested and it does not exist. +#. TRANS: Error text shown when a last user notice is requested and it does not exist. +#: lib/command.php:101 lib/command.php:630 +msgid "User has no last notice." msgstr "" -#. TRANS: Message given requesting a profile for a non-existing user. -#. TRANS: %s is the nickname of the user for which the profile could not be found. -#: lib/command.php:127 -#, php-format -msgid "Could not find a user with nickname %s" -msgstr "無法更新使用者" - #. TRANS: Message given getting a non-existing user. #. TRANS: %s is the nickname of the user that could not be found. -#: lib/command.php:147 -#, fuzzy, php-format -msgid "Could not find a local user with nickname %s" -msgstr "無法更新使用者" +#: lib/command.php:150 +#, php-format +msgid "Could not find a local user with nickname %s." +msgstr "" -#: lib/command.php:180 +#. TRANS: Error text shown when an unimplemented command is given. +#: lib/command.php:185 msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:225 +#. TRANS: Command exception text shown when a user tries to nudge themselves. +#: lib/command.php:231 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" #. TRANS: Message given having nudged another user. #. TRANS: %s is the nickname of the user that was nudged. -#: lib/command.php:234 +#: lib/command.php:240 #, php-format -msgid "Nudge sent to %s" +msgid "Nudge sent to %s." msgstr "" -#: lib/command.php:260 +#. TRANS: User statistics text. +#. TRANS: %1$s is the number of other user the user is subscribed to. +#. TRANS: %2$s is the number of users that are subscribed to the user. +#. TRANS: %3$s is the number of notices the user has sent. +#: lib/command.php:270 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5562,56 +4003,27 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:302 +#. TRANS: Text shown when a notice has been marked as favourite successfully. +#: lib/command.php:314 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:323 -#, fuzzy -msgid "You are already a member of that group" -msgstr "無法連結到伺服器:%s" - -#. TRANS: Message given having failed to add a user to a group. +#. TRANS: Message given having added a user to a group. #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:339 -#, fuzzy, php-format -msgid "Could not join user %1$s to group %2$s" -msgstr "無法更新使用者" - -#. TRANS: Message given having failed to remove a user from a group. -#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. -#: lib/command.php:385 +#: lib/command.php:360 #, php-format -msgid "Could not remove user %1$s from group %2$s" +msgid "%1$s joined group %2$s." msgstr "" -#. TRANS: Whois output. %s is the full name of the queried user. -#: lib/command.php:418 -#, fuzzy, php-format -msgid "Fullname: %s" -msgstr "全名" +#. TRANS: Message given having removed a user from a group. +#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group. +#: lib/command.php:408 +#, php-format +msgid "%1$s left group %2$s." +msgstr "" -#. TRANS: Whois output. %s is the location of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:422 lib/mail.php:268 -#, fuzzy, php-format -msgid "Location: %s" -msgstr "地點" - -#. TRANS: Whois output. %s is the homepage of the queried user. -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/command.php:426 lib/mail.php:271 -#, fuzzy, php-format -msgid "Homepage: %s" -msgstr "個人首頁" - -#. TRANS: Whois output. %s is the bio information of the queried user. -#: lib/command.php:430 -#, fuzzy, php-format -msgid "About: %s" -msgstr "關於" - -#: lib/command.php:457 +#. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). +#: lib/command.php:474 #, php-format msgid "" "%s is a remote profile; you can only send direct messages to users on the " @@ -5620,146 +4032,121 @@ msgstr "" #. TRANS: Message given if content is too long. #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. -#: lib/command.php:472 +#: lib/command.php:491 lib/xmppmanager.php:403 #, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d" +msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#. TRANS: Message given have sent a direct message to another user. -#. TRANS: %s is the name of the other user. -#: lib/command.php:492 +#. TRANS: Message given if content of a notice for a reply is too long. +#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. +#: lib/command.php:592 #, php-format -msgid "Direct message to %s sent" +msgid "Notice too long - maximum is %1$d characters, you sent %2$d." msgstr "" -#: lib/command.php:494 -#, fuzzy -msgid "Error sending direct message." -msgstr "使用者設定發生錯誤" - -#: lib/command.php:514 -msgid "Cannot repeat your own notice" -msgstr "" - -#: lib/command.php:519 -msgid "Already repeated that notice" -msgstr "" - -#. TRANS: Message given having repeated a notice from another user. -#. TRANS: %s is the name of the user for which the notice was repeated. -#: lib/command.php:529 +#. TRANS: Text shown having sent a reply to a notice successfully. +#. TRANS: %s is the nickname of the user of the notice the reply was sent to. +#: lib/command.php:603 #, php-format -msgid "Notice from %s repeated" +msgid "Reply to %s sent." msgstr "" -#: lib/command.php:531 -#, fuzzy -msgid "Error repeating notice." -msgstr "儲存使用者發生錯誤" - -#: lib/command.php:562 -#, php-format -msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" - -#: lib/command.php:571 -#, php-format -msgid "Reply to %s sent" -msgstr "" - -#: lib/command.php:573 +#. TRANS: Error text shown when a reply to a notice fails with an unknown reason. +#: lib/command.php:606 msgid "Error saving notice." msgstr "儲存使用者發生錯誤" -#: lib/command.php:620 -msgid "Specify the name of the user to subscribe to" +#. TRANS: Error text shown when no username was provided when issuing a subscribe command. +#: lib/command.php:655 +msgid "Specify the name of the user to subscribe to." msgstr "" -#: lib/command.php:628 +#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. +#: lib/command.php:664 msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:634 +#. TRANS: Text shown after having subscribed to another user successfully. +#. TRANS: %s is the name of the user the subscription was requested for. +#: lib/command.php:672 #, php-format -msgid "Subscribed to %s" +msgid "Subscribed to %s." msgstr "" -#: lib/command.php:655 lib/command.php:754 -msgid "Specify the name of the user to unsubscribe from" +#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command. +#. TRANS: Error text shown when no username was provided when issuing the command. +#: lib/command.php:694 lib/command.php:804 +msgid "Specify the name of the user to unsubscribe from." msgstr "" -#: lib/command.php:664 +#. TRANS: Text shown after having unsubscribed from another user successfully. +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:705 #, php-format -msgid "Unsubscribed from %s" +msgid "Unsubscribed from %s." msgstr "" -#: lib/command.php:682 lib/command.php:705 +#. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented. +#. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented. +#: lib/command.php:724 lib/command.php:750 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:685 -#, fuzzy -msgid "Notification off." -msgstr "無確認碼" - -#: lib/command.php:687 +#. TRANS: Error text shown when the command "off" fails for an unknown reason. +#: lib/command.php:731 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:708 -#, fuzzy -msgid "Notification on." -msgstr "無確認碼" - -#: lib/command.php:710 +#. TRANS: Error text shown when the command "on" fails for an unknown reason. +#: lib/command.php:757 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:723 -msgid "Login command is disabled" +#. TRANS: Error text shown when issuing the login command while login is disabled. +#: lib/command.php:771 +msgid "Login command is disabled." msgstr "" -#: lib/command.php:734 +#. TRANS: Text shown after issuing the login command successfully. +#. TRANS: %s is a logon link.. +#: lib/command.php:784 #, php-format -msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgid "This link is useable only once and is valid for only 2 minutes: %s." msgstr "" -#: lib/command.php:761 -#, fuzzy, php-format -msgid "Unsubscribed %s" -msgstr "此帳號已註冊" +#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user). +#. TRANS: %s is the name of the user the unsubscription was requested for. +#: lib/command.php:813 +#, php-format +msgid "Unsubscribed %s." +msgstr "" -#: lib/command.php:778 -#, fuzzy -msgid "You are not subscribed to anyone." -msgstr "此帳號已註冊" - -#: lib/command.php:780 +#. TRANS: Text shown after requesting other users a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed users. +#: lib/command.php:836 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "此帳號已註冊" -#: lib/command.php:800 -#, fuzzy -msgid "No one is subscribed to you." -msgstr "無此訂閱" - -#: lib/command.php:802 +#. TRANS: Text shown after requesting other users that are subscribed to a user (followers). +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribing users. +#: lib/command.php:863 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "無此訂閱" -#: lib/command.php:822 -#, fuzzy -msgid "You are not a member of any groups." -msgstr "無法連結到伺服器:%s" - -#: lib/command.php:824 +#. TRANS: Text shown after requesting groups a user is subscribed to. +#. TRANS: This message supports plural forms. This message is followed by a +#. TRANS: hard coded space and a comma separated list of subscribed groups. +#: lib/command.php:890 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "無法連結到伺服器:%s" -#: lib/command.php:838 +#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings. +#: lib/command.php:905 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5801,11 +4188,6 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:135 -#, fuzzy -msgid "No configuration file found. " -msgstr "無確認碼" - #: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" @@ -5830,23 +4212,10 @@ msgstr "" msgid "Updates by SMS" msgstr "" -#: lib/connectsettingsaction.php:120 -#, fuzzy -msgid "Connections" -msgstr "連結" - -#: lib/connectsettingsaction.php:121 -msgid "Authorized connected applications" -msgstr "" - #: lib/dberroraction.php:60 msgid "Database error" msgstr "" -#: lib/designsettings.php:105 -msgid "Upload file" -msgstr "" - #: lib/designsettings.php:109 msgid "" "You can upload your personal background image. The maximum file size is 2MB." @@ -5860,11 +4229,6 @@ msgstr "" msgid "Disfavor this notice" msgstr "" -#: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy -msgid "Favor this notice" -msgstr "無此通知" - #: lib/favorform.php:140 msgid "Favor" msgstr "" @@ -5922,15 +4286,6 @@ msgstr "" msgid "URL of the homepage or blog of the group or topic" msgstr "" -#: lib/groupeditform.php:168 -msgid "Describe the group or topic" -msgstr "" - -#: lib/groupeditform.php:170 -#, php-format -msgid "Describe the group or topic in %d characters" -msgstr "" - #: lib/groupeditform.php:179 msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" @@ -5941,36 +4296,75 @@ msgstr "" msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" -#: lib/groupnav.php:85 +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:86 +msgctxt "MENU" msgid "Group" msgstr "" -#: lib/groupnav.php:101 +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:89 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: lib/groupnav.php:95 +msgctxt "MENU" +msgid "Members" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:98 +#, php-format +msgctxt "TOOLTIP" +msgid "%s group members" +msgstr "" + +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:108 +msgctxt "MENU" msgid "Blocked" msgstr "" -#: lib/groupnav.php:102 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:111 #, php-format +msgctxt "TOOLTIP" msgid "%s blocked users" msgstr "" -#: lib/groupnav.php:108 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:120 #, php-format +msgctxt "TOOLTIP" msgid "Edit %s group properties" msgstr "" -#: lib/groupnav.php:113 -#, fuzzy +#. TRANS: Menu item in the group navigation page. Only shown for group administrators. +#: lib/groupnav.php:126 +msgctxt "MENU" msgid "Logo" -msgstr "登入" +msgstr "" -#: lib/groupnav.php:114 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:129 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s logo" msgstr "" -#: lib/groupnav.php:120 +#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. +#. TRANS: %s is the nickname of the group. +#: lib/groupnav.php:138 #, php-format +msgctxt "TOOLTIP" msgid "Add or edit %s design" msgstr "" @@ -6001,12 +4395,8 @@ msgstr "" msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:93 -#, fuzzy -msgid "Partial upload." -msgstr "更新個人圖像" - -#: lib/imagefile.php:101 lib/mediafile.php:170 +#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason. +#: lib/imagefile.php:101 lib/mediafile.php:179 msgid "System error uploading file." msgstr "" @@ -6016,7 +4406,7 @@ msgstr "" #: lib/imagefile.php:122 msgid "Lost our file." -msgstr "" +msgstr "無法儲存個人資料" #: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" @@ -6040,23 +4430,13 @@ msgstr "" msgid "Unknown inbox source %d." msgstr "" -#: lib/joinform.php:114 -#, fuzzy -msgid "Join" -msgstr "登入" - #: lib/leaveform.php:114 msgid "Leave" msgstr "" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "使用者名稱或密碼無效" - -#: lib/logingroupnav.php:86 -msgid "Sign up for a new account" -msgstr "" +msgstr "使用者名稱或密碼錯誤" #. TRANS: Subject for address confirmation email #: lib/mail.php:174 @@ -6094,34 +4474,6 @@ msgid "" "your subscribers list and report as spam to site administrators at %s" msgstr "" -#. TRANS: Main body of new-subscriber notification e-mail -#: lib/mail.php:254 -#, php-format -msgid "" -"%1$s is now listening to your notices on %2$s.\n" -"\n" -"\t%3$s\n" -"\n" -"%4$s%5$s%6$s\n" -"Faithfully yours,\n" -"%7$s.\n" -"\n" -"----\n" -"Change your email address or notification options at %8$s\n" -msgstr "" - -#. TRANS: Profile info line in new-subscriber notification e-mail -#: lib/mail.php:274 -#, fuzzy, php-format -msgid "Bio: %s" -msgstr "自我介紹" - -#. TRANS: Subject of notification mail for new posting email address -#: lib/mail.php:304 -#, fuzzy, php-format -msgid "New email address for posting to %s" -msgstr "查無此使用者所註冊的信箱" - #. TRANS: Body of notification mail for new posting email address #: lib/mail.php:308 #, php-format @@ -6136,18 +4488,6 @@ msgid "" "%4$s" msgstr "" -#. TRANS: Subject line for SMS-by-email notification messages -#: lib/mail.php:433 -#, fuzzy, php-format -msgid "%s status" -msgstr "%1$s的狀態是%2$s" - -#. TRANS: Subject line for SMS-by-email address confirmation message -#: lib/mail.php:460 -#, fuzzy -msgid "SMS confirmation" -msgstr "無確認碼" - #. TRANS: Main body heading for SMS-by-email address confirmation message #: lib/mail.php:463 #, php-format @@ -6203,12 +4543,6 @@ msgid "" "%5$s\n" msgstr "" -#. TRANS: Subject for favorite notification email -#: lib/mail.php:589 -#, php-format -msgid "%s (@%s) added your notice as a favorite" -msgstr "" - #. TRANS: Body for favorite notification email #: lib/mail.php:592 #, php-format @@ -6287,16 +4621,6 @@ msgstr "" msgid "from" msgstr "" -#: lib/mailhandler.php:37 -#, fuzzy -msgid "Could not parse message." -msgstr "無法更新使用者" - -#: lib/mailhandler.php:42 -#, fuzzy -msgid "Not a registered user." -msgstr "此恢復碼錯誤" - #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." msgstr "" @@ -6310,56 +4634,64 @@ msgstr "" msgid "Unsupported message type: %s" msgstr "" -#: lib/mediafile.php:98 lib/mediafile.php:123 +#. TRANS: Client exception thrown when a database error was thrown during a file upload operation. +#: lib/mediafile.php:99 lib/mediafile.php:125 msgid "There was a database error while saving your file. Please try again." msgstr "" -#: lib/mediafile.php:142 +#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini. +#: lib/mediafile.php:145 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" -#: lib/mediafile.php:147 +#. TRANS: Client exception. +#: lib/mediafile.php:151 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" -#: lib/mediafile.php:152 +#. TRANS: Client exception. +#: lib/mediafile.php:157 msgid "The uploaded file was only partially uploaded." msgstr "" -#: lib/mediafile.php:159 -msgid "Missing a temporary folder." -msgstr "" - -#: lib/mediafile.php:162 +#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation. +#: lib/mediafile.php:169 msgid "Failed to write file to disk." msgstr "" -#: lib/mediafile.php:165 +#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension. +#: lib/mediafile.php:173 msgid "File upload stopped by extension." msgstr "" -#: lib/mediafile.php:179 lib/mediafile.php:217 +#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota. +#: lib/mediafile.php:189 lib/mediafile.php:232 msgid "File exceeds user's quota." msgstr "" -#: lib/mediafile.php:197 lib/mediafile.php:234 +#. TRANS: Client exception thrown when a file upload operation fails because the file could +#. TRANS: not be moved from the temporary folder to the permanent file location. +#: lib/mediafile.php:209 lib/mediafile.php:251 msgid "File could not be moved to destination directory." msgstr "" -#: lib/mediafile.php:202 lib/mediafile.php:238 -msgid "Could not determine file's MIME type." +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %1$s is the file type that was denied, %2$s is the application part of +#. TRANS: the MIME type that was denied. +#: lib/mediafile.php:340 +#, php-format +msgid "" +"\"%1$s\" is not a supported file type on this server. Try using another %2$s " +"format." msgstr "" -#: lib/mediafile.php:318 +#. TRANS: Client exception thrown trying to upload a forbidden MIME type. +#. TRANS: %s is the file type that was denied. +#: lib/mediafile.php:345 #, php-format -msgid " Try using another %s format." -msgstr "" - -#: lib/mediafile.php:323 -#, php-format -msgid "%s is not a supported file type on this server." +msgid "\"%s\" is not a supported file type on this server." msgstr "" #: lib/messageform.php:120 @@ -6370,43 +4702,29 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:185 -#, fuzzy -msgid "Available characters" -msgstr "6個以上字元" - -#: lib/messageform.php:178 lib/noticeform.php:236 +#: lib/messageform.php:178 lib/noticeform.php:237 msgctxt "Send button for sending notice" msgid "Send" msgstr "" -#: lib/noticeform.php:160 -#, fuzzy -msgid "Send a notice" -msgstr "新訊息" - -#: lib/noticeform.php:173 +#: lib/noticeform.php:174 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:192 +#: lib/noticeform.php:193 msgid "Attach" msgstr "" -#: lib/noticeform.php:196 +#: lib/noticeform.php:197 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:212 -msgid "Share my location" -msgstr "" - -#: lib/noticeform.php:215 -msgid "Do not share my location" -msgstr "" - #: lib/noticeform.php:216 +msgid "Do not share my location" +msgstr "無法取消信箱確認" + +#: lib/noticeform.php:217 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" @@ -6441,13 +4759,8 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 -#, fuzzy -msgid "in context" -msgstr "無內容" - -#: lib/noticelist.php:603 -msgid "Repeated by" +#: lib/noticelist.php:502 +msgid "web" msgstr "" #: lib/noticelist.php:630 @@ -6458,10 +4771,6 @@ msgstr "" msgid "Reply" msgstr "" -#: lib/noticelist.php:675 -msgid "Notice repeated" -msgstr "" - #: lib/nudgeform.php:116 msgid "Nudge this user" msgstr "" @@ -6475,27 +4784,23 @@ msgid "Send a nudge to this user" msgstr "" #: lib/oauthstore.php:283 -msgid "Error inserting new profile" -msgstr "新的更人資料輸入錯誤" +msgid "Error inserting new profile." +msgstr "" #: lib/oauthstore.php:291 -msgid "Error inserting avatar" -msgstr "個人圖像插入錯誤" - -#: lib/oauthstore.php:306 -msgid "Error updating remote profile" -msgstr "更新遠端個人資料發生錯誤" +msgid "Error inserting avatar." +msgstr "" #: lib/oauthstore.php:311 -msgid "Error inserting remote profile" -msgstr "新增外部個人資料發生錯誤(Error inserting remote profile)" +msgid "Error inserting remote profile." +msgstr "" -#: lib/oauthstore.php:345 -#, fuzzy -msgid "Duplicate notice" -msgstr "新訊息" +#. TRANS: Exception thrown when a notice is denied because it has been sent before. +#: lib/oauthstore.php:346 +msgid "Duplicate notice." +msgstr "" -#: lib/oauthstore.php:490 +#: lib/oauthstore.php:491 msgid "Couldn't insert new subscription." msgstr "無法新增訂閱" @@ -6532,29 +4837,15 @@ msgstr "" msgid "Tags in %s's notices" msgstr "" -#: lib/plugin.php:115 +#. TRANS: Displayed as version information for a plugin if no version information was found. +#: lib/plugin.php:116 msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82 -#, fuzzy -msgid "Subscriptions" -msgstr "所有訂閱" - #: lib/profileaction.php:126 msgid "All subscriptions" msgstr "所有訂閱" -#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90 -#, fuzzy -msgid "Subscribers" -msgstr "此帳號已註冊" - -#: lib/profileaction.php:161 -#, fuzzy -msgid "All subscribers" -msgstr "所有訂閱" - #: lib/profileaction.php:191 msgid "User ID" msgstr "" @@ -6596,27 +4887,10 @@ msgstr "" msgid "Popular" msgstr "" -#: lib/redirectingaction.php:95 -msgid "No return-to arguments." -msgstr "" - -#: lib/repeatform.php:107 -msgid "Repeat this notice?" -msgstr "" - #: lib/repeatform.php:132 msgid "Yes" msgstr "" -#: lib/repeatform.php:132 -msgid "Repeat this notice" -msgstr "" - -#: lib/revokeroleform.php:91 -#, php-format -msgid "Revoke the \"%s\" role from this user" -msgstr "" - #: lib/router.php:709 msgid "No single user defined for single-user mode." msgstr "" @@ -6625,23 +4899,24 @@ msgstr "" msgid "Sandbox" msgstr "" -#: lib/sandboxform.php:78 -msgid "Sandbox this user" -msgstr "" - -#: lib/searchaction.php:120 +#. TRANS: Fieldset legend for the search form. +#: lib/searchaction.php:121 msgid "Search site" msgstr "" -#: lib/searchaction.php:126 +#. TRANS: Used as a field label for the field where one or more keywords +#. TRANS: for searching can be entered. +#: lib/searchaction.php:129 msgid "Keyword(s)" msgstr "" -#: lib/searchaction.php:127 +#: lib/searchaction.php:130 +msgctxt "BUTTON" msgid "Search" msgstr "" -#: lib/searchaction.php:162 +#. TRANS: Definition list item with instructions on how to get (better) search results. +#: lib/searchaction.php:170 msgid "Search help" msgstr "" @@ -6669,24 +4944,6 @@ msgstr "" msgid "More..." msgstr "" -#: lib/silenceform.php:67 -msgid "Silence" -msgstr "" - -#: lib/silenceform.php:78 -msgid "Silence this user" -msgstr "" - -#: lib/subgroupnav.php:83 -#, fuzzy, php-format -msgid "People %s subscribes to" -msgstr "無此訂閱" - -#: lib/subgroupnav.php:91 -#, fuzzy, php-format -msgid "People subscribed to %s" -msgstr "此帳號已註冊" - #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" @@ -6723,14 +4980,7 @@ msgstr "" msgid "The theme file is missing or the upload failed." msgstr "" -#: lib/themeuploader.php:91 lib/themeuploader.php:102 -#: lib/themeuploader.php:253 lib/themeuploader.php:257 -#: lib/themeuploader.php:265 lib/themeuploader.php:272 -#, fuzzy -msgid "Failed saving theme." -msgstr "無法上傳個人圖像" - -#: lib/themeuploader.php:139 +#: lib/themeuploader.php:147 msgid "Invalid theme: bad directory structure." msgstr "" @@ -6743,22 +4993,21 @@ msgstr "" msgid "Invalid theme archive: missing file css/display.css" msgstr "" -#: lib/themeuploader.php:205 +#: lib/themeuploader.php:218 msgid "" "Theme contains invalid file or folder name. Stick with ASCII letters, " "digits, underscore, and minus sign." msgstr "" -#: lib/themeuploader.php:216 +#: lib/themeuploader.php:224 +msgid "Theme contains unsafe file extension names; may be unsafe." +msgstr "" + +#: lib/themeuploader.php:241 #, php-format msgid "Theme contains file of type '.%s', which is not allowed." msgstr "" -#: lib/themeuploader.php:234 -#, fuzzy -msgid "Error opening theme archive." -msgstr "更新遠端個人資料發生錯誤" - #: lib/topposterssection.php:74 msgid "Top posters" msgstr "" @@ -6767,48 +5016,15 @@ msgstr "" msgid "Unsandbox" msgstr "" -#: lib/unsandboxform.php:80 -msgid "Unsandbox this user" -msgstr "" - #: lib/unsilenceform.php:67 msgid "Unsilence" msgstr "" -#: lib/unsilenceform.php:78 -msgid "Unsilence this user" -msgstr "" - -#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 -#, fuzzy -msgid "Unsubscribe from this user" -msgstr "此帳號已註冊" - -#: lib/unsubscribeform.php:137 -#, fuzzy -msgid "Unsubscribe" -msgstr "此帳號已註冊" - -#: lib/usernoprofileexception.php:58 -#, php-format -msgid "User %s (%d) has no profile record." -msgstr "" - -#: lib/userprofile.php:117 -#, fuzzy -msgid "Edit Avatar" -msgstr "個人圖像" - -#: lib/userprofile.php:234 lib/userprofile.php:248 -msgid "User actions" -msgstr "" - #: lib/userprofile.php:237 msgid "User deletion in progress..." msgstr "" #: lib/userprofile.php:263 -#, fuzzy msgid "Edit profile settings" msgstr "使用者設定發生錯誤" @@ -6828,10 +5044,6 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/userprofile.php:364 -msgid "User role" -msgstr "" - #: lib/userprofile.php:366 msgctxt "role" msgid "Administrator" @@ -6843,70 +5055,64 @@ msgid "Moderator" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1100 +#: lib/util.php:1103 msgid "a few seconds ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1103 +#: lib/util.php:1106 msgid "about a minute ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1107 +#: lib/util.php:1110 #, php-format -msgid "about %d minutes ago" -msgstr "" +msgid "about one minute ago" +msgid_plural "about %d minutes ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1110 +#: lib/util.php:1113 msgid "about an hour ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1114 +#: lib/util.php:1117 #, php-format -msgid "about %d hours ago" -msgstr "" +msgid "about one hour ago" +msgid_plural "about %d hours ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1117 +#: lib/util.php:1120 msgid "about a day ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1121 +#: lib/util.php:1124 #, php-format -msgid "about %d days ago" -msgstr "" +msgid "about one day ago" +msgid_plural "about %d days ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1124 +#: lib/util.php:1127 msgid "about a month ago" msgstr "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1128 +#: lib/util.php:1131 #, php-format -msgid "about %d months ago" -msgstr "" +msgid "about one month ago" +msgid_plural "about %d months ago" +msgstr[0] "" #. TRANS: Used in notices to indicate when the notice was made compared to now. -#: lib/util.php:1131 +#: lib/util.php:1134 msgid "about a year ago" msgstr "" -#: lib/webcolor.php:82 -#, fuzzy, php-format -msgid "%s is not a valid color!" -msgstr "個人首頁位址錯誤" - #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" - -#: lib/xmppmanager.php:403 -#, php-format -msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" diff --git a/plugins/APCPlugin.php b/plugins/APC/APCPlugin.php similarity index 99% rename from plugins/APCPlugin.php rename to plugins/APC/APCPlugin.php index 666f64b147..0069779004 100644 --- a/plugins/APCPlugin.php +++ b/plugins/APC/APCPlugin.php @@ -116,4 +116,3 @@ class APCPlugin extends Plugin return true; } } - diff --git a/plugins/APC/locale/APC.pot b/plugins/APC/locale/APC.pot new file mode 100644 index 0000000000..5a02165ae5 --- /dev/null +++ b/plugins/APC/locale/APC.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" diff --git a/plugins/APC/locale/be-tarask/LC_MESSAGES/APC.po b/plugins/APC/locale/be-tarask/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..bf8ac0c1ff --- /dev/null +++ b/plugins/APC/locale/be-tarask/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Выкарыстоўваць кэш зьменных <a href=\"http://pecl.php.net/package/apc\">APC</" +"a> для захаваньня вынікаў запытаў." diff --git a/plugins/APC/locale/br/LC_MESSAGES/APC.po b/plugins/APC/locale/br/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..2183ce6590 --- /dev/null +++ b/plugins/APC/locale/br/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Ober gant an <a href=\"http://pecl.php.net/package/apc\">APC</a> grubuilh " +"kemm-digemm evit krubuilhañ disoc'hoù ar rekedoù." diff --git a/plugins/APC/locale/es/LC_MESSAGES/APC.po b/plugins/APC/locale/es/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..c3f550489d --- /dev/null +++ b/plugins/APC/locale/es/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Usa el caché de variable <a href=\"http://pecl.php.net/package/apc\">APC</a> " +"para copiar en caché los resultados de consulta." diff --git a/plugins/APC/locale/fr/LC_MESSAGES/APC.po b/plugins/APC/locale/fr/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..727ff53925 --- /dev/null +++ b/plugins/APC/locale/fr/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Utilisez le cache variable <a href=\"http://pecl.php.net/package/apc\">APC</" +"a> pour mettre en cache les résultats de requêtes." diff --git a/plugins/APC/locale/gl/LC_MESSAGES/APC.po b/plugins/APC/locale/gl/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..346f56c223 --- /dev/null +++ b/plugins/APC/locale/gl/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Use a caché variable <a href=\"http://pecl.php.net/package/apc\">APC</a> " +"para memorizar os resultados da pescuda." diff --git a/plugins/APC/locale/he/LC_MESSAGES/APC.po b/plugins/APC/locale/he/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..1dcb5622ac --- /dev/null +++ b/plugins/APC/locale/he/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"שימוש במטמון המשתנים <a href=\"http://pecl.php.net/package/apc\">APC</a> כדי " +"לשמור תוצאות לשאילתות במטמון." diff --git a/plugins/APC/locale/ia/LC_MESSAGES/APC.po b/plugins/APC/locale/ia/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..044126ae65 --- /dev/null +++ b/plugins/APC/locale/ia/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Usar le cache de variabiles <a href=\"http://pecl.php.net/package/apc\">APC</" +"a> pro immagazinar le resultatos de consultas." diff --git a/plugins/APC/locale/id/LC_MESSAGES/APC.po b/plugins/APC/locale/id/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..377e44831b --- /dev/null +++ b/plugins/APC/locale/id/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Gunakan singgahan variabel <a href=\"http://pecl.php.net/package/apc\">APC</" +"a> untuk menyinggah hasil pencarian." diff --git a/plugins/APC/locale/mk/LC_MESSAGES/APC.po b/plugins/APC/locale/mk/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..db9d292608 --- /dev/null +++ b/plugins/APC/locale/mk/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Користи променлив кеш <a href=\"http://pecl.php.net/package/apc\">APC</a> за " +"кеширање на резултати од барања." diff --git a/plugins/APC/locale/nb/LC_MESSAGES/APC.po b/plugins/APC/locale/nb/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..80afde4aeb --- /dev/null +++ b/plugins/APC/locale/nb/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Bruk <a href=\"http://pecl.php.net/package/apc\">APC</a>-" +"variabelhurtiglagring til å hurtiglagre søkeresultat." diff --git a/plugins/APC/locale/nl/LC_MESSAGES/APC.po b/plugins/APC/locale/nl/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..827e5b07af --- /dev/null +++ b/plugins/APC/locale/nl/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"De variabelencache <a href=\"http://pecl.php.net/package/apc\">APC</a> " +"gebruiken op resultaten van zoekopdrachten te cachen." diff --git a/plugins/APC/locale/pl/LC_MESSAGES/APC.po b/plugins/APC/locale/pl/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..12d77edb4c --- /dev/null +++ b/plugins/APC/locale/pl/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Sp5uhe +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Korzystaj z <a href=\"http://pecl.php.net/package/apc\">APC</a> pamięci " +"podręcznej zmiennych do przechowywania wyników zapytań." diff --git a/plugins/APC/locale/pt/LC_MESSAGES/APC.po b/plugins/APC/locale/pt/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..51f5644beb --- /dev/null +++ b/plugins/APC/locale/pt/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Usar o <a href=\"http://pecl.php.net/package/apc\">APC</a> para armazenar " +"resultados de consultas em cache." diff --git a/plugins/APC/locale/pt_BR/LC_MESSAGES/APC.po b/plugins/APC/locale/pt_BR/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..ed7583e5c8 --- /dev/null +++ b/plugins/APC/locale/pt_BR/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Usar o <a href=\"http://pecl.php.net/package/apc\">APC</a> para armazenar " +"resultados de consultas em cache." diff --git a/plugins/APC/locale/ru/LC_MESSAGES/APC.po b/plugins/APC/locale/ru/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..617b924567 --- /dev/null +++ b/plugins/APC/locale/ru/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Использование кеша переменных <a href=\"http://pecl.php.net/package/apc" +"\">APC</a> для хранения результатов запросов." diff --git a/plugins/APC/locale/tl/LC_MESSAGES/APC.po b/plugins/APC/locale/tl/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..b9b45b8a0c --- /dev/null +++ b/plugins/APC/locale/tl/LC_MESSAGES/APC.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - APC to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Gamitin ang pabagubagong taguan ng <a href=\"http://pecl.php.net/package/apc" +"\">APC</a> upang ikubli ang resulta ng pagtatanong." diff --git a/plugins/APC/locale/uk/LC_MESSAGES/APC.po b/plugins/APC/locale/uk/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..2b381d3313 --- /dev/null +++ b/plugins/APC/locale/uk/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"Використання <a href=\"http://pecl.php.net/package/apc\">APC</a> для " +"різноманітних запитів до кешу." diff --git a/plugins/APC/locale/zh_CN/LC_MESSAGES/APC.po b/plugins/APC/locale/zh_CN/LC_MESSAGES/APC.po new file mode 100644 index 0000000000..39666116b4 --- /dev/null +++ b/plugins/APC/locale/zh_CN/LC_MESSAGES/APC.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - APC to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - APC\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:29+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-apc\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: APCPlugin.php:115 +msgid "" +"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache " +"to cache query results." +msgstr "" +"使用 <a href=\"http://pecl.php.net/package/apc\">APC</a> 变量缓存来缓存查询结" +"果。" diff --git a/plugins/AccountManager/AccountManagementControlDocumentAction.php b/plugins/AccountManager/AccountManagementControlDocumentAction.php new file mode 100644 index 0000000000..3fcea5af42 --- /dev/null +++ b/plugins/AccountManager/AccountManagementControlDocumentAction.php @@ -0,0 +1,98 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Implements the JSON Account Management endpoint + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category AccountManager + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @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); +} + +/** + * Implements the JSON Account Management endpoint + * + * @category AccountManager + * @package StatusNet + * @author ECraig Andrews <candrews@integralblue.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class AccountManagementControlDocumentAction extends Action +{ + /** + * handle the action + * + * @param array $args unused. + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + + header('Content-Type: application/json; charset=utf-8'); + + $amcd = array(); + + if(Event::handle('StartAccountManagementControlDocument', array(&$amcd))) { + + $amcd['version'] = 1; + $amcd['sessionstatus'] = array( + 'method' => 'GET', + 'path' => common_local_url('AccountManagementSessionStatus') + ); + $amcd['auth-methods'] = array( + 'username-password-form' => array( + 'connect' => array( + 'method' => 'POST', + 'path' => common_local_url('login'), + 'params' => array( + 'username' => 'nickname', + 'password' => 'password' + ) + ), + 'disconnect' => array( + 'method' => 'GET', + 'path' => common_local_url('logout') + ) + ) + ); + + Event::handle('EndAccountManagementControlDocument', array(&$amcd)); + } + + print json_encode($amcd); + + return true; + } + + function isReadOnly() + { + return true; + } +} diff --git a/plugins/AccountManager/AccountManagementSessionStatusAction.php b/plugins/AccountManager/AccountManagementSessionStatusAction.php new file mode 100644 index 0000000000..48b6034ff6 --- /dev/null +++ b/plugins/AccountManager/AccountManagementSessionStatusAction.php @@ -0,0 +1,73 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Implements the session status Account Management endpoint + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category AccountManager + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @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); +} + +/** + * Implements the session status Account Management endpoint + * + * @category AccountManager + * @package StatusNet + * @author ECraig Andrews <candrews@integralblue.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class AccountManagementSessionStatusAction extends Action +{ + /** + * handle the action + * + * @param array $args unused. + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + + $cur = common_current_user(); + if(empty($cur)) { + print 'none'; + } else { + //TODO it seems " should be escaped in the name and id, but the spec doesn't seem to indicate how to do that + print 'active; name="' . $cur->nickname . '"; id="' . $cur->nickname . '"'; + } + + return true; + } + + function isReadOnly() + { + return true; + } +} diff --git a/plugins/AccountManager/AccountManagerPlugin.php b/plugins/AccountManager/AccountManagerPlugin.php new file mode 100644 index 0000000000..52dd64a24b --- /dev/null +++ b/plugins/AccountManager/AccountManagerPlugin.php @@ -0,0 +1,115 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin to implement the Account Manager specification + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @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); +} + +class AccountManagerPlugin extends Plugin +{ + + const AM_REL = 'acct-mgmt'; + + function __construct() + { + parent::__construct(); + } + + function onAutoload($cls) + { + switch ($cls) + { + case 'AccountManagementControlDocumentAction': + require_once(INSTALLDIR.'/plugins/AccountManager/AccountManagementControlDocumentAction.php'); + return false; + case 'AccountManagementSessionStatusAction': + require_once(INSTALLDIR.'/plugins/AccountManager/AccountManagementSessionStatusAction.php'); + return false; + } + } + + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m path-to-action mapper + * @return boolean hook return + */ + function onRouterInitialized($m) + { + // Discovery actions + $m->connect('main/amcd.json', + array('action' => 'AccountManagementControlDocument')); + $m->connect('main/amsessionstatus', + array('action' => 'AccountManagementSessionStatus')); + return true; + } + + function onStartHostMetaLinks(&$links) { + $links[] = array('rel' => AccountManagerPlugin::AM_REL, + 'href' => common_local_url('AccountManagementControlDocument')); + } + + function onStartShowHTML($action) + { + //Account management discovery link + header('Link: <'.common_local_url('AccountManagementControlDocument').'>; rel="'. AccountManagerPlugin::AM_REL.'"; type="application/json"'); + + //Account management login status + $cur = common_current_user(); + if(empty($cur)) { + header('X-Account-Management-Status: none'); + } else { + //TODO it seems " should be escaped in the name and id, but the spec doesn't seem to indicate how to do that + header('X-Account-Management-Status: active; name="' . $cur->nickname . '"; id="' . $cur->nickname . '"'); + } + } + + function onLoginAction($action, &$login) { + switch ($action) + { + case 'AccountManagementControlDocument': + $login = true; + return false; + default: + return true; + } + + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'AccountManager', + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:AccountManager', + 'rawdescription' => + _m('The Account Manager plugin implements the Account Manager specification.')); + return true; + } +} diff --git a/plugins/AccountManager/README b/plugins/AccountManager/README new file mode 100644 index 0000000000..a0715927b3 --- /dev/null +++ b/plugins/AccountManager/README @@ -0,0 +1,16 @@ +The Account Manager plugin implements the Account Manager specification to "allow a server to describe an account-based user identification process in terms that a user-agent can understand." + +See https://wiki.mozilla.org/Labs/Weave/Identity/Account_Manager/Spec/Latest + +Installation +============ +add "addPlugin('accountManager');" +to the bottom of your config.php + +Settings +======== +none + +Example +======= +addPlugin('accountManager'); diff --git a/plugins/Adsense/AdsensePlugin.php b/plugins/Adsense/AdsensePlugin.php index cd6fc3503c..1965f95eab 100644 --- a/plugins/Adsense/AdsensePlugin.php +++ b/plugins/Adsense/AdsensePlugin.php @@ -77,7 +77,6 @@ if (!defined('STATUSNET')) { * * @seeAlso UAPPlugin */ - class AdsensePlugin extends UAPPlugin { public $adScript = 'http://pagead2.googlesyndication.com/pagead/show_ads.js'; @@ -89,7 +88,6 @@ class AdsensePlugin extends UAPPlugin // A little bit of chicanery so we avoid overwriting values that // are passed in with the constructor - foreach (array('mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper', 'adScript', 'client') as $setting) { $value = common_config('adsense', strtolower($setting)); if (!empty($value)) { // not found @@ -105,7 +103,6 @@ class AdsensePlugin extends UAPPlugin * * @return void */ - protected function showMediumRectangle($action) { $this->showAdsenseCode($action, 300, 250, $this->mediumRectangle); @@ -118,7 +115,6 @@ class AdsensePlugin extends UAPPlugin * * @return void */ - protected function showRectangle($action) { $this->showAdsenseCode($action, 180, 150, $this->rectangle); @@ -131,7 +127,6 @@ class AdsensePlugin extends UAPPlugin * * @return void */ - protected function showWideSkyscraper($action) { $this->showAdsenseCode($action, 160, 600, $this->wideSkyscraper); @@ -144,7 +139,6 @@ class AdsensePlugin extends UAPPlugin * * @return void */ - protected function showLeaderboard($action) { $this->showAdsenseCode($action, 728, 90, $this->leaderboard); @@ -160,7 +154,6 @@ class AdsensePlugin extends UAPPlugin * * @return void */ - protected function showAdsenseCode($action, $width, $height, $slot) { $code = 'google_ad_client = "'.$this->client.'"; '; @@ -198,11 +191,22 @@ class AdsensePlugin extends UAPPlugin function onEndAdminPanelNav($menu) { if (AdminPanelAction::canAdmin('adsense')) { // TRANS: Menu item title/tooltip - $menu_title = _('Adsense configuration'); + $menu_title = _m('AdSense configuration'); // TRANS: Menu item for site administration - $menu->out->menuItem(common_local_url('adsenseadminpanel'), _('Adsense'), + $menu->out->menuItem(common_local_url('adsenseadminpanel'), _m('AdSense'), $menu_title, $action_name == 'adsenseadminpanel', 'nav_adsense_admin_panel'); } return true; } -} \ No newline at end of file + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'BlankAdPlugin', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Adsense', + 'rawdescription' => + _m('Plugin to add Google AdSense to StatusNet sites.')); + return true; + } +} diff --git a/plugins/Adsense/adsenseadminpanel.php b/plugins/Adsense/adsenseadminpanel.php index 7b99cf8051..110cc9e2b7 100644 --- a/plugins/Adsense/adsenseadminpanel.php +++ b/plugins/Adsense/adsenseadminpanel.php @@ -40,7 +40,6 @@ 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 AdsenseadminpanelAction extends AdminPanelAction { /** @@ -48,10 +47,9 @@ class AdsenseadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { - return _('Adsense'); + return _m('TITLE', 'AdSense'); } /** @@ -59,10 +57,9 @@ class AdsenseadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - return _('Adsense settings for this StatusNet site'); + return _m('AdSense settings for this StatusNet site'); } /** @@ -70,7 +67,6 @@ class AdsenseadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new AdsenseAdminPanelForm($this); @@ -83,7 +79,6 @@ class AdsenseadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array('adsense' => array('adScript', 'client', 'mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper')); @@ -97,11 +92,9 @@ class AdsenseadminpanelAction extends AdminPanelAction } // This throws an exception on validation errors - $this->validate($values); // assert(all values are valid); - $config = new Config(); $config->query('BEGIN'); @@ -125,7 +118,6 @@ class AdsenseadminpanelAction extends AdminPanelAction /** * Form for the adsense admin panel */ - class AdsenseAdminPanelForm extends AdminForm { /** @@ -133,7 +125,6 @@ class AdsenseAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'form_adsense_admin_panel'; @@ -144,7 +135,6 @@ class AdsenseAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_adsense'; @@ -155,7 +145,6 @@ class AdsenseAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('adsenseadminpanel'); @@ -166,45 +155,44 @@ class AdsenseAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart('fieldset', array('id' => 'adsense_admin')); $this->out->elementStart('ul', 'form_data'); $this->li(); $this->input('client', - _('Client ID'), - _('Google client ID'), + _m('Client ID'), + _m('Google client ID'), 'adsense'); $this->unli(); $this->li(); $this->input('adScript', - _('Ad Script URL'), - _('Script URL (advanced)'), + _m('Ad script URL'), + _m('Script URL (advanced)'), 'adsense'); $this->unli(); $this->li(); $this->input('mediumRectangle', - _('Medium rectangle'), - _('Medium rectangle slot code'), + _m('Medium rectangle'), + _m('Medium rectangle slot code'), 'adsense'); $this->unli(); $this->li(); $this->input('rectangle', - _('Rectangle'), - _('Rectangle slot code'), + _m('Rectangle'), + _m('Rectangle slot code'), 'adsense'); $this->unli(); $this->li(); $this->input('leaderboard', - _('Leaderboard'), - _('Leaderboard slot code'), + _m('Leaderboard'), + _m('Leaderboard slot code'), 'adsense'); $this->unli(); $this->li(); $this->input('wideSkyscraper', - _('Skyscraper'), - _('Wide skyscraper slot code'), + _m('Skyscraper'), + _m('Wide skyscraper slot code'), 'adsense'); $this->unli(); $this->out->elementEnd('ul'); @@ -215,9 +203,8 @@ class AdsenseAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save AdSense settings')); + $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save AdSense settings')); } } diff --git a/plugins/Adsense/locale/Adsense.pot b/plugins/Adsense/locale/Adsense.pot new file mode 100644 index 0000000000..3adac7ea93 --- /dev/null +++ b/plugins/Adsense/locale/Adsense.pot @@ -0,0 +1,96 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "" diff --git a/plugins/Adsense/locale/be-tarask/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/be-tarask/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..114231d779 --- /dev/null +++ b/plugins/Adsense/locale/be-tarask/LC_MESSAGES/Adsense.po @@ -0,0 +1,103 @@ +# Translation of StatusNet - Adsense to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:23+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Устаноўкі AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Дапаўненьне для даданьня Google AdSense на сайты StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Устаноўкі AdSense для гэтага сайта StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Ідэнтыфікатар кліента" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Ідэнтыфікатар кліента Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL-адрас скрыпта рэклямы" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL-адрас скрыпта (палепшаная ўстаноўка)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Сярэдні прамавугольнік" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Слот-код сярэдняга прамавугольніка" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Прамавугольнік" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Слот-код прамавугольніка" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Дошка гонару" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Слот-код дошкі гонару" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Хмарачос" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Слот-код хмарачосу" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Захаваць" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Захаваць устаноўкі AdSense" diff --git a/plugins/Adsense/locale/br/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/br/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..8cb8ca2c9e --- /dev/null +++ b/plugins/Adsense/locale/br/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:25+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Kefluniadur AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plugin evit ouzhpennañ Google AdSense da lec'hiennoù StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Arventennoù Adsense evit al lec'hienn StatusNet-mañ." + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID an arval" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID an arval Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL ar skript kemenn" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL ar skript (araokaet)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Skouergornek etre" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Kod lakaet en ur skouergornek etre" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Skouergornek" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Kod lakaet er skouergornek" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Panell an urzhiadoù" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Kod lakaet e panell an urzhiadoù" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Giton a-serzh" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Kod lakaet en ur giton ledan a-serzh" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Enrollañ" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Enrollañ arventennoù AdSense" diff --git a/plugins/Adsense/locale/ca/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/ca/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..3824e9b22f --- /dev/null +++ b/plugins/Adsense/locale/ca/LC_MESSAGES/Adsense.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - Adsense to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:25+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuració de l'AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" +"Connector per afegir el Google AdSense a llocs web basats en StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Desa" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Desa els paràmetres de l'AdSense" diff --git a/plugins/Adsense/locale/de/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/de/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..bfd9c91557 --- /dev/null +++ b/plugins/Adsense/locale/de/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "AdSense-Konfiguration" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plugin, das Google AdSense auf StatusNet-Websites hinzufügt." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "AdSense-Einstellungen dieser StatusNet-Website" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Client-ID" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Google-Client-ID" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "Skript-URL" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Speichern" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "AdSense-Einstellungen speichern" diff --git a/plugins/Adsense/locale/es/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/es/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..600e93b3a0 --- /dev/null +++ b/plugins/Adsense/locale/es/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuración de \"AdSense\"" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Extensión para añadir Google AdSense a sitios StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "configuración de AdSense para este sitio StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID de cliente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID de cliente de Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL del script del anuncio" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL del script (avanzado)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Rectángulo mediano" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Código de espacio de rectángulo mediano" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rectángulo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Código de espacio de rectángulo" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Clasificación" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Código de espacio de clasificación" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Banderola rascacielos" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Código de espacio de banderola rascacielos ancha" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Guardar" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Guardar la configuración de AdSense" diff --git a/plugins/Adsense/locale/fr/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/fr/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..64dd5a19fb --- /dev/null +++ b/plugins/Adsense/locale/fr/LC_MESSAGES/Adsense.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - Adsense to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuration d’AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Greffon pour ajouter Google AdSense aux sites StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Paramètres Adsense pour ce site StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Identifiant du client" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID client Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "Adresse URL du script d’annonce" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL du script (avancé)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Rectangle moyen" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Code placé dans un rectangle moyen" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rectangle" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Codé placé dans le rectangle" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Panneau de commande" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Code placé dans le panneau de commande" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Bannière verticale" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Code placé dans une bannière verticale large" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Sauvegarder" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Sauvegarder les paramètres AdSense" diff --git a/plugins/Adsense/locale/gl/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/gl/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..3109ce0005 --- /dev/null +++ b/plugins/Adsense/locale/gl/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuración de AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Configuración de AdSense para este sitio StatusNet." + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Identificación do cliente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Identificación do cliente de Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rectángulo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Rañaceos" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Gardar" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Gardar a configuración de AdSense" diff --git a/plugins/Adsense/locale/ia/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/ia/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..398f41cb92 --- /dev/null +++ b/plugins/Adsense/locale/ia/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuration de AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plug-in pro adder Google AdSense a sitos StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Configuration de AdSense pro iste sito StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID de cliente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID de cliente Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL del script de publicitate" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL del script (avantiate)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Rectangulo medie" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Codice pro interstitio a rectangulo medie" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rectangulo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Codice pro interstitio a rectangulo" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Bandiera large" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Codice pro interstitio a bandiera large" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Grattacelo" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Codice pro interstitio a grattacelo large" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Salveguardar" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Salveguardar configurationes de AdSense" diff --git a/plugins/Adsense/locale/it/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/it/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..b741344093 --- /dev/null +++ b/plugins/Adsense/locale/it/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Italian (Italiano) +# Expored from translatewiki.net +# +# Author: Milocasagrande +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Italian <http://translatewiki.net/wiki/Portal:it>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: it\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configurazione AdSene" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plugin per aggiungere Google AdSense ai siti StatusNet" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Impostazioni AdSense per questo sito StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID client" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID client Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL script Ad" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL script (avanzato)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Rettangolo medio" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rettangolo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "" diff --git a/plugins/Adsense/locale/ka/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/ka/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..7ff0daff8b --- /dev/null +++ b/plugins/Adsense/locale/ka/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Georgian (ქართული) +# Expored from translatewiki.net +# +# Author: Zaal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Georgian <http://translatewiki.net/wiki/Portal:ka>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ka\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "AdSense კონფიგურაცია" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "AdSense პარამეტრები ამ საიტისათვის." + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "კლიენტის ID" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Google კლიენტის ID" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "სარეკლამო სკრიპტის URL" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "სკრიპტის URL (გაფართოებული)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "საშუალო მართკუთხედი" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "მართკუთხედი" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "" diff --git a/plugins/Adsense/locale/mk/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/mk/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..d09bd254a8 --- /dev/null +++ b/plugins/Adsense/locale/mk/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Нагодувања на AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Приклучок за додавање на Google AdSense во мреж. места со StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Поставки на AdSense за ова мрежно место со StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID на клиент" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID на Google-клиент" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL на рекламната скрипта" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL на скриптата (напредно)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Среден правоаголник" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Код на жлебот на средниот правоаголник" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Правоаголник" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Код на жлебот на правоаголникот" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Табла на предводници" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Код на жлебот на таблата на предводници" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Облакодер" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Код на жлебот на широкиот облакодер" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Зачувај" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Зачувај нагодувања на AdSense" diff --git a/plugins/Adsense/locale/nl/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/nl/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..2ee52177c3 --- /dev/null +++ b/plugins/Adsense/locale/nl/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "AdSense-instellingen" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plug-in om Google AdSense toe te voegen aan Statusnetsites." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "AdSense-instellingen voor deze StatusNet-website" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Client-ID" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Google client-ID" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL voor advertentiescript" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL voor script (gevorderd)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Middelgrote rechthoek" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Slotcode voor gemiddelde rechthoek" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Rechthoek" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Slotcode voor rechthoek" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Breedbeeldbanner" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Slotcode voor breedbeeldbanner" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Skyscraper" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Slotcode voor brede skyscraper" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Opslaan" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "AdSense-instellingen opslaan" diff --git a/plugins/Adsense/locale/pt/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/pt/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..bc0707079b --- /dev/null +++ b/plugins/Adsense/locale/pt/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuração do AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plugin para adicionar Google AdSense aos sites StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Configurações do AdSense para este site StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Identificação do cliente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID de cliente Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL do script do anúncio" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL do script (avançado)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Retângulo médio" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Retângulo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Gravar" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Gravar as configurações do AdSense" diff --git a/plugins/Adsense/locale/pt_BR/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/pt_BR/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..7fa9b02822 --- /dev/null +++ b/plugins/Adsense/locale/pt_BR/LC_MESSAGES/Adsense.po @@ -0,0 +1,103 @@ +# Translation of StatusNet - Adsense to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# Author: Luckas Blade +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:26+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Configuração do AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Plugin para adicionar Google AdSense aos sites StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Configurações do AdSense para este site StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Identificação do cliente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID de cliente Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL do script do anúncio" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL do script (avançado)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Retângulo médio" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Código colocado dentro de um retângulo médio." + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Retângulo" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Código colocado dentro de um retângulo." + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Classificação" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Salvar" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Salvar as configurações do AdSense" diff --git a/plugins/Adsense/locale/ru/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/ru/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..684769b7c8 --- /dev/null +++ b/plugins/Adsense/locale/ru/LC_MESSAGES/Adsense.po @@ -0,0 +1,103 @@ +# Translation of StatusNet - Adsense to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# Author: Сrower +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Конфигурация AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Плагин для добавления Google AdSense на сайты StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Настройки AdSense для этого сайта StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID клиента" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID клиента Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL-адрес скрипта рекламы" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL-адрес скрипта (расширенная настройка)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Средний прямоугольник" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Слот-код среднего прямоугольника" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Прямоугольник" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Слот-код прямоугольника" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Доска лидеров" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Слот-код доски лидеров" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Небоскреб" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Слот-код широкого небоскреба" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Сохранить" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Сохранить настройки AdSense" diff --git a/plugins/Adsense/locale/sv/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/sv/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..0c2efda116 --- /dev/null +++ b/plugins/Adsense/locale/sv/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Swedish (Svenska) +# Expored from translatewiki.net +# +# Author: Jamminjohn +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Swedish <http://translatewiki.net/wiki/Portal:sv>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: sv\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Konfiguration av AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "AdSense-inställningar för denna StatusNet-webbplats" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "Klient-ID" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Google klient-ID" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Medium rektangel" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Spara" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Spara inställningar för AdSense" diff --git a/plugins/Adsense/locale/tl/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/tl/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..0f474a73e9 --- /dev/null +++ b/plugins/Adsense/locale/tl/LC_MESSAGES/Adsense.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - Adsense to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Pagkakaayos ng AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" +"Pampasak upang maidagdag ang AdSense ng Google sa mga sityo ng StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Mga katakdaan ng Adsense para sa sityong ito ng StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ID ng kliyente" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ID ng kliyente ng Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "URL ng panitik ng anunsyo" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "URL ng panitik (mas masulong)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Hindi kalakihang parihaba" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Kodigo ng puwang ng hindi kalakihang parihaba" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Parihaba" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Kodigo ng puwang ng parihaba" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Pangunahing-pisara" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Kodigo ng puwang ng pangunahing-pisara" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Tukud-langit" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Kodigo ng puwang ng maluwang na tukud-langit" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Sagipin" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Sagipin ang mga katakdaan ng AdSense" diff --git a/plugins/Adsense/locale/tr/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/tr/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..277dcf2302 --- /dev/null +++ b/plugins/Adsense/locale/tr/LC_MESSAGES/Adsense.po @@ -0,0 +1,101 @@ +# Translation of StatusNet - Adsense to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Kaydet" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "AdSense ayarlarını kaydet" diff --git a/plugins/Adsense/locale/uk/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/uk/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..591ce56c46 --- /dev/null +++ b/plugins/Adsense/locale/uk/LC_MESSAGES/Adsense.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - Adsense to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "Конфігурація AdSense" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "Додаток для відображення Google AdSense на сторінці сайту StatusNet." + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "Налаштування AdSense на даному сайті StatusNet" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "ІД клієнта" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "ІД клієнта Google" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "Адреса скрипту AdSense" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "Адреса скрипту (розширена опція)" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "Середній прямокутник" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "Слот-код середнього прямокутника" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "Прямокутник" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "Слот-код прямокутника" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "Банер" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "Слот-код банеру" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "Хмарочос" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "Слот-код хмарочосу" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "Зберегти" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "Зберегти налаштування AdSense" diff --git a/plugins/Adsense/locale/zh_CN/LC_MESSAGES/Adsense.po b/plugins/Adsense/locale/zh_CN/LC_MESSAGES/Adsense.po new file mode 100644 index 0000000000..dde80f4e9e --- /dev/null +++ b/plugins/Adsense/locale/zh_CN/LC_MESSAGES/Adsense.po @@ -0,0 +1,103 @@ +# Translation of StatusNet - Adsense to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Adsense\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:27+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-adsense\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Menu item title/tooltip +#: AdsensePlugin.php:194 +msgid "AdSense configuration" +msgstr "AdSense配置" + +#. TRANS: Menu item for site administration +#: AdsensePlugin.php:196 +msgid "AdSense" +msgstr "AdSense" + +#: AdsensePlugin.php:209 +msgid "Plugin to add Google AdSense to StatusNet sites." +msgstr "添加 Google AdSense 到 StatusNet 网站的插件。" + +#: adsenseadminpanel.php:52 +msgctxt "TITLE" +msgid "AdSense" +msgstr "AdSense" + +#: adsenseadminpanel.php:62 +msgid "AdSense settings for this StatusNet site" +msgstr "这个 StatusNet 网站的 AdSense 设置" + +#: adsenseadminpanel.php:164 +msgid "Client ID" +msgstr "客户ID" + +#: adsenseadminpanel.php:165 +msgid "Google client ID" +msgstr "Google 发布商 ID(例如:pub-1234567890123456)" + +#: adsenseadminpanel.php:170 +msgid "Ad script URL" +msgstr "广告脚本地址" + +#: adsenseadminpanel.php:171 +msgid "Script URL (advanced)" +msgstr "高级脚本地址" + +#: adsenseadminpanel.php:176 +msgid "Medium rectangle" +msgstr "中等矩形" + +#: adsenseadminpanel.php:177 +msgid "Medium rectangle slot code" +msgstr "中等矩形广告代码(#ID)" + +#: adsenseadminpanel.php:182 +msgid "Rectangle" +msgstr "小矩形" + +#: adsenseadminpanel.php:183 +msgid "Rectangle slot code" +msgstr "小矩形广告代码(#ID)" + +#: adsenseadminpanel.php:188 +msgid "Leaderboard" +msgstr "首页横幅" + +#: adsenseadminpanel.php:189 +msgid "Leaderboard slot code" +msgstr "首页横幅广告代码(#ID)" + +#: adsenseadminpanel.php:194 +msgid "Skyscraper" +msgstr "宽幅摩天大楼" + +#: adsenseadminpanel.php:195 +msgid "Wide skyscraper slot code" +msgstr "宽幅摩天大楼广告代码(#ID)" + +#: adsenseadminpanel.php:208 +msgid "Save" +msgstr "保存" + +#: adsenseadminpanel.php:208 +msgid "Save AdSense settings" +msgstr "保存AdSense设置" diff --git a/plugins/Aim/AimPlugin.php b/plugins/Aim/AimPlugin.php index 30da1dbc79..3a1799a2d8 100644 --- a/plugins/Aim/AimPlugin.php +++ b/plugins/Aim/AimPlugin.php @@ -66,7 +66,7 @@ class AimPlugin extends ImPlugin return strtolower($screenname); } - function daemon_screenname() + function daemonScreenname() { return $this->user; } @@ -119,10 +119,10 @@ class AimPlugin extends ImPlugin return 'aim:' . $screenname; } - function send_message($screenname, $body) + function sendMessage($screenname, $body) { $this->fake_aim->sendIm($screenname, $body); - $this->enqueue_outgoing_raw($this->fake_aim->would_be_sent); + $this->enqueueOutgoingRaw($this->fake_aim->would_be_sent); return true; } @@ -131,14 +131,14 @@ class AimPlugin extends ImPlugin * * @return true if processing completed, false if message should be reprocessed */ - function receive_raw_message($message) + function receiveRawMessage($message) { $info=Aim::getMessageInfo($message); $from = $info['from']; - $user = $this->get_user($from); + $user = $this->getUser($from); $notice_text = $info['message']; - $this->handle_incoming($from, $notice_text); + $this->handleIncoming($from, $notice_text); return true; } diff --git a/plugins/Aim/aimmanager.php b/plugins/Aim/aimmanager.php index d9b7421fb2..8ff7ab7e70 100644 --- a/plugins/Aim/aimmanager.php +++ b/plugins/Aim/aimmanager.php @@ -84,7 +84,7 @@ class AimManager extends ImManager function handle_aim_message($data) { - $this->plugin->enqueue_incoming_raw($data); + $this->plugin->enqueueIncomingRaw($data); return true; } diff --git a/plugins/AnonymousFave/AnonymousFavePlugin.php b/plugins/AnonymousFave/AnonymousFavePlugin.php new file mode 100644 index 0000000000..96edf82e12 --- /dev/null +++ b/plugins/AnonymousFave/AnonymousFavePlugin.php @@ -0,0 +1,331 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * A plugin to allow anonymous users to favorite notices + * + * If you want to keep certain users from having anonymous faving for their + * notices initialize the plugin with the restricted array, e.g.: + * + * addPlugin( + * 'AnonymousFave', + * array('restricted' => array('spock', 'kirk', 'bones')) + * ); + * + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +define('ANONYMOUS_FAVE_PLUGIN_VERSION', '0.1'); + +/** + * Anonymous Fave plugin to allow anonymous (not logged in) users + * to favorite notices + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class AnonymousFavePlugin extends Plugin +{ + + // Array of users who should not have anon faving. The default is + // that anonymous faving is allowed for all users. + public $restricted = array(); + + function onArgsInitialize() { + // We always want a session because we're tracking anon users + common_ensure_session(); + } + + /** + * Hook for ensuring our tables are created + * + * Ensures the fave_tally table is there and has the right columns + * + * @return boolean hook return + */ + + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing total number of times a notice has been faved + + $schema->ensureTable('fave_tally', + array( + new ColumnDef('notice_id', 'integer', null, false, 'PRI'), + new ColumnDef('count', 'integer', null, false), + new ColumnDef( + 'modified', + 'timestamp', + null, + false, + null, + 'CURRENT_TIMESTAMP', + 'on update CURRENT_TIMESTAMP' + ) + ) + ); + + return true; + } + + function onEndShowHTML($action) + { + if (!common_logged_in()) { + // Set a place to return to when submitting forms + common_set_returnto($action->selfUrl()); + } + } + + function onEndShowScripts($action) + { + // Setup ajax calls for favoriting. Usually this is only done when + // a user is logged in. + $action->inlineScript('SN.U.NoticeFavor();'); + } + + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) { + case 'Fave_tally': + include_once $dir . '/' . $cls . '.php'; + return false; + case 'AnonFavorAction': + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + case 'AnonDisFavorAction': + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + case 'AnonFavorForm': + include_once $dir . '/anonfavorform.php'; + return false; + case 'AnonDisFavorForm': + include_once $dir . '/anondisfavorform.php'; + return false; + default: + return true; + } + } + + function onStartInitializeRouter($m) + { + $m->connect('main/anonfavor', array('action' => 'AnonFavor')); + $m->connect('main/anondisfavor', array('action' => 'AnonDisFavor')); + + return true; + } + + function onStartShowNoticeOptions($item) + { + if (!common_logged_in()) { + $item->out->elementStart('div', 'notice-options'); + $item->showFaveForm(); + $item->out->elementEnd('div'); + } + + return true; + } + + function onStartShowFaveForm($item) + { + if (!common_logged_in() && $this->hasAnonFaving($item)) { + + $profile = AnonymousFavePlugin::getAnonProfile(); + if (!empty($profile)) { + if ($profile->hasFave($item->notice)) { + $disfavor = new AnonDisFavorForm($item->out, $item->notice); + $disfavor->show(); + } else { + $favor = new AnonFavorForm($item->out, $item->notice); + $favor->show(); + } + } + } + + return true; + } + + function onEndFavorNoticeForm($form, $notice) + { + $this->showTally($form->out, $notice); + } + + function onEndDisFavorNoticeForm($form, $notice) + { + $this->showTally($form->out, $notice); + } + + function showTally($out, $notice) + { + $tally = Fave_tally::ensureTally($notice->id); + + if (!empty($tally)) { + $out->elementStart( + 'div', + array( + 'id' => 'notice-' . $notice->id . '-tally', + 'class' => 'notice-tally' + ) + ); + $out->elementStart('span', array('class' => 'fave-tally-title')); + // TRANS: Label for tally for number of times a notice was favored. + $out->raw(sprintf(_m("Favored"))); + $out->elementEnd('span'); + $out->elementStart('span', array('class' => 'fave-tally')); + $out->raw($tally->count); + $out->elementEnd('span'); + $out->elementEnd('div'); + } + } + + function onEndFavorNotice($profile, $notice) + { + $tally = Fave_tally::increment($notice->id); + } + + function onEndDisfavorNotice($profile, $notice) + { + $tally = Fave_tally::decrement($notice->id); + } + + static function createAnonProfile() + { + // Get the anon user's IP, and turn it into a nickname + list($proxy, $ip) = common_client_ip(); + + // IP + time + random number should help to avoid collisions + $baseNickname = $ip . '-' . time() . '-' . common_good_rand(5); + + $profile = new Profile(); + $profile->nickname = $baseNickname; + $id = $profile->insert(); + + if (!$id) { + // TRANS: Server exception. + throw new ServerException(_m("Couldn't create anonymous user session.")); + } + + // Stick the Profile ID into the nickname + $orig = clone($profile); + + $profile->nickname = 'anon-' . $id . '-' . $baseNickname; + $result = $profile->update($orig); + + if (!$result) { + // TRANS: Server exception. + throw new ServerException(_m("Couldn't create anonymous user session.")); + } + + common_log( + LOG_INFO, + "AnonymousFavePlugin - created profile for anonymous user from IP: " + . $ip + . ', nickname = ' + . $profile->nickname + ); + + return $profile; + } + + static function getAnonProfile() + { + + $token = $_SESSION['anon_token']; + $anon = base64_decode($token); + + $profile = null; + + if (!empty($anon) && substr($anon, 0, 5) == 'anon-') { + $parts = explode('-', $anon); + $id = $parts[1]; + // Do Profile lookup by ID instead of nickname for safety/performance + $profile = Profile::staticGet('id', $id); + } else { + $profile = AnonymousFavePlugin::createAnonProfile(); + // Obfuscate so it's hard to figure out the Profile ID + $_SESSION['anon_token'] = base64_encode($profile->nickname); + } + + return $profile; + } + + /** + * Determine whether a given NoticeListItem should have the + * anonymous fave/disfave form + * + * @param NoticeListItem $item + * + * @return boolean false if the profile associated with the notice is + * in the list of restricted profiles, otherwise + * return true + */ + function hasAnonFaving($item) + { + $profile = Profile::staticGet('id', $item->notice->profile_id); + if (in_array($profile->nickname, $this->restricted)) { + return false; + } + + return true; + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:AnonymousFave'; + + $versions[] = array('name' => 'AnonymousFave', + 'version' => ANONYMOUS_FAVE_PLUGIN_VERSION, + 'author' => 'Zach Copley', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('Allow anonymous users to favorite notices.')); + + return true; + } + +} diff --git a/plugins/AnonymousFave/Fave_tally.php b/plugins/AnonymousFave/Fave_tally.php new file mode 100644 index 0000000000..f48a1e82b3 --- /dev/null +++ b/plugins/AnonymousFave/Fave_tally.php @@ -0,0 +1,240 @@ +<?php +/** + * Data class for favorites talley + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for favorites tally + * + * A class representing a total number of times a notice has been favored + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class Fave_tally extends Memcached_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'fave_tally'; // table name + public $notice_id; // int(4) primary_key not_null + public $count; // int(4) not_null + public $modified; // datetime not_null default_0000-00-00%2000%3A00%3A00 + + /* Static get */ + function staticGet($k, $v = NULL) { return Memcached_DataObject::staticGet('Fave_tally', $k, $v); } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE + + /** + * return table definition for DB_DataObject + * + * @return array array of column definitions + */ + + function table() + { + return array( + 'notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'count' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL + ); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + function keyTypes() + { + return array('notice_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); + } + + /** + * 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('Fave_tally', $kv); + } + + /** + * Increment a notice's tally + * + * @param integer $noticeID ID of notice we're tallying + * + * @return Fave_tally $tally the tally data object + */ + static function increment($noticeID) + { + $tally = Fave_tally::ensureTally($noticeID); + + $orig = clone($tally); + $tally->count++; + $result = $tally->update($orig); + + if (!$result) { + $msg = sprintf( + // TRANS: Server exception. + // TRANS: %d is the notice ID (number). + _m("Couldn't update favorite tally for notice ID %d."), + $noticeID + ); + throw new ServerException($msg); + } + + return $tally; + } + + /** + * Decrement a notice's tally + * + * @param integer $noticeID ID of notice we're tallying + * + * @return Fave_tally $tally the tally data object + */ + static function decrement($noticeID) + { + $tally = Fave_tally::ensureTally($noticeID); + + if ($tally->count > 0) { + $orig = clone($tally); + $tally->count--; + $result = $tally->update($orig); + + if (!$result) { + $msg = sprintf( + // TRANS: Server exception. + // TRANS: %d is the notice ID (number). + _m("Couldn't update favorite tally for notice ID %d."), + $noticeID + ); + throw new ServerException($msg); + } + } + + return $tally; + } + + /** + * Ensure a tally exists for a given notice. If we can't find + * one create one with the total number of existing faves + * + * @param integer $noticeID + * + * @return Fave_tally the tally data object + */ + static function ensureTally($noticeID) + { + $tally = Fave_tally::staticGet('notice_id', $noticeID); + + if (!$tally) { + $tally = new Fave_tally(); + $tally->notice_id = $noticeID; + $tally->count = Fave_tally::countExistingFaves($noticeID); + $result = $tally->insert(); + if (!$result) { + $msg = sprintf( + // TRANS: Server exception. + // TRANS: %d is the notice ID (number). + _m("Couldn't create favorite tally for notice ID %d."), + $noticeID + ); + throw new ServerException($msg); + } + } + + return $tally; + } + + /** + * Count the number of faves a notice already has. Used to initalize + * a tally for a notice. + * + * @param integer $noticeID ID of the notice to count faves for + * + * @return integer $total total number of time the notice has been favored + */ + static function countExistingFaves($noticeID) + { + $fave = new Fave(); + $fave->notice_id = $noticeID; + $total = $fave->count(); + return $total; + } +} diff --git a/plugins/AnonymousFave/anondisfavor.php b/plugins/AnonymousFave/anondisfavor.php new file mode 100644 index 0000000000..859e4bd427 --- /dev/null +++ b/plugins/AnonymousFave/anondisfavor.php @@ -0,0 +1,127 @@ +<?php +/** + * Anonymous disfavor action + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Anonymous disfavor class + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class AnonDisfavorAction extends RedirectingAction +{ + /** + * Class handler. + * + * @param array $args query arguments + * + * @return void + */ + function handle($args) + { + parent::handle($args); + + $profile = AnonymousFavePlugin::getAnonProfile(); + + if (empty($profile) || $_SERVER['REQUEST_METHOD'] != 'POST') { + $this->clientError( + // TRANS: Client error. + _m('Could not disfavor notice! Please make sure your browser has cookies enabled.') + ); + return; + } + + $id = $this->trimmed('notice'); + $notice = Notice::staticGet($id); + $token = $this->trimmed('token-' . $notice->id); + + if (!$token || $token != common_session_token()) { + // TRANS: Client error. + $this->clientError(_m('There was a problem with your session token. Try again, please.')); + return; + } + + $fave = new Fave(); + $fave->user_id = $profile->id; + $fave->notice_id = $notice->id; + + if (!$fave->find(true)) { + // TRANS: Client error. + $this->clientError(_m('This notice is not a favorite!')); + return; + } + + $result = $fave->delete(); + + if (!$result) { + common_log_db_error($fave, 'DELETE', __FILE__); + // TRANS: Server error. + $this->serverError(_m('Could not delete favorite.')); + return; + } + + $profile->blowFavesCache(); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Title. + $this->element('title', null, _m('Add to favorites')); + $this->elementEnd('head'); + $this->elementStart('body'); + $favor = new AnonFavorForm($this, $notice); + $favor->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $this->returnToPrevious(); + } + } + + /** + * If returnto not set, return to the public stream. + * + * @return string URL + */ + function defaultReturnTo() + { + $returnto = common_get_returnto(); + if (empty($returnto)) { + return common_local_url('public'); + } else { + return $returnto; + } + } +} diff --git a/plugins/AnonymousFave/anondisfavorform.php b/plugins/AnonymousFave/anondisfavorform.php new file mode 100644 index 0000000000..38e2903db1 --- /dev/null +++ b/plugins/AnonymousFave/anondisfavorform.php @@ -0,0 +1,69 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Form for disfavoring a notice anonymously + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Form + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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 disfavoring a notice anonymously + * + * @category Form + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see DisFavorForm + */ +class AnonDisfavorForm extends DisFavorForm +{ + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param Notice $notice notice to disfavor + */ + function __construct($out=null, $notice=null) + { + parent::__construct($out, $notice); + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('AnonDisFavor'); + } +} diff --git a/plugins/AnonymousFave/anonfavor.php b/plugins/AnonymousFave/anonfavor.php new file mode 100644 index 0000000000..ad13525a07 --- /dev/null +++ b/plugins/AnonymousFave/anonfavor.php @@ -0,0 +1,121 @@ +<?php +/** + * Anonyous favor action + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Anonymous favor class + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class AnonFavorAction extends RedirectingAction +{ + /** + * Class handler. + * + * @param array $args query arguments + * + * @return void + */ + function handle($args) + { + parent::handle($args); + + $profile = AnonymousFavePlugin::getAnonProfile(); + + if (empty($profile) || $_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error. + $this->clientError( _m('Could not favor notice! Please make sure your browser has cookies enabled.') + ); + return; + } + + $id = $this->trimmed('notice'); + $notice = Notice::staticGet($id); + $token = $this->trimmed('token-' . $notice->id); + + if (empty($token) || $token != common_session_token()) { + // TRANS: Client error. + $this->clientError(_m('There was a problem with your session token. Try again, please.')); + return; + } + + + if ($profile->hasFave($notice)) { + // TRANS: Client error. + $this->clientError(_m('This notice is already a favorite!')); + return; + } + $fave = Fave::addNew($profile, $notice); + + if (!$fave) { + // TRANS: Server error. + $this->serverError(_m('Could not create favorite.')); + return; + } + + $profile->blowFavesCache(); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Title. + $this->element('title', null, _m('Disfavor favorite')); + $this->elementEnd('head'); + $this->elementStart('body'); + $disfavor = new AnonDisFavorForm($this, $notice); + $disfavor->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $this->returnToPrevious(); + } + } + + /** + * If returnto not set, return to the public stream. + * + * @return string URL + */ + function defaultReturnTo() + { + $returnto = common_get_returnto(); + if (empty($returnto)) { + return common_local_url('public'); + } else { + return $returnto; + } + } +} diff --git a/plugins/AnonymousFave/anonfavorform.php b/plugins/AnonymousFave/anonfavorform.php new file mode 100644 index 0000000000..2fbd015e36 --- /dev/null +++ b/plugins/AnonymousFave/anonfavorform.php @@ -0,0 +1,71 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Form for favoring a notice anonymously + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Form + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 20010 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 favoring a notice anonymously + * + * @category Form + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see AnonDisfavorForm + */ +class AnonFavorForm extends FavorForm +{ + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param Notice $notice notice to favor + */ + function __construct($out=null, $notice=null) + { + parent::__construct($out, $notice); + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('AnonFavor'); + } + +} diff --git a/plugins/AnonymousFave/locale/AnonymousFave.pot b/plugins/AnonymousFave/locale/AnonymousFave.pot new file mode 100644 index 0000000000..46e5e79565 --- /dev/null +++ b/plugins/AnonymousFave/locale/AnonymousFave.pot @@ -0,0 +1,93 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "" + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "" + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "" + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "" diff --git a/plugins/AnonymousFave/locale/be-tarask/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/be-tarask/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..7ca33b65e8 --- /dev/null +++ b/plugins/AnonymousFave/locale/be-tarask/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,104 @@ +# Translation of StatusNet - AnonymousFave to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Улюблёнае" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Немагчыма стварыць сэсію ананімнага карыстальніка." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Дазволіць ананімным карыстальнікам дадаваць паведамленьні ў улюблёныя." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Немагчыма пазначыць паведамленьне як улюблёнае. Калі ласка, упэўніцеся ў " +"тым, што ў Вашым браўзэры ўключаныя закладкі (cookie)." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Узьнікла праблема з ключом Вашай сэсіі. Калі ласка, паспрабуйце зноў." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Гэтае паведамленьне ўжо знаходзіцца ў ліку ўлюблёных!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Немагчыма стварыць як улюблёны." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Выдаліць з улюблёных" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Немагчыма абнавіць лічыльнік пазнакаў улюблёных для запісу %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Немагчыма стварыць лічыльнік пазнакаў улюлёных для паведамленьня %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Немагчыма выдаліць паведамленьне са сьпісу ўлюблёных! Калі ласка, " +"упэўніцеся, што ў Вашым браўзэры дазволеныя закладкі (cookie)." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Гэтае паведамленьне не зьяўляецца ўлюблёным!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Немагчыма выдаліць са сьпісу ўлюблёных." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Дадаць ва ўлюблёныя" diff --git a/plugins/AnonymousFave/locale/br/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/br/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..63d668602b --- /dev/null +++ b/plugins/AnonymousFave/locale/br/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Karetañ" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Dibosupl eo krouiñ un dalc'h implijer dizanv." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Aotreañ an implijerien dizanv da gavout gwelloc'h kemennoù." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Dibosupl eo merkañ ar c'hemenn-mañ evel pennroll ! Mar plij gwiriekait e " +"tegemer ho urzhiataer an toupinoù." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h. Mar plij adklaskit." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Ouzhpennet eo bet ar c'hemenn-mañ d'ho pennrolloù dija !" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Diposupl eo krouiñ ar pennroll-mañ." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Tennañ ar pennroll" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Dibosupl eo hizivaat ar skor penndibaboù evit ar c'hemenn %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Dibosupl eo krouiñ ar skor penndibaboù evit ar c'hemenn %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Dibosupl eo merkañ ar c'hemenn-mañ evel nann-pennroll ! Mar plij gwiriekait " +"e tegemer ho urzhiataer an toupinoù." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "N'eo ket ar c'hemenn-mañ ur pennroll !" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Diposupl eo dilemel ar pennroll-mañ." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Ouzhpennañ d'ar pennrolloù" diff --git a/plugins/AnonymousFave/locale/de/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/de/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..ed7eee5050 --- /dev/null +++ b/plugins/AnonymousFave/locale/de/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Favorisiert" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Konnte keine anonyme Benutzer-Sitzung erstellen." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Ermöglicht anonymen Benutzern Nachrichten zu favorisieren." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Konnte Nachricht nicht favorisieren! Bitte stelle sicher, dass Cookies in " +"deinem Browser aktiviert sind." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Diese Nachricht ist bereits ein Favorit!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Konnte keinen Favoriten erstellen." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Aus Favoriten entfernen" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Konnte Favoritenzähler der Nachrichten-ID %d nicht aktualisieren." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Konnte keinen Favoritenzähler der Nachrichten-ID %d erstellen." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Konnte Nachricht nicht aus den Favoriten entfernen! Bitte stelle sicher, " +"dass Cookies in deinem Browser aktiviert sind." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Diese Nachricht ist kein Favorit!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Konnte Favoriten nicht löschen." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Zu Favoriten hinzufügen" diff --git a/plugins/AnonymousFave/locale/es/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/es/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..f8ca6f6962 --- /dev/null +++ b/plugins/AnonymousFave/locale/es/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,104 @@ +# Translation of StatusNet - AnonymousFave to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Favorito" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "No se pudo crear sesión de usuario anónimo." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Permitir a usuarios anónimos marcar mensajes como favoritos." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"No fue posible marcar el mensaje como favorito. Por favor, asegúrate de que " +"las cookies están habilitadas en tu navegador." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Hubo un problema con tu token de sesión. Por favor, inténtalo de nuevo." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "¡Este mensaje ya está en favoritos!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "No se pudo crear favorito." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Eliminar de la lista de favoritos." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "No se pudo actualizar el la cuenta favorita para el mensaje de ID %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "No se pudo crear una cuenta favorita para el mensaje de ID %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"¡No es posible eliminar el mensaje de entre los favoritos! Por favor, " +"asegúrate de que las cookies estén habilitadas en tu navegador." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "¡Este mensaje no es un favorito!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "No se pudo borrar el favorito." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Añadir a favoritos" diff --git a/plugins/AnonymousFave/locale/fr/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/fr/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..7057d23a5c --- /dev/null +++ b/plugins/AnonymousFave/locale/fr/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,104 @@ +# Translation of StatusNet - AnonymousFave to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Préféré" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Impossible de créer une session d’utilisateur anonyme." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Autoriser les utilisateurs anonymes à préférer des avis." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Impossible de marquer cet avis comme favori ! Veuillez vous assurer que " +"votre navigateur accepte les cookies." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Cet avis a déjà été ajouté à vos favoris !" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Impossible de créer le favori." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Retirer ce favori" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Impossible de mettre à jour le score de préférence pour l’avis %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Impossible de créer le score de préférence pour l’avis %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Impossible de marquer cet avis comme non favori ! Veuillez vous assurer que " +"votre navigateur accepte les cookies." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Cet avis n’est pas un favori !" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Impossible de supprimer le favori." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Ajouter aux favoris" diff --git a/plugins/AnonymousFave/locale/gl/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/gl/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..4219415255 --- /dev/null +++ b/plugins/AnonymousFave/locale/gl/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,98 @@ +# Translation of StatusNet - AnonymousFave to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "" + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Houbo un erro co seu pase. Inténteo de novo." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "A nota xa é unha das súas favoritas!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Non se puido crear o favorito." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Desmarcar como favorita" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Esta nota non é unha das favoritas!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Non se puido eliminar o favorito." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Engadir aos favoritos" diff --git a/plugins/AnonymousFave/locale/ia/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/ia/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..6f3039db2d --- /dev/null +++ b/plugins/AnonymousFave/locale/ia/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Favorite" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Non poteva crear session de usator anonyme." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Permitter a usatores anonyme de favorir notas." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Non poteva favorir le nota! Per favor assecura te que tu navigator ha le " +"cookies activate." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Iste nota es ja favorite!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Non poteva crear le favorite." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Disfavorir favorite" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Non poteva actualisar le numero de favorites pro le ID de nota %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Non poteva crear un numero de favorites pro le ID de nota %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Non poteva disfavorir le nota! Per favor assecura te que tu navigator ha le " +"cookies activate." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Iste nota non es favorite!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Non poteva deler le favorite." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Adder al favorites" diff --git a/plugins/AnonymousFave/locale/mk/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/mk/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..ff338c7a83 --- /dev/null +++ b/plugins/AnonymousFave/locale/mk/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Бендисано" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Не можев да создадам анонимна корисничка сесија." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Дозволи анонимни корисници да бендисуваат забелешки." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Не можев да ја бендисам заблешката. Проверете дали имате овозможено колачиња " +"во прелистувачот." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Веќе сте ја бендисале оваа забелешка!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Не можев да создадам бендисана забелешка." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Одбендисај бендисана" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "Не можев да го поновам бројот на бендисувања за забелешката со ID %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "Не можев создадам бројач на бендисувања за забелешката со ID %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Не можев да ја одбендисам забелешката! Проверете дали имате овозможено " +"колачиња во прелистувачот." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Оваа забелешка не Ви е бендисана!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Не можев да ја избришам бендисаната забелешка." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Додај во бендисани" diff --git a/plugins/AnonymousFave/locale/nl/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/nl/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..2910085a28 --- /dev/null +++ b/plugins/AnonymousFave/locale/nl/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,110 @@ +# Translation of StatusNet - AnonymousFave to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: SPQRobin +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Als favoriet aangemerkt" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Het was niet mogelijk een anonieme gebruikerssessie aan te maken." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Staat anonieme gebruikers toe mededelingen als favoriet aan te merken." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"De mededeling kon niet als favoriet aangemerkt worden. Zorg dat uw browser " +"het gebruik van cookies toestaat." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Deze mededeling staat al in uw favorietenlijst." + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Het was niet mogelijk een favoriet aan te maken." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Van favorietenlijst verwijderen" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" +"Het was niet mogelijk de telling voor aantal favorieten bij te werken voor " +"de mededeling met ID %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" +"Het was niet mogelijk de telling voor aantal favorieten aan te maken voor de " +"mededeling met ID %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"De mededeling kon niet als favoriet verwijderd worden. Zorg dat uw browser " +"het gebruik van cookies toestaat." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Deze mededeling staat niet op uw favorietenlijst." + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "" +"Het was niet mogelijk deze mededeling van uw favorietenlijst te verwijderen." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Aan favorieten toevoegen" diff --git a/plugins/AnonymousFave/locale/pt/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/pt/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..eaea31ce33 --- /dev/null +++ b/plugins/AnonymousFave/locale/pt/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Marcada como favorita" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Não foi possível criar uma sessão de utilizador anónimo." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Permitir a utilizadores anónimos marcar mensagens como favoritas." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Não foi possível marcar a mensagem como favorito. Por favor, assegure-se de " +"que os cookies estão ativados no seu navegador." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Ocorreu um problema com seu identificador de sessão. Tente novamente, por " +"favor." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Esta mensagem já é uma das suas favoritas!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Não foi possível criar o favorito." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Retirar das favoritas" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "" + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "" diff --git a/plugins/AnonymousFave/locale/ru/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/ru/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..a0f4c8c8da --- /dev/null +++ b/plugins/AnonymousFave/locale/ru/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,102 @@ +# Translation of StatusNet - AnonymousFave to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Понравилось" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Не удаётся создать сеанс анонимного пользователя." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Позволяет анонимным пользователям добавлять записи в число любимых." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Ошибка добавления записи в число любимых! Пожалуйста, убедитесь, что cookies " +"включены в вашем браузере." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "" + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "" + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Добавить в избранное" diff --git a/plugins/AnonymousFave/locale/tl/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/tl/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..23e5fe8df3 --- /dev/null +++ b/plugins/AnonymousFave/locale/tl/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,106 @@ +# Translation of StatusNet - AnonymousFave to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Pinaboran" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Hindi malikha ang sesyon ng hindi nakikilalang tagagamit." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "" +"Payagan ang hindi nakikilalang mga tagagamit sa paboritong mga pabatid." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Hindi maipaborito ang pabatid! Pakitiyak na gumagana ang mga otap ng iyong " +"pantingin-tingin." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Nagkaroon ng isang suliranin sa iyong token ng sesyon. Paki subukang muli." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Isa nang paborito ang pabatid na ito!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Hindi malikha ang paborito." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Huwag paboran ang paborito" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" +"Hindi maisapanahon ang talang-bilang ng paborito para sa ID na %d ng pabatid." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" +"Hindi malikha ang talang-bilang ng paborito para sa ID na %d ng pabatid." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Hindi magawang hindi paborito ang pabatid! Pakitiyak na gumagana ang mga " +"otap ng iyong pantingin-tingin." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Ang pabatid na ito ay hindi isang paborito!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Hindi mabura ang paborito." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Idagdag sa mga paborito" diff --git a/plugins/AnonymousFave/locale/uk/LC_MESSAGES/AnonymousFave.po b/plugins/AnonymousFave/locale/uk/LC_MESSAGES/AnonymousFave.po new file mode 100644 index 0000000000..622f9c0d89 --- /dev/null +++ b/plugins/AnonymousFave/locale/uk/LC_MESSAGES/AnonymousFave.po @@ -0,0 +1,106 @@ +# Translation of StatusNet - AnonymousFave to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AnonymousFave\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:28+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-anonymousfave\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Label for tally for number of times a notice was favored. +#: AnonymousFavePlugin.php:207 +msgid "Favored" +msgstr "Обране" + +#. TRANS: Server exception. +#: AnonymousFavePlugin.php:240 AnonymousFavePlugin.php:251 +msgid "Couldn't create anonymous user session." +msgstr "Не вдалося створити сесію анонімного користувача." + +#. TRANS: Plugin description. +#: AnonymousFavePlugin.php:326 +msgid "Allow anonymous users to favorite notices." +msgstr "Дозволити анонімнім користувачам позначати повідомлення як обрані." + +#. TRANS: Client error. +#: anonfavor.php:60 +msgid "" +"Could not favor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Не вдалося позначити повідомлення як обране! Будь ласка, переконайтеся, що у " +"вашому браузері увімкнено кукі." + +#. TRANS: Client error. +#: anonfavor.php:71 anondisfavor.php:72 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +#. TRANS: Client error. +#: anonfavor.php:78 +msgid "This notice is already a favorite!" +msgstr "Цей допис вже є обраним!" + +#. TRANS: Server error. +#: anonfavor.php:85 +msgid "Could not create favorite." +msgstr "Не вдалося позначити як обране." + +#. TRANS: Title. +#: anonfavor.php:95 +msgid "Disfavor favorite" +msgstr "Видалити з обраних" + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:155 Fave_tally.php:184 +#, php-format +msgid "Couldn't update favorite tally for notice ID %d." +msgstr "" +"Не вдалося оновити кількість позначок «обране» для допису за номером %d." + +#. TRANS: Server exception. +#. TRANS: %d is the notice ID (number). +#: Fave_tally.php:215 +#, php-format +msgid "Couldn't create favorite tally for notice ID %d." +msgstr "" +"Не вдалося створити лічильник кількості позначок «обране» для допису за " +"номером %d." + +#. TRANS: Client error. +#: anondisfavor.php:61 +msgid "" +"Could not disfavor notice! Please make sure your browser has cookies enabled." +msgstr "" +"Не вдалося видалити повідомлення зі списку обраних! Будь ласка, " +"переконайтеся, що у вашому браузері увімкнено кукі." + +#. TRANS: Client error. +#: anondisfavor.php:82 +msgid "This notice is not a favorite!" +msgstr "Цей допис не є обраним!" + +#. TRANS: Server error. +#: anondisfavor.php:91 +msgid "Could not delete favorite." +msgstr "Не можу видалити допис зі списку обраних." + +#. TRANS: Title. +#: anondisfavor.php:101 +msgid "Add to favorites" +msgstr "Додати до обраних" diff --git a/plugins/AnonymousFave/scripts/initialize_fave_tallys.php b/plugins/AnonymousFave/scripts/initialize_fave_tallys.php new file mode 100755 index 0000000000..f7ea6d1ef7 --- /dev/null +++ b/plugins/AnonymousFave/scripts/initialize_fave_tallys.php @@ -0,0 +1,38 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$helptext = <<<ENDOFHELP +USAGE: initialize_fave_tallys.php + +Offline script to initialize notice fave tallys + +ENDOFHELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$notice = new Notice(); +$notice->find(); + +while ($notice->fetch()) { + Fave_tally::ensureTally($notice->id); +} + diff --git a/plugins/ApiLogger/ApiLoggerPlugin.php b/plugins/ApiLogger/ApiLoggerPlugin.php new file mode 100644 index 0000000000..deb54008e5 --- /dev/null +++ b/plugins/ApiLogger/ApiLoggerPlugin.php @@ -0,0 +1,77 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package ApiLoggerPlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class ApiLoggerPlugin extends Plugin +{ + // Lower this to do random sampling of API requests rather than all. + // 0.1 will check about 10% of hits, etc. + public $frequency = 1.0; + + function onArgsInitialize($args) + { + if (isset($args['action'])) { + $action = strtolower($args['action']); + if (substr($action, 0, 3) == 'api') { + if ($this->frequency < 1.0 && $this->frequency > 0.0) { + $max = mt_getrandmax(); + $n = mt_rand() / $max; + if ($n > $this->frequency) { + return true; + } + } + $uri = $_SERVER['REQUEST_URI']; + + $method = $_SERVER['REQUEST_METHOD']; + $ssl = empty($_SERVER['HTTPS']) ? 'no' : 'yes'; + $cookie = empty($_SERVER['HTTP_COOKIE']) ? 'no' : 'yes'; + $etag = empty($_SERVER['HTTP_IF_MATCH']) ? 'no' : 'yes'; + $last = empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? 'no' : 'yes'; + $auth = empty($_SERVER['HTTP_AUTHORIZATION']) ? 'no' : 'yes'; + if ($auth == 'no' && function_exists('apache_request_headers')) { + // Sometimes Authorization doesn't make it into $_SERVER. + // Probably someone thought it was scary. + $headers = apache_request_headers(); + if (isset($headers['Authorization'])) { + $auth = 'yes'; + } + } + $agent = empty($_SERVER['HTTP_USER_AGENT']) ? 'no' : $_SERVER['HTTP_USER_AGENT']; + + $query = (strpos($uri, '?') === false) ? 'no' : 'yes'; + if ($query == 'yes') { + if (preg_match('/\?since_id=\d+$/', $uri)) { + $query = 'since_id'; + } + } + + common_log(LOG_INFO, "STATLOG action:$action method:$method ssl:$ssl query:$query cookie:$cookie auth:$auth ifmatch:$etag ifmod:$last agent:$agent"); + } + } + return true; + } +} diff --git a/plugins/AutoSandbox/AutoSandboxPlugin.php b/plugins/AutoSandbox/AutoSandboxPlugin.php index ffd8bf455e..16683e1402 100644 --- a/plugins/AutoSandbox/AutoSandboxPlugin.php +++ b/plugins/AutoSandbox/AutoSandboxPlugin.php @@ -41,7 +41,7 @@ class AutoSandboxPlugin extends Plugin var $contact; var $debug; - function onInitializePlugin() + function onInitializePlugin() { if(!isset($this->debug)) { @@ -53,7 +53,7 @@ class AutoSandboxPlugin extends Plugin if (!empty($default)) { $this->contact = $default; } - } + } } function onPluginVersion(&$versions) @@ -69,16 +69,17 @@ class AutoSandboxPlugin extends Plugin function onStartRegistrationFormData($action) { - - $instr = 'Note you will initially be "sandboxed" so your posts will not appear in the public timeline.'; + $instr = _m('Note you will initially be "sandboxed" so your posts will not appear in the public timeline.'); if (isset($this->contact)) { $contactuser = User::staticGet('nickname', $this->contact); if (!empty($contactuser)) { $contactlink = "@<a href=\"$contactuser->uri\">$contactuser->nickname</a>"; - $instr = $instr . " Send a message to $contactlink to speed up the unsandboxing process."; + // TRANS: $contactlink is a clickable e-mailaddress. + $instr = _m("Note you will initially be \"sandboxed\" so your posts will not appear in the public timeline. ". + 'Send a message to $contactlink to speed up the unsandboxing process.'); } - } + } $output = common_markup_to_html($instr); $action->elementStart('div', 'instructions'); diff --git a/plugins/AutoSandbox/locale/AutoSandbox.pot b/plugins/AutoSandbox/locale/AutoSandbox.pot index b01f9dc893..30f2de67e1 100644 --- a/plugins/AutoSandbox/locale/AutoSandbox.pot +++ b/plugins/AutoSandbox/locale/AutoSandbox.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,3 +19,17 @@ msgstr "" #: AutoSandboxPlugin.php:66 msgid "Automatically sandboxes newly registered members." msgstr "" + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" diff --git a/plugins/AutoSandbox/locale/be-tarask/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/be-tarask/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..14498824fc --- /dev/null +++ b/plugins/AutoSandbox/locale/be-tarask/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Аўтаматычна перасылае ў пясочніцу ўсіх новых карыстальнікаў." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Памятайце, што спачатку Вы будзеце знаходзіцца ў пясочніцы, таму Вашыя " +"паведамленьні ня будуць паказвацца ў агульнай стужцы." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Памятайце, што спачатку Вы будзеце знаходзіцца ў пясочніцы, таму Вашыя " +"паведамленьні ня будуць паказвацца ў агульнай стужцы. Дашліце паведамленьне " +"ў $contactlink, каб паскорыць працэс пераводу з пясочніцы." diff --git a/plugins/AutoSandbox/locale/br/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/br/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..3d52b43a20 --- /dev/null +++ b/plugins/AutoSandbox/locale/br/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,45 @@ +# Translation of StatusNet - AutoSandbox to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Lakaat a ra an implijerien nevez en ur poull-traezh ent emgefre." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Notit mat e viot lakaet en ur poull-traezh e penn-kentañ, ar pezh a dalvez " +"ne vo ket gwelet ho kemennadennoù en deiziataer foran." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Notit mat e viot lakaet en ur \"poull-traezh\" e penn-kentañ, ar pezh a " +"dalvez ne vo ket gwelet ho kemennadennoù en deiziataer foran. Kasit ur " +"c'hemenn da $contactlink evit mont er-maez eus ar poull-traezh fonnusoc'h." diff --git a/plugins/AutoSandbox/locale/de/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/de/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..88b78d4263 --- /dev/null +++ b/plugins/AutoSandbox/locale/de/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,45 @@ +# Translation of StatusNet - AutoSandbox to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Neu registrierte Benutzer automatisch auf die Spielwiese setzen." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Beachte, dass du anfangs in die „Spielwiese“ gesetzt wirst, sodass deine " +"Beiträge nicht in der öffentlichen Zeitleiste erscheinen." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Beachte, dass du anfangs in die „Spielwiese“ gesetzt wirst, sodass deine " +"Beiträge nicht in der öffentlichen Zeitleiste erscheinen. Schicke eine " +"Nachricht an $contactlink, um schneller aus der Spielwiese rauszukommen." diff --git a/plugins/AutoSandbox/locale/es/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/es/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..cf74ada916 --- /dev/null +++ b/plugins/AutoSandbox/locale/es/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "" +"Envía automáticamente a zona de pruebas a los usuarios recién registrados." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Ten en cuenta que inicialmente serás enviado a la zona de pruebas, así que " +"tus mensajes no aparecerán en la línea temporal pública." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Ten en cuenta que inicialmente serás enviado a la zona de pruebas, así que " +"tus mensajes no aparecerán en la línea temporal pública. Envía un mensaje a " +"$contactlink para acelerar el proceso de exclusión de la zona de pruebas." diff --git a/plugins/AutoSandbox/locale/fr/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/fr/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..9044ffeb88 --- /dev/null +++ b/plugins/AutoSandbox/locale/fr/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Place automatiquement les nouveaux membres dans une boîte à sable." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Notez que vous serez initialement placé dans un « bac à sable », ce qui " +"signifie que vos messages n’apparaîtront pas dans le calendrier public." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Notez que vous serez initialement placé dans un « bac à sable », ce qui " +"signifie que vos messages n’apparaîtront pas dans le calendrier public. " +"Envoyez un message à $contactlink pour accélérer le processus de sortie du " +"bac à sable." diff --git a/plugins/AutoSandbox/locale/ia/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/ia/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..85e0c2a55c --- /dev/null +++ b/plugins/AutoSandbox/locale/ia/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,45 @@ +# Translation of StatusNet - AutoSandbox to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Automaticamente pone le membros novemente registrate in isolation." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Nota que tu essera initialmente ponite in isolation de sorta que tu messages " +"non apparera in le chronologia public." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Nota que tu essera initialmente ponite in isolation de sorta que tu messages " +"non apparera in le chronologia public. Invia un message a $contactlink pro " +"accelerar le processo de disisolation." diff --git a/plugins/AutoSandbox/locale/mk/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/mk/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..cde826c135 --- /dev/null +++ b/plugins/AutoSandbox/locale/mk/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Автоматски става новорегистрираните членови во песочник." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Напомена: во прво време ќе бидете ставени во песочникот, па така Вашите " +"објави нема да фигурираат во јавната хронологија." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Напомена: во прво време ќе бидете ставени во песочникот, па така Вашите " +"објави нема да фигурираат во јавната хронологија.\n" +"Испратете порака на $contactlink за да ја забрзате постапката за излегување " +"од песочникот." diff --git a/plugins/AutoSandbox/locale/nl/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/nl/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..cbc6e5be62 --- /dev/null +++ b/plugins/AutoSandbox/locale/nl/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - AutoSandbox to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "" +"Voegt nieuwe gebruikers automatisch toe aan een groep met beperkte " +"functionaliteit." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Let op: In eerste instantie worden uw mogelijkheden beperkt, dus uw " +"mededelingen worden niet zichtbaar in de publieke tijdlijn." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Let op: In eerste instantie worden uw mogelijkheden beperkt, dus uw " +"mededelingen worden niet zichtbaar in de publieke tijdlijn. Stuur een " +"bericht naar $contactlink om het proces te versnellen." diff --git a/plugins/AutoSandbox/locale/ru/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/ru/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..2d433bac80 --- /dev/null +++ b/plugins/AutoSandbox/locale/ru/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Автоматически отсылает всех новых пользователей в «песочницу»." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Обратите внимание, что сначала вы будете находиться в «песочнице», так что " +"ваши сообщения не будут появляться в общей ленте." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Обратите внимание, что сначала вы будете находиться в «песочнице», так что " +"ваши сообщения не будут появляться в общей ленте. Отправьте сообщение на " +"адрес $contactlink, чтобы ускорить перевод из песочницы." diff --git a/plugins/AutoSandbox/locale/tl/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/tl/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..8bf9f4788d --- /dev/null +++ b/plugins/AutoSandbox/locale/tl/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,45 @@ +# Translation of StatusNet - AutoSandbox to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Kusang ikinakahon ng buhangin ang bagong nagpatalang mga kasapi." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Taandan na \"ikakahon ng buhangin\" ka muna kaya't ang mga pagpapaskil mo ay " +"hindi lilitaw sa pangmadlang guhit ng panahon." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Taandan na \"ikakahon ng buhangin\" ka muna kaya't ang mga pagpapaskil mo ay " +"hindi lilitaw sa pangmadlang guhit ng panahon. Magpadala ng mensahe sa " +"$contactlink upang mapabilis ang proseso ng hindi pagkakahong pambuhangin." diff --git a/plugins/AutoSandbox/locale/uk/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/uk/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..d73c3250cb --- /dev/null +++ b/plugins/AutoSandbox/locale/uk/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - AutoSandbox to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "Автоматично відсилати до «пісочниці» усіх нових користувачів." + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "" +"Зауважте, що спочатку вас буде відправлено до «пісочниці», отже ваші дописи " +"не з’являтимуться у загальній стрічці дописів." + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"Зауважте, що спочатку вас буде відправлено до «пісочниці», отже ваші дописи " +"не з’являтимуться у загальній стрічці дописів. Надішліть повідомлення до " +"$contactlink аби прискорити процес вашого «виходу в люди»." diff --git a/plugins/AutoSandbox/locale/zh_CN/LC_MESSAGES/AutoSandbox.po b/plugins/AutoSandbox/locale/zh_CN/LC_MESSAGES/AutoSandbox.po new file mode 100644 index 0000000000..943cff9abf --- /dev/null +++ b/plugins/AutoSandbox/locale/zh_CN/LC_MESSAGES/AutoSandbox.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - AutoSandbox to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - AutoSandbox\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:31+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-autosandbox\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: AutoSandboxPlugin.php:66 +msgid "Automatically sandboxes newly registered members." +msgstr "自动将新注册用户添加至沙盒中。" + +#: AutoSandboxPlugin.php:72 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline." +msgstr "注意:最初你将被添加至“沙盒”中,你的消息将不会在公共的时间线上显示。" + +#. TRANS: $contactlink is a clickable e-mailaddress. +#: AutoSandboxPlugin.php:79 +msgid "" +"Note you will initially be \"sandboxed\" so your posts will not appear in " +"the public timeline. Send a message to $contactlink to speed up the " +"unsandboxing process." +msgstr "" +"注意:最初你将被添加至“沙盒”中,你的消息将不会在公共的时间线上显示。给" +"$contactlink发消息可以加快你被移出沙盒的速度。" diff --git a/plugins/Autocomplete/Autocomplete.js b/plugins/Autocomplete/Autocomplete.js index 3eff685a8d..c3f022702a 100644 --- a/plugins/Autocomplete/Autocomplete.js +++ b/plugins/Autocomplete/Autocomplete.js @@ -1,37 +1,38 @@ $(document).ready(function(){ - $('#notice_data-text').autocomplete($('address .url')[0].href+'/plugins/Autocomplete/autocomplete.json', { - multiple: true, - multipleSeparator: " ", - minChars: 1, - formatItem: function(row, i, max){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return row.nickname + ' (' + row.fullname + ')'; - case 'group': - return row.nickname + ' (' + row.fullname + ')'; - } - }, - formatMatch: function(row, i, max){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return row.nickname; - case 'group': - return row.nickname; - } - }, - formatResult: function(row){ - row = eval("(" + row + ")"); - switch(row.type) - { - case 'user': - return '@' + row.nickname; - case 'group': - return '!' + row.nickname; - } - } - }); + function fullName(row) { + if (typeof row.fullname == "string" && row.fullname != '') { + return row.nickname + ' (' + row.fullname + ')'; + } else { + return row.nickname; + } + } + $('#notice_data-text').autocomplete($('address .url')[0].href+'main/autocomplete/suggest', { + multiple: true, + multipleSeparator: " ", + minChars: 1, + formatItem: function(row, i, max){ + row = eval("(" + row + ")"); + // the display:inline is because our INSANE stylesheets + // override the standard display of all img tags for no + // good reason. + var div = $('<div><img style="display:inline; vertical-align: middle"> <span></span></div>') + .find('img').attr('src', row.avatar).end() + .find('span').text(fullName(row)).end() + return div.html(); + }, + formatMatch: function(row, i, max){ + row = eval("(" + row + ")"); + return row.nickname; + }, + formatResult: function(row){ + row = eval("(" + row + ")"); + switch(row.type) + { + case 'user': + return '@' + row.nickname; + case 'group': + return '!' + row.nickname; + } + } + }); }); diff --git a/plugins/Autocomplete/AutocompletePlugin.php b/plugins/Autocomplete/AutocompletePlugin.php index b2be365dd6..230ba089de 100644 --- a/plugins/Autocomplete/AutocompletePlugin.php +++ b/plugins/Autocomplete/AutocompletePlugin.php @@ -66,7 +66,7 @@ class AutocompletePlugin extends Plugin function onRouterInitialized($m) { if (common_logged_in()) { - $m->connect('plugins/Autocomplete/autocomplete.json', array('action'=>'autocomplete')); + $m->connect('main/autocomplete/suggest', array('action'=>'autocomplete')); } } @@ -80,6 +80,4 @@ class AutocompletePlugin extends Plugin _m('The autocomplete plugin allows users to autocomplete screen names in @ replies. When an "@" is typed into the notice text area, an autocomplete box is displayed populated with the user\'s friend\' screen names.')); return true; } - } -?> diff --git a/plugins/Autocomplete/README b/plugins/Autocomplete/README index 1db4c65658..f5feb94a73 100644 --- a/plugins/Autocomplete/README +++ b/plugins/Autocomplete/README @@ -1,6 +1,13 @@ -Autocomplete allows users to autocomplete screen names in @ replies. When an "@" is typed into the notice text area, an autocomplete box is displayed populated with the user's friends' screen names. +Autocomplete allows users to autocomplete screen names in @ replies and +! group references. -Note: This plugin doesn't work if the site is in Private mode, i.e. when $config['site']['private'] is set to true. +When an "@" or "!" is typed into the notice text area, an autocomplete box +is displayed populated with the user's friends' screen names or group +memberships. + +Completion suggestions can be selected via the mouse or arrow keys, and the +suggestion can be inserted either by clicking or hitting tab. Hitting enter +will also select the suggestion, but will submit your message too! Installation ============ diff --git a/plugins/Autocomplete/autocomplete.php b/plugins/Autocomplete/autocomplete.php index 9a30ba01d9..e15e95ec19 100644 --- a/plugins/Autocomplete/autocomplete.php +++ b/plugins/Autocomplete/autocomplete.php @@ -43,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class AutocompleteAction extends Action { private $result; @@ -60,7 +59,7 @@ class AutocompleteAction extends Action { $max=0; foreach($this->users as $user){ - $max = max($max,strtotime($user->modified),strtotime($user->profile->modified)); + $max = max($max,strtotime($user->modified),strtotime($user->getProfile()->modified)); } foreach($this->groups as $group){ $max = max($max,strtotime($group->modified)); @@ -80,6 +79,7 @@ class AutocompleteAction extends Action function etag() { return '"' . implode(':', array($this->arg('action'), + common_user_cache_hash(), crc32($this->arg('q')), //the actual string can have funny characters in we don't want showing up in the etag $this->arg('limit'), $this->lastModified())) . '"'; @@ -87,7 +87,15 @@ class AutocompleteAction extends Action function prepare($args) { + // If we die, show short error messages. + StatusNet::setApi(true); + parent::prepare($args); + + $cur = common_current_user(); + if (!$cur) { + throw new ClientException('Access forbidden', true); + } $this->groups=array(); $this->users=array(); $q = $this->arg('q'); @@ -126,13 +134,47 @@ class AutocompleteAction extends Action $results = array(); foreach($this->users as $user){ $profile = $user->getProfile(); - $results[]=array('nickname' => $user->nickname, 'fullname'=> $profile->fullname, 'type'=>'user'); + $avatar = $profile->getAvatar(AVATAR_MINI_SIZE); + // sigh.... encapsulate this upstream! + if ($avatar) { + $avatar = $avatar->displayUrl(); + } else { + $avatar = Avatar::defaultImage(AVATAR_MINI_SIZE); + } + $results[] = array( + 'nickname' => $user->nickname, + 'fullname'=> $profile->fullname, + 'avatar' => $avatar, + 'type' => 'user' + ); } foreach($this->groups as $group){ - $results[]=array('nickname' => $group->nickname, 'fullname'=> $group->fullname, 'type'=>'group'); + // sigh.... encapsulate this upstream! + if ($group->mini_logo) { + $avatar = $group->mini_logo; + } else { + $avatar = User_group::defaultLogo(AVATAR_MINI_SIZE); + } + $results[] = array( + 'nickname' => $group->nickname, + 'fullname'=> $group->fullname, + 'avatar' => $avatar, + 'type' => 'group'); } foreach($results as $result) { print json_encode($result) . "\n"; } } + + /** + * Is this action read-only? + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + return true; + } } diff --git a/plugins/Autocomplete/locale/Autocomplete.pot b/plugins/Autocomplete/locale/Autocomplete.pot index c0274af85a..931338817f 100644 --- a/plugins/Autocomplete/locale/Autocomplete.pot +++ b/plugins/Autocomplete/locale/Autocomplete.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: AutocompletePlugin.php:79 +#: AutocompletePlugin.php:80 msgid "" "The autocomplete plugin allows users to autocomplete screen names in @ " "replies. When an \"@\" is typed into the notice text area, an autocomplete " diff --git a/plugins/Autocomplete/locale/be-tarask/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/be-tarask/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..24f846e228 --- /dev/null +++ b/plugins/Autocomplete/locale/be-tarask/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Дапаўненьне аўтаматычнага запаўненьня дазваляе карыстальнікам аўтаматычна " +"запаўняць імёны ў @-адказах. Калі «@» будзе ўведзенае ў тэкставую вобласьць " +"паведамленьня, то зьявіцца блёк аўтаматычнага запаўненьня з імёнамі сяброў." diff --git a/plugins/Autocomplete/locale/br/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/br/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..56d5ae1956 --- /dev/null +++ b/plugins/Autocomplete/locale/br/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Talvezout a ra an adveziant emglokaat d'an implijerien da glokaat en un " +"doare emgefre al lesanvioù er respontoù @. Pa vez merket un \"@\" e takad " +"skridaozañ ar c'hemenn e vez diskouezet ur voest emglokaat enni lesanvioù " +"mignoned an implijer." diff --git a/plugins/Autocomplete/locale/de/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/de/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..df2da160e2 --- /dev/null +++ b/plugins/Autocomplete/locale/de/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Das „Autocomplete“-Plugin ermöglicht die Autovervollständigung von " +"Benutzernamen in @-Antworten. Wenn ein „@“ in die Nachrichten-Textbox " +"eingegeben wird, wird eine Autovervollständigen-Box mit den Benutzernamen " +"der Freunde des Benutzers angezeigt." diff --git a/plugins/Autocomplete/locale/es/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/es/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..e37271564f --- /dev/null +++ b/plugins/Autocomplete/locale/es/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"La extensión de autocompletado permite a los usuarios autocompletar en las " +"respuestas @ los nombres en pantalla. Cuando se escribe \"@\" en el area de " +"texto de mensaje, se muestra una caja de autocompletado que contiene los " +"nombres de pantalla de los amigos del usuario." diff --git a/plugins/Autocomplete/locale/fr/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/fr/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..e974dfa43c --- /dev/null +++ b/plugins/Autocomplete/locale/fr/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"L’extension d’autocomplétion permet à l’utilisateur de compléter " +"automatiquement les pseudonymes dans les réponses « @ ». Quand « @ » est saisi " +"dans la zone de texte de l’avis, une boîte d’autocomplétion est affichée et " +"remplie avec les pseudonymes des amis de l’utilisateur." diff --git a/plugins/Autocomplete/locale/he/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/he/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..b3b28438fb --- /dev/null +++ b/plugins/Autocomplete/locale/he/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Autocomplete to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"תוסף ההשלמה האוטומטית מאפשר למשתמשים להשלים אוטומטית שמות תצוגה בתגובות @. " +"כאשר \"@\" מוקלד לתוך אזור טקסט ההתרעה, מופיעה תיבת השלמה אוטומטית ובה שמות " +"התצוגה של החברים של המשתמש." diff --git a/plugins/Autocomplete/locale/ia/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/ia/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..fc41bf9604 --- /dev/null +++ b/plugins/Autocomplete/locale/ia/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Le plug-in \"autocomplete\" permitte que usatores autocompleta pseudonymos " +"in responsas @. Si un \"@\" es entrate in un area de texto pro un nota, un " +"quadro de autocompletion es monstrate, plenate con le pseudonymos del amicos " +"del usator." diff --git a/plugins/Autocomplete/locale/id/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/id/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..1965eeb705 --- /dev/null +++ b/plugins/Autocomplete/locale/id/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Autocomplete to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Pengaya autocomplete memungkinkan pengguna untuk mengisi otomatis nama layar " +"dalam @ balasan. Ketika sebuah \"@\" diketik ke area teks pemberitahuan, " +"sebuah kotak isi otomatis muncul dan berisi nama layar teman pengguna." diff --git a/plugins/Autocomplete/locale/ja/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/ja/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..33db41cebe --- /dev/null +++ b/plugins/Autocomplete/locale/ja/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Autocomplete to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"自動入力プラグインは、ユーザーに、@返信でのスクリーンネームの自動入力を出来" +"るようにします。通知テキスト領域で「@」が入力されたとき、自動入力ボックスが表" +"示され、ユーザーの友達のスクリーンネームを入力します。" diff --git a/plugins/Autocomplete/locale/mk/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/mk/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..31e10f95eb --- /dev/null +++ b/plugins/Autocomplete/locale/mk/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Приклучокот за автодополнување овозможува автоматско довршување на " +"кориснички имиња во одговорите со @. Кога ќе внесете „@“ во полето за " +"пишување забелешки, се појавува кутијата за автодополнување каде се наведени " +"корисничките имиња на пријателите." diff --git a/plugins/Autocomplete/locale/nl/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/nl/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..f8d42a7c44 --- /dev/null +++ b/plugins/Autocomplete/locale/nl/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"De plug-in \"automatisch aanvullen\" (Autocomplete) vult gebruikersnamen " +"automatisch aan bij het maken van \"@\"-antwoorden. Als een \"@\" wordt " +"ingevoerd in het tekstveld voor een mededeling, wordt een extra venster " +"weergegeven met de gebruikersnamen van vrienden." diff --git a/plugins/Autocomplete/locale/pt/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/pt/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..ec05e4afe6 --- /dev/null +++ b/plugins/Autocomplete/locale/pt/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Autocomplete to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"O plugin de preenchimento automático preenche os nomes de utilizadores em " +"respostas @. Ao escrever \"@\" na área de texto de mensagem, é apresentada " +"uma caixa com os nomes dos amigos do utilizador." diff --git a/plugins/Autocomplete/locale/pt_BR/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/pt_BR/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..7315553e88 --- /dev/null +++ b/plugins/Autocomplete/locale/pt_BR/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"O plugin de autocompletamento permite aos usuários autocompletar os nomes " +"nas respostas @. Quando se escreve \"@\" no área de texto de mensagem, uma " +"caixa e apresentada com os nomes dos amigos do usuário." diff --git a/plugins/Autocomplete/locale/ru/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/ru/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..46b5cbd16e --- /dev/null +++ b/plugins/Autocomplete/locale/ru/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Autocomplete to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Модуль автозаполнения обеспечивает пользователям автозаполнение имён экранов " +"в @-ответах. Если в текстовую область уведомления введён символ @, то " +"появляется блок автозаполнения с названиями экранов друзей." diff --git a/plugins/Autocomplete/locale/tl/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/tl/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..5f0342864e --- /dev/null +++ b/plugins/Autocomplete/locale/tl/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Autocomplete to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Ang pamasak na pangkusang pagkukumpleto ay nagpapahintulot sa mga tagagamit " +"na kusang makumpleto ang mga pangalang bansag sa mga tugong @. Kapag " +"iminakinilya ang \"@\" sa lugar ng teksto ng pabatid, isang kahong na " +"pangkusang pagkukumpleto ang ipapakita na nilagyan ng mga pangalang bansag " +"ng kaibigan ng tagagamit." diff --git a/plugins/Autocomplete/locale/uk/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/uk/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..0d0bdb2e2a --- /dev/null +++ b/plugins/Autocomplete/locale/uk/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Autocomplete to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"Додаток автозавершення дозволяє користувачам автоматично завершувати " +"нікнейми у «@-відповідях». Якщо у вікні набору повідомлення з’являється " +"символ «@», то даний додаток автоматично пропонує обрати ім’я користувача із " +"списку тих, з ким ви найчастіше листуєтесь." diff --git a/plugins/Autocomplete/locale/zh_CN/LC_MESSAGES/Autocomplete.po b/plugins/Autocomplete/locale/zh_CN/LC_MESSAGES/Autocomplete.po new file mode 100644 index 0000000000..e13ff9cd25 --- /dev/null +++ b/plugins/Autocomplete/locale/zh_CN/LC_MESSAGES/Autocomplete.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Autocomplete to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Autocomplete\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:30+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:38:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-autocomplete\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: AutocompletePlugin.php:80 +msgid "" +"The autocomplete plugin allows users to autocomplete screen names in @ " +"replies. When an \"@\" is typed into the notice text area, an autocomplete " +"box is displayed populated with the user's friend' screen names." +msgstr "" +"自动补全插件在用户使用@回复时自动补全用户名。当“@”在文本区域被键入时,一个自" +"动补全框会显示用户相关好友的用户名。" diff --git a/plugins/Awesomeness/AwesomenessPlugin.php b/plugins/Awesomeness/AwesomenessPlugin.php new file mode 100644 index 0000000000..46a70a83f7 --- /dev/null +++ b/plugins/Awesomeness/AwesomenessPlugin.php @@ -0,0 +1,108 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin to add additional awesomenss to StatusNet + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Jeroen De Dauw <jeroendedauw@gmail.com> + * @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); +} + +/** + * Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar. + * + * @category Plugin + * @package StatusNet + * @author Jeroen De Dauw <jeroendedauw@gmail.com> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class AwesomenessPlugin extends Plugin +{ + const VERSION = '0.0.42'; + + public function onPluginVersion(&$versions) + { + $versions[] = array( + 'name' => 'Awesomeness', + 'version' => self::VERSION, + 'author' => 'Jeroen De Dauw', + 'homepage' => 'http://status.net/wiki/Plugin:Awesomeness', + // TRANS: Plugin description for a sample plugin. + 'rawdescription' => _m( + 'The Awesomeness plugin adds aditional awesomeness ' . + 'to a StatusNet installation.' + ) + ); + return true; + } + + /** + * Add the conrnify button + * + * @param Action $action the current action + * + * @return void + */ + function onEndShowSections(Action $action) + { + $action->elementStart('div', array('id' => 'cornify_section', + 'class' => 'section')); + + $action->raw( + <<<EOT + <a href="http://www.cornify.com" onclick="cornify_add();return false;"> + <img src="http://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" /> + </a> + <script type="text/javascript">(function() { + var js = document.createElement('script'); + js.type = 'text/javascript'; + js.async = true; + js.src = 'http://www.cornify.com/js/cornify.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(js); +})();</script> +EOT + ); + + $action->elementEnd('div'); + } + + /** + * Hook for new-notice form processing to take our HTML goodies; + * won't affect API posting etc. + * + * @param NewNoticeAction $action + * @param User $user + * @param string $content + * @param array $options + * @return boolean hook return + */ + function onStartSaveNewNoticeWeb($action, $user, &$content, &$options) + { + $content = htmlspecialchars($content); + $options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content); + } +} diff --git a/plugins/Awesomeness/locale/Awesomeness.pot b/plugins/Awesomeness/locale/Awesomeness.pot new file mode 100644 index 0000000000..0ff3732de3 --- /dev/null +++ b/plugins/Awesomeness/locale/Awesomeness.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: AwesomenessPlugin.php:55 +msgid "" +"The Awesomeness plugin adds additional awesomeness to a StatusNet " +"installation." +msgstr "" diff --git a/plugins/BitlyUrl/BitlyUrlPlugin.php b/plugins/BitlyUrl/BitlyUrlPlugin.php index 38c8216361..532e66fbc7 100644 --- a/plugins/BitlyUrl/BitlyUrlPlugin.php +++ b/plugins/BitlyUrl/BitlyUrlPlugin.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Plugin to push RSS/Atom updates to a PubSubHubBub hub + * Plugin to use bit.ly URL shortening services. * * PHP version 5 * @@ -22,7 +22,9 @@ * @category Plugin * @package StatusNet * @author Craig Andrews <candrews@integralblue.com> + * @author Brion Vibber <brion@status.net> * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @copyright 2010 StatusNet, Inc http://status.net/ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -33,26 +35,139 @@ if (!defined('STATUSNET')) { class BitlyUrlPlugin extends UrlShortenerPlugin { - public $serviceUrl; + public $shortenerName = 'bit.ly'; + public $serviceUrl = 'http://bit.ly/api?method=shorten&version=2.0.1&longUrl=%s'; + public $login; // To set a site-default when admins or users don't override it. + public $apiKey; function onInitializePlugin(){ parent::onInitializePlugin(); if(!isset($this->serviceUrl)){ - throw new Exception("must specify a serviceUrl"); + throw new Exception(_m("You must specify a serviceUrl for bit.ly shortening.")); } } + /** + * Add bit.ly to the list of available URL shorteners if it's configured, + * otherwise leave it out. + * + * @param array $shorteners + * @return boolean hook return value + */ + function onGetUrlShorteners(&$shorteners) + { + if ($this->getLogin() && $this->getApiKey()) { + return parent::onGetUrlShorteners($shorteners); + } + return true; + } + + /** + * Short a URL + * @param url + * @return string shortened version of the url, or null if URL shortening failed + */ protected function shorten($url) { - $response = $this->http_get($url); - if(!$response) return; - return current(json_decode($response)->results)->hashUrl; + $response = $this->query($url); + if ($this->isOk($url, $response)) { + return $this->decode($url, $response->getBody()); + } else { + return null; + } + } + + /** + * Get the user's or site-wide default bit.ly login name. + * + * @return string + */ + protected function getLogin() + { + $login = common_config('bitly', 'default_login'); + if (!$login) { + $login = $this->login; + } + return $login; + } + + /** + * Get the user's or site-wide default bit.ly API key. + * + * @return string + */ + protected function getApiKey() + { + $key = common_config('bitly', 'default_apikey'); + if (!$key) { + $key = $this->apiKey; + } + return $key; + } + + /** + * Inject API key into query before sending out... + * + * @param string $url + * @return HTTPResponse + */ + protected function query($url) + { + // http://code.google.com/p/bitly-api/wiki/ApiDocumentation#/shorten + $params = http_build_query(array( + 'login' => $this->getLogin(), + 'apiKey' => $this->getApiKey()), '', '&'); + $serviceUrl = sprintf($this->serviceUrl, urlencode($url)) . '&' . $params; + + $request = HTTPClient::start(); + return $request->get($serviceUrl); + } + + /** + * JSON decode for API result + */ + protected function decode($url, $body) + { + $json = json_decode($body, true); + return $json['results'][$url]['shortUrl']; + } + + /** + * JSON decode for API result + */ + protected function isOk($url, $response) + { + $code = 'unknown'; + $msg = ''; + if ($response->isOk()) { + $body = $response->getBody(); + common_log(LOG_INFO, $body); + $json = json_decode($body, true); + if ($json['statusCode'] == 'OK') { + if (!isset($json['results'][$url])) { + common_log(LOG_ERR, "bit.ly returned OK response, but didn't find expected URL $url in $body"); + return false; + } + $data = $json['results'][$url]; + if (isset($data['shortUrl'])) { + return true; + } else if (isset($data['statusCode']) && $data['statusCode'] == 'ERROR') { + $code = $data['errorCode']; + $msg = $data['errorMessage']; + } + } else if ($json['statusCode'] == 'ERROR') { + $code = $json['errorCode']; + $msg = $json['errorMessage']; + } + common_log(LOG_ERR, "bit.ly returned error $code $msg for $url"); + } + return false; } function onPluginVersion(&$versions) { $versions[] = array('name' => sprintf('BitlyUrl (%s)', $this->shortenerName), 'version' => STATUSNET_VERSION, - 'author' => 'Craig Andrews', + 'author' => 'Craig Andrews, Brion Vibber', 'homepage' => 'http://status.net/wiki/Plugin:BitlyUrl', 'rawdescription' => sprintf(_m('Uses <a href="http://%1$s/">%1$s</a> URL-shortener service.'), @@ -60,5 +175,85 @@ class BitlyUrlPlugin extends UrlShortenerPlugin return true; } -} + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m path-to-action mapper + * @return boolean hook return + */ + function onRouterInitialized($m) + { + $m->connect('admin/bitly', + array('action' => 'bitlyadminpanel')); + return true; + } + + /** + * If the plugin's installed, this should be accessible to admins. + */ + function onAdminPanelCheck($name, &$isOK) + { + if ($name == 'bitly') { + $isOK = true; + return false; + } + + return true; + } + + /** + * Add the bit.ly admin panel to the list... + */ + function onEndAdminPanelNav($nav) + { + if (AdminPanelAction::canAdmin('bitly')) { + $action_name = $nav->action->trimmed('action'); + + $nav->out->menuItem(common_local_url('bitlyadminpanel'), + _m('bit.ly'), + _m('bit.ly URL shortening'), + $action_name == 'bitlyadminpanel', + 'nav_bitly_admin_panel'); + } + + return true; + } + + /** + * Automatically load the actions and libraries used by the plugin + * + * @param Class $cls the class + * + * @return boolean hook return + * + */ + function onAutoload($cls) + { + $base = dirname(__FILE__); + $lower = strtolower($cls); + switch ($lower) { + case 'bitlyadminpanelaction': + require_once "$base/$lower.php"; + return false; + default: + return true; + } + } + + /** + * Internal hook point to check the default global credentials so + * the admin form knows if we have a fallback or not. + * + * @param string $login + * @param string $apiKey + * @return boolean hook return value + */ + function onBitlyDefaultCredentials(&$login, &$apiKey) + { + $login = $this->login; + $apiKey = $this->apiKey; + return false; + } + +} diff --git a/plugins/BitlyUrl/README b/plugins/BitlyUrl/README new file mode 100644 index 0000000000..0b3af1dd63 --- /dev/null +++ b/plugins/BitlyUrl/README @@ -0,0 +1,37 @@ +bit.ly URL shortening requires the login name and API key for a bit.ly account. +Register for an account or set up your API key here: + + http://bit.ly/a/your_api_key + +Administrators can configure a login and API key to use through the admin panels +on the site; these credentials will then be used for all users. + +(In the future, options will be added for individual users to override the keys +with their own login for URLs they post.) + +If the login and API key are left empty in the admin panel, then bit.ly will be +disabled and hidden from the list of available URL shorteners unless a global +default was provided in the plugin configuration. + + +To enable bit.ly with no default credentials, simply slip into your config.php: + + addPlugin('BitlyUrl'); + +To provide default credentials, add them as parameters: + + addPlugin('BitlyUrl', array( + 'login' => 'myname', + 'apiKey' => '############################' + )); + +These settings will not be individually exposed to the admin panels, but the +panel will indicate whether or not the global default settings are available; +this makes it suitable as a global default for multi-site hosting, where admins +on individual sites can change to use their own settings. + + +If you're using a bit.ly pro account with a custom domain etc, it should all +"just work" as long as you use the correct login name and API key for your +account. + diff --git a/plugins/BitlyUrl/bitlyadminpanelaction.php b/plugins/BitlyUrl/bitlyadminpanelaction.php new file mode 100644 index 0000000000..05b8e83267 --- /dev/null +++ b/plugins/BitlyUrl/bitlyadminpanelaction.php @@ -0,0 +1,238 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Admin panel for plugin to use bit.ly URL shortening services. + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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); +} + +/** + * Administer global bit.ly URL shortener settings + * + * @category Admin + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class BitlyadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _m('bit.ly URL shortening'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _m('URL shortening with bit.ly requires ' . + '[a bit.ly account and API key](http://bit.ly/a/your_api_key). ' . + 'This verifies that this is an authorized account, and ' . + 'allow you to use bit.ly\'s tracking features and custom domains.'); + } + + /** + * Show the bit.ly admin panel form + * + * @return void + */ + + function showForm() + { + $form = new BitlyAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array( + 'bitly' => array('default_login', 'default_apikey') + ); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] + = $this->trimmed($setting); + } + } + + // This throws an exception on validation errors + + $this->validate($values); + + // assert(all values are valid); + + $config = new Config(); + + $config->query('BEGIN'); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + function validate(&$values) + { + // Validate consumer key and secret (can't be too long) + + if (mb_strlen($values['bitly']['default_apikey']) > 255) { + $this->clientError( + _m("Invalid login. Max length is 255 characters.") + ); + } + + if (mb_strlen($values['bitly']['default_apikey']) > 255) { + $this->clientError( + _m("Invalid API key. Max length is 255 characters.") + ); + } + } +} + +class BitlyAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'bitlyadminpanel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('bitlyadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_bitly') + ); + $this->out->element('legend', null, _m('Credentials')); + + // Do we have global defaults to fall back on? + $login = $apiKey = false; + Event::handle('BitlyDefaultCredentials', array(&$login, &$apiKey)); + $haveGlobalDefaults = ($login && $apiKey); + if ($login && $apiKey) { + $this->out->element('p', 'form_guide', + _m('Leave these empty to use global default credentials.')); + } else { + $this->out->element('p', 'form_guide', + _m('If you leave these empty, bit.ly will be unavailable to users.')); + } + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input( + 'default_login', + _m('Login name'), + null, + 'bitly' + ); + $this->unli(); + + $this->li(); + $this->input( + 'default_apikey', + _m('API key'), + null, + 'bitly' + ); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Save'), 'submit', null, _m('Save bit.ly settings')); + } +} diff --git a/plugins/BitlyUrl/locale/BitlyUrl.pot b/plugins/BitlyUrl/locale/BitlyUrl.pot index 28023759aa..c75936ef14 100644 --- a/plugins/BitlyUrl/locale/BitlyUrl.pot +++ b/plugins/BitlyUrl/locale/BitlyUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,7 +16,58 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: BitlyUrlPlugin.php:60 +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "" + +#: BitlyUrlPlugin.php:175 #, php-format msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." msgstr "" + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "" diff --git a/plugins/BitlyUrl/locale/be-tarask/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/be-tarask/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..597fa221e5 --- /dev/null +++ b/plugins/BitlyUrl/locale/be-tarask/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,90 @@ +# Translation of StatusNet - BitlyUrl to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Вам неабходна пазначыць serviceUrl для сэрвісу скарачэньняў bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Выкарыстаньне сэрвісу скарачэньня URL-адрасоў <a href=\"http://%1$s/\">%1$s</" +"a>." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Скарачэньне URL-адрасоў bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Скарачэньне URL-адрасоў з дапамогай bit.ly патрабуе [рахунак bit.ly і ключ " +"API](http://bit.ly/a/your_api_key). Гэта пацьвердзіць, што гэта аўтарызаваны " +"рахунак і дазволіць Вам выкарыстоўваць магчымасьці сачэньня bit.ly і " +"нестандартныя дамэны." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Няслушнае імя карыстальніка. Максымальная даўжыня 255 сымбаляў." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Няслушны API-ключ. Максымальная даўжыня 255 сымбаляў." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Упаўнаважаньні" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" +"Пакіньце гэтае поле пустым, каб выкарыстоўваць глябальнымі ўпаўнаважаньнямі " +"па змоўчваньні." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Калі Вы пакінеце гэтае поле пустым, bit.ly будзе недаступны для " +"карыстальнікаў." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Імя карыстальніка" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-ключ" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Захаваць устаноўкі bit.ly" diff --git a/plugins/BitlyUrl/locale/br/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/br/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..538386d91a --- /dev/null +++ b/plugins/BitlyUrl/locale/br/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - BitlyUrl to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "" + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Anv implijer" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Enrollañ arventennoù bit.ly" diff --git a/plugins/BitlyUrl/locale/de/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/de/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..69cc987426 --- /dev/null +++ b/plugins/BitlyUrl/locale/de/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,84 @@ +# Translation of StatusNet - BitlyUrl to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Michael +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Du musst eine „serviceUrl“ zur bit.ly-URL-Kürzung angeben." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Benutzung des <a href=\"http://%1$s/\">%1$s</a>-URL-Kürzungsdienstes." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "bit.ly-URL-Kürzung" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"URL-Kürzung mit bit.ly erfordert [ein bit.ly-Benutzerkonto und API-Schlüssel]" +"(http://bit.ly/a/your_api_key). Das stellt sicher, dass es ein autorisiertes " +"Benutzerkonto ist und ermöglicht bit.lys Tracking-Funktionen und " +"benutzerdefinierte Domains." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Ungültige Anmeldung. Maximale Länge sind 255 Zeichen." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Ungültiger API-Schlüssel. Maximale Länge sind 255 Zeichen." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Anmeldeinformationen" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "Lass dies leer, um globale Standard-Anmeldeinformationen zu benutzen." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Wenn du dies leer lässt, wird bit.ly nicht für Benutzer verfügbar sein." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Benutzername" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-Schlüssel" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "bit.ly-Einstellungen speichern" diff --git a/plugins/BitlyUrl/locale/es/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/es/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..e1cad4db23 --- /dev/null +++ b/plugins/BitlyUrl/locale/es/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - BitlyUrl to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-09 14:04+0000\n" +"PO-Revision-Date: 2010-10-09 14:07:16+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +#, fuzzy +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Debes especificar un serviceUrl." + +#: BitlyUrlPlugin.php:171 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza el servicio de acortamiento de URL <a href=\"http://%1$s/\">%1$s</a>." + +#: BitlyUrlPlugin.php:212 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "" diff --git a/plugins/BitlyUrl/locale/fr/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/fr/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..619c0ac4b3 --- /dev/null +++ b/plugins/BitlyUrl/locale/fr/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,87 @@ +# Translation of StatusNet - BitlyUrl to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Vous devez spécifier un serviceUrl pour le raccourcissement bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utilise le service de raccourcissement d’URL <a href=\"http://%1$s/\">%1$s</" +"a>." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Raccourcissement d’URL bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Le raccourcissement d’URL par bit.ly nécessite [un compte bit.ly et une clé " +"API](http://bit.ly/a/your_api_key). Ceci permet de vérifier qu'il s'agit " +"bien d’un compte autorisé et vous permet d’utiliser les fonctionnalités de " +"suivi et les domaines personnalisés de bit.ly." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" +"Nom d’utilisateur invalide. La longueur maximale est de 255 caractères." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Clé d’API invalide. La longueur maximale est de 255 caractères." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Pouvoirs" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "Laissez ceci vide pour utiliser les pouvoirs globaux par défaut." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Si vous laissez ceci vide, bit.ly ne sera pas disponible pour les " +"utilisateurs." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Nom d’utilisateur" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "Clé API" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Sauvegarder les paramètres bit.ly" diff --git a/plugins/BitlyUrl/locale/gl/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/gl/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..bdd6a3f737 --- /dev/null +++ b/plugins/BitlyUrl/locale/gl/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - BitlyUrl to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "" + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Rexistro incorrecto. A extensión máxima é de 255 caracteres." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Clave API incorrecta. A extensión máxima é de 255 caracteres." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Nome de usuario" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Gardar a configuración bit.ly" diff --git a/plugins/BitlyUrl/locale/ia/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/ia/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..14fe26a8d5 --- /dev/null +++ b/plugins/BitlyUrl/locale/ia/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,83 @@ +# Translation of StatusNet - BitlyUrl to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Tu debe specificar un serviceUrl pro accurtamento bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Usa abbreviator de URL <a href=\"http://%1$s/\">%1$s</a>." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Accurtamento de URL con bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Le accurtamento de URL con bit.ly require [un conto de bit.ly e un clave API]" +"(http://bit.ly/a/your_api_key). Isto verifica que isto es un conto " +"autorisate, e permitte usar le functionalitate de traciamento e dominios " +"personalisate de bit.ly." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Nomine de usator invalide. Longitude maximal es 255 characteres." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Clave API invalide. Longitude maximal es 255 characteres." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Datos de authentication" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" +"Lassa istes vacue pro usar le datos de authentication global predefinite." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "Si tu lassa istes vacue, bit.ly non essera disponibile al usatores." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Nomine de conto" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "Clave API" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Salveguardar configurationes de bit.ly" diff --git a/plugins/BitlyUrl/locale/mk/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/mk/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..ad6c5ccd02 --- /dev/null +++ b/plugins/BitlyUrl/locale/mk/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,85 @@ +# Translation of StatusNet - BitlyUrl to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Мора да наведете URL-адреса за скратување со bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Користи <a href=\"http://%1$s/\">%1$s</a> - служба за скратување на URL-" +"адреса." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Скратување на URL со bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Скратувањето на URL-адреси со bit.ly бара [сметка и API-клуч за bit.ly]" +"(http://bit.ly/a/your_api_key). Со ова се потврдува дека ова е овластена " +"сметка, и Ви овозможува да ги користите можностите за следење и " +"прилагодување на домени што ги нуди bit.ly's." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Неважечко корисничко име. Дозволени се највеќе 255 знаци." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Неважечки API-клуч. Дозволени се највеќе 255 знаци." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Уверенија" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" +"Оставете го ова празно за да го користите глобалното уверение по основно." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "Ако ова го оставите празно, bit.ly ќе биде недостапен за корисниците." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Корисничко име" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-клуч" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Зачувај нагодувања на bit.ly" diff --git a/plugins/BitlyUrl/locale/nb/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/nb/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..d2067438d6 --- /dev/null +++ b/plugins/BitlyUrl/locale/nb/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - BitlyUrl to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Du må angi en serviceUrl for bit.ly-forkortelse." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Bruker URL-forkortertjenesten <a href=\"http://%1$s/\">%1$s</a>." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "bit.ly URL-forkortelse" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"URL-forkortelse med bit.ly krever [en bit.ly-konto og API-nøkkel](http://bit." +"ly/a/your_api_key). Denne bekrefter at dette er en autorisert konto og " +"tillater deg å bruke bit.lys sporingsfunksjoner og egendefinerte domener." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Ugyldig pålogging. Maks lengde er 255 tegn." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Ugyldig API-nøkkel. Maks lengde er 255 tegn." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Attester" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "La disse være tomme for å bruke globale standardattester." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "Om du lar disse være tomme vil bit.ly være utilgjengelig for brukere." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Innloggingsnavn" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-nøkkel" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Lagre bit.ly-innstillinger" diff --git a/plugins/BitlyUrl/locale/nl/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/nl/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..a5a502c6ca --- /dev/null +++ b/plugins/BitlyUrl/locale/nl/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,84 @@ +# Translation of StatusNet - BitlyUrl to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "U moet een serviceUrl opgeven om URL's in te korten via bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gebruikt de dienst <a href=\"http://%1$s/\">%1$s</a> om URL's korter te " +"maken." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "URL's inkorten via bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Het inkorten van URL's via bit.ly vereist een [account bij bit.ly en een API-" +"sleutel](http://bit.ly/a/your_api_key)." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Ongeldige aanmeldgegevens. De maximale lengte is 255 tekens." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "De API-sleutel is ongeldig. De maximale lengte is 255 tekens." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Gebruikersgegevens" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "Laat deze leeg om globale standaard gebruikersgegevens te gebruiken." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Als u deze velden oningevuld laat, is bit.ly niet beschikbaar voor " +"gebruikers." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Gebruikersnaam" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-sleutel" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "bit.ly-instellingen opslaan" diff --git a/plugins/BitlyUrl/locale/pt_BR/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/pt_BR/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..76294af4fe --- /dev/null +++ b/plugins/BitlyUrl/locale/pt_BR/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - BitlyUrl to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-09 14:04+0000\n" +"PO-Revision-Date: 2010-10-09 14:07:16+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BitlyUrlPlugin.php:48 +#, fuzzy +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Você precisa especificar um serviceUrl." + +#: BitlyUrlPlugin.php:171 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza o serviço de encurtamento de URL <a href=\"http://%1$s/\">%1$s</a>" + +#: BitlyUrlPlugin.php:212 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "" diff --git a/plugins/BitlyUrl/locale/ru/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/ru/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..7df515cf34 --- /dev/null +++ b/plugins/BitlyUrl/locale/ru/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,87 @@ +# Translation of StatusNet - BitlyUrl to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "" + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Использование службы сокращения URL <a href=\"http://%1$s/\">%1$s</a>." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Сервис сокращения URL bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Сокращение URL с bit.ly требует наличие [учётной записи bit.ly и API-ключа]" +"(http://bit.ly/a/your_api_key). Это подтверждает, что ваша учётная запись " +"авторизована и позволяет использовать функции отслеживания bit.ly и " +"настраивать домены." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Неверное имя пользователя. Максимальная длина составляет 255 символов." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Неверный ключ API. Максимальная длина составляет 255 символов." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Полномочия" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" +"Оставьте это поле пустым для использования глобальных полномочий по " +"умолчанию." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Если оставить это поле пустым, bit.ly будет недоступен для пользователей." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Имя учётной записи" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "Ключ API" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Сохранить настройки bit.ly" diff --git a/plugins/BitlyUrl/locale/tl/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/tl/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..b9d27ac717 --- /dev/null +++ b/plugins/BitlyUrl/locale/tl/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - BitlyUrl to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-09 14:04+0000\n" +"PO-Revision-Date: 2010-10-09 14:07:16+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BitlyUrlPlugin.php:48 +#, fuzzy +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "Dapat kang tumukoy ng isang serbisyo ng URL." + +#: BitlyUrlPlugin.php:171 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gumagamit ng <a href=\"http://%1$s/\">%1$s</a> na serbisyong pampaiksi ng " +"URL." + +#: BitlyUrlPlugin.php:212 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "" diff --git a/plugins/BitlyUrl/locale/uk/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/uk/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..74b7903896 --- /dev/null +++ b/plugins/BitlyUrl/locale/uk/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,89 @@ +# Translation of StatusNet - BitlyUrl to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:32+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BitlyUrlPlugin.php:48 +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "" +"Ви мусите зазначити URL-адресу для сервісу скорочення URL-адрес bit.ly." + +#: BitlyUrlPlugin.php:175 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Використання <a href=\"http://%1$s/\">%1$s</a> для скорочення URL-адрес." + +#: BitlyUrlPlugin.php:216 +msgid "bit.ly" +msgstr "bit.ly" + +#: BitlyUrlPlugin.php:217 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "Скорочення URL-адрес bit.ly" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" +"Скорочення URL-адрес за допомогою bit.ly вимагає [акаунт bit.ly та API-ключ]" +"(http://bit.ly/a/your_api_key). Це підтвердить те, що даний акаунт є " +"авторизованим і дозволить користуватися функцією відстеження bit.ly, а також " +"доменами користувачів." + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "Невірний лоґін. Максимальна довжина — 255 символів." + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "Невірний API-ключ. Максимальна довжина — 255 символів." + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "Повноваження" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" +"Залиште це поле порожнім, щоб користуватися загальними повноваженнями за " +"замовчуванням." + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" +"Якщо ви залишите це поле порожнім, сервіс bit.ly стане недоступним для інших " +"користувачів." + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "Лоґін" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "API-ключ" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "Зберегти налаштування bit.ly" diff --git a/plugins/BitlyUrl/locale/zh_CN/LC_MESSAGES/BitlyUrl.po b/plugins/BitlyUrl/locale/zh_CN/LC_MESSAGES/BitlyUrl.po new file mode 100644 index 0000000000..bdc0839700 --- /dev/null +++ b/plugins/BitlyUrl/locale/zh_CN/LC_MESSAGES/BitlyUrl.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - BitlyUrl to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BitlyUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-09 14:04+0000\n" +"PO-Revision-Date: 2010-10-09 14:07:16+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-bitlyurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: BitlyUrlPlugin.php:48 +#, fuzzy +msgid "You must specify a serviceUrl for bit.ly shortening." +msgstr "你必须指定一个服务网址" + +#: BitlyUrlPlugin.php:171 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "使用 <a href=\"http://%1$s/\">%1$s</a>短链接服务" + +#: BitlyUrlPlugin.php:212 +msgid "bit.ly" +msgstr "" + +#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54 +msgid "bit.ly URL shortening" +msgstr "" + +#: bitlyadminpanelaction.php:65 +msgid "" +"URL shortening with bit.ly requires [a bit.ly account and API key](http://" +"bit.ly/a/your_api_key). This verifies that this is an authorized account, " +"and allow you to use bit.ly's tracking features and custom domains." +msgstr "" + +#: bitlyadminpanelaction.php:132 +msgid "Invalid login. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:138 +msgid "Invalid API key. Max length is 255 characters." +msgstr "" + +#: bitlyadminpanelaction.php:191 +msgid "Credentials" +msgstr "" + +#: bitlyadminpanelaction.php:199 +msgid "Leave these empty to use global default credentials." +msgstr "" + +#: bitlyadminpanelaction.php:202 +msgid "If you leave these empty, bit.ly will be unavailable to users." +msgstr "" + +#: bitlyadminpanelaction.php:209 +msgid "Login name" +msgstr "" + +#: bitlyadminpanelaction.php:218 +msgid "API key" +msgstr "" + +#: bitlyadminpanelaction.php:236 +msgid "Save bit.ly settings" +msgstr "" diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php index 63bffe2c6f..15545f03cb 100644 --- a/plugins/Blacklist/BlacklistPlugin.php +++ b/plugins/Blacklist/BlacklistPlugin.php @@ -40,7 +40,6 @@ 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 BlacklistPlugin extends Plugin { const VERSION = STATUSNET_VERSION; @@ -76,13 +75,11 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function onCheckSchema() { $schema = Schema::get(); // For storing blacklist patterns for nicknames - $schema->ensureTable('nickname_blacklist', array(new ColumnDef('pattern', 'varchar', @@ -118,7 +115,6 @@ class BlacklistPlugin extends Plugin * * @return array configuration values */ - function _configArray($section, $setting) { $config = common_config($section, $setting); @@ -143,14 +139,14 @@ class BlacklistPlugin extends Plugin * * @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'"), + // TRANS: Validation failure for URL. %s is the URL. + $msg = sprintf(_m("You may not register with homepage \"%s\"."), $homepage); throw new ClientException($msg); } @@ -160,7 +156,8 @@ class BlacklistPlugin extends Plugin if (!empty($nickname)) { if (!$this->_checkNickname($nickname)) { - $msg = sprintf(_m("You may not register with nickname '%s'"), + // TRANS: Validation failure for nickname. %s is the nickname. + $msg = sprintf(_m("You may not register with nickname \"%s\"."), $nickname); throw new ClientException($msg); } @@ -178,14 +175,14 @@ class BlacklistPlugin extends Plugin * * @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'"), + // TRANS: Validation failure for URL. %s is the URL. + $msg = sprintf(_m("You may not use homepage \"%s\"."), $homepage); throw new ClientException($msg); } @@ -195,7 +192,8 @@ class BlacklistPlugin extends Plugin if (!empty($nickname)) { if (!$this->_checkNickname($nickname)) { - $msg = sprintf(_m("You may not use nickname '%s'"), + // TRANS: Validation failure for nickname. %s is the nickname. + $msg = sprintf(_m("You may not use nickname \"%s\"."), $nickname); throw new ClientException($msg); } @@ -213,7 +211,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function onStartNoticeSave(&$notice) { common_replace_urls_callback($notice->content, @@ -230,7 +227,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function checkNoticeUrl($url) { // It comes in special'd, so we unspecial it @@ -239,7 +235,8 @@ class BlacklistPlugin extends Plugin $url = htmlspecialchars_decode($url); if (!$this->_checkUrl($url)) { - $msg = sprintf(_m("You may not use url '%s' in notices"), + // TRANS: Validation failure for URL. %s is the URL. + $msg = sprintf(_m("You may not use URL \"%s\" in notices."), $url); throw new ClientException($msg); } @@ -256,7 +253,6 @@ class BlacklistPlugin extends Plugin * * @return boolean true means it's OK, false means it's bad */ - private function _checkUrl($url) { $patterns = $this->_getUrlPatterns(); @@ -279,7 +275,6 @@ class BlacklistPlugin extends Plugin * * @return boolean true means it's OK, false means it's bad */ - private function _checkNickname($nickname) { $patterns = $this->_getNicknamePatterns(); @@ -300,7 +295,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook return */ - function onRouterInitialized($m) { $m->connect('admin/blacklist', array('action' => 'blacklistadminpanel')); @@ -314,7 +308,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook return */ - function onAutoload($cls) { switch (strtolower($cls)) @@ -339,7 +332,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function onPluginVersion(&$versions) { $versions[] = array('name' => 'Blacklist', @@ -348,7 +340,7 @@ class BlacklistPlugin extends Plugin 'homepage' => 'http://status.net/wiki/Plugin:Blacklist', 'description' => - _m('Keep a blacklist of forbidden nickname '. + _m('Keeps a blacklist of forbidden nickname '. 'and URL patterns.')); return true; } @@ -361,7 +353,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function onAdminPanelCheck($name, &$isOK) { if ($name == 'blacklist') { @@ -379,7 +370,6 @@ class BlacklistPlugin extends Plugin * * @return boolean hook value */ - function onEndAdminPanelNav($nav) { if (AdminPanelAction::canAdmin('blacklist')) { @@ -387,8 +377,10 @@ class BlacklistPlugin extends Plugin $action_name = $nav->action->trimmed('action'); $nav->out->menuItem(common_local_url('blacklistadminpanel'), - _('Blacklist'), - _('Blacklist configuration'), + // TRANS: Menu item in admin panel. + _m('MENU','Blacklist'), + // TRANS: Tooltip for menu item in admin panel. + _m('TOOLTIP','Blacklist configuration'), $action_name == 'blacklistadminpanel', 'nav_blacklist_admin_panel'); } @@ -414,7 +406,8 @@ class BlacklistPlugin extends Plugin $action->elementStart('li'); $this->checkboxAndText($action, 'blacklistnickname', - _('Add this nickname pattern to blacklist'), + // TRANS: Checkbox with text label in the delete user form. + _m('Add this nickname pattern to blacklist'), 'blacklistnicknamepattern', $this->patternizeNickname($user->nickname)); $action->elementEnd('li'); @@ -423,7 +416,8 @@ class BlacklistPlugin extends Plugin $action->elementStart('li'); $this->checkboxAndText($action, 'blacklisthomepage', - _('Add this homepage pattern to blacklist'), + // TRANS: Checkbox with text label in the delete user form. + _m('Add this homepage pattern to blacklist'), 'blacklisthomepagepattern', $this->patternizeHomepage($profile->homepage)); $action->elementEnd('li'); @@ -478,4 +472,82 @@ class BlacklistPlugin extends Plugin $hostname = parse_url($homepage, PHP_URL_HOST); return $hostname; } + + function onStartHandleFeedEntry($activity) + { + return $this->_checkActivity($activity); + } + + function onStartHandleSalmon($activity) + { + return $this->_checkActivity($activity); + } + + function _checkActivity($activity) + { + $actor = $activity->actor; + + if (empty($actor)) { + return true; + } + + $homepage = strtolower($actor->link); + + if (!empty($homepage)) { + if (!$this->_checkUrl($homepage)) { + // TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. + $msg = sprintf(_m("Users from \"%s\" blocked."), + $homepage); + throw new ClientException($msg); + } + } + + $nickname = strtolower($actor->poco->preferredUsername); + + if (!empty($nickname)) { + if (!$this->_checkNickname($nickname)) { + // TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. + $msg = sprintf(_m("Posts from nickname \"%s\" disallowed."), + $nickname); + throw new ClientException($msg); + } + } + + return true; + } + + /** + * Check URLs and homepages for blacklisted users. + */ + function onStartSubscribe($subscriber, $other) + { + foreach (array($other->profileurl, $other->homepage) as $url) { + + if (empty($url)) { + continue; + } + + $url = strtolower($url); + + if (!$this->_checkUrl($url)) { + // TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. + $msg = sprintf(_m("Users from \"%s\" blocked."), + $url); + throw new ClientException($msg); + } + } + + $nickname = $other->nickname; + + if (!empty($nickname)) { + if (!$this->_checkNickname($nickname)) { + // TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. + $msg = sprintf(_m("Can't subscribe to nickname \"%s\"."), + $nickname); + throw new ClientException($msg); + } + } + + return true; + } } diff --git a/plugins/Blacklist/Homepage_blacklist.php b/plugins/Blacklist/Homepage_blacklist.php index ec89ee4bd8..2820294fa2 100644 --- a/plugins/Blacklist/Homepage_blacklist.php +++ b/plugins/Blacklist/Homepage_blacklist.php @@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * * @see DB_DataObject */ - class Homepage_blacklist extends Memcached_DataObject { public $__table = 'homepage_blacklist'; // table name @@ -62,7 +61,6 @@ class Homepage_blacklist extends Memcached_DataObject * @return Homepage_blacklist object found, or null for no hits * */ - function staticGet($k, $v=null) { return Memcached_DataObject::staticGet('Homepage_blacklist', $k, $v); @@ -76,7 +74,6 @@ class Homepage_blacklist extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, @@ -91,7 +88,6 @@ class Homepage_blacklist extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -105,7 +101,6 @@ class Homepage_blacklist extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('pattern' => 'K'); @@ -116,7 +111,6 @@ class Homepage_blacklist extends Memcached_DataObject * * @return array string patterns to check */ - static function getPatterns() { $patterns = self::cacheGet('homepage_blacklist:patterns'); @@ -144,17 +138,14 @@ class Homepage_blacklist extends Memcached_DataObject * * @return array of patterns to check */ - static function saveNew($newPatterns) { $oldPatterns = self::getPatterns(); // Delete stuff that's old that not in new - $toDelete = array_diff($oldPatterns, $newPatterns); // Insert stuff that's in new and not in old - $toInsert = array_diff($newPatterns, $oldPatterns); foreach ($toDelete as $pattern) { diff --git a/plugins/Blacklist/Nickname_blacklist.php b/plugins/Blacklist/Nickname_blacklist.php index e8545292d1..d5d46a9490 100644 --- a/plugins/Blacklist/Nickname_blacklist.php +++ b/plugins/Blacklist/Nickname_blacklist.php @@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * * @see DB_DataObject */ - class Nickname_blacklist extends Memcached_DataObject { public $__table = 'nickname_blacklist'; // table name @@ -62,7 +61,6 @@ class Nickname_blacklist extends Memcached_DataObject * @return Nickname_blacklist object found, or null for no hits * */ - function staticGet($k, $v=null) { return Memcached_DataObject::staticGet('Nickname_blacklist', $k, $v); @@ -73,7 +71,6 @@ class Nickname_blacklist extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, @@ -85,7 +82,6 @@ class Nickname_blacklist extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -96,7 +92,6 @@ class Nickname_blacklist extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('pattern' => 'K'); @@ -107,7 +102,6 @@ class Nickname_blacklist extends Memcached_DataObject * * @return array string patterns to check */ - static function getPatterns() { $patterns = self::cacheGet('nickname_blacklist:patterns'); @@ -135,17 +129,14 @@ class Nickname_blacklist extends Memcached_DataObject * * @return array of patterns to check */ - static function saveNew($newPatterns) { $oldPatterns = self::getPatterns(); // Delete stuff that's old that not in new - $toDelete = array_diff($oldPatterns, $newPatterns); // Insert stuff that's in new and not in old - $toInsert = array_diff($newPatterns, $oldPatterns); foreach ($toDelete as $pattern) { diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php index 4289dec1ba..9019bb9ad2 100644 --- a/plugins/Blacklist/blacklistadminpanel.php +++ b/plugins/Blacklist/blacklistadminpanel.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class BlacklistadminpanelAction extends AdminPanelAction { /** @@ -48,10 +47,9 @@ class BlacklistadminpanelAction extends AdminPanelAction * * @return string title */ - function title() { - return _('Blacklist'); + return _m('Blacklist'); } /** @@ -59,10 +57,9 @@ class BlacklistadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - return _('Blacklisted URLs and nicknames'); + return _m('Blacklisted URLs and nicknames'); } /** @@ -72,7 +69,6 @@ class BlacklistadminpanelAction extends AdminPanelAction * * @see BlacklistAdminPanelForm */ - function showForm() { $form = new BlacklistAdminPanelForm($this); @@ -85,7 +81,6 @@ class BlacklistadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames')); @@ -116,7 +111,6 @@ class BlacklistadminpanelAction extends AdminPanelAction * * @return boolean success flag */ - function validate(&$values) { return true; @@ -132,7 +126,6 @@ class BlacklistadminpanelAction extends AdminPanelAction * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class BlacklistAdminPanelForm extends Form { /** @@ -140,7 +133,6 @@ class BlacklistAdminPanelForm extends Form * * @return string ID */ - function id() { return 'blacklistadminpanel'; @@ -151,7 +143,6 @@ class BlacklistAdminPanelForm extends Form * * @return string class */ - function formClass() { return 'form_settings'; @@ -162,7 +153,6 @@ class BlacklistAdminPanelForm extends Form * * @return string action URL */ - function action() { return common_local_url('blacklistadminpanel'); @@ -173,7 +163,6 @@ class BlacklistAdminPanelForm extends Form * * @return void */ - function formData() { $this->out->elementStart('ul', 'form_data'); @@ -184,7 +173,7 @@ class BlacklistAdminPanelForm extends Form $this->out->textarea('blacklist-nicknames', _m('Nicknames'), implode("\r\n", $nickPatterns), - _('Patterns of nicknames to block, one per line')); + _m('Patterns of nicknames to block, one per line')); $this->out->elementEnd('li'); $urlPatterns = Homepage_blacklist::getPatterns(); @@ -192,7 +181,7 @@ class BlacklistAdminPanelForm extends Form $this->out->elementStart('li'); $this->out->textarea('blacklist-urls', _m('URLs'), implode("\r\n", $urlPatterns), - _('Patterns of URLs to block, one per line')); + _m('Patterns of URLs to block, one per line')); $this->out->elementEnd('li'); $this->out->elementEnd('ul'); @@ -203,13 +192,12 @@ class BlacklistAdminPanelForm extends Form * * @return void */ - function formActions() { $this->out->submit('submit', - _('Save'), + _m('Save'), 'submit', null, - _('Save site settings')); + _m('Save site settings')); } } diff --git a/plugins/Blacklist/locale/Blacklist.pot b/plugins/Blacklist/locale/Blacklist.pot index 90eda0941d..f3ff133468 100644 --- a/plugins/Blacklist/locale/Blacklist.pot +++ b/plugins/Blacklist/locale/Blacklist.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,39 +16,109 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: BlacklistPlugin.php:153 +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 #, php-format -msgid "You may not register with homepage '%s'" +msgid "You may not register with homepage \"%s\"." msgstr "" -#: BlacklistPlugin.php:163 +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 #, php-format -msgid "You may not register with nickname '%s'" +msgid "You may not register with nickname \"%s\"." msgstr "" -#: BlacklistPlugin.php:188 +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 #, php-format -msgid "You may not use homepage '%s'" +msgid "You may not use homepage \"%s\"." msgstr "" -#: BlacklistPlugin.php:198 +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 #, php-format -msgid "You may not use nickname '%s'" +msgid "You may not use nickname \"%s\"." msgstr "" -#: BlacklistPlugin.php:242 +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 #, php-format -msgid "You may not use url '%s' in notices" +msgid "You may not use URL \"%s\" in notices." msgstr "" -#: BlacklistPlugin.php:351 -msgid "Keep a blacklist of forbidden nickname and URL patterns." +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." msgstr "" -#: blacklistadminpanel.php:185 +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "" + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "" + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "" + +#: blacklistadminpanel.php:174 msgid "Nicknames" msgstr "" -#: blacklistadminpanel.php:193 +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:182 msgid "URLs" msgstr "" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "" diff --git a/plugins/Blacklist/locale/be-tarask/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/be-tarask/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..c98f7863e3 --- /dev/null +++ b/plugins/Blacklist/locale/be-tarask/LC_MESSAGES/Blacklist.po @@ -0,0 +1,131 @@ +# Translation of StatusNet - Blacklist to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Вы ня можаце зарэгістравацца, падаўшы «%s» як хатнюю старонку." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Вы ня можаце зарэгістравацца з мянушкай «%s»." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Вы ня можаце выкарыстоўваць хатнюю старонку «%s»." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Вы ня можаце выкарыстоўваць мянушку «%s»." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Вы ня можаце выкарыстоўваць URL-адрас «%s» у заўвагах." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Захоўвае чорны сьпіс забароненых мянушак і шаблёнаў URL-адрасоў." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Чорны сьпіс" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Устаноўкі чорнага сьпісу" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Дадаць гэты шаблён мянушкі да чорнага сьпісу" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Дадаць гэты шаблён хатняй старонкі да чорнага сьпісу" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Карыстальнік з «%s» заблякаваны." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Паведамленьні ад карыстальніка «%s» забароненыя." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Немагчыма падпісацца на карыстальніка «%s»." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Чорны сьпіс" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "Чорны сьпіс URL-адрасоў і мянушак" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Мянушкі" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Шаблёны мянушак для блякаваньня, па аднаму на радок" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL-адрасы" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Шаблёны URL-адрасоў для блякаваньня, па аднаму на радок" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Захаваць" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Захаваць устаноўкі сайта" diff --git a/plugins/Blacklist/locale/br/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/br/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..a6b1def150 --- /dev/null +++ b/plugins/Blacklist/locale/br/LC_MESSAGES/Blacklist.po @@ -0,0 +1,129 @@ +# Translation of StatusNet - Blacklist to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, fuzzy, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Ne c'hellit ket en em enskrivañ gant ar bajenn degemer \"%s\"." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Ne c'hellit ket en em enskrivañ gant al lesanv \"%s\"." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Ne c'hellit ket implij ar bajenn degemer \"%s\"." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Ne c'hellit ket implij al lesanv \"%s\"." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Ne c'hellit ket implij an URL \"%s\" en alioù." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "" + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Implijer \"%s\" stanket." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "" + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, fuzzy, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Ne c'hellit ket implij al lesanv \"%s\"." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Lesanvioù" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URLoù" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Enrollañ" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Enrollañ arventennoù al lec'hienn" diff --git a/plugins/Blacklist/locale/de/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/de/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..1e6fd3c79b --- /dev/null +++ b/plugins/Blacklist/locale/de/LC_MESSAGES/Blacklist.po @@ -0,0 +1,129 @@ +# Translation of StatusNet - Blacklist to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Du darfst dich nicht mit der Homepage „%s“ anmelden." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Du darfst dich nicht mit den Benutzernamen „%s“ anmelden." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Du darfst nicht die Homepage „%s“ benutzen." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Du darfst nicht den Benutzernamen „%s“ benutzen." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Du darfst nicht die URL „%s“ in Nachrichten verwenden." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Hält eine schwarze Liste der verbotenen Benutzernamen und URL-Muster." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Schwarze Liste" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Konfiguration der schwarzen Liste" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Dieses Benutzernamen-Muster zur schwarzen Liste hinzufügen" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Dieses Homepage-Muster zur schwarzen Liste hinzufügen" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Benutzer von „%s“ blockiert." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Beiträge vom Benutzernamen „%s“ nicht erlaubt." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Kann Benutzernamen „%s“ nicht abonnieren." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Schwarze Liste" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URLs und Benutzernamen auf der schwarzen Liste" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Benutzernamen" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Muster der zu blockierenden Benutzernamen, einer pro Zeile" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URLs" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Muster der zu blockierenden URLS, eine pro Zeile" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Speichern" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Website-Einstellungen speichern" diff --git a/plugins/Blacklist/locale/es/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/es/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..a78addf867 --- /dev/null +++ b/plugins/Blacklist/locale/es/LC_MESSAGES/Blacklist.po @@ -0,0 +1,133 @@ +# Translation of StatusNet - Blacklist to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, fuzzy, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "No puedes registrarte con la página principal '%s'." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, fuzzy, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "No puedes registrarte con el nombre de usuario '%s'." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, fuzzy, php-format +msgid "You may not use homepage \"%s\"." +msgstr "No puedes utilizar la página de inicio '%s'." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, fuzzy, php-format +msgid "You may not use nickname \"%s\"." +msgstr "No puedes utilizar el nombre de usuario '%s'." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "No puedes utilizar el URL \"%s\" en los mensajes." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "" +"Mantiene una lista negra de patrones de nombres de usuario y URL prohibidos." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +#, fuzzy +msgctxt "MENU" +msgid "Blacklist" +msgstr "Lista negra" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +#, fuzzy +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Configuración de lista negra" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Añadir este patrón de nombre de usuario a la lista negra" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Añadir este patrón de página principal a la lista negra" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "" + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, fuzzy, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "No puedes utilizar el nombre de usuario '%s'." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Lista negra" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URL y nombres de usuario incluidos en la lista negra" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Nombres de usuario" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Patrones de nombres de usuario a bloquear, uno por línea" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URLs" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Patrones de URL a bloquear, uno por línea" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Guardar" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Guardar la configuración del sitio" diff --git a/plugins/Blacklist/locale/fr/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/fr/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..3b0d54ef18 --- /dev/null +++ b/plugins/Blacklist/locale/fr/LC_MESSAGES/Blacklist.po @@ -0,0 +1,130 @@ +# Translation of StatusNet - Blacklist to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Vous ne pouvez pas vous inscrire avec la page d’accueil « %s »." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Vous ne pouvez pas vous inscrire avec le pseudonyme « %s »." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Vous ne pouvez pas utiliser la page d’accueil « %s »." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Vous ne pouvez pas utiliser le pseudonyme « %s »." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Vous ne pouvez pas utiliser l’URL « %s » dans les avis." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Maintient une liste noire des pseudonymes et motifs d’URL interdits." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Liste noire" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Configuration de la liste noire" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Ajouter ce motif de pseudonymes à la liste noire" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Ajouter ce motif de pages d’accueil à la liste noire" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Utilisateurs de « %s » bloqués." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Messages de « %s » refusés." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Vous ne pouvez pas vous inscrire avec le pseudonyme « %s »." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Liste noire" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "Liste noire d’URL et de pseudonymes" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Pseudonymes" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Motifs de surnoms à bloquer, un par ligne" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "Adresses URL" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Motifs d’adresses URL à bloquer, un par ligne" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Sauvegarder" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Sauvegarder les paramètres du site" diff --git a/plugins/Blacklist/locale/gl/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/gl/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..c805cf773c --- /dev/null +++ b/plugins/Blacklist/locale/gl/LC_MESSAGES/Blacklist.po @@ -0,0 +1,131 @@ +# Translation of StatusNet - Blacklist to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "" + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "" + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "" + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "" + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +#, fuzzy +msgctxt "MENU" +msgid "Blacklist" +msgstr "Lista negra" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +#, fuzzy +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Configuración da lista negra" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "" + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "" + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Lista negra" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Alcumes" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "Enderezos URL" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Gardar" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Gardar a configuración do sitio" diff --git a/plugins/Blacklist/locale/ia/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/ia/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..973b832c79 --- /dev/null +++ b/plugins/Blacklist/locale/ia/LC_MESSAGES/Blacklist.po @@ -0,0 +1,130 @@ +# Translation of StatusNet - Blacklist to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Tu non pote registrar te con le pagina personal \"%s\"." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Tu non pote registrar te con le pseudonymo \"%s\"." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Tu non pote usar le pagina personal \"%s\"." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Tu non pote usar le pseudonymo \"%s\"." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Tu non pote usar le URL \"%s\" in notas." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "" +"Tene un lista nigre de pseudonymos e patronos de adresse URL prohibite." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Lista nigre" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Configuration del lista nigre" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Adder iste patrono de pseudonymo al lista nigre" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Adder iste patrono de pagina personal al lista nigre" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Usatores de \"%s\" blocate." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Notas del pseudonymo \"%s\" non permittite." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Non pote subscriber al pseudonymo \"%s\"." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Lista nigre" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URLs e pseudonymos in lista nigre" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Pseudonymos" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Patronos de pseudonymos a blocar, un per linea" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "Adresses URL" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Patronos de adresses URL a blocar, un per linea" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Salveguardar" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Salveguardar configurationes del sito" diff --git a/plugins/Blacklist/locale/mk/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/mk/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..285f480025 --- /dev/null +++ b/plugins/Blacklist/locale/mk/LC_MESSAGES/Blacklist.po @@ -0,0 +1,129 @@ +# Translation of StatusNet - Blacklist to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Не можете да се регистрирате со домашната страница „%s“." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Не можете да се регистрирате со прекарот „%s“." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Не можете да ја користите домашната страница „%s“." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Не можете да го користите прекарот „%s“." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Не можете да ја користите URL-адресата „%s“ во забелешки." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Води црн список на забранети видови на прекари и URL-адреси." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Црн список" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Поставки за црниот список" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Додај го овој вид прекар во црниот список" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Додај го овој вид домашна страница во црниот список" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Корисниците од „%s“ се блокирани." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Објавите од прекарот „%s“ не се дозволени." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Не можете да се претплатите на прекарот „%s“." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Црн список" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URL-адреси и прекари на црниот список" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Прекари" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Видови прекари за блокирање, по еден во секој ред" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL-адреси" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Видови URL-адреси за блокирање, по една во секој ред" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Зачувај" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Зачувај поставки на мреж. место" diff --git a/plugins/Blacklist/locale/nl/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/nl/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..ef8e1fa9d1 --- /dev/null +++ b/plugins/Blacklist/locale/nl/LC_MESSAGES/Blacklist.po @@ -0,0 +1,129 @@ +# Translation of StatusNet - Blacklist to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "U kunt niet registreren met \"%s\" als homepage." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "U kunt niet registreren met \"%s\" als gebruikersnaam." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "U mag \"%s\" niet als homepage instellen." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "U mag \"%s\" niet als gebruikersnaam gebruiken." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "U mag de URL \"%s\" niet gebruiken in mededelingen." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Houdt een lijst bij van verboden gebruikersnamen en URL-patronen." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Zwarte lijst" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Instellingen voor zwarte lijst" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Dit gebruikersnaampatroon aan de zwarte lijst toevoegen" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Dit homepagepatroon aan de zwarte lijst toevoegen" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Gebruikers van \"%s\" zijn geblokkeerd." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Gebruiker \"%s\" mag geen berichten plaatsen." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "U kunt niet abonneren op de gebruiker \"%s\"." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Zwarte lijst" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URL's en gebruikersnamen die op de zwarte lijst staan" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Gebruikersnamen" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Patronen van te blokkeren gebruikersnamen. Eén per regel." + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL's" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Patronen van te blokkeren URL's. Eén per regel." + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Opslaan" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Websiteinstellingen opslaan" diff --git a/plugins/Blacklist/locale/ru/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/ru/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..29eb8cc02c --- /dev/null +++ b/plugins/Blacklist/locale/ru/LC_MESSAGES/Blacklist.po @@ -0,0 +1,132 @@ +# Translation of StatusNet - Blacklist to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Вы не можете зарегистрироваться с домашней страницей «%s»." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Вы не можете зарегистрироваться с именем «%s»." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Вы не можете использовать «%s» в качестве домашней страницы." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Вы не можете использовать «%s» в качестве имени учётной записи." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Вы не можете использовать URL-адрес «%s» в записях." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "" +"Позволяет хранить чёрный список шаблонов имён пользователей и URL-адресов." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Чёрный список" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Конфигурация чёрного списка" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Добавить этот никнейм в чёрный список" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Добавить эту домашнюю страницу в чёрный список" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Пользователи с «%s» заблокированы." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Сообщения от имени «%s» не допускаются." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Нельзя подписаться на пользователя с именем «%s»." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Чёрный список" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URL-адреса и имена пользователей в чёрном списке" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Имена пользователей" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Шаблоны имён пользователей для блокировки, по одному на строку" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL-адреса" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Шаблоны URL-адресов для блокировки, по одному на строку" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Сохранить" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Сохранить настройки сайта" diff --git a/plugins/Blacklist/locale/uk/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/uk/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..92a6a161fa --- /dev/null +++ b/plugins/Blacklist/locale/uk/LC_MESSAGES/Blacklist.po @@ -0,0 +1,130 @@ +# Translation of StatusNet - Blacklist to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "Ви не можете зареєструватися, вказавши «%s» як веб-адресу." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "Ви не можете зареєструватися, використавши нікнейм «%s»." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, php-format +msgid "You may not use homepage \"%s\"." +msgstr "Ви не можете використовувати веб-адресу «%s»." + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, php-format +msgid "You may not use nickname \"%s\"." +msgstr "Ви не можете використовувати нікнейм «%s»." + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "Ви не можете використовувати URL-адресу «%s» в своїх повідомленнях." + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "Зберігає чорний список заборонених нікнеймів та URL-шаблонів." + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +msgctxt "MENU" +msgid "Blacklist" +msgstr "Чорний список" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "Конфігурація чорного списку" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "Додати цей нікнейм до чорного списку" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "Додати цей шаблон веб-адреси до чорного списку" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "Користувачів з «%s» заблоковано." + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "Дописи від користувача «%s» заборонені." + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "Не можу підписатися до користувача «%s»." + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "Чорний список" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "URL-адреси і нікнеми, що містяться в чорному списку" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "Нікнейми" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "Шаблони нікнеймів, котрі будуть блокуватися (по одному на рядок)" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL-адреси" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "Шаблони URL-адрес, котрі будуть блокуватися (по одному на рядок)" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "Зберегти" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "Зберегти налаштування сайту" diff --git a/plugins/Blacklist/locale/zh_CN/LC_MESSAGES/Blacklist.po b/plugins/Blacklist/locale/zh_CN/LC_MESSAGES/Blacklist.po new file mode 100644 index 0000000000..1c0c66b9f8 --- /dev/null +++ b/plugins/Blacklist/locale/zh_CN/LC_MESSAGES/Blacklist.po @@ -0,0 +1,132 @@ +# Translation of StatusNet - Blacklist to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Blacklist\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-blacklist\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:149 +#, fuzzy, php-format +msgid "You may not register with homepage \"%s\"." +msgstr "你不能使用主页 '%s' 注册。" + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:160 +#, fuzzy, php-format +msgid "You may not register with nickname \"%s\"." +msgstr "你不能使用昵称 '%s' 注册。" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:185 +#, fuzzy, php-format +msgid "You may not use homepage \"%s\"." +msgstr "你不能使用主页 '%s'。" + +#. TRANS: Validation failure for nickname. %s is the nickname. +#: BlacklistPlugin.php:196 +#, fuzzy, php-format +msgid "You may not use nickname \"%s\"." +msgstr "你不能使用昵称 '%s'。" + +#. TRANS: Validation failure for URL. %s is the URL. +#: BlacklistPlugin.php:239 +#, php-format +msgid "You may not use URL \"%s\" in notices." +msgstr "你不能在提醒中使用URL '%s'。" + +#: BlacklistPlugin.php:343 +msgid "Keeps a blacklist of forbidden nickname and URL patterns." +msgstr "为被禁止的昵称和URL模板创建黑名单。" + +#. TRANS: Menu item in admin panel. +#: BlacklistPlugin.php:381 +#, fuzzy +msgctxt "MENU" +msgid "Blacklist" +msgstr "黑名单" + +#. TRANS: Tooltip for menu item in admin panel. +#: BlacklistPlugin.php:383 +#, fuzzy +msgctxt "TOOLTIP" +msgid "Blacklist configuration" +msgstr "黑名单配置" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:410 +msgid "Add this nickname pattern to blacklist" +msgstr "向黑名单添加此昵称规则" + +#. TRANS: Checkbox with text label in the delete user form. +#: BlacklistPlugin.php:420 +msgid "Add this homepage pattern to blacklist" +msgstr "向黑名单添加此主页规则" + +#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL. +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL. +#: BlacklistPlugin.php:499 BlacklistPlugin.php:534 +#, php-format +msgid "Users from \"%s\" blocked." +msgstr "" + +#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:510 +#, php-format +msgid "Posts from nickname \"%s\" disallowed." +msgstr "" + +#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname. +#: BlacklistPlugin.php:545 +#, fuzzy, php-format +msgid "Can't subscribe to nickname \"%s\"." +msgstr "你不能使用昵称 '%s'。" + +#: blacklistadminpanel.php:52 +msgid "Blacklist" +msgstr "黑名单" + +#: blacklistadminpanel.php:62 +msgid "Blacklisted URLs and nicknames" +msgstr "黑名单中的URL和昵称" + +#: blacklistadminpanel.php:174 +msgid "Nicknames" +msgstr "昵称" + +#: blacklistadminpanel.php:176 +msgid "Patterns of nicknames to block, one per line" +msgstr "禁止的昵称规则,每行一个" + +#: blacklistadminpanel.php:182 +msgid "URLs" +msgstr "URL" + +#: blacklistadminpanel.php:184 +msgid "Patterns of URLs to block, one per line" +msgstr "禁止的URL规则,每行一个" + +#: blacklistadminpanel.php:198 +msgid "Save" +msgstr "保存" + +#: blacklistadminpanel.php:201 +msgid "Save site settings" +msgstr "保存网站设置" diff --git a/plugins/BlankAd/BlankAdPlugin.php b/plugins/BlankAd/BlankAdPlugin.php index 0e2719aed0..49243aeea9 100644 --- a/plugins/BlankAd/BlankAdPlugin.php +++ b/plugins/BlankAd/BlankAdPlugin.php @@ -51,7 +51,6 @@ if (!defined('STATUSNET')) { * * @seeAlso Location */ - class BlankAdPlugin extends UAPPlugin { /** @@ -61,7 +60,6 @@ class BlankAdPlugin extends UAPPlugin * * @return void */ - protected function showMediumRectangle($action) { $action->element('img', @@ -78,7 +76,6 @@ class BlankAdPlugin extends UAPPlugin * * @return void */ - protected function showRectangle($action) { $action->element('img', @@ -95,7 +92,6 @@ class BlankAdPlugin extends UAPPlugin * * @return void */ - protected function showWideSkyscraper($action) { $action->element('img', @@ -112,7 +108,6 @@ class BlankAdPlugin extends UAPPlugin * * @return void */ - protected function showLeaderboard($action) { $action->element('img', @@ -121,4 +116,15 @@ class BlankAdPlugin extends UAPPlugin 'src' => common_path('plugins/BlankAd/redpixel.png')), ''); } -} \ No newline at end of file + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'BlankAd', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:BlankAdPlugin', + 'rawdescription' => + _m('Plugin for testing ad layout.')); + return true; + } +} diff --git a/plugins/BlankAd/locale/BlankAd.pot b/plugins/BlankAd/locale/BlankAd.pot new file mode 100644 index 0000000000..757df7daa6 --- /dev/null +++ b/plugins/BlankAd/locale/BlankAd.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "" diff --git a/plugins/BlankAd/locale/be-tarask/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/be-tarask/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..20b984860c --- /dev/null +++ b/plugins/BlankAd/locale/be-tarask/LC_MESSAGES/BlankAd.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlankAd to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Дапаўненьне для праверкі рэклямных модуляў." diff --git a/plugins/BlankAd/locale/br/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/br/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..11173c92d2 --- /dev/null +++ b/plugins/BlankAd/locale/br/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Astenn da arnodiñ doare pajennaozañ ar bruderezh." diff --git a/plugins/BlankAd/locale/de/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/de/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..30f2e7765f --- /dev/null +++ b/plugins/BlankAd/locale/de/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Plugin zum Testen von Werbungs-Layout." diff --git a/plugins/BlankAd/locale/es/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/es/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..d47d009133 --- /dev/null +++ b/plugins/BlankAd/locale/es/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:34+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Extensión para la probar la maquetación de publicidad." diff --git a/plugins/BlankAd/locale/fr/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/fr/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..c6507e3ce3 --- /dev/null +++ b/plugins/BlankAd/locale/fr/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Extension pour tester la mise en forme des publicités." diff --git a/plugins/BlankAd/locale/he/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/he/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..fb2d05de90 --- /dev/null +++ b/plugins/BlankAd/locale/he/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "תוסף לבדיקת פריסת הפרסומות." diff --git a/plugins/BlankAd/locale/ia/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/ia/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..49aff4da5a --- /dev/null +++ b/plugins/BlankAd/locale/ia/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Plug-in pro essayar le lay-out de annuncios." diff --git a/plugins/BlankAd/locale/mk/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/mk/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..ec4aa3e95f --- /dev/null +++ b/plugins/BlankAd/locale/mk/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Приклучок за испробување на распоредот на рекламите." diff --git a/plugins/BlankAd/locale/nb/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/nb/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..7566058e64 --- /dev/null +++ b/plugins/BlankAd/locale/nb/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Utvidelse for å teste annonseplasseringer." diff --git a/plugins/BlankAd/locale/nl/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/nl/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..7b18aced13 --- /dev/null +++ b/plugins/BlankAd/locale/nl/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Plug-in voor het testen van advertentielay-outs." diff --git a/plugins/BlankAd/locale/pt/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/pt/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..80935f68cb --- /dev/null +++ b/plugins/BlankAd/locale/pt/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Plugin para testar a disposição de anúncios." diff --git a/plugins/BlankAd/locale/ru/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/ru/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..a7e3919052 --- /dev/null +++ b/plugins/BlankAd/locale/ru/LC_MESSAGES/BlankAd.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlankAd to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Плагин для тестирования рекламных модулей." diff --git a/plugins/BlankAd/locale/tl/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/tl/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..bb8512b21e --- /dev/null +++ b/plugins/BlankAd/locale/tl/LC_MESSAGES/BlankAd.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlankAd to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Pamasak para sa pagsubok ng pagkakalatag ng anunsyo." diff --git a/plugins/BlankAd/locale/uk/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/uk/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..483809c1f9 --- /dev/null +++ b/plugins/BlankAd/locale/uk/LC_MESSAGES/BlankAd.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlankAd to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "Додаток для тестування рекламної схеми." diff --git a/plugins/BlankAd/locale/zh_CN/LC_MESSAGES/BlankAd.po b/plugins/BlankAd/locale/zh_CN/LC_MESSAGES/BlankAd.po new file mode 100644 index 0000000000..e7ac577d07 --- /dev/null +++ b/plugins/BlankAd/locale/zh_CN/LC_MESSAGES/BlankAd.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlankAd to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlankAd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-blankad\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: BlankAdPlugin.php:127 +msgid "Plugin for testing ad layout." +msgstr "测试广告(ad)布局的插件。" diff --git a/plugins/BlogspamNetPlugin.php b/plugins/BlogspamNet/BlogspamNetPlugin.php similarity index 91% rename from plugins/BlogspamNetPlugin.php rename to plugins/BlogspamNet/BlogspamNetPlugin.php index d52e6006ac..51a86b4f36 100644 --- a/plugins/BlogspamNetPlugin.php +++ b/plugins/BlogspamNet/BlogspamNetPlugin.php @@ -53,7 +53,6 @@ define('BLOGSPAMNETPLUGIN_VERSION', '0.1'); * * @see Event */ - class BlogspamNetPlugin extends Plugin { var $baseUrl = 'http://test.blogspam.net:8888/'; @@ -142,4 +141,15 @@ class BlogspamNetPlugin extends Plugin { return 'BlogspamNetPlugin/'.BLOGSPAMNETPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'BlogspamNet', + 'version' => BLOGSPAMNETPLUGIN_VERSION, + 'author' => 'Evan Prodromou, Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:BlogspamNet', + 'rawdescription' => + _m('Plugin to check submitted notices with blogspam.net.')); + return true; + } } diff --git a/plugins/BlogspamNet/locale/BlogspamNet.pot b/plugins/BlogspamNet/locale/BlogspamNet.pot new file mode 100644 index 0000000000..a08f039f1d --- /dev/null +++ b/plugins/BlogspamNet/locale/BlogspamNet.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "" diff --git a/plugins/BlogspamNet/locale/be-tarask/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/be-tarask/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..d5429781a6 --- /dev/null +++ b/plugins/BlogspamNet/locale/be-tarask/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - BlogspamNet to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "" +"Дапаўненьне для праверкі дасланых абвяшчэньняў з дапамогай blogspam.net." diff --git a/plugins/BlogspamNet/locale/br/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/br/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..89ce628462 --- /dev/null +++ b/plugins/BlogspamNet/locale/br/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Astenn evit gwiriañ gant blogspam.net ar c'hmennoù kaset." diff --git a/plugins/BlogspamNet/locale/de/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/de/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..eca760eb96 --- /dev/null +++ b/plugins/BlogspamNet/locale/de/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Plugin zur Überprüfung von Nachrichten mit blogspam.net." diff --git a/plugins/BlogspamNet/locale/es/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/es/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..17848d8317 --- /dev/null +++ b/plugins/BlogspamNet/locale/es/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Extensión para revisar los mensajes enviados con blogspam.net." diff --git a/plugins/BlogspamNet/locale/fr/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/fr/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..3cdc3d359e --- /dev/null +++ b/plugins/BlogspamNet/locale/fr/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Extension pour vérifier avec blogspam.net les avis soumis." diff --git a/plugins/BlogspamNet/locale/he/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/he/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..a31da991e8 --- /dev/null +++ b/plugins/BlogspamNet/locale/he/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "תוסף לבדיקת ההתרעות הנשלחות מול blogspam.net." diff --git a/plugins/BlogspamNet/locale/ia/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/ia/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..55e70da8f6 --- /dev/null +++ b/plugins/BlogspamNet/locale/ia/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Plug-in pro verificar notas submittite contra blogspam.net." diff --git a/plugins/BlogspamNet/locale/mk/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/mk/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..aff816d35a --- /dev/null +++ b/plugins/BlogspamNet/locale/mk/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Приклучок за проверка на поднесените забелешки со blogspam.net." diff --git a/plugins/BlogspamNet/locale/nb/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/nb/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..637b545610 --- /dev/null +++ b/plugins/BlogspamNet/locale/nb/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Utvidelse for å sjekke innsendte notiser med blogspam.net." diff --git a/plugins/BlogspamNet/locale/nl/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/nl/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..5c0ffdec74 --- /dev/null +++ b/plugins/BlogspamNet/locale/nl/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Plug-in om mededelingen te controleren tegen blogspam.net." diff --git a/plugins/BlogspamNet/locale/pt/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/pt/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..9dce9d08c8 --- /dev/null +++ b/plugins/BlogspamNet/locale/pt/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - BlogspamNet to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Plugin para verificar mensagens submetidas com o blogspam.net." diff --git a/plugins/BlogspamNet/locale/ru/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/ru/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..7110e646f4 --- /dev/null +++ b/plugins/BlogspamNet/locale/ru/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlogspamNet to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Плагин для проверки отправленных сообщений с помощью blogspam.net." diff --git a/plugins/BlogspamNet/locale/tl/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/tl/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..36dc0e0a18 --- /dev/null +++ b/plugins/BlogspamNet/locale/tl/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - BlogspamNet to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:35+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "" +"Pamasak upang masuri ang ipinasang mga pabatid sa pamamagitan ng blogspam." +"net." diff --git a/plugins/BlogspamNet/locale/uk/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/uk/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..780794f43b --- /dev/null +++ b/plugins/BlogspamNet/locale/uk/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlogspamNet to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "Додаток для перевірки вказаних повідомлень на blogspam.net." diff --git a/plugins/BlogspamNet/locale/zh_CN/LC_MESSAGES/BlogspamNet.po b/plugins/BlogspamNet/locale/zh_CN/LC_MESSAGES/BlogspamNet.po new file mode 100644 index 0000000000..9a9814a7c8 --- /dev/null +++ b/plugins/BlogspamNet/locale/zh_CN/LC_MESSAGES/BlogspamNet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - BlogspamNet to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - BlogspamNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-blogspamnet\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: BlogspamNetPlugin.php:152 +msgid "Plugin to check submitted notices with blogspam.net." +msgstr "通过 blogspam.net 检查发布的消息的插件。" diff --git a/plugins/CacheLogPlugin.php b/plugins/CacheLog/CacheLogPlugin.php similarity index 73% rename from plugins/CacheLogPlugin.php rename to plugins/CacheLog/CacheLogPlugin.php index 4c47de80eb..ab9538df05 100644 --- a/plugins/CacheLogPlugin.php +++ b/plugins/CacheLog/CacheLogPlugin.php @@ -50,7 +50,6 @@ if (!defined('STATUSNET')) { * @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) @@ -62,36 +61,26 @@ class CacheLogPlugin extends Plugin function onEndCacheGet($key, &$value) { if ($value === false) { - $this->log(LOG_INFO, "Cache MISS for key '$key'"); + $this->log(LOG_INFO, sprintf('Cache MISS for key "%s"', $key)); } else { - $this->log(LOG_INFO, "Cache HIT for key '$key'"); + $this->log(LOG_INFO, sprintf('Cache HIT for key "%s": %s', $key, self::showValue($value))); } return true; } function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { - 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'"); - } + $this->log(LOG_INFO, "Begin 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'"); + $this->log(LOG_INFO, sprintf('Set cache value %s for key "%s" (flags: %d, expiry %d)', + self::showValue($value), + $key, + $flag, + $expiry)); return true; } @@ -114,8 +103,24 @@ class CacheLogPlugin extends Plugin 'author' => 'Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:CacheLog', 'description' => - _m('Log reads and writes to the cache')); + _m('Log reads and writes to the cache.')); return true; } -} + static function showValue($value) + { + if (is_object($value)) { + return sprintf('object of class %s', get_class($value)); + } else if (is_array($value)) { + return sprintf('array of length %d', count($value)); + } else if (is_string($value)) { + return sprintf('string "%s"', $value); + } else if (is_integer($value)) { + return sprintf('integer %d', $value); + } else if (is_null($value)) { + return 'null'; + } else { + return 'unknown'; + } + } +} diff --git a/plugins/CacheLog/locale/CacheLog.pot b/plugins/CacheLog/locale/CacheLog.pot new file mode 100644 index 0000000000..e96667173c --- /dev/null +++ b/plugins/CacheLog/locale/CacheLog.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "" diff --git a/plugins/CacheLog/locale/be-tarask/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/be-tarask/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..2d5a897b53 --- /dev/null +++ b/plugins/CacheLog/locale/be-tarask/LC_MESSAGES/CacheLog.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - CacheLog to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Журнал чытае і піша ў кэш." diff --git a/plugins/CacheLog/locale/br/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/br/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..8f79259d84 --- /dev/null +++ b/plugins/CacheLog/locale/br/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Marilhañ a ra al lennadurioù hag ar skrivadurioù er grubuilh" diff --git a/plugins/CacheLog/locale/es/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/es/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..0872e2f038 --- /dev/null +++ b/plugins/CacheLog/locale/es/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Registra lecturas y escrituras en el caché" diff --git a/plugins/CacheLog/locale/fr/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/fr/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..d2ef629446 --- /dev/null +++ b/plugins/CacheLog/locale/fr/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Lectures et écritures de journal en cache." diff --git a/plugins/CacheLog/locale/he/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/he/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..ab80cdc0ca --- /dev/null +++ b/plugins/CacheLog/locale/he/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "רישום הקריאות והכתיבות אל ומהמטמון." diff --git a/plugins/CacheLog/locale/ia/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/ia/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..6fd137ccb2 --- /dev/null +++ b/plugins/CacheLog/locale/ia/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Registrar le lectura e scriptura al cache." diff --git a/plugins/CacheLog/locale/mk/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/mk/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..7eeaa78753 --- /dev/null +++ b/plugins/CacheLog/locale/mk/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Евидентирај читања на и записи во кешот." diff --git a/plugins/CacheLog/locale/nb/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/nb/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..a57c71c8c8 --- /dev/null +++ b/plugins/CacheLog/locale/nb/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Logg leser og skriver til hurtiglageret." diff --git a/plugins/CacheLog/locale/nl/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/nl/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..ad30513090 --- /dev/null +++ b/plugins/CacheLog/locale/nl/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Lezen en schrijven naar de cache in het logboek opnemen." diff --git a/plugins/CacheLog/locale/pt/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/pt/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..4c52ac10e7 --- /dev/null +++ b/plugins/CacheLog/locale/pt/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Regista leituras e escritas na cache." diff --git a/plugins/CacheLog/locale/ru/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/ru/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..2711e8ff3e --- /dev/null +++ b/plugins/CacheLog/locale/ru/LC_MESSAGES/CacheLog.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - CacheLog to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Журнал читает и пишет в кеш." diff --git a/plugins/CacheLog/locale/tl/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/tl/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..e4d8f8aa2f --- /dev/null +++ b/plugins/CacheLog/locale/tl/LC_MESSAGES/CacheLog.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - CacheLog to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Ang tala ay nagbabasa at nagsusulat sa taguan." diff --git a/plugins/CacheLog/locale/uk/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/uk/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..a4bebfc581 --- /dev/null +++ b/plugins/CacheLog/locale/uk/LC_MESSAGES/CacheLog.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - CacheLog to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "Лоґ переглядів та записів у кеші." diff --git a/plugins/CacheLog/locale/zh_CN/LC_MESSAGES/CacheLog.po b/plugins/CacheLog/locale/zh_CN/LC_MESSAGES/CacheLog.po new file mode 100644 index 0000000000..af3e7211ef --- /dev/null +++ b/plugins/CacheLog/locale/zh_CN/LC_MESSAGES/CacheLog.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - CacheLog to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CacheLog\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:36+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-cachelog\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: CacheLogPlugin.php:106 +msgid "Log reads and writes to the cache." +msgstr "将读写日志到缓存。" diff --git a/plugins/CasAuthentication/CasAuthenticationPlugin.php b/plugins/CasAuthentication/CasAuthenticationPlugin.php index 1662db3eba..71e54d41f9 100644 --- a/plugins/CasAuthentication/CasAuthenticationPlugin.php +++ b/plugins/CasAuthentication/CasAuthenticationPlugin.php @@ -79,8 +79,10 @@ class CasAuthenticationPlugin extends AuthenticationPlugin $action_name = $action->trimmed('action'); $action->menuItem(common_local_url('caslogin'), + // TRANS: Menu item. CAS is Central Authentication Service. _m('CAS'), - _m('Login or register with CAS'), + // TRANS: Tooltip for menu item. CAS is Central Authentication Service. + _m('Login or register with CAS.'), $action_name === 'caslogin'); return true; @@ -93,9 +95,11 @@ class CasAuthenticationPlugin extends AuthenticationPlugin switch ($name) { case 'login': - $instr = '(Have an account with CAS? ' . - 'Try our [CAS login]'. - '(%%action.caslogin%%)!)'; + // TRANS: Invitation to users with a CAS account to log in using the service. + // TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. + // TRANS: These two elements may not be separated. + $instr = _m('(Have an account with CAS? ' . + 'Try our [CAS login](%%action.caslogin%%)!)'); break; default: return true; @@ -121,13 +125,13 @@ class CasAuthenticationPlugin extends AuthenticationPlugin function onInitializePlugin(){ parent::onInitializePlugin(); if(!isset($this->server)){ - throw new Exception("must specify a server"); + throw new Exception(_m("Specifying a server is required.")); } if(!isset($this->port)){ - throw new Exception("must specify a port"); + throw new Exception(_m("Specifying a port is required.")); } if(!isset($this->path)){ - throw new Exception("must specify a path"); + throw new Exception(_m("Specifying a path is required.")); } //These values need to be accessible to a action object //I can't think of any other way than global variables @@ -146,8 +150,8 @@ class CasAuthenticationPlugin extends AuthenticationPlugin 'version' => STATUSNET_VERSION, 'author' => 'Craig Andrews', 'homepage' => 'http://status.net/wiki/Plugin:CasAuthentication', - 'rawdescription' => - _m('The CAS Authentication plugin allows for StatusNet to handle authentication through CAS (Central Authentication Service).')); + // TRANS: Plugin description. CAS is Central Authentication Service. + 'rawdescription' => _m('The CAS Authentication plugin allows for StatusNet to handle authentication through CAS (Central Authentication Service).')); return true; } } diff --git a/plugins/CasAuthentication/caslogin.php b/plugins/CasAuthentication/caslogin.php index a66774dc17..3301ce5824 100644 --- a/plugins/CasAuthentication/caslogin.php +++ b/plugins/CasAuthentication/caslogin.php @@ -28,7 +28,7 @@ class CasloginAction extends Action $this->clientError(_m('Already logged in.')); } else { global $casSettings; - phpCAS::client(CAS_VERSION_2_0,$casSettings['server'],$casSettings['port'],$casSettings['path']); + phpCAS::client(CAS_VERSION_2_0,$casSettings['server'],$casSettings['port'],$casSettings['path'],false); phpCAS::setNoCasServerValidation(); phpCAS::handleLogoutRequests(); phpCAS::forceAuthentication(); @@ -36,13 +36,13 @@ class CasloginAction extends Action $casTempPassword = common_good_rand(16); $user = common_check_user(phpCAS::getUser(), $casTempPassword); if (!$user) { - $this->serverError(_('Incorrect username or password.')); + $this->serverError(_m('Incorrect username or password.')); return; } // success! if (!common_set_user($user)) { - $this->serverError(_('Error setting user. You are probably not authorized.')); + $this->serverError(_m('Error setting user. You are probably not authorized.')); return; } @@ -69,7 +69,6 @@ class CasloginAction extends Action } common_redirect($url, 303); - } } } diff --git a/plugins/CasAuthentication/extlib/CAS.php b/plugins/CasAuthentication/extlib/CAS.php index e754374198..62a6175794 100644 --- a/plugins/CasAuthentication/extlib/CAS.php +++ b/plugins/CasAuthentication/extlib/CAS.php @@ -1,20 +1,46 @@ <?php -// commented in 0.4.22-RC2 for Sylvain Derosiaux -// error_reporting(E_ALL ^ E_NOTICE); +/* + * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the ESUP-Portail consortium & the JA-SIG + * Collaborative nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior + * written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ // // hack by Vangelis Haniotakis to handle the absence of $_SERVER['REQUEST_URI'] in IIS // if (!$_SERVER['REQUEST_URI']) { - $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING']; + $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING']; } // // another one by Vangelis Haniotakis also to make phpCAS work with PHP5 // -if (version_compare(PHP_VERSION,'5','>=')) { - require_once(dirname(__FILE__).'/CAS/domxml-php4-to-php5.php'); +if (version_compare(PHP_VERSION, '5', '>=') && !(function_exists('domxml_new_doc'))) { + require_once (dirname(__FILE__) . '/CAS/domxml-php4-to-php5.php'); } /** @@ -35,24 +61,24 @@ if (version_compare(PHP_VERSION,'5','>=')) { /** * phpCAS version. accessible for the user by phpCAS::getVersion(). */ -define('PHPCAS_VERSION','1.1.0RC6'); +define('PHPCAS_VERSION', '1.1.2'); // ------------------------------------------------------------------------ // CAS VERSIONS // ------------------------------------------------------------------------ - /** - * @addtogroup public - * @{ - */ +/** + * @addtogroup public + * @{ + */ /** * CAS version 1.0 */ -define("CAS_VERSION_1_0",'1.0'); +define("CAS_VERSION_1_0", '1.0'); /*! * CAS version 2.0 */ -define("CAS_VERSION_2_0",'2.0'); +define("CAS_VERSION_2_0", '2.0'); // ------------------------------------------------------------------------ // SAML defines @@ -71,143 +97,141 @@ define("SAML_XML_HEADER", '<?xml version="1.0" encoding="UTF-8"?>'); /** * SOAP envelope for SAML POST */ -define ("SAML_SOAP_ENV", '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/>'); +define("SAML_SOAP_ENV", '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/>'); /** * SOAP body for SAML POST */ -define ("SAML_SOAP_BODY", '<SOAP-ENV:Body>'); +define("SAML_SOAP_BODY", '<SOAP-ENV:Body>'); /** * SAMLP request */ -define ("SAMLP_REQUEST", '<samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="_192.168.16.51.1024506224022" IssueInstant="2002-06-19T17:03:44.022Z">'); -define ("SAMLP_REQUEST_CLOSE", '</samlp:Request>'); +define("SAMLP_REQUEST", '<samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol" MajorVersion="1" MinorVersion="1" RequestID="_192.168.16.51.1024506224022" IssueInstant="2002-06-19T17:03:44.022Z">'); +define("SAMLP_REQUEST_CLOSE", '</samlp:Request>'); /** * SAMLP artifact tag (for the ticket) */ -define ("SAML_ASSERTION_ARTIFACT", '<samlp:AssertionArtifact>'); +define("SAML_ASSERTION_ARTIFACT", '<samlp:AssertionArtifact>'); /** * SAMLP close */ -define ("SAML_ASSERTION_ARTIFACT_CLOSE", '</samlp:AssertionArtifact>'); +define("SAML_ASSERTION_ARTIFACT_CLOSE", '</samlp:AssertionArtifact>'); /** * SOAP body close */ -define ("SAML_SOAP_BODY_CLOSE", '</SOAP-ENV:Body>'); +define("SAML_SOAP_BODY_CLOSE", '</SOAP-ENV:Body>'); /** * SOAP envelope close */ -define ("SAML_SOAP_ENV_CLOSE", '</SOAP-ENV:Envelope>'); +define("SAML_SOAP_ENV_CLOSE", '</SOAP-ENV:Envelope>'); /** * SAML Attributes */ define("SAML_ATTRIBUTES", 'SAMLATTRIBS'); - - /** @} */ - /** - * @addtogroup publicPGTStorage - * @{ - */ +/** + * @addtogroup publicPGTStorage + * @{ + */ // ------------------------------------------------------------------------ // FILE PGT STORAGE // ------------------------------------------------------------------------ - /** - * Default path used when storing PGT's to file - */ -define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH",'/tmp'); +/** + * Default path used when storing PGT's to file + */ +define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH", '/tmp'); /** * phpCAS::setPGTStorageFile()'s 2nd parameter to write plain text files */ -define("CAS_PGT_STORAGE_FILE_FORMAT_PLAIN",'plain'); +define("CAS_PGT_STORAGE_FILE_FORMAT_PLAIN", 'plain'); /** * phpCAS::setPGTStorageFile()'s 2nd parameter to write xml files */ -define("CAS_PGT_STORAGE_FILE_FORMAT_XML",'xml'); +define("CAS_PGT_STORAGE_FILE_FORMAT_XML", 'xml'); /** * Default format used when storing PGT's to file */ -define("CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT",CAS_PGT_STORAGE_FILE_FORMAT_PLAIN); +define("CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT", CAS_PGT_STORAGE_FILE_FORMAT_PLAIN); // ------------------------------------------------------------------------ // DATABASE PGT STORAGE // ------------------------------------------------------------------------ - /** - * default database type when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE",'mysql'); +/** + * default database type when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE", 'mysql'); /** * default host when storing PGT's to database */ -define("CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME",'localhost'); +define("CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME", 'localhost'); /** * default port when storing PGT's to database */ -define("CAS_PGT_STORAGE_DB_DEFAULT_PORT",''); +define("CAS_PGT_STORAGE_DB_DEFAULT_PORT", ''); /** * default database when storing PGT's to database */ -define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE",'phpCAS'); +define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE", 'phpCAS'); /** * default table when storing PGT's to database */ -define("CAS_PGT_STORAGE_DB_DEFAULT_TABLE",'pgt'); +define("CAS_PGT_STORAGE_DB_DEFAULT_TABLE", 'pgt'); /** @} */ // ------------------------------------------------------------------------ // SERVICE ACCESS ERRORS // ------------------------------------------------------------------------ - /** - * @addtogroup publicServices - * @{ - */ +/** + * @addtogroup publicServices + * @{ + */ /** * phpCAS::service() error code on success */ -define("PHPCAS_SERVICE_OK",0); +define("PHPCAS_SERVICE_OK", 0); /** * phpCAS::service() error code when the PT could not retrieve because * the CAS server did not respond. */ -define("PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE",1); +define("PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE", 1); /** * phpCAS::service() error code when the PT could not retrieve because * the response of the CAS server was ill-formed. */ -define("PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE",2); +define("PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE", 2); /** * phpCAS::service() error code when the PT could not retrieve because * the CAS server did not want to. */ -define("PHPCAS_SERVICE_PT_FAILURE",3); +define("PHPCAS_SERVICE_PT_FAILURE", 3); /** * phpCAS::service() error code when the service was not available. */ -define("PHPCAS_SERVICE_NOT AVAILABLE",4); +define("PHPCAS_SERVICE_NOT AVAILABLE", 4); /** @} */ // ------------------------------------------------------------------------ // LANGUAGES // ------------------------------------------------------------------------ - /** - * @addtogroup publicLang - * @{ - */ +/** + * @addtogroup publicLang + * @{ + */ -define("PHPCAS_LANG_ENGLISH", 'english'); -define("PHPCAS_LANG_FRENCH", 'french'); -define("PHPCAS_LANG_GREEK", 'greek'); -define("PHPCAS_LANG_GERMAN", 'german'); -define("PHPCAS_LANG_JAPANESE", 'japanese'); -define("PHPCAS_LANG_SPANISH", 'spanish'); -define("PHPCAS_LANG_CATALAN", 'catalan'); +define("PHPCAS_LANG_ENGLISH", 'english'); +define("PHPCAS_LANG_FRENCH", 'french'); +define("PHPCAS_LANG_GREEK", 'greek'); +define("PHPCAS_LANG_GERMAN", 'german'); +define("PHPCAS_LANG_JAPANESE", 'japanese'); +define("PHPCAS_LANG_SPANISH", 'spanish'); +define("PHPCAS_LANG_CATALAN", 'catalan'); /** @} */ @@ -225,31 +249,31 @@ define("PHPCAS_LANG_DEFAULT", PHPCAS_LANG_ENGLISH); // ------------------------------------------------------------------------ // DEBUG // ------------------------------------------------------------------------ - /** - * @addtogroup publicDebug - * @{ - */ +/** + * @addtogroup publicDebug + * @{ + */ /** * The default directory for the debug file under Unix. */ -define('DEFAULT_DEBUG_DIR','/tmp/'); +define('DEFAULT_DEBUG_DIR', '/tmp/'); /** @} */ // ------------------------------------------------------------------------ // MISC // ------------------------------------------------------------------------ - /** - * @addtogroup internalMisc - * @{ - */ +/** + * @addtogroup internalMisc + * @{ + */ /** * This global variable is used by the interface class phpCAS. * * @hideinitializer */ -$GLOBALS['PHPCAS_CLIENT'] = null; +$GLOBALS['PHPCAS_CLIENT'] = null; /** * This global variable is used to store where the initializer is called from @@ -257,10 +281,12 @@ $GLOBALS['PHPCAS_CLIENT'] = null; * * @hideinitializer */ -$GLOBALS['PHPCAS_INIT_CALL'] = array('done' => FALSE, +$GLOBALS['PHPCAS_INIT_CALL'] = array ( + 'done' => FALSE, 'file' => '?', 'line' => -1, - 'method' => '?'); + 'method' => '?' +); /** * This global variable is used to store where the method checking @@ -268,20 +294,24 @@ $GLOBALS['PHPCAS_INIT_CALL'] = array('done' => FALSE, * * @hideinitializer */ -$GLOBALS['PHPCAS_AUTH_CHECK_CALL'] = array('done' => FALSE, +$GLOBALS['PHPCAS_AUTH_CHECK_CALL'] = array ( + 'done' => FALSE, 'file' => '?', 'line' => -1, 'method' => '?', - 'result' => FALSE); + 'result' => FALSE +); /** * This global variable is used to store phpCAS debug mode. * * @hideinitializer */ -$GLOBALS['PHPCAS_DEBUG'] = array('filename' => FALSE, +$GLOBALS['PHPCAS_DEBUG'] = array ( + 'filename' => FALSE, 'indent' => 0, - 'unique_id' => ''); + 'unique_id' => '' +); /** @} */ @@ -290,7 +320,7 @@ $GLOBALS['PHPCAS_DEBUG'] = array('filename' => FALSE, // ######################################################################## // include client class -include_once(dirname(__FILE__).'/CAS/client.php'); +include_once (dirname(__FILE__) . '/CAS/client.php'); // ######################################################################## // INTERFACE CLASS @@ -308,20 +338,17 @@ include_once(dirname(__FILE__).'/CAS/client.php'); * at the end of CAS/client.php). */ +class phpCAS { - -class phpCAS -{ - // ######################################################################## // INITIALIZATION // ######################################################################## - + /** * @addtogroup publicInit * @{ */ - + /** * phpCAS client initializer. * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be @@ -336,43 +363,41 @@ class phpCAS * * @return a newly created CASClient object */ - function client($server_version, - $server_hostname, - $server_port, - $server_uri, - $start_session = true) - { + function client($server_version, $server_hostname, $server_port, $server_uri, $start_session = true) { global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; - - phpCAS::traceBegin(); - if ( is_object($PHPCAS_CLIENT) ) { - phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); + + phpCAS :: traceBegin(); + if (is_object($PHPCAS_CLIENT)) { + phpCAS :: error($PHPCAS_INIT_CALL['method'] . '() has already been called (at ' . $PHPCAS_INIT_CALL['file'] . ':' . $PHPCAS_INIT_CALL['line'] . ')'); } - if ( gettype($server_version) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); + if (gettype($server_version) != 'string') { + phpCAS :: error('type mismatched for parameter $server_version (should be `string\')'); } - if ( gettype($server_hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); + if (gettype($server_hostname) != 'string') { + phpCAS :: error('type mismatched for parameter $server_hostname (should be `string\')'); } - if ( gettype($server_port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); + if (gettype($server_port) != 'integer') { + phpCAS :: error('type mismatched for parameter $server_port (should be `integer\')'); } - if ( gettype($server_uri) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); + if (gettype($server_uri) != 'string') { + phpCAS :: error('type mismatched for parameter $server_uri (should be `string\')'); } - + // store where the initializer is called from - $dbg = phpCAS::backtrace(); - $PHPCAS_INIT_CALL = array('done' => TRUE, + $dbg = phpCAS :: backtrace(); + $PHPCAS_INIT_CALL = array ( + 'done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__); - + 'method' => __CLASS__ . '::' . __FUNCTION__ + ); + // initialize the global object $PHPCAS_CLIENT - $PHPCAS_CLIENT = new CASClient($server_version,FALSE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); - phpCAS::traceEnd(); - } - + $PHPCAS_CLIENT = new CASClient($server_version, FALSE /*proxy*/ + , $server_hostname, $server_port, $server_uri, $start_session); + phpCAS :: traceEnd(); + } + /** * phpCAS proxy initializer. * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be @@ -387,110 +412,107 @@ class phpCAS * * @return a newly created CASClient object */ - function proxy($server_version, - $server_hostname, - $server_port, - $server_uri, - $start_session = true) - { + function proxy($server_version, $server_hostname, $server_port, $server_uri, $start_session = true) { global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; - - phpCAS::traceBegin(); - if ( is_object($PHPCAS_CLIENT) ) { - phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); + + phpCAS :: traceBegin(); + if (is_object($PHPCAS_CLIENT)) { + phpCAS :: error($PHPCAS_INIT_CALL['method'] . '() has already been called (at ' . $PHPCAS_INIT_CALL['file'] . ':' . $PHPCAS_INIT_CALL['line'] . ')'); } - if ( gettype($server_version) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); + if (gettype($server_version) != 'string') { + phpCAS :: error('type mismatched for parameter $server_version (should be `string\')'); } - if ( gettype($server_hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); + if (gettype($server_hostname) != 'string') { + phpCAS :: error('type mismatched for parameter $server_hostname (should be `string\')'); } - if ( gettype($server_port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); + if (gettype($server_port) != 'integer') { + phpCAS :: error('type mismatched for parameter $server_port (should be `integer\')'); } - if ( gettype($server_uri) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); + if (gettype($server_uri) != 'string') { + phpCAS :: error('type mismatched for parameter $server_uri (should be `string\')'); } - + // store where the initialzer is called from - $dbg = phpCAS::backtrace(); - $PHPCAS_INIT_CALL = array('done' => TRUE, + $dbg = phpCAS :: backtrace(); + $PHPCAS_INIT_CALL = array ( + 'done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__); - + 'method' => __CLASS__ . '::' . __FUNCTION__ + ); + // initialize the global object $PHPCAS_CLIENT - $PHPCAS_CLIENT = new CASClient($server_version,TRUE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); - phpCAS::traceEnd(); - } - + $PHPCAS_CLIENT = new CASClient($server_version, TRUE /*proxy*/ + , $server_hostname, $server_port, $server_uri, $start_session); + phpCAS :: traceEnd(); + } + /** @} */ // ######################################################################## // DEBUGGING // ######################################################################## - + /** * @addtogroup publicDebug * @{ */ - + /** * Set/unset debug mode * * @param $filename the name of the file used for logging, or FALSE to stop debugging. */ - function setDebug($filename='') - { + function setDebug($filename = '') { global $PHPCAS_DEBUG; - - if ( $filename != FALSE && gettype($filename) != 'string' ) { - phpCAS::error('type mismatched for parameter $dbg (should be FALSE or the name of the log file)'); + + if ($filename != FALSE && gettype($filename) != 'string') { + phpCAS :: error('type mismatched for parameter $dbg (should be FALSE or the name of the log file)'); } - - if ( empty($filename) ) { - if ( preg_match('/^Win.*/',getenv('OS')) ) { - if ( isset($_ENV['TMP']) ) { - $debugDir = $_ENV['TMP'].'/'; - } else if ( isset($_ENV['TEMP']) ) { - $debugDir = $_ENV['TEMP'].'/'; - } else { - $debugDir = ''; - } + + if (empty ($filename)) { + if (preg_match('/^Win.*/', getenv('OS'))) { + if (isset ($_ENV['TMP'])) { + $debugDir = $_ENV['TMP'] . '/'; + } else + if (isset ($_ENV['TEMP'])) { + $debugDir = $_ENV['TEMP'] . '/'; + } else { + $debugDir = ''; + } } else { $debugDir = DEFAULT_DEBUG_DIR; } $filename = $debugDir . 'phpCAS.log'; } - - if ( empty($PHPCAS_DEBUG['unique_id']) ) { - $PHPCAS_DEBUG['unique_id'] = substr(strtoupper(md5(uniqid(''))),0,4); + + if (empty ($PHPCAS_DEBUG['unique_id'])) { + $PHPCAS_DEBUG['unique_id'] = substr(strtoupper(md5(uniqid(''))), 0, 4); } - + $PHPCAS_DEBUG['filename'] = $filename; - - phpCAS::trace('START ******************'); - } - + + phpCAS :: trace('START phpCAS-' . PHPCAS_VERSION . ' ******************'); + } + /** @} */ /** * @addtogroup internalDebug * @{ */ - + /** * This method is a wrapper for debug_backtrace() that is not available * in all PHP versions (>= 4.3.0 only) */ - function backtrace() - { - if ( function_exists('debug_backtrace') ) { + function backtrace() { + if (function_exists('debug_backtrace')) { return debug_backtrace(); } else { // poor man's hack ... but it does work ... - return array(); + return array (); } - } - + } + /** * Logs a string in debug mode. * @@ -498,20 +520,19 @@ class phpCAS * * @private */ - function log($str) - { + function log($str) { $indent_str = "."; global $PHPCAS_DEBUG; - - if ( $PHPCAS_DEBUG['filename'] ) { - for ($i=0;$i<$PHPCAS_DEBUG['indent'];$i++) { + + if ($PHPCAS_DEBUG['filename']) { + for ($i = 0; $i < $PHPCAS_DEBUG['indent']; $i++) { $indent_str .= '| '; } - error_log($PHPCAS_DEBUG['unique_id'].' '.$indent_str.$str."\n",3,$PHPCAS_DEBUG['filename']); + error_log($PHPCAS_DEBUG['unique_id'] . ' ' . $indent_str . $str . "\n", 3, $PHPCAS_DEBUG['filename']); } - - } - + + } + /** * This method is used by interface methods to print an error and where the function * was originally called from. @@ -520,16 +541,15 @@ class phpCAS * * @private */ - function error($msg) - { - $dbg = phpCAS::backtrace(); + function error($msg) { + $dbg = phpCAS :: backtrace(); $function = '?'; $file = '?'; $line = '?'; - if ( is_array($dbg) ) { - for ( $i=1; $i<sizeof($dbg); $i++) { - if ( is_array($dbg[$i]) ) { - if ( $dbg[$i]['class'] == __CLASS__ ) { + if (is_array($dbg)) { + for ($i = 1; $i < sizeof($dbg); $i++) { + if (is_array($dbg[$i])) { + if ($dbg[$i]['class'] == __CLASS__) { $function = $dbg[$i]['function']; $file = $dbg[$i]['file']; $line = $dbg[$i]['line']; @@ -537,77 +557,73 @@ class phpCAS } } } - echo "<br />\n<b>phpCAS error</b>: <font color=\"FF0000\"><b>".__CLASS__."::".$function.'(): '.htmlentities($msg)."</b></font> in <b>".$file."</b> on line <b>".$line."</b><br />\n"; - phpCAS::trace($msg); - phpCAS::traceExit(); - exit(); - } - + echo "<br />\n<b>phpCAS error</b>: <font color=\"FF0000\"><b>" . __CLASS__ . "::" . $function . '(): ' . htmlentities($msg) . "</b></font> in <b>" . $file . "</b> on line <b>" . $line . "</b><br />\n"; + phpCAS :: trace($msg); + phpCAS :: traceExit(); + exit (); + } + /** * This method is used to log something in debug mode. */ - function trace($str) - { - $dbg = phpCAS::backtrace(); - phpCAS::log($str.' ['.basename($dbg[1]['file']).':'.$dbg[1]['line'].']'); - } - + function trace($str) { + $dbg = phpCAS :: backtrace(); + phpCAS :: log($str . ' [' . basename($dbg[1]['file']) . ':' . $dbg[1]['line'] . ']'); + } + /** * This method is used to indicate the start of the execution of a function in debug mode. */ - function traceBegin() - { + function traceBegin() { global $PHPCAS_DEBUG; - - $dbg = phpCAS::backtrace(); + + $dbg = phpCAS :: backtrace(); $str = '=> '; - if ( !empty($dbg[2]['class']) ) { - $str .= $dbg[2]['class'].'::'; + if (!empty ($dbg[2]['class'])) { + $str .= $dbg[2]['class'] . '::'; } - $str .= $dbg[2]['function'].'('; - if ( is_array($dbg[2]['args']) ) { + $str .= $dbg[2]['function'] . '('; + if (is_array($dbg[2]['args'])) { foreach ($dbg[2]['args'] as $index => $arg) { - if ( $index != 0 ) { + if ($index != 0) { $str .= ', '; } - $str .= str_replace("\n","",var_export($arg,TRUE)); + $str .= str_replace("\n", "", var_export($arg, TRUE)); } } - $str .= ') ['.basename($dbg[2]['file']).':'.$dbg[2]['line'].']'; - phpCAS::log($str); - $PHPCAS_DEBUG['indent'] ++; - } - + $str .= ') [' . basename($dbg[2]['file']) . ':' . $dbg[2]['line'] . ']'; + phpCAS :: log($str); + $PHPCAS_DEBUG['indent']++; + } + /** * This method is used to indicate the end of the execution of a function in debug mode. * * @param $res the result of the function */ - function traceEnd($res='') - { + function traceEnd($res = '') { global $PHPCAS_DEBUG; - - $PHPCAS_DEBUG['indent'] --; - $dbg = phpCAS::backtrace(); + + $PHPCAS_DEBUG['indent']--; + $dbg = phpCAS :: backtrace(); $str = ''; - $str .= '<= '.str_replace("\n","",var_export($res,TRUE)); - phpCAS::log($str); - } - + $str .= '<= ' . str_replace("\n", "", var_export($res, TRUE)); + phpCAS :: log($str); + } + /** * This method is used to indicate the end of the execution of the program */ - function traceExit() - { + function traceExit() { global $PHPCAS_DEBUG; - - phpCAS::log('exit()'); - while ( $PHPCAS_DEBUG['indent'] > 0 ) { - phpCAS::log('-'); - $PHPCAS_DEBUG['indent'] --; + + phpCAS :: log('exit()'); + while ($PHPCAS_DEBUG['indent'] > 0) { + phpCAS :: log('-'); + $PHPCAS_DEBUG['indent']--; } - } - + } + /** @} */ // ######################################################################## // INTERNATIONALIZATION @@ -616,7 +632,7 @@ class phpCAS * @addtogroup publicLang * @{ */ - + /** * This method is used to set the language used by phpCAS. * @note Can be called only once. @@ -625,18 +641,17 @@ class phpCAS * * @sa PHPCAS_LANG_FRENCH, PHPCAS_LANG_ENGLISH */ - function setLang($lang) - { + function setLang($lang) { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( gettype($lang) != 'string' ) { - phpCAS::error('type mismatched for parameter $lang (should be `string\')'); + if (gettype($lang) != 'string') { + phpCAS :: error('type mismatched for parameter $lang (should be `string\')'); } $PHPCAS_CLIENT->setLang($lang); - } - + } + /** @} */ // ######################################################################## // VERSION @@ -645,17 +660,16 @@ class phpCAS * @addtogroup public * @{ */ - + /** * This method returns the phpCAS version. * * @return the phpCAS version. */ - function getVersion() - { + function getVersion() { return PHPCAS_VERSION; - } - + } + /** @} */ // ######################################################################## // HTML OUTPUT @@ -664,41 +678,39 @@ class phpCAS * @addtogroup publicOutput * @{ */ - + /** * This method sets the HTML header used for all outputs. * * @param $header the HTML header. */ - function setHTMLHeader($header) - { + function setHTMLHeader($header) { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( gettype($header) != 'string' ) { - phpCAS::error('type mismatched for parameter $header (should be `string\')'); + if (gettype($header) != 'string') { + phpCAS :: error('type mismatched for parameter $header (should be `string\')'); } $PHPCAS_CLIENT->setHTMLHeader($header); - } - + } + /** * This method sets the HTML footer used for all outputs. * * @param $footer the HTML footer. */ - function setHTMLFooter($footer) - { + function setHTMLFooter($footer) { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( gettype($footer) != 'string' ) { - phpCAS::error('type mismatched for parameter $footer (should be `string\')'); + if (gettype($footer) != 'string') { + phpCAS :: error('type mismatched for parameter $footer (should be `string\')'); } $PHPCAS_CLIENT->setHTMLFooter($footer); - } - + } + /** @} */ // ######################################################################## // PGT STORAGE @@ -707,7 +719,7 @@ class phpCAS * @addtogroup publicPGTStorage * @{ */ - + /** * This method is used to tell phpCAS to store the response of the * CAS server to PGT requests onto the filesystem. @@ -715,31 +727,29 @@ class phpCAS * @param $format the format used to store the PGT's (`plain' and `xml' allowed) * @param $path the path where the PGT's should be stored */ - function setPGTStorageFile($format='', - $path='') - { - global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + function setPGTStorageFile($format = '', $path = '') { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + if (!$PHPCAS_CLIENT->isProxy()) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); + if ($PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called before ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() (called at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ')'); } - if ( gettype($format) != 'string' ) { - phpCAS::error('type mismatched for parameter $format (should be `string\')'); + if (gettype($format) != 'string') { + phpCAS :: error('type mismatched for parameter $format (should be `string\')'); } - if ( gettype($path) != 'string' ) { - phpCAS::error('type mismatched for parameter $format (should be `string\')'); + if (gettype($path) != 'string') { + phpCAS :: error('type mismatched for parameter $format (should be `string\')'); } - $PHPCAS_CLIENT->setPGTStorageFile($format,$path); - phpCAS::traceEnd(); - } - + $PHPCAS_CLIENT->setPGTStorageFile($format, $path); + phpCAS :: traceEnd(); + } + /** * This method is used to tell phpCAS to store the response of the * CAS server to PGT requests into a database. @@ -755,51 +765,44 @@ class phpCAS * @param $database the name of the database * @param $table the name of the table storing the data */ - function setPGTStorageDB($user, - $password, - $database_type='', - $hostname='', - $port=0, - $database='', - $table='') - { - global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + function setPGTStorageDB($user, $password, $database_type = '', $hostname = '', $port = 0, $database = '', $table = '') { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + if (!$PHPCAS_CLIENT->isProxy()) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); + if ($PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called before ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() (called at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ')'); } - if ( gettype($user) != 'string' ) { - phpCAS::error('type mismatched for parameter $user (should be `string\')'); + if (gettype($user) != 'string') { + phpCAS :: error('type mismatched for parameter $user (should be `string\')'); } - if ( gettype($password) != 'string' ) { - phpCAS::error('type mismatched for parameter $password (should be `string\')'); + if (gettype($password) != 'string') { + phpCAS :: error('type mismatched for parameter $password (should be `string\')'); } - if ( gettype($database_type) != 'string' ) { - phpCAS::error('type mismatched for parameter $database_type (should be `string\')'); + if (gettype($database_type) != 'string') { + phpCAS :: error('type mismatched for parameter $database_type (should be `string\')'); } - if ( gettype($hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $hostname (should be `string\')'); + if (gettype($hostname) != 'string') { + phpCAS :: error('type mismatched for parameter $hostname (should be `string\')'); } - if ( gettype($port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $port (should be `integer\')'); + if (gettype($port) != 'integer') { + phpCAS :: error('type mismatched for parameter $port (should be `integer\')'); } - if ( gettype($database) != 'string' ) { - phpCAS::error('type mismatched for parameter $database (should be `string\')'); + if (gettype($database) != 'string') { + phpCAS :: error('type mismatched for parameter $database (should be `string\')'); } - if ( gettype($table) != 'string' ) { - phpCAS::error('type mismatched for parameter $table (should be `string\')'); + if (gettype($table) != 'string') { + phpCAS :: error('type mismatched for parameter $table (should be `string\')'); } - $PHPCAS_CLIENT->setPGTStorageDB($user,$password,$database_type,$hostname,$port,$database,$table); - phpCAS::traceEnd(); - } - + $PHPCAS_CLIENT->setPGTStorageDB($user, $password, $database_type, $hostname, $port, $database, $table); + phpCAS :: traceEnd(); + } + /** @} */ // ######################################################################## // ACCESS TO EXTERNAL SERVICES @@ -808,7 +811,7 @@ class phpCAS * @addtogroup publicServices * @{ */ - + /** * This method is used to access an HTTP[S] service. * @@ -822,33 +825,32 @@ class phpCAS * @return TRUE on success, FALSE otherwise (in this later case, $err_code * gives the reason why it failed and $output contains an error message). */ - function serviceWeb($url,&$err_code,&$output) - { + function serviceWeb($url, & $err_code, & $output) { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + if (!$PHPCAS_CLIENT->isProxy()) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); + if (!$PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called after the programmer is sure the user has been authenticated (by calling ' . __CLASS__ . '::checkAuthentication() or ' . __CLASS__ . '::forceAuthentication()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + if (!$PHPCAS_AUTH_CHECK_CALL['result']) { + phpCAS :: error('authentication was checked (by ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ') but the method returned FALSE'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } - - $res = $PHPCAS_CLIENT->serviceWeb($url,$err_code,$output); - - phpCAS::traceEnd($res); + + $res = $PHPCAS_CLIENT->serviceWeb($url, $err_code, $output); + + phpCAS :: traceEnd($res); return $res; - } - + } + /** * This method is used to access an IMAP/POP3/NNTP service. * @@ -866,37 +868,36 @@ class phpCAS * @return an IMAP stream on success, FALSE otherwise (in this later case, $err_code * gives the reason why it failed and $err_msg contains an error message). */ - function serviceMail($url,$service,$flags,&$err_code,&$err_msg,&$pt) - { + function serviceMail($url, $service, $flags, & $err_code, & $err_msg, & $pt) { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + if (!$PHPCAS_CLIENT->isProxy()) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); + if (!$PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called after the programmer is sure the user has been authenticated (by calling ' . __CLASS__ . '::checkAuthentication() or ' . __CLASS__ . '::forceAuthentication()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + if (!$PHPCAS_AUTH_CHECK_CALL['result']) { + phpCAS :: error('authentication was checked (by ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ') but the method returned FALSE'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } - - if ( gettype($flags) != 'integer' ) { - phpCAS::error('type mismatched for parameter $flags (should be `integer\')'); + + if (gettype($flags) != 'integer') { + phpCAS :: error('type mismatched for parameter $flags (should be `integer\')'); } - - $res = $PHPCAS_CLIENT->serviceMail($url,$service,$flags,$err_code,$err_msg,$pt); - - phpCAS::traceEnd($res); + + $res = $PHPCAS_CLIENT->serviceMail($url, $service, $flags, $err_code, $err_msg, $pt); + + phpCAS :: traceEnd($res); return $res; - } - + } + /** @} */ // ######################################################################## // AUTHENTICATION @@ -905,7 +906,7 @@ class phpCAS * @addtogroup publicAuth * @{ */ - + /** * Set the times authentication will be cached before really accessing the CAS server in gateway mode: * - -1: check only once, and then never again (until you pree login) @@ -914,150 +915,156 @@ class phpCAS * * @param $n an integer. */ - function setCacheTimesForAuthRecheck($n) - { + function setCacheTimesForAuthRecheck($n) { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( gettype($n) != 'integer' ) { - phpCAS::error('type mismatched for parameter $header (should be `string\')'); + if (gettype($n) != 'integer') { + phpCAS :: error('type mismatched for parameter $header (should be `string\')'); } $PHPCAS_CLIENT->setCacheTimesForAuthRecheck($n); - } - + } + /** * This method is called to check if the user is authenticated (use the gateway feature). * @return TRUE when the user is authenticated; otherwise FALSE. */ - function checkAuthentication() - { + function checkAuthentication() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - + $auth = $PHPCAS_CLIENT->checkAuthentication(); - + // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + $dbg = phpCAS :: backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array ( + 'done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - phpCAS::traceEnd($auth); - return $auth; - } + 'method' => __CLASS__ . '::' . __FUNCTION__, + 'result' => $auth + ); + phpCAS :: traceEnd($auth); + return $auth; + } /** * This method is called to force authentication if the user was not already * authenticated. If the user is not authenticated, halt by redirecting to * the CAS server. */ - function forceAuthentication() - { + function forceAuthentication() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - + $auth = $PHPCAS_CLIENT->forceAuthentication(); - + // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + $dbg = phpCAS :: backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array ( + 'done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - - if ( !$auth ) { - phpCAS::trace('user is not authenticated, redirecting to the CAS server'); + 'method' => __CLASS__ . '::' . __FUNCTION__, + 'result' => $auth + ); + + if (!$auth) { + phpCAS :: trace('user is not authenticated, redirecting to the CAS server'); $PHPCAS_CLIENT->forceAuthentication(); } else { - phpCAS::trace('no need to authenticate (user `'.phpCAS::getUser().'\' is already authenticated)'); + phpCAS :: trace('no need to authenticate (user `' . phpCAS :: getUser() . '\' is already authenticated)'); } - - phpCAS::traceEnd(); - return $auth; - } - + + phpCAS :: traceEnd(); + return $auth; + } + /** * This method is called to renew the authentication. **/ function renewAuthentication() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before'.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - + // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], 'method' => __CLASS__.'::'.__FUNCTION__, 'result' => $auth ); - + $dbg = phpCAS :: backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array ( + 'done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__ . '::' . __FUNCTION__, + 'result' => $auth + ); + $PHPCAS_CLIENT->renewAuthentication(); - phpCAS::traceEnd(); + phpCAS :: traceEnd(); } /** * This method has been left from version 0.4.1 for compatibility reasons. */ - function authenticate() - { - phpCAS::error('this method is deprecated. You should use '.__CLASS__.'::forceAuthentication() instead'); - } - + function authenticate() { + phpCAS :: error('this method is deprecated. You should use ' . __CLASS__ . '::forceAuthentication() instead'); + } + /** * This method is called to check if the user is authenticated (previously or by * tickets given in the URL). * * @return TRUE when the user is authenticated. */ - function isAuthenticated() - { + function isAuthenticated() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - + // call the isAuthenticated method of the global $PHPCAS_CLIENT object $auth = $PHPCAS_CLIENT->isAuthenticated(); - + // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + $dbg = phpCAS :: backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array ( + 'done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - phpCAS::traceEnd($auth); + 'method' => __CLASS__ . '::' . __FUNCTION__, + 'result' => $auth + ); + phpCAS :: traceEnd($auth); return $auth; - } - + } + /** * Checks whether authenticated based on $_SESSION. Useful to avoid * server calls. * @return true if authenticated, false otherwise. * @since 0.4.22 by Brendan Arnold */ - function isSessionAuthenticated () - { + function isSessionAuthenticated() { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - return($PHPCAS_CLIENT->isSessionAuthenticated()); - } - + return ($PHPCAS_CLIENT->isSessionAuthenticated()); + } + /** * This method returns the CAS user's login name. * @warning should not be called only after phpCAS::forceAuthentication() @@ -1065,21 +1072,20 @@ class phpCAS * * @return the login name of the authenticated user */ - function getUser() - { + function getUser() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); + if (!$PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::forceAuthentication() or ' . __CLASS__ . '::isAuthenticated()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + if (!$PHPCAS_AUTH_CHECK_CALL['result']) { + phpCAS :: error('authentication was checked (by ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ') but the method returned FALSE'); } return $PHPCAS_CLIENT->getUser(); - } - + } + /** * This method returns the CAS user's login name. * @warning should not be called only after phpCAS::forceAuthentication() @@ -1087,169 +1093,160 @@ class phpCAS * * @return the login name of the authenticated user */ - function getAttributes() - { + function getAttributes() { global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); + if (!$PHPCAS_AUTH_CHECK_CALL['done']) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::forceAuthentication() or ' . __CLASS__ . '::isAuthenticated()'); } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + if (!$PHPCAS_AUTH_CHECK_CALL['result']) { + phpCAS :: error('authentication was checked (by ' . $PHPCAS_AUTH_CHECK_CALL['method'] . '() at ' . $PHPCAS_AUTH_CHECK_CALL['file'] . ':' . $PHPCAS_AUTH_CHECK_CALL['line'] . ') but the method returned FALSE'); } return $PHPCAS_CLIENT->getAttributes(); + } + /** + * Handle logout requests. + */ + function handleLogoutRequests($check_client = true, $allowed_clients = false) { + global $PHPCAS_CLIENT; + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } - /** - * Handle logout requests. - */ - function handleLogoutRequests($check_client=true, $allowed_clients=false) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - return($PHPCAS_CLIENT->handleLogoutRequests($check_client, $allowed_clients)); - } - + return ($PHPCAS_CLIENT->handleLogoutRequests($check_client, $allowed_clients)); + } + /** * This method returns the URL to be used to login. * or phpCAS::isAuthenticated(). * * @return the login name of the authenticated user */ - function getServerLoginURL() - { + function getServerLoginURL() { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } return $PHPCAS_CLIENT->getServerLoginURL(); - } - + } + /** * Set the login URL of the CAS server. * @param $url the login URL * @since 0.4.21 by Wyman Chan */ - function setServerLoginURL($url='') - { + function setServerLoginURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after + ' . __CLASS__ . '::client()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be + `string\')'); } $PHPCAS_CLIENT->setServerLoginURL($url); - phpCAS::traceEnd(); - } - - + phpCAS :: traceEnd(); + } + /** * Set the serviceValidate URL of the CAS server. + * Used only in CAS 1.0 validations * @param $url the serviceValidate URL * @since 1.1.0 by Joachim Fritschi */ - function setServerServiceValidateURL($url='') - { + function setServerServiceValidateURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after + ' . __CLASS__ . '::client()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be + `string\')'); } $PHPCAS_CLIENT->setServerServiceValidateURL($url); - phpCAS::traceEnd(); - } - - - /** + phpCAS :: traceEnd(); + } + + /** * Set the proxyValidate URL of the CAS server. + * Used for all CAS 2.0 validations * @param $url the proxyValidate URL * @since 1.1.0 by Joachim Fritschi */ - function setServerProxyValidateURL($url='') - { + function setServerProxyValidateURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after + ' . __CLASS__ . '::client()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be + `string\')'); } $PHPCAS_CLIENT->setServerProxyValidateURL($url); - phpCAS::traceEnd(); - } - - /** + phpCAS :: traceEnd(); + } + + /** * Set the samlValidate URL of the CAS server. * @param $url the samlValidate URL * @since 1.1.0 by Joachim Fritschi */ - function setServerSamlValidateURL($url='') - { + function setServerSamlValidateURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after + ' . __CLASS__ . '::client()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be + `string\')'); } $PHPCAS_CLIENT->setServerSamlValidateURL($url); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * This method returns the URL to be used to login. * or phpCAS::isAuthenticated(). * * @return the login name of the authenticated user */ - function getServerLogoutURL() - { + function getServerLogoutURL() { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should not be called before ' . __CLASS__ . '::client() or ' . __CLASS__ . '::proxy()'); } return $PHPCAS_CLIENT->getServerLogoutURL(); - } - + } + /** * Set the logout URL of the CAS server. * @param $url the logout URL * @since 0.4.21 by Wyman Chan */ - function setServerLogoutURL($url='') - { + function setServerLogoutURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after + ' . __CLASS__ . '::client()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be + `string\')'); } $PHPCAS_CLIENT->setServerLogoutURL($url); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * This method is used to logout from CAS. * @params $params an array that contains the optional url and service parameters that will be passed to the CAS server @@ -1257,66 +1254,70 @@ class phpCAS */ function logout($params = "") { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); + phpCAS :: traceBegin(); if (!is_object($PHPCAS_CLIENT)) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); } - $parsedParams = array(); + $parsedParams = array (); if ($params != "") { if (is_string($params)) { - phpCAS::error('method `phpCAS::logout($url)\' is now deprecated, use `phpCAS::logoutWithUrl($url)\' instead'); + phpCAS :: error('method `phpCAS::logout($url)\' is now deprecated, use `phpCAS::logoutWithUrl($url)\' instead'); } if (!is_array($params)) { - phpCAS::error('type mismatched for parameter $params (should be `array\')'); + phpCAS :: error('type mismatched for parameter $params (should be `array\')'); } foreach ($params as $key => $value) { if ($key != "service" && $key != "url") { - phpCAS::error('only `url\' and `service\' parameters are allowed for method `phpCAS::logout($params)\''); + phpCAS :: error('only `url\' and `service\' parameters are allowed for method `phpCAS::logout($params)\''); } $parsedParams[$key] = $value; } } $PHPCAS_CLIENT->logout($parsedParams); // never reached - phpCAS::traceEnd(); + phpCAS :: traceEnd(); } - + /** * This method is used to logout from CAS. Halts by redirecting to the CAS server. * @param $service a URL that will be transmitted to the CAS server */ function logoutWithRedirectService($service) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); } if (!is_string($service)) { - phpCAS::error('type mismatched for parameter $service (should be `string\')'); + phpCAS :: error('type mismatched for parameter $service (should be `string\')'); } - $PHPCAS_CLIENT->logout(array("service" => $service)); + $PHPCAS_CLIENT->logout(array ( + "service" => $service + )); // never reached - phpCAS::traceEnd(); + phpCAS :: traceEnd(); } - + /** * This method is used to logout from CAS. Halts by redirecting to the CAS server. * @param $url a URL that will be transmitted to the CAS server */ function logoutWithUrl($url) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); } if (!is_string($url)) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } - $PHPCAS_CLIENT->logout(array("url" => $url)); + $PHPCAS_CLIENT->logout(array ( + "url" => $url + )); // never reached - phpCAS::traceEnd(); + phpCAS :: traceEnd(); } - + /** * This method is used to logout from CAS. Halts by redirecting to the CAS server. * @param $service a URL that will be transmitted to the CAS server @@ -1324,161 +1325,156 @@ class phpCAS */ function logoutWithRedirectServiceAndUrl($service, $url) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); } if (!is_string($service)) { - phpCAS::error('type mismatched for parameter $service (should be `string\')'); + phpCAS :: error('type mismatched for parameter $service (should be `string\')'); } if (!is_string($url)) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } - $PHPCAS_CLIENT->logout(array("service" => $service, "url" => $url)); + $PHPCAS_CLIENT->logout(array ( + "service" => $service, + "url" => $url + )); // never reached - phpCAS::traceEnd(); + phpCAS :: traceEnd(); } - + /** * Set the fixed URL that will be used by the CAS server to transmit the PGT. * When this method is not called, a phpCAS script uses its own URL for the callback. * * @param $url the URL */ - function setFixedCallbackURL($url='') - { + function setFixedCallbackURL($url = '') { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + if (!$PHPCAS_CLIENT->isProxy()) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } $PHPCAS_CLIENT->setCallbackURL($url); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * Set the fixed URL that will be set as the CAS service parameter. When this * method is not called, a phpCAS script uses its own URL. * * @param $url the URL */ - function setFixedServiceURL($url) - { + function setFixedServiceURL($url) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); + } + if (gettype($url) != 'string') { + phpCAS :: error('type mismatched for parameter $url (should be `string\')'); } $PHPCAS_CLIENT->setURL($url); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * Get the URL that is set as the CAS service parameter. */ - function getServiceURL() - { + function getServiceURL() { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - return($PHPCAS_CLIENT->getURL()); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - + return ($PHPCAS_CLIENT->getURL()); + } + /** * Retrieve a Proxy Ticket from the CAS server. */ - function retrievePT($target_service,&$err_code,&$err_msg) - { + function retrievePT($target_service, & $err_code, & $err_msg) { global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( gettype($target_service) != 'string' ) { - phpCAS::error('type mismatched for parameter $target_service(should be `string\')'); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::proxy()'); } - return($PHPCAS_CLIENT->retrievePT($target_service,$err_code,$err_msg)); + if (gettype($target_service) != 'string') { + phpCAS :: error('type mismatched for parameter $target_service(should be `string\')'); } - + return ($PHPCAS_CLIENT->retrievePT($target_service, $err_code, $err_msg)); + } + /** * Set the certificate of the CAS server. * * @param $cert the PEM certificate */ - function setCasServerCert($cert) - { + function setCasServerCert($cert) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if ( gettype($cert) != 'string' ) { - phpCAS::error('type mismatched for parameter $cert (should be `string\')'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); + } + if (gettype($cert) != 'string') { + phpCAS :: error('type mismatched for parameter $cert (should be `string\')'); } $PHPCAS_CLIENT->setCasServerCert($cert); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * Set the certificate of the CAS server CA. * * @param $cert the CA certificate */ - function setCasServerCACert($cert) - { + function setCasServerCACert($cert) { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if ( gettype($cert) != 'string' ) { - phpCAS::error('type mismatched for parameter $cert (should be `string\')'); + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); + } + if (gettype($cert) != 'string') { + phpCAS :: error('type mismatched for parameter $cert (should be `string\')'); } $PHPCAS_CLIENT->setCasServerCACert($cert); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** * Set no SSL validation for the CAS server. */ - function setNoCasServerValidation() - { + function setNoCasServerValidation() { global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); + } $PHPCAS_CLIENT->setNoCasServerValidation(); - phpCAS::traceEnd(); - } - + phpCAS :: traceEnd(); + } + /** @} */ - - /** - * Change CURL options. - * CURL is used to connect through HTTPS to CAS server - * @param $key the option key - * @param $value the value to set - */ - function setExtraCurlOption($key, $value) - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - $PHPCAS_CLIENT->setExtraCurlOption($key, $value); - phpCAS::traceEnd(); + + /** + * Change CURL options. + * CURL is used to connect through HTTPS to CAS server + * @param $key the option key + * @param $value the value to set + */ + function setExtraCurlOption($key, $value) { + global $PHPCAS_CLIENT; + phpCAS :: traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS :: error('this method should only be called after ' . __CLASS__ . '::client() or' . __CLASS__ . '::proxy()'); } + $PHPCAS_CLIENT->setExtraCurlOption($key, $value); + phpCAS :: traceEnd(); + } } @@ -1525,7 +1521,6 @@ class phpCAS /** @defgroup publicDebug Debugging * @ingroup public */ - /** @defgroup internal Implementation */ /** @defgroup internalAuthentication Authentication @@ -1579,37 +1574,37 @@ class phpCAS /** * @example example_simple.php */ - /** - * @example example_proxy.php - */ - /** - * @example example_proxy2.php - */ - /** - * @example example_lang.php - */ - /** - * @example example_html.php - */ - /** - * @example example_file.php - */ - /** - * @example example_db.php - */ - /** - * @example example_service.php - */ - /** - * @example example_session_proxy.php - */ - /** - * @example example_session_service.php - */ - /** - * @example example_gateway.php - */ - - - +/** + * @example example_proxy.php + */ +/** + * @example example_proxy2.php + */ +/** + * @example example_lang.php + */ +/** + * @example example_html.php + */ +/** + * @example example_file.php + */ +/** + * @example example_db.php + */ +/** + * @example example_service.php + */ +/** + * @example example_session_proxy.php + */ +/** + * @example example_session_service.php + */ +/** + * @example example_gateway.php + */ +/** + * @example example_custom_urls.php + */ ?> diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php index 5a589e4b28..1e316b6f6a 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php @@ -1,4 +1,32 @@ <?php +/* + * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the ESUP-Portail consortium & the JA-SIG + * Collaborative nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior + * written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ /** * @file CAS/PGTStorage/pgt-db.php diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php index bc07485b8f..983e557c57 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php @@ -1,5 +1,32 @@ <?php +/* + * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the ESUP-Portail consortium & the JA-SIG + * Collaborative nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ /** * @file CAS/PGTStorage/pgt-file.php * Basic class for PGT file storage diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php index cd9b499671..cf4c4ed0f2 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php @@ -1,5 +1,32 @@ <?php +/* + * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the ESUP-Portail consortium & the JA-SIG + * Collaborative nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ /** * @file CAS/PGTStorage/pgt-main.php * Basic class for PGT storage diff --git a/plugins/CasAuthentication/extlib/CAS/client.php b/plugins/CasAuthentication/extlib/CAS/client.php index ad5a23f839..d38c24d361 100644 --- a/plugins/CasAuthentication/extlib/CAS/client.php +++ b/plugins/CasAuthentication/extlib/CAS/client.php @@ -1,5 +1,34 @@ <?php +/* + * Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of the ESUP-Portail consortium & the JA-SIG + * Collaborative nor the names of its contributors may be used to endorse or + * promote products derived from this software without specific prior + * written permission. + + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + /** * @file CAS/client.php * Main class of the phpCAS library @@ -351,8 +380,8 @@ class CASClient { return $this->_server['login_url'] = $url; } - - + + /** * This method sets the serviceValidate URL of the CAS server. * @param $url the serviceValidate URL @@ -363,8 +392,8 @@ class CASClient { return $this->_server['service_validate_url'] = $url; } - - + + /** * This method sets the proxyValidate URL of the CAS server. * @param $url the proxyValidate URL @@ -375,8 +404,8 @@ class CASClient { return $this->_server['proxy_validate_url'] = $url; } - - + + /** * This method sets the samlValidate URL of the CAS server. * @param $url the samlValidate URL @@ -387,7 +416,7 @@ class CASClient { return $this->_server['saml_validate_url'] = $url; } - + /** * This method is used to retrieve the service validating URL of the CAS server. @@ -411,24 +440,24 @@ class CASClient return $this->_server['service_validate_url'].'?service='.urlencode($this->getURL()); } /** - * This method is used to retrieve the SAML validating URL of the CAS server. - * @return a URL. - * @private - */ + * This method is used to retrieve the SAML validating URL of the CAS server. + * @return a URL. + * @private + */ function getServerSamlValidateURL() - { - phpCAS::traceBegin(); - // the URL is build only when needed - if ( empty($this->_server['saml_validate_url']) ) { - switch ($this->getServerVersion()) { - case SAML_VERSION_1_1: - $this->_server['saml_validate_url'] = $this->getServerBaseURL().'samlValidate'; - break; + { + phpCAS::traceBegin(); + // the URL is build only when needed + if ( empty($this->_server['saml_validate_url']) ) { + switch ($this->getServerVersion()) { + case SAML_VERSION_1_1: + $this->_server['saml_validate_url'] = $this->getServerBaseURL().'samlValidate'; + break; } - } - phpCAS::traceEnd($this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL())); - return $this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL()); - } + } + phpCAS::traceEnd($this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL())); + return $this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL()); + } /** * This method is used to retrieve the proxy validating URL of the CAS server. * @return a URL. @@ -496,20 +525,20 @@ class CASClient { return $this->_server['logout_url'] = $url; } - + /** * An array to store extra curl options. */ var $_curl_options = array(); - + /** * This method is used to set additional user curl options. */ function setExtraCurlOption($key, $value) - { + { $this->_curl_options[$key] = $value; - } - + } + /** * This method checks to see if the request is secured via HTTPS * @return true if https, false otherwise @@ -556,45 +585,21 @@ class CASClient if (version_compare(PHP_VERSION,'5','>=') && ini_get('zend.ze1_compatibility_mode')) { phpCAS::error('phpCAS cannot support zend.ze1_compatibility_mode. Sorry.'); } - // skip Session Handling for logout requests and if don't want it' - if ($start_session && !$this->isLogoutRequest()) { - phpCAS::trace("Starting session handling"); - // Check for Tickets from the CAS server - if (empty($_GET['ticket'])){ - phpCAS::trace("No ticket found"); - // only create a session if necessary - if (!isset($_SESSION)) { - phpCAS::trace("No session found, creating new session"); - session_start(); - } - }else{ - phpCAS::trace("Ticket found"); - // We have to copy any old data before renaming the session - if (isset($_SESSION)) { - phpCAS::trace("Old active session found, saving old data and destroying session"); - $old_session = $_SESSION; - session_destroy(); - }else{ - session_start(); - phpCAS::trace("Starting possible old session to copy variables"); - $old_session = $_SESSION; - session_destroy(); - } - // set up a new session, of name based on the ticket - $session_id = preg_replace('/[^\w]/','',$_GET['ticket']); - phpCAS::LOG("Session ID: " . $session_id); - session_id($session_id); - session_start(); - // restore old session vars - if(isset($old_session)){ - phpCAS::trace("Restoring old session vars"); - $_SESSION = $old_session; - } - } - }else{ - phpCAS::trace("Skipping session creation"); - } + $this->_start_session = $start_session; + if ($this->_start_session && session_id()) + { + phpCAS :: error("Another session was started before phpcas. Either disable the session" . + " handling for phpcas in the client() call or modify your application to leave" . + " session handling to phpcas"); + } + // skip Session Handling for logout requests and if don't want it' + if ($start_session && !$this->isLogoutRequest()) + { + phpCAS :: trace("Starting a new session"); + session_start(); + } + // are we in proxy mode ? $this->_proxy = $proxy; @@ -667,12 +672,8 @@ class CASClient } break; case CAS_VERSION_2_0: // check for a Service or Proxy Ticket - if (preg_match('/^ST-/', $ticket)) { - phpCAS::trace('ST \'' . $ticket . '\' found'); - $this->setST($ticket); - unset ($_GET['ticket']); - } else if (preg_match('/^PT-/', $ticket)) { - phpCAS::trace('PT \'' . $ticket . '\' found'); + if( preg_match('/^[SP]T-/',$ticket) ) { + phpCAS::trace('ST or PT \''.$ticket.'\' found'); $this->setPT($ticket); unset($_GET['ticket']); } else if ( !empty($ticket) ) { @@ -682,9 +683,9 @@ class CASClient break; case SAML_VERSION_1_1: // SAML just does Service Tickets if( preg_match('/^[SP]T-/',$ticket) ) { - phpCAS::trace('SA \''.$ticket.'\' found'); - $this->setSA($ticket); - unset($_GET['ticket']); + phpCAS::trace('SA \''.$ticket.'\' found'); + $this->setSA($ticket); + unset($_GET['ticket']); } else if ( !empty($ticket) ) { //ill-formed ticket, halt phpCAS::error('ill-formed ticket found in the URL (ticket=`'.htmlentities($ticket).'\')'); @@ -697,6 +698,57 @@ class CASClient /** @} */ + // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + // XX XX + // XX Session Handling XX + // XX XX + // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + /** + * A variable to whether phpcas will use its own session handling. Default = true + * @hideinitializer + * @private + */ + var $_start_session = true; + + function setStartSession($session) + { + $this->_start_session = session; + } + + function getStartSession($session) + { + $this->_start_session = session; + } + + /** + * Renaming the session + */ + function renameSession($ticket) + { + phpCAS::traceBegin(); + if($this->_start_session){ + if (!empty ($this->_user)) + { + $old_session = $_SESSION; + session_destroy(); + // set up a new session, of name based on the ticket + $session_id = preg_replace('/[^\w]/', '', $ticket); + phpCAS :: trace("Session ID: ".$session_id); + session_id($session_id); + session_start(); + phpCAS :: trace("Restoring old session vars"); + $_SESSION = $old_session; + } else + { + phpCAS :: error('Session should only be renamed after successfull authentication'); + } + }else{ + phpCAS :: trace("Skipping session rename since phpCAS is not handling the session."); + } + phpCAS::traceEnd(); + } + // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // XX XX // XX AUTHENTICATION XX @@ -743,8 +795,8 @@ class CASClient } return $this->_user; } - - + + /*********************************************************************************************************************** * Atrributes section @@ -760,23 +812,23 @@ class CASClient * @private */ var $_attributes = array(); - + function setAttributes($attributes) { $this->_attributes = $attributes; } - + function getAttributes() { if ( empty($this->_user) ) { // if no user is set, there shouldn't be any attributes also... phpCAS::error('this method should be used only after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); } return $this->_attributes; } - + function hasAttributes() { return !empty($this->_attributes); } - + function hasAttribute($key) { return (is_array($this->_attributes) && array_key_exists($key, $this->_attributes)); } - + function getAttribute($key) { if($this->hasAttribute($key)) { return $this->_attributes[$key]; @@ -802,7 +854,7 @@ class CASClient } phpCAS::traceEnd(); } - + /** * This method is called to be sure that the user is authenticated. When not * authenticated, halt by redirecting to the CAS server; otherwise return TRUE. @@ -914,66 +966,73 @@ class CASClient */ function isAuthenticated() { - phpCAS::traceBegin(); - $res = FALSE; - $validate_url = ''; - - if ( $this->wasPreviouslyAuthenticated() ) { + phpCAS::traceBegin(); + $res = FALSE; + $validate_url = ''; + + if ( $this->wasPreviouslyAuthenticated() ) { + if($this->hasST() || $this->hasPT() || $this->hasSA()){ + // User has a additional ticket but was already authenticated + phpCAS::trace('ticket was present and will be discarded, use renewAuthenticate()'); + header('Location: '.$this->getURL()); + phpCAS::log( "Prepare redirect to remove ticket: ".$this->getURL() ); + }else{ // the user has already (previously during the session) been // authenticated, nothing to be done. phpCAS::trace('user was already authenticated, no need to look for tickets'); + } + $res = TRUE; + } + else { + if ( $this->hasST() ) { + // if a Service Ticket was given, validate it + phpCAS::trace('ST `'.$this->getST().'\' is present'); + $this->validateST($validate_url,$text_response,$tree_response); // if it fails, it halts + phpCAS::trace('ST `'.$this->getST().'\' was validated'); + if ( $this->isProxy() ) { + $this->validatePGT($validate_url,$text_response,$tree_response); // idem + phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); + $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + } + $_SESSION['phpCAS']['user'] = $this->getUser(); + $res = TRUE; + } + elseif ( $this->hasPT() ) { + // if a Proxy Ticket was given, validate it + phpCAS::trace('PT `'.$this->getPT().'\' is present'); + $this->validatePT($validate_url,$text_response,$tree_response); // note: if it fails, it halts + phpCAS::trace('PT `'.$this->getPT().'\' was validated'); + if ( $this->isProxy() ) { + $this->validatePGT($validate_url,$text_response,$tree_response); // idem + phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); + $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + } + $_SESSION['phpCAS']['user'] = $this->getUser(); + $res = TRUE; + } + elseif ( $this->hasSA() ) { + // if we have a SAML ticket, validate it. + phpCAS::trace('SA `'.$this->getSA().'\' is present'); + $this->validateSA($validate_url,$text_response,$tree_response); // if it fails, it halts + phpCAS::trace('SA `'.$this->getSA().'\' was validated'); + $_SESSION['phpCAS']['user'] = $this->getUser(); + $_SESSION['phpCAS']['attributes'] = $this->getAttributes(); $res = TRUE; } else { - if ( $this->hasST() ) { - // if a Service Ticket was given, validate it - phpCAS::trace('ST `'.$this->getST().'\' is present'); - $this->validateST($validate_url,$text_response,$tree_response); // if it fails, it halts - phpCAS::trace('ST `'.$this->getST().'\' was validated'); - if ( $this->isProxy() ) { - $this->validatePGT($validate_url,$text_response,$tree_response); // idem - phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); - $_SESSION['phpCAS']['pgt'] = $this->getPGT(); - } - $_SESSION['phpCAS']['user'] = $this->getUser(); - $res = TRUE; - } - elseif ( $this->hasPT() ) { - // if a Proxy Ticket was given, validate it - phpCAS::trace('PT `'.$this->getPT().'\' is present'); - $this->validatePT($validate_url,$text_response,$tree_response); // note: if it fails, it halts - phpCAS::trace('PT `'.$this->getPT().'\' was validated'); - if ( $this->isProxy() ) { - $this->validatePGT($validate_url,$text_response,$tree_response); // idem - phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); - $_SESSION['phpCAS']['pgt'] = $this->getPGT(); - } - $_SESSION['phpCAS']['user'] = $this->getUser(); - $res = TRUE; - } - elseif ( $this->hasSA() ) { - // if we have a SAML ticket, validate it. - phpCAS::trace('SA `'.$this->getSA().'\' is present'); - $this->validateSA($validate_url,$text_response,$tree_response); // if it fails, it halts - phpCAS::trace('SA `'.$this->getSA().'\' was validated'); - $_SESSION['phpCAS']['user'] = $this->getUser(); - $_SESSION['phpCAS']['attributes'] = $this->getAttributes(); - $res = TRUE; - } - else { - // no ticket given, not authenticated - phpCAS::trace('no ticket found'); - } - if ($res) { - // if called with a ticket parameter, we need to redirect to the app without the ticket so that CAS-ification is transparent to the browser (for later POSTS) - // most of the checks and errors should have been made now, so we're safe for redirect without masking error messages. - header('Location: '.$this->getURL()); - phpCAS::log( "Prepare redirect to : ".$this->getURL() ); - } + // no ticket given, not authenticated + phpCAS::trace('no ticket found'); } - - phpCAS::traceEnd($res); - return $res; + if ($res) { + // if called with a ticket parameter, we need to redirect to the app without the ticket so that CAS-ification is transparent to the browser (for later POSTS) + // most of the checks and errors should have been made now, so we're safe for redirect without masking error messages. + header('Location: '.$this->getURL()); + phpCAS::log( "Prepare redirect to : ".$this->getURL() ); + } + } + + phpCAS::traceEnd($res); + return $res; } /** @@ -1071,30 +1130,7 @@ class CASClient phpCAS::traceExit(); exit(); } - -// /** -// * This method is used to logout from CAS. -// * @param $url a URL that will be transmitted to the CAS server (to come back to when logged out) -// * @public -// */ -// function logout($url = "") { -// phpCAS::traceBegin(); -// $cas_url = $this->getServerLogoutURL(); -// // v0.4.14 sebastien.gougeon at univ-rennes1.fr -// // header('Location: '.$cas_url); -// if ( $url != "" ) { -// // Adam Moore 1.0.0RC2 -// $url = '?service=' . $url . '&url=' . $url; -// } -// header('Location: '.$cas_url . $url); -// session_unset(); -// session_destroy(); -// $this->printHTMLHeader($this->getString(CAS_STR_LOGOUT)); -// printf('<p>'.$this->getString(CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED).'</p>',$cas_url); -// $this->printHTMLFooter(); -// phpCAS::traceExit(); -// exit(); -// } + /** * This method is used to logout from CAS. @@ -1114,7 +1150,7 @@ class CASClient } header('Location: '.$cas_url); phpCAS::log( "Prepare redirect to : ".$cas_url ); - + session_unset(); session_destroy(); @@ -1156,6 +1192,9 @@ class CASClient phpCAS::traceEnd(); return; } + if(!$this->_start_session){ + phpCAS::log("phpCAS can't handle logout requests if it does not manage the session."); + } phpCAS::log("Logout requested"); phpCAS::log("SAML REQUEST: ".$_POST['logoutRequest']); if ($check_client) { @@ -1177,7 +1216,7 @@ class CASClient } if (!$allowed) { phpCAS::error("Unauthorized logout request from client '".$client."'"); - printf("Unauthorized!"); + printf("Unauthorized!"); phpCAS::traceExit(); exit(); } @@ -1191,8 +1230,13 @@ class CASClient phpCAS::log("Ticket to logout: ".$ticket2logout); $session_id = preg_replace('/[^\w]/','',$ticket2logout); phpCAS::log("Session id: ".$session_id); - - // fix New session ID + + // destroy a possible application session created before phpcas + if(session_id()){ + session_unset(); + session_destroy(); + } + // fix session ID session_id($session_id); $_COOKIE[session_name()]=$session_id; $_GET[session_name()]=$session_id; @@ -1200,8 +1244,8 @@ class CASClient // Overwrite session session_start(); session_unset(); - session_destroy(); - printf("Disconnected!"); + session_destroy(); + printf("Disconnected!"); phpCAS::traceExit(); exit(); } @@ -1322,7 +1366,7 @@ class CASClient * This method is used to validate a ST; halt on failure, and sets $validate_url, * $text_reponse and $tree_response on success. These parameters are used later * by CASClient::validatePGT() for CAS proxies. - * + * Used for all CAS 1.0 validations * @param $validate_url the URL of the request to the CAS server. * @param $text_response the response of the CAS server, as is (XML text). * @param $tree_response the response of the CAS server, as a DOM XML tree. @@ -1338,7 +1382,7 @@ class CASClient $validate_url = $this->getServerServiceValidateURL().'&ticket='.$this->getST(); if ( $this->isProxy() ) { // pass the callback url for CAS proxies - $validate_url .= '&pgtUrl='.$this->getCallbackURL(); + $validate_url .= '&pgtUrl='.urlencode($this->getCallbackURL()); } // open and read the URL @@ -1434,156 +1478,160 @@ class CASClient } break; } - + $this->renameSession($this->getST()); // at this step, ST has been validated and $this->_user has been set, phpCAS::traceEnd(TRUE); return TRUE; } - - // ######################################################################## - // SAML VALIDATION - // ######################################################################## - /** - * @addtogroup internalBasic - * @{ - */ - - /** - * This method is used to validate a SAML TICKET; halt on failure, and sets $validate_url, - * $text_reponse and $tree_response on success. These parameters are used later - * by CASClient::validatePGT() for CAS proxies. - * - * @param $validate_url the URL of the request to the CAS server. - * @param $text_response the response of the CAS server, as is (XML text). - * @param $tree_response the response of the CAS server, as a DOM XML tree. - * - * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). - * - * @private - */ - function validateSA($validate_url,&$text_response,&$tree_response) - { - phpCAS::traceBegin(); - - // build the URL to validate the ticket - $validate_url = $this->getServerSamlValidateURL(); - - // open and read the URL - if ( !$this->readURL($validate_url,''/*cookies*/,$headers,$text_response,$err_msg) ) { - phpCAS::trace('could not open URL \''.$validate_url.'\' to validate ('.$err_msg.')'); - $this->authError('SA not validated', $validate_url, TRUE/*$no_response*/); - } - - phpCAS::trace('server version: '.$this->getServerVersion()); - - // analyze the result depending on the version - switch ($this->getServerVersion()) { - case SAML_VERSION_1_1: - - // read the response of the CAS server into a DOM object - if ( !($dom = domxml_open_mem($text_response))) { - phpCAS::trace('domxml_open_mem() failed'); - $this->authError('SA not validated', - $validate_url, - FALSE/*$no_response*/, - TRUE/*$bad_response*/, - $text_response); - } - // read the root node of the XML tree - if ( !($tree_response = $dom->document_element()) ) { - phpCAS::trace('document_element() failed'); - $this->authError('SA not validated', - $validate_url, - FALSE/*$no_response*/, - TRUE/*$bad_response*/, - $text_response); - } - // insure that tag name is 'Envelope' - if ( $tree_response->node_name() != 'Envelope' ) { - phpCAS::trace('bad XML root node (should be `Envelope\' instead of `'.$tree_response->node_name().'\''); - $this->authError('SA not validated', - $validate_url, - FALSE/*$no_response*/, - TRUE/*$bad_response*/, - $text_response); - } - // check for the NameIdentifier tag in the SAML response - if ( sizeof($success_elements = $tree_response->get_elements_by_tagname("NameIdentifier")) != 0) { - phpCAS::trace('NameIdentifier found'); - $user = trim($success_elements[0]->get_content()); - phpCAS::trace('user = `'.$user.'`'); - $this->setUser($user); - $this->setSessionAttributes($text_response); - } else { - phpCAS::trace('no <NameIdentifier> tag found in SAML payload'); - $this->authError('SA not validated', - $validate_url, - FALSE/*$no_response*/, - TRUE/*$bad_response*/, - $text_response); - } - break; - } - - // at this step, ST has been validated and $this->_user has been set, - phpCAS::traceEnd(TRUE); - return TRUE; - } - - /** - * This method will parse the DOM and pull out the attributes from the SAML - * payload and put them into an array, then put the array into the session. - * - * @param $text_response the SAML payload. - * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). - * - * @private - */ - function setSessionAttributes($text_response) - { - phpCAS::traceBegin(); - - $result = FALSE; - - if (isset($_SESSION[SAML_ATTRIBUTES])) { - phpCAS::trace("session attrs already set."); //testbml - do we care? - } - - $attr_array = array(); - - if (($dom = domxml_open_mem($text_response))) { - $xPath = $dom->xpath_new_context(); - $xPath->xpath_register_ns('samlp', 'urn:oasis:names:tc:SAML:1.0:protocol'); - $xPath->xpath_register_ns('saml', 'urn:oasis:names:tc:SAML:1.0:assertion'); - $nodelist = $xPath->xpath_eval("//saml:Attribute"); - $attrs = $nodelist->nodeset; - phpCAS::trace($text_response); - foreach($attrs as $attr){ - $xres = $xPath->xpath_eval("saml:AttributeValue", $attr); - $name = $attr->get_attribute("AttributeName"); - $value_array = array(); - foreach($xres->nodeset as $node){ - $value_array[] = $node->get_content(); - - } - phpCAS::trace("* " . $name . "=" . $value_array); - $attr_array[$name] = $value_array; - } - $_SESSION[SAML_ATTRIBUTES] = $attr_array; - // UGent addition... - foreach($attr_array as $attr_key => $attr_value) { - if(count($attr_value) > 1) { - $this->_attributes[$attr_key] = $attr_value; - } - else { - $this->_attributes[$attr_key] = $attr_value[0]; - } - } - $result = TRUE; - } - phpCAS::traceEnd($result); - return $result; - } + + // ######################################################################## + // SAML VALIDATION + // ######################################################################## + /** + * @addtogroup internalBasic + * @{ + */ + + /** + * This method is used to validate a SAML TICKET; halt on failure, and sets $validate_url, + * $text_reponse and $tree_response on success. These parameters are used later + * by CASClient::validatePGT() for CAS proxies. + * + * @param $validate_url the URL of the request to the CAS server. + * @param $text_response the response of the CAS server, as is (XML text). + * @param $tree_response the response of the CAS server, as a DOM XML tree. + * + * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). + * + * @private + */ + function validateSA($validate_url,&$text_response,&$tree_response) + { + phpCAS::traceBegin(); + + // build the URL to validate the ticket + $validate_url = $this->getServerSamlValidateURL(); + + // open and read the URL + if ( !$this->readURL($validate_url,''/*cookies*/,$headers,$text_response,$err_msg) ) { + phpCAS::trace('could not open URL \''.$validate_url.'\' to validate ('.$err_msg.')'); + $this->authError('SA not validated', $validate_url, TRUE/*$no_response*/); + } + + phpCAS::trace('server version: '.$this->getServerVersion()); + + // analyze the result depending on the version + switch ($this->getServerVersion()) { + case SAML_VERSION_1_1: + + // read the response of the CAS server into a DOM object + if ( !($dom = domxml_open_mem($text_response))) { + phpCAS::trace('domxml_open_mem() failed'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // read the root node of the XML tree + if ( !($tree_response = $dom->document_element()) ) { + phpCAS::trace('document_element() failed'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // insure that tag name is 'Envelope' + if ( $tree_response->node_name() != 'Envelope' ) { + phpCAS::trace('bad XML root node (should be `Envelope\' instead of `'.$tree_response->node_name().'\''); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // check for the NameIdentifier tag in the SAML response + if ( sizeof($success_elements = $tree_response->get_elements_by_tagname("NameIdentifier")) != 0) { + phpCAS::trace('NameIdentifier found'); + $user = trim($success_elements[0]->get_content()); + phpCAS::trace('user = `'.$user.'`'); + $this->setUser($user); + $this->setSessionAttributes($text_response); + } else { + phpCAS::trace('no <NameIdentifier> tag found in SAML payload'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + break; + } + $this->renameSession($this->getSA()); + // at this step, ST has been validated and $this->_user has been set, + phpCAS::traceEnd(TRUE); + return TRUE; + } + + /** + * This method will parse the DOM and pull out the attributes from the SAML + * payload and put them into an array, then put the array into the session. + * + * @param $text_response the SAML payload. + * @return bool TRUE when successfull and FALSE if no attributes a found + * + * @private + */ + function setSessionAttributes($text_response) + { + phpCAS::traceBegin(); + + $result = FALSE; + + if (isset($_SESSION[SAML_ATTRIBUTES])) { + phpCAS::trace("session attrs already set."); //testbml - do we care? + } + + $attr_array = array(); + + if (($dom = domxml_open_mem($text_response))) { + $xPath = $dom->xpath_new_context(); + $xPath->xpath_register_ns('samlp', 'urn:oasis:names:tc:SAML:1.0:protocol'); + $xPath->xpath_register_ns('saml', 'urn:oasis:names:tc:SAML:1.0:assertion'); + $nodelist = $xPath->xpath_eval("//saml:Attribute"); + if($nodelist){ + $attrs = $nodelist->nodeset; + foreach($attrs as $attr){ + $xres = $xPath->xpath_eval("saml:AttributeValue", $attr); + $name = $attr->get_attribute("AttributeName"); + $value_array = array(); + foreach($xres->nodeset as $node){ + $value_array[] = $node->get_content(); + } + $attr_array[$name] = $value_array; + } + $_SESSION[SAML_ATTRIBUTES] = $attr_array; + // UGent addition... + foreach($attr_array as $attr_key => $attr_value) { + if(count($attr_value) > 1) { + $this->_attributes[$attr_key] = $attr_value; + phpCAS::trace("* " . $attr_key . "=" . $attr_value); + } + else { + $this->_attributes[$attr_key] = $attr_value[0]; + phpCAS::trace("* " . $attr_key . "=" . $attr_value[0]); + } + } + $result = TRUE; + }else{ + phpCAS::trace("SAML Attributes are empty"); + $result = FALSE; + } + } + phpCAS::traceEnd($result); + return $result; + } /** @} */ @@ -2118,7 +2166,7 @@ class CASClient curl_setopt($ch, $key, $value); } } - + if ($this->_cas_server_cert == '' && $this->_cas_server_ca_cert == '' && !$this->_no_cas_server_validation) { phpCAS::error('one of the methods phpCAS::setCasServerCert(), phpCAS::setCasServerCACert() or phpCAS::setNoCasServerValidation() must be called.'); } @@ -2150,21 +2198,21 @@ class CASClient if ( is_array($cookies) ) { curl_setopt($ch,CURLOPT_COOKIE,implode(';',$cookies)); } - // add extra stuff if SAML - if ($this->hasSA()) { - $more_headers = array ("soapaction: http://www.oasis-open.org/committees/security", - "cache-control: no-cache", - "pragma: no-cache", - "accept: text/xml", - "connection: keep-alive", - "content-type: text/xml"); - - curl_setopt($ch, CURLOPT_HTTPHEADER, $more_headers); - curl_setopt($ch, CURLOPT_POST, 1); - $data = $this->buildSAMLPayload(); - //phpCAS::trace('SAML Payload: '.print_r($data, TRUE)); - curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - } + // add extra stuff if SAML + if ($this->hasSA()) { + $more_headers = array ("soapaction: http://www.oasis-open.org/committees/security", + "cache-control: no-cache", + "pragma: no-cache", + "accept: text/xml", + "connection: keep-alive", + "content-type: text/xml"); + + curl_setopt($ch, CURLOPT_HTTPHEADER, $more_headers); + curl_setopt($ch, CURLOPT_POST, 1); + $data = $this->buildSAMLPayload(); + //phpCAS::trace('SAML Payload: '.print_r($data, TRUE)); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + } // perform the query $buf = curl_exec ($ch); //phpCAS::trace('CURL: Call completed. Response body is: \''.$buf.'\''); @@ -2185,39 +2233,39 @@ class CASClient phpCAS::traceEnd($res); return $res; - } - - /** - * This method is used to build the SAML POST body sent to /samlValidate URL. - * - * @return the SOAP-encased SAMLP artifact (the ticket). - * - * @private - */ - function buildSAMLPayload() - { - phpCAS::traceBegin(); - - //get the ticket - $sa = $this->getSA(); - //phpCAS::trace("SA: ".$sa); - - $body=SAML_SOAP_ENV.SAML_SOAP_BODY.SAMLP_REQUEST.SAML_ASSERTION_ARTIFACT.$sa.SAML_ASSERTION_ARTIFACT_CLOSE.SAMLP_REQUEST_CLOSE.SAML_SOAP_BODY_CLOSE.SAML_SOAP_ENV_CLOSE; - - phpCAS::traceEnd($body); - return ($body); - } - + } + + /** + * This method is used to build the SAML POST body sent to /samlValidate URL. + * + * @return the SOAP-encased SAMLP artifact (the ticket). + * + * @private + */ + function buildSAMLPayload() + { + phpCAS::traceBegin(); + + //get the ticket + $sa = $this->getSA(); + //phpCAS::trace("SA: ".$sa); + + $body=SAML_SOAP_ENV.SAML_SOAP_BODY.SAMLP_REQUEST.SAML_ASSERTION_ARTIFACT.$sa.SAML_ASSERTION_ARTIFACT_CLOSE.SAMLP_REQUEST_CLOSE.SAML_SOAP_BODY_CLOSE.SAML_SOAP_ENV_CLOSE; + + phpCAS::traceEnd($body); + return ($body); + } + /** * This method is the callback used by readURL method to request HTTP headers. */ var $_curl_headers = array(); function _curl_read_headers($ch, $header) - { + { $this->_curl_headers[] = $header; return strlen($header); - } - + } + /** * This method is used to access an HTTP[S] service. * @@ -2236,6 +2284,7 @@ class CASClient function serviceWeb($url,&$err_code,&$output) { phpCAS::traceBegin(); + $cookies = array(); // at first retrieve a PT $pt = $this->retrievePT($url,$err_code,$output); @@ -2248,7 +2297,8 @@ class CASClient $res = FALSE; } else { // add cookies if necessary - if ( is_array($_SESSION['phpCAS']['services'][$url]['cookies']) ) { + if ( isset($_SESSION['phpCAS']['services'][$url]['cookies']) && + is_array($_SESSION['phpCAS']['services'][$url]['cookies']) ) { foreach ( $_SESSION['phpCAS']['services'][$url]['cookies'] as $name => $val ) { $cookies[] = $name.'='.$val; } @@ -2400,29 +2450,29 @@ class CASClient function hasPT() { return !empty($this->_pt); } /** - * This method returns the SAML Ticket provided in the URL of the request. - * @return The SAML ticket. - * @private - */ - function getSA() - { return 'ST'.substr($this->_sa, 2); } - - /** - * This method stores the SAML Ticket. - * @param $sa The SAML Ticket. - * @private - */ - function setSA($sa) - { $this->_sa = $sa; } - - /** - * This method tells if a SAML Ticket was stored. - * @return TRUE if a SAML Ticket has been stored. - * @private - */ - function hasSA() - { return !empty($this->_sa); } - + * This method returns the SAML Ticket provided in the URL of the request. + * @return The SAML ticket. + * @private + */ + function getSA() + { return 'ST'.substr($this->_sa, 2); } + + /** + * This method stores the SAML Ticket. + * @param $sa The SAML Ticket. + * @private + */ + function setSA($sa) + { $this->_sa = $sa; } + + /** + * This method tells if a SAML Ticket was stored. + * @return TRUE if a SAML Ticket has been stored. + * @private + */ + function hasSA() + { return !empty($this->_sa); } + /** @} */ // ######################################################################## // PT VALIDATION @@ -2433,8 +2483,8 @@ class CASClient */ /** - * This method is used to validate a PT; halt on failure - * + * This method is used to validate a ST or PT; halt on failure + * Used for all CAS 2.0 validations * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). * * @private @@ -2447,7 +2497,7 @@ class CASClient if ( $this->isProxy() ) { // pass the callback url for CAS proxies - $validate_url .= '&pgtUrl='.$this->getCallbackURL(); + $validate_url .= '&pgtUrl='.urlencode($this->getCallbackURL()); } // open and read the URL @@ -2514,6 +2564,7 @@ class CASClient $text_response); } + $this->renameSession($this->getPT()); // at this step, PT has been validated and $this->_user has been set, phpCAS::traceEnd(TRUE); @@ -2586,25 +2637,43 @@ class CASClient } } - $php_is_for_sissies = split("\?", $_SERVER['REQUEST_URI'], 2); - $final_uri .= $php_is_for_sissies[0]; - if(sizeof($php_is_for_sissies) > 1){ - $cgi_params = '?' . $php_is_for_sissies[1]; - } else { - $cgi_params = '?'; + $request_uri = explode('?', $_SERVER['REQUEST_URI'], 2); + $final_uri .= $request_uri[0]; + + if (isset($request_uri[1]) && $request_uri[1]) + { + $query_string = $this->removeParameterFromQueryString('ticket', $request_uri[1]); + + // If the query string still has anything left, append it to the final URI + if ($query_string !== '') + $final_uri .= "?$query_string"; + } - // remove the ticket if present in the CGI parameters - $cgi_params = preg_replace('/&ticket=[^&]*/','',$cgi_params); - $cgi_params = preg_replace('/\?ticket=[^&;]*/','?',$cgi_params); - $cgi_params = preg_replace('/\?%26/','?',$cgi_params); - $cgi_params = preg_replace('/\?&/','?',$cgi_params); - $cgi_params = preg_replace('/\?$/','',$cgi_params); - $final_uri .= $cgi_params; + + phpCAS::trace("Final URI: $final_uri"); $this->setURL($final_uri); } phpCAS::traceEnd($this->_url); return $this->_url; - } + } + + + + /** + * Removes a parameter from a query string + * + * @param string $parameterName + * @param string $queryString + * @return string + * + * @link http://stackoverflow.com/questions/1842681/regular-expression-to-remove-one-parameter-from-query-string + */ + function removeParameterFromQueryString($parameterName, $queryString) + { + $parameterName = preg_quote($parameterName); + return preg_replace("/&$parameterName(=[^&]*)?|^$parameterName(=[^&]*)?&?/", '', $queryString); + } + /** * This method sets the URL of the current request @@ -2641,7 +2710,7 @@ class CASClient phpCAS::traceBegin(); $this->printHTMLHeader($this->getString(CAS_STR_AUTHENTICATION_FAILED)); - printf($this->getString(CAS_STR_YOU_WERE_NOT_AUTHENTICATED),$this->getURL(),$_SERVER['SERVER_ADMIN']); + printf($this->getString(CAS_STR_YOU_WERE_NOT_AUTHENTICATED),htmlentities($this->getURL()),$_SERVER['SERVER_ADMIN']); phpCAS::trace('CAS URL: '.$cas_url); phpCAS::trace('Authentication failure: '.$failure); if ( $no_response ) { diff --git a/plugins/CasAuthentication/locale/CasAuthentication.pot b/plugins/CasAuthentication/locale/CasAuthentication.pot index 20a2bf2330..bcce549aef 100644 --- a/plugins/CasAuthentication/locale/CasAuthentication.pot +++ b/plugins/CasAuthentication/locale/CasAuthentication.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,15 +16,38 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: CasAuthenticationPlugin.php:82 +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 msgid "CAS" msgstr "" -#: CasAuthenticationPlugin.php:83 -msgid "Login or register with CAS" +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." msgstr "" -#: CasAuthenticationPlugin.php:150 +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "" + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "" + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 msgid "" "The CAS Authentication plugin allows for StatusNet to handle authentication " "through CAS (Central Authentication Service)." @@ -33,3 +56,11 @@ msgstr "" #: caslogin.php:28 msgid "Already logged in." msgstr "" + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "" + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" diff --git a/plugins/CasAuthentication/locale/be-tarask/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/be-tarask/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..d102fe3a47 --- /dev/null +++ b/plugins/CasAuthentication/locale/be-tarask/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - CasAuthentication to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Увайсьці ці зарэгістравацца з CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(Маеце рахунак з CAS? Паспрабуйце наш [уваход CAS](%%action.caslogin%%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Неабходна пазначыць сэрвэр." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Неабходна пазначыць порт." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Неабходна пазначыць шлях." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Дапаўненьне аўтэнтыфікацыі CAS дазваляе StatusNet апрацоўваць аўтэнтыфікацыю " +"праз CAS (цэнтральны сэрвіс аўтэнтыфікацыі)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Ужо ўвайшлі ў сыстэму." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Няслушнае імя карыстальніка ці пароль." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "Памылка ўстаноўкі удзельніка. Верагодна Вы не аўтарызаваны." diff --git a/plugins/CasAuthentication/locale/de/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/de/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..fdde1086d1 --- /dev/null +++ b/plugins/CasAuthentication/locale/de/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - CasAuthentication to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Michael +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "" + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "" + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "" + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Bereits angemeldet." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "" + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" diff --git a/plugins/CasAuthentication/locale/es/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/es/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..a724686808 --- /dev/null +++ b/plugins/CasAuthentication/locale/es/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - CasAuthentication to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Inicia sesión o regístrate con CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(¿Tienes una cuenta con CAS? Prueba nuestro [Inicio de usuario CAS](%%action." +"caslogin%%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Se requiere especificar un servidor." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Se requiere especificar un servidor." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Se requiere especificar una ruta." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"La extensión de Autenticación CAS permite a StatusNet manejar autenticación " +"a través de CAS (Servicio de Autenticación Central)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Ya has iniciado sesión" + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Nombre de usuario o contraseña incorrectos." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "Error al configurar el usuario. Posiblemente no tengas autorización." diff --git a/plugins/CasAuthentication/locale/fr/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/fr/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..2d40030f27 --- /dev/null +++ b/plugins/CasAuthentication/locale/fr/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,77 @@ +# Translation of StatusNet - CasAuthentication to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "Service d’authentification central (SAC)" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Se connecter ou s’inscrire via le SAC." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(Vous avez un compte authentifié SAC ? Essayez notre [connexion SAC](%%" +"action.caslogin%%) !)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "La spécification d’un serveur est nécessaire." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "La spécification d’un port est nécessaire." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "La spécification d’un chemin d’accès est nécessaire." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Le greffon d’authentification SAC permet à StatusNet de gérer " +"l’authentification par SAC (Service central d’authentification)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Déjà connecté." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Erreur lors de la définition de l’utilisateur. Vous n’êtes probablement pas " +"autorisé." diff --git a/plugins/CasAuthentication/locale/gl/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/gl/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..76d62f0008 --- /dev/null +++ b/plugins/CasAuthentication/locale/gl/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,73 @@ +# Translation of StatusNet - CasAuthentication to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "" + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "" + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "" + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Xa se identificou." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Nome de usuario ou contrasinal incorrectos." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Houbo un erro ao configurar o usuario. Probablemente non estea autorizado " +"para facelo." diff --git a/plugins/CasAuthentication/locale/ia/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/ia/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..12d00394d7 --- /dev/null +++ b/plugins/CasAuthentication/locale/ia/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,77 @@ +# Translation of StatusNet - CasAuthentication to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Aperir session o crear conto via CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(Tu ha un conto de CAS? Essaya nostre [authentication CAS](%%action.caslogin%" +"%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Specificar un servitor es necessari." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Specificar un porto es necessari." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Specificar un cammino es necessari." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Le plug-in de authentication CAS permitte que StatusNet manea le " +"authentication via CAS (Central Authentication Service, servicio central de " +"authentication)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Nomine de usator o contrasigno incorrecte." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Error de acceder al conto de usator. Tu probabilemente non es autorisate." diff --git a/plugins/CasAuthentication/locale/mk/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/mk/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..77ef387afb --- /dev/null +++ b/plugins/CasAuthentication/locale/mk/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - CasAuthentication to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Најава или регистрација со CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(Имате сметка на CAS? Пробајте ја нашата [најава со CAS](%%action.caslogin%" +"%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Мора да се назначи опслужувач." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Мора да се назначи порта." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Мора да се назначи патека." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Приклучокот за потврда CAS му овозможува на StatusNet да работи со потврди " +"преку CAS (Central Authentication Service - „Служба за централно " +"потврдување“)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Веќе сте најавени." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Мора да се назначи корисничко име и лозинка." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "Грешка при поставувањето на корисникот. Веројатно не сте потврдени." diff --git a/plugins/CasAuthentication/locale/nl/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/nl/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..062efe4d99 --- /dev/null +++ b/plugins/CasAuthentication/locale/nl/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - CasAuthentication to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Aanmelden of registreren via CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"Hebt u een gebruiker met CAS? [Meld u dan aan met CAS](%%action.caslogin%%)!" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Het aangeven van een server is vereist." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Het aangeven van een poort is vereist." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Het aangeven van een pad is vereist." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"De plugin CAS Authentication stelt StatusNet in staat authenticatie via CAS " +"after handelen (Central Authentication Service)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "U bent al aangemeld." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "De gebruikersnaam of wachtwoord is onjuist." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Er is een fout opgetreden bij het maken van de instellingen. U hebt " +"waarschijnlijk niet de juiste rechten." diff --git a/plugins/CasAuthentication/locale/pt_BR/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/pt_BR/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..fc123e8baa --- /dev/null +++ b/plugins/CasAuthentication/locale/pt_BR/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,73 @@ +# Translation of StatusNet - CasAuthentication to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Luckas Blade +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "" + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "É necessário especificar um servidor." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "É necessário especificar uma porta." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Já está autenticado." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Nome de usuário e/ou senha incorreto(s)." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Erro na configuração do usuário. Você provavelmente não tem autorização." diff --git a/plugins/CasAuthentication/locale/ru/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/ru/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..6f00f55863 --- /dev/null +++ b/plugins/CasAuthentication/locale/ru/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,77 @@ +# Translation of StatusNet - CasAuthentication to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Войти или зарегистрироваться через CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +"(Имеете учётную запись в CAS? Попробуйте [войти через него](%%action.caslogin" +"%%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Необходимо указать сервер." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Необходимо указать порт." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Необходимо указать путь." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Плагин аутентификации через CAS позволяет StatusNet обрабатывать " +"аутентификацию через CAS (централизованную службу аутентификации, англ. " +"Central Authentication Service)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Вы уже вошли." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Неверное имя пользователя или пароль." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "Ошибка установки пользователя. Вы, вероятно, не авторизованы." diff --git a/plugins/CasAuthentication/locale/te/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/te/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..431faf0b6d --- /dev/null +++ b/plugins/CasAuthentication/locale/te/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - CasAuthentication to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "" + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "" + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "" + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "ఇప్పటికే లోనికి ప్రవేశించారు." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "వాడుకరిపేరు లేదా సంకేతపదం తప్పు." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "" diff --git a/plugins/CasAuthentication/locale/uk/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/uk/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..1af21acb0d --- /dev/null +++ b/plugins/CasAuthentication/locale/uk/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,74 @@ +# Translation of StatusNet - CasAuthentication to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "CAS" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "Увійти або зареєструватися з CAS." + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "Маєте акаунт CAS? Спробуйте наш [вхід CAS](%%action.caslogin%%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "Необхідно зазначити сервер." + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "Необхідно зазначити порт." + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "Необхідно зазначити шлях." + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "" +"Додаток автентифікації CAS дозволяє входити на сайт StatusNet за допомогою " +"CAS (центрального сервісу автентифікації)." + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "Тепер ви увійшли." + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "Неточне ім’я або пароль." + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "Помилка налаштувань користувача. Можливо, ви не авторизовані." diff --git a/plugins/CasAuthentication/locale/zh_CN/LC_MESSAGES/CasAuthentication.po b/plugins/CasAuthentication/locale/zh_CN/LC_MESSAGES/CasAuthentication.po new file mode 100644 index 0000000000..bf9e9d91ac --- /dev/null +++ b/plugins/CasAuthentication/locale/zh_CN/LC_MESSAGES/CasAuthentication.po @@ -0,0 +1,73 @@ +# Translation of StatusNet - CasAuthentication to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - CasAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:37+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-casauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:83 +msgid "CAS" +msgstr "中央鉴权服务" + +#. TRANS: Tooltip for menu item. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:85 +msgid "Login or register with CAS." +msgstr "登录或注册到中央鉴权服务" + +#. TRANS: Invitation to users with a CAS account to log in using the service. +#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL. +#. TRANS: These two elements may not be separated. +#: CasAuthenticationPlugin.php:101 +#, php-format +msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)" +msgstr "" +" (已有中央鉴权服务帐号?尝试使用 [中央鉴权登录](%%action.caslogin%%)!)" + +#: CasAuthenticationPlugin.php:128 +msgid "Specifying a server is required." +msgstr "需要指定一个服务器" + +#: CasAuthenticationPlugin.php:131 +msgid "Specifying a port is required." +msgstr "需要指定一个端口" + +#: CasAuthenticationPlugin.php:134 +msgid "Specifying a path is required." +msgstr "需要指定一个路径" + +#. TRANS: Plugin description. CAS is Central Authentication Service. +#: CasAuthenticationPlugin.php:154 +msgid "" +"The CAS Authentication plugin allows for StatusNet to handle authentication " +"through CAS (Central Authentication Service)." +msgstr "中央鉴权插件可以使StatusNet使用中央鉴权服务进行登录鉴权。" + +#: caslogin.php:28 +msgid "Already logged in." +msgstr "已登录。" + +#: caslogin.php:39 +msgid "Incorrect username or password." +msgstr "用户名或密码错误" + +#: caslogin.php:45 +msgid "Error setting user. You are probably not authorized." +msgstr "设置用户时出错。你可能没有通过鉴权。" diff --git a/plugins/ClientSideShorten/ClientSideShortenPlugin.php b/plugins/ClientSideShorten/ClientSideShortenPlugin.php index 3da08e05da..65e27a0374 100644 --- a/plugins/ClientSideShorten/ClientSideShortenPlugin.php +++ b/plugins/ClientSideShorten/ClientSideShortenPlugin.php @@ -73,9 +73,7 @@ class ClientSideShortenPlugin extends Plugin 'author' => 'Craig Andrews', 'homepage' => 'http://status.net/wiki/Plugin:ClientSideShorten', 'rawdescription' => - _m('ClientSideShorten causes the web interface\'s notice form to automatically shorten urls as they entered, and before the notice is submitted.')); + _m('ClientSideShorten causes the web interface\'s notice form to automatically shorten URLs as they entered, and before the notice is submitted.')); return true; } - } - diff --git a/plugins/ClientSideShorten/locale/ClientSideShorten.pot b/plugins/ClientSideShorten/locale/ClientSideShorten.pot index 83caff3221..626873f306 100644 --- a/plugins/ClientSideShorten/locale/ClientSideShorten.pot +++ b/plugins/ClientSideShorten/locale/ClientSideShorten.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,7 +19,7 @@ msgstr "" #: ClientSideShortenPlugin.php:74 msgid "" "ClientSideShorten causes the web interface's notice form to automatically " -"shorten urls as they entered, and before the notice is submitted." +"shorten URLs as they entered, and before the notice is submitted." msgstr "" #: shorten.php:55 diff --git a/plugins/ClientSideShorten/locale/be-tarask/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/be-tarask/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..c90e836f5d --- /dev/null +++ b/plugins/ClientSideShorten/locale/be-tarask/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten прымушае ўэб-інтэрфэйс аўтаматычна скарачаць URL-адрасы " +"падчас уводу да таго, як паведамленьне будзе адпраўленае." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Павінен быць пазначаны аргумэнт «text»." diff --git a/plugins/ClientSideShorten/locale/br/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/br/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..337cdfb38a --- /dev/null +++ b/plugins/ClientSideShorten/locale/br/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ClientSideShorten to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Spisaet e rank bezañ an arguzenn \"testenn\"." diff --git a/plugins/ClientSideShorten/locale/de/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/de/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..cf0f720bae --- /dev/null +++ b/plugins/ClientSideShorten/locale/de/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - ClientSideShorten to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten sorgt dafür, dass in die Nachrichtenbox eingegebene URLs " +"sofort gekürzt werden, noch bevor die Nachricht gespeichert wird." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Das „text“-Argument muss angegeben werden." diff --git a/plugins/ClientSideShorten/locale/es/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/es/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..4b0c9b55c7 --- /dev/null +++ b/plugins/ClientSideShorten/locale/es/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten hace que el formulario de mensaje de la interfaz web " +"acorte las URL automáticamente conforme se introducen t antes de que se " +"envíe el mensaje." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Debe especificarse el argumento 'texto'." diff --git a/plugins/ClientSideShorten/locale/fr/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/fr/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..8cac015807 --- /dev/null +++ b/plugins/ClientSideShorten/locale/fr/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - ClientSideShorten to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten fait en sorte que le formulaire d’avis de l’interface " +"raccourcisse automatiquement les URL lorsqu’elles sont saisies, avant que " +"l’avis ne soit soumis." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "L’argument « text » doit être spécifié." diff --git a/plugins/ClientSideShorten/locale/he/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/he/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..2d37093418 --- /dev/null +++ b/plugins/ClientSideShorten/locale/he/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - ClientSideShorten to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"התוסף ClientSideShorten (קיצור מצד הלקוח) גורם לטופס ההתרעה שבמנשק המשתמש " +"לקצר אוטומטית כתובות כאשר הן מוזנות ולפני שההתרעה נשלחת." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "יש ציין את המשתנה 'text'" diff --git a/plugins/ClientSideShorten/locale/ia/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/ia/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..3fa272a20c --- /dev/null +++ b/plugins/ClientSideShorten/locale/ia/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - ClientSideShorten to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten causa que le formulario web pro entrar notas abbrevia " +"automaticamente le adresses URL a lor entrata, e ante le submission del nota." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Le parametro 'text' debe esser specificate." diff --git a/plugins/ClientSideShorten/locale/id/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/id/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..ba7bbed979 --- /dev/null +++ b/plugins/ClientSideShorten/locale/id/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten menyebabkan bentuk pemberitahuan antarmuka web untuk " +"memendekkan URL secara otomatis ketika dimasukkan, dan sebelum pemberitahuan " +"dikirim." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Argumen 'text' harus disebutkan." diff --git a/plugins/ClientSideShorten/locale/mk/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/mk/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..cf2278ca4b --- /dev/null +++ b/plugins/ClientSideShorten/locale/mk/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"Со ClientSideShorten, образецот за забелешки во мрежниот посредник " +"автоматски ги скратува URL-адресите при самото нивно внесување, и пред да се " +"поднесе забелешката." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Мора да се назначи аргументот „text“." diff --git a/plugins/ClientSideShorten/locale/nb/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/nb/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..186e877eac --- /dev/null +++ b/plugins/ClientSideShorten/locale/nb/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - ClientSideShorten to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten fører til at nettgrensesnittets notisskjema automatisk " +"forkorter URL-er mens de skrives inn, og før notisen sendes inn." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "'text'-argument må spesifiseres." diff --git a/plugins/ClientSideShorten/locale/nl/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/nl/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..eb813c0015 --- /dev/null +++ b/plugins/ClientSideShorten/locale/nl/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten zorgt dat URLs die worden ingegeven in het " +"mededelingenformulier automatisch worden ingekort tijdens het invoeren en " +"voordat de mededeling wordt opgeslagen." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Het argument 'text' moet aangegeven worden." diff --git a/plugins/ClientSideShorten/locale/ru/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/ru/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..998698867e --- /dev/null +++ b/plugins/ClientSideShorten/locale/ru/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - ClientSideShorten to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"Плагин ClientSideShorten производит автоматически сокращать URL-адреса при " +"вводе в форму веб-интерфейса перед отправкой записи." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Должен быть указан параметр «text»." diff --git a/plugins/ClientSideShorten/locale/tl/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/tl/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..89d9c35447 --- /dev/null +++ b/plugins/ClientSideShorten/locale/tl/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - ClientSideShorten to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"Ang ClientSideShorten ay nakapagsasanhi sa pormularyo ng pabatid ng ugnayang-" +"mukha ng web na kusang paiksiin ang mga URL habang ipinapasok sila, at bago " +"ipasa ang pabatid." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "dapat tukuyin ang argumento ng 'teksto'." diff --git a/plugins/ClientSideShorten/locale/uk/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/uk/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..59568f2435 --- /dev/null +++ b/plugins/ClientSideShorten/locale/uk/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,37 @@ +# Translation of StatusNet - ClientSideShorten to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"ClientSideShorten зазначає, чи будуть автоматично скорочуватись URL-адреси " +"при використанні веб-інтерфейсу для надсилання допису на сайт до того, як " +"допис буде надіслано." + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "Аргумент «text» має бути зазначено." diff --git a/plugins/ClientSideShorten/locale/zh_CN/LC_MESSAGES/ClientSideShorten.po b/plugins/ClientSideShorten/locale/zh_CN/LC_MESSAGES/ClientSideShorten.po new file mode 100644 index 0000000000..d846ae50ad --- /dev/null +++ b/plugins/ClientSideShorten/locale/zh_CN/LC_MESSAGES/ClientSideShorten.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - ClientSideShorten to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ClientSideShorten\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:38+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-clientsideshorten\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ClientSideShortenPlugin.php:74 +msgid "" +"ClientSideShorten causes the web interface's notice form to automatically " +"shorten URLs as they entered, and before the notice is submitted." +msgstr "" +"客户端短网址(ClientSideShorten )将在消息发布前自动在网页界面下缩短输入的网" +"址。" + +#: shorten.php:55 +msgid "'text' argument must be specified." +msgstr "需要定义'text' 变量。" diff --git a/plugins/ClientSideShorten/shorten.php b/plugins/ClientSideShorten/shorten.php index f67cbf3b28..53c2cf5d1a 100644 --- a/plugins/ClientSideShorten/shorten.php +++ b/plugins/ClientSideShorten/shorten.php @@ -41,7 +41,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ShortenAction extends Action { private $text; @@ -66,4 +65,3 @@ class ShortenAction extends Action print $shortened_text; } } - diff --git a/plugins/Comet/CometPlugin.php b/plugins/Comet/CometPlugin.php index 29cb3004bf..70b324b5c2 100644 --- a/plugins/Comet/CometPlugin.php +++ b/plugins/Comet/CometPlugin.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/plugins/Realtime/RealtimePlugin.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class CometPlugin extends RealtimePlugin { public $server = null; @@ -104,4 +103,15 @@ class CometPlugin extends RealtimePlugin } return '/' . implode('/', $path); } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Comet', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Comet', + 'rawdescription' => + _m('Plugin to do "real time" updates using Comet/Bayeux.')); + return true; + } } diff --git a/plugins/Comet/README b/plugins/Comet/README index 4abd40af7a..f6e840b6af 100644 --- a/plugins/Comet/README +++ b/plugins/Comet/README @@ -6,7 +6,10 @@ NOTE: this is an insecure version; don't roll it out on a production server. It requires a cometd server. I've only had the cometd-java server work -correctly; something's wiggy with the Twisted-based server. +correctly; something's wiggy with the Twisted-based server. See here +for help setting up a comet server: + + http://cometd.org/ After you have a cometd server installed, just add this code to your config.php: diff --git a/plugins/Comet/locale/Comet.pot b/plugins/Comet/locale/Comet.pot new file mode 100644 index 0000000000..8cbf1613a0 --- /dev/null +++ b/plugins/Comet/locale/Comet.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" diff --git a/plugins/Comet/locale/be-tarask/LC_MESSAGES/Comet.po b/plugins/Comet/locale/be-tarask/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..9a6781f584 --- /dev/null +++ b/plugins/Comet/locale/be-tarask/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Дапаўненьне для абнаўленьняў у «рэальным часе» з выкарыстаньнем Comet/Bayeux." diff --git a/plugins/Comet/locale/br/LC_MESSAGES/Comet.po b/plugins/Comet/locale/br/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..3e77022c37 --- /dev/null +++ b/plugins/Comet/locale/br/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Un astenn evit ober hizivadennoù \"war ar prim\" en ur implijout Comet/" +"Bayeux." diff --git a/plugins/Comet/locale/de/LC_MESSAGES/Comet.po b/plugins/Comet/locale/de/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..b52da76d3f --- /dev/null +++ b/plugins/Comet/locale/de/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plugin für Echtzeit-Aktualisierungen mit Comet/Bayeux." diff --git a/plugins/Comet/locale/es/LC_MESSAGES/Comet.po b/plugins/Comet/locale/es/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..b85b05f40c --- /dev/null +++ b/plugins/Comet/locale/es/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Extensión para hacer actualizaciones en \"tiempo real\" utilizando Comet/" +"Bayeux." diff --git a/plugins/Comet/locale/fr/LC_MESSAGES/Comet.po b/plugins/Comet/locale/fr/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..2489be7954 --- /dev/null +++ b/plugins/Comet/locale/fr/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Extension pour réaliser des mises à jour « en temps réel » en utilisant Comet/" +"Bayeux." diff --git a/plugins/Comet/locale/he/LC_MESSAGES/Comet.po b/plugins/Comet/locale/he/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..5039f01385 --- /dev/null +++ b/plugins/Comet/locale/he/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "תוסף לביצוע עדכונים \"בזמן אמת\" באמצעות Comet/Bayeux." diff --git a/plugins/Comet/locale/ia/LC_MESSAGES/Comet.po b/plugins/Comet/locale/ia/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..e74cb999f9 --- /dev/null +++ b/plugins/Comet/locale/ia/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plug-in pro facer actualisationes \"in directo\" usante Comet/Bayeux." diff --git a/plugins/Comet/locale/id/LC_MESSAGES/Comet.po b/plugins/Comet/locale/id/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..12c5ed726a --- /dev/null +++ b/plugins/Comet/locale/id/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Pengaya untuk membuat pemutakhiran langsung menggunakan Comet/Bayeux." diff --git a/plugins/Comet/locale/mk/LC_MESSAGES/Comet.po b/plugins/Comet/locale/mk/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..b03591de91 --- /dev/null +++ b/plugins/Comet/locale/mk/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Приклучок за вршење на поднови „во живо“ со Comet/Bayeux." diff --git a/plugins/Comet/locale/nb/LC_MESSAGES/Comet.po b/plugins/Comet/locale/nb/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..d1212757f5 --- /dev/null +++ b/plugins/Comet/locale/nb/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Utvidelse for å gjøre «sanntids»-oppdateringer med Comet/Bayeux." diff --git a/plugins/Comet/locale/nl/LC_MESSAGES/Comet.po b/plugins/Comet/locale/nl/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..d92d013dfa --- /dev/null +++ b/plugins/Comet/locale/nl/LC_MESSAGES/Comet.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - Comet to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plug-in om \"real time\" updates te brengen via Comet/Bayeux." diff --git a/plugins/Comet/locale/pt/LC_MESSAGES/Comet.po b/plugins/Comet/locale/pt/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..581f198f56 --- /dev/null +++ b/plugins/Comet/locale/pt/LC_MESSAGES/Comet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - Comet to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Plugin para fazer actualizações em \"tempo real\" utilizando Comet/Bayeux." diff --git a/plugins/Comet/locale/pt_BR/LC_MESSAGES/Comet.po b/plugins/Comet/locale/pt_BR/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..1ba0a38181 --- /dev/null +++ b/plugins/Comet/locale/pt_BR/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Plugin para realizar atualizações em \"tempo real\" usando Comet/Bayeux." diff --git a/plugins/Comet/locale/ru/LC_MESSAGES/Comet.po b/plugins/Comet/locale/ru/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..b41179e7cd --- /dev/null +++ b/plugins/Comet/locale/ru/LC_MESSAGES/Comet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - Comet to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Плагин для обновлений в «реальном времени» с помощью Comet/Bayeux." diff --git a/plugins/Comet/locale/tl/LC_MESSAGES/Comet.po b/plugins/Comet/locale/tl/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..1c48ad7c5b --- /dev/null +++ b/plugins/Comet/locale/tl/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Pamasak upang makagawa ng mga pagsasapanahong nasa \"tunay na panahon\" na " +"ginagamitan ng Comet/Bayeux." diff --git a/plugins/Comet/locale/uk/LC_MESSAGES/Comet.po b/plugins/Comet/locale/uk/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..9fd469027f --- /dev/null +++ b/plugins/Comet/locale/uk/LC_MESSAGES/Comet.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Comet to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Додаток для оновлення стрічки у «реальному часі» використовуючи Comet/Bayeux." diff --git a/plugins/Comet/locale/zh_CN/LC_MESSAGES/Comet.po b/plugins/Comet/locale/zh_CN/LC_MESSAGES/Comet.po new file mode 100644 index 0000000000..39472f8bf1 --- /dev/null +++ b/plugins/Comet/locale/zh_CN/LC_MESSAGES/Comet.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - Comet to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Comet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-comet\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: CometPlugin.php:114 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "通过 Comet/Bayeux 实现“实时更新”的插件。" diff --git a/plugins/DirectionDetector/DirectionDetectorPlugin.php b/plugins/DirectionDetector/DirectionDetectorPlugin.php index b1362b166f..4a38f390f1 100644 --- a/plugins/DirectionDetector/DirectionDetectorPlugin.php +++ b/plugins/DirectionDetector/DirectionDetectorPlugin.php @@ -18,210 +18,253 @@ * * @category Plugin * @package StatusNet - * @author Behrooz shabani (everplays) - <behrooz@rock.com> + * @author Behrooz shabani (everplays) - <behrooz@rock.com> * @copyright 2009-2010 Behrooz shabani * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * */ if (!defined('STATUSNET')) { - exit(1); + exit(1); } -define('DIRECTIONDETECTORPLUGIN_VERSION', '0.1.2'); +define('DIRECTIONDETECTORPLUGIN_VERSION', '0.2.0'); class DirectionDetectorPlugin extends Plugin { - /** - * SN plugin API, here we will make changes on rendered column - * - * @param object $notice notice is going to be saved - */ - public function onStartNoticeSave(&$notice){ - if(!preg_match('/<span class="rtl">/', $notice->rendered) && self::isRTL($notice->content)) - $notice->rendered = '<span class="rtl">'.$notice->rendered.'</span>'; - return true; - } + /** + * SN plugin API, here we will make changes on rendered column + * + * @param object $notice notice is going to be saved + */ + public function onStartNoticeSave($notice){ + if(!preg_match('/<span class="rtl">/', $notice->rendered) && self::isRTL($notice->content)) + $notice->rendered = '<span class="rtl">'.$notice->rendered.'</span>'; + return true; + } - /** - * SN plugin API, here we will add css needed for modifiyed rendered - * - * @param - */ - public function onEndShowStatusNetStyles($xml){ - $xml->element('style', array('type' => 'text/css'), 'span.rtl {display:block;direction:rtl;text-align:right;float:right;width:490px;} .notice .author {float:left}'); - } - /** - * checks that passed string is a RTL language or not - * - * @param string $str String to be checked - */ - public static function isRTL($str){ - self::getClearText($str); - if( is_array($cc = self::utf8ToUnicode(mb_substr($str, 0, 1, 'utf-8'))) ) - $cc = $cc[0]; - else - return false; - if($cc>=1536 && $cc<=1791) // Arabic, Persian, Urdu, Kurdish, ... - return true; - if($cc>=65136 && $cc<=65279) // Arabic peresent 2 - return true; - if($cc>=64336 && $cc<=65023) // Arabic peresent 1 - return true; - if($cc>=1424 && $cc<=1535) // Hebrew - return true; - if($cc>=64256 && $cc<=64335) // Hebrew peresent - return true; - if($cc>=1792 && $cc<=1871) // Syriac - return true; - if($cc>=1920 && $cc<=1983) // Thaana - return true; - if($cc>=1984 && $cc<=2047) // NKo - return true; - if($cc>=11568 && $cc<=11647) // Tifinagh - return true; - return false; - } + /** + * SN plugin API, here we will add css needed for modifiyed rendered + * + * @param Action $xml + */ + public function onEndShowStatusNetStyles($xml){ + $xml->element('style', array('type' => 'text/css'), 'span.rtl {display:block;direction:rtl;text-align:right;float:right;} .notice .author {float:left}'); + } - /** - * clears text from replies, tags, groups, repeats & whitespaces - * - * @param string &$str string to be cleared - */ - private static function getClearText(&$str){ - $str = preg_replace('/@[^ ]+|![^ ]+|#[^ ]+/u', '', $str); // reply, tag, group - $str = preg_replace('/^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]/u', '', $str); // redent, retweet - $str = preg_replace("/[ \r\t\n]+/", ' ', trim($str)); // remove spaces - } + /** + * is passed string a rtl content or not + * + * @param string $content + * @return boolean + */ + public static function isRTL($content){ + $content = self::getClearText($content); + $words = explode(' ', $content); + $rtl = 0; + foreach($words as $str) + if(self::startsWithRTLCharacter($str)) + $rtl++; + else + $rtl--; + if($rtl>0)// if number of rtl words is more than ltr words so it's a rtl content + return true; + elseif($rtl==0) + // check first word again + return self::startsWithRTLCharacter($words[0]); + return false; + } - /** - * Takes a UTF-8 string and returns an array of ints representing the - * Unicode characters. Astral planes are supported i.e. the ints in the - * output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates - * are not allowed. ### modified ### returns first character code - * - * Returns false if the input string isn't a valid UTF-8 octet sequence. - */ - private static function utf8ToUnicode($str){ - $mState = 0; // cached expected number of octets after the current octet - // until the beginning of the next UTF8 character sequence - $mUcs4 = 0; // cached Unicode character - $mBytes = 1; // cached expected number of octets in the current sequence - $out = array(); - $len = strlen($str); + /** + * checks that passed string starts with a RTL language or not + * + * @param string $str + * @return boolean + */ + public static function startsWithRTLCharacter($str){ + if (strlen($str) < 1) { + return false; + } + if( is_array($cc = self::utf8ToUnicode(mb_substr($str, 0, 1, 'utf-8'))) ) + $cc = $cc[0]; + else + return false; + if($cc>=1536 && $cc<=1791) // arabic, persian, urdu, kurdish, ... + return true; + if($cc>=65136 && $cc<=65279) // arabic peresent 2 + return true; + if($cc>=64336 && $cc<=65023) // arabic peresent 1 + return true; + if($cc>=1424 && $cc<=1535) // hebrew + return true; + if($cc>=64256 && $cc<=64335) // hebrew peresent + return true; + if($cc>=1792 && $cc<=1871) // Syriac + return true; + if($cc>=1920 && $cc<=1983) // Thaana + return true; + if($cc>=1984 && $cc<=2047) // NKo + return true; + if($cc>=11568 && $cc<=11647) // Tifinagh + return true; + return false; + } - for($i = 0; $i < $len; $i++) { - $in = ord($str{$i}); - if (0 == $mState) { - // When mState is zero we expect either a US-ASCII character or a - // multi-octet sequence. - if (0 == (0x80 & ($in))) { - // US-ASCII, pass straight through. - $out[] = $in; - $mBytes = 1; - } elseif (0xC0 == (0xE0 & ($in))) { - // First octet of 2 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x1F) << 6; - $mState = 1; - $mBytes = 2; - } elseif (0xE0 == (0xF0 & ($in))) { - // First octet of 3 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x0F) << 12; - $mState = 2; - $mBytes = 3; - } elseif (0xF0 == (0xF8 & ($in))) { - // First octet of 4 octet sequence - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x07) << 18; - $mState = 3; - $mBytes = 4; - } elseif (0xF8 == (0xFC & ($in))) { - /* First octet of 5 octet sequence. - * - * This is illegal because the encoded codepoint must be either - * (a) not the shortest form or - * (b) outside the Unicode range of 0-0x10FFFF. - * Rather than trying to resynchronize, we will carry on until the end - * of the sequence and let the later error handling code catch it. - */ - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 0x03) << 24; - $mState = 4; - $mBytes = 5; - } elseif (0xFC == (0xFE & ($in))) { - // First octet of 6 octet sequence, see comments for 5 octet sequence. - $mUcs4 = ($in); - $mUcs4 = ($mUcs4 & 1) << 30; - $mState = 5; - $mBytes = 6; - } else { - /* Current octet is neither in the US-ASCII range nor a legal first - * octet of a multi-octet sequence. - */ - return false; - } - } else { - // When mState is non-zero, we expect a continuation of the multi-octet - // sequence - if (0x80 == (0xC0 & ($in))) { - // Legal continuation. - $shift = ($mState - 1) * 6; - $tmp = $in; - $tmp = ($tmp & 0x0000003F) << $shift; - $mUcs4 |= $tmp; - if (0 == --$mState) { - /* End of the multi-octet sequence. mUcs4 now contains the final - * Unicode codepoint to be output - * - * Check for illegal sequences and codepoints. - */ - // From Unicode 3.1, non-shortest form is illegal - if ( - ((2 == $mBytes) && ($mUcs4 < 0x0080)) || - ((3 == $mBytes) && ($mUcs4 < 0x0800)) || - ((4 == $mBytes) && ($mUcs4 < 0x10000)) || - (4 < $mBytes) || - // From Unicode 3.2, surrogate characters are illegal - (($mUcs4 & 0xFFFFF800) == 0xD800) || - // Codepoints outside the Unicode range are illegal - ($mUcs4 > 0x10FFFF) - ){ - return false; - } - if (0xFEFF != $mUcs4) { - $out[] = $mUcs4; - } - //initialize UTF8 cache - $mState = 0; - $mUcs4 = 0; - $mBytes = 1; - } - } else { - /* ((0xC0 & (*in) != 0x80) && (mState != 0)) - * - * Incomplete multi-octet sequence. - */ - return false; - } - } - } - return $out; - } + /** + * clears text from replys, tags, groups, reteets & whitespaces + * + * @param string $str + * @return string + */ + private static function getClearText($str){ + $str = preg_replace('/@[^ ]+|![^ ]+|#[^ ]+/u', '', $str); // reply, tag, group + $str = preg_replace('/^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]/u', '', $str); // redent, retweet + $str = preg_replace("/[ \r\t\n]+/", ' ', trim($str)); // remove spaces + return $str; + } - /** - * plugin details - */ - function onPluginVersion(&$versions){ - $versions[] = array( - 'name' => 'Direction detector', - 'version' => DIRECTIONDETECTORPLUGIN_VERSION, - 'author' => 'Behrooz Shabani', - // TRANS: Direction detector plugin description. - 'rawdescription' => _m('Shows notices with right-to-left content in correct direction.') - ); - return true; - } + /** + * adds javascript to do same thing on input textarea + * + * @param Action $action + */ + function onEndShowScripts($action){ + if (common_logged_in()) { + $action->script('plugins/DirectionDetector/jquery.DirectionDetector.js'); + } + } + + /** + * Takes an UTF-8 string and returns an array of ints representing the + * Unicode characters. Astral planes are supported ie. the ints in the + * output can be > 0xFFFF. O$ccurrances of the BOM are ignored. Surrogates + * are not allowed. + * + * @param string $str + * @return mixed array of ints, or false on invalid input + */ + private static function utf8ToUnicode($str){ + $mState = 0; // cached expected number of octets after the current octet + // until the beginning of the next UTF8 character sequence + $mUcs4 = 0; // cached Unicode character + $mBytes = 1; // cached expected number of octets in the current sequence + $out = array(); + $len = strlen($str); + + for($i = 0; $i < $len; $i++) { + $in = ord($str{$i}); + if (0 == $mState) { + // When mState is zero we expect either a US-ASCII character or a + // multi-octet sequence. + if (0 == (0x80 & ($in))) { + // US-ASCII, pass straight through. + $out[] = $in; + $mBytes = 1; + } elseif (0xC0 == (0xE0 & ($in))) { + // First octet of 2 octet sequence + $mUcs4 = ($in); + $mUcs4 = ($mUcs4 & 0x1F) << 6; + $mState = 1; + $mBytes = 2; + } elseif (0xE0 == (0xF0 & ($in))) { + // First octet of 3 octet sequence + $mUcs4 = ($in); + $mUcs4 = ($mUcs4 & 0x0F) << 12; + $mState = 2; + $mBytes = 3; + } elseif (0xF0 == (0xF8 & ($in))) { + // First octet of 4 octet sequence + $mUcs4 = ($in); + $mUcs4 = ($mUcs4 & 0x07) << 18; + $mState = 3; + $mBytes = 4; + } elseif (0xF8 == (0xFC & ($in))) { + /* First octet of 5 octet sequence. + * + * This is illegal because the encoded codepoint must be either + * (a) not the shortest form or + * (b) outside the Unicode range of 0-0x10FFFF. + * Rather than trying to resynchronize, we will carry on until the end + * of the sequence and let the later error handling code catch it. + */ + $mUcs4 = ($in); + $mUcs4 = ($mUcs4 & 0x03) << 24; + $mState = 4; + $mBytes = 5; + } elseif (0xFC == (0xFE & ($in))) { + // First octet of 6 octet sequence, see comments for 5 octet sequence. + $mUcs4 = ($in); + $mUcs4 = ($mUcs4 & 1) << 30; + $mState = 5; + $mBytes = 6; + } else { + /* Current octet is neither in the US-ASCII range nor a legal first + * octet of a multi-octet sequence. + */ + return false; + } + } else { + // When mState is non-zero, we expect a continuation of the multi-octet + // sequence + if (0x80 == (0xC0 & ($in))) { + // Legal continuation. + $shift = ($mState - 1) * 6; + $tmp = $in; + $tmp = ($tmp & 0x0000003F) << $shift; + $mUcs4 |= $tmp; + if (0 == --$mState) { + /* End of the multi-octet sequence. mUcs4 now contains the final + * Unicode codepoint to be output + * + * Check for illegal sequences and codepoints. + */ + // From Unicode 3.1, non-shortest form is illegal + if ( + ((2 == $mBytes) && ($mUcs4 < 0x0080)) || + ((3 == $mBytes) && ($mUcs4 < 0x0800)) || + ((4 == $mBytes) && ($mUcs4 < 0x10000)) || + (4 < $mBytes) || + // From Unicode 3.2, surrogate characters are illegal + (($mUcs4 & 0xFFFFF800) == 0xD800) || + // Codepoints outside the Unicode range are illegal + ($mUcs4 > 0x10FFFF) + ){ + return false; + } + if (0xFEFF != $mUcs4) { + $out[] = $mUcs4; + } + //initialize UTF8 cache + $mState = 0; + $mUcs4 = 0; + $mBytes = 1; + } + } else { + /* ((0xC0 & (*in) != 0x80) && (mState != 0)) + * + * Incomplete multi-octet sequence. + */ + return false; + } + } + } + return $out; + } + + /** + * plugin details + */ + function onPluginVersion(&$versions){ + $url = 'http://status.net/wiki/Plugin:DirectionDetector'; + + $versions[] = array( + 'name' => 'Direction detector', + 'version' => DIRECTIONDETECTORPLUGIN_VERSION, + 'author' => 'Behrooz Shabani', + 'homepage' => $url, + 'rawdescription' => _m('Shows notices with right-to-left content in correct direction.') + ); + return true; + } } /* diff --git a/plugins/DirectionDetector/jquery.DirectionDetector.js b/plugins/DirectionDetector/jquery.DirectionDetector.js new file mode 100644 index 0000000000..6808bcabd8 --- /dev/null +++ b/plugins/DirectionDetector/jquery.DirectionDetector.js @@ -0,0 +1,61 @@ + +/** + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Behrooz shabani (everplays) - <behrooz@rock.com> + * @copyright 2009-2010 Behrooz shabani + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * + */ + +(function($){ + $.fn.isRTL = function(str){ + if(typeof str != typeof "" || str.length<1) + return false; + var cc = str.charCodeAt(0); + if(cc>=1536 && cc<=1791) // arabic, persian, ... + return true; + if(cc>=65136 && cc<=65279) // arabic peresent 2 + return true; + if(cc>=64336 && cc<=65023) // arabic peresent 1 + return true; + if(cc>=1424 && cc<=1535) // hebrew + return true; + if(cc>=64256 && cc<=64335) // hebrew peresent + return true; + if(cc>=1792 && cc<=1871) // Syriac + return true; + if(cc>=1920 && cc<=1983) // Thaana + return true; + if(cc>=1984 && cc<=2047) // NKo + return true; + if(cc>=11568 && cc<=11647) // Tifinagh + return true; + return false; + }; + $(document).ready(function(){ + var tArea = $("#notice_data-text"); + var tCleaner = new RegExp('@[^ ]+|![^ ]+|#[^ ]+|^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]+', 'g') + tArea.keyup(function(){ + var cleaned = tArea.val().replace(tCleaner, '').replace(/^[ ]+/, ''); + if($().isRTL(cleaned)) + tArea.css('direction', 'rtl'); + else + tArea.css('direction', 'ltr'); + }); + }); +})(jQuery); diff --git a/plugins/DirectionDetector/locale/DirectionDetector.pot b/plugins/DirectionDetector/locale/DirectionDetector.pot index 44bbcca4dd..ef0297315f 100644 --- a/plugins/DirectionDetector/locale/DirectionDetector.pot +++ b/plugins/DirectionDetector/locale/DirectionDetector.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-05-08 22:32+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,6 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: DirectionDetectorPlugin.php:222 +#: DirectionDetectorPlugin.php:264 msgid "Shows notices with right-to-left content in correct direction." msgstr "" diff --git a/plugins/DirectionDetector/locale/be-tarask/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/be-tarask/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..96a7aed027 --- /dev/null +++ b/plugins/DirectionDetector/locale/be-tarask/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - DirectionDetector to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Паказвае паведамленьні са зьместам напісаньня справа налева ў слушным " +"накірунку." diff --git a/plugins/DirectionDetector/locale/br/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/br/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..501aa06d97 --- /dev/null +++ b/plugins/DirectionDetector/locale/br/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Diskwel a ra war an tu mat ar c'hemennoù enno testennoù skrivet a-zehou da " +"gleiz." diff --git a/plugins/DirectionDetector/locale/de/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/de/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..09a419578b --- /dev/null +++ b/plugins/DirectionDetector/locale/de/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Zeigt Nachrichten mit Rechts-nach-Links-Inhalt in der korrekten Richtung an." diff --git a/plugins/DirectionDetector/locale/es/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/es/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..46391a045d --- /dev/null +++ b/plugins/DirectionDetector/locale/es/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Muestra los mensajes de contenido derecha-a-izquierda en la dirección " +"correcta." diff --git a/plugins/DirectionDetector/locale/fr/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/fr/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..9cb2941505 --- /dev/null +++ b/plugins/DirectionDetector/locale/fr/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Affiche dans les bon sens les avis contenant du texte écrit de droite à " +"gauche." diff --git a/plugins/DirectionDetector/locale/he/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/he/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..9eb7a00025 --- /dev/null +++ b/plugins/DirectionDetector/locale/he/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DirectionDetector to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "הצגת הערות עם תוכן מימין לשמאל בכיוון הנכון." diff --git a/plugins/DirectionDetector/locale/ia/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/ia/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..86b3c6d394 --- /dev/null +++ b/plugins/DirectionDetector/locale/ia/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:39+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Monstra notas con scripto de dextra a sinistra in le direction correcte." diff --git a/plugins/DirectionDetector/locale/id/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/id/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..308414756e --- /dev/null +++ b/plugins/DirectionDetector/locale/id/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Menampilkan pemberitahuan dengan konten kanan-ke-kiri dalam arah yang tepat." diff --git a/plugins/DirectionDetector/locale/ja/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/ja/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..c1ec889c25 --- /dev/null +++ b/plugins/DirectionDetector/locale/ja/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DirectionDetector to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "正しい方向で右から左へ表示される内容の通知を表示する。" diff --git a/plugins/DirectionDetector/locale/lb/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/lb/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..dace861fa5 --- /dev/null +++ b/plugins/DirectionDetector/locale/lb/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Luxembourgish (Lëtzebuergesch) +# Expored from translatewiki.net +# +# Author: Robby +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Luxembourgish <http://translatewiki.net/wiki/Portal:lb>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: lb\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Weist Matdeelungen mat Inhalt dee vu riets not lenks geschriwwen ass an där " +"richteger Richtung." diff --git a/plugins/DirectionDetector/locale/mk/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/mk/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..69ba036a4a --- /dev/null +++ b/plugins/DirectionDetector/locale/mk/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Ги прикажува забелешките напишани на писма од десно на лево во исправната " +"насока." diff --git a/plugins/DirectionDetector/locale/nb/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/nb/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..0d39b4b1da --- /dev/null +++ b/plugins/DirectionDetector/locale/nb/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DirectionDetector to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "Viser notiser med høyre-til-venstre-innhold i riktig retning." diff --git a/plugins/DirectionDetector/locale/nl/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/nl/LC_MESSAGES/DirectionDetector.po index e8dae6ea85..0c014ca851 100644 --- a/plugins/DirectionDetector/locale/nl/LC_MESSAGES/DirectionDetector.po +++ b/plugins/DirectionDetector/locale/nl/LC_MESSAGES/DirectionDetector.po @@ -1,22 +1,30 @@ -# Translation of StatusNet plugin DirectionDetector to Dutch +# Translation of StatusNet - DirectionDetector to Dutch (Nederlands) +# Expored from translatewiki.net # -# Author@translatewiki.net: Siebrand +# Author: Siebrand # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - DirectionDetector\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-05-08 22:32+0000\n" -"PO-Revision-Date: 2010-05-08 23:32+0100\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" "Last-Translator: Siebrand Mazeland <s.mazeland@xs4all.nl>\n" -"Language-Team: Dutch\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" -#: DirectionDetectorPlugin.php:222 -msgid "Geeft mededelingen met rechts-naar-linksinhoud weer in de juiste richting." +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." msgstr "" +"Geeft mededelingen met inhoud in een van rechts naar links geschreven " +"schrift in de juiste richting weer." diff --git a/plugins/DirectionDetector/locale/pt/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/pt/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..8cf80ef17d --- /dev/null +++ b/plugins/DirectionDetector/locale/pt/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Mostra mensagens com conteúdo da direita para a esquerda na direcção " +"correcta." diff --git a/plugins/DirectionDetector/locale/ru/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/ru/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..08edceb73b --- /dev/null +++ b/plugins/DirectionDetector/locale/ru/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "Правильно показывает уведомления для системы письма справа налево." diff --git a/plugins/DirectionDetector/locale/tl/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/tl/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..23a6ca407c --- /dev/null +++ b/plugins/DirectionDetector/locale/tl/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DirectionDetector to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "" +"Nagpapakita ng mga pabatid na may nilalamang mula-kanan-pakaliwa sa tamang " +"daan." diff --git a/plugins/DirectionDetector/locale/uk/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/uk/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..0d806440fb --- /dev/null +++ b/plugins/DirectionDetector/locale/uk/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "Показує повідомлення із письмом справа наліво у правильному напрямі." diff --git a/plugins/DirectionDetector/locale/zh_CN/LC_MESSAGES/DirectionDetector.po b/plugins/DirectionDetector/locale/zh_CN/LC_MESSAGES/DirectionDetector.po new file mode 100644 index 0000000000..9f2991989e --- /dev/null +++ b/plugins/DirectionDetector/locale/zh_CN/LC_MESSAGES/DirectionDetector.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DirectionDetector to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DirectionDetector\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-directiondetector\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DirectionDetectorPlugin.php:264 +msgid "Shows notices with right-to-left content in correct direction." +msgstr "在内容方向为从右到左时,以相同的文字方向显示提醒。" diff --git a/plugins/DiskCachePlugin.php b/plugins/DiskCache/DiskCachePlugin.php similarity index 91% rename from plugins/DiskCachePlugin.php rename to plugins/DiskCache/DiskCachePlugin.php index b709ea3b31..47d4b153cf 100644 --- a/plugins/DiskCachePlugin.php +++ b/plugins/DiskCache/DiskCachePlugin.php @@ -164,5 +164,15 @@ class DiskCachePlugin extends Plugin Event::handle('EndCacheDelete', array($key)); return false; } -} + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'DiskCache', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:DiskCache', + 'rawdescription' => + _m('Plugin to implement cache interface with disk files.')); + return true; + } +} diff --git a/plugins/DiskCache/locale/DiskCache.pot b/plugins/DiskCache/locale/DiskCache.pot new file mode 100644 index 0000000000..34f0631efc --- /dev/null +++ b/plugins/DiskCache/locale/DiskCache.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" diff --git a/plugins/DiskCache/locale/be-tarask/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/be-tarask/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..817895fb24 --- /dev/null +++ b/plugins/DiskCache/locale/be-tarask/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Дапаўненьне для рэалізацыі інтэрфэйса кэшаваньня ў файлах на дыску." diff --git a/plugins/DiskCache/locale/br/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/br/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..535091cff1 --- /dev/null +++ b/plugins/DiskCache/locale/br/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Astenn evit emplementañ un etrefas krubuilh gant restroù eus ar bladenn" diff --git a/plugins/DiskCache/locale/de/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/de/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..9a5726a641 --- /dev/null +++ b/plugins/DiskCache/locale/de/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Plugin zur Implementierung einer festplatten basierten Cache-Schnittstelle" diff --git a/plugins/DiskCache/locale/es/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/es/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..10be296bed --- /dev/null +++ b/plugins/DiskCache/locale/es/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Extensión para implementar interfaz de caché con archivos de disco." diff --git a/plugins/DiskCache/locale/fr/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/fr/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..93b73611ed --- /dev/null +++ b/plugins/DiskCache/locale/fr/LC_MESSAGES/DiskCache.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DiskCache to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Extension pour mettre en œuvre une interface de mémoire tampon dans des " +"fichiers du disque." diff --git a/plugins/DiskCache/locale/he/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/he/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..dbe746f407 --- /dev/null +++ b/plugins/DiskCache/locale/he/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "תוסף להטמעת מנשק מטמון מול קבצים שבכונן." diff --git a/plugins/DiskCache/locale/ia/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/ia/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..ccd2d2dbcf --- /dev/null +++ b/plugins/DiskCache/locale/ia/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Plug-in pro implementar un interfacie de cache con files sur disco." diff --git a/plugins/DiskCache/locale/id/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/id/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..d6b76ef367 --- /dev/null +++ b/plugins/DiskCache/locale/id/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Pengaya untuk mengimplementasikan antarmuka singgahan dengan berkas cakram." diff --git a/plugins/DiskCache/locale/mk/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/mk/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..aacc061b87 --- /dev/null +++ b/plugins/DiskCache/locale/mk/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Приклучок за примена на кеш-посредник со податотеки на дискот." diff --git a/plugins/DiskCache/locale/nb/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/nb/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..7cb99a566d --- /dev/null +++ b/plugins/DiskCache/locale/nb/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Utvidelse for å implementere hurtiglagergrensesnitt med disk-filer." diff --git a/plugins/DiskCache/locale/nl/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/nl/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..cf3f141bcc --- /dev/null +++ b/plugins/DiskCache/locale/nl/LC_MESSAGES/DiskCache.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - DiskCache to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:40+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Plugin voor een cacheinterface met bestanden op schijf." diff --git a/plugins/DiskCache/locale/pt/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/pt/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..dc14835051 --- /dev/null +++ b/plugins/DiskCache/locale/pt/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Plugin para implementar a interface entre a cache e os ficheiros em disco." diff --git a/plugins/DiskCache/locale/pt_BR/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/pt_BR/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..7b5a622d2d --- /dev/null +++ b/plugins/DiskCache/locale/pt_BR/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Plugin para implementar interface de cache com arquivos de disco." diff --git a/plugins/DiskCache/locale/ru/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/ru/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..79b7c95757 --- /dev/null +++ b/plugins/DiskCache/locale/ru/LC_MESSAGES/DiskCache.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DiskCache to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Плагин для реализации интерфейса кэширования с помощью файлов на диске." diff --git a/plugins/DiskCache/locale/tl/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/tl/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..17a4d63687 --- /dev/null +++ b/plugins/DiskCache/locale/tl/LC_MESSAGES/DiskCache.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - DiskCache to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "" +"Pampasak upang maipatupad ang ugnayang-mukha ng taguan na may mga talaksan " +"ng disko." diff --git a/plugins/DiskCache/locale/uk/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/uk/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..ba09317403 --- /dev/null +++ b/plugins/DiskCache/locale/uk/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "Додаток для збереження кешу інтерфейсу на дисках." diff --git a/plugins/DiskCache/locale/zh_CN/LC_MESSAGES/DiskCache.po b/plugins/DiskCache/locale/zh_CN/LC_MESSAGES/DiskCache.po new file mode 100644 index 0000000000..c58d8df9fb --- /dev/null +++ b/plugins/DiskCache/locale/zh_CN/LC_MESSAGES/DiskCache.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - DiskCache to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - DiskCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:53+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-diskcache\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DiskCachePlugin.php:175 +msgid "Plugin to implement cache interface with disk files." +msgstr "实现缓存与磁盘文件接口的插件。" diff --git a/plugins/Disqus/DisqusPlugin.php b/plugins/Disqus/DisqusPlugin.php new file mode 100644 index 0000000000..51be78362b --- /dev/null +++ b/plugins/Disqus/DisqusPlugin.php @@ -0,0 +1,245 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin to add Disqus commenting to notice pages + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +/** + * + * This plugin adds Disqus commenting to your notices. Enabling this + * plugin will make each notice page display the Disqus widget, and + * notice lists will display the number of commments each notice has. + * + * To use this plugin, you need to first register your site with Disqus + * and get a Discus 'shortname' for it. + * + * http://disqus.com + * + * To enable the plugin, put the following in you config.php: + * + * addPlugin( + * 'Disqus', array( + * 'shortname' => 'YOURSHORTNAME', + * 'divStyle' => 'width:675px; padding-top:10px; position:relative; float:left;' + * ) + * ); + * + * If you only want to allow commenting on a specific user's notices or + * a specific set of users' notices initialize the plugin with the "restricted" + * parameter and grant the "richedit" role to those users. E.g.: + * + * addPlugin( + * 'Disqus', array( + * 'shortname' => 'YOURSHORTNAME', + * 'divStyle' => 'width:675px; padding-top:10px; position:relative; float:left;', + * 'restricted' => true + * ) + * ); + * + * $ php userrole.php -s#### -nusername -rrichedit + * + * + * NOTE: the 'divStyle' in an optional parameter that passes in some + * inline CSS when creating the Disqus widget. It's a shortcut to make + * the widget look OK with the default StatusNet theme. If you leave + * it out you'll have to edit your theme CSS files to make the widget + * look good. You can also control the way the widget looks by + * adding style rules to your theme. + * + * See: http://help.disqus.com/entries/100878-css-customization + * + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see Event + */ +class DisqusPlugin extends Plugin +{ + public $shortname; // Required 'shortname' for actually triggering Disqus + public $divStyle; // Optional CSS chunk for the main <div> + + // By default, Disqus commenting will be available to all users. + // With restricted on, only users who have been granted the + // "richedit" role get it. + public $restricted = false; + + /** + * Add a Disqus commenting section to the end of an individual + * notice page's content block + * + * @param Action $action The current action + */ + function onEndShowContentBlock($action) + { + if (get_class($action) == 'ShownoticeAction') { + + $profile = Profile::staticGet('id', $action->notice->profile_id); + + if ($this->isAllowedRichEdit($profile)) { + + $attrs = array(); + $attrs['id'] = 'disqus_thread'; + + if ($this->divStyle) { + $attrs['style'] = $this->divStyle; + } + + $action->element('div', $attrs, null); + + $script = <<<ENDOFSCRIPT + var disqus_identifier = %d; + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = 'http://%s.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); +ENDOFSCRIPT; + + $action->inlineScript(sprintf($script, $action->notice->id, $this->shortname)); + + $attrs = array(); + + $attrs['id'] = 'disqus_thread_footer'; + + if ($this->divStyle) { + $attrs['style'] = $this->divStyle; + } + + $action->elementStart('div', $attrs); + $action->elementStart('noscript'); + + $noScriptMsg = sprintf(_m("Please enable JavaScript to view the [comments powered by Disqus](http://disqus.com/?ref_noscript=%s)."), $this->shortname); + $output = common_markup_to_html($noScriptMsg); + $action->raw($output); + + $action->elementEnd('noscript'); + + $action->elementStart('a', array('href' => 'http://disqus.com', 'class' => 'dsq-brlink')); + $action->raw(_m('Comments powered by ')); + $action->element('span', array('class' => 'logo-disqus'), 'Disqus'); + $action->elementEnd('a'); + $action->elementEnd('div'); + } + } + } + + /** + * Add Disqus comment count script to the end of the scripts section + * + * @param Action $action the current action + * + */ + function onEndShowScripts($action) + { + // fugly + $script = <<<ENDOFSCRIPT +var disqus_shortname = '%s'; +(function () { + var s = document.createElement('script'); s.async = true; + s.src = 'http://disqus.com/forums/%s/count.js'; + (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); +}()); +ENDOFSCRIPT; + $action->inlineScript(sprintf($script, $this->shortname, $this->shortname)); + + } + + /** + * Tack on a Disqus comments link to the notice options stanza + * (the link displays the total number of comments for each notice) + * + * @param NoticeListItem $noticeListItem + * + */ + function onEndShowNoticeInfo($noticeListItem) + { + // Don't enable commenting for remote notices + if (empty($noticeListItem->notice->is_local)) { + return; + } + + $profile = Profile::staticGet('id', $noticeListItem->notice->profile_id); + + if ($this->isAllowedRichEdit($profile)) { + $noticeUrl = $noticeListItem->notice->bestUrl(); + $noticeUrl .= '#disqus_thread'; + + $noticeListItem->out->element( + 'a', + array('href' => $noticeUrl, 'class' => 'disqus_count'), + _m('Comments') + ); + } + } + + /** + * Does the current user have permission to use the Disqus plugin? + * Always true unless the plugin's "restricted" setting is on, in which + * case it's limited to users with the "richedit" role. + * + * @fixme make that more sanely configurable :) + * + * @param Profile $profile the profile to check + * + * @return boolean + */ + private function isAllowedRichEdit($profile) + { + if ($this->restricted) { + $user = User::staticGet($profile->id); + return !empty($user) && $user->hasRole('richedit'); + } else { + return true; + } + } + + /** + * Plugin details + * + * @param &$versions Array of current plugins + * + * @return boolean true + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Disqus', + 'version' => STATUSNET_VERSION, + 'author' => 'Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:Disqus', + 'rawdescription' => + _m('Use <a href="http://disqus.com/">Disqus</a>'. + ' to add commenting to notice pages.')); + return true; + } +} diff --git a/plugins/Disqus/locale/Disqus.pot b/plugins/Disqus/locale/Disqus.pot new file mode 100644 index 0000000000..debe3c17e7 --- /dev/null +++ b/plugins/Disqus/locale/Disqus.pot @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "" + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" diff --git a/plugins/Disqus/locale/be-tarask/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/be-tarask/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..6505846060 --- /dev/null +++ b/plugins/Disqus/locale/be-tarask/LC_MESSAGES/Disqus.po @@ -0,0 +1,49 @@ +# Translation of StatusNet - Disqus to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Калі ласка, дазвольце JavaScript каб праглядзець [камэнтары Disqus](http://" +"disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Камэнтары працуюць з дапамогай " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Камэнтары" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Выкарыстоўвайце <a href=\"http://disqus.com/\">Disqus</a> каб дадаць " +"камэнтары на старонкі абвяшчэньняў." diff --git a/plugins/Disqus/locale/br/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/br/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..73765e3631 --- /dev/null +++ b/plugins/Disqus/locale/br/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Mar plij gweredekait JavaScript evit gwelet an [evezhiadennoù enlusket gant " +"Disqus] (http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Evezhiadennoù enlusket gant " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Evezhiadennoù" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Implijit <a href=\"http://disqus.com/\">Disqus</a> evit ouzhpennañ " +"evezhiadennoù d'ar pajennoù alioù." diff --git a/plugins/Disqus/locale/de/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/de/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..c6a48d9aa0 --- /dev/null +++ b/plugins/Disqus/locale/de/LC_MESSAGES/Disqus.po @@ -0,0 +1,48 @@ +# Translation of StatusNet - Disqus to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Michael +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Bitte aktiviere JavaScript, um die [von Disqus bereitgestellten Kommentare]" +"(http://disqus.com/?ref_noscript=%s) anzuzeigen." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "" + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Kommentare" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Benutzung von <a href=\"http://disqus.com/\">Disqus</a> zum Hinzufügen von " +"Kommentaren auf Nachrichtenseiten." diff --git a/plugins/Disqus/locale/es/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/es/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..450a3f49ef --- /dev/null +++ b/plugins/Disqus/locale/es/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Por favor, habilita JavaScript para ver los [comentarios con tecnología de " +"Disqus](http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Comentarios con tecnología de " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Comentarios" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Usar <a href=\"http://disqus.com/\">Disqus</a> para añadir comentarios a las " +"páginas de mensajes." diff --git a/plugins/Disqus/locale/fr/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/fr/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..8e1477dbd3 --- /dev/null +++ b/plugins/Disqus/locale/fr/LC_MESSAGES/Disqus.po @@ -0,0 +1,48 @@ +# Translation of StatusNet - Disqus to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Veuillez activer JavaScript pour voir les [commentaires propulsés par " +"Disqus] (http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Commentaires propulsés par " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Commentaires" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Utilisez <a href=\"http://disqus.com/\">Disqus</a> pour ajouter des " +"commentaires aux pages d’avis." diff --git a/plugins/Disqus/locale/gl/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/gl/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..dc4a9316d5 --- /dev/null +++ b/plugins/Disqus/locale/gl/LC_MESSAGES/Disqus.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - Disqus to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "" + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Comentarios" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" diff --git a/plugins/Disqus/locale/ia/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/ia/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..4cc996d5aa --- /dev/null +++ b/plugins/Disqus/locale/ia/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Per favor activa JavaScript pro vider le [commentos actionate per Disqus]" +"(http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Commentos actionate per " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Commentos" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Usar <a href=\"http://disqus.com/\">Disqus</a> pro adder le possibilitate de " +"commentar a paginas de notas." diff --git a/plugins/Disqus/locale/mk/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/mk/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..22dc17b7ef --- /dev/null +++ b/plugins/Disqus/locale/mk/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Вклучете го JavaScript за да можете да ги прегледувате [коментарите " +"овозможени од Disqus](http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Коментарите ги овозможува " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Коментари" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Користи <a href=\"http://disqus.com/\">Disqus</a> за додавање на коментари " +"во страниците на забелешките." diff --git a/plugins/Disqus/locale/nb/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/nb/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..ee1ceacbcf --- /dev/null +++ b/plugins/Disqus/locale/nb/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Aktiver JavaScript for å vise [kommentarene levert av Disqus](http://disqus." +"com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Kommentarer levert av " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Kommentarer" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Bruk <a href=\"http://disqus.com/\">Disqus</a> til å legge kommentering til " +"notissider." diff --git a/plugins/Disqus/locale/nl/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/nl/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..894f559a5f --- /dev/null +++ b/plugins/Disqus/locale/nl/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:41+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Schakel JavaScript in om de [reacties via Disqus](http://disqus.com/?" +"ref_noscript=%s) te kunnen bekijken." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Reacties powered by " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Reacties" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"<a href=\"http://disqus.com/\">Disqus</a> gebruiken om opmerkingen toe te " +"voegen aan mededelingenpagina's." diff --git a/plugins/Disqus/locale/ru/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/ru/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..ecc9062c70 --- /dev/null +++ b/plugins/Disqus/locale/ru/LC_MESSAGES/Disqus.po @@ -0,0 +1,49 @@ +# Translation of StatusNet - Disqus to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Пожалуйста, включите JavaScript для просмотра [комментариев, работающих с " +"помощью Disqus](http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Комментарии работают с помощью " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Комментарии" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Использование <a href=\"http://disqus.com/\">Disqus</a> для добавления " +"комментариев на страницы уведомления." diff --git a/plugins/Disqus/locale/te/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/te/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..6dec826ed8 --- /dev/null +++ b/plugins/Disqus/locale/te/LC_MESSAGES/Disqus.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - Disqus to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "" + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "వ్యాఖ్యలు" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" diff --git a/plugins/Disqus/locale/tl/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/tl/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..cc8aea0e15 --- /dev/null +++ b/plugins/Disqus/locale/tl/LC_MESSAGES/Disqus.po @@ -0,0 +1,47 @@ +# Translation of StatusNet - Disqus to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Mangyaring paganahin ang JavaScript upang matingnan ang [mga punang " +"pinapatakbo ng Disqus](http://disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Mga puna na pinatatakbo ng " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Mga puna" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Gamitin ang <a href=\"http://disqus.com/\">Disqus</a> upang magdagdag ng " +"pagpuna sa mga pahina ng pabatid." diff --git a/plugins/Disqus/locale/uk/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/uk/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..d2d94b1965 --- /dev/null +++ b/plugins/Disqus/locale/uk/LC_MESSAGES/Disqus.po @@ -0,0 +1,48 @@ +# Translation of StatusNet - Disqus to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"Будь ласка, увімкніть JavaScript для перегляду [коментарів Disqus](http://" +"disqus.com/?ref_noscript=%s)." + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "Коментування можливе завдяки сервісу " + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "Коментарі" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "" +"Використання <a href=\"http://disqus.com/\">Disqus</a> для коментування " +"дописів." diff --git a/plugins/Disqus/locale/zh_CN/LC_MESSAGES/Disqus.po b/plugins/Disqus/locale/zh_CN/LC_MESSAGES/Disqus.po new file mode 100644 index 0000000000..5378c3c809 --- /dev/null +++ b/plugins/Disqus/locale/zh_CN/LC_MESSAGES/Disqus.po @@ -0,0 +1,46 @@ +# Translation of StatusNet - Disqus to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Disqus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-disqus\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: DisqusPlugin.php:142 +#, php-format +msgid "" +"Please enable JavaScript to view the [comments powered by Disqus](http://" +"disqus.com/?ref_noscript=%s)." +msgstr "" +"请启用 JavaScript 来查看 [通过 Disqus 的评论](http://disqus.com/?" +"ref_noscript=%s)。" + +#: DisqusPlugin.php:149 +msgid "Comments powered by " +msgstr "通过 Disqus 的评论" + +#: DisqusPlugin.php:201 +msgid "Comments" +msgstr "评论" + +#: DisqusPlugin.php:241 +msgid "" +"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice " +"pages." +msgstr "使用<a href=\"http://disqus.com/\">Disqus</a>在消息页中添加评论。" diff --git a/plugins/EchoPlugin.php b/plugins/Echo/EchoPlugin.php similarity index 58% rename from plugins/EchoPlugin.php rename to plugins/Echo/EchoPlugin.php index 2ebfbceb33..cd8d8c0e73 100644 --- a/plugins/EchoPlugin.php +++ b/plugins/Echo/EchoPlugin.php @@ -36,54 +36,26 @@ if (!defined('STATUSNET')) { * * This plugin adds an Echo commenting widget to each notice page on * your site. To get it to work, first you'll have to sign up for Echo - * (a commercial service) and register your site's URL. + * (a for-pay service) and register your site's URL. * * http://aboutecho.com/ * * Once you've done that it's pretty straight forward to turn the - * plugin on, just add: + * plugin on; just add this to your config.php: * - * addPlugin('Echo'); + * addPlugin( + * 'Echo', + * array('div_style' => 'width:675px; padding-top:10px; position:relative; float:left;') + * ); * - * to your config.php. The defaults should work OK with the default - * theme, but there are a lot of options to customize the look and - * feel of the comment widget. You can control both the CSS for the - * div that contains the widget, as well as the CSS for the widget - * itself via config parameters that can be passed into the plugin. - * See below for a more complex example: + * NOTE: the 'div_style' in an optional parameter that passes in some + * inline CSS when creating the Echo widget. It's a shortcut to make + * the widget look OK with the default StatusNet theme. If you leave + * it out you'll have to edit your theme CSS files to make the widget + * look good. You can also control the way the widget looks by + * adding style rules to your theme. * - * // Custom stylesheet for Echo commenting widget - * // See: http://wiki.js-kit.com/Skinning-Guide#UsingCSSnbsptocustomizefontsandcolors - * $stylesheet = <<<ENDOFCSS - * .js-CommentsArea { width: 400px; } - * .jsk-HeaderWrapper { display: none; } - * .jsk-ItemUserAvatar { display: none; } - * .jsk-ItemBody { margin-left: -48px; } - * .js-kit-avatars-wrapper { display: none; } - * .js-kit-nonLoggedUserInfo { margin-left: -75px; } - * .js-singleViaLinkWrapper { display: none; } - * .js-CommentsSkin-echo div.jsk-ThreadWrapper { padding: 0px; } - * .js-singleCommentAdminStar { display: none !important; } - * .js-singleCommentName { margin-right: 1em; } - * .js-kit-miniProfile { background-color:#FFFFFF; } - * .jskit-MenuContainer { background-color:#FFFFFF; } - * .jskit-MenuItemMO { background-color: #EDEDED; } - * .jsk-CommentFormButton { display: none; } - * .js-singleCommentReplyable { display: none; } - * .jsk-CommentFormSurface { display: none; } - * .js-kit-tab-follow { display: none; } - * ENDOFCSS; - * - * addPlugin( - * 'Echo', - * array - * ( - * // div_css is the css for the div containing the comment widget - * 'div_css' => 'width:675px; padding-top:10px; position:relative; float:left;', - * // stylesheet is the CSS for the comment widget itself - * 'stylesheet' => $stylesheet - * ) - * ); + * See: http://wiki.js-kit.com/Skinning-Guide#UsingCSSnbsptocustomizefontsandcolors * * @category Plugin * @package StatusNet @@ -93,7 +65,6 @@ if (!defined('STATUSNET')) { * * @see Event */ - class EchoPlugin extends Plugin { // NOTE: The Echo documentation says that this script will change on @@ -122,24 +93,14 @@ class EchoPlugin extends Plugin // NOTE: there are some other attributes that could be useful // http://wiki.js-kit.com/Echo-Behavior - if (empty($this->div_css)) { - // This CSS seems to work OK with the default theme - $attrs['style'] = 'width:675px; padding-top:10px; position:relative; float:left;'; - } else { - $attrs['style'] = $this->css; + if (!empty($this->div_style)) { + $attrs['style'] = $this->div_style; } $action->element('div', $attrs, null); } } - function onEndShowStyles($action) - { - if (get_class($action) == 'ShownoticeAction' && !empty($this->stylesheet)) { - $action->style($this->stylesheet); - } - } - function onPluginVersion(&$versions) { $versions[] = array('name' => 'Echo', diff --git a/plugins/Echo/locale/Echo.pot b/plugins/Echo/locale/Echo.pot new file mode 100644 index 0000000000..c7567389d7 --- /dev/null +++ b/plugins/Echo/locale/Echo.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" diff --git a/plugins/Echo/locale/be-tarask/LC_MESSAGES/Echo.po b/plugins/Echo/locale/be-tarask/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..92cae98378 --- /dev/null +++ b/plugins/Echo/locale/be-tarask/LC_MESSAGES/Echo.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Echo to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Выкарыстоўвайце <a href=\"http://aboutecho.com/\">Echo</a> каб дадаць " +"камэнтары на старонкі абвяшчэньняў." diff --git a/plugins/Echo/locale/br/LC_MESSAGES/Echo.po b/plugins/Echo/locale/br/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..4f635f66e7 --- /dev/null +++ b/plugins/Echo/locale/br/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Implijit <a href=\"http://aboutecho.com/\">Echo</a> evit ouzhpennañ " +"evezhiadennoù d'ar pajennoù alioù." diff --git a/plugins/Echo/locale/de/LC_MESSAGES/Echo.po b/plugins/Echo/locale/de/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..b3a10d98d8 --- /dev/null +++ b/plugins/Echo/locale/de/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Benutzung von <a href=\"http://aboutecho.com/\">Echo</a> zum Hinzufügen von " +"Kommentaren auf Nachrichtenseiten." diff --git a/plugins/Echo/locale/es/LC_MESSAGES/Echo.po b/plugins/Echo/locale/es/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..ecfe210e97 --- /dev/null +++ b/plugins/Echo/locale/es/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Usar <a href=\"http://aboutecho.com/\">Echo</a> para añadir comentarios a " +"las páginas de mensajes." diff --git a/plugins/Echo/locale/fi/LC_MESSAGES/Echo.po b/plugins/Echo/locale/fi/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..1d35f86269 --- /dev/null +++ b/plugins/Echo/locale/fi/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Lisää kommentointimahdollisuus ilmoitussivulle <a href=\"http://aboutecho." +"com/\">Echon</a> avulla." diff --git a/plugins/Echo/locale/fr/LC_MESSAGES/Echo.po b/plugins/Echo/locale/fr/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..253f33997e --- /dev/null +++ b/plugins/Echo/locale/fr/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Utilisez <a href=\"http://aboutecho.com/\">Echo</a> pour ajouter des " +"commentaires aux pages d’avis." diff --git a/plugins/Echo/locale/he/LC_MESSAGES/Echo.po b/plugins/Echo/locale/he/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..2acd539647 --- /dev/null +++ b/plugins/Echo/locale/he/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"ניתן להשתמש ב־<a href=\"http://aboutecho.com/\">Echo</a> (הד) כדי להוסיף " +"הערות לדפי התרעה." diff --git a/plugins/Echo/locale/ia/LC_MESSAGES/Echo.po b/plugins/Echo/locale/ia/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..9803054a4a --- /dev/null +++ b/plugins/Echo/locale/ia/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Usar <a href=\"http://aboutecho.com/\">Echo</a> pro adder le possibilitate " +"de commentar a paginas de notas." diff --git a/plugins/Echo/locale/id/LC_MESSAGES/Echo.po b/plugins/Echo/locale/id/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..9902ed62e8 --- /dev/null +++ b/plugins/Echo/locale/id/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Gunakan <a href=\"http://aboutecho.com/\">Echo</a> untuk menambahkan " +"komentar ke halaman pemberitahuan." diff --git a/plugins/Echo/locale/lb/LC_MESSAGES/Echo.po b/plugins/Echo/locale/lb/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..f767f2133e --- /dev/null +++ b/plugins/Echo/locale/lb/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Luxembourgish (Lëtzebuergesch) +# Expored from translatewiki.net +# +# Author: Robby +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Luxembourgish <http://translatewiki.net/wiki/Portal:lb>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: lb\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Benotzt <a href=\"http://aboutecho.com/\">Echo</a> fir Bemierkungen op " +"Noriichtesäiten dobäizesetzen." diff --git a/plugins/Echo/locale/mk/LC_MESSAGES/Echo.po b/plugins/Echo/locale/mk/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..13a5c66a81 --- /dev/null +++ b/plugins/Echo/locale/mk/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Користи <a href=\"http://aboutecho.com/\">Echo</a> за додавање на коментари " +"во страници со забелешки." diff --git a/plugins/Echo/locale/nb/LC_MESSAGES/Echo.po b/plugins/Echo/locale/nb/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..4f12e8bd01 --- /dev/null +++ b/plugins/Echo/locale/nb/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Bruk <a href=\"http://aboutecho.com/\">Echo</a> til å legge kommentering til " +"notissider." diff --git a/plugins/Echo/locale/nl/LC_MESSAGES/Echo.po b/plugins/Echo/locale/nl/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..23163ed7e7 --- /dev/null +++ b/plugins/Echo/locale/nl/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"<a href=\"http://aboutecho.com/\">Echo</a> gebruiken om opmerkingen toe te " +"voegen aan mededelingenpagina's." diff --git a/plugins/Echo/locale/pt/LC_MESSAGES/Echo.po b/plugins/Echo/locale/pt/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..78725c015c --- /dev/null +++ b/plugins/Echo/locale/pt/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Use o <a href=\"http://aboutecho.com/\">Echo</a> para adicionar comentários " +"às páginas de notas." diff --git a/plugins/Echo/locale/pt_BR/LC_MESSAGES/Echo.po b/plugins/Echo/locale/pt_BR/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..0c3de7af68 --- /dev/null +++ b/plugins/Echo/locale/pt_BR/LC_MESSAGES/Echo.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Echo to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Use o <a href=\"http://aboutecho.com/\">Echo</a> para adicionar comentários " +"às páginas de notas." diff --git a/plugins/Echo/locale/ru/LC_MESSAGES/Echo.po b/plugins/Echo/locale/ru/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..a0308bcb6f --- /dev/null +++ b/plugins/Echo/locale/ru/LC_MESSAGES/Echo.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Echo to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Использование <a href=\"http://aboutecho.com/\">Echo</a> для добавления " +"комментариев на страницы уведомления." diff --git a/plugins/Echo/locale/tl/LC_MESSAGES/Echo.po b/plugins/Echo/locale/tl/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..24a10710eb --- /dev/null +++ b/plugins/Echo/locale/tl/LC_MESSAGES/Echo.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Echo to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Gamitin ang <a href=\"http://aboutecho.com/\">Echo</a> upang magdagdag ng " +"pagpuna sa mga pahina ng pabatid." diff --git a/plugins/Echo/locale/uk/LC_MESSAGES/Echo.po b/plugins/Echo/locale/uk/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..38894272a9 --- /dev/null +++ b/plugins/Echo/locale/uk/LC_MESSAGES/Echo.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Echo to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "" +"Використання <a href=\"http://aboutecho.com/\">Echo</a> для коментування " +"дописів." diff --git a/plugins/Echo/locale/zh_CN/LC_MESSAGES/Echo.po b/plugins/Echo/locale/zh_CN/LC_MESSAGES/Echo.po new file mode 100644 index 0000000000..1c18f42a93 --- /dev/null +++ b/plugins/Echo/locale/zh_CN/LC_MESSAGES/Echo.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Echo to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Echo\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:42+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-echo\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EchoPlugin.php:111 +msgid "" +"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice " +"pages." +msgstr "使用<a href=\"http://aboutecho.com/\">Echo</a>在消息页中添加评论。" diff --git a/plugins/EmailAuthentication/EmailAuthenticationPlugin.php b/plugins/EmailAuthentication/EmailAuthenticationPlugin.php index 4c018537b8..689d6231d1 100644 --- a/plugins/EmailAuthentication/EmailAuthenticationPlugin.php +++ b/plugins/EmailAuthentication/EmailAuthenticationPlugin.php @@ -34,7 +34,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { class EmailAuthenticationPlugin extends Plugin { //---interface implementation---// - function onStartCheckPassword($nickname, $password, &$authenticatedUser) { if(strpos($nickname, '@')) @@ -62,4 +61,3 @@ class EmailAuthenticationPlugin extends Plugin return true; } } - diff --git a/plugins/EmailAuthentication/locale/EmailAuthentication.pot b/plugins/EmailAuthentication/locale/EmailAuthentication.pot index d945e2537a..fb9f56efee 100644 --- a/plugins/EmailAuthentication/locale/EmailAuthentication.pot +++ b/plugins/EmailAuthentication/locale/EmailAuthentication.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: EmailAuthenticationPlugin.php:61 +#: EmailAuthenticationPlugin.php:60 msgid "" "The Email Authentication plugin allows users to login using their email " "address." diff --git a/plugins/EmailAuthentication/locale/be-tarask/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/be-tarask/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..70733997d8 --- /dev/null +++ b/plugins/EmailAuthentication/locale/be-tarask/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - EmailAuthentication to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Дапаўненьне аўтэнтыфікацыі па электроннай пошце дазваляе карыстальнікам " +"увайсьці ў сыстэму з выкарыстаньнем іх адрасу электроннай пошты." diff --git a/plugins/EmailAuthentication/locale/br/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/br/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..160c9c8984 --- /dev/null +++ b/plugins/EmailAuthentication/locale/br/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Talvezout a ra an adveziant dilesa d'an implijerien da gevreañ en ur ober " +"gant o chomlec'h postel." diff --git a/plugins/EmailAuthentication/locale/de/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/de/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..883002f70d --- /dev/null +++ b/plugins/EmailAuthentication/locale/de/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Das „Email Authentication“-Plugin ermöglicht Benutzern, sich mit ihrer E-" +"Mail-Adresse anzumelden." diff --git a/plugins/EmailAuthentication/locale/es/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/es/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..33aa39f8f7 --- /dev/null +++ b/plugins/EmailAuthentication/locale/es/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"La extensión de Autenticación de Correo Electrónico permite a los usuarios " +"iniciar sesión con su dirección de correo electrónico." diff --git a/plugins/EmailAuthentication/locale/fr/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/fr/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..29a18f5710 --- /dev/null +++ b/plugins/EmailAuthentication/locale/fr/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"L’extension d’identification électronique permet à l’utilisateur de " +"s’identifier en utilisant son adresse électronique." diff --git a/plugins/EmailAuthentication/locale/he/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/he/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..fcc8d678cb --- /dev/null +++ b/plugins/EmailAuthentication/locale/he/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - EmailAuthentication to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "תוסף אימות הדוא״ל מאפשר למשתמשים להיכנס באמצעות כתובת הדוא״ל שלהם." diff --git a/plugins/EmailAuthentication/locale/ia/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/ia/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..0f0d3710df --- /dev/null +++ b/plugins/EmailAuthentication/locale/ia/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Le plug-in Authentication E-mail permitte que usatores aperi session usante " +"lor adresse de e-mail." diff --git a/plugins/EmailAuthentication/locale/id/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/id/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..f58bfde70f --- /dev/null +++ b/plugins/EmailAuthentication/locale/id/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Pengaya Email Authentication memungkinkan pengguna untuk masuk log " +"menggunakan alamat surel mereka." diff --git a/plugins/EmailAuthentication/locale/ja/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/ja/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..28d4dcb973 --- /dev/null +++ b/plugins/EmailAuthentication/locale/ja/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"電子メール認証プラグインは、ユーザーに、電子メールアドレスでログインすること" +"を許可します。" diff --git a/plugins/EmailAuthentication/locale/mk/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/mk/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..18b13b33b3 --- /dev/null +++ b/plugins/EmailAuthentication/locale/mk/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Приклучокот Email Authentication им овозможува на корисниците да се " +"најавуваат со е-поштенска адреса." diff --git a/plugins/EmailAuthentication/locale/nb/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/nb/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..8a00fdc8a7 --- /dev/null +++ b/plugins/EmailAuthentication/locale/nb/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Utvidelsen Email Authentication gjør det mulig for brukere å logge inn med " +"sin e-postadresse." diff --git a/plugins/EmailAuthentication/locale/nl/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/nl/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..5f145dedb5 --- /dev/null +++ b/plugins/EmailAuthentication/locale/nl/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"De plug-in E-mailauthenticatie maakt het voor gebruikers mogelijk om aan te " +"melden met hun e-mailadres." diff --git a/plugins/EmailAuthentication/locale/pt/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/pt/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..1649d0d7fe --- /dev/null +++ b/plugins/EmailAuthentication/locale/pt/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"O plugin de autenticação por email permite aos utilizadores autenticar-se " +"usando o seu endereço de email." diff --git a/plugins/EmailAuthentication/locale/pt_BR/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/pt_BR/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..9d7b3de728 --- /dev/null +++ b/plugins/EmailAuthentication/locale/pt_BR/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - EmailAuthentication to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"O plugin de autenticação por e-mail permite aos usuário autenticarem-se " +"usando o seu endereço de e-mail." diff --git a/plugins/EmailAuthentication/locale/ru/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/ru/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..9f66bfefdf --- /dev/null +++ b/plugins/EmailAuthentication/locale/ru/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - EmailAuthentication to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Модуль аутентификации по электронной почте позволяет пользователям войти в " +"систему используя адрес электронной почты." diff --git a/plugins/EmailAuthentication/locale/tl/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/tl/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..c1f18d9a66 --- /dev/null +++ b/plugins/EmailAuthentication/locale/tl/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - EmailAuthentication to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Ang pamasak na Pagpapatunay ng E-liham ay nagpapahintulot sa mga tagagamit " +"na makalagdang ginagamit ang kanilang tirahan ng e-liham." diff --git a/plugins/EmailAuthentication/locale/uk/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/uk/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..0fecb9fe53 --- /dev/null +++ b/plugins/EmailAuthentication/locale/uk/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - EmailAuthentication to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "" +"Додаток автентифікації через адресу ел. пошти дозволяє користувачам входити " +"на сайт використовуючи адресу ел. пошти." diff --git a/plugins/EmailAuthentication/locale/zh_CN/LC_MESSAGES/EmailAuthentication.po b/plugins/EmailAuthentication/locale/zh_CN/LC_MESSAGES/EmailAuthentication.po new file mode 100644 index 0000000000..2bd6bb516d --- /dev/null +++ b/plugins/EmailAuthentication/locale/zh_CN/LC_MESSAGES/EmailAuthentication.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - EmailAuthentication to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-emailauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EmailAuthenticationPlugin.php:60 +msgid "" +"The Email Authentication plugin allows users to login using their email " +"address." +msgstr "Email验证插件允许用户使用Email地址登录。" diff --git a/plugins/EmailSummary/EmailSummaryPlugin.php b/plugins/EmailSummary/EmailSummaryPlugin.php new file mode 100644 index 0000000000..58c40e43c5 --- /dev/null +++ b/plugins/EmailSummary/EmailSummaryPlugin.php @@ -0,0 +1,202 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Sends an email summary of the inbox to users in the network + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Sample + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin for sending email summaries to users + * + * @category Email + * @package StatusNet + * @author Brion Vibber <brionv@status.net> + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class EmailSummaryPlugin extends Plugin +{ + /** + * Database schema setup + * + * @return boolean hook value + */ + + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing user-submitted flags on profiles + + $schema->ensureTable('email_summary_status', + array(new ColumnDef('user_id', 'integer', null, + false, 'PRI'), + new ColumnDef('send_summary', 'tinyint', null, + false, null, 1), + new ColumnDef('last_summary_id', 'integer', null, + true), + new ColumnDef('created', 'datetime', null, + false), + new ColumnDef('modified', 'datetime', null, + false), + ) + ); + return true; + } + + /** + * Load related modules when needed + * + * @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 'SiteEmailSummaryHandler': + case 'UserEmailSummaryHandler': + include_once $dir . '/'.strtolower($cls).'.php'; + return false; + case 'Email_summary_status': + include_once $dir . '/'.$cls.'.php'; + return false; + default: + return true; + } + } + + /** + * Version info for this plugin + * + * @param array &$versions array of version data + * + * @return boolean hook value; true means continue processing, false means stop. + * + */ + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'EmailSummary', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:EmailSummary', + 'rawdescription' => + _m('Send an email summary of the inbox to users.')); + return true; + } + + /** + * Register our queue handlers + * + * @param QueueManager $qm Current queue manager + * + * @return boolean hook value + */ + + function onEndInitializeQueueManager($qm) + { + $qm->connect('sitesum', 'SiteEmailSummaryHandler'); + $qm->connect('usersum', 'UserEmailSummaryHandler'); + return true; + } + + /** + * Add a checkbox to turn off email summaries + * + * @param Action $action Action being executed (emailsettings) + * + * @return boolean hook value + */ + + function onEndEmailFormData($action) + { + $user = common_current_user(); + + $action->elementStart('li'); + $action->checkbox('emailsummary', + // TRANS: Checkbox label in e-mail preferences form. + _('Send me a periodic summary of updates from my network.'), + Email_summary_status::getSendSummary($user->id)); + $action->elementEnd('li'); + return true; + } + + /** + * Add a checkbox to turn off email summaries + * + * @param Action $action Action being executed (emailsettings) + * + * @return boolean hook value + */ + + function onEndEmailSaveForm($action) + { + $sendSummary = $action->boolean('emailsummary'); + + $user = common_current_user(); + + if (!empty($user)) { + + $ess = Email_summary_status::staticGet('user_id', $user->id); + + if (empty($ess)) { + + $ess = new Email_summary_status(); + + $ess->user_id = $user->id; + $ess->send_summary = $sendSummary; + $ess->created = common_sql_now(); + $ess->modified = common_sql_now(); + + $ess->insert(); + + } else { + + $orig = clone($ess); + + $ess->send_summary = $sendSummary; + $ess->modified = common_sql_now(); + + $ess->update($orig); + } + } + + return true; + } +} diff --git a/plugins/EmailSummary/Email_summary_status.php b/plugins/EmailSummary/Email_summary_status.php new file mode 100644 index 0000000000..5b5b231e34 --- /dev/null +++ b/plugins/EmailSummary/Email_summary_status.php @@ -0,0 +1,167 @@ +<?php +/** + * Data class for email summary status + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for email summaries + * + * Email summary information for users + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Email_summary_status extends Memcached_DataObject +{ + public $__table = 'email_summary_status'; // table name + public $user_id; // int(4) primary_key not_null + public $send_summary; // tinyint not_null + public $last_summary_id; // int(4) null + public $created; // datetime not_null + public $modified; // datetime not_null + + /** + * Get an instance by key + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return Email_summary_status object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('email_summary_status', $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, + 'send_summary' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'last_summary_id' => DB_DATAOBJECT_INT, + 'created' => DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, + 'modified' => DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + function keyTypes() + { + return array('user_id' => 'K'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + /** + * Helper function + * + * @param integer $user_id ID of the user to get a count for + * + * @return int flag for whether to send this user a summary email + */ + + static function getSendSummary($user_id) + { + $ess = Email_summary_status::staticGet('user_id', $user_id); + + if (!empty($ess)) { + return $ess->send_summary; + } else { + return 1; + } + } + + /** + * Get email summary status for a user + * + * @param integer $user_id ID of the user to get a count for + * + * @return Email_summary_status instance for this user, with count already incremented. + */ + + static function getLastSummaryID($user_id) + { + $ess = Email_summary_status::staticGet('user_id', $user_id); + + if (!empty($ess)) { + return $ess->last_summary_id; + } else { + return null; + } + } +} diff --git a/plugins/EmailSummary/locale/EmailSummary.pot b/plugins/EmailSummary/locale/EmailSummary.pot new file mode 100644 index 0000000000..8e3d2b611d --- /dev/null +++ b/plugins/EmailSummary/locale/EmailSummary.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "" diff --git a/plugins/EmailSummary/locale/be-tarask/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/be-tarask/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..b2b05ccf18 --- /dev/null +++ b/plugins/EmailSummary/locale/be-tarask/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - EmailSummary to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "" +"Дасылае агляд уваходзячых паведамленьняў на электронную пошту карыстальніка." diff --git a/plugins/EmailSummary/locale/br/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/br/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..acdfaae83f --- /dev/null +++ b/plugins/EmailSummary/locale/br/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "Kas d'an implijerien, dre bostel, un diverrañ eus ar voest degemer." diff --git a/plugins/EmailSummary/locale/fr/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/fr/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..b8a132d966 --- /dev/null +++ b/plugins/EmailSummary/locale/fr/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - EmailSummary to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:43+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "" +"Envoyer un résumé de la boîte de réception par courrier électronique aux " +"utilisateurs." diff --git a/plugins/EmailSummary/locale/he/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/he/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..3f2d4e2132 --- /dev/null +++ b/plugins/EmailSummary/locale/he/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "שליחת תקציר של תיבת הדואר הנכנס בדוא״ל למשתמשים." diff --git a/plugins/EmailSummary/locale/ia/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/ia/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..3bec115266 --- /dev/null +++ b/plugins/EmailSummary/locale/ia/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "Inviar in e-mail un summario del cassa de entrata al usatores." diff --git a/plugins/EmailSummary/locale/id/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/id/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..48e216ff09 --- /dev/null +++ b/plugins/EmailSummary/locale/id/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "Kirim surel ringkasan kotak masuk ke pengguna." diff --git a/plugins/EmailSummary/locale/mk/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/mk/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..2c7360e952 --- /dev/null +++ b/plugins/EmailSummary/locale/mk/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "Испрати им на корисниците краток преглед на примената пошта." diff --git a/plugins/EmailSummary/locale/nl/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/nl/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..b17bc8d089 --- /dev/null +++ b/plugins/EmailSummary/locale/nl/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - EmailSummary to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "E-mailsamenvatting verzenden naar het Postvak IN van gebruikers." diff --git a/plugins/EmailSummary/locale/ru/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/ru/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..eca47f5db9 --- /dev/null +++ b/plugins/EmailSummary/locale/ru/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - EmailSummary to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "" +"Отправляет обзор входящих сообщений на электронную почту пользователей." diff --git a/plugins/EmailSummary/locale/uk/LC_MESSAGES/EmailSummary.po b/plugins/EmailSummary/locale/uk/LC_MESSAGES/EmailSummary.po new file mode 100644 index 0000000000..be4d2cf405 --- /dev/null +++ b/plugins/EmailSummary/locale/uk/LC_MESSAGES/EmailSummary.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - EmailSummary to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - EmailSummary\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:44+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:26+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-emailsummary\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: EmailSummaryPlugin.php:120 +msgid "Send an email summary of the inbox to users." +msgstr "" +"Надсилає електронною поштою перелік вхідних приватних повідомлень, " +"адресованих користувачеві." diff --git a/plugins/EmailSummary/sendemailsummary.php b/plugins/EmailSummary/sendemailsummary.php new file mode 100644 index 0000000000..37bfdcfbd1 --- /dev/null +++ b/plugins/EmailSummary/sendemailsummary.php @@ -0,0 +1,47 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +$shortoptions = 'i:n:a'; +$longoptions = array('id=', 'nickname=', 'all'); + +$helptext = <<<END_OF_SENDEMAILSUMMARY_HELP +sendemailsummary.php [options] +Send an email summary of the inbox to users + + -i --id ID of user to send summary to + -n --nickname nickname of the user to send summary to + -a --all send summary to all users + +END_OF_SENDEMAILSUMMARY_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$qm = QueueManager::get(); + +// enqueue summary for user or all users + +try { + $user = getUser(); + $qm->enqueue($user->id, 'usersum'); +} catch (NoUserArgumentException $nuae) { + $qm->enqueue(null, 'sitesum'); +} diff --git a/plugins/EmailSummary/siteemailsummaryhandler.php b/plugins/EmailSummary/siteemailsummaryhandler.php new file mode 100644 index 0000000000..595c3267a1 --- /dev/null +++ b/plugins/EmailSummary/siteemailsummaryhandler.php @@ -0,0 +1,96 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * + * Handler for queue items of type 'sitesum', sends email summaries + * to all users on the site. + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Sample + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * + * Handler for queue items of type 'sitesum', sends email summaries + * to all users on the site. + * + * @category Email + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class SiteEmailSummaryHandler extends QueueHandler +{ + + /** + * Return transport keyword which identifies items this queue handler + * services; must be defined for all subclasses. + * + * Must be 8 characters or less to fit in the queue_item database. + * ex "email", "jabber", "sms", "irc", ... + * + * @return string + */ + + function transport() + { + return 'sitesum'; + } + + /** + * Handle the site + * + * @param mixed $object + * @return boolean true on success, false on failure + */ + + function handle($object) + { + $qm = QueueManager::get(); + + try { + // Enqueue a summary for all users + + $user = new User(); + $user->find(); + + while ($user->fetch()) { + try { + $qm->enqueue($user->id, 'usersum'); + } catch (Exception $e) { + common_log(LOG_WARNING, $e->getMessage()); + continue; + } + } + } catch (Exception $e) { + common_log(LOG_WARNING, $e->getMessage()); + } + + return true; + } +} + diff --git a/plugins/EmailSummary/useremailsummaryhandler.php b/plugins/EmailSummary/useremailsummaryhandler.php new file mode 100644 index 0000000000..b1ebd0c425 --- /dev/null +++ b/plugins/EmailSummary/useremailsummaryhandler.php @@ -0,0 +1,226 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * + * Handler for queue items of type 'usersum', sends an email summaries + * to a particular user. + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Sample + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Handler for queue items of type 'usersum', sends an email summaries + * to a particular user. + * + * @category Email + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class UserEmailSummaryHandler extends QueueHandler +{ + // Maximum number of notices to include by default. This is probably too much. + + const MAX_NOTICES = 200; + + /** + * Return transport keyword which identifies items this queue handler + * services; must be defined for all subclasses. + * + * Must be 8 characters or less to fit in the queue_item database. + * ex "email", "jabber", "sms", "irc", ... + * + * @return string + */ + + function transport() + { + return 'sitesum'; + } + + /** + * Send a summary email to the user + * + * @param mixed $object + * @return boolean true on success, false on failure + */ + + function handle($user_id) + { + // Skip if they've asked not to get summaries + + $ess = Email_summary_status::staticGet('user_id', $user_id); + + if (!empty($ess) && !$ess->send_summary) { + common_log(LOG_INFO, sprintf('Not sending email summary for user %s by request.', $user_id)); + return true; + } + + $since_id = null; + + if (!empty($ess)) { + $since_id = $ess->last_summary_id; + } + + $user = User::staticGet('id', $user_id); + + if (empty($user)) { + common_log(LOG_INFO, sprintf('Not sending email summary for user %s; no such user.', $user_id)); + return true; + } + + if (empty($user->email)) { + common_log(LOG_INFO, sprintf('Not sending email summary for user %s; no email address.', $user_id)); + return true; + } + + $profile = $user->getProfile(); + + if (empty($profile)) { + common_log(LOG_WARNING, sprintf('Not sending email summary for user %s; no profile.', $user_id)); + return true; + } + + $notice = $user->ownFriendsTimeline(0, self::MAX_NOTICES, $since_id); + + if (empty($notice) || $notice->N == 0) { + common_log(LOG_WARNING, sprintf('Not sending email summary for user %s; no notices.', $user_id)); + return true; + } + + // XXX: This is risky fingerpoken in der objektvars, but I didn't feel like + // figuring out a better way. -ESP + + $new_top = null; + + if ($notice instanceof ArrayWrapper) { + $new_top = $notice->_items[0]->id; + } + + $out = new XMLStringer(); + + $out->raw(sprintf(_('<p>Recent updates from %1s for %2s:</p>'), + common_config('site', 'name'), + $profile->getBestName())); + + + $out->elementStart('table', array('width' => '541px', 'style' => 'border: none')); + + while ($notice->fetch()) { + + $profile = Profile::staticGet('id', $notice->profile_id); + + if (empty($profile)) { + continue; + } + + $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE); + + $out->elementStart('tr'); + $out->elementStart('td', array('width' => AVATAR_STREAM_SIZE, + 'height' => AVATAR_STREAM_SIZE, + 'align' => 'left', + 'valign' => 'top')); + $out->element('img', array('src' => ($avatar) ? + $avatar->displayUrl() : + Avatar::defaultImage($avatar_size), + 'class' => 'avatar photo', + 'width' => AVATAR_STREAM_SIZE, + 'height' => AVATAR_STREAM_SIZE, + 'alt' => $profile->getBestName())); + $out->elementEnd('td'); + $out->elementStart('td', array('align' => 'left', + 'valign' => 'top')); + $out->element('a', array('href' => $profile->profileurl), + $profile->nickname); + $out->text(' '); + $out->raw($notice->rendered); + $out->element('br'); // yeah, you know it. I just wrote a <br> in the middle of my table layout. + $noticeurl = $notice->bestUrl(); + // above should always return an URL + assert(!empty($noticeurl)); + $out->elementStart('a', array('rel' => 'bookmark', + 'class' => 'timestamp', + 'href' => $noticeurl)); + $dt = common_date_iso8601($notice->created); + $out->element('abbr', array('class' => 'published', + 'title' => $dt), + common_date_string($notice->created)); + $out->elementEnd('a'); + if ($notice->hasConversation()) { + $conv = Conversation::staticGet('id', $notice->conversation); + $convurl = $conv->uri; + if (!empty($convurl)) { + $out->text(' '); + $out->element('a', + array('href' => $convurl.'#notice-'.$notice->id, + 'class' => 'response'), + _('in context')); + } + } + $out->elementEnd('td'); + $out->elementEnd('tr'); + } + + $out->elementEnd('table'); + + $out->raw(sprintf(_('<p><a href="%1s">change your email settings for %2s</a></p>'), + common_local_url('emailsettings'), + common_config('site', 'name'))); + + $body = $out->getString(); + + // FIXME: do something for people who don't like HTML email + + mail_to_user($user, _('Updates from your network'), $body, + array('Content-Type' => 'text/html; charset=UTF-8')); + + if (empty($ess)) { + + $ess = new Email_summary_status(); + + $ess->user_id = $user_id; + $ess->created = common_sql_now(); + $ess->last_summary_id = $new_top; + $ess->modified = common_sql_now(); + + $ess->insert(); + + } else { + + $orig = clone($ess); + + $ess->last_summary_id = $new_top; + $ess->modified = common_sql_now(); + + $ess->update($orig); + } + + return true; + } +} diff --git a/plugins/Enjit/enjitqueuehandler.php b/plugins/Enjit/enjitqueuehandler.php index 14085cc5e3..56fc396d17 100644 --- a/plugins/Enjit/enjitqueuehandler.php +++ b/plugins/Enjit/enjitqueuehandler.php @@ -80,5 +80,4 @@ class EnjitQueueHandler extends QueueHandler return $response->isOk(); } - } diff --git a/plugins/Facebook/FBC_XDReceiver.php b/plugins/Facebook/FBC_XDReceiver.php index 2bc790d5a0..bf4b59bba1 100644 --- a/plugins/Facebook/FBC_XDReceiver.php +++ b/plugins/Facebook/FBC_XDReceiver.php @@ -1,4 +1,7 @@ <?php +/** + * @todo Add header and documentation + */ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); @@ -13,13 +16,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { */ class FBC_XDReceiverAction extends Action { - /** * Do we need to write to the database? * * @return boolean true */ - function isReadonly() { return true; @@ -32,7 +33,6 @@ class FBC_XDReceiverAction extends Action * * @return void */ - function handle($args) { // Parent handling, including cache check @@ -63,6 +63,4 @@ class FBC_XDReceiverAction extends Action $this->elementEnd('html'); } - } - diff --git a/plugins/Facebook/FBConnectAuth.php b/plugins/Facebook/FBConnectAuth.php index 8eba7fc135..84d51578f1 100644 --- a/plugins/Facebook/FBConnectAuth.php +++ b/plugins/Facebook/FBConnectAuth.php @@ -27,6 +27,10 @@ * @link http://status.net/ */ +if (!defined('STATUSNET')) { + exit(1); +} + require_once INSTALLDIR . '/plugins/Facebook/FacebookPlugin.php'; class FBConnectauthAction extends Action @@ -60,12 +64,10 @@ class FBConnectauthAction extends Action parent::handle($args); if (common_is_real_login()) { - // User is already logged in. Does she already have a linked Facebook acct? $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE); if (!empty($flink)) { - // User already has a linked Facebook account and shouldn't be here common_debug('Facebook Connect Plugin - ' . 'There is already a local user (' . $flink->user_id . @@ -74,8 +76,7 @@ class FBConnectauthAction extends Action // We don't want these cookies getFacebook()->clear_cookie_state(); - $this->clientError(_m('There is already a local user linked with this Facebook.')); - + $this->clientError(_m('There is already a local user linked with this Facebook account.')); } else { // User came from the Facebook connect settings tab, and @@ -102,7 +103,7 @@ class FBConnectauthAction extends Action } else { common_debug('Facebook Connect Plugin - ' . print_r($this->args, true)); - $this->showForm(_m('Something weird happened.'), + $this->showForm(_m('An unknown error has occured.'), $this->trimmed('newname')); } } else { @@ -116,12 +117,14 @@ class FBConnectauthAction extends Action $this->element('div', array('class' => 'error'), $this->error); } else { $this->element('div', 'instructions', + // TRANS: %s is the site name. sprintf(_m('This is the first time you\'ve logged into %s so we must connect your Facebook to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name'))); } } function title() { + // TRANS: Page title. return _m('Facebook Account Setup'); } @@ -155,6 +158,7 @@ class FBConnectauthAction extends Action 'class' => 'form_settings', 'action' => common_local_url('FBConnectAuth'))); $this->elementStart('fieldset', array('id' => 'settings_facebook_connect_options')); + // TRANS: Legend. $this->element('legend', null, _m('Connection options')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); @@ -164,7 +168,8 @@ class FBConnectauthAction extends Action 'name' => 'license', 'value' => 'true')); $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license')); - $message = _('My text and files are available under %s ' . + // TRANS: %s is the name of the license used by the user for their status updates. + $message = _m('My text and files are available under %s ' . 'except this private data: password, ' . 'email address, IM address, and phone number.'); $link = '<a href="' . @@ -180,33 +185,39 @@ class FBConnectauthAction extends Action $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); $this->element('legend', null, + // TRANS: Legend. _m('Create new account')); $this->element('p', null, _m('Create a new user with this nickname.')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label. $this->input('newname', _m('New nickname'), ($this->username) ? $this->username : '', _m('1-64 lowercase letters or numbers, no punctuation or spaces')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('create', _m('Create')); + // TRANS: Submit button. + $this->submit('create', _m('BUTTON','Create')); $this->elementEnd('fieldset'); $this->elementStart('fieldset'); + // TRANS: Legend. $this->element('legend', null, _m('Connect existing account')); $this->element('p', null, _m('If you already have an account, login with your username and password to connect it to your Facebook.')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label. $this->input('nickname', _m('Existing nickname')); $this->elementEnd('li'); $this->elementStart('li'); $this->password('password', _m('Password')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('connect', _m('Connect')); + // TRANS: Submit button. + $this->submit('connect', _m('BUTTON','Connect')); $this->elementEnd('fieldset'); $this->elementEnd('fieldset'); @@ -222,6 +233,7 @@ class FBConnectauthAction extends Action function createNewUser() { if (common_config('site', 'closed')) { + // TRANS: Client error trying to register with registrations not allowed. $this->clientError(_m('Registration not allowed.')); return; } @@ -231,6 +243,7 @@ class FBConnectauthAction extends Action if (common_config('site', 'inviteonly')) { $code = $_SESSION['invitecode']; if (empty($code)) { + // TRANS: Client error trying to register with registrations 'invite only'. $this->clientError(_m('Registration not allowed.')); return; } @@ -238,18 +251,16 @@ class FBConnectauthAction extends Action $invite = Invitation::staticGet($code); if (empty($invite)) { + // TRANS: Client error trying to register with an invalid invitation code. $this->clientError(_m('Not a valid invitation code.')); return; } } - $nickname = $this->trimmed('newname'); - - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_m('Nickname must have only lowercase letters and numbers and no spaces.')); - return; + try { + $nickname = Nickname::normalize($this->trimmed('newname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); } if (!User::allowed_nickname($nickname)) { @@ -422,8 +433,9 @@ class FBConnectauthAction extends Action return null; } - // Given a string, try to make it work as a nickname - + /** + * Given a string, try to make it work as a nickname + */ function nicknamize($str) { $str = preg_replace('/\W/', '', $str); @@ -432,9 +444,7 @@ class FBConnectauthAction extends Action function isNewNickname($str) { - if (!Validate::string($str, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { + if (!Nickname::isValid($str)) { return false; } if (!User::allowed_nickname($str)) { @@ -467,5 +477,4 @@ class FBConnectauthAction extends Action return null; } } - } diff --git a/plugins/Facebook/FBConnectLogin.php b/plugins/Facebook/FBConnectLogin.php index 20c409f3ea..8345532dbd 100644 --- a/plugins/Facebook/FBConnectLogin.php +++ b/plugins/Facebook/FBConnectLogin.php @@ -38,6 +38,7 @@ class FBConnectLoginAction extends Action function getInstructions() { + // TRANS: Instructions. return _m('Login with your Facebook Account'); } @@ -52,6 +53,7 @@ class FBConnectLoginAction extends Action function title() { + // TRANS: Page title. return _m('Facebook Login'); } diff --git a/plugins/Facebook/FBConnectSettings.php b/plugins/Facebook/FBConnectSettings.php index 590dffd8a9..701994d0d0 100644 --- a/plugins/Facebook/FBConnectSettings.php +++ b/plugins/Facebook/FBConnectSettings.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/lib/connectsettingsaction.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class FBConnectSettingsAction extends ConnectSettingsAction { /** @@ -50,9 +49,9 @@ class FBConnectSettingsAction extends ConnectSettingsAction * * @return string Title of the page */ - function title() { + // TRANS: Page title. return _m('Facebook Connect Settings'); } @@ -61,9 +60,9 @@ class FBConnectSettingsAction extends ConnectSettingsAction * * @return instructions for use */ - function getInstructions() { + // TRANS: Instructions. return _m('Manage how your account connects to Facebook'); } @@ -74,7 +73,6 @@ class FBConnectSettingsAction extends ConnectSettingsAction * * @return void */ - function showContent() { $user = common_current_user(); @@ -116,17 +114,21 @@ class FBConnectSettingsAction extends ConnectSettingsAction $this->elementStart('fieldset'); + // TRANS: Legend. $this->element('legend', null, _m('Disconnect my account from Facebook')); if (!$user->password) { $this->elementStart('p', array('class' => 'form_guide')); + // @todo FIXME: Bad i18n. Patchwork message in three parts. + // TRANS: Followed by a link containing text "set a password". $this->text(_m('Disconnecting your Faceboook ' . 'would make it impossible to log in! Please ')); $this->element('a', array('href' => common_local_url('passwordsettings')), + // TRANS: Preceded by "Please " and followed by " first." _m('set a password')); - + // TRANS: Preceded by "Please set a password". $this->text(_m(' first.')); $this->elementEnd('p'); } else { @@ -139,7 +141,8 @@ class FBConnectSettingsAction extends ConnectSettingsAction $this->element('p', 'instructions', sprintf($note, $site, $site)); - $this->submit('disconnect', _m('Disconnect')); + // TRANS: Submit button. + $this->submit('disconnect', _m('BUTTON','Disconnect')); } $this->elementEnd('fieldset'); @@ -155,7 +158,6 @@ class FBConnectSettingsAction extends ConnectSettingsAction * * @return void */ - function handlePost() { // CSRF protection @@ -197,7 +199,5 @@ class FBConnectSettingsAction extends ConnectSettingsAction $this->showForm(_m('Not sure what you\'re trying to do.')); return; } - } - } diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 19989a952e..798009817c 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -45,10 +45,8 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class FacebookPlugin extends Plugin { - const VERSION = STATUSNET_VERSION; /** @@ -59,7 +57,6 @@ class FacebookPlugin extends Plugin { // Allow the key and secret to be passed in // Control panel will override - if (isset($this->apikey)) { $key = common_config('facebook', 'apikey'); if (empty($key)) { @@ -85,7 +82,6 @@ class FacebookPlugin extends Plugin * * @return boolean result */ - static function hasKeys() { $apiKey = common_config('facebook', 'apikey'); @@ -107,13 +103,11 @@ class FacebookPlugin extends Plugin * * @return boolean hook return */ - function onStartInitializeRouter($m) { $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); if (self::hasKeys()) { - // Facebook App stuff $m->connect('facebook/app', array('action' => 'facebookhome')); @@ -142,7 +136,6 @@ class FacebookPlugin extends Plugin * @return boolean hook return * */ - function onAutoload($cls) { switch ($cls) { @@ -183,7 +176,6 @@ class FacebookPlugin extends Plugin * * @return boolean hook value */ - function onEndAdminPanelNav($nav) { if (AdminPanelAction::canAdmin('facebook')) { @@ -192,7 +184,9 @@ class FacebookPlugin extends Plugin $nav->out->menuItem( common_local_url('facebookadminpanel'), - _m('Facebook'), + // TRANS: Menu item. + _m('MENU','Facebook'), + // TRANS: Tooltip for menu item "Facebook". _m('Facebook integration configuration'), $action_name == 'facebookadminpanel', 'nav_facebook_admin_panel' @@ -210,12 +204,9 @@ class FacebookPlugin extends Plugin * * @return void */ - function onStartShowHTML($action) { - if ($this->reqFbScripts($action)) { - // XXX: Horrible hack to make Safari, FF2, and Chrome work with // Facebook Connect. These browser cannot use Facebook's // DOM parsing routines unless the mime type of the page is @@ -238,9 +229,7 @@ class FacebookPlugin extends Plugin 'lang' => $language)); return false; - } else { - return true; } } @@ -255,7 +244,6 @@ class FacebookPlugin extends Plugin * @return void * */ - function onEndShowScripts($action) { if ($this->reqFbScripts($action)) { @@ -306,12 +294,10 @@ class FacebookPlugin extends Plugin $js = sprintf($js, $apikey, $login_url, $logout_url); // Compress the bugger down a bit - $js = str_replace(' ', '', $js); $action->inlineScript($js); } - } /** @@ -323,7 +309,6 @@ class FacebookPlugin extends Plugin * @return void * */ - function onEndShowFooter($action) { if ($this->reqFbScripts($action)) { @@ -340,7 +325,6 @@ class FacebookPlugin extends Plugin * @return void * */ - function onEndShowStatusNetStyles($action) { if ($this->reqFbScripts($action)) { @@ -357,7 +341,6 @@ class FacebookPlugin extends Plugin * * @return boolean true */ - function reqFbScripts($action) { if (!self::hasKeys()) { @@ -365,7 +348,6 @@ class FacebookPlugin extends Plugin } // If you're logged in w/FB Connect, you always need the FB stuff - $fbuid = $this->loggedIn(); if (!empty($fbuid)) { @@ -373,7 +355,6 @@ class FacebookPlugin extends Plugin } // List of actions that require FB stuff - $needy = array('FBConnectLoginAction', 'FBConnectauthAction', 'FBConnectSettingsAction'); @@ -383,7 +364,6 @@ class FacebookPlugin extends Plugin } return false; - } /** @@ -391,7 +371,6 @@ class FacebookPlugin extends Plugin * * @return mixed $fbuid the Facebook ID of the logged in user, or null */ - function loggedIn() { $user = common_current_user(); @@ -403,12 +382,9 @@ class FacebookPlugin extends Plugin $fbuid = 0; if (!empty($flink)) { - try { - $facebook = getFacebook(); $fbuid = $facebook->get_loggedin_user(); - } catch (Exception $e) { common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . 'Problem getting Facebook user: ' . @@ -432,17 +408,14 @@ class FacebookPlugin extends Plugin * @return void * */ - function onStartPrimaryNav($action) { if (self::hasKeys()) { $user = common_current_user(); if (!empty($user)) { - $fbuid = $this->loggedIn(); if (!empty($fbuid)) { - /* Default FB silhouette pic for FB users who haven't uploaded a profile pic yet. */ @@ -455,7 +428,7 @@ class FacebookPlugin extends Plugin $action->element('img', array('id' => 'fbc_profile-pic', 'src' => (!empty($url)) ? $url : $silhouetteUrl, - 'alt' => 'Facebook Connect User', + 'alt' => _m('Facebook Connect User'), 'width' => '16'), ''); $iconurl = common_path('plugins/Facebook/fbfavicon.ico'); @@ -477,18 +450,20 @@ class FacebookPlugin extends Plugin * * @return void */ - function onEndLoginGroupNav(&$action) { if (self::hasKeys()) { - $action_name = $action->trimmed('action'); $action->menuItem(common_local_url('FBConnectLogin'), - _m('Facebook'), + // @todo CHECKME: Should be 'Facebook Login'? + // TRANS: Menu item. + _m('MENU','Facebook'), + // TRANS: Tooltip for menu item "Facebook". _m('Login or register using Facebook'), 'FBConnectLogin' === $action_name); } + return true; } @@ -499,18 +474,20 @@ class FacebookPlugin extends Plugin * * @return void */ - function onEndConnectSettingsNav(&$action) { if (self::hasKeys()) { - $action_name = $action->trimmed('action'); $action->menuItem(common_local_url('FBConnectSettings'), - _m('Facebook'), + // @todo CHECKME: Should be 'Facebook Connect'? + // TRANS: Menu item tab. + _m('MENU','Facebook'), + // TRANS: Tooltip for menu item "Facebook". _m('Facebook Connect Settings'), $action_name === 'FBConnectSettings'); } + return true; } @@ -521,7 +498,6 @@ class FacebookPlugin extends Plugin * * @return void */ - function onStartLogout($action) { if (self::hasKeys()) { @@ -550,14 +526,12 @@ class FacebookPlugin extends Plugin * * @return string $url the url for the user's Facebook avatar */ - function getProfilePicURL($fbuid) { $facebook = getFacebook(); $url = null; try { - $fqry = 'SELECT pic_square FROM user WHERE uid = %s'; $result = $facebook->api_client->fql_query(sprintf($fqry, $fbuid)); @@ -582,7 +556,6 @@ class FacebookPlugin extends Plugin * * @return boolean hook return */ - function onStartEnqueueNotice($notice, &$transports) { if (self::hasKeys() && $notice->isLocal()) { @@ -613,14 +586,14 @@ class FacebookPlugin extends Plugin 'version' => self::VERSION, 'author' => 'Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:Facebook', + // TRANS: Plugin description. 'rawdescription' => _m( - 'The Facebook plugin allows you to integrate ' . - 'your StatusNet instance with ' . + 'The Facebook plugin allows integrating ' . + 'StatusNet instances with ' . '<a href="http://facebook.com/">Facebook</a> ' . 'and Facebook Connect.' ) ); return true; } - } diff --git a/plugins/Facebook/facebookaction.php b/plugins/Facebook/facebookaction.php index f65b97c865..e4edcea0d9 100644 --- a/plugins/Facebook/facebookaction.php +++ b/plugins/Facebook/facebookaction.php @@ -36,7 +36,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebooknoticeform.php'; class FacebookAction extends Action { - var $facebook = null; var $fbuid = null; var $flink = null; @@ -102,7 +101,6 @@ class FacebookAction extends Action * * @return void */ - function startHTML($type=null) { $this->showStylesheets(); @@ -143,7 +141,6 @@ class FacebookAction extends Action function showHead($error, $success) { - if ($error) { $this->element("h1", null, $error); } @@ -168,7 +165,10 @@ class FacebookAction extends Action $this->elementStart('li', array('class' => ($this->action == 'facebookhome') ? 'current' : 'facebook_home')); $this->element('a', - array('href' => 'index.php', 'title' => _m('Home')), _m('Home')); + // TRANS: Link description for 'Home' link that leads to a start page. + array('href' => 'index.php', 'title' => _m('MENU','Home')), + // TRANS: Tooltip for 'Home' link that leads to a start page. + _m('Home')); $this->elementEnd('li'); if (common_config('invite', 'enabled')) { @@ -176,7 +176,10 @@ class FacebookAction extends Action array('class' => ($this->action == 'facebookinvite') ? 'current' : 'facebook_invite')); $this->element('a', - array('href' => 'invite.php', 'title' => _m('Invite')), _m('Invite')); + // TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. + array('href' => 'invite.php', 'title' => _m('MENU','Invite')), + // TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. + _m('Invite')); $this->elementEnd('li'); } @@ -185,7 +188,10 @@ class FacebookAction extends Action ($this->action == 'facebooksettings') ? 'current' : 'facebook_settings')); $this->element('a', array('href' => 'settings.php', - 'title' => _m('Settings')), _m('Settings')); + // TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. + 'title' => _m('MENU','Settings')), + // TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. + _m('Settings')); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -219,22 +225,22 @@ class FacebookAction extends Action function showInstructions() { - $this->elementStart('div', array('class' => 'facebook_guide')); $this->elementStart('dl', array('class' => 'system_notice')); $this->element('dt', null, 'Page Notice'); $loginmsg_part1 = _m('To use the %s Facebook Application you need to login ' . - 'with your username and password. Don\'t have a username yet? '); + 'with your username and password. Don\'t have a username yet?'); $loginmsg_part2 = _m(' a new account.'); $this->elementStart('dd'); $this->elementStart('p'); $this->text(sprintf($loginmsg_part1, common_config('site', 'name'))); + // @todo FIXME: Bad i18n. Patchwork message in two parts. $this->element('a', array('href' => common_local_url('register')), _m('Register')); - $this->text($loginmsg_part2); + $this->text( " " . $loginmsg_part2); $this->elementEnd('p'); $this->elementEnd('dd'); @@ -272,7 +278,8 @@ class FacebookAction extends Action $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('submit', _m('Login')); + // TRANS: Login button. + $this->submit('submit', _m('BUTTON','Login')); $this->elementEnd('fieldset'); $this->elementEnd('form'); @@ -283,7 +290,6 @@ class FacebookAction extends Action $this->elementEnd('div'); $this->elementEnd('div'); - } function updateProfileBox($notice) @@ -356,7 +362,6 @@ class FacebookAction extends Action function saveNewNotice() { - $user = $this->flink->getUser(); $content = $this->trimmed('status_textarea'); @@ -365,9 +370,10 @@ class FacebookAction extends Action $this->showPage(_m('No notice content!')); return; } else { - $content_shortened = common_shorten_links($content); + $content_shortened = $user->shortenLinks($content); if (Notice::contentTooLong($content_shortened)) { + // @todo FIXME: i18n: Needs plural. $this->showPage(sprintf(_m('That\'s too long. Max notice size is %d chars.'), Notice::maxContent())); return; @@ -379,9 +385,7 @@ class FacebookAction extends Action $cmd = $inter->handle_command($user, $content_shortened); if ($cmd) { - // XXX fix this - $cmd->execute(new WebChannel()); return; } @@ -398,12 +402,10 @@ class FacebookAction extends Action } } - } class FacebookNoticeList extends NoticeList { - /** * constructor * @@ -423,7 +425,6 @@ class FacebookNoticeList extends NoticeList * * @return int count of notices listed. */ - function show() { $this->out->elementStart('div', array('id' =>'notices_primary')); @@ -459,17 +460,14 @@ class FacebookNoticeList extends NoticeList * @return FacebookNoticeListItem a list item for displaying the notice * formatted for display in the Facebook App. */ - function newListItem($notice) { return new FacebookNoticeListItem($notice, $this); } - } class FacebookNoticeListItem extends NoticeListItem { - /** * constructor * @@ -477,7 +475,6 @@ class FacebookNoticeListItem extends NoticeListItem * * @param Notice $notice The notice we'll display */ - function __construct($notice, $out=null) { parent::__construct($notice, $out); @@ -491,7 +488,6 @@ class FacebookNoticeListItem extends NoticeListItem * * @return void */ - function show() { $this->showStart(); @@ -502,12 +498,10 @@ class FacebookNoticeListItem extends NoticeListItem $this->showEnd(); } - } class FacebookProfileBoxNotice extends FacebookNoticeListItem { - /** * constructor * @@ -515,7 +509,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem * * @param Notice $notice The notice we'll display */ - function __construct($notice, $out=null) { parent::__construct($notice, $out); @@ -527,7 +520,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem * * @return void */ - function show() { $this->showNotice(); @@ -537,7 +529,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem function showAppLink() { - $this->facebook = getFacebook(); $app_props = $this->facebook->api_client->Admin_getAppProperties( @@ -551,5 +542,4 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem $this->out->text($this->app_name); $this->out->elementEnd('a'); } - } diff --git a/plugins/Facebook/facebookadminpanel.php b/plugins/Facebook/facebookadminpanel.php index ae1c7302f9..ae26c7d3e8 100644 --- a/plugins/Facebook/facebookadminpanel.php +++ b/plugins/Facebook/facebookadminpanel.php @@ -40,7 +40,6 @@ 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 FacebookadminpanelAction extends AdminPanelAction { /** @@ -48,7 +47,6 @@ class FacebookadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { return _m('Facebook'); @@ -59,7 +57,6 @@ class FacebookadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { return _m('Facebook integration settings'); @@ -70,7 +67,6 @@ class FacebookadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new FacebookAdminPanelForm($this); @@ -83,7 +79,6 @@ class FacebookadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array( @@ -100,7 +95,6 @@ class FacebookadminpanelAction extends AdminPanelAction } // This throws an exception on validation errors - $this->validate($values); // assert(all values are valid); @@ -145,7 +139,6 @@ class FacebookAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'facebookadminpanel'; @@ -156,7 +149,6 @@ class FacebookAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -167,7 +159,6 @@ class FacebookAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('facebookadminpanel'); @@ -178,7 +169,6 @@ class FacebookAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart( @@ -215,9 +205,8 @@ class FacebookAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save Facebook settings')); + $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Facebook settings')); } } diff --git a/plugins/Facebook/facebookhome.php b/plugins/Facebook/facebookhome.php index 60782f63c9..8b8b974458 100644 --- a/plugins/Facebook/facebookhome.php +++ b/plugins/Facebook/facebookhome.php @@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; class FacebookhomeAction extends FacebookAction { - var $page = null; function prepare($argarray) @@ -54,7 +53,6 @@ class FacebookhomeAction extends FacebookAction } if ($this->flink) { - $this->user = $this->flink->getUser(); // If this is the first time the user has started the app @@ -82,18 +80,14 @@ class FacebookhomeAction extends FacebookAction // Facebook status update permission? Then show the main page // of the app $this->showPage(); - } else { - // User hasn't authenticated yet, prompt for creds $this->login(); } - } function login() { - $this->showStylesheets(); $nickname = common_canonical_nickname($this->trimmed('nickname')); @@ -102,13 +96,11 @@ class FacebookhomeAction extends FacebookAction $msg = null; if ($nickname) { - if (common_check_user($nickname, $password)) { - $user = User::staticGet('nickname', $nickname); if (!$user) { - $this->showLoginForm(_m("Server error - couldn't get user!")); + $this->showLoginForm(_m("Server error: Couldn't get user!")); } $flink = DB_DataObject::factory('foreign_link'); @@ -126,7 +118,6 @@ class FacebookhomeAction extends FacebookAction $this->getUpdatePermission(); return; - } else { $msg = _m('Incorrect username or password.'); } @@ -134,7 +125,6 @@ class FacebookhomeAction extends FacebookAction $this->showLoginForm($msg); $this->showFooter(); - } function setDefaults() @@ -155,8 +145,15 @@ class FacebookhomeAction extends FacebookAction function title() { if ($this->page > 1) { - return sprintf(_m("%s and friends, page %d"), $this->user->nickname, $this->page); + // @todo FIXME: Core should have methods to get "Full name (nickname)" in a localised form + // so that this can be used consistenly throughout StatusNet without having to implement it + // over and over.. + // TRANS: Page title. + // TRANS: %1$s is a user nickname, %2$s is a page number. + return sprintf(_m('%1$s and friends, page %2$d'), $this->user->nickname, $this->page); } else { + // TRANS: Page title. + // TRANS: %s is a user nickname return sprintf(_m("%s and friends"), $this->user->nickname); } } @@ -175,17 +172,16 @@ class FacebookhomeAction extends FacebookAction function showNoticeList($notice) { - $nl = new NoticeList($notice, $this); return $nl->show(); } function getUpdatePermission() { - $this->showStylesheets(); $this->elementStart('div', array('class' => 'facebook_guide')); + // TRANS: Instructions. %s is the application name. $instructions = sprintf(_m('If you would like the %s app to automatically update ' . 'your Facebook status with your latest notice, you need ' . 'to give it permission.'), $this->app_name); @@ -209,6 +205,7 @@ class FacebookhomeAction extends FacebookAction '&next_cancel=' . $next . '&submit=skip'; $this->elementStart('span', array('class' => 'facebook-button')); + // @todo FIXME: sprintf not needed here? $this->element('a', array('href' => $auth_url), sprintf(_m('Okay, do it!'), $this->app_name)); $this->elementEnd('span'); @@ -216,13 +213,13 @@ class FacebookhomeAction extends FacebookAction $this->elementEnd('li'); $this->elementStart('li', array('id' => 'fb-permissions-item')); - $this->submit('skip', _m('Skip')); + // TRANS: Button text. Clicking the button will skip updating Facebook permissions. + $this->submit('skip', _m('BUTTON','Skip')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('form'); $this->elementEnd('div'); - } /** @@ -238,7 +235,6 @@ class FacebookhomeAction extends FacebookAction */ function pagination($have_before, $have_after, $page, $action, $args=null) { - // Does a little before-after block for next/prev page // XXX: Fix so this uses common_local_url() if possible. @@ -254,6 +250,7 @@ class FacebookhomeAction extends FacebookAction $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_prev')); $this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'prev'), + // TRANS: Pagination link. _m('After')); $this->elementEnd('li'); } @@ -262,6 +259,7 @@ class FacebookhomeAction extends FacebookAction $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_next')); $this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'next'), + // TRANS: Pagination link. _m('Before')); $this->elementEnd('li'); } @@ -271,5 +269,4 @@ class FacebookhomeAction extends FacebookAction $this->elementEnd('dl'); } } - } diff --git a/plugins/Facebook/facebookinvite.php b/plugins/Facebook/facebookinvite.php index e02c7bf3ed..a50eace12f 100644 --- a/plugins/Facebook/facebookinvite.php +++ b/plugins/Facebook/facebookinvite.php @@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; class FacebookinviteAction extends FacebookAction { - function handle($args) { parent::handle($args); @@ -41,7 +40,6 @@ class FacebookinviteAction extends FacebookAction * * @return void */ - function showForm($error=null) { $this->error = $error; @@ -56,7 +54,6 @@ class FacebookinviteAction extends FacebookAction * * @return void */ - function showContent() { if ($this->arg('ids')) { @@ -68,9 +65,10 @@ class FacebookinviteAction extends FacebookAction function showSuccessContent() { - - $this->element('h2', null, sprintf(_m('Thanks for inviting your friends to use %s'), + // TRANS: %s is the name of the site. + $this->element('h2', null, sprintf(_m('Thanks for inviting your friends to use %s.'), common_config('site', 'name'))); + // TRANS: Followed by an unordered list with invited friends. $this->element('p', null, _m('Invitations have been sent to the following users:')); $friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to access the list? @@ -85,8 +83,7 @@ class FacebookinviteAction extends FacebookAction $this->elementEnd('li'); } - $this->elementEnd("ul"); - + $this->elementEnd('ul'); } function showFormContent() @@ -100,6 +97,7 @@ class FacebookinviteAction extends FacebookAction 'type' => common_config('site', 'name'), 'content' => $content)); $this->hidden('invite', 'true'); + // TRANS: %s is the name of the site. $actiontext = sprintf(_m('Invite your friends to use %s'), common_config('site', 'name')); $multi_params = array('showborder' => 'false'); @@ -122,6 +120,7 @@ class FacebookinviteAction extends FacebookAction if ($exclude_ids) { + // TRANS: %s is the name of the site. $this->element('h2', null, sprintf(_m('Friends already using %s:'), common_config('site', 'name'))); $this->elementStart('ul', array('id' => 'facebook-friends')); @@ -140,7 +139,7 @@ class FacebookinviteAction extends FacebookAction function title() { + // TRANS: Page title. return sprintf(_m('Send invitations')); } - } diff --git a/plugins/Facebook/facebooklogin.php b/plugins/Facebook/facebooklogin.php index 7a173ddaeb..1961be57b6 100644 --- a/plugins/Facebook/facebooklogin.php +++ b/plugins/Facebook/facebooklogin.php @@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; class FacebookinviteAction extends FacebookAction { - function handle($args) { parent::handle($args); @@ -37,6 +36,7 @@ class FacebookinviteAction extends FacebookAction $this->facebook->api_client->data_getUserPreference( FACEBOOK_PROMPTED_UPDATE_PREF) == 'true') { + // @todo FIXME: Missing i18n? echo '<h1>REDIRECT TO HOME</h1>'; } } else { @@ -46,7 +46,6 @@ class FacebookinviteAction extends FacebookAction function showContent() { - // If the user has opted not to initially allow the app to have // Facebook status update permission, store that preference. Only // promt the user the first time she uses the app @@ -56,7 +55,6 @@ class FacebookinviteAction extends FacebookAction } if ($this->flink) { - $this->user = $this->flink->getUser(); // If this is the first time the user has started the app @@ -69,7 +67,6 @@ class FacebookinviteAction extends FacebookAction return; } } - } else { $this->showLoginForm(); } @@ -88,6 +85,8 @@ class FacebookinviteAction extends FacebookAction function title() { + // @todo FIXME: Give a more precise description? Suggestion: "Login with Facebook Connect" + // TRANS: Page title. return sprintf(_m('Login')); } @@ -95,5 +94,4 @@ class FacebookinviteAction extends FacebookAction { } - } diff --git a/plugins/Facebook/facebooknoticeform.php b/plugins/Facebook/facebooknoticeform.php index 5989147f49..d52222c933 100644 --- a/plugins/Facebook/facebooknoticeform.php +++ b/plugins/Facebook/facebooknoticeform.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Form for posting a notice from within the Facebook App. + * Form for posting a notice from within the Facebook App. * * This is a stripped down version of the normal NoticeForm (sans * location stuff and media upload stuff). I'm not sure we can share the @@ -53,31 +53,26 @@ require_once INSTALLDIR . '/lib/form.php'; * * @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; /** @@ -87,7 +82,6 @@ class FacebookNoticeForm extends Form * @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); @@ -102,7 +96,7 @@ class FacebookNoticeForm extends Form } 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 @@ -114,7 +108,6 @@ class FacebookNoticeForm extends Form * * @return string ID of the form */ - function id() { return 'form_notice'; @@ -125,7 +118,6 @@ class FacebookNoticeForm extends Form * * @return string class of the form */ - function formClass() { return 'form_notice'; @@ -136,7 +128,6 @@ class FacebookNoticeForm extends Form * * @return string URL of the action */ - function action() { return $this->post_action; @@ -149,7 +140,8 @@ class FacebookNoticeForm extends Form */ function formLegend() { - $this->out->element('legend', null, _('Send a notice')); + // TRANS: Legend. + $this->out->element('legend', null, _m('Send a notice')); } /** @@ -157,12 +149,12 @@ class FacebookNoticeForm extends Form * * @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)); + // TRANS: Field label. + sprintf(_m('What\'s up, %s?'), $this->user->nickname)); // XXX: vary by defined max size $this->out->element('textarea', array('id' => 'notice_data-text', 'cols' => 35, @@ -174,7 +166,7 @@ class FacebookNoticeForm extends Form if ($contentLimit > 0) { $this->out->elementStart('dl', 'form_note'); - $this->out->element('dt', null, _('Available characters')); + $this->out->element('dt', null, _m('Available characters')); $this->out->element('dd', array('id' => 'notice_text-count'), $contentLimit); $this->out->elementEnd('dl'); @@ -194,13 +186,13 @@ class FacebookNoticeForm extends Form * * @return void */ - function formActions() { $this->out->element('input', array('id' => 'notice_action-submit', 'class' => 'submit', 'name' => 'status_submit', 'type' => 'submit', - 'value' => _('Send'))); + // TRANS: Button text. + 'value' => _m('BUTTON','Send'))); } } diff --git a/plugins/Facebook/facebookremove.php b/plugins/Facebook/facebookremove.php index 09cb333428..bc76daaef6 100644 --- a/plugins/Facebook/facebookremove.php +++ b/plugins/Facebook/facebookremove.php @@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; class FacebookremoveAction extends FacebookAction { - function handle($args) { parent::handle($args); @@ -49,6 +48,12 @@ class FacebookremoveAction extends FacebookAction $flink = Foreign_link::getByForeignID($this->arg('fb_sig_user'), 2); + if (!$flink) { + common_log(LOG_ERR, "Tried to delete missing foreign_link entry with Facebook ID " . $this->arg('fb_sig_user')); + $this->serverError(_m('Couldn\'t remove Facebook user: already deleted.')); + return; + } + common_debug("Removing foreign link to Facebook - local user ID: $flink->user_id, Facebook ID: $flink->foreign_id"); $result = $flink->delete(); @@ -65,5 +70,4 @@ class FacebookremoveAction extends FacebookAction 'unsuccessfully tried to remove a foreign link to Facebook!'); } } - } diff --git a/plugins/Facebook/facebooksettings.php b/plugins/Facebook/facebooksettings.php index f94a346b57..1379b9a9cc 100644 --- a/plugins/Facebook/facebooksettings.php +++ b/plugins/Facebook/facebooksettings.php @@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; class FacebooksettingsAction extends FacebookAction { - function handle($args) { parent::handle($args); @@ -40,7 +39,6 @@ class FacebooksettingsAction extends FacebookAction * * @return void */ - function showContent() { if ($this->arg('save')) { @@ -62,6 +60,7 @@ class FacebooksettingsAction extends FacebookAction if ($result === false) { $this->showForm(_m('There was a problem saving your sync preferences!')); } else { + // TRANS: Confirmation that synchronisation settings have been saved into the system. $this->showForm(_m('Sync preferences saved.'), true); } } @@ -99,16 +98,16 @@ class FacebooksettingsAction extends FacebookAction $this->elementStart('li'); - $this->submit('save', _m('Save')); + // TRANS: Submit button to save synchronisation settings. + $this->submit('save', _m('BUTTON','Save')); $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('form'); - } else { - + // TRANS: %s is the application name. $instructions = sprintf(_m('If you would like %s to automatically update ' . 'your Facebook status with your latest notice, you need ' . 'to give it permission.'), $this->app_name); @@ -127,12 +126,11 @@ class FacebooksettingsAction extends FacebookAction $this->elementEnd('li'); $this->elementEnd('ul'); } - } function title() { + // TRANS: Page title for synchronisation settings. return _m('Sync preferences'); } - } diff --git a/plugins/Facebook/facebookutil.php b/plugins/Facebook/facebookutil.php index 1290fed557..fb70c51bc5 100644 --- a/plugins/Facebook/facebookutil.php +++ b/plugins/Facebook/facebookutil.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + require_once INSTALLDIR . '/plugins/Facebook/facebook/facebook.php'; require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php'; require_once INSTALLDIR . '/lib/noticelist.php'; @@ -45,13 +49,11 @@ function getFacebook() } function isFacebookBound($notice, $flink) { - if (empty($flink)) { return false; } // Avoid a loop - if ($notice->source == 'Facebook') { common_log(LOG_INFO, "Skipping notice $notice->id because its " . 'source is Facebook.'); @@ -59,7 +61,6 @@ function isFacebookBound($notice, $flink) { } // If the user does not want to broadcast to Facebook, move along - if (!($flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) { common_log(LOG_INFO, "Skipping notice $notice->id " . 'because user has FOREIGN_NOTICE_SEND bit off.'); @@ -68,14 +69,12 @@ function isFacebookBound($notice, $flink) { // If it's not a reply, or if the user WANTS to send @-replies, // then, yeah, it can go to Facebook. - if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { return true; } return false; - } function facebookBroadcastNotice($notice) @@ -87,16 +86,12 @@ function facebookBroadcastNotice($notice) ); if (isFacebookBound($notice, $flink)) { - // Okay, we're good to go, update the FB status - $fbuid = $flink->foreign_id; $user = $flink->getUser(); try { - // Check permissions - common_debug( 'FacebookPlugin - checking for publish_stream permission for user ' . "$user->nickname ($user->id), Facebook UID: $fbuid" @@ -105,7 +100,6 @@ function facebookBroadcastNotice($notice) // NOTE: $facebook->api_client->users_hasAppPermission('publish_stream', $fbuid) // has been returning bogus results, so we're using FQL to check for // publish_stream permission now - $fql = "SELECT publish_stream FROM permissions WHERE uid = $fbuid"; $result = $facebook->api_client->fql_query($fql); @@ -152,7 +146,6 @@ function facebookBroadcastNotice($notice) } // Post to Facebook - if ($notice->hasAttachments() && $canPublish == 1) { publishStream($notice, $user, $fbuid); } elseif ($canUpdate == 1 || $canPublish == 1) { @@ -165,7 +158,6 @@ function facebookBroadcastNotice($notice) } // Finally, attempt to update the user's profile box - if ($canPublish == 1 || $canUpdate == 1) { updateProfileBox($facebook, $flink, $notice, $user); } @@ -412,7 +404,6 @@ function remove_facebook_app($flink) common_log(LOG_WARNING, $msg); } - } /** @@ -423,7 +414,6 @@ function remove_facebook_app($flink) * * @return boolean success flag */ - function mail_facebook_app_removed($user) { $profile = $user->getProfile(); @@ -447,5 +437,4 @@ function mail_facebook_app_removed($user) common_switch_locale(); return mail_to_user($user, $subject, $body); - } diff --git a/plugins/Facebook/locale/Facebook.pot b/plugins/Facebook/locale/Facebook.pot index dce10d230f..f41ee06615 100644 --- a/plugins/Facebook/locale/Facebook.pot +++ b/plugins/Facebook/locale/Facebook.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: facebookutil.php:285 +#: facebookutil.php:429 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that we are unable to update your " @@ -31,27 +31,28 @@ msgid "" "%2$s" msgstr "" -#: FBConnectAuth.php:51 +#: FBConnectAuth.php:55 msgid "You must be logged into Facebook to use Facebook Connect." msgstr "" -#: FBConnectAuth.php:77 -msgid "There is already a local user linked with this Facebook." +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." msgstr "" -#: FBConnectAuth.php:90 FBConnectSettings.php:164 +#: FBConnectAuth.php:91 FBConnectSettings.php:166 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: FBConnectAuth.php:95 +#: FBConnectAuth.php:96 msgid "You can't register if you don't agree to the license." msgstr "" -#: FBConnectAuth.php:105 -msgid "Something weird happened." +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." msgstr "" -#: FBConnectAuth.php:119 +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your " @@ -59,365 +60,476 @@ msgid "" "with your existing account, if you have one." msgstr "" -#: FBConnectAuth.php:125 +#. TRANS: Page title. +#: FBConnectAuth.php:128 msgid "Facebook Account Setup" msgstr "" -#: FBConnectAuth.php:158 +#. TRANS: Legend. +#: FBConnectAuth.php:162 msgid "Connection options" msgstr "" -#: FBConnectAuth.php:183 +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 msgid "Create new account" msgstr "" -#: FBConnectAuth.php:185 +#: FBConnectAuth.php:191 msgid "Create a new user with this nickname." msgstr "" -#: FBConnectAuth.php:188 +#. TRANS: Field label. +#: FBConnectAuth.php:195 msgid "New nickname" msgstr "" -#: FBConnectAuth.php:190 +#: FBConnectAuth.php:197 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" -#: FBConnectAuth.php:193 +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" msgid "Create" msgstr "" -#: FBConnectAuth.php:198 +#: FBConnectAuth.php:207 msgid "Connect existing account" msgstr "" -#: FBConnectAuth.php:200 +#: FBConnectAuth.php:209 msgid "" "If you already have an account, login with your username and password to " "connect it to your Facebook." msgstr "" -#: FBConnectAuth.php:203 +#. TRANS: Field label. +#: FBConnectAuth.php:213 msgid "Existing nickname" msgstr "" -#: FBConnectAuth.php:206 facebookaction.php:271 +#: FBConnectAuth.php:216 facebookaction.php:277 msgid "Password" msgstr "" -#: FBConnectAuth.php:209 +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" msgid "Connect" msgstr "" -#: FBConnectAuth.php:225 FBConnectAuth.php:234 +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 msgid "Registration not allowed." msgstr "" -#: FBConnectAuth.php:241 +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 msgid "Not a valid invitation code." msgstr "" -#: FBConnectAuth.php:251 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: FBConnectAuth.php:256 +#: FBConnectAuth.php:267 msgid "Nickname not allowed." msgstr "" -#: FBConnectAuth.php:261 +#: FBConnectAuth.php:272 msgid "Nickname already in use. Try another one." msgstr "" -#: FBConnectAuth.php:279 FBConnectAuth.php:313 FBConnectAuth.php:333 +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 msgid "Error connecting user to Facebook." msgstr "" -#: FBConnectAuth.php:299 +#: FBConnectAuth.php:310 msgid "Invalid username or password." msgstr "" -#: facebooklogin.php:91 facebookaction.php:249 facebookaction.php:275 +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 msgid "Login" msgstr "" -#: facebookhome.php:111 -msgid "Server error - couldn't get user!" +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" msgstr "" -#: facebookhome.php:131 +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "" + +#: facebookhome.php:122 msgid "Incorrect username or password." msgstr "" -#: facebookhome.php:158 +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 #, php-format -msgid "%s and friends, page %d" +msgid "%1$s and friends, page %2$d" msgstr "" -#: facebookhome.php:160 +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 #, php-format msgid "%s and friends" msgstr "" -#: facebookhome.php:189 +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 #, php-format msgid "" "If you would like the %s app to automatically update your Facebook status " "with your latest notice, you need to give it permission." msgstr "" -#: facebookhome.php:213 +#: facebookhome.php:210 msgid "Okay, do it!" msgstr "" -#: facebookhome.php:219 +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" msgid "Skip" msgstr "" -#: facebookhome.php:248 facebookaction.php:330 +#: facebookhome.php:244 facebookaction.php:336 msgid "Pagination" msgstr "" -#: facebookhome.php:257 facebookaction.php:339 +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 msgid "After" msgstr "" -#: facebookhome.php:265 facebookaction.php:347 +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 msgid "Before" msgstr "" -#: facebookinvite.php:72 +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 #, php-format -msgid "Thanks for inviting your friends to use %s" +msgid "Thanks for inviting your friends to use %s." msgstr "" -#: facebookinvite.php:74 +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 msgid "Invitations have been sent to the following users:" msgstr "" -#: facebookinvite.php:94 +#: facebookinvite.php:91 #, php-format msgid "You have been invited to %s" msgstr "" -#: facebookinvite.php:103 +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 #, php-format msgid "Invite your friends to use %s" msgstr "" -#: facebookinvite.php:125 +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 #, php-format msgid "Friends already using %s:" msgstr "" +#. TRANS: Page title. #: facebookinvite.php:143 msgid "Send invitations" msgstr "" -#: FacebookPlugin.php:195 FacebookPlugin.php:488 FacebookPlugin.php:510 -#: facebookadminpanel.php:54 +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" msgid "Facebook" msgstr "" -#: FacebookPlugin.php:196 +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 msgid "Facebook integration configuration" msgstr "" -#: FacebookPlugin.php:489 +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 msgid "Login or register using Facebook" msgstr "" -#: FacebookPlugin.php:511 FBConnectSettings.php:56 +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 msgid "Facebook Connect Settings" msgstr "" -#: FacebookPlugin.php:617 +#: FacebookPlugin.php:591 msgid "" -"The Facebook plugin allows you to integrate your StatusNet instance with <a " -"href=\"http://facebook.com/\">Facebook</a> and Facebook Connect." +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." msgstr "" #: FBConnectLogin.php:33 msgid "Already logged in." msgstr "" -#: FBConnectLogin.php:41 +#. TRANS: Instructions. +#: FBConnectLogin.php:42 msgid "Login with your Facebook Account" msgstr "" -#: FBConnectLogin.php:55 +#. TRANS: Page title. +#: FBConnectLogin.php:57 msgid "Facebook Login" msgstr "" -#: facebookremove.php:58 +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 msgid "Couldn't remove Facebook user." msgstr "" +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. #: facebookaction.php:171 msgid "Home" msgstr "" -#: facebookaction.php:179 +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" msgid "Invite" msgstr "" -#: facebookaction.php:188 +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" msgid "Settings" msgstr "" -#: facebookaction.php:228 +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "" + +#: facebookaction.php:233 #, php-format msgid "" "To use the %s Facebook Application you need to login with your username and " -"password. Don't have a username yet? " +"password. Don't have a username yet?" msgstr "" -#: facebookaction.php:230 +#: facebookaction.php:235 msgid " a new account." msgstr "" -#: facebookaction.php:236 +#: facebookaction.php:242 msgid "Register" msgstr "" -#: facebookaction.php:268 +#: facebookaction.php:274 msgid "Nickname" msgstr "" -#: facebookaction.php:281 +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "" + +#: facebookaction.php:288 msgid "Lost or forgotten password?" msgstr "" -#: facebookaction.php:365 +#: facebookaction.php:370 msgid "No notice content!" msgstr "" -#: facebookaction.php:371 +#: facebookaction.php:377 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: facebookaction.php:430 +#: facebookaction.php:431 msgid "Notices" msgstr "" -#: facebookadminpanel.php:65 +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: facebookadminpanel.php:62 msgid "Facebook integration settings" msgstr "" -#: facebookadminpanel.php:129 +#: facebookadminpanel.php:123 msgid "Invalid Facebook API key. Max length is 255 characters." msgstr "" -#: facebookadminpanel.php:135 +#: facebookadminpanel.php:129 msgid "Invalid Facebook API secret. Max length is 255 characters." msgstr "" -#: facebookadminpanel.php:188 +#: facebookadminpanel.php:178 msgid "Facebook application settings" msgstr "" -#: facebookadminpanel.php:194 +#: facebookadminpanel.php:184 msgid "API key" msgstr "" -#: facebookadminpanel.php:195 +#: facebookadminpanel.php:185 msgid "API key provided by Facebook" msgstr "" -#: facebookadminpanel.php:203 +#: facebookadminpanel.php:193 msgid "Secret" msgstr "" -#: facebookadminpanel.php:204 +#: facebookadminpanel.php:194 msgid "API secret provided by Facebook" msgstr "" -#: FBConnectSettings.php:67 +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 msgid "Manage how your account connects to Facebook" msgstr "" -#: FBConnectSettings.php:92 +#: FBConnectSettings.php:90 msgid "There is no Facebook user connected to this account." msgstr "" -#: FBConnectSettings.php:100 +#: FBConnectSettings.php:98 msgid "Connected Facebook user" msgstr "" -#: FBConnectSettings.php:119 +#. TRANS: Legend. +#: FBConnectSettings.php:118 msgid "Disconnect my account from Facebook" msgstr "" -#: FBConnectSettings.php:124 +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 msgid "" "Disconnecting your Faceboook would make it impossible to log in! Please " msgstr "" -#: FBConnectSettings.php:128 +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 msgid "set a password" msgstr "" -#: FBConnectSettings.php:130 +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 msgid " first." msgstr "" -#: FBConnectSettings.php:142 +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" msgid "Disconnect" msgstr "" -#: FBConnectSettings.php:178 +#: FBConnectSettings.php:180 msgid "Couldn't delete link to Facebook." msgstr "" -#: FBConnectSettings.php:194 +#: FBConnectSettings.php:196 msgid "You have disconnected from Facebook." msgstr "" -#: FBConnectSettings.php:197 +#: FBConnectSettings.php:199 msgid "Not sure what you're trying to do." msgstr "" -#: facebooksettings.php:74 +#: facebooksettings.php:61 msgid "There was a problem saving your sync preferences!" msgstr "" -#: facebooksettings.php:76 +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 msgid "Sync preferences saved." msgstr "" -#: facebooksettings.php:99 +#: facebooksettings.php:87 msgid "Automatically update my Facebook status with my notices." msgstr "" -#: facebooksettings.php:106 +#: facebooksettings.php:94 msgid "Send \"@\" replies to Facebook." msgstr "" -#: facebooksettings.php:115 -msgid "Prefix" -msgstr "" - -#: facebooksettings.php:117 -msgid "A string to prefix notices with." -msgstr "" - -#: facebooksettings.php:123 +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" msgid "Save" msgstr "" -#: facebooksettings.php:133 +#. TRANS: %s is the application name. +#: facebooksettings.php:111 #, php-format msgid "" "If you would like %s to automatically update your Facebook status with your " "latest notice, you need to give it permission." msgstr "" -#: facebooksettings.php:146 +#: facebooksettings.php:124 #, php-format msgid "Allow %s to update my Facebook status" msgstr "" -#: facebooksettings.php:156 +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 msgid "Sync preferences" msgstr "" diff --git a/plugins/Facebook/locale/be-tarask/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/be-tarask/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..0e972515e1 --- /dev/null +++ b/plugins/Facebook/locale/be-tarask/LC_MESSAGES/Facebook.po @@ -0,0 +1,562 @@ +# Translation of StatusNet - Facebook to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца)) +# Expored from translatewiki.net +# +# Author: EugeneZelenko +# Author: Jim-by +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki." +"net/wiki/Portal:be-tarask>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: be-tarask\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Вітаем, %1$s!\n" +"\n" +"На жаль, мы вымушаныя паведаміць Вам, што ня можам абнавіць Ваш статус у " +"Facebook з %2$s, і выключаем дастасаваньне Facebook для Вашага рахунку. Гэта " +"магло здарыцца, таму што Вы выдалілі аўтарызацыю для дастасаваньня Facebook, " +"ці выдалілі Ваш рахунак на Facebook. Вы можаце зноў уключыць дастасаваньне " +"Facebook і аўтаматычнае абнаўленьне статусу пасьля паўторнага ўсталяваньня " +"дастасаваньне Facebook %2$s.\n" +"\n" +"З павагай,\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "Вам неабходна ўвайсьці ў Facebook для выкарыстаньня Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Ужо існуе лякальны карыстальнік злучаны з гэтым рахункам Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Узьнікла праблема з ключом Вашай сэсіі. Калі ласка, паспрабуйце зноў." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Вы ня можаце зарэгістравацца, калі Вы ня згодны з умовамі ліцэнзіі." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Узьнікла невядомая памылка." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Вы ўпершыню ўвайшлі ў %s, таму мы павінны злучыць Ваш рахунак на Facebook з " +"лякальным рахункам. Вы можаце стварыць новы рахунак, ці злучыць з ўжо " +"існуючым Вашым рахункам, калі Вы яго маеце." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Устаноўка рахунку на Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Устаноўкі злучэньня" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мой тэкст і файлы даступныя на ўмовах %s за выключэньнем гэтых асабістых " +"зьвестак: пароль, адрас электроннай пошты, IM-адрас, і нумар тэлефона." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Стварыць новы рахунак" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Стварыць новага карыстальніка з гэтай мянушкай." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Новая мянушка" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 малых літараў ці лічбаў, ніякай пунктуацыі ці прагалаў" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Стварыць" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Далучыць існуючы рахунак" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Калі Вы ўжо маеце рахунак, увайдзіце з Вашым імем карыстальніка і паролем, " +"каб далучыць яго да рахунку на Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Існуючая мянушка" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Пароль" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Злучыць" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Рэгістрацыя не дазволеная." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Няслушны код запрашэньня." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Мянушка забароненая." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Мянушка ўжо выкарыстоўваецца. Паспрабуйце іншую." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Памылка далучэньня карыстальніка да Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Няслушнае імя карыстальніка ці пароль." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Увайсьці" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Даслаць паведамленьне" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Як справы, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Даступныя сымбалі" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Даслаць" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Памылка сэрвэра: немагчыма атрымаць карыстальніка!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Няслушнае імя карыстальніка ці пароль." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s і сябры, старонка %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s і сябры" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Калі Вы жадаеце, каб дастасаваньне %s аўтаматычна абнаўляла Ваш статус у " +"Facebook з апошнімі паведамленьнямі, Вы павінны даць дазвол." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Так, зрабіць гэта!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "" + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/br/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/br/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..8e16956d8f --- /dev/null +++ b/plugins/Facebook/locale/br/LC_MESSAGES/Facebook.po @@ -0,0 +1,544 @@ +# Translation of StatusNet - Facebook to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" +"Rankout a rit bezañ kevreet war Facebook evit implijout Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Un implijer lec'hel liammet d'ar gont Facebook-se a zo dija." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h. Mar plij adklaskit." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "" +"Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " +"gont." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Ur gudenn dizanv a zo bet." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Kefluniadur ar gont Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Dibarzhioù kevreañ" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Krouiñ ur gont nevez" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Krouiñ un implijer nevez gant al lesanv-se." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Lesanv nevez" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Krouiñ" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Kevreañ d'ur gont a zo dioutañ" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Lesanv a zo dioutañ" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Ger-tremen" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Kevreañ" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "N'eo ket aotreet krouiñ kontoù." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "N'eo ket reizh ar c'hod pedadenn." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Lesanv nann-aotreet." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "" + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Kevreañ" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Kas un ali" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Penaos 'mañ kont, %s ?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Arouezennoù a chom" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Kas" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s hag e vignoned, pajenn %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s hag e vignoned" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Ok, en ober !" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Mont hebiou" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Pajennadur" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "War-lerc'h" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "A-raok" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Trugarez da bediñ ho mignoned da implijout %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Pedadennoù a zo bet kaset d'an implijerien da-heul :" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Pedet oc'h bet da %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Pedit ho mignoned da implijout %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Mignoned hag a implij dija %s :" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Kas pedadennoù" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Implijer Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Kevreañ pe en em enskrivañ dre Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Arventennoù evit Facebook Connect" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Kevreit gant ho kont Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Kevreadenn Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Dibosupl eo dilemel an implijer Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Degemer" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Degemer" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Pediñ" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Pediñ" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Arventennoù" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Penndibaboù" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "ur gont nevez." + +#: facebookaction.php:242 +msgid "Register" +msgstr "En em enskrivañ" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Lesanv" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Kevreañ" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Ha kollet ho peus ho ker-tremen ?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Danvez ebet en ali !" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Alioù" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Arventennoù enframmañ Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "Alc'hwez API" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Alc'hwez API pourchaset gant Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Kuzh" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "Alc'hwez API kuzh pourchaset gant Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Enrollañ" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Enrollañ arventennoù Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Merañ an doare ma kevre ho kont ouzh Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Implijer Facebook kevreet" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Digevreañ ma c'hont deus Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "Termeniñ ur ger-tremen" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "da gentañ." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Digevrañ" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "N'eus ket bet gallet diverkañ al liamm war-du Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "N'omp ket sur eus ar pezh emaoc'h o klask ober aze." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Kas respontoù \"@\" da Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Enrollañ" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Penndibaboù ar c'hempredañ" diff --git a/plugins/Facebook/locale/de/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/de/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..f7e6d95761 --- /dev/null +++ b/plugins/Facebook/locale/de/LC_MESSAGES/Facebook.po @@ -0,0 +1,578 @@ +# Translation of StatusNet - Facebook to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Michael +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Hallo %1$s. Wir konnten leider nicht deinen Facebook-Status von %2$s aus " +"aktualisieren und haben daher das Facebook-Programm für dein Benutzerkonto " +"deaktiviert. Dies könnte daran liegen, dass du die Erlaubnis des Facebook-" +"Programms entfernt hast oder dein Facebook-Benutzerkonto gelöscht hast. Du " +"kannst das Facebook-Programm und die automatische Aktualisierung des Status, " +"indem du das %2$s-Facebook-Programm neu installierst.\n" +"\n" +"Mit freundlichen Grüßen,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" +"Du musst auf Facebook eingeloggt sein, um Facebook Connect benutzen zu " +"können." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" +"Es gibt bereits einen lokalen Benutzer, der mit diesem Facebook-" +"Benutzerkonto verknüpft ist." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "" +"Du kannst dich nicht registrieren, wenn du die Lizenz nicht akzeptierst." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Ein unbekannter Fehler ist aufgetreten." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Dies ist das erste Mal, dass du dich auf %s anmeldest, sodass wir dein " +"Facebook-Benutzerkonto mit einem lokalen Benutzerkonto verbinden müssen. Du " +"kannst entweder ein neues Benutzerkonto erstellen oder dich mit deinem " +"existierendem Benutzerkonto verbinden." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Verbindungsoptionen" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Abgesehen von den folgenden Daten: Passwort, E-Mail-Adresse, IM-Adresse und " +"Telefonnummer, sind all meine Texte und Dateien unter %s verfügbar." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Neues Benutzerkonto erstellen" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Neues Benutzerkonto mit diesem Benutzernamen erstellen." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Neuer Benutzername" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Erstellen" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Bestehendes Benutzerkonto verbinden" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Wenn du bereits ein Benutzerkonto hast, melde dich mit deinem Benutzernamen " +"und Passwort an, um ihn mit Facebook zu verbinden." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Bestehender Benutzername" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Passwort" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Verbinden" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Registrierung nicht erlaubt." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Kein gültiger Einladungscode." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Benutzername nicht erlaubt." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Benutzername wird bereits verwendet. Suche dir einen anderen aus." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Fehler beim Verbinden des Benutzers mit Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Benutzername oder Passwort falsch." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Anmelden" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Nachricht senden" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Was geht, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Verfügbare Zeichen" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Senden" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Server-Fehler: Konnte Benutzer nicht kriegen!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Falscher Benutzername oder Passwort." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s und Freunde, Seite %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s und Freunde" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Wenn du möchtest, dass das %s-Programm automatisch deinen Facebook-Status " +"mit deiner neuesten Nachricht aktualisiert, musst du ihm die Erlaubnis dazu " +"geben." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Okay, mach es!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Überspringen" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Nach" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Vor" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Danke für das Einladen deiner Freunde auf %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Einladungen wurden an die folgenden Benutzer gesendet:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Du wurdest auf %s eingeladen" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Lade deine Freunde auf %s ein" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Auf %s bereits angemeldete Freunde" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Einladungen senden" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Mit Facebook anmelden oder registrieren" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Das Facebook-Plugin integriert StatusNet mit <a href=\"http://facebook.com/" +"\">Facebook</a> und Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Bereits angemeldet." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Logge dich mit deinem Facebook-Benutzerkonto ein" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Facebook Login" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "Konnte Facebook-Benutzer nicht entfernen: bereits gelöscht." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Konnte Facebook-Benutzer nicht entfernen." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Startseite" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Startseite" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Einladen" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Einladen" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Einstellungen" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Einstellungen" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Um das %s-Facebook-Programm zu benutzen, musst du dich mit deinem " +"Benutzernamen und Passwort einloggen. Hast du noch keinen Benutzernamen?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "Registrieren" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Benutzername" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Anmelden" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Passwort vergessen?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Kein Nachrichten-Inhalt!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" +"Das war zu lang. Die Länge einer Nachricht ist auf %d Zeichen beschränkt." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Nachrichten" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" +"Ungültiger Facebook-API-Schlüssel. Die maximale Länge liegt bei 255 Zeichen." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "API-Schlüssel" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Von Facebook bereitgestellter API-Schlüssel" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Geheim" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Speichern" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Facebook-Einstellungen speichern" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Verwalte, wie dein Benutzerkonto sich mit Facebook verbindet" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" +"Es gibt keinen Facebook-Benutzer, der mit diesem Benutzerkonto verbunden ist." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Verbundener Facebook-Benutzer" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "Passwort vergeben" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Abmelden" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Link zu Facebook konnte nicht gelöscht werden." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Sie sind bei Facebook abgemeldet." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Prozess konnte nicht verarbeitet werden." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" +"Es gab ein Problem beim Speichern deiner Synchronisierungs-Einstellungen!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Synchronisierungs-Einstellungen gespeichert." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" +"Meinen Facebook-Status automatisch mit meinen Nachrichten aktualisieren." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "@-Antworten an Facebook versenden." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Speichern" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Wenn du möchtest, dass %s automatisch deinen Facebook-Status mit deiner " +"neuesten Nachricht aktualisiert, musst du ihm die Erlaubnis dazu geben." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "%s erlauben, meinen Facebook-Status zu aktualisieren" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Synchronisierungs-Einstellungen" diff --git a/plugins/Facebook/locale/es/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/es/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..d6de8f9339 --- /dev/null +++ b/plugins/Facebook/locale/es/LC_MESSAGES/Facebook.po @@ -0,0 +1,563 @@ +# Translation of StatusNet - Facebook to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# Author: Peter17 +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, fuzzy, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Hola, %$1s: Lamentamos informarte que no podemos actualizar tu estado de " +"Facebook desde %$2s y hemos inhabilitado la aplicación de Facebook en tu " +"cuenta. Esto puede deberse a que has eliminado la autorización de Facebook o " +"porque hax borrado tu cuenta de Facebook. Puedes volver a habilitar la " +"aplicación de Facebook y la actualización automática de estados mediante la " +"reinstalación de la aplicación de Facebook %2$s." + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" +"Debes haber iniciado sesión en Facebook para poder utilizar Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Ya hay un usuario local vinculado a esta cuenta de Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Hubo un problema con tu token de sesión. Por favor, inténtalo de nuevo." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "No puedes registrarte si no estás de acuerdo con la licencia." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Ha ocurrido un error desconocido." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Esta es la primera vez que inicias sesión en %s, así que debemos conectar " +"Facebook a una cuenta local. Puedes crear una cuenta nueva o conectarte con " +"tu cuenta, de tenerla." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Configuración de cuenta de Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Opciones de conexión" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mi texto y archivos están disponibles en %s, salvo estos datos privados: " +"contraseña, dirección de correo electrónico, dirección de mensajería " +"instantánea y número de teléfono." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Crear cuenta nueva" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Crear un nuevo usuario con este nombre de usuario." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Nuevo nombre de usuario" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 letras en minúscula o números, sin signos de puntuación o espacios" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Conectar cuenta existente" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Si ya tienes una cuenta, ingresa con tu nombre de usuario y contraseña para " +"conectarte a tu Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "El nombre de usuario ya existe" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Contraseña" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Registro de usuario no permitido." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "No es un código de invitación válido." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Nombre de usuario no autorizado." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "El nombre de usuario ya existe. Prueba con otro." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Error de conexión del usuario a Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Nombre de usuario o contraseña inválidos." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Iniciar sesión" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Enviar un mensaje" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "¿Qué tal, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Caracteres disponibles" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Enviar" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Error de servidor: ¡No se pudo obtener el usuario!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "" +"Nombre de usuario o contraseña incorrectos\n" +"." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, fuzzy, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%s y sus amistades" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s y sus amistades" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Si desesa que la aplicación %s actualice automáticamente tu estado de " +"Facebook con tu último mensaje, tienes que darle permiso." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Ok, ¡hazlo!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Omitir" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Paginación" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Después" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Antes" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Gracias por invitar a tus amistades a usar %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Se ha enviado invitaciones a los siguientes usuarios:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Te han invitado a %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Invita a tus amistades a usar %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Amistades que ya usan %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Enviar invitaciones" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Configuración de integración de Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Pagina principal" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Pagina principal" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Invitar" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Invitar" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Preferencias" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Preferencias" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "Registrarse" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Nickname" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Iniciar sesión" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Avisos" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Configuración de integración de Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Secreto" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Guardar" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "establecer una contraseña" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Guardar" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/fr/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/fr/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..d443bf6252 --- /dev/null +++ b/plugins/Facebook/locale/fr/LC_MESSAGES/Facebook.po @@ -0,0 +1,581 @@ +# Translation of StatusNet - Facebook to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Salut, %1$s. Nous sommes désolés de vous informer que nous ne sommes pas en " +"mesure de mettre à jour votre statut Facebook depuis %2$s et que nous avons " +"désactivé l’application Facebook sur votre compte. C’est peut-être parce que " +"vous avez retiré l’autorisation de l’application Facebook, ou avez supprimé " +"votre compte Facebook. Vous pouvez réactiver l’application Facebook et la " +"mise à jour d’état automatique en réinstallant l’application %2$s pour " +"Facebook.\n" +"\n" +"Cordialement,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "Vous devez être identifié sur Facebook pour utiliser Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Il existe déjà un utilisateur local lié à ce compte Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Une erreur inconnue s’est produite." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"C’est la première fois que vous êtes connecté à %s via Facebook, il nous " +"faut donc lier votre compte Facebook à un compte local. Vous pouvez soit " +"créer un nouveau compte, soit vous connecter avec votre compte local " +"existant si vous en avez un." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Configuration du compte Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Options de connexion" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mon texte et mes fichiers sont disponibles sous licence %s, à l’exception " +"des données privées suivantes : mot de passe, adresse courriel, adresse de " +"messagerie instantanée et numéro de téléphone." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Créer un nouveau compte" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Créer un nouvel utilisateur avec ce pseudonyme." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Nouveau pseudonyme" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Créer" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Se connecter à un compte existant" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Si vous avez déjà un compte ici, connectez-vous avec votre nom d’utilisateur " +"et mot de passe pour l’associer à votre compte Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Pseudonyme existant" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Mot de passe" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connexion" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Inscription non autorisée." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Le code d’invitation n’est pas valide." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Pseudonyme non autorisé." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Erreur de connexion de l’utilisateur à Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Connexion" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Envoyer un avis" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Quoi de neuf, %s ?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Caractères restants" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Envoyer" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Erreur de serveur : impossible d’obtenir l’utilisateur !" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s et ses amis, page %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s et ses amis" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Si vous souhaitez que l’application %s mette à jour automatiquement votre " +"statut Facebook avec votre dernier avis, vous devez lui en donner " +"l’autorisation." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Ok, le faire !" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Sauter cette étape" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Pagination" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Après" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Avant" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Merci d’inviter vos amis à utiliser %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Des invitations ont été envoyées aux utilisateurs suivants :" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Vous avez été invité à %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Invitez vos amis à utiliser %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Amis utilisant déjà %s :" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Envoyer des invitations" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Configuration de l’intégration Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Utilisateur de Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Se connecter ou s’inscrire via Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Paramètres pour Facebook Connect" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Le greffon Facebook permet d’intégrer des instances StatusNet avec <a href=" +"\"http://facebook.com/\">Facebook</a> et Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Déjà connecté." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Connectez-vous avec votre compte Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Connexion Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "Impossible de supprimer l’utilisateur Facebook : déjà supprimé." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Impossible de supprimer l’utilisateur Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Accueil" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Accueil" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Inviter" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Inviter" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Paramètres" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Préférences de l’utilisateur" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Pour utiliser l’application %s pour Facebook, vous devez vous identifier " +"avec votre nom d’utilisateur et mot de passe. Vous n’avez pas encore un nom " +"d’utilisateur ?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "un nouveau compte." + +#: facebookaction.php:242 +msgid "Register" +msgstr "S’inscrire" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Pseudonyme" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Connexion" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Mot de passe perdu ou oublié ?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Aucun contenu dans l’avis !" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "C’est trop long ! La taille maximale de l’avis est de %d caractères." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Avis publiés" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Paramètres d’intégration Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" +"Clé invalide pour l’API Facebook. La longueur maximum est de 255 caractères." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" +"Code secret invalide pour l’API Facebook. La longueur maximum est de 255 " +"caractères." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Paramètres de l’application Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "Clé API" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Clé API fournie par Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Code secret" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "Code secret pour l’API fourni par Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Sauvegarder" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Sauvegarder les paramètres Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Gérez la façon dont votre compte se connecte à Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Il n’y a pas d’utilisateur Facebook connecté à ce compte." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Utilisateur Facebook connecté" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Déconnecter mon compte de Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"La déconnexion de votre compte Facebook ne vous permettrait plus de vous " +"connecter ! S’il vous plaît " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "définissez un mot de passe" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " tout d’abord." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Déconnecter" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Impossible de supprimer le lien vers Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Vous avez été déconnecté de Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Pas certain de ce que vous essayez de faire." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" +"Il y a eu un problème lors de la sauvegarde de vos préférences de " +"synchronisation !" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Préférences de synchronisation enregistrées." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "Mettre à jour automatiquement mon statut Facebook avec mes avis." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Envoyez des réponses « @ » à Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Sauvegarder" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Si vous souhaitez que l’application %s mette à jour automatiquement votre " +"statut Facebook avec votre dernier avis, vous devez lui en donner " +"l’autorisation." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Autoriser %s à mettre à jour mon statut Facebook" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Préférences de synchronisation" diff --git a/plugins/Facebook/locale/gl/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/gl/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..dabe269091 --- /dev/null +++ b/plugins/Facebook/locale/gl/LC_MESSAGES/Facebook.po @@ -0,0 +1,545 @@ +# Translation of StatusNet - Facebook to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:50+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Houbo un erro co seu pase. Inténteo de novo." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Non pode rexistrarse se non acepta a licenza." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Houbo un erro descoñecido." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Opcións de conexión" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Os meus textos e ficheiros están dispoñibles baixo %s, salvo os seguintes " +"datos privados: contrasinais, enderezos de correo electrónico e mensaxería " +"instantánea e números de teléfono." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Crear unha conta nova" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Crear un novo usuario con este alcume." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Novo alcume" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, " +"espazos, tiles ou eñes" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Contrasinal" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Non se permite o rexistro." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "O código da invitación é incorrecto." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "" + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Ese alcume xa está en uso. Probe con outro." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "" + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "O nome de usuario ou contrasinal non son correctos." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Rexistro" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Enviar unha nota" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Que hai de novo, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Caracteres dispoñibles" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Enviar" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Nome de usuario ou contrasinal incorrectos." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s e amigos, páxina %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s e amigos" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "De acordo, facédeo!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Saltar" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Paxinación" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Despois" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Antes" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "" + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Enviar as invitacións" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Configuración de integración do Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Usuario do Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Xa se identificou." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Inicio" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Inicio" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Convidar" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Convidar" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Parámetros" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Configuracións" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " unha nova conta." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Rexistrarse" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Alcume" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Rexistro" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Esqueceu ou perdeu o contrasinal?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Avisos" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "Clave API" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Clave API proporcionada polo Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Gardar" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " primeiro." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Desconectarse" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Gardar" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/ia/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/ia/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..5aa17e6382 --- /dev/null +++ b/plugins/Facebook/locale/ia/LC_MESSAGES/Facebook.po @@ -0,0 +1,572 @@ +# Translation of StatusNet - Facebook to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Salute, %1$s. Nos regretta informar te que nos es incapace de actualisar tu " +"stato de Facebook ab %2$s, e que nos ha disactivate le application Facebook " +"pro tu conto. Isto pote esser proque tu ha removite le autorisation del " +"application Facebook, o ha delite tu conto de Facebook. Tu pote reactivar le " +"application Facebook e le actualisation automatic de tu stato per " +"reinstallar le application Facebook %2$s.\n" +"\n" +"Attentemente,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "Tu debe aperir un session a Facebook pro usar Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Il ha jam un usator local ligate a iste conto de Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Tu non pote crear un conto si tu non accepta le licentia." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Un error incognite ha occurrite." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Isto es le prime vice que tu ha aperite un session in %s, dunque nos debe " +"connecter tu Facebook a un conto local. Tu pote crear un nove conto, o " +"connecter con tu conto existente si tu ha un." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Configuration de conto Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Optiones de connexion" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mi texto e files es disponibile sub %s excepte iste datos private: " +"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " +"telephono." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Crear nove conto" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Crear un nove usator con iste pseudonymo." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Nove pseudonymo" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Connecter conto existente" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " +"pro connecter lo a tu Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Pseudonymo existente" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Contrasigno" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connecter" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Creation de conto non permittite." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Le codice de invitation es invalide." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Pseudonymo non permittite." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Error durante le connexion del usator a Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Nomine de usator o contrasigno invalide." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Aperir session" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Inviar un nota" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Como sta, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Characteres disponibile" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Inviar" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Error de servitor: Non poteva obtener le usator!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Nomine de usator o contrasigno incorrecte." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s e amicos, pagina %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s e amicos" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Si tu vole que le application %s actualisa automaticamente tu stato de " +"Facebook con tu ultim enota, tu debe dar permission a illo." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "OK, face lo!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Saltar" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Pagination" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Post" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Ante" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Gratias pro invitar tu amicos a usar %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Invitationes ha essite inviate al sequente usatores:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Tu ha essite invitate a %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Invita tu amicos a usar %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Amicos que jam usa %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Inviar invitationes" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Configuration del integration de Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Usator de Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Aperir session o crear conto usante Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Configurationes de connexion a Facebook" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Le plug-in de Facebook permitte integrar installationes de StatusNet con <a " +"href=\"http://facebook.com/\">Facebook</a> e Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Aperir session con tu conto de Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Authentication con Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "Non poteva remover usator de Facebook: jam delite." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Non poteva remover le usator de Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Initio" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Initio" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Invitar" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Invitar" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Configurationes" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Configurationes" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Pro usar le application Facebook %s tu debe aperir un session con tu nomine " +"de usator e contrasigno. Tu non ha ancora un nomine de usator?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " un nove conto." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Crear conto" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Pseudonymo" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Aperir session" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Contrasigno perdite o oblidate?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Le nota non ha contento!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" +"Isto es troppo longe. Le longitude maximal del notas es %d characteres." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Notas" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Configurationes de integration de Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "Clave API de Facebook invalide. Longitude maximal es 255 characteres." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" +"Secreto API de Facebook invalide. Longitude maximal es 255 characteres." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Configurationes del application de Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "Clave API" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Clave API providite per Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Secreto" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "Secreto API providite per Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Salveguardar" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Salveguardar configuration Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Configura como tu conto se connecte a Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Il non ha un usator de Facebook connectite a iste conto." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Usator de Facebook connectite" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Disconnecter mi conto ab Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"Le disconnexion de tu Facebook renderea le authentication impossibile! Per " +"favor " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "defini un contrasigno" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " primo." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Disconnecter" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Non poteva deler le ligamine a Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Tu te ha disconnectite de Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Non es clar lo que tu tenta facer." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" +"Occurreva un problema durante le salveguarda de tu preferentias de " +"synchronisation!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Preferentias de synchronisation salveguardate." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "Actualisar automaticamente mi stato de Facebook con mi notas." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Inviar responsas \"@\" a Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Si tu vole que %s actualisa automaticamente tu stato de Facebook con tu " +"ultime nota, tu debe dar permission a illo." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Permitter a %s de actualisar mi stato de Facebook" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Preferentias de synchronisation" diff --git a/plugins/Facebook/locale/mk/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/mk/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..6db60733d7 --- /dev/null +++ b/plugins/Facebook/locale/mk/LC_MESSAGES/Facebook.po @@ -0,0 +1,568 @@ +# Translation of StatusNet - Facebook to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Здраво, %1$s. Нажалост, не можеме да го смениме Вашиот статус на Facebook од " +"%2$s, и го имаме оневозможено програмчето за Facebook на Вашата сметка. Ова " +"можеби се должи на тоа што сте го отстраниле овластувањето на програмчето за " +"Facebook, или пак сте ја избришале самата сметка на Facebook. Можете " +"повторно да го овозможите програмчето за Facebook и автоматското менување на " +"статус со преинсталирање на програмчето %2$s - Facebook.\n" +"\n" +"Поздрав,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" +"Мора да сте најавени на Facebook за да можете да користите Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Веќе постои локален корисник поврзан со оваа сметка на Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Се појави непозната грешка." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ова е прв пат како се најавувате на %s, па затоа мораме да го поврземе " +"Вашиот профил на Facebook со локална сметка. Можете да создадете нова " +"сметка, или пак да се поврзете со Вашата постоечка сметка (ако ја имате)." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Поставки за сметка на Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Нагодувања за врска" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мојот текст и податотеки се достапни под %s освен следниве приватни " +"податоци: лозинка, е-пошта, IM-адреса, и телефонскиот број." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Создај нова сметка" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Создај нов корисник со овој прекар." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Нов прекар" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Создај" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Поврзи постоечка сметка" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " +"поврзете со профилот на Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Постоечки прекар" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Лозинка" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Поврзи се" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Регистрацијата не е дозволена." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Ова не е важечки код за покана." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Прекарот не е дозволен." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Прекарот е зафатен. Одберете друг." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Грешка при поврзувањето на корисникот со Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Неважечко корисничко име или лозинка." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Најава" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Испрати забелешка" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Како е, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Расположиви знаци" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Прати" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Грешка во опслужувачот: Не можев да го добијам корисникот!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Погрешно корисничко име или лозинка." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s и пријателите, страница %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s и пријателите" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Доколку сакате %s автоматски да Ви го менува Вашиот статус на Facebook " +"(прикажувајќи ја најновата забелешка), ќе морате да дадете дозвола." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Во ред, ајде!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Прескокни" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Прелом на страници" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Потоа" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Претходно" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Ви благодариме што ги поканивте пријателите да користат %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Испратени се покани до следениве корисници:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Поканети сте на %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Поканете ги пријателите да користат %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Пријатели што веќе користат %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Испрати покани" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Поставки за обединување со Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Поврзување на корисник со Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Најава или регистрација со Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Нагодувања за поврзување со Facebook" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Приклучокот за Facebook овозможува соединување на примероци на StatusNet со " +"<a href=\"http://mk-mk.facebook.com/\">Facebook</a> и Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Веќе сте најавени." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Најавете се со Вашата сметка на Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Најава со Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "Не можев да го отстранам корисникот на Facebook: веќе е избришан." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Не можев да го отстранам корисниот на Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Почетна" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Почетна" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Покани" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Покани" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Нагодувања" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Нагодувања" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"За да го користите програмчето %s - Facebook ќе мора да сте најавени со " +"Вашето корисничко име и лозинка. Сè уште немате корисничко име?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " нова сметка." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Регистрација" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Прекар" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Најава" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Ја загубивте/заборавивте лозинката?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Нема содржина за забелешката!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "Ова е предолго. Забелешката може да содржи највеќе %d знаци." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Забелешки" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Поставки за обединување со Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "Неважечки API-клуч за Facebook. Дозволени се највеќе 255 знаци." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "Неважечки API-тајна за Facebook. Дозволени се највеќе 255 знаци." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Нагодувања за прог. Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "API-клуч" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "API-клучот е обезбеден од Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Тајна" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "API-тајната е обезбедена од Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Зачувај" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Зачувај нагодувања за Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Раководење со начинот на поврзување на Вашата сметка со Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Нема корисник на Facebook поврзан со оваа сметка." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Поврзан корисник на Facebook" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Исклучи ја мојата сметка од Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"Ако ја исклучите врската со Facebook нема да можете да се најавите! Затоа, " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "поставете лозинка" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " пред да продолжите." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Прекини" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Не можев да ја избришам врската до Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Сега е исклучена врската со Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Не ми е јасно што сакате да направите." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" +"Се појави проблем при зачувувањето на Вашите поставки за услогласување!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Поставките за усогласување се зачувани." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "Автоматски заменувај ми го статусот на Facebook со моите забелешки." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Испрати „@“ одговори на Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Ако сакате %s автоматски да го заменува Вашиот статус на Facebook со Вашата " +"најновата забелешка, ќе треба да дадете дозвола." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Дозволи %s да го менува мојот статус на Facebook" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Услогласи нагодувања" diff --git a/plugins/Facebook/locale/nb/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/nb/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..6270b67ca2 --- /dev/null +++ b/plugins/Facebook/locale/nb/LC_MESSAGES/Facebook.po @@ -0,0 +1,540 @@ +# Translation of StatusNet - Facebook to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Opprett ny konto" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Opprett en ny bruker med dette kallenavnet." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Nytt kallenavn" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 små bokstaver eller tall, ingen punktum eller mellomrom" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Opprett" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Eksisterende kallenavn" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Passord" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Koble til" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Registrering ikke tillatt." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Ikke en gyldig invitasjonskode." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Kallenavn er ikke tillatt." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Kallenavnet er allerede i bruk. Prøv et annet." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "" + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Ugyldig brukernavn eller passord." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Logg inn" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Send en notis" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Hva skjer %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Tilgjengelige tegn" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Send" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Tjenerfeil: Kunne ikke hente bruker!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Feil brukernavn eller passord." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s og venner, side %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s og venner" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Hopp over" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Paginering" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Etter" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Før" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Takk for at du inviterte vennene dine til å bruke %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Invitasjoner har blitt sendt til følgende brukere:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Du har blitt invitert til å %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Inviter vennene dine til å bruke %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Send invitasjoner" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Allerede innlogget." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Hjem" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Hjem" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Inviter" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Inviter" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Innstillinger" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Innstillinger" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " en ny konto." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Registrer" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Kallenavn" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Logg inn" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Mistet eller glemt passordet?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Lagre" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "angi et passord" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " først." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Send «@»-svar til Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Lagre" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Tillat %s å oppdatere min Facebook-status" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/nl/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/nl/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..d7de8a153a --- /dev/null +++ b/plugins/Facebook/locale/nl/LC_MESSAGES/Facebook.po @@ -0,0 +1,578 @@ +# Translation of StatusNet - Facebook to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Hallo %1$s.\n" +"\n" +"Het spijt ons u te moeten meedelen dat het niet mogelijk is uw " +"Facebookstatus bij te werken vanuit %2$s. De Facebookapplicatie is " +"uitgeschakeld voor uw gebruiker. Dit kan komen doordat u de toegangsrechten " +"voor de Facebookapplicatie hebt ingetrokken of omdat u uw Facebookgebruiker " +"hebt verwijderd. U kunt deze Facebookapplicatie opnieuw inschakelen en " +"automatisch uw status laten bijwerken door de Facebookapplicatie van %2$s " +"opnieuw te installeren.\n" +"\n" +"\n" +"Met vriendelijke groet,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "U moet zijn aangemeld bij Facebook om Facebook Connect te gebruiken." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "Er is al een lokale gebruiker verbonden met deze Facebookgebruiker" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Er is een onbekende fout opgetreden." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Dit is de eerste keer dat u aanmeldt bij %s en dan moeten we uw " +"Facebookgebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe " +"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Facebookgebruiker instellen" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Verbindingsinstellingen" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " +"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Nieuwe gebruiker aanmaken" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Nieuwe gebruikersnaam" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Aanmaken" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Verbinden met een bestaande gebruiker" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en " +"wachtwoord om deze daarna te koppelen met uw Facebookgebruiker." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Bestaande gebruikersnaam" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Wachtwoord" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Koppelen" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Registratie is niet toegestaan." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "De uitnodigingscode is ongeldig." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Gebruikersnaam niet toegestaan." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "" +"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Fout bij het verbinden van de gebruiker met Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Ongeldige gebruikersnaam of wachtwoord." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Aanmelden" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Mededeling verzenden" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Hallo, %s." + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Beschikbare tekens" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Verzenden" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Serverfout: de gebruiker kon niet geladen worden." + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "De gebruikersnaam of wachtwoord is onjuist." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s en vrienden, pagina %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s en vrienden" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Als u wilt dat het programma %s automatisch uw Facebookstatus bijwerkt met " +"uw laatste bericht, dan moet u daarvoor toestemming geven." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Toestemming geven" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Overslaan" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Paginering" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Later" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Eerder" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Dank u wel voor het uitnodigen van uw vrienden om %s te gebruiken." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Er is een uitnodiging verstuurd naar de volgende gebruikers:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "U bent uitgenodigd bij %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Vrienden uitnodigen om %s te gebruiken" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Vrienden die %s al gebruiken:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Uitnodigingen verzenden" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Instellingen voor Facebookintegratie" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Facebook Connectgebruiker" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Aanmelden of registreren via Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Instellingen voor Facebook Connect" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Via de de Facebookplug-in is het mogelijk StatusNet-installaties te koppelen " +"met <a href=\"http://facebook.com/\">Facebook</a> en Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "U bent al aangemeld." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Aanmelden met uw Facebookgebruiker" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Aanmelden via Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" +"Het was niet mogelijk om de Facebookgebruiker te verwijderen: gebruiker is " +"al verwijderd." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Het was niet mogelijk de Facebookgebruiker te verwijderen." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Hoofdmenu" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Hoofdmenu" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Uitnodigen" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Uitnodigen" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Instellingen" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Instellingen" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Om het Facebookprograma %s te gebruiken moet u aanmelden met uw " +"gebruikersnaam en wachtwoord. Hebt u nog geen gebruiker?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " een nieuwe gebruiker." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Registreer" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Gebruikersnaam" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Aanmelden" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Wachtwoord kwijt of vergeten?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Geen berichtinhoud!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "De mededeling is te lang. Gebruik maximaal %d tekens." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Mededelingen" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Instellingen voor Facebookkoppeling" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "Ongeldige Facebook API-sleutel. De maximale lengte is 255 tekens." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "Ongeldig Facebook API-geheim. De maximale lengte is 255 tekens." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Applicatieinstellingen voor Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "API-sleutel" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "API-sleutel die door Facebook is uitgeven" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Geheim" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "API-geheim dat door Facebook is uitgeven" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Opslaan" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Facebookinstellingen opslaan" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Beheren hoe uw gebruiker is gekoppeld met Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Er is geen Facebookgebruiker gekoppeld met deze gebruiker." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Gekoppelde Facebookgebruiker" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Mijn gebruiker loskoppelen van Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"Loskoppelen van uw Facebookgebruiker zou ervoor zorgen dat u niet langer " +"kunt aanmelden. U moet eerst " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "een wachtwoord instellen" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " voordat u verder kunt met deze handeling." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Loskoppelen" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Het was niet mogelijk de verwijzing naar Facebook te verwijderen." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "U bent losgekoppeld van Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Het is niet duidelijk wat u wilt bereiken." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" +"Er is een fout opgetreden tijdens het opslaan van uw " +"synchronisatievoorkeuren!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Uw synchronisatievoorkeuren zijn opgeslagen." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "Mijn Facebookstatus automatisch bijwerken met mijn mededelingen." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Antwoorden met \"@\" naar Facebook verzenden." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Als u wilt dat %s automatisch uw Facebookstatus bijwerkt met uw laatste " +"mededeling, dat moet u daar toestemming voor geven." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "%s toestaan mijn Facebookstatus bij te werken" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Synchronisatievooreuren" diff --git a/plugins/Facebook/locale/pt_BR/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/pt_BR/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..9edd467733 --- /dev/null +++ b/plugins/Facebook/locale/pt_BR/LC_MESSAGES/Facebook.po @@ -0,0 +1,544 @@ +# Translation of StatusNet - Facebook to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# Author: Luckas Blade +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Você não pode se registrar se não aceitar a licença." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Ocorreu um erro desconhecido." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Opções de conexão" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Criar nova conta" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Criar um novo usuário com este apelido." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Novo apelido" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Criar" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Senha" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Não é permitido o registro." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "O código de convite é inválido." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Apelido não permitido." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Este apelido já está em uso. Tente outro." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Erro ao conectar o usuário ao Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "" + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Entrar" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Caracteres disponíveis" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Enviar" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Nome de usuário e/ou senha incorreto(s)." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s e amigos, pág. %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s e amigos" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Se você deseja que o %s aplicativo atualize automaticamente seu estado no " +"Facebook com seus último anúncio, você deve autorizá-lo para isso." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Avançar" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Paginação" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Depois" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Antes" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Obrigado por convidar seus amigos a usar %s" + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Você foi convidado para %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Convidar seus amigos a usar %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Amigos já usando %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Enviar convites" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Entrar ou se registrar usando o Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Já está autenticado." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Convidar" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Convidar" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Configurações" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Configurações" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "Registrar-se" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Apelido" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Entrar" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Perdeu ou esqueceu sua senha?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Salvar" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Salvar configurações do Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Desconectar minha conta do Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Desconectar" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Salvar" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/tl/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/tl/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..61d2167c4a --- /dev/null +++ b/plugins/Facebook/locale/tl/LC_MESSAGES/Facebook.po @@ -0,0 +1,583 @@ +# Translation of StatusNet - Facebook to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Kumusta, %1$s. May pagpapaumanhin naming ipinababatid sa iyo na hindi namin " +"naisapanahon ang iyong katayuan ng Facebook mula %2$s, at hindi namin " +"pinagana ang aplikasyon ng Facebook para sa iyong akawnt. Maaaring dahil " +"ito sa inalis mo ang pahintulot sa aplikasyon ng Facebook, o pagbura ng " +"iyong akawnt sa Facebook. Maaari mong muling buhayin ang aplikasyon ng " +"Facebook at kusang pagsasapanahon ng kalagayan sa pamamagitan ng muling " +"pagtatalaga ng aplikasyon ng Facebook na %2$s.\n" +"\n" +"Nagpapahalaga,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "Dapat na nakalagda ka sa Facebook upang magamit ang Ugnay sa Facebook." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" +"Mayroon nang isang katutubong tagagamit na nakakawing sa ganitong akawnt ng " +"Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "May isang suliranin sa iyong token ng sesyon. Paki subukan uli." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Hindi ka makapagpapatala kung hindi ka sumasang-ayon sa lisensiya." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Isang hindi nalalamang kamalian ang naganap." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ito ang iyong unang pagkakataong lumagda sa %s kaya't kailangan naming " +"iugnay ang iyong Facebook sa isang katutubong akawnt. Maaari kang lumikha " +"ng isang bagong akawnt, o umugnay sa pamamagitan ng iyong umiiral na akawnt, " +"kung mayroon ka." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Pagtatakda ng Akawnt ng Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Mga pagpipilian na pang-ugnay" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Ang aking teksto at mga talaksan ay makukuha sa ilalim ng %s maliban sa " +"pribadong dato na ito: hudyat, tirahan ng e-liham, tirahan ng IM, at bilang " +"na pangtelepono." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Lumikha ng bagong akawnt" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Lumikha ng isang bagong tagagamit na may ganitong palayaw." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Bagong palayaw" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1 hanggang 64 na maliliit na mga titik o mga bilang, walang bantas o mga " +"patlang" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Likhain" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Umugnay sa umiiral na akawnt" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Kung mayroon ka nang akawnt, lumagda sa pamamagitan ng iyong pangalan ng " +"tagagamit at hudyat upang iugnay ito sa iyong Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Umiiral na palayaw" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Hudyat" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Umugnay" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Hindi pinapahintulutan ang pagpapatala." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Hindi isang tanggap na kodigo ng paanyaya." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Hindi pinapahintulutan ang palayaw." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Ginagamit na ang palayaw. Subukan ang iba." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "May kamalian sa pag-ugnay ng tagagamit sa Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Hindi tanggap na pangalan ng tagagamit o hudyat." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Lumagda" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Magpadala ng pabatid" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Anong balita, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Makukuhang mga panitik" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Ipadala" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Kamalian ng tapaghain: Hindi makuha ang tagagamit!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Hindi tamang pangalan ng tagagamit o hudyat." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s at mga kaibigan, pahina %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s at mga kaibigan" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Kung nais mong kusang isapanahon ng aplikasyong %s ang iyong katayuan ng " +"Facebook na may pinakabagong pabatid, kailangan mong bigyan ito ng " +"pahintulot." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Sige, gawin iyan!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Lagtawan" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Pagbilang ng pahina" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Pagkalipas ng" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Bago ang" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Salamat sa pag-anyaya sa iyong mga kaibigan na gamitin ang %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Ipinadala na ang mga paanyaya sa sumusunod ng mga tagagamit:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Inaanyayahan ka sa %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Anyayahan ang iyong mga kaibigan na gamitin ang %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Mga kaibigang gumagamit na ng %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Ipadala ang mga paanyaya" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Pagkakaayos ng integrasyon ng Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Tagagamit ng Ugnay sa Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Lumagda o magpatalang ginagamit ang Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Mga Pagtatakda sa Ugnay sa Facebook" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Ang pamasak na Facebook ay nagpapahintulot ng integrasyon ng mga pagkakataon " +"sa StatusNet sa pamamagitan ng <a href=\"http://facebook.com/\">Facebook</a> " +"at Ugnay sa Facebook." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Nakalagda na." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Lumagda sa pamamagitan ng iyong Akawnt sa Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Paglagda sa Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Hindi matanggal ang tagagamit ng Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Tahanan" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Tahanan" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Anyayahan" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Anyayahan" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Mga pagtatakda" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Mga pagtatakda" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Upang magamit ang Aplikasyon ng Facebook na %s kailangan mong lumagda sa " +"pamamagitan ng iyong pangalan ng tagagamit at hudyat. Wala ka pa bang " +"bansag?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "isang bagong akawnt." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Magpatala" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Palayaw" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Lumagda" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Hudyat na nawala o nakalimutan?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Walang laman ang pabatid!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" +"Napakahaba niyan. Ang pinakamataas na sukat ng pabatid ay %d mga panitik." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Mga pabatid" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Mga pagtatakda sa integrasyon ng Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" +"Hindi tanggap na susi sa API ng Facebook. Ang pinakamataas na haba ay 255 " +"mga panitik." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" +"Hindi tanggap na lihim sa API ng Facebook. Ang pinakamataas na haba ay 255 " +"mga panitik." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Mga pagtatakda sa aplikasyon ng Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "Susi ng API" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "Ang susi ng API ay ibinigay ng Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Lihim" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "Ang lihim ng API ay ibinigay ng Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Sagipin" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Sagipin ang mga katakdaan ng Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Pamahalaan kung paano umuugnay ang iyong akawnt sa Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Walang tagagamit ng Facebook na nakaugnay sa akawnt na ito." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Nakaugnay na tagagamit ng Facebook" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Huwag iugnay ang aking akawnt mula sa Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"Ang pagtatanggal ng ugnay sa Facebook ay magsasanhi ng hindi mangyayaring " +"paglagda! Paki " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "magtakda ng isang hudyat" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "muna." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Huwag umugnay" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Hindi maalis ang pagkabit sa Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Hindi ka na nakaugnay sa Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Hindi sigurado kung ano ang sinusubok mong gawin." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "May isang suliranin sa pagsagip ng iyong mga nais sa pagsabay!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Nasagip ang mga nais sa pagsabay." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" +"Kusang isapanahon ang aking katayuan ng Facebook na may mga pabatid ko." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Ipadala ang mga tugong \"@\" sa Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Sagipin" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Kung nais mong kusang isapanahon ng %s ang iyong katayuan ng Facebook na may " +"pinakabagong mga pabatid mo, kailangan mo itong bigyan ng pahintulot." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Pahintulutan si %s na isapanahon ang aking katayuan ng Facebook" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Mga nais sa pagsabay" diff --git a/plugins/Facebook/locale/uk/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/uk/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..dd90a4c498 --- /dev/null +++ b/plugins/Facebook/locale/uk/LC_MESSAGES/Facebook.po @@ -0,0 +1,573 @@ +# Translation of StatusNet - Facebook to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"Вітаємо, %1$s. Нам дуже прикро про це повідомляти, але ми не в змозі " +"оновлювати ваш статус у Facebook з %2$s і відключаємо додаток Facebook для " +"вашого акаунту. Таке могло статися тому, що ви, можливо, скасували " +"авторизацію для додатку Facebook або видалили ваш акаунт Facebook. Ви маєте " +"можливість перезапустити додаток для Facebook і автоматичний імпорт ваших " +"статусів з %2$s до Facebook буде поновлено.\n" +"\n" +"З повагою,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "Ви повинні увійти до Facebook або використати Facebook Connect." + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" +"На даному сайті вже є користувач, котрий підключив цей акаунт Facebook." + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "Виникла якась незрозуміла помилка." + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Facebook " +"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " +"використати такий, що вже існує." + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Налаштування акаунту Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "Опції з’єднання" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " +"електронна адреса, адреса IM, телефонний номер." + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "Створити новий акаунт" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "Створити нового користувача з цим нікнеймом." + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "Новий нікнейм" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Створити" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "Приєднати акаунт, який вже існує" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " +"приєднати їх до Facebook." + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "Нікнейм, який вже існує" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Пароль" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Під’єднати" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "Реєстрацію не дозволено." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "Це не дійсний код запрошення." + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "Нікнейм не допускається." + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "Цей нікнейм вже використовується. Спробуйте інший." + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "Помилка при підключенні до Facebook." + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "Невірне ім’я або пароль." + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Увійти" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "Надіслати допис" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "Що нового, %s?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "Лишилось знаків" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Так" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "Помилка сервера: не вдалося отримати користувача!" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "Неточне ім’я або пароль." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s з друзями, сторінка %2$d" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s з друзями" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"Якщо ви бажаєте, щоб додаток %s автоматично оновлював ваш статус у Facebook " +"останнім повідомленням, ви повинні надати дозвіл." + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "Так, зробіть це!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Проскочити" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "Нумерація сторінок" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Вперед" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Назад" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "Дякуємо, що запросили своїх друзів на %s." + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "Запрошення було надіслано таким користувачам:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "Вас було запрошено до %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "Запросіть своїх друзів до %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "Деякі друзі вже користуються %s:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "Розсилка запрошень" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Налаштування інтеграції з Facebook" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Facebook Connect" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "Увійти або зареєструватись з Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Налаштування Facebook Connect" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" +"Додаток Facebook дозволяє інтегрувати StatusNet-сумісні сервіси з <a href=" +"\"http://facebook.com/\">Facebook</a> та Facebook Connect." + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "Тепер ви увійшли." + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "Увійти з акаунтом Facebook" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Вхід Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "Не вдалося видалити користувача Facebook: вже видалений." + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "Не вдалося видалити користувача Facebook." + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Дім" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Дім" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "Запросити" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "Запросити" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Налаштування" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Налаштування" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" +"Щоб використовувати додаток %s для Facebook, ви мусите увійти, " +"використовуючи своє ім’я користувача та пароль. Ще не маєте імені " +"користувача?" + +#: facebookaction.php:235 +msgid " a new account." +msgstr " новий акаунт." + +#: facebookaction.php:242 +msgid "Register" +msgstr "Зареєструвати" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "Нікнейм" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Увійти" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "Загубили або забули пароль?" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "Повідомлення порожнє!" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "Надто довго. Максимальний розмір допису — %d знаків." + +#: facebookaction.php:431 +msgid "Notices" +msgstr "Дописи" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Налаштування інтеграції з Facebook" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" +"Помилковий ключ Facebook API. Максимальна довжина ключа — 255 символів." + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" +"Помилковий секретний код Facebook API. Максимальна довжина — 255 символів." + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Налаштування додатку для Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "API-ключ" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "API-ключ, що був наданий Facebook" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "Секретний код" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "Секретний код API, що був наданий Facebook" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Зберегти" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Зберегти налаштування Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "Зазначте, яким чином ваш акаунт буде під’єднано до Facebook" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "Наразі жоден користувач Facebook не під’єднаний до цього акаунту." + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Під’єднаний користувач Facebook" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "Від’єднати мій акаунт від Facebook" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" +"Якщо ви від’єднаєте свій Facebook, то це унеможливить вхід до системи у " +"майбутньому! Будь ласка, " + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "встановіть пароль" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr " спочатку." + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Від’єднати" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "Не можу видалити посилання на Facebook." + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "Ви від’єдналися від Facebook." + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "Хто зна, що ви намагаєтеся зробити." + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "Виникла проблема при збереженні параметрів синхронізації!" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "Параметри синхронізації збережено." + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "Автоматично оновлювати статус у Facebook моїми дописами." + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "Надсилати «@» відповіді до Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" +"Якщо ви бажаєте, щоб додаток %s автоматично оновлював ваш статус у Facebook " +"останнім повідомленням, ви повинні надати дозвіл." + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "Дозволити додатку %s оновлювати мій статус у Facebook" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "Параметри синхронізації" diff --git a/plugins/Facebook/locale/vi/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/vi/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..c38ff42cc4 --- /dev/null +++ b/plugins/Facebook/locale/vi/LC_MESSAGES/Facebook.po @@ -0,0 +1,540 @@ +# Translation of StatusNet - Facebook to Vietnamese (Tiếng Việt) +# Expored from translatewiki.net +# +# Author: Minh Nguyen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Vietnamese <http://translatewiki.net/wiki/Portal:vi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: vi\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "" + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Thiết lập Tài khoản Facebook" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "Tạo" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "Mật khẩu" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Kết nối" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "" + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "" + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "" + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "" + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "" + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "Đăng nhập" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "Gửi" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s và bạn bè" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "Bỏ qua" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "Sau" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "Trước" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "" + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Người dùng Kết nối Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Thiết lập Kết nối Facebook" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "Đăng nhập vào Facebook" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "Trang chủ" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "Trang chủ" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "Thiết lập" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "Thiết lập" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "Đăng ký" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "Đăng nhập" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Thiết lập ứng dụng Facebook" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "Lưu" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Lưu các thiết lập Facebook" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "Người dùng Facebook kết nối" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Ngắt kết nối" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "Lưu" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/Facebook/locale/zh_CN/LC_MESSAGES/Facebook.po b/plugins/Facebook/locale/zh_CN/LC_MESSAGES/Facebook.po new file mode 100644 index 0000000000..1f3be132ba --- /dev/null +++ b/plugins/Facebook/locale/zh_CN/LC_MESSAGES/Facebook.po @@ -0,0 +1,555 @@ +# Translation of StatusNet - Facebook to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: Chenxiaoqino +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Facebook\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:51+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-facebook\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: facebookutil.php:429 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" +msgstr "" +"你好,%1$s。我们很抱歉的通知你我们无法从%2$s更新你的Facebook状态,并已禁用你" +"帐户的Facebook应用。这可能是因为你取消了Facebook应用的授权,或者你删除了你的" +"Facebook帐户。通过重新安装Facebook应用你可以重新启用你的Facebook应用的自动状" +"态更新。\n" +"\n" +"祝好,\n" +"\n" +"%2$s" + +#: FBConnectAuth.php:55 +msgid "You must be logged into Facebook to use Facebook Connect." +msgstr "你必须使用Facebook Connect来登入Facebook帐号。" + +#: FBConnectAuth.php:79 +msgid "There is already a local user linked with this Facebook account." +msgstr "这里已经有一个用户连接了此Facebook帐号。" + +#: FBConnectAuth.php:91 FBConnectSettings.php:166 +msgid "There was a problem with your session token. Try again, please." +msgstr "你的session token出错了。请重试。" + +#: FBConnectAuth.php:96 +msgid "You can't register if you don't agree to the license." +msgstr "你必须同意许可协议才能注册。" + +#: FBConnectAuth.php:106 +msgid "An unknown error has occured." +msgstr "发生未知错误。" + +#. TRANS: %s is the site name. +#: FBConnectAuth.php:121 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +" 这是你第一次登录到 %s,我们需要将你的Facebook帐号与一个本地的帐号关联。你可" +"以新建一个帐号,或者使用你在本站已有的帐号。" + +#. TRANS: Page title. +#: FBConnectAuth.php:128 +msgid "Facebook Account Setup" +msgstr "Facebook帐号设置" + +#. TRANS: Legend. +#: FBConnectAuth.php:162 +msgid "Connection options" +msgstr "连接选项" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: FBConnectAuth.php:172 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +" 我的文字和文件在%s下提供,除了如下隐私内容:密码、电子邮件地址、IM 地址和电" +"话号码。" + +#. TRANS: Legend. +#: FBConnectAuth.php:189 +msgid "Create new account" +msgstr "创建新帐户" + +#: FBConnectAuth.php:191 +msgid "Create a new user with this nickname." +msgstr "以此昵称创建新帐户" + +#. TRANS: Field label. +#: FBConnectAuth.php:195 +msgid "New nickname" +msgstr "新昵称" + +#: FBConnectAuth.php:197 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 到 64 个小写字母或数字,不包含标点或空格" + +#. TRANS: Submit button. +#: FBConnectAuth.php:201 +msgctxt "BUTTON" +msgid "Create" +msgstr "创建" + +#: FBConnectAuth.php:207 +msgid "Connect existing account" +msgstr "连接现有帐号" + +#: FBConnectAuth.php:209 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "如果你已有帐号,请输入用户名和密码登录并连接至Facebook。" + +#. TRANS: Field label. +#: FBConnectAuth.php:213 +msgid "Existing nickname" +msgstr "已存在的昵称" + +#: FBConnectAuth.php:216 facebookaction.php:277 +msgid "Password" +msgstr "密码" + +#. TRANS: Submit button. +#: FBConnectAuth.php:220 +msgctxt "BUTTON" +msgid "Connect" +msgstr "连接" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: FBConnectAuth.php:237 FBConnectAuth.php:247 +msgid "Registration not allowed." +msgstr "不允许注册。" + +#. TRANS: Client error trying to register with an invalid invitation code. +#: FBConnectAuth.php:255 +msgid "Not a valid invitation code." +msgstr "对不起,无效的邀请码。" + +#: FBConnectAuth.php:267 +msgid "Nickname not allowed." +msgstr "昵称不被允许。" + +#: FBConnectAuth.php:272 +msgid "Nickname already in use. Try another one." +msgstr "昵称已被使用,换一个吧。" + +#: FBConnectAuth.php:290 FBConnectAuth.php:324 FBConnectAuth.php:344 +msgid "Error connecting user to Facebook." +msgstr "连接用户至Facebook时发生错误。" + +#: FBConnectAuth.php:310 +msgid "Invalid username or password." +msgstr "用户名或密码不正确。" + +#. TRANS: Page title. +#: facebooklogin.php:90 facebookaction.php:255 +msgid "Login" +msgstr "登录" + +#. TRANS: Legend. +#: facebooknoticeform.php:144 +msgid "Send a notice" +msgstr "发送一个通知" + +#. TRANS: Field label. +#: facebooknoticeform.php:157 +#, php-format +msgid "What's up, %s?" +msgstr "%s,最近怎么样?" + +#: facebooknoticeform.php:169 +msgid "Available characters" +msgstr "可用的字符" + +#. TRANS: Button text. +#: facebooknoticeform.php:196 +msgctxt "BUTTON" +msgid "Send" +msgstr "发送" + +#: facebookhome.php:103 +msgid "Server error: Couldn't get user!" +msgstr "服务器错误:无法获取用户。" + +#: facebookhome.php:122 +msgid "Incorrect username or password." +msgstr "用户名或密码不正确。" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$s is a page number. +#: facebookhome.php:153 +#, fuzzy, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%s 和好友们" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname +#: facebookhome.php:157 +#, php-format +msgid "%s and friends" +msgstr "%s 和好友们" + +#. TRANS: Instructions. %s is the application name. +#: facebookhome.php:185 +#, php-format +msgid "" +"If you would like the %s app to automatically update your Facebook status " +"with your latest notice, you need to give it permission." +msgstr "" +"如果你希望 %s 应用自动更新你最新的状态到Facebook状态上,你需要给它设置权限。" + +#: facebookhome.php:210 +msgid "Okay, do it!" +msgstr "好的!" + +#. TRANS: Button text. Clicking the button will skip updating Facebook permissions. +#: facebookhome.php:217 +msgctxt "BUTTON" +msgid "Skip" +msgstr "跳过" + +#: facebookhome.php:244 facebookaction.php:336 +msgid "Pagination" +msgstr "分页" + +#. TRANS: Pagination link. +#: facebookhome.php:254 facebookaction.php:345 +msgid "After" +msgstr "之后" + +#. TRANS: Pagination link. +#: facebookhome.php:263 facebookaction.php:353 +msgid "Before" +msgstr "之前" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:69 +#, php-format +msgid "Thanks for inviting your friends to use %s." +msgstr "谢谢你邀请你的朋友们来使用 %s。" + +#. TRANS: Followed by an unordered list with invited friends. +#: facebookinvite.php:72 +msgid "Invitations have been sent to the following users:" +msgstr "邀请已发给一些的用户:" + +#: facebookinvite.php:91 +#, php-format +msgid "You have been invited to %s" +msgstr "你被邀请来到 %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:101 +#, php-format +msgid "Invite your friends to use %s" +msgstr "邀请你的朋友们来使用 %s" + +#. TRANS: %s is the name of the site. +#: facebookinvite.php:124 +#, php-format +msgid "Friends already using %s:" +msgstr "已经使用 %s 的好友们:" + +#. TRANS: Page title. +#: facebookinvite.php:143 +msgid "Send invitations" +msgstr "发送邀请" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:190 +msgid "Facebook integration configuration" +msgstr "Facebook整合设置" + +#: FacebookPlugin.php:431 +msgid "Facebook Connect User" +msgstr "Facebook Connect 用户" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookPlugin.php:463 +msgid "Login or register using Facebook" +msgstr "使用 Facebook 登陆或注册" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title. +#: FacebookPlugin.php:487 FBConnectSettings.php:55 +msgid "Facebook Connect Settings" +msgstr "Facebook Connect 设置" + +#: FacebookPlugin.php:591 +msgid "" +"The Facebook plugin allows integrating StatusNet instances with <a href=" +"\"http://facebook.com/\">Facebook</a> and Facebook Connect." +msgstr "" + +#: FBConnectLogin.php:33 +msgid "Already logged in." +msgstr "已登录。" + +#. TRANS: Instructions. +#: FBConnectLogin.php:42 +msgid "Login with your Facebook Account" +msgstr "使用你的 Facebook 帐号登录" + +#. TRANS: Page title. +#: FBConnectLogin.php:57 +msgid "Facebook Login" +msgstr "" + +#: facebookremove.php:53 +msgid "Couldn't remove Facebook user: already deleted." +msgstr "" + +#: facebookremove.php:63 +msgid "Couldn't remove Facebook user." +msgstr "" + +#. TRANS: Link description for 'Home' link that leads to a start page. +#: facebookaction.php:169 +msgctxt "MENU" +msgid "Home" +msgstr "" + +#. TRANS: Tooltip for 'Home' link that leads to a start page. +#: facebookaction.php:171 +msgid "Home" +msgstr "" + +#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:180 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited. +#: facebookaction.php:182 +msgid "Invite" +msgstr "" + +#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:192 +msgctxt "MENU" +msgid "Settings" +msgstr "" + +#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set. +#: facebookaction.php:194 +msgid "Settings" +msgstr "" + +#: facebookaction.php:233 +#, php-format +msgid "" +"To use the %s Facebook Application you need to login with your username and " +"password. Don't have a username yet?" +msgstr "" + +#: facebookaction.php:235 +msgid " a new account." +msgstr "" + +#: facebookaction.php:242 +msgid "Register" +msgstr "" + +#: facebookaction.php:274 +msgid "Nickname" +msgstr "" + +#. TRANS: Login button. +#: facebookaction.php:282 +msgctxt "BUTTON" +msgid "Login" +msgstr "" + +#: facebookaction.php:288 +msgid "Lost or forgotten password?" +msgstr "" + +#: facebookaction.php:370 +msgid "No notice content!" +msgstr "" + +#: facebookaction.php:377 +#, php-format +msgid "That's too long. Max notice size is %d chars." +msgstr "" + +#: facebookaction.php:431 +msgid "Notices" +msgstr "" + +#: facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: facebookadminpanel.php:123 +msgid "Invalid Facebook API key. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:129 +msgid "Invalid Facebook API secret. Max length is 255 characters." +msgstr "" + +#: facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: facebookadminpanel.php:184 +msgid "API key" +msgstr "" + +#: facebookadminpanel.php:185 +msgid "API key provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: facebookadminpanel.php:194 +msgid "API secret provided by Facebook" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save" +msgstr "" + +#: facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#. TRANS: Instructions. +#: FBConnectSettings.php:66 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:90 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:98 +msgid "Connected Facebook user" +msgstr "" + +#. TRANS: Legend. +#: FBConnectSettings.php:118 +msgid "Disconnect my account from Facebook" +msgstr "" + +#. TRANS: Followed by a link containing text "set a password". +#: FBConnectSettings.php:125 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#. TRANS: Preceded by "Please " and followed by " first." +#: FBConnectSettings.php:130 +msgid "set a password" +msgstr "" + +#. TRANS: Preceded by "Please set a password". +#: FBConnectSettings.php:132 +msgid " first." +msgstr "" + +#. TRANS: Submit button. +#: FBConnectSettings.php:145 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "" + +#: FBConnectSettings.php:180 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:196 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:199 +msgid "Not sure what you're trying to do." +msgstr "" + +#: facebooksettings.php:61 +msgid "There was a problem saving your sync preferences!" +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: facebooksettings.php:64 +msgid "Sync preferences saved." +msgstr "" + +#: facebooksettings.php:87 +msgid "Automatically update my Facebook status with my notices." +msgstr "" + +#: facebooksettings.php:94 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: facebooksettings.php:102 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: %s is the application name. +#: facebooksettings.php:111 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." +msgstr "" + +#: facebooksettings.php:124 +#, php-format +msgid "Allow %s to update my Facebook status" +msgstr "" + +#. TRANS: Page title for synchronisation settings. +#: facebooksettings.php:134 +msgid "Sync preferences" +msgstr "" diff --git a/plugins/FacebookBridge/FacebookBridgePlugin.php b/plugins/FacebookBridge/FacebookBridgePlugin.php new file mode 100644 index 0000000000..8b5d05e983 --- /dev/null +++ b/plugins/FacebookBridge/FacebookBridgePlugin.php @@ -0,0 +1,552 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * A plugin for integrating Facebook with StatusNet. Includes single-sign-on + * and publishing notices to Facebook using Facebook's Graph API. + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Pugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +define("FACEBOOK_SERVICE", 2); + +/** + * Main class for Facebook Bridge plugin + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class FacebookBridgePlugin extends Plugin +{ + public $appId = null; // Facebook application ID + public $secret = null; // Facebook application secret + public $facebook = null; // Facebook application instance + public $dir = null; // Facebook plugin dir + + /** + * Initializer for this plugin + * + * Gets an instance of the Facebook API client object + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function initialize() + { + $this->facebook = Facebookclient::getFacebook( + $this->appId, + $this->secret + ); + + return true; + } + + /** + * Load related modules when needed + * + * @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__); + + //common_debug("class = " . $cls); + + switch ($cls) + { + case 'Facebook': // Facebook PHP SDK + include_once $dir . '/extlib/facebook.php'; + return false; + case 'FacebookloginAction': + case 'FacebookfinishloginAction': + case 'FacebookadminpanelAction': + case 'FacebooksettingsAction': + case 'FacebookdeauthorizeAction': + include_once $dir . '/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + case 'Facebookclient': + case 'FacebookQueueHandler': + include_once $dir . '/lib/' . strtolower($cls) . '.php'; + return false; + case 'Notice_to_item': + include_once $dir . '/classes/' . $cls . '.php'; + return false; + default: + return true; + } + + } + + /** + * Database schema setup + * + * We maintain a table mapping StatusNet notices to Facebook items + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + $schema->ensureTable('notice_to_item', Notice_to_item::schemaDef()); + return true; + } + + /* + * Does this $action need the Facebook JavaScripts? + */ + function needsScripts($action) + { + static $needy = array( + 'FacebookloginAction', + 'FacebookfinishloginAction', + 'FacebookadminpanelAction', + 'FacebooksettingsAction' + ); + + if (in_array(get_class($action), $needy)) { + return true; + } else { + return false; + } + } + + /** + * Map URLs to actions + * + * @param Net_URL_Mapper $m path-to-action mapper + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onRouterInitialized($m) + { + // Always add the admin panel route + $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); + + // Only add these routes if an application has been setup on + // Facebook for the plugin to use. + if ($this->hasApplication()) { + + $m->connect( + 'main/facebooklogin', + array('action' => 'facebooklogin') + ); + $m->connect( + 'main/facebookfinishlogin', + array('action' => 'facebookfinishlogin') + ); + $m->connect( + 'settings/facebook', + array('action' => 'facebooksettings') + ); + $m->connect( + 'facebook/deauthorize', + array('action' => 'facebookdeauthorize') + ); + + } + + return true; + } + + /* + * Add a login tab for Facebook, but only if there's a Facebook + * application defined for the plugin to use. + * + * @param Action &action the current action + * + * @return void + */ + function onEndLoginGroupNav(&$action) + { + $action_name = $action->trimmed('action'); + + if ($this->hasApplication()) { + + $action->menuItem( + common_local_url('facebooklogin'), + _m('MENU', 'Facebook'), + // TRANS: Tooltip for menu item "Facebook". + _m('Login or register using Facebook'), + 'facebooklogin' === $action_name + ); + } + + return true; + } + + /** + * If the plugin's installed, this should be accessible to admins + */ + function onAdminPanelCheck($name, &$isOK) + { + if ($name == 'facebook') { + $isOK = true; + return false; + } + + return true; + } + + /** + * Add a Facebook tab to the admin panels + * + * @param Widget $nav Admin panel nav + * + * @return boolean hook value + */ + function onEndAdminPanelNav($nav) + { + if (AdminPanelAction::canAdmin('facebook')) { + + $action_name = $nav->action->trimmed('action'); + + $nav->out->menuItem( + common_local_url('facebookadminpanel'), + // TRANS: Menu item. + _m('MENU','Facebook'), + // TRANS: Tooltip for menu item "Facebook". + _m('Facebook integration configuration'), + $action_name == 'facebookadminpanel', + 'nav_facebook_admin_panel' + ); + } + + return true; + } + + /* + * Add a tab for user-level Facebook settings if the user + * has a link to Facebook + * + * @param Action &action the current action + * + * @return void + */ + function onEndConnectSettingsNav(&$action) + { + if ($this->hasApplication()) { + $action_name = $action->trimmed('action'); + + // CurrentUserDesignAction stores the current user in $cur + $user = $action->getCurrentUser(); + + $flink = null; + + if (!empty($user)) { + $flink = Foreign_link::getByUserID( + $user->id, + FACEBOOK_SERVICE + ); + } + + if (!empty($flink)) { + + $action->menuItem( + common_local_url('facebooksettings'), + // TRANS: Menu item tab. + _m('MENU','Facebook'), + // TRANS: Tooltip for menu item "Facebook". + _m('Facebook settings'), + $action_name === 'facebooksettings' + ); + + } + } + + } + + /* + * Is there a Facebook application for the plugin to use? + * + * Checks to see if a Facebook application ID and secret + * have been configured and a valid Facebook API client + * object exists. + * + */ + function hasApplication() + { + if (!empty($this->facebook)) { + + $appId = $this->facebook->getAppId(); + $secret = $this->facebook->getApiSecret(); + + if (!empty($appId) && !empty($secret)) { + return true; + } + + } + + return false; + } + + /* + * Output a Facebook div for the Facebook JavaSsript SDK to use + * + * @param Action $action the current action + * + */ + function onStartShowHeader($action) + { + // output <div id="fb-root"></div> as close to <body> as possible + $action->element('div', array('id' => 'fb-root')); + return true; + } + + /* + * Load the Facebook JavaScript SDK on pages that need them. + * + * @param Action $action the current action + * + */ + function onEndShowScripts($action) + { + if ($this->needsScripts($action)) { + + $action->script('https://connect.facebook.net/en_US/all.js'); + + $script = <<<ENDOFSCRIPT +FB.init({appId: %1\$s, session: %2\$s, status: true, cookie: true, xfbml: true}); + +$('#facebook_button').bind('click', function(event) { + + event.preventDefault(); + + FB.login(function(response) { + if (response.session && response.perms) { + window.location.href = '%3\$s'; + } else { + // NOP (user cancelled login) + } + }, {perms:'read_stream,publish_stream,offline_access,user_status,user_location,user_website,email'}); +}); +ENDOFSCRIPT; + + $action->inlineScript( + sprintf($script, + json_encode($this->facebook->getAppId()), + json_encode($this->facebook->getSession()), + common_local_url('facebookfinishlogin') + ) + ); + } + } + + /* + * Log the user out of Facebook, per the Facebook authentication guide + * + * @param Action action the current action + */ + function onEndLogout($action) + { + if ($this->hasApplication()) { + $session = $this->facebook->getSession(); + $fbuser = null; + $fbuid = null; + + if ($session) { + try { + $fbuid = $this->facebook->getUser(); + $fbuser = $this->facebook->api('/me'); + } catch (FacebookApiException $e) { + common_log(LOG_ERROR, $e, __FILE__); + } + } + + if (!empty($fbuser)) { + + $logoutUrl = $this->facebook->getLogoutUrl( + array('next' => common_local_url('public')) + ); + + common_log( + LOG_INFO, + sprintf( + "Logging user out of Facebook (fbuid = %s)", + $fbuid + ), + __FILE__ + ); + common_debug("LOGOUT URL = $logoutUrl"); + common_redirect($logoutUrl, 303); + } + + } + } + + /* + * Add fbml namespace to our HTML, so Facebook's JavaScript SDK can parse + * and render XFBML tags + * + * @param Action $action the current action + * @param array $attrs array of attributes for the HTML tag + * + * @return nothing + */ + function onStartHtmlElement($action, $attrs) { + + if ($this->needsScripts($action)) { + $attrs = array_merge( + $attrs, + array('xmlns:fb' => 'http://www.facebook.com/2008/fbml') + ); + } + + return true; + } + + /** + * Add a Facebook 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) + { + if (self::hasApplication() && $notice->isLocal()) { + array_push($transports, 'facebook'); + } + return true; + } + + /** + * Register Facebook notice queue handler + * + * @param QueueManager $manager + * + * @return boolean hook return + */ + function onEndInitializeQueueManager($manager) + { + if (self::hasApplication()) { + $manager->connect('facebook', 'FacebookQueueHandler'); + } + return true; + } + + /* + * Use SSL for Facebook stuff + * + * @param string $action name + * @param boolean $ssl outval to force SSL + * @return mixed hook return value + */ + function onSensitiveAction($action, &$ssl) + { + $sensitive = array( + 'facebookadminpanel', + 'facebooksettings', + 'facebooklogin', + 'facebookfinishlogin' + ); + + if (in_array($action, $sensitive)) { + $ssl = true; + return false; + } else { + return true; + } + } + + /** + * If a notice gets deleted, remove the Notice_to_item mapping and + * delete the item on Facebook + * + * @param User $user The user doing the deleting + * @param Notice $notice The notice getting deleted + * + * @return boolean hook value + */ + function onStartDeleteOwnNotice(User $user, Notice $notice) + { + $client = new Facebookclient($notice); + $client->streamRemove(); + + return true; + } + + /** + * Notify remote users when their notices get favorited. + * + * @param Profile or User $profile of local user doing the faving + * @param Notice $notice being favored + * @return hook return value + */ + function onEndFavorNotice(Profile $profile, Notice $notice) + { + $client = new Facebookclient($notice); + $client->like(); + + return true; + } + + /** + * Notify remote users when their notices get de-favorited. + * + * @param Profile $profile Profile person doing the de-faving + * @param Notice $notice Notice being favored + * + * @return hook return value + */ + function onEndDisfavorNotice(Profile $profile, Notice $notice) + { + $client = new Facebookclient($notice); + $client->unLike(); + + return true; + } + + /* + * Add version info for this plugin + * + * @param array &$versions plugin version descriptions + */ + function onPluginVersion(&$versions) + { + $versions[] = array( + 'name' => 'Facebook Bridge', + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews, Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:FacebookBridge', + 'rawdescription' => + _m('A plugin for integrating StatusNet with Facebook.') + ); + + return true; + } +} diff --git a/plugins/FacebookBridge/actions/facebookadminpanel.php b/plugins/FacebookBridge/actions/facebookadminpanel.php new file mode 100644 index 0000000000..61b5441848 --- /dev/null +++ b/plugins/FacebookBridge/actions/facebookadminpanel.php @@ -0,0 +1,212 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Facebook integration administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +/** + * Administer global Facebook integration settings + * + * @category Admin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class FacebookadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + function title() + { + return _m('Facebook'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + function getInstructions() + { + return _m('Facebook integration settings'); + } + + /** + * Show the Facebook admin panel form + * + * @return void + */ + function showForm() + { + $form = new FacebookAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + function saveSettings() + { + static $settings = array( + 'facebook' => array('appid', 'secret'), + ); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] + = $this->trimmed($setting); + } + } + + // This throws an exception on validation errors + $this->validate($values); + + // assert(all values are valid); + + $config = new Config(); + + $config->query('BEGIN'); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + function validate(&$values) + { + // appId, key and secret (can't be too long) + + if (mb_strlen($values['facebook']['appid']) > 255) { + $this->clientError( + _m("Invalid Facebook ID. Max length is 255 characters.") + ); + } + + if (mb_strlen($values['facebook']['secret']) > 255) { + $this->clientError( + _m("Invalid Facebook secret. Max length is 255 characters.") + ); + } + } +} + +class FacebookAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + function id() + { + return 'facebookadminpanel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('facebookadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_facebook-application') + ); + $this->out->element('legend', null, _m('Facebook application settings')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input( + 'appid', + _m('Application ID'), + _m('ID of your Facebook application'), + 'facebook' + ); + $this->unli(); + + $this->li(); + $this->input( + 'secret', + _m('Secret'), + _m('Application secret'), + 'facebook' + ); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + function formActions() + { + $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Facebook settings')); + } +} diff --git a/plugins/FacebookBridge/actions/facebookdeauthorize.php b/plugins/FacebookBridge/actions/facebookdeauthorize.php new file mode 100644 index 0000000000..6813ccf1d2 --- /dev/null +++ b/plugins/FacebookBridge/actions/facebookdeauthorize.php @@ -0,0 +1,144 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * An action that handles deauthorize callbacks from Facebook + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/* + * Action class for handling deauthorize callbacks from Facebook. If the user + * doesn't have a password let her know she'll need to contact the site + * admin to get back into her account (if possible). + */ +class FacebookdeauthorizeAction extends Action +{ + private $facebook; + + /** + * For initializing members of the class. + * + * @param array $args misc. arguments + * + * @return boolean true + */ + function prepare($args) + { + $this->facebook = Facebookclient::getFacebook(); + + return true; + } + + /** + * Handler method + * + * @param array $args is ignored since it's now passed in in prepare() + */ + function handle($args) + { + parent::handle($args); + + $data = $this->facebook->getSignedRequest(); + + if (isset($data['user_id'])) { + + $fbuid = $data['user_id']; + + $flink = Foreign_link::getByForeignID($fbuid, FACEBOOK_SERVICE); + $user = $flink->getUser(); + + // Remove the link to Facebook + $result = $flink->delete(); + + if (!$result) { + common_log_db_error($flink, 'DELETE', __FILE__); + common_log( + LOG_WARNING, + sprintf( + 'Unable to delete Facebook foreign link ' + . 'for %s (%d), fbuid %d', + $user->nickname, + $user->id, + $fbuid + ), + __FILE__ + ); + return; + } + + common_log( + LOG_INFO, + sprintf( + 'Facebook callback: %s (%d), fbuid %d has deauthorized ' + . 'the Facebook application.', + $user->nickname, + $user->id, + $fbuid + ), + __FILE__ + ); + + // Warn the user about being locked out of their account + // if we can. + if (empty($user->password) && !empty($user->email)) { + Facebookclient::emailWarn($user); + } else { + common_log( + LOG_WARNING, + sprintf( + '%s (%d), fbuid %d has deauthorized his/her Facebook ' + . 'connection but hasn\'t set a password so s/he ' + . 'is locked out.', + $user->nickname, + $user->id, + $fbuid + ), + __FILE__ + ); + } + + } else { + if (!empty($data)) { + common_log( + LOG_WARNING, + sprintf( + 'Facebook called the deauthorize callback ' + . ' but didn\'t provide a user ID.' + ), + __FILE__ + ); + } else { + // It probably wasn't Facebook that hit this action, + // so redirect to the public timeline + common_redirect(common_local_url('public'), 303); + } + } + } + +} \ No newline at end of file diff --git a/plugins/FacebookBridge/actions/facebookfinishlogin.php b/plugins/FacebookBridge/actions/facebookfinishlogin.php new file mode 100644 index 0000000000..349acd7e22 --- /dev/null +++ b/plugins/FacebookBridge/actions/facebookfinishlogin.php @@ -0,0 +1,677 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Login or register a local user based on a Facebook user + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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 FacebookfinishloginAction extends Action +{ + private $facebook = null; // Facebook client + private $fbuid = null; // Facebook user ID + private $fbuser = null; // Facebook user object (JSON) + + function prepare($args) { + + parent::prepare($args); + + $this->facebook = new Facebook( + array( + 'appId' => common_config('facebook', 'appid'), + 'secret' => common_config('facebook', 'secret'), + 'cookie' => true, + ) + ); + + // Check for a Facebook user session + + $session = $this->facebook->getSession(); + $me = null; + + if ($session) { + try { + $this->fbuid = $this->facebook->getUser(); + $this->fbuser = $this->facebook->api('/me'); + } catch (FacebookApiException $e) { + common_log(LOG_ERROR, $e, __FILE__); + } + } + + if (!empty($this->fbuser)) { + + // OKAY, all is well... proceed to register + + common_debug("Found a valid Facebook user.", __FILE__); + } else { + + // This shouldn't happen in the regular course of things + + list($proxy, $ip) = common_client_ip(); + + common_log( + LOG_WARNING, + sprintf( + 'Failed Facebook authentication attempt, proxy = %s, ip = %s.', + $proxy, + $ip + ), + __FILE__ + ); + + $this->clientError( + _m('You must be logged into Facebook to register a local account using Facebook.') + ); + } + + return true; + } + + function handle($args) + { + parent::handle($args); + + if (common_is_real_login()) { + + // User is already logged in, are her accounts already linked? + + $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE); + + if (!empty($flink)) { + + // User already has a linked Facebook account and shouldn't be here! + + common_debug( + sprintf( + 'There\'s already a local user %d linked with Facebook user %s.', + $flink->user_id, + $this->fbuid + ) + ); + + $this->clientError( + _m('There is already a local account linked with that Facebook account.') + ); + + } else { + + // Possibly reconnect an existing account + + $this->connectUser(); + } + + } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $this->handlePost(); + } else { + $this->tryLogin(); + } + } + + function handlePost() + { + $token = $this->trimmed('token'); + + if (!$token || $token != common_session_token()) { + $this->showForm( + _m('There was a problem with your session token. Try again, please.') + ); + return; + } + + if ($this->arg('create')) { + + if (!$this->boolean('license')) { + $this->showForm( + _m('You can\'t register if you don\'t agree to the license.'), + $this->trimmed('newname') + ); + return; + } + + // We has a valid Facebook session and the Facebook user has + // agreed to the SN license, so create a new user + $this->createNewUser(); + + } else if ($this->arg('connect')) { + + $this->connectNewUser(); + + } else { + + $this->showForm( + _m('An unknown error has occured.'), + $this->trimmed('newname') + ); + } + } + + function showPageNotice() + { + if ($this->error) { + + $this->element('div', array('class' => 'error'), $this->error); + + } else { + + $this->element( + 'div', 'instructions', + // TRANS: %s is the site name. + sprintf( + _m('This is the first time you\'ve logged into %s so we must connect your Facebook to a local account. You can either create a new local account, or connect with an existing local account.'), + common_config('site', 'name') + ) + ); + } + } + + function title() + { + // TRANS: Page title. + return _m('Facebook Setup'); + } + + function showForm($error=null, $username=null) + { + $this->error = $error; + $this->username = $username; + + $this->showPage(); + } + + function showPage() + { + parent::showPage(); + } + + /** + * @fixme much of this duplicates core code, which is very fragile. + * Should probably be replaced with an extensible mini version of + * the core registration form. + */ + function showContent() + { + if (!empty($this->message_text)) { + $this->element('p', null, $this->message); + return; + } + + $this->elementStart('form', array('method' => 'post', + 'id' => 'form_settings_facebook_connect', + 'class' => 'form_settings', + 'action' => common_local_url('facebookfinishlogin'))); + $this->elementStart('fieldset', array('id' => 'settings_facebook_connect_options')); + // TRANS: Legend. + $this->element('legend', null, _m('Connection options')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + $this->element('input', array('type' => 'checkbox', + 'id' => 'license', + 'class' => 'checkbox', + 'name' => 'license', + 'value' => 'true')); + $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license')); + // TRANS: %s is the name of the license used by the user for their status updates. + $message = _m('My text and files are available under %s ' . + 'except this private data: password, ' . + 'email address, IM address, and phone number.'); + $link = '<a href="' . + htmlspecialchars(common_config('license', 'url')) . + '">' . + htmlspecialchars(common_config('license', 'title')) . + '</a>'; + $this->raw(sprintf(htmlspecialchars($message), $link)); + $this->elementEnd('label'); + $this->elementEnd('li'); + $this->elementEnd('ul'); + + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + $this->element('legend', null, + // TRANS: Legend. + _m('Create new account')); + $this->element('p', null, + _m('Create a new user with this nickname.')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + // TRANS: Field label. + $this->input('newname', _m('New nickname'), + ($this->username) ? $this->username : '', + _m('1-64 lowercase letters or numbers, no punctuation or spaces')); + $this->elementEnd('li'); + $this->elementEnd('ul'); + // TRANS: Submit button. + $this->submit('create', _m('BUTTON','Create')); + $this->elementEnd('fieldset'); + + $this->elementStart('fieldset'); + // TRANS: Legend. + $this->element('legend', null, + _m('Connect existing account')); + $this->element('p', null, + _m('If you already have an account, login with your username and password to connect it to your Facebook.')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + // TRANS: Field label. + $this->input('nickname', _m('Existing nickname')); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->password('password', _m('Password')); + $this->elementEnd('li'); + $this->elementEnd('ul'); + // TRANS: Submit button. + $this->submit('connect', _m('BUTTON','Connect')); + $this->elementEnd('fieldset'); + + $this->elementEnd('fieldset'); + $this->elementEnd('form'); + } + + function message($msg) + { + $this->message_text = $msg; + $this->showPage(); + } + + function createNewUser() + { + if (common_config('site', 'closed')) { + // TRANS: Client error trying to register with registrations not allowed. + $this->clientError(_m('Registration not allowed.')); + return; + } + + $invite = null; + + if (common_config('site', 'inviteonly')) { + $code = $_SESSION['invitecode']; + if (empty($code)) { + // TRANS: Client error trying to register with registrations 'invite only'. + $this->clientError(_m('Registration not allowed.')); + return; + } + + $invite = Invitation::staticGet($code); + + if (empty($invite)) { + // TRANS: Client error trying to register with an invalid invitation code. + $this->clientError(_m('Not a valid invitation code.')); + return; + } + } + + try { + $nickname = Nickname::normalize($this->trimmed('newname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); + return; + } + + if (!User::allowed_nickname($nickname)) { + $this->showForm(_m('Nickname not allowed.')); + return; + } + + if (User::staticGet('nickname', $nickname)) { + $this->showForm(_m('Nickname already in use. Try another one.')); + return; + } + + $args = array( + 'nickname' => $nickname, + 'fullname' => $this->fbuser['first_name'] + . ' ' . $this->fbuser['last_name'], + 'homepage' => $this->fbuser['website'], + 'bio' => $this->fbuser['about'], + 'location' => $this->fbuser['location']['name'] + ); + + // It's possible that the email address is already in our + // DB. It's a unique key, so we need to check + if ($this->isNewEmail($this->fbuser['email'])) { + $args['email'] = $this->fbuser['email']; + $args['email_confirmed'] = true; + } + + if (!empty($invite)) { + $args['code'] = $invite->code; + } + + $user = User::register($args); + $result = $this->flinkUser($user->id, $this->fbuid); + + if (!$result) { + $this->serverError(_m('Error connecting user to Facebook.')); + return; + } + + // Add a Foreign_user record + Facebookclient::addFacebookUser($this->fbuser); + + $this->setAvatar($user); + + common_set_user($user); + common_real_login(true); + + common_log( + LOG_INFO, + sprintf( + 'Registered new user %s (%d) from Facebook user %s, (fbuid %d)', + $user->nickname, + $user->id, + $this->fbuser['name'], + $this->fbuid + ), + __FILE__ + ); + + $this->goHome($user->nickname); + } + + /* + * Attempt to download the user's Facebook picture and create a + * StatusNet avatar for the new user. + */ + function setAvatar($user) + { + $picUrl = sprintf( + 'http://graph.facebook.com/%s/picture?type=large', + $this->fbuid + ); + + // fetch the picture from Facebook + $client = new HTTPClient(); + + // fetch the actual picture + $response = $client->get($picUrl); + + if ($response->isOk()) { + + $finalUrl = $client->getUrl(); + + // Make sure the filename is unique becuase it's possible for a user + // to deauthorize our app, and then come back in as a new user but + // have the same Facebook picture (avatar URLs have a unique index + // and their URLs are based on the filenames). + $filename = 'facebook-' . common_good_rand(4) . '-' + . substr(strrchr($finalUrl, '/'), 1); + + $ok = file_put_contents( + Avatar::path($filename), + $response->getBody() + ); + + if (!$ok) { + common_log( + LOG_WARNING, + sprintf( + 'Couldn\'t save Facebook avatar %s', + $tmp + ), + __FILE__ + ); + + } else { + + // save it as an avatar + $profile = $user->getProfile(); + + if ($profile->setOriginal($filename)) { + common_log( + LOG_INFO, + sprintf( + 'Saved avatar for %s (%d) from Facebook picture for ' + . '%s (fbuid %d), filename = %s', + $user->nickname, + $user->id, + $this->fbuser['name'], + $this->fbuid, + $filename + ), + __FILE__ + ); + } + } + } + } + + function connectNewUser() + { + $nickname = $this->trimmed('nickname'); + $password = $this->trimmed('password'); + + if (!common_check_user($nickname, $password)) { + $this->showForm(_m('Invalid username or password.')); + return; + } + + $user = User::staticGet('nickname', $nickname); + + if (!empty($user)) { + common_debug( + sprintf( + 'Found a legit user to connect to Facebook: %s (%d)', + $user->nickname, + $user->id + ), + __FILE__ + ); + } + + $this->tryLinkUser($user); + + common_set_user($user); + common_real_login(true); + + $this->goHome($user->nickname); + } + + function connectUser() + { + $user = common_current_user(); + $this->tryLinkUser($user); + common_redirect(common_local_url('facebookfinishlogin'), 303); + } + + function tryLinkUser($user) + { + $result = $this->flinkUser($user->id, $this->fbuid); + + if (empty($result)) { + $this->serverError(_m('Error connecting user to Facebook.')); + return; + } + + common_debug( + sprintf( + 'Connected Facebook user %s (fbuid %d) to local user %s (%d)', + $this->fbuser['name'], + $this->fbuid, + $user->nickname, + $user->id + ), + __FILE__ + ); + } + + function tryLogin() + { + common_debug( + sprintf( + 'Trying login for Facebook user %s', + $this->fbuid + ), + __FILE__ + ); + + $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE); + + if (!empty($flink)) { + $user = $flink->getUser(); + + if (!empty($user)) { + + common_log( + LOG_INFO, + sprintf( + 'Logged in Facebook user %s as user %d (%s)', + $this->fbuid, + $user->nickname, + $user->id + ), + __FILE__ + ); + + common_set_user($user); + common_real_login(true); + $this->goHome($user->nickname); + } + + } else { + + common_debug( + sprintf( + 'No flink found for fbuid: %s - new user', + $this->fbuid + ), + __FILE__ + ); + + $this->showForm(null, $this->bestNewNickname()); + } + } + + function goHome($nickname) + { + $url = common_get_returnto(); + if ($url) { + // We don't have to return to it again + common_set_returnto(null); + } else { + $url = common_local_url('all', + array('nickname' => + $nickname)); + } + + common_redirect($url, 303); + } + + function flinkUser($user_id, $fbuid) + { + $flink = new Foreign_link(); + $flink->user_id = $user_id; + $flink->foreign_id = $fbuid; + $flink->service = FACEBOOK_SERVICE; + + // Pull the access token from the Facebook cookies + $flink->credentials = $this->facebook->getAccessToken(); + + $flink->created = common_sql_now(); + + $flink_id = $flink->insert(); + + return $flink_id; + } + + function bestNewNickname() + { + if (!empty($this->fbuser['name'])) { + $nickname = $this->nicknamize($this->fbuser['name']); + if ($this->isNewNickname($nickname)) { + return $nickname; + } + } + + // Try the full name + + $fullname = trim($this->fbuser['first_name'] . + ' ' . $this->fbuser['last_name']); + + if (!empty($fullname)) { + $fullname = $this->nicknamize($fullname); + if ($this->isNewNickname($fullname)) { + return $fullname; + } + } + + return null; + } + + /** + * Given a string, try to make it work as a nickname + */ + function nicknamize($str) + { + $str = preg_replace('/\W/', '', $str); + return strtolower($str); + } + + /* + * Is the desired nickname already taken? + * + * @return boolean result + */ + function isNewNickname($str) + { + if (!Nickname::isValid($str)) { + return false; + } + + if (!User::allowed_nickname($str)) { + return false; + } + + if (User::staticGet('nickname', $str)) { + return false; + } + + return true; + } + + /* + * Do we already have a user record with this email? + * (emails have to be unique but they can change) + * + * @param string $email the email address to check + * + * @return boolean result + */ + function isNewEmail($email) + { + // we shouldn't have to validate the format + $result = User::staticGet('email', $email); + + if (empty($result)) { + common_debug("XXXXXXXXXXXXXXXXXX We've never seen this email before!!!"); + return true; + } + common_debug("XXXXXXXXXXXXXXXXXX dupe email address!!!!"); + + return false; + } + +} diff --git a/plugins/FacebookBridge/actions/facebooklogin.php b/plugins/FacebookBridge/actions/facebooklogin.php new file mode 100644 index 0000000000..f8a45c41b2 --- /dev/null +++ b/plugins/FacebookBridge/actions/facebooklogin.php @@ -0,0 +1,123 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * An action for logging in with Facebook + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class FacebookloginAction extends Action +{ + + function handle($args) + { + parent::handle($args); + + if (common_is_real_login()) { + $this->clientError(_m('Already logged in.')); + } else { + $this->showPage(); + } + } + + function getInstructions() + { + // TRANS: Instructions. + return _m('Login with your Facebook Account'); + } + + function showPageNotice() + { + $instr = $this->getInstructions(); + $output = common_markup_to_html($instr); + $this->elementStart('div', 'instructions'); + $this->raw($output); + $this->elementEnd('div'); + } + + function title() + { + // TRANS: Page title. + return _m('Login with Facebook'); + } + + function showContent() { + + $this->elementStart('fieldset'); + + $facebook = Facebookclient::getFacebook(); + + // Degrade to plain link if JavaScript is not available + $this->elementStart( + 'a', + array( + 'href' => $facebook->getLoginUrl( + array( + 'next' => common_local_url('facebookfinishlogin'), + 'cancel' => common_local_url('facebooklogin'), + 'req_perms' => 'read_stream,publish_stream,offline_access,user_status,user_location,user_website,email' + ) + ), + 'id' => 'facebook_button' + ) + ); + + $attrs = array( + 'src' => common_path( + 'plugins/FacebookBridge/images/login-button.png', + true + ), + 'alt' => 'Login with Facebook', + 'title' => 'Login with Facebook' + ); + + $this->element('img', $attrs); + + $this->elementEnd('a'); + + /* + $this->element('div', array('id' => 'fb-root')); + $this->script( + sprintf( + 'http://connect.facebook.net/en_US/all.js#appId=%s&xfbml=1', + common_config('facebook', 'appid') + ) + ); + $this->element('fb:facepile', array('max-rows' => '2', 'width' =>'300')); + */ + $this->elementEnd('fieldset'); + } + + function showLocalNav() + { + $nav = new LoginGroupNav($this); + $nav->show(); + } +} + diff --git a/plugins/FacebookBridge/actions/facebooksettings.php b/plugins/FacebookBridge/actions/facebooksettings.php new file mode 100644 index 0000000000..6576e20411 --- /dev/null +++ b/plugins/FacebookBridge/actions/facebooksettings.php @@ -0,0 +1,266 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Edit user settings for Facebook + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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); +} + +/** + * Edit user settings for Facebook + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see SettingsAction + */ +class FacebooksettingsAction extends ConnectSettingsAction { + private $facebook; // Facebook PHP-SDK client obj + private $flink; + private $user; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + function prepare($args) { + parent::prepare($args); + + $this->facebook = new Facebook( + array( + 'appId' => common_config('facebook', 'appid'), + 'secret' => common_config('facebook', 'secret'), + 'cookie' => true, + ) + ); + + $this->user = common_current_user(); + + $this->flink = Foreign_link::getByUserID( + $this->user->id, + FACEBOOK_SERVICE + ); + + return true; + } + + /* + * Check the sessions token and dispatch + */ + function handlePost($args) { + // CSRF protection + + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->showForm( + _m('There was a problem with your session token. Try again, please.') + ); + return; + } + + if ($this->arg('save')) { + $this->saveSettings(); + } else if ($this->arg('disconnect')) { + $this->disconnect(); + } + } + + /** + * Returns the page title + * + * @return string page title + */ + function title() { + // TRANS: Page title for Facebook settings. + return _m('Facebook settings'); + } + + /** + * Instructions for use + * + * @return instructions for use + */ + function getInstructions() { + return _('Facebook settings'); + } + + /* + * Show the settings form if he/she has a link to Facebook + * + * @return void + */ + function showContent() { + if (!empty($this->flink)) { + + $this->elementStart( + 'form', + array( + 'method' => 'post', + 'id' => 'form_settings_facebook', + 'class' => 'form_settings', + 'action' => common_local_url('facebooksettings') + ) + ); + + $this->hidden('token', common_session_token()); + + $this->element('p', 'form_note', _m('Connected Facebook user')); + + $this->elementStart('p', array('class' => 'facebook-user-display')); + + $this->element( + 'fb:profile-pic', + array( + 'uid' => $this->flink->foreign_id, + 'size' => 'small', + 'linked' => 'true', + 'facebook-logo' => 'true' + ) + ); + + $this->element( + 'fb:name', + array('uid' => $this->flink->foreign_id, 'useyou' => 'false') + ); + + $this->elementEnd('p'); + + $this->elementStart('ul', 'form_data'); + + $this->elementStart('li'); + + $this->checkbox( + 'noticesync', + _m('Publish my notices to Facebook.'), + ($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND) : true + ); + + $this->elementEnd('li'); + + $this->elementStart('li'); + + $this->checkbox( + 'replysync', + _m('Send "@" replies to Facebook.'), + ($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true + ); + + $this->elementEnd('li'); + + $this->elementStart('li'); + + // TRANS: Submit button to save synchronisation settings. + $this->submit('save', _m('BUTTON', 'Save')); + + $this->elementEnd('li'); + + $this->elementEnd('ul'); + + $this->elementStart('fieldset'); + + // TRANS: Legend. + $this->element('legend', null, _m('Disconnect my account from Facebook')); + + if (empty($this->user->password)) { + $this->elementStart('p', array('class' => 'form_guide')); + + $msg = sprintf( + _m( + 'Disconnecting your Faceboook would make it impossible to ' + . 'log in! Please [set a password](%s) first.' + ), + common_local_url('passwordsettings') + ); + + $this->raw(common_markup_to_html($msg)); + $this->elementEnd('p'); + } else { + // @todo FIXME: i18n: This message is not being used. + $msg = sprintf( + // TRANS: Message displayed when initiating disconnect of a StatusNet user + // TRANS: from a Facebook account. %1$s is the StatusNet site name. + _m( + 'Keep your %1$s account but disconnect from Facebook. ' . + 'You\'ll use your %1$s password to log in.' + ), + common_config('site', 'name') + ); + + // TRANS: Submit button. + $this->submit('disconnect', _m('BUTTON', 'Disconnect')); + } + + $this->elementEnd('fieldset'); + + $this->elementEnd('form'); + } + } + + /* + * Save the user's Facebook settings + * + * @return void + */ + function saveSettings() { + $noticesync = $this->boolean('noticesync'); + $replysync = $this->boolean('replysync'); + + $original = clone($this->flink); + $this->flink->set_flags($noticesync, false, $replysync, false); + $result = $this->flink->update($original); + + if ($result === false) { + $this->showForm(_m('There was a problem saving your sync preferences.')); + } else { + // TRANS: Confirmation that synchronisation settings have been saved into the system. + $this->showForm(_m('Sync preferences saved.'), true); + } + } + + /* + * Disconnect the user's Facebook account - deletes the Foreign_link + * and shows the user a success message if all goes well. + */ + function disconnect() { + $result = $this->flink->delete(); + $this->flink = null; + + if ($result === false) { + common_log_db_error($user, 'DELETE', __FILE__); + $this->serverError(_m('Couldn\'t delete link to Facebook.')); + return; + } + + $this->showForm(_m('You have disconnected from Facebook.'), true); + } +} diff --git a/plugins/FacebookBridge/classes/Notice_to_item.php b/plugins/FacebookBridge/classes/Notice_to_item.php new file mode 100644 index 0000000000..a6a8030342 --- /dev/null +++ b/plugins/FacebookBridge/classes/Notice_to_item.php @@ -0,0 +1,190 @@ +<?php +/** + * Data class for storing notice-to-Facebook-item mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for mapping notices to Facebook stream items + * + * Note that notice_id is unique only within a single database; if you + * want to share this data for some reason, get the notice's URI and use + * that instead, since it's universally unique. + * + * @category Action + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Notice_to_item extends Memcached_DataObject +{ + public $__table = 'notice_to_item'; // table name + public $notice_id; // int(4) primary_key not_null + public $item_id; // varchar(255) not null + public $created; // datetime + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Notice_to_item object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Notice_to_item', $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( + 'notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'item_id' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL + ); + } + + static function schemaDef() + { + return array( + new ColumnDef('notice_id', 'integer', null, false, 'PRI'), + new ColumnDef('item_id', 'varchar', 255, false, 'UNI'), + new ColumnDef('created', 'datetime', null, false) + ); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('notice_id' => 'K', 'item_id' => 'U'); + } + + /** + * 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); + } + + /** + * Save a mapping between a notice and a Facebook item + * + * @param integer $notice_id ID of the notice in StatusNet + * @param integer $item_id ID of the stream item on Facebook + * + * @return Notice_to_item new object for this value + */ + + static function saveNew($notice_id, $item_id) + { + $n2i = Notice_to_item::staticGet('notice_id', $notice_id); + + if (!empty($n2i)) { + return $n2i; + } + + $n2i = Notice_to_item::staticGet('item_id', $item_id); + + if (!empty($n2i)) { + return $n2i; + } + + common_debug( + "Mapping notice {$notice_id} to Facebook item {$item_id}", + __FILE__ + ); + + $n2i = new Notice_to_item(); + + $n2i->notice_id = $notice_id; + $n2i->item_id = $item_id; + $n2i->created = common_sql_now(); + + $n2i->insert(); + + return $n2i; + } +} diff --git a/plugins/FacebookBridge/extlib/facebook.php b/plugins/FacebookBridge/extlib/facebook.php new file mode 100644 index 0000000000..d2d2e866bf --- /dev/null +++ b/plugins/FacebookBridge/extlib/facebook.php @@ -0,0 +1,963 @@ +<?php + +if (!function_exists('curl_init')) { + throw new Exception('Facebook needs the CURL PHP extension.'); +} +if (!function_exists('json_decode')) { + throw new Exception('Facebook needs the JSON PHP extension.'); +} + +/** + * Thrown when an API call returns an exception. + * + * @author Naitik Shah <naitik@facebook.com> + */ +class FacebookApiException extends Exception +{ + /** + * The result from the API server that represents the exception information. + */ + protected $result; + + /** + * Make a new API Exception with the given result. + * + * @param Array $result the result from the API server + */ + public function __construct($result) { + $this->result = $result; + + $code = isset($result['error_code']) ? $result['error_code'] : 0; + + if (isset($result['error_description'])) { + // OAuth 2.0 Draft 10 style + $msg = $result['error_description']; + } else if (isset($result['error']) && is_array($result['error'])) { + // OAuth 2.0 Draft 00 style + $msg = $result['error']['message']; + } else if (isset($result['error_msg'])) { + // Rest server style + $msg = $result['error_msg']; + } else { + $msg = 'Unknown Error. Check getResult()'; + } + + parent::__construct($msg, $code); + } + + /** + * Return the associated result object returned by the API server. + * + * @returns Array the result from the API server + */ + public function getResult() { + return $this->result; + } + + /** + * Returns the associated type for the error. This will default to + * 'Exception' when a type is not available. + * + * @return String + */ + public function getType() { + if (isset($this->result['error'])) { + $error = $this->result['error']; + if (is_string($error)) { + // OAuth 2.0 Draft 10 style + return $error; + } else if (is_array($error)) { + // OAuth 2.0 Draft 00 style + if (isset($error['type'])) { + return $error['type']; + } + } + } + return 'Exception'; + } + + /** + * To make debugging easier. + * + * @returns String the string representation of the error + */ + public function __toString() { + $str = $this->getType() . ': '; + if ($this->code != 0) { + $str .= $this->code . ': '; + } + return $str . $this->message; + } +} + +/** + * Provides access to the Facebook Platform. + * + * @author Naitik Shah <naitik@facebook.com> + */ +class Facebook +{ + /** + * Version. + */ + const VERSION = '2.1.2'; + + /** + * Default options for curl. + */ + public static $CURL_OPTS = array( + CURLOPT_CONNECTTIMEOUT => 10, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_TIMEOUT => 60, + CURLOPT_USERAGENT => 'facebook-php-2.0', + ); + + /** + * List of query parameters that get automatically dropped when rebuilding + * the current URL. + */ + protected static $DROP_QUERY_PARAMS = array( + 'session', + 'signed_request', + ); + + /** + * Maps aliases to Facebook domains. + */ + public static $DOMAIN_MAP = array( + 'api' => 'https://api.facebook.com/', + 'api_read' => 'https://api-read.facebook.com/', + 'graph' => 'https://graph.facebook.com/', + 'www' => 'https://www.facebook.com/', + ); + + /** + * The Application ID. + */ + protected $appId; + + /** + * The Application API Secret. + */ + protected $apiSecret; + + /** + * The active user session, if one is available. + */ + protected $session; + + /** + * The data from the signed_request token. + */ + protected $signedRequest; + + /** + * Indicates that we already loaded the session as best as we could. + */ + protected $sessionLoaded = false; + + /** + * Indicates if Cookie support should be enabled. + */ + protected $cookieSupport = false; + + /** + * Base domain for the Cookie. + */ + protected $baseDomain = ''; + + /** + * Indicates if the CURL based @ syntax for file uploads is enabled. + */ + protected $fileUploadSupport = false; + + /** + * Initialize a Facebook Application. + * + * The configuration: + * - appId: the application ID + * - secret: the application secret + * - cookie: (optional) boolean true to enable cookie support + * - domain: (optional) domain for the cookie + * - fileUpload: (optional) boolean indicating if file uploads are enabled + * + * @param Array $config the application configuration + */ + public function __construct($config) { + $this->setAppId($config['appId']); + $this->setApiSecret($config['secret']); + if (isset($config['cookie'])) { + $this->setCookieSupport($config['cookie']); + } + if (isset($config['domain'])) { + $this->setBaseDomain($config['domain']); + } + if (isset($config['fileUpload'])) { + $this->setFileUploadSupport($config['fileUpload']); + } + } + + /** + * Set the Application ID. + * + * @param String $appId the Application ID + */ + public function setAppId($appId) { + $this->appId = $appId; + return $this; + } + + /** + * Get the Application ID. + * + * @return String the Application ID + */ + public function getAppId() { + return $this->appId; + } + + /** + * Set the API Secret. + * + * @param String $appId the API Secret + */ + public function setApiSecret($apiSecret) { + $this->apiSecret = $apiSecret; + return $this; + } + + /** + * Get the API Secret. + * + * @return String the API Secret + */ + public function getApiSecret() { + return $this->apiSecret; + } + + /** + * Set the Cookie Support status. + * + * @param Boolean $cookieSupport the Cookie Support status + */ + public function setCookieSupport($cookieSupport) { + $this->cookieSupport = $cookieSupport; + return $this; + } + + /** + * Get the Cookie Support status. + * + * @return Boolean the Cookie Support status + */ + public function useCookieSupport() { + return $this->cookieSupport; + } + + /** + * Set the base domain for the Cookie. + * + * @param String $domain the base domain + */ + public function setBaseDomain($domain) { + $this->baseDomain = $domain; + return $this; + } + + /** + * Get the base domain for the Cookie. + * + * @return String the base domain + */ + public function getBaseDomain() { + return $this->baseDomain; + } + + /** + * Set the file upload support status. + * + * @param String $domain the base domain + */ + public function setFileUploadSupport($fileUploadSupport) { + $this->fileUploadSupport = $fileUploadSupport; + return $this; + } + + /** + * Get the file upload support status. + * + * @return String the base domain + */ + public function useFileUploadSupport() { + return $this->fileUploadSupport; + } + + /** + * Get the data from a signed_request token + * + * @return String the base domain + */ + public function getSignedRequest() { + if (!$this->signedRequest) { + if (isset($_REQUEST['signed_request'])) { + $this->signedRequest = $this->parseSignedRequest( + $_REQUEST['signed_request']); + } + } + return $this->signedRequest; + } + + /** + * Set the Session. + * + * @param Array $session the session + * @param Boolean $write_cookie indicate if a cookie should be written. this + * value is ignored if cookie support has been disabled. + */ + public function setSession($session=null, $write_cookie=true) { + $session = $this->validateSessionObject($session); + $this->sessionLoaded = true; + $this->session = $session; + if ($write_cookie) { + $this->setCookieFromSession($session); + } + return $this; + } + + /** + * Get the session object. This will automatically look for a signed session + * sent via the signed_request, Cookie or Query Parameters if needed. + * + * @return Array the session + */ + public function getSession() { + if (!$this->sessionLoaded) { + $session = null; + $write_cookie = true; + + // try loading session from signed_request in $_REQUEST + $signedRequest = $this->getSignedRequest(); + if ($signedRequest) { + // sig is good, use the signedRequest + $session = $this->createSessionFromSignedRequest($signedRequest); + } + + // try loading session from $_REQUEST + if (!$session && isset($_REQUEST['session'])) { + $session = json_decode( + get_magic_quotes_gpc() + ? stripslashes($_REQUEST['session']) + : $_REQUEST['session'], + true + ); + $session = $this->validateSessionObject($session); + } + + // try loading session from cookie if necessary + if (!$session && $this->useCookieSupport()) { + $cookieName = $this->getSessionCookieName(); + if (isset($_COOKIE[$cookieName])) { + $session = array(); + parse_str(trim( + get_magic_quotes_gpc() + ? stripslashes($_COOKIE[$cookieName]) + : $_COOKIE[$cookieName], + '"' + ), $session); + $session = $this->validateSessionObject($session); + // write only if we need to delete a invalid session cookie + $write_cookie = empty($session); + } + } + + $this->setSession($session, $write_cookie); + } + + return $this->session; + } + + /** + * Get the UID from the session. + * + * @return String the UID if available + */ + public function getUser() { + $session = $this->getSession(); + return $session ? $session['uid'] : null; + } + + /** + * Gets a OAuth access token. + * + * @return String the access token + */ + public function getAccessToken() { + $session = $this->getSession(); + // either user session signed, or app signed + if ($session) { + return $session['access_token']; + } else { + return $this->getAppId() .'|'. $this->getApiSecret(); + } + } + + /** + * Get a Login URL for use with redirects. By default, full page redirect is + * assumed. If you are using the generated URL with a window.open() call in + * JavaScript, you can pass in display=popup as part of the $params. + * + * The parameters: + * - next: the url to go to after a successful login + * - cancel_url: the url to go to after the user cancels + * - req_perms: comma separated list of requested extended perms + * - display: can be "page" (default, full page) or "popup" + * + * @param Array $params provide custom parameters + * @return String the URL for the login flow + */ + public function getLoginUrl($params=array()) { + $currentUrl = $this->getCurrentUrl(); + return $this->getUrl( + 'www', + 'login.php', + array_merge(array( + 'api_key' => $this->getAppId(), + 'cancel_url' => $currentUrl, + 'display' => 'page', + 'fbconnect' => 1, + 'next' => $currentUrl, + 'return_session' => 1, + 'session_version' => 3, + 'v' => '1.0', + ), $params) + ); + } + + /** + * Get a Logout URL suitable for use with redirects. + * + * The parameters: + * - next: the url to go to after a successful logout + * + * @param Array $params provide custom parameters + * @return String the URL for the logout flow + */ + public function getLogoutUrl($params=array()) { + return $this->getUrl( + 'www', + 'logout.php', + array_merge(array( + 'next' => $this->getCurrentUrl(), + 'access_token' => $this->getAccessToken(), + ), $params) + ); + } + + /** + * Get a login status URL to fetch the status from facebook. + * + * The parameters: + * - ok_session: the URL to go to if a session is found + * - no_session: the URL to go to if the user is not connected + * - no_user: the URL to go to if the user is not signed into facebook + * + * @param Array $params provide custom parameters + * @return String the URL for the logout flow + */ + public function getLoginStatusUrl($params=array()) { + return $this->getUrl( + 'www', + 'extern/login_status.php', + array_merge(array( + 'api_key' => $this->getAppId(), + 'no_session' => $this->getCurrentUrl(), + 'no_user' => $this->getCurrentUrl(), + 'ok_session' => $this->getCurrentUrl(), + 'session_version' => 3, + ), $params) + ); + } + + /** + * Make an API call. + * + * @param Array $params the API call parameters + * @return the decoded response + */ + public function api(/* polymorphic */) { + $args = func_get_args(); + if (is_array($args[0])) { + return $this->_restserver($args[0]); + } else { + return call_user_func_array(array($this, '_graph'), $args); + } + } + + /** + * Invoke the old restserver.php endpoint. + * + * @param Array $params method call object + * @return the decoded response object + * @throws FacebookApiException + */ + protected function _restserver($params) { + // generic application level parameters + $params['api_key'] = $this->getAppId(); + $params['format'] = 'json-strings'; + + $result = json_decode($this->_oauthRequest( + $this->getApiUrl($params['method']), + $params + ), true); + + // results are returned, errors are thrown + if (is_array($result) && isset($result['error_code'])) { + throw new FacebookApiException($result); + } + return $result; + } + + /** + * Invoke the Graph API. + * + * @param String $path the path (required) + * @param String $method the http method (default 'GET') + * @param Array $params the query/post data + * @return the decoded response object + * @throws FacebookApiException + */ + protected function _graph($path, $method='GET', $params=array()) { + if (is_array($method) && empty($params)) { + $params = $method; + $method = 'GET'; + } + $params['method'] = $method; // method override as we always do a POST + + $result = json_decode($this->_oauthRequest( + $this->getUrl('graph', $path), + $params + ), true); + + // results are returned, errors are thrown + if (is_array($result) && isset($result['error'])) { + $e = new FacebookApiException($result); + switch ($e->getType()) { + // OAuth 2.0 Draft 00 style + case 'OAuthException': + // OAuth 2.0 Draft 10 style + case 'invalid_token': + $this->setSession(null); + } + throw $e; + } + return $result; + } + + /** + * Make a OAuth Request + * + * @param String $path the path (required) + * @param Array $params the query/post data + * @return the decoded response object + * @throws FacebookApiException + */ + protected function _oauthRequest($url, $params) { + if (!isset($params['access_token'])) { + $params['access_token'] = $this->getAccessToken(); + } + + // json_encode all params values that are not strings + foreach ($params as $key => $value) { + if (!is_string($value)) { + $params[$key] = json_encode($value); + } + } + return $this->makeRequest($url, $params); + } + + /** + * Makes an HTTP request. This method can be overriden by subclasses if + * developers want to do fancier things or use something other than curl to + * make the request. + * + * @param String $url the URL to make the request to + * @param Array $params the parameters to use for the POST body + * @param CurlHandler $ch optional initialized curl handle + * @return String the response text + */ + protected function makeRequest($url, $params, $ch=null) { + if (!$ch) { + $ch = curl_init(); + } + + $opts = self::$CURL_OPTS; + if ($this->useFileUploadSupport()) { + $opts[CURLOPT_POSTFIELDS] = $params; + } else { + $opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&'); + } + $opts[CURLOPT_URL] = $url; + + // disable the 'Expect: 100-continue' behaviour. This causes CURL to wait + // for 2 seconds if the server does not support this header. + if (isset($opts[CURLOPT_HTTPHEADER])) { + $existing_headers = $opts[CURLOPT_HTTPHEADER]; + $existing_headers[] = 'Expect:'; + $opts[CURLOPT_HTTPHEADER] = $existing_headers; + } else { + $opts[CURLOPT_HTTPHEADER] = array('Expect:'); + } + + curl_setopt_array($ch, $opts); + $result = curl_exec($ch); + + if (curl_errno($ch) == 60) { // CURLE_SSL_CACERT + self::errorLog('Invalid or no certificate authority found, using bundled information'); + curl_setopt($ch, CURLOPT_CAINFO, + dirname(__FILE__) . '/fb_ca_chain_bundle.crt'); + $result = curl_exec($ch); + } + + if ($result === false) { + $e = new FacebookApiException(array( + 'error_code' => curl_errno($ch), + 'error' => array( + 'message' => curl_error($ch), + 'type' => 'CurlException', + ), + )); + curl_close($ch); + throw $e; + } + curl_close($ch); + return $result; + } + + /** + * The name of the Cookie that contains the session. + * + * @return String the cookie name + */ + protected function getSessionCookieName() { + return 'fbs_' . $this->getAppId(); + } + + /** + * Set a JS Cookie based on the _passed in_ session. It does not use the + * currently stored session -- you need to explicitly pass it in. + * + * @param Array $session the session to use for setting the cookie + */ + protected function setCookieFromSession($session=null) { + if (!$this->useCookieSupport()) { + return; + } + + $cookieName = $this->getSessionCookieName(); + $value = 'deleted'; + $expires = time() - 3600; + $domain = $this->getBaseDomain(); + if ($session) { + $value = '"' . http_build_query($session, null, '&') . '"'; + if (isset($session['base_domain'])) { + $domain = $session['base_domain']; + } + $expires = $session['expires']; + } + + // prepend dot if a domain is found + if ($domain) { + $domain = '.' . $domain; + } + + // if an existing cookie is not set, we dont need to delete it + if ($value == 'deleted' && empty($_COOKIE[$cookieName])) { + return; + } + + if (headers_sent()) { + self::errorLog('Could not set cookie. Headers already sent.'); + + // ignore for code coverage as we will never be able to setcookie in a CLI + // environment + // @codeCoverageIgnoreStart + } else { + setcookie($cookieName, $value, $expires, '/', $domain); + } + // @codeCoverageIgnoreEnd + } + + /** + * Validates a session_version=3 style session object. + * + * @param Array $session the session object + * @return Array the session object if it validates, null otherwise + */ + protected function validateSessionObject($session) { + // make sure some essential fields exist + if (is_array($session) && + isset($session['uid']) && + isset($session['access_token']) && + isset($session['sig'])) { + // validate the signature + $session_without_sig = $session; + unset($session_without_sig['sig']); + $expected_sig = self::generateSignature( + $session_without_sig, + $this->getApiSecret() + ); + if ($session['sig'] != $expected_sig) { + self::errorLog('Got invalid session signature in cookie.'); + $session = null; + } + // check expiry time + } else { + $session = null; + } + return $session; + } + + /** + * Returns something that looks like our JS session object from the + * signed token's data + * + * TODO: Nuke this once the login flow uses OAuth2 + * + * @param Array the output of getSignedRequest + * @return Array Something that will work as a session + */ + protected function createSessionFromSignedRequest($data) { + if (!isset($data['oauth_token'])) { + return null; + } + + $session = array( + 'uid' => $data['user_id'], + 'access_token' => $data['oauth_token'], + 'expires' => $data['expires'], + ); + + // put a real sig, so that validateSignature works + $session['sig'] = self::generateSignature( + $session, + $this->getApiSecret() + ); + + return $session; + } + + /** + * Parses a signed_request and validates the signature. + * Then saves it in $this->signed_data + * + * @param String A signed token + * @param Boolean Should we remove the parts of the payload that + * are used by the algorithm? + * @return Array the payload inside it or null if the sig is wrong + */ + protected function parseSignedRequest($signed_request) { + list($encoded_sig, $payload) = explode('.', $signed_request, 2); + + // decode the data + $sig = self::base64UrlDecode($encoded_sig); + $data = json_decode(self::base64UrlDecode($payload), true); + + if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { + self::errorLog('Unknown algorithm. Expected HMAC-SHA256'); + return null; + } + + // check sig + $expected_sig = hash_hmac('sha256', $payload, + $this->getApiSecret(), $raw = true); + if ($sig !== $expected_sig) { + self::errorLog('Bad Signed JSON signature!'); + return null; + } + + return $data; + } + + /** + * Build the URL for api given parameters. + * + * @param $method String the method name. + * @return String the URL for the given parameters + */ + protected function getApiUrl($method) { + static $READ_ONLY_CALLS = + array('admin.getallocation' => 1, + 'admin.getappproperties' => 1, + 'admin.getbannedusers' => 1, + 'admin.getlivestreamvialink' => 1, + 'admin.getmetrics' => 1, + 'admin.getrestrictioninfo' => 1, + 'application.getpublicinfo' => 1, + 'auth.getapppublickey' => 1, + 'auth.getsession' => 1, + 'auth.getsignedpublicsessiondata' => 1, + 'comments.get' => 1, + 'connect.getunconnectedfriendscount' => 1, + 'dashboard.getactivity' => 1, + 'dashboard.getcount' => 1, + 'dashboard.getglobalnews' => 1, + 'dashboard.getnews' => 1, + 'dashboard.multigetcount' => 1, + 'dashboard.multigetnews' => 1, + 'data.getcookies' => 1, + 'events.get' => 1, + 'events.getmembers' => 1, + 'fbml.getcustomtags' => 1, + 'feed.getappfriendstories' => 1, + 'feed.getregisteredtemplatebundlebyid' => 1, + 'feed.getregisteredtemplatebundles' => 1, + 'fql.multiquery' => 1, + 'fql.query' => 1, + 'friends.arefriends' => 1, + 'friends.get' => 1, + 'friends.getappusers' => 1, + 'friends.getlists' => 1, + 'friends.getmutualfriends' => 1, + 'gifts.get' => 1, + 'groups.get' => 1, + 'groups.getmembers' => 1, + 'intl.gettranslations' => 1, + 'links.get' => 1, + 'notes.get' => 1, + 'notifications.get' => 1, + 'pages.getinfo' => 1, + 'pages.isadmin' => 1, + 'pages.isappadded' => 1, + 'pages.isfan' => 1, + 'permissions.checkavailableapiaccess' => 1, + 'permissions.checkgrantedapiaccess' => 1, + 'photos.get' => 1, + 'photos.getalbums' => 1, + 'photos.gettags' => 1, + 'profile.getinfo' => 1, + 'profile.getinfooptions' => 1, + 'stream.get' => 1, + 'stream.getcomments' => 1, + 'stream.getfilters' => 1, + 'users.getinfo' => 1, + 'users.getloggedinuser' => 1, + 'users.getstandardinfo' => 1, + 'users.hasapppermission' => 1, + 'users.isappuser' => 1, + 'users.isverified' => 1, + 'video.getuploadlimits' => 1); + $name = 'api'; + if (isset($READ_ONLY_CALLS[strtolower($method)])) { + $name = 'api_read'; + } + return self::getUrl($name, 'restserver.php'); + } + + /** + * Build the URL for given domain alias, path and parameters. + * + * @param $name String the name of the domain + * @param $path String optional path (without a leading slash) + * @param $params Array optional query parameters + * @return String the URL for the given parameters + */ + protected function getUrl($name, $path='', $params=array()) { + $url = self::$DOMAIN_MAP[$name]; + if ($path) { + if ($path[0] === '/') { + $path = substr($path, 1); + } + $url .= $path; + } + if ($params) { + $url .= '?' . http_build_query($params, null, '&'); + } + return $url; + } + + /** + * Returns the Current URL, stripping it of known FB parameters that should + * not persist. + * + * @return String the current URL + */ + protected function getCurrentUrl() { + $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' + ? 'https://' + : 'http://'; + $currentUrl = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; + $parts = parse_url($currentUrl); + + // drop known fb params + $query = ''; + if (!empty($parts['query'])) { + $params = array(); + parse_str($parts['query'], $params); + foreach(self::$DROP_QUERY_PARAMS as $key) { + unset($params[$key]); + } + if (!empty($params)) { + $query = '?' . http_build_query($params, null, '&'); + } + } + + // use port if non default + $port = + isset($parts['port']) && + (($protocol === 'http://' && $parts['port'] !== 80) || + ($protocol === 'https://' && $parts['port'] !== 443)) + ? ':' . $parts['port'] : ''; + + // rebuild + return $protocol . $parts['host'] . $port . $parts['path'] . $query; + } + + /** + * Generate a signature for the given params and secret. + * + * @param Array $params the parameters to sign + * @param String $secret the secret to sign with + * @return String the generated signature + */ + protected static function generateSignature($params, $secret) { + // work with sorted data + ksort($params); + + // generate the base string + $base_string = ''; + foreach($params as $key => $value) { + $base_string .= $key . '=' . $value; + } + $base_string .= $secret; + + return md5($base_string); + } + + /** + * Prints to the error log if you aren't in command line mode. + * + * @param String log message + */ + protected static function errorLog($msg) { + // disable error log if we are running in a CLI environment + // @codeCoverageIgnoreStart + if (php_sapi_name() != 'cli') { + error_log($msg); + } + // uncomment this if you want to see the errors on the page + // print 'error_log: '.$msg."\n"; + // @codeCoverageIgnoreEnd + } + + /** + * Base64 encoding that doesn't need to be urlencode()ed. + * Exactly the same as base64_encode except it uses + * - instead of + + * _ instead of / + * + * @param String base64UrlEncodeded string + */ + protected static function base64UrlDecode($input) { + return base64_decode(strtr($input, '-_', '+/')); + } +} diff --git a/plugins/FacebookBridge/extlib/fb_ca_chain_bundle.crt b/plugins/FacebookBridge/extlib/fb_ca_chain_bundle.crt new file mode 100644 index 0000000000..b92d7190e9 --- /dev/null +++ b/plugins/FacebookBridge/extlib/fb_ca_chain_bundle.crt @@ -0,0 +1,121 @@ +-----BEGIN CERTIFICATE----- +MIIFgjCCBGqgAwIBAgIQDKKbZcnESGaLDuEaVk6fQjANBgkqhkiG9w0BAQUFADBm +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSUwIwYDVQQDExxEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBDQS0zMB4XDTEwMDExMzAwMDAwMFoXDTEzMDQxMTIzNTk1OVowaDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVBhbG8gQWx0bzEX +MBUGA1UEChMORmFjZWJvb2ssIEluYy4xFzAVBgNVBAMUDiouZmFjZWJvb2suY29t +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9rzj7QIuLM3sdHu1HcI1VcR3g +b5FExKNV646agxSle1aQ/sJev1mh/u91ynwqd2BQmM0brZ1Hc3QrfYyAaiGGgEkp +xbhezyfeYhAyO0TKAYxPnm2cTjB5HICzk6xEIwFbA7SBJ2fSyW1CFhYZyo3tIBjj +19VjKyBfpRaPkzLmRwIDAQABo4ICrDCCAqgwHwYDVR0jBBgwFoAUUOpzidsp+xCP +nuUBINTeeZlIg/cwHQYDVR0OBBYEFPp+tsFBozkjrHlEnZ9J4cFj2eM0MA4GA1Ud +DwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMF8GA1UdHwRYMFYwKaAnoCWGI2h0dHA6 +Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9jYTMtZmIuY3JsMCmgJ6AlhiNodHRwOi8vY3Js +NC5kaWdpY2VydC5jb20vY2EzLWZiLmNybDCCAcYGA1UdIASCAb0wggG5MIIBtQYL +YIZIAYb9bAEDAAEwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3LmRpZ2ljZXJ0 +LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUHAgIwggFWHoIB +UgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQByAHQAaQBmAGkA +YwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBjAGUAcAB0AGEA +bgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAgAEMAUAAvAEMA +UABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQAGEAcgB0AHkA +IABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBtAGkAdAAgAGwA +aQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBjAG8AcgBwAG8A +cgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBlAHIAZQBuAGMA +ZQAuMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQUF +AAOCAQEACOkTIdxMy11+CKrbGNLBSg5xHaTvu/v1wbyn3dO/mf68pPfJnX6ShPYy +4XM4Vk0x4uaFaU4wAGke+nCKGi5dyg0Esg7nemLNKEJaFAJZ9enxZm334lSCeARy +wlDtxULGOFRyGIZZPmbV2eNq5xdU/g3IuBEhL722mTpAye9FU/J8Wsnw54/gANyO +Gzkewigua8ip8Lbs9Cht399yAfbfhUP1DrAm/xEcnHrzPr3cdCtOyJaM6SRPpRqH +ITK5Nc06tat9lXVosSinT3KqydzxBYua9gCFFiR3x3DgZfvXkC6KDdUlDrNcJUub +a1BHnLLP4mxTHL6faAXYd05IxNn/IA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIGVTCCBT2gAwIBAgIQCFH5WYFBRcq94CTiEsnCDjANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA3MDQwMzAwMDAwMFoXDTIyMDQwMzAwMDAwMFowZjEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTElMCMGA1UEAxMcRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +Q0EtMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9hCikQH17+NDdR +CPge+yLtYb4LDXBMUGMmdRW5QYiXtvCgFbsIYOBC6AUpEIc2iihlqO8xB3RtNpcv +KEZmBMcqeSZ6mdWOw21PoF6tvD2Rwll7XjZswFPPAAgyPhBkWBATaccM7pxCUQD5 +BUTuJM56H+2MEb0SqPMV9Bx6MWkBG6fmXcCabH4JnudSREoQOiPkm7YDr6ictFuf +1EutkozOtREqqjcYjbTCuNhcBoz4/yO9NV7UfD5+gw6RlgWYw7If48hl66l7XaAs +zPw82W3tzPpLQ4zJ1LilYRyyQLYoEt+5+F/+07LJ7z20Hkt8HEyZNp496+ynaF4d +32duXvsCAwEAAaOCAvcwggLzMA4GA1UdDwEB/wQEAwIBhjCCAcYGA1UdIASCAb0w +ggG5MIIBtQYLYIZIAYb9bAEDAAIwggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3 +LmRpZ2ljZXJ0LmNvbS9zc2wtY3BzLXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUH +AgIwggFWHoIBUgBBAG4AeQAgAHUAcwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQBy +AHQAaQBmAGkAYwBhAHQAZQAgAGMAbwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBj +AGUAcAB0AGEAbgBjAGUAIABvAGYAIAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAg +AEMAUAAvAEMAUABTACAAYQBuAGQAIAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQ +AGEAcgB0AHkAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBt +AGkAdAAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBj +AG8AcgBwAG8AcgBhAHQAZQBkACAAaABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBl +AHIAZQBuAGMAZQAuMA8GA1UdEwEB/wQFMAMBAf8wNAYIKwYBBQUHAQEEKDAmMCQG +CCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wgY8GA1UdHwSBhzCB +hDBAoD6gPIY6aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0SGlnaEFz +c3VyYW5jZUVWUm9vdENBLmNybDBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQu +Y29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDAfBgNVHSMEGDAW +gBSxPsNpA/i/RwHUmCYaCALvY2QrwzAdBgNVHQ4EFgQUUOpzidsp+xCPnuUBINTe +eZlIg/cwDQYJKoZIhvcNAQEFBQADggEBAF1PhPGoiNOjsrycbeUpSXfh59bcqdg1 +rslx3OXb3J0kIZCmz7cBHJvUV5eR13UWpRLXuT0uiT05aYrWNTf58SHEW0CtWakv +XzoAKUMncQPkvTAyVab+hA4LmzgZLEN8rEO/dTHlIxxFVbdpCJG1z9fVsV7un5Tk +1nq5GMO41lJjHBC6iy9tXcwFOPRWBW3vnuzoYTYMFEuFFFoMg08iXFnLjIpx2vrF +EIRYzwfu45DC9fkpx1ojcflZtGQriLCnNseaIGHr+k61rmsb5OPs4tk8QUmoIKRU +9ZKNu8BVIASm2LAXFszj0Mi0PeXZhMbT9m5teMl5Q+h6N/9cNUm/ocU= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEQjCCA6ugAwIBAgIEQoclDjANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC +VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u +ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc +KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u +ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEy +MjIxNTI3MjdaFw0xNDA3MjIxNTU3MjdaMGwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK +EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xKzApBgNV +BAMTIkRpZ2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIEVWIFJvb3QgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGzOVz5vvUu+UtLTKm3+WBP8nNJUm2cSrD +1ZQ0Z6IKHLBfaaZAscS3so/QmKSpQVk609yU1jzbdDikSsxNJYL3SqVTEjju80lt +cZF+Y7arpl/DpIT4T2JRvvjF7Ns4kuMG5QiRDMQoQVX7y1qJFX5x6DW/TXIJPb46 +OFBbdzEbjbPHJEWap6xtABRaBLe6E+tRCphBQSJOZWGHgUFQpnlcid4ZSlfVLuZd +HFMsfpjNGgYWpGhz0DQEE1yhcdNafFXbXmThN4cwVgTlEbQpgBLxeTmIogIRfCdm +t4i3ePLKCqg4qwpkwr9mXZWEwaElHoddGlALIBLMQbtuC1E4uEvLAgMBAAGjggET +MIIBDzASBgNVHRMBAf8ECDAGAQH/AgEBMCcGA1UdJQQgMB4GCCsGAQUFBwMBBggr +BgEFBQcDAgYIKwYBBQUHAwQwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzABhhdo +dHRwOi8vb2NzcC5lbnRydXN0Lm5ldDAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8v +Y3JsLmVudHJ1c3QubmV0L3NlcnZlcjEuY3JsMB0GA1UdDgQWBBSxPsNpA/i/RwHU +mCYaCALvY2QrwzALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7 +UISX8+1i0BowGQYJKoZIhvZ9B0EABAwwChsEVjcuMQMCAIEwDQYJKoZIhvcNAQEF +BQADgYEAUuVY7HCc/9EvhaYzC1rAIo348LtGIiMduEl5Xa24G8tmJnDioD2GU06r +1kjLX/ktCdpdBgXadbjtdrZXTP59uN0AXlsdaTiFufsqVLPvkp5yMnqnuI3E2o6p +NpAkoQSbB6kUCNnXcW26valgOjDLZFOnr241QiwdBAJAAE/rRa8= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC +VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u +ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc +KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u +ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1 +MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE +ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j +b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg +U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/ +I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3 +wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC +AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb +oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5 +BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p +dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk +MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp +b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0 +MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi +E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa +MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI +hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN +95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd +2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- diff --git a/plugins/FacebookBridge/images/login-button.png b/plugins/FacebookBridge/images/login-button.png new file mode 100644 index 0000000000..4e7766bcad Binary files /dev/null and b/plugins/FacebookBridge/images/login-button.png differ diff --git a/plugins/FacebookBridge/lib/facebookclient.php b/plugins/FacebookBridge/lib/facebookclient.php new file mode 100644 index 0000000000..d5ecd11a9c --- /dev/null +++ b/plugins/FacebookBridge/lib/facebookclient.php @@ -0,0 +1,1139 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Class for communicating with Facebook + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @author Zach Copley <zach@status.net> + * @copyright 2009-2010 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 for communication with Facebook + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class Facebookclient +{ + protected $facebook = null; // Facebook Graph client obj + protected $flink = null; // Foreign_link StatusNet -> Facebook + protected $notice = null; // The user's notice + protected $user = null; // Sender of the notice + + function __construct($notice) + { + $this->facebook = self::getFacebook(); + $this->notice = $notice; + + $this->flink = Foreign_link::getByUserID( + $notice->profile_id, + FACEBOOK_SERVICE + ); + + if (!empty($this->flink)) { + $this->user = $this->flink->getUser(); + } + } + + /* + * Get an instance of the Facebook Graph SDK object + * + * @param string $appId Application + * @param string $secret Facebook API secret + * + * @return Facebook A Facebook SDK obj + */ + static function getFacebook($appId = null, $secret = null) + { + // Check defaults and configuration for application ID and secret + if (empty($appId)) { + $appId = common_config('facebook', 'appid'); + } + + if (empty($secret)) { + $secret = common_config('facebook', 'secret'); + } + + // If there's no app ID and secret set in the local config, look + // for a global one + if (empty($appId) || empty($secret)) { + $appId = common_config('facebook', 'global_appid'); + $secret = common_config('facebook', 'global_secret'); + } + + return new Facebook( + array( + 'appId' => $appId, + 'secret' => $secret, + 'cookie' => true + ) + ); + } + + /* + * Broadcast a notice to Facebook + * + * @param Notice $notice the notice to send + */ + static function facebookBroadcastNotice($notice) + { + $client = new Facebookclient($notice); + return $client->sendNotice(); + } + + /* + * Should the notice go to Facebook? + */ + function isFacebookBound() { + + if (empty($this->flink)) { + common_log( + LOG_WARN, + sprintf( + "No Foreign_link to Facebook for the author of notice %d.", + $this->notice->id + ), + __FILE__ + ); + return false; + } + + // Avoid a loop + if ($this->notice->source == 'Facebook') { + common_log( + LOG_INFO, + sprintf( + 'Skipping notice %d because its source is Facebook.', + $this->notice->id + ), + __FILE__ + ); + return false; + } + + // If the user does not want to broadcast to Facebook, move along + if (!($this->flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) { + common_log( + LOG_INFO, + sprintf( + 'Skipping notice %d because user has FOREIGN_NOTICE_SEND bit off.', + $this->notice->id + ), + __FILE__ + ); + return false; + } + + // If it's not a reply, or if the user WANTS to send @-replies, + // then, yeah, it can go to Facebook. + if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $this->notice->content) || + ($this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + return true; + } + + return false; + } + + /* + * Determine whether we should send this notice using the Graph API or the + * old REST API and then dispatch + */ + function sendNotice() + { + // If there's nothing in the credentials field try to send via + // the Old Rest API + + if ($this->isFacebookBound()) { + common_debug("notice is facebook bound", __FILE__); + if (empty($this->flink->credentials)) { + return $this->sendOldRest(); + } else { + + // Otherwise we most likely have an access token + return $this->sendGraph(); + } + + } else { + common_debug( + sprintf( + "Skipping notice %d - not bound for Facebook", + $this->notice->id, + __FILE__ + ) + ); + } + } + + /* + * Send a notice to Facebook using the Graph API + */ + function sendGraph() + { + try { + + $fbuid = $this->flink->foreign_id; + + common_debug( + sprintf( + "Attempting use Graph API to post notice %d as a stream item for %s (%d), fbuid %d", + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + $params = array( + 'access_token' => $this->flink->credentials, + // XXX: Need to worrry about length of the message? + 'message' => $this->notice->content + ); + + $attachments = $this->notice->attachments(); + + if (!empty($attachments)) { + + // We can only send one attachment with the Graph API :( + + $first = array_shift($attachments); + + if (substr($first->mimetype, 0, 6) == 'image/' + || in_array( + $first->mimetype, + array('application/x-shockwave-flash', 'audio/mpeg' ))) { + + $params['picture'] = $first->url; + $params['caption'] = 'Click for full size'; + $params['source'] = $first->url; + } + + } + + $result = $this->facebook->api( + sprintf('/%s/feed', $fbuid), 'post', $params + ); + + // Save a mapping + Notice_to_item::saveNew($this->notice->id, $result['id']); + + common_log( + LOG_INFO, + sprintf( + "Posted notice %d as a stream item for %s (%d), fbuid %d", + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + } catch (FacebookApiException $e) { + return $this->handleFacebookError($e); + } + + return true; + } + + /* + * Send a notice to Facebook using the deprecated Old REST API. We need this + * for backwards compatibility. Users who signed up for Facebook bridging + * using the old Facebook Canvas application do not have an OAuth 2.0 + * access token. + */ + function sendOldRest() + { + try { + + $canPublish = $this->checkPermission('publish_stream'); + $canUpdate = $this->checkPermission('status_update'); + + // We prefer to use stream.publish, because it can handle + // attachments and returns the ID of the published item + + if ($canPublish == 1) { + $this->restPublishStream(); + } else if ($canUpdate == 1) { + // as a last resort we can just update the user's "status" + $this->restStatusUpdate(); + } else { + + $msg = 'Not sending notice %d to Facebook because user %s ' + . '(%d), fbuid %d, does not have \'status_update\' ' + . 'or \'publish_stream\' permission.'; + + common_log( + LOG_WARNING, + sprintf( + $msg, + $this->notice->id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id + ), + __FILE__ + ); + } + + } catch (FacebookApiException $e) { + return $this->handleFacebookError($e); + } + + return true; + } + + /* + * Query Facebook to to see if a user has permission + * + * + * + * @param $permission the permission to check for - must be either + * public_stream or status_update + * + * @return boolean result + */ + function checkPermission($permission) + { + if (!in_array($permission, array('publish_stream', 'status_update'))) { + throw new ServerException("No such permission!"); + } + + $fbuid = $this->flink->foreign_id; + + common_debug( + sprintf( + 'Checking for %s permission for user %s (%d), fbuid %d', + $permission, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + $hasPermission = $this->facebook->api( + array( + 'method' => 'users.hasAppPermission', + 'ext_perm' => $permission, + 'uid' => $fbuid + ) + ); + + if ($hasPermission == 1) { + + common_debug( + sprintf( + '%s (%d), fbuid %d has %s permission', + $permission, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + return true; + + } else { + + $logMsg = '%s (%d), fbuid $fbuid does NOT have %s permission.' + . 'Facebook returned: %s'; + + common_debug( + sprintf( + $logMsg, + $this->user->nickname, + $this->user->id, + $permission, + $fbuid, + var_export($result, true) + ), + __FILE__ + ); + + return false; + + } + } + + /* + * Handle a Facebook API Exception + * + * @param FacebookApiException $e the exception + * + */ + function handleFacebookError($e) + { + $fbuid = $this->flink->foreign_id; + $errmsg = $e->getMessage(); + $code = $e->getCode(); + + // The Facebook PHP SDK seems to always set the code attribute + // of the Exception to 0; they put the real error code in + // the message. Gar! + if ($code == 0) { + preg_match('/^\(#(?<code>\d+)\)/', $errmsg, $matches); + $code = $matches['code']; + } + + // XXX: Check for any others? + switch($code) { + case 100: // Invalid parameter + $msg = 'Facebook claims notice %d was posted with an invalid ' + . 'parameter (error code 100 - %s) Notice details: ' + . '[nickname=%s, user id=%d, fbuid=%d, content="%s"]. ' + . 'Dequeing.'; + common_log( + LOG_ERR, sprintf( + $msg, + $this->notice->id, + $errmsg, + $this->user->nickname, + $this->user->id, + $fbuid, + $this->notice->content + ), + __FILE__ + ); + return true; + break; + case 200: // Permissions error + case 250: // Updating status requires the extended permission status_update + $this->disconnect(); + return true; // dequeue + break; + case 341: // Feed action request limit reached + $msg = '%s (userid=%d, fbuid=%d) has exceeded his/her limit ' + . 'for posting notices to Facebook today. Dequeuing ' + . 'notice %d'; + common_log( + LOG_INFO, sprintf( + $msg, + $user->nickname, + $user->id, + $fbuid, + $this->notice->id + ), + __FILE__ + ); + // @fixme: We want to rety at a later time when the throttling has expired + // instead of just giving up. + return true; + break; + default: + $msg = 'Facebook returned an error we don\'t know how to deal with ' + . 'when posting notice %d. Error code: %d, error message: "%s"' + . ' Notice details: [nickname=%s, user id=%d, fbuid=%d, ' + . 'notice content="%s"]. Dequeing.'; + common_log( + LOG_ERR, sprintf( + $msg, + $this->notice->id, + $code, + $errmsg, + $this->user->nickname, + $this->user->id, + $fbuid, + $this->notice->content + ), + __FILE__ + ); + return true; // dequeue + break; + } + } + + /* + * Publish a notice to Facebook as a status update + * + * This is the least preferable way to send a notice to Facebook because + * it doesn't support attachments and the API method doesn't return + * the ID of the post on Facebook. + * + */ + function restStatusUpdate() + { + $fbuid = $this->flink->foreign_id; + + common_debug( + sprintf( + "Attempting to post notice %d as a status update for %s (%d), fbuid %d", + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + $result = $this->facebook->api( + array( + 'method' => 'users.setStatus', + 'status' => $this->formatMessage(), + 'status_includes_verb' => true, + 'uid' => $fbuid + ) + ); + + if ($result == 1) { // 1 is success + + common_log( + LOG_INFO, + sprintf( + "Posted notice %s as a status update for %s (%d), fbuid %d", + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + // There is no item ID returned for status update so we can't + // save a Notice_to_item mapping + + } else { + + $msg = sprintf( + "Error posting notice %s as a status update for %s (%d), fbuid %d - error code: %s", + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid, + $result // will contain 0, or an error + ); + + throw new FacebookApiException($msg, $result); + } + } + + /* + * Publish a notice to a Facebook user's stream using the old REST API + */ + function restPublishStream() + { + $fbuid = $this->flink->foreign_id; + + common_debug( + sprintf( + 'Attempting to post notice %d as stream item for %s (%d) fbuid %d', + $this->notice->id, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + $fbattachment = $this->formatAttachments(); + + $result = $this->facebook->api( + array( + 'method' => 'stream.publish', + 'message' => $this->formatMessage(), + 'attachment' => $fbattachment, + 'uid' => $fbuid + ) + ); + + if (!empty($result)) { // result will contain the item ID + + // Save a mapping + Notice_to_item::saveNew($this->notice->id, $result); + + common_log( + LOG_INFO, + sprintf( + 'Posted notice %d as a %s for %s (%d), fbuid %d', + $this->notice->id, + empty($fbattachment) ? 'stream item' : 'stream item with attachment', + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + } else { + + $msg = sprintf( + 'Could not post notice %d as a %s for %s (%d), fbuid %d - error code: %s', + $this->notice->id, + empty($fbattachment) ? 'stream item' : 'stream item with attachment', + $this->user->nickname, + $this->user->id, + $result, // result will contain an error code + $fbuid + ); + + throw new FacebookApiException($msg, $result); + } + } + + /* + * Format the text message of a stream item so it's appropriate for + * sending to Facebook. If the notice is too long, truncate it, and + * add a linkback to the original notice at the end. + * + * @return String $txt the formated message + */ + function formatMessage() + { + // Start with the plaintext source of this notice... + $txt = $this->notice->content; + + // Facebook has a 420-char hardcoded max. + if (mb_strlen($statustxt) > 420) { + $noticeUrl = common_shorten_url($this->notice->uri); + $urlLen = mb_strlen($noticeUrl); + $txt = mb_substr($statustxt, 0, 420 - ($urlLen + 3)) . ' … ' . $noticeUrl; + } + + return $txt; + } + + /* + * Format attachments for the old REST API stream.publish method + * + * Note: Old REST API supports multiple attachments per post + * + */ + function formatAttachments() + { + $attachments = $this->notice->attachments(); + + $fbattachment = array(); + $fbattachment['media'] = array(); + + foreach($attachments as $attachment) + { + if($enclosure = $attachment->getEnclosure()){ + $fbmedia = $this->getFacebookMedia($enclosure); + }else{ + $fbmedia = $this->getFacebookMedia($attachment); + } + if($fbmedia){ + $fbattachment['media'][]=$fbmedia; + }else{ + $fbattachment['name'] = ($attachment->title ? + $attachment->title : $attachment->url); + $fbattachment['href'] = $attachment->url; + } + } + if(count($fbattachment['media'])>0){ + unset($fbattachment['name']); + unset($fbattachment['href']); + } + return $fbattachment; + } + + /** + * given a File objects, returns an associative array suitable for Facebook media + */ + function getFacebookMedia($attachment) + { + $fbmedia = array(); + + if (strncmp($attachment->mimetype, 'image/', strlen('image/')) == 0) { + $fbmedia['type'] = 'image'; + $fbmedia['src'] = $attachment->url; + $fbmedia['href'] = $attachment->url; + } else if ($attachment->mimetype == 'audio/mpeg') { + $fbmedia['type'] = 'mp3'; + $fbmedia['src'] = $attachment->url; + }else if ($attachment->mimetype == 'application/x-shockwave-flash') { + $fbmedia['type'] = 'flash'; + + // http://wiki.developers.facebook.com/index.php/Attachment_%28Streams%29 + // says that imgsrc is required... but we have no value to put in it + // $fbmedia['imgsrc']=''; + + $fbmedia['swfsrc'] = $attachment->url; + }else{ + return false; + } + return $fbmedia; + } + + /* + * Disconnect a user from Facebook by deleting his Foreign_link. + * Notifies the user his account has been disconnected by email. + */ + function disconnect() + { + $fbuid = $this->flink->foreign_id; + + common_log( + LOG_INFO, + sprintf( + 'Removing Facebook link for %s (%d), fbuid %d', + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + + $result = $this->flink->delete(); + + if (empty($result)) { + common_log( + LOG_ERR, + sprintf( + 'Could not remove Facebook link for %s (%d), fbuid %d', + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + common_log_db_error($flink, 'DELETE', __FILE__); + } + + // Notify the user that we are removing their Facebook link + if (!empty($this->user->email)) { + $result = $this->mailFacebookDisconnect(); + + if (!$result) { + + $msg = 'Unable to send email to notify %s (%d), fbuid %d ' + . 'about his/her Facebook link being removed.'; + + common_log( + LOG_WARNING, + sprintf( + $msg, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + } + + } else { + + $msg = 'Unable to send email to notify %s (%d), fbuid %d ' + . 'about his/her Facebook link being removed because the ' + . 'user has not set an email address.'; + + common_log( + LOG_WARNING, + sprintf( + $msg, + $this->user->nickname, + $this->user->id, + $fbuid + ), + __FILE__ + ); + } + } + + /** + * Send a mail message to notify a user that her Facebook link + * has been terminated. + * + * @return boolean success flag + */ + function mailFacebookDisconnect() + { + $profile = $this->user->getProfile(); + + $siteName = common_config('site', 'name'); + + common_switch_locale($this->user->language); + + $subject = _m('Your Facebook connection has been removed'); + + $msg = <<<BODY +Hi %1$s, + +We're sorry to inform you we are unable to publish your notice to +Facebook, and have removed the connection between your %2$s account and +Facebook. + +This may have happened because you have removed permission for %2$s +to post on your behalf, or perhaps you have deactivated your Facebook +account. You can reconnect your %s account to Facebook at any time by +logging in with Facebook again. + +Sincerely, + +%2$s +BODY; + $body = sprintf( + _m($msg), + $this->user->nickname, + $siteName + ); + + common_switch_locale(); + + $result = mail_to_user($this->user, $subject, $body); + + if (empty($this->user->password)) { + $result = self::emailWarn($this->user); + } + + return $result; + } + + /* + * Send the user an email warning that their account has been + * disconnected and he/she has no way to login and must contact + * the site administrator for help. + * + * @param User $user the deauthorizing user + * + */ + static function emailWarn($user) + { + $profile = $user->getProfile(); + + $siteName = common_config('site', 'name'); + $siteEmail = common_config('site', 'email'); + + if (empty($siteEmail)) { + common_log( + LOG_WARNING, + "No site email address configured. Please set one." + ); + } + + common_switch_locale($user->language); + + $subject = _m('Contact the %s administrator to retrieve your account'); + + $msg = <<<BODY +Hi %1$s, + +We've noticed you have deauthorized the Facebook connection for your +%2$s account. You have not set a password for your %2$s account yet, so +you will not be able to login. If you wish to continue using your %2$s +account, please contact the site administrator (%3$s) to set a password. + +Sincerely, + +%2$s +BODY; + $body = sprintf( + _m($msg), + $user->nickname, + $siteName, + $siteEmail + ); + + common_switch_locale(); + + if (mail_to_user($user, $subject, $body)) { + common_log( + LOG_INFO, + sprintf( + 'Sent account lockout warning to %s (%d)', + $user->nickname, + $user->id + ), + __FILE__ + ); + } else { + common_log( + LOG_WARNING, + sprintf( + 'Unable to send account lockout warning to %s (%d)', + $user->nickname, + $user->id + ), + __FILE__ + ); + } + } + + /* + * Check to see if we have a mapping to a copy of this notice + * on Facebook + * + * @param Notice $notice the notice to check + * + * @return mixed null if it can't find one, or the id of the Facebook + * stream item + */ + static function facebookStatusId($notice) + { + $n2i = Notice_to_item::staticGet('notice_id', $notice->id); + + if (empty($n2i)) { + return null; + } else { + return $n2i->item_id; + } + } + + /* + * Save a Foreign_user record of a Facebook user + * + * @param object $fbuser a Facebook Graph API user obj + * See: http://developers.facebook.com/docs/reference/api/user + * @return mixed $result Id or key + * + */ + static function addFacebookUser($fbuser) + { + // remove any existing, possibly outdated, record + $luser = Foreign_user::getForeignUser($fbuser['id'], FACEBOOK_SERVICE); + + if (!empty($luser)) { + + $result = $luser->delete(); + + if ($result != false) { + common_log( + LOG_INFO, + sprintf( + 'Removed old Facebook user: %s, fbuid %d', + $fbuid['name'], + $fbuid['id'] + ), + __FILE__ + ); + } + } + + $fuser = new Foreign_user(); + + $fuser->nickname = $fbuser['name']; + $fuser->uri = $fbuser['link']; + $fuser->id = $fbuser['id']; + $fuser->service = FACEBOOK_SERVICE; + $fuser->created = common_sql_now(); + + $result = $fuser->insert(); + + if (empty($result)) { + common_log( + LOG_WARNING, + sprintf( + 'Failed to add new Facebook user: %s, fbuid %d', + $fbuser['name'], + $fbuser['id'] + ), + __FILE__ + ); + + common_log_db_error($fuser, 'INSERT', __FILE__); + } else { + common_log( + LOG_INFO, + sprintf( + 'Added new Facebook user: %s, fbuid %d', + $fbuser['name'], + $fbuser['id'] + ), + __FILE__ + ); + } + + return $result; + } + + /* + * Remove an item from a Facebook user's feed if we have a mapping + * for it. + */ + function streamRemove() + { + $n2i = Notice_to_item::staticGet('notice_id', $this->notice->id); + + if (!empty($this->flink) && !empty($n2i)) { + + try { + + $result = $this->facebook->api( + array( + 'method' => 'stream.remove', + 'post_id' => $n2i->item_id, + 'uid' => $this->flink->foreign_id + ) + ); + + if (!empty($result) && result == true) { + + common_log( + LOG_INFO, + sprintf( + 'Deleted Facebook item: %s for %s (%d), fbuid %d', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id + ), + __FILE__ + ); + + $n2i->delete(); + + } else { + throw new FaceboookApiException(var_export($result, true)); + } + + } catch (FacebookApiException $e) { + common_log( + LOG_WARNING, + sprintf( + 'Could not deleted Facebook item: %s for %s (%d), ' + . 'fbuid %d - (API error: %s) item already deleted ' + . 'on Facebook? ', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id, + $e + ), + __FILE__ + ); + } + } + } + + /* + * Like an item in a Facebook user's feed if we have a mapping + * for it. + */ + function like() + { + $n2i = Notice_to_item::staticGet('notice_id', $this->notice->id); + + if (!empty($this->flink) && !empty($n2i)) { + + try { + + $result = $this->facebook->api( + array( + 'method' => 'stream.addlike', + 'post_id' => $n2i->item_id, + 'uid' => $this->flink->foreign_id + ) + ); + + if (!empty($result) && result == true) { + + common_log( + LOG_INFO, + sprintf( + 'Added like for item: %s for %s (%d), fbuid %d', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id + ), + __FILE__ + ); + + } else { + throw new FacebookApiException(var_export($result, true)); + } + + } catch (FacebookApiException $e) { + common_log( + LOG_WARNING, + sprintf( + 'Could not like Facebook item: %s for %s (%d), ' + . 'fbuid %d (API error: %s)', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id, + $e + ), + __FILE__ + ); + } + } + } + + /* + * Unlike an item in a Facebook user's feed if we have a mapping + * for it. + */ + function unLike() + { + $n2i = Notice_to_item::staticGet('notice_id', $this->notice->id); + + if (!empty($this->flink) && !empty($n2i)) { + + try { + + $result = $this->facebook->api( + array( + 'method' => 'stream.removeLike', + 'post_id' => $n2i->item_id, + 'uid' => $this->flink->foreign_id + ) + ); + + if (!empty($result) && result == true) { + + common_log( + LOG_INFO, + sprintf( + 'Removed like for item: %s for %s (%d), fbuid %d', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id + ), + __FILE__ + ); + + } else { + throw new FacebookApiException(var_export($result, true)); + } + + } catch (FacebookApiException $e) { + common_log( + LOG_WARNING, + sprintf( + 'Could not remove like for Facebook item: %s for %s ' + . '(%d), fbuid %d (API error: %s)', + $n2i->item_id, + $this->user->nickname, + $this->user->id, + $this->flink->foreign_id, + $e + ), + __FILE__ + ); + } + } + } + +} diff --git a/plugins/FacebookBridge/lib/facebookqueuehandler.php b/plugins/FacebookBridge/lib/facebookqueuehandler.php new file mode 100644 index 0000000000..1e82ff01b1 --- /dev/null +++ b/plugins/FacebookBridge/lib/facebookqueuehandler.php @@ -0,0 +1,61 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Queuehandler for Facebook transport + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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 FacebookQueueHandler extends QueueHandler +{ + function transport() + { + return 'facebook'; + } + + function handle($notice) + { + if ($this->_isLocal($notice)) { + return Facebookclient::facebookBroadcastNotice($notice); + } + return true; + } + + /** + * Determine whether the notice was locally created + * + * @param Notice $notice the notice + * + * @return boolean locality + */ + function _isLocal($notice) + { + return ($notice->is_local == Notice::LOCAL_PUBLIC || + $notice->is_local == Notice::LOCAL_NONPUBLIC); + } +} diff --git a/plugins/FacebookBridge/locale/FacebookBridge.pot b/plugins/FacebookBridge/locale/FacebookBridge.pot new file mode 100644 index 0000000000..132516b793 --- /dev/null +++ b/plugins/FacebookBridge/locale/FacebookBridge.pot @@ -0,0 +1,295 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "" + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "" + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "" + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "" + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "" + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "" + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "" + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "" + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "" + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "" + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" + +#: actions/facebooksettings.php:213 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "" + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "" diff --git a/plugins/FacebookBridge/locale/br/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/br/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..e416f0e727 --- /dev/null +++ b/plugins/FacebookBridge/locale/br/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,302 @@ +# Translation of StatusNet - FacebookBridge to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:55+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Kevreañ pe en em enskrivañ dre Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Arventennoù Facebook" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "" + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "Un implijer lec'hel liammet d'ar gont Facebook-se a zo dija." + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h. Mar plij adklaskit." + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "" +"Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " +"gont." + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "Ur gudenn dizanv a zo bet." + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "Dibarzhioù kevreañ" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "Krouiñ ur gont nevez" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "Krouiñ un implijer nevez gant al lesanv-se." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "Lesanv nevez" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 da 64 lizherenn vihan pe sifr, hep poentaouiñ nag esaouenn" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Krouiñ" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Kevreañ d'ur gont a zo dioutañ" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "Lesanv a zo dioutañ" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Ger-tremen" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Kevreañ" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "N'eo ket aotreet krouiñ kontoù." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "N'eo ket reizh ar c'hod pedadenn." + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "Lesanv nann-aotreet." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "Kevreit gant ho kont Facebook" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "Kevreañ gant Facebook" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Arventennoù enframmañ Facebook" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Arventennoù poellad Facebook" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "ID ar poellad" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "ID ho poellad Facebook" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "Kuzh" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "Enrollañ" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "" + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Enrollañ" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" + +#: actions/facebooksettings.php:213 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Digevrañ" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "" + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "" diff --git a/plugins/FacebookBridge/locale/ca/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/ca/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..38d44b9424 --- /dev/null +++ b/plugins/FacebookBridge/locale/ca/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,300 @@ +# Translation of StatusNet - FacebookBridge to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:55+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Inicieu-hi una sessió o registreu-vos-hi des del Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "Configuració de la integració del Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Paràmetres del Facebook" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "Un connector per integrar l'StatusNet amb el Facebook" + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "S'ha eliminat la connexió amb el Facebook" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "Contacteu amb l'administrador de %s per recuperar el vostre compte" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "" + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "" + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "" + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crea" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Connecta el compte ja existent" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Contrasenya" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connecta" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "El registre no està permès" + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "No és un codi d'invitació vàlid" + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "No es permet el sobrenom." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "El sobrenom ja és en ús. Trieu-ne un altre." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "" + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "" + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "" + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "" + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Desa els paràmetres del Facebook" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "" + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "" + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Desa" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" + +#: actions/facebooksettings.php:213 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Desconnecta" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "" + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "" + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "" diff --git a/plugins/FacebookBridge/locale/ia/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/ia/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..5478474bc7 --- /dev/null +++ b/plugins/FacebookBridge/locale/ia/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,316 @@ +# Translation of StatusNet - FacebookBridge to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:55+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Aperir session o crear conto usante Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "Configuration del integration de Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Configuration de Facebook" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "Un plug-in pro integrar StatusNet con Facebook." + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "Tu connexion a Facebook ha essite removite" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "Contacta le administrator de %s pro recuperar tu conto" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" +"Tu debe aperir session in Facebook pro registrar un conto local usante " +"Facebook." + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "Il ha jam un conto local ligate a iste conto de Facebook." + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "Tu non pote crear un conto si tu non accepta le licentia." + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "Un error incognite ha occurrite." + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" +"Isto es le prime vice que tu ha aperite un session in %s; dunque, nos debe " +"connecter tu Facebook a un conto local. Tu pote crear un nove conto local, o " +"connecter con un conto local existente." + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "Configuration de Facebook" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "Optiones de connexion" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mi texto e files es disponibile sub %s excepte iste datos private: " +"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " +"telephono." + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "Crear nove conto" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "Crear un nove usator con iste pseudonymo." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "Nove pseudonymo" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Connecter conto existente" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " +"pro connecter lo a tu Facebook." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "Pseudonymo existente" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Contrasigno" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connecter" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "Creation de conto non permittite." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "Le codice de invitation es invalide." + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "Pseudonymo non permittite." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "Error durante le connexion del usator a Facebook." + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "Nomine de usator o contrasigno invalide." + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "Aperir session con tu conto de Facebook" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "Aperir session con Facebook" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Configurationes de integration de Facebook" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "ID de Facebook invalide. Longitude maximal es 255 characteres." + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "Secreto de Facebook invalide. Longitude maximal es 255 characteres." + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Configurationes del application de Facebook" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "ID de application" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "Le ID de tu application Facebook" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "Secreto" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "Secreto de application" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "Salveguardar" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Salveguardar configuration Facebook" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "Usator de Facebook connectite" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "Publicar mi notas in Facebook." + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "Inviar responsas \"@\" a Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "Disconnecter mi conto ab Facebook" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" +"Per disconnecter tu Facebook, tu non plus poterea aperir session! Per favor " +"[defini un contrasigno](%s) primo." + +#: actions/facebooksettings.php:213 +#, fuzzy, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" +"Retene tu conto de %1$s ma disconnecte ab Facebook. Tu pote usar tu " +"contrasigno de %1$s pro aperir session." + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Disconnecter" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "" +"Occurreva un problema durante le salveguarda de tu preferentias de " +"synchronisation." + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "Preferentias de synchronisation salveguardate." + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "Non poteva deler le ligamine a Facebook." + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "Tu te ha disconnectite de Facebook." diff --git a/plugins/FacebookBridge/locale/mk/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/mk/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..23614078ee --- /dev/null +++ b/plugins/FacebookBridge/locale/mk/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,313 @@ +# Translation of StatusNet - FacebookBridge to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:55+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Најава или регистрација со Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "Поставки за обединување со Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Поставки за Facebook" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "Приклучок за обединување на StatusNet со Facebook." + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "Вашата врска со Facebook е отстранета" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "Контактирајте го администраторот на %s за да си ја повртатите сметката" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" +"За да регистрирате локална сметка користејќи Facebook, ќе мора да сте " +"најавени на самиот Facebook." + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "Веќе постои локална сметка поврзана со тааа сметка на Facebook." + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се поајви проблем со Вашиот сесиски жетон. Обидете се повторно." + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "Не може да се регистрирате ако не ја прифаќате лиценцата." + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "Се појави непозната грешка." + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" +"Ова е прв пат како се најавувате на %s, па затоа мораме да го поврземе " +"Вашиот профил на Facebook со локална сметка. Можете да создадете нова " +"локална сметка, или пак да се поврзете со постоечка сметка." + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "Поставки за Facebook" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "Нагодувања за врска" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мојот текст и податотеки се достапни под %s, освен следниве приватни " +"податоци: лозинка, е-пошта, IM-адреса и телефонски број." + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "Создај нова сметка" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "Создај нов корисник со овој прекар." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "Нов прекар" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви и бројки, без интерпункциски знаци и празни места" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Создај" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Поврзи постоечка сметка" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " +"поврзете со профилот на Facebook." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "Постоечки прекар" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Лозинка" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Поврзи" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "Регистрирањето не е дозволено." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "Ова не е важечки код за покана." + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "Прекарот не е дозволен." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "Тој прекар е во употреба. Одберете друг." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "Грешка при поврзувањето на корисникот со Facebook." + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "Погрешно име или лозинка." + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "Веќе сте најавени." + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "Најава со Вашата сметка на Facebook" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "Најава со Facebook" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Поставки за обединување со Facebook" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "Неважечка назнака (ID) за Facebook. Дозволени се највеќе 255 знаци." + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "Неважечка тајна за Facebook. Дозволени се највеќе 255 знаци." + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Поставки за програм за Facebook" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "Назнака (ID) на програмот" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "Назнака (ID) на Вашиот програм за Facebook" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "Тајна" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "Тајна за програмот" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "Зачувај" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Зачувај поставки за Facebook" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "Поврзан корисник на Facebook" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "Објавувај ми ги забелешките на Facebook." + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "Испраќај „@“-одговори на Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "Исклучи ми ја сметката од Facebook" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" +"Ако ја исклучите сметката од Faceboook, тогаш нема да можете да се " +"најавувате! Најпрвин [ставете лозинка](%s)." + +#: actions/facebooksettings.php:213 +#, fuzzy, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" +"Задржете ја сметката на %1$s, но исклучете ја од Facebook. За најава ќе ја " +"користите лозинката на 1%$s." + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Исклучи" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "Се појави проблем при зачувувањето на нагодувањата за усогласување." + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "Нагодувањата за усогласување се зачувани." + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "Не можев да ја избришам врската со Facebook." + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "Сега сте исклучени од Facebook." diff --git a/plugins/FacebookBridge/locale/nl/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/nl/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..06a115f2b2 --- /dev/null +++ b/plugins/FacebookBridge/locale/nl/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,320 @@ +# Translation of StatusNet - FacebookBridge to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Aanmelden of registreren via Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "Instellingen voor Facebookintegratie" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Facebookinstellingen" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "Een plug-in voor het integreren van StatusNet met Facebook." + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "Uw koppeling met Facebook is verwijderd" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "" +"Neem contact op met de beheerder van %s om uw gebruikersgegevens te " +"verkrijgen" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" +"U moet aangemeld zijn bij Facebook om een lokale gebruiker via Facebook te " +"kunnen registreren." + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "Er is al een lokale gebruiker verbonden met deze Facebookgebruiker." + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "Er is een onbekende fout opgetreden." + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" +"De is de eerste keer dat u aanmeldt bij %s en dan moeten we uw " +"Facebookgebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe lokale " +"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt." + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "Facebookinstellingen" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "Koppelingsinstellingen" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " +"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "Nieuwe gebruiker aanmaken" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "Nieuwe gebruikersnaam" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Aanmaken" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Verbinden met een bestaande gebruiker" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en " +"wachtwoord om deze daarna te koppelen met uw Facebookgebruiker." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "Bestaande gebruikersnaam" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Wachtwoord" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Koppelen" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "Registratie is niet toegestaan." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "De uitnodigingscode is ongeldig." + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "Gebruikersnaam niet toegestaan." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "" +"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "Fout bij het verbinden van de gebruiker met Facebook." + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "Ongeldige gebruikersnaam of wachtwoord." + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "U bent al aangemeld." + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "Aanmelden met uw Facebookgebruiker" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "Aanmelden met Facebook" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Instellingen voor Facebookkoppeling" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "Ongeldig Facebook-ID. De maximale lengte is 255 tekens." + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "Ongeldig Facebookgeheim. De maximale lengte is 255 tekens." + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Applicatieinstellingen voor Facebook" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "Applicatie-ID" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "ID van uw Facebookapplicatie" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "Geheim" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "Applicatiegeheim" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "Opslaan" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Facebookinstellingen opslaan" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "Gekoppelde Facebookgebruiker" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "Mijn mededelingen publiceren op Facebook." + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "Antwoorden met \"@\" naar Facebook verzenden." + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "Mijn gebruiker loskoppelen van Facebook" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" +"Door los te koppelen van Faceboook zou u niet meer kunnen aanmelden! [Stel " +"eerst een wachtwoord in](%s)." + +#: actions/facebooksettings.php:213 +#, fuzzy, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" +"Uw gebruiker bij %1$s behouden maar deze loskoppelen van Facebook. U kunt uw " +"wachtwoord van %1$s gebruiken om aan te melden." + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Loskoppelen" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "" +"Er is een fout opgetreden tijdens het opslaan van uw " +"synchronisatievoorkeuren." + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "Uw synchronisatievoorkeuren zijn opgeslagen." + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "Het was niet mogelijk de verwijzing naar Facebook te verwijderen." + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "U bent losgekoppeld van Facebook." diff --git a/plugins/FacebookBridge/locale/uk/LC_MESSAGES/FacebookBridge.po b/plugins/FacebookBridge/locale/uk/LC_MESSAGES/FacebookBridge.po new file mode 100644 index 0000000000..600f86dce8 --- /dev/null +++ b/plugins/FacebookBridge/locale/uk/LC_MESSAGES/FacebookBridge.po @@ -0,0 +1,316 @@ +# Translation of StatusNet - FacebookBridge to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FacebookBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-facebookbridge\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item. +#. TRANS: Menu item tab. +#: FacebookBridgePlugin.php:201 FacebookBridgePlugin.php:240 +#: FacebookBridgePlugin.php:281 +msgctxt "MENU" +msgid "Facebook" +msgstr "Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:203 +msgid "Login or register using Facebook" +msgstr "Увійти або зареєструватись з Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#: FacebookBridgePlugin.php:242 +msgid "Facebook integration configuration" +msgstr "Налаштування інтеграції з Facebook" + +#. TRANS: Tooltip for menu item "Facebook". +#. TRANS: Page title for Facebook settings. +#: FacebookBridgePlugin.php:283 actions/facebooksettings.php:105 +msgid "Facebook settings" +msgstr "Налаштування Facebook" + +#: FacebookBridgePlugin.php:547 +msgid "A plugin for integrating StatusNet with Facebook." +msgstr "Додаток для інтеграції StatusNet з Facebook." + +#: lib/facebookclient.php:776 +msgid "Your Facebook connection has been removed" +msgstr "З’єднання з Facebook було видалено" + +#: lib/facebookclient.php:835 +#, php-format +msgid "Contact the %s administrator to retrieve your account" +msgstr "Зверніться до адміністратора %s, аби відновити свій обліковий запис" + +#: actions/facebookfinishlogin.php:88 +msgid "" +"You must be logged into Facebook to register a local account using Facebook." +msgstr "" +"Спочатку ви маєте увійти до Facebook, аби мати змогу зареєструвати акаунт на " +"цьому сервісі за допомогою Facebook." + +#: actions/facebookfinishlogin.php:118 +msgid "There is already a local account linked with that Facebook account." +msgstr "Один з тутешніх акаунтів вже прив’язаний до цього профілю у Facebook." + +#: actions/facebookfinishlogin.php:141 actions/facebooksettings.php:86 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникла проблема з вашим токеном сесії. Спробуйте пізніше, будь ласка." + +#: actions/facebookfinishlogin.php:150 +msgid "You can't register if you don't agree to the license." +msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." + +#: actions/facebookfinishlogin.php:167 +msgid "An unknown error has occured." +msgstr "Сталася невідома помилка." + +#: actions/facebookfinishlogin.php:185 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your " +"Facebook to a local account. You can either create a new local account, or " +"connect with an existing local account." +msgstr "" +"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Facebook " +"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " +"використати такий, що вже існує." + +#. TRANS: Page title. +#: actions/facebookfinishlogin.php:195 +msgid "Facebook Setup" +msgstr "Установки Facebook" + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:229 +msgid "Connection options" +msgstr "Опції з’єднання" + +#. TRANS: %s is the name of the license used by the user for their status updates. +#: actions/facebookfinishlogin.php:239 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " +"електронна адреса, адреса IM, телефонний номер." + +#. TRANS: Legend. +#: actions/facebookfinishlogin.php:256 +msgid "Create new account" +msgstr "Створити новий акаунт" + +#: actions/facebookfinishlogin.php:258 +msgid "Create a new user with this nickname." +msgstr "Створити нового користувача з цим нікнеймом." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:262 +msgid "New nickname" +msgstr "Новий псевдонім" + +#: actions/facebookfinishlogin.php:264 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:268 +msgctxt "BUTTON" +msgid "Create" +msgstr "Створити" + +#: actions/facebookfinishlogin.php:274 +msgid "Connect existing account" +msgstr "Приєднати акаунт, який вже існує" + +#: actions/facebookfinishlogin.php:276 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Facebook." +msgstr "" +"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " +"приєднати їх до Facebook." + +#. TRANS: Field label. +#: actions/facebookfinishlogin.php:280 +msgid "Existing nickname" +msgstr "Нікнейм, який вже існує" + +#: actions/facebookfinishlogin.php:283 +msgid "Password" +msgstr "Пароль" + +#. TRANS: Submit button. +#: actions/facebookfinishlogin.php:287 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Під’єднати" + +#. TRANS: Client error trying to register with registrations not allowed. +#. TRANS: Client error trying to register with registrations 'invite only'. +#: actions/facebookfinishlogin.php:304 actions/facebookfinishlogin.php:314 +msgid "Registration not allowed." +msgstr "Реєстрацію не дозволено." + +#. TRANS: Client error trying to register with an invalid invitation code. +#: actions/facebookfinishlogin.php:322 +msgid "Not a valid invitation code." +msgstr "Це не дійсний код запрошення." + +#: actions/facebookfinishlogin.php:335 +msgid "Nickname not allowed." +msgstr "Нікнейм не допускається." + +#: actions/facebookfinishlogin.php:340 +msgid "Nickname already in use. Try another one." +msgstr "Це ім’я вже використовується. Спробуйте інше." + +#: actions/facebookfinishlogin.php:368 actions/facebookfinishlogin.php:505 +msgid "Error connecting user to Facebook." +msgstr "Помилка при підключенні до Facebook." + +#: actions/facebookfinishlogin.php:468 +msgid "Invalid username or password." +msgstr "Недійсне ім’я або пароль." + +#: actions/facebooklogin.php:43 +msgid "Already logged in." +msgstr "Ви вже увійшли." + +#. TRANS: Instructions. +#: actions/facebooklogin.php:52 +msgid "Login with your Facebook Account" +msgstr "Увійти з акаунтом Facebook" + +#. TRANS: Page title. +#: actions/facebooklogin.php:67 +msgid "Login with Facebook" +msgstr "Увійти з Facebook" + +#: actions/facebookadminpanel.php:52 +msgid "Facebook" +msgstr "Facebook" + +#: actions/facebookadminpanel.php:62 +msgid "Facebook integration settings" +msgstr "Налаштування інтеграції з Facebook" + +#: actions/facebookadminpanel.php:123 +msgid "Invalid Facebook ID. Max length is 255 characters." +msgstr "" +"Неприпустимий ідентифікатор Facebook. Максимальна довжина — 255 символів." + +#: actions/facebookadminpanel.php:129 +msgid "Invalid Facebook secret. Max length is 255 characters." +msgstr "Помилковий секретний код Facebook. Максимальна довжина — 255 символів." + +#: actions/facebookadminpanel.php:178 +msgid "Facebook application settings" +msgstr "Налаштування додатку для Facebook" + +#: actions/facebookadminpanel.php:184 +msgid "Application ID" +msgstr "Ідентифікатор додатку" + +#: actions/facebookadminpanel.php:185 +msgid "ID of your Facebook application" +msgstr "Ідентифікатор вашого додатку Facebook" + +#: actions/facebookadminpanel.php:193 +msgid "Secret" +msgstr "Секретний код" + +#: actions/facebookadminpanel.php:194 +msgid "Application secret" +msgstr "Секретний код додатку" + +#: actions/facebookadminpanel.php:210 +msgid "Save" +msgstr "Зберегти" + +#: actions/facebookadminpanel.php:210 +msgid "Save Facebook settings" +msgstr "Зберегти налаштування Facebook" + +#: actions/facebooksettings.php:137 +msgid "Connected Facebook user" +msgstr "Під’єднаний користувач Facebook" + +#: actions/facebooksettings.php:164 +msgid "Publish my notices to Facebook." +msgstr "Публікувати мої дописи у Facebook." + +#: actions/facebooksettings.php:174 +msgid "Send \"@\" replies to Facebook." +msgstr "Надсилати «@» відповіді до Facebook." + +#. TRANS: Submit button to save synchronisation settings. +#: actions/facebooksettings.php:183 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: Legend. +#: actions/facebooksettings.php:192 +msgid "Disconnect my account from Facebook" +msgstr "Від’єднати мій акаунт від Facebook" + +#: actions/facebooksettings.php:199 +#, php-format +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please [set " +"a password](%s) first." +msgstr "" +"Якщо від’єднати ваш акаунт від Faceboook зараз, то це унеможливить вхід до " +"сервісу у майбутньому! Будь ласка, спочатку [встановіть пароль](%s)." + +#: actions/facebooksettings.php:213 +#, fuzzy, php-format +msgid "" +"Keep your %1$s account but disconnect from Facebook. You'll use your %1$s " +"password to log in." +msgstr "" +"Зберегти ваш акаунт %1$s, але від’єднати його від Facebook. Ви можете " +"використовувати пароль від %1$s для входу на сайт." + +#. TRANS: Submit button. +#: actions/facebooksettings.php:220 +msgctxt "BUTTON" +msgid "Disconnect" +msgstr "Від’єднати" + +#: actions/facebooksettings.php:243 +msgid "There was a problem saving your sync preferences." +msgstr "Виникла проблема при збереженні параметрів синхронізації." + +#. TRANS: Confirmation that synchronisation settings have been saved into the system. +#: actions/facebooksettings.php:246 +msgid "Sync preferences saved." +msgstr "Параметри синхронізації збережено." + +#: actions/facebooksettings.php:260 +msgid "Couldn't delete link to Facebook." +msgstr "Не можу видалити посилання на Facebook." + +#: actions/facebooksettings.php:264 +msgid "You have disconnected from Facebook." +msgstr "Ви від’єдналися від Facebook." diff --git a/plugins/FirePHP/FirePHPPlugin.php b/plugins/FirePHP/FirePHPPlugin.php index d984ec1af4..27f760c81c 100644 --- a/plugins/FirePHP/FirePHPPlugin.php +++ b/plugins/FirePHP/FirePHPPlugin.php @@ -69,4 +69,3 @@ class FirePHPPlugin extends Plugin return true; } } - diff --git a/plugins/FirePHP/locale/FirePHP.pot b/plugins/FirePHP/locale/FirePHP.pot index fa16f283eb..a082cee146 100644 --- a/plugins/FirePHP/locale/FirePHP.pot +++ b/plugins/FirePHP/locale/FirePHP.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,6 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: FirePHPPlugin.php:66 +#: FirePHPPlugin.php:68 msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." msgstr "" diff --git a/plugins/FirePHP/locale/de/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/de/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..38ccaafdd3 --- /dev/null +++ b/plugins/FirePHP/locale/de/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"Das FirePHP-Plugin schreibt die Konsolenausgabe von StatusNet an FirePHP." diff --git a/plugins/FirePHP/locale/es/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/es/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..5acad1e1b2 --- /dev/null +++ b/plugins/FirePHP/locale/es/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"La extensión FirePHP escribe la salida del registro de StatusNet en FirePHP." diff --git a/plugins/FirePHP/locale/fi/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/fi/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..59578200c8 --- /dev/null +++ b/plugins/FirePHP/locale/fi/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "FirePHP-liitännäinen kirjoittaa StatusNetin tulosteen FirePHP:hen." diff --git a/plugins/FirePHP/locale/fr/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/fr/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..e43e359b3f --- /dev/null +++ b/plugins/FirePHP/locale/fr/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"L’extension FirePHP écrit la sortie du journal de StatusNet dans FirePHP." diff --git a/plugins/FirePHP/locale/he/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/he/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..5d673e2ada --- /dev/null +++ b/plugins/FirePHP/locale/he/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "התוסף FirePHP כותב את פלט הרישום של StatusNet ל־FirePHP." diff --git a/plugins/FirePHP/locale/ia/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/ia/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..619467c6fc --- /dev/null +++ b/plugins/FirePHP/locale/ia/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"Le plug-in FirePHP transmitte le output del registro de StatusNet a FirePHP." diff --git a/plugins/FirePHP/locale/id/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/id/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..3e0768eb84 --- /dev/null +++ b/plugins/FirePHP/locale/id/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "Pengaya FirePHP menulis keluaran log StatusNet kepada FirePHP." diff --git a/plugins/FirePHP/locale/ja/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/ja/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..dbc951b7c2 --- /dev/null +++ b/plugins/FirePHP/locale/ja/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "FirePHPプラグインは、StatusNetの記録出力を、FirePHPへ書き出します。" diff --git a/plugins/FirePHP/locale/mk/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/mk/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..d2a221118c --- /dev/null +++ b/plugins/FirePHP/locale/mk/LC_MESSAGES/FirePHP.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - FirePHP to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"Приклучокот FirePHP ги врши излезните записи во дневникот на StatusNet во " +"FirePHP." diff --git a/plugins/FirePHP/locale/nb/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/nb/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..d9ff90a0e4 --- /dev/null +++ b/plugins/FirePHP/locale/nb/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "Utvidelsen FirePHP skriver StatusNets logg-utdata til FirePHP." diff --git a/plugins/FirePHP/locale/nl/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/nl/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..4ab0473f30 --- /dev/null +++ b/plugins/FirePHP/locale/nl/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"De plug-in FirePHP schrijft de logboekuitvoer van StatusNet naar FirePHP." diff --git a/plugins/FirePHP/locale/pt/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/pt/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..441192c03a --- /dev/null +++ b/plugins/FirePHP/locale/pt/LC_MESSAGES/FirePHP.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FirePHP to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "O plugin FirePHP envia a saída do log do StatusNet para o FirePHP." diff --git a/plugins/FirePHP/locale/ru/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/ru/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..ee61325709 --- /dev/null +++ b/plugins/FirePHP/locale/ru/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "Модуль FirePHP записывает вывод журнала StatusNet в FirePHP." diff --git a/plugins/FirePHP/locale/tl/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/tl/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..19275f79f8 --- /dev/null +++ b/plugins/FirePHP/locale/tl/LC_MESSAGES/FirePHP.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - FirePHP to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "" +"Ang pamasak na FirePHP ay nagsusulat ng tala ng paglalabas ng StatusNet sa " +"FirePHP." diff --git a/plugins/FirePHP/locale/uk/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/uk/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..03ddabc046 --- /dev/null +++ b/plugins/FirePHP/locale/uk/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "Додаток FirePHP записує лоґи StatusNet до FirePHP." diff --git a/plugins/FirePHP/locale/zh_CN/LC_MESSAGES/FirePHP.po b/plugins/FirePHP/locale/zh_CN/LC_MESSAGES/FirePHP.po new file mode 100644 index 0000000000..a3da6642f9 --- /dev/null +++ b/plugins/FirePHP/locale/zh_CN/LC_MESSAGES/FirePHP.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - FirePHP to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FirePHP\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:56+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-firephp\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: FirePHPPlugin.php:68 +msgid "The FirePHP plugin writes StatusNet's log output to FirePHP." +msgstr "FirePHP 插件将 StatusNet 的日志输出到 FirePHP。" diff --git a/plugins/FollowEveryone/FollowEveryonePlugin.php b/plugins/FollowEveryone/FollowEveryonePlugin.php new file mode 100644 index 0000000000..228efc9357 --- /dev/null +++ b/plugins/FollowEveryone/FollowEveryonePlugin.php @@ -0,0 +1,206 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * When a new user registers, all existing users follow them automatically. + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Community + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +/** + * Plugin to make all users follow each other at registration + * + * Users can unfollow afterwards if they want. + * + * @category Sample + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class FollowEveryonePlugin extends Plugin +{ + /** + * Called when a new user is registered. + * + * We find all users, and try to subscribe them to the new user, and + * the new user to them. Exceptions (like silenced users or whatever) + * are caught, logged, and ignored. + * + * @param Profile &$newProfile The new user's profile + * @param User &$newUser The new user + * + * @return boolean hook value + * + */ + function onEndUserRegister(&$newProfile, &$newUser) + { + $otherUser = new User(); + $otherUser->whereAdd('id != ' . $newUser->id); + + if ($otherUser->find()) { + while ($otherUser->fetch()) { + $otherProfile = $otherUser->getProfile(); + try { + if (User_followeveryone_prefs::followEveryone($otherUser->id)) { + Subscription::start($otherProfile, $newProfile); + } + Subscription::start($newProfile, $otherProfile); + } catch (Exception $e) { + common_log(LOG_WARNING, $e->getMessage()); + continue; + } + } + } + + $ufep = new User_followeveryone_prefs(); + + $ufep->user_id = $newUser->id; + $ufep->followeveryone = true; + + $ufep->insert(); + + 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_followeveryone_prefs', + array(new ColumnDef('user_id', 'integer', null, + true, 'PRI'), + new ColumnDef('followeveryone', 'tinyint', null, + false, null, 1))); + + return true; + } + + /** + * Load related modules when needed + * + * @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 'User_followeveryone_prefs': + include_once $dir . '/'.$cls.'.php'; + return false; + default: + return true; + } + } + + /** + * Show a checkbox on the profile form to ask whether to follow everyone + * + * @param Action $action The action being executed + * + * @return boolean hook value + */ + function onEndProfileFormData($action) + { + $user = common_current_user(); + + $action->elementStart('li'); + // TRANS: Checkbox label in form for profile settings. + $action->checkbox('followeveryone', _('Follow everyone'), + ($action->arg('followeveryone')) ? + $action->arg('followeveryone') : + User_followeveryone_prefs::followEveryone($user->id)); + $action->elementEnd('li'); + + return true; + } + + /** + * Save checkbox value for following everyone + * + * @param Action $action The action being executed + * + * @return boolean hook value + */ + function onEndProfileSaveForm($action) + { + $user = common_current_user(); + + User_followeveryone_prefs::savePref($user->id, + $action->boolean('followeveryone')); + + return true; + } + + /** + * Provide version information about this plugin. + * + * @param Array &$versions Array of version data + * + * @return boolean hook value + * + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'FollowEveryone', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:FollowEveryone', + 'rawdescription' => + _m('New users follow everyone at registration and are followed in return.')); + return true; + } +} diff --git a/plugins/FollowEveryone/User_followeveryone_prefs.php b/plugins/FollowEveryone/User_followeveryone_prefs.php new file mode 100644 index 0000000000..7690fd220a --- /dev/null +++ b/plugins/FollowEveryone/User_followeveryone_prefs.php @@ -0,0 +1,164 @@ +<?php +/** + * Data class for counting greetings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @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 <http://www.gnu.org/licenses/>. + */ + +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 <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ +class User_followeveryone_prefs extends Memcached_DataObject +{ + public $__table = 'user_followeveryone_prefs'; // table name + public $user_id; // int(4) primary_key not_null + public $followeveryone; // tinyint(1) + + /** + * 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_followeveryone_prefs object found, or null for no hits + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('User_followeveryone_prefs', $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, + 'followeveryone' => DB_DATAOBJECT_INT + DB_DATAOBJECT_BOOL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + function keyTypes() + { + 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); + } + + static function followEveryone($user_id) + { + $ufep = self::staticGet('user_id', $user_id); + + if (empty($ufep)) { + return true; + } else { + return (bool)$ufep->followeveryone; + } + } + + static function savePref($user_id, $followEveryone) + { + $ufep = self::staticGet('user_id', $user_id); + + if (empty($ufep)) { + $ufep = new User_followeveryone_prefs(); + $ufep->user_id = $user_id; + $ufep->followeveryone = $followEveryone; + $ufep->insert(); + } else { + $orig = clone($ufep); + $ufep->followeveryone = $followEveryone; + $ufep->update(); + } + + return true; + } +} diff --git a/plugins/FollowEveryone/locale/FollowEveryone.pot b/plugins/FollowEveryone/locale/FollowEveryone.pot new file mode 100644 index 0000000000..30aee978e9 --- /dev/null +++ b/plugins/FollowEveryone/locale/FollowEveryone.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" diff --git a/plugins/FollowEveryone/locale/de/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/de/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..0d34cf8b55 --- /dev/null +++ b/plugins/FollowEveryone/locale/de/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - FollowEveryone to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" +"Neue Benutzer folgen jedem nach der Registrierung und werden im Gegenzug " +"ebenfalls gefolgt." diff --git a/plugins/FollowEveryone/locale/fr/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/fr/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..f4621a0e53 --- /dev/null +++ b/plugins/FollowEveryone/locale/fr/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - FollowEveryone to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" +"Les nouveaux utilisateurs suivent tout le monde lors de l’inscription et " +"sont suivis en retour." diff --git a/plugins/FollowEveryone/locale/he/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/he/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..ace473a107 --- /dev/null +++ b/plugins/FollowEveryone/locale/he/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FollowEveryone to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "משתמשים חדשים עוקבים אחר כולם בעת הרישום ובתמורה עוקבים אחריהם." diff --git a/plugins/FollowEveryone/locale/ia/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/ia/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..0a8266799f --- /dev/null +++ b/plugins/FollowEveryone/locale/ia/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FollowEveryone to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "Nove usatores seque omnes al inscription e es sequite per omnes." diff --git a/plugins/FollowEveryone/locale/mk/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/mk/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..632876f685 --- /dev/null +++ b/plugins/FollowEveryone/locale/mk/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - FollowEveryone to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "Новите корисници следат секого при регистрација и сите ги следат нив." diff --git a/plugins/FollowEveryone/locale/nl/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/nl/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..470bbc5d9d --- /dev/null +++ b/plugins/FollowEveryone/locale/nl/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - FollowEveryone to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" +"Nieuwe gebruikers volgen iedereen bij inschrijving en worden door iedereen " +"gevolgd." diff --git a/plugins/FollowEveryone/locale/ru/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/ru/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..35fd550815 --- /dev/null +++ b/plugins/FollowEveryone/locale/ru/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - FollowEveryone to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" +"Новые пользователи следят за всеми при регистрации и получают обратное " +"слежение." diff --git a/plugins/FollowEveryone/locale/uk/LC_MESSAGES/FollowEveryone.po b/plugins/FollowEveryone/locale/uk/LC_MESSAGES/FollowEveryone.po new file mode 100644 index 0000000000..4ef5e5a8bf --- /dev/null +++ b/plugins/FollowEveryone/locale/uk/LC_MESSAGES/FollowEveryone.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - FollowEveryone to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - FollowEveryone\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-followeveryone\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: FollowEveryonePlugin.php:203 +msgid "New users follow everyone at registration and are followed in return." +msgstr "" +"Нові користувачі автоматично підписуються до всіх після реєстрації, а всі " +"решта автоматично підписуються навзаєм." diff --git a/plugins/ForceGroup/ForceGroupPlugin.php b/plugins/ForceGroup/ForceGroupPlugin.php new file mode 100644 index 0000000000..fb98644846 --- /dev/null +++ b/plugins/ForceGroup/ForceGroupPlugin.php @@ -0,0 +1,108 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package ForceGroupPlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { exit(1); } + +class ForceGroupPlugin extends Plugin +{ + /** + * Members of these groups will have all their posts mirrored into + * the group even if they don't explicitly mention it. + * + * List by local nickname. + */ + public $post = array(); + + /** + * New user registrations will automatically join these groups on + * registration. They're not prevented from leaving, however. + * + * List by local nickname. + */ + public $join = array(); + + /** + * If poster is in one of the forced groups, make sure their notice + * gets saved into that group even if not explicitly mentioned. + * + * @param Notice $notice + * @return boolean event hook return + */ + function onStartNoticeDistribute($notice) + { + $profile = $notice->getProfile(); + foreach ($this->post as $nickname) { + $group = User_group::getForNickname($nickname); + if ($group && $profile->isMember($group)) { + $notice->addToGroupInbox($group); + } + } + return true; + } + + function onEndUserRegister($profile, $user) + { + $profile = $user->getProfile(); + foreach ($this->join as $nickname) { + $group = User_group::getForNickname($nickname); + if ($group && !$profile->isMember($group)) { + try { + if (Event::handle('StartJoinGroup', array($group, $user))) { + Group_member::join($group->id, $user->id); + Event::handle('EndJoinGroup', array($group, $user)); + } + } catch (Exception $e) { + // TRANS: Server exception. + // TRANS: %1$s is a user nickname, %2$s is a group nickname. + throw new ServerException(sprintf(_m('Could not join user %1$s to group %2$s.'), + $user->nickname, $group->nickname)); + } + } + } + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:ForceGroup'; + + $versions[] = array('name' => 'ForceGroup', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('Allows forced group memberships and forces all notices to appear in groups that users were forced in.')); + + return true; + } +} diff --git a/plugins/ForceGroup/locale/ForceGroup.pot b/plugins/ForceGroup/locale/ForceGroup.pot new file mode 100644 index 0000000000..10251d15e9 --- /dev/null +++ b/plugins/ForceGroup/locale/ForceGroup.pot @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "" + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" diff --git a/plugins/ForceGroup/locale/de/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/de/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..fa94f54b44 --- /dev/null +++ b/plugins/ForceGroup/locale/de/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Konnte Benutzer %1$s nicht der Gruppe %2$s hinzufügen." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Ermöglicht erzwungene Gruppenmitgliedschaften und sorgt dafür, dass alle " +"Nachrichten in Gruppen erscheinen, in die Benutzer reingezwungen wurden." diff --git a/plugins/ForceGroup/locale/es/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/es/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..ade5062772 --- /dev/null +++ b/plugins/ForceGroup/locale/es/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "No se pudo incluir al usuario %1$s en el grupo %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Permite forzar inclusiones en grupos y fuerza la aparición de todos los " +"mensajes en los grupos en los que los usuarios fueron incluidos a la fuerza." diff --git a/plugins/ForceGroup/locale/fr/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/fr/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..893b364cc5 --- /dev/null +++ b/plugins/ForceGroup/locale/fr/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Impossible d’inscrire l’utilisateur %1$s au groupe %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Permet de forcer l’inscription à un groupe et force tous les avis à " +"apparaître dans les groupes dont les utilisateurs sont forcés." diff --git a/plugins/ForceGroup/locale/he/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/he/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..aefdc96c25 --- /dev/null +++ b/plugins/ForceGroup/locale/he/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "לא ניתן לצרף את המשתמש %1$s לקבוצה %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"מתן האפשרות לחברויות מאולצות בקבוצות ואילוץ הצגת כל ההתרעות בקבוצות אליהן " +"אולצו המשתמשים להצטרף." diff --git a/plugins/ForceGroup/locale/ia/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/ia/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..29e220bbac --- /dev/null +++ b/plugins/ForceGroup/locale/ia/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Permitte fortiar le inscription in gruppos e fortia que tote le notas appare " +"in gruppos in que usatores esseva inscribite." diff --git a/plugins/ForceGroup/locale/id/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/id/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..a255128f23 --- /dev/null +++ b/plugins/ForceGroup/locale/id/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Tidak dapat menggabungkan pengguna %1$s ke grup %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Memungkinkan keanggotaan grup secara paksa dan memaksa semua pemberitahuan " +"muncul di grup yang penggunanya dipaksa masuk." diff --git a/plugins/ForceGroup/locale/mk/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/mk/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..830ef2588c --- /dev/null +++ b/plugins/ForceGroup/locale/mk/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Не можев да го зачленам корисникот %1$s во групата %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Овозможува наметнати членства во групи и наметнува на сите забелешки да се " +"јавуваат во групите кајшто корисниците имаат наметнати членства" diff --git a/plugins/ForceGroup/locale/nl/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/nl/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..9e00a82174 --- /dev/null +++ b/plugins/ForceGroup/locale/nl/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - ForceGroup to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Het was niet mogelijk gebruiker %1$s toe te voegen aan de groep %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Maakt het mogelijk gedwongen lid te worden van groepen en alle mededelingen " +"weer te geven in die groepen." diff --git a/plugins/ForceGroup/locale/te/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/te/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..64c98fc1ab --- /dev/null +++ b/plugins/ForceGroup/locale/te/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - ForceGroup to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "వాడుకరి %1$sని %2$s గుంపులో చేర్చలేకపోయాం." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" diff --git a/plugins/ForceGroup/locale/tl/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/tl/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..e5a6e9d10e --- /dev/null +++ b/plugins/ForceGroup/locale/tl/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - ForceGroup to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Hindi maisama ang tagagamit na %1$s sa pangkat na %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Nagpapahintulot ng pinilit na mga pagkakasapi sa pangkat at pumipilit sa " +"lahat ng mga pabatid na lumitaw sa loob ng mga pangkat na pinagpilitang " +"paloob ng mga tagagamit." diff --git a/plugins/ForceGroup/locale/uk/LC_MESSAGES/ForceGroup.po b/plugins/ForceGroup/locale/uk/LC_MESSAGES/ForceGroup.po new file mode 100644 index 0000000000..63536d92f7 --- /dev/null +++ b/plugins/ForceGroup/locale/uk/LC_MESSAGES/ForceGroup.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - ForceGroup to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ForceGroup\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:57+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:56+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-forcegroup\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Server exception. +#. TRANS: %1$s is a user nickname, %2$s is a group nickname. +#: ForceGroupPlugin.php:78 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Не вдалось долучити користувача %1$s до спільноти %2$s." + +#. TRANS: Plugin description. +#: ForceGroupPlugin.php:104 +msgid "" +"Allows forced group memberships and forces all notices to appear in groups " +"that users were forced in." +msgstr "" +"Дозволяє примусове долучення користувачів до спільнот разом із дописами, " +"котрі відповідають темі той чи іншої спільноти, до якої було примусово " +"долучено користувача." diff --git a/plugins/GeoURLPlugin.php b/plugins/GeoURL/GeoURLPlugin.php similarity index 99% rename from plugins/GeoURLPlugin.php rename to plugins/GeoURL/GeoURLPlugin.php index 01178f39c0..91da81a5aa 100644 --- a/plugins/GeoURLPlugin.php +++ b/plugins/GeoURL/GeoURLPlugin.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * * @seeAlso Location */ - class GeoURLPlugin extends Plugin { public $ping = 'http://geourl.org/ping/'; @@ -58,7 +57,6 @@ class GeoURLPlugin extends Plugin * * @return boolean event handler flag */ - function onEndShowHeadElements($action) { $name = $action->trimmed('action'); @@ -94,7 +92,6 @@ class GeoURLPlugin extends Plugin * * @return boolean event handler flag */ - function onHandleQueuedNotice(&$notice) { if ($notice->is_local == 1) { diff --git a/plugins/GeoURL/locale/GeoURL.pot b/plugins/GeoURL/locale/GeoURL.pot new file mode 100644 index 0000000000..83e95ad843 --- /dev/null +++ b/plugins/GeoURL/locale/GeoURL.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" diff --git a/plugins/GeoURL/locale/ca/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/ca/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..e5672a6354 --- /dev/null +++ b/plugins/GeoURL/locale/ca/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Feu un ping a <a href=\"http://geourl.org/\">GeoURL</a> en anviar avisos " +"geolocalitzats." diff --git a/plugins/GeoURL/locale/de/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/de/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..92f5f5ea14 --- /dev/null +++ b/plugins/GeoURL/locale/de/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> wenn neue georeferenzierte " +"Notizen gepostet werden." diff --git a/plugins/GeoURL/locale/eo/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/eo/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..b86f3bb26a --- /dev/null +++ b/plugins/GeoURL/locale/eo/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Esperanto (Esperanto) +# Expored from translatewiki.net +# +# Author: LyzTyphone +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Esperanto <http://translatewiki.net/wiki/Portal:eo>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: eo\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Eĥosondu <a href=\"http://geourl.org/\">GeoURL</a>-n, kiam sciigon pri " +"plibonigo de terlokigado aperas." diff --git a/plugins/GeoURL/locale/es/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/es/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..d4b5bb9336 --- /dev/null +++ b/plugins/GeoURL/locale/es/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Hacer ping al <a href=\"http://geourl.org/\">GeoURL</a> cade vez que se " +"publique nuevos mensajes de geolocalización mejorados." diff --git a/plugins/GeoURL/locale/fr/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/fr/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..ecb4b84991 --- /dev/null +++ b/plugins/GeoURL/locale/fr/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Interroger <a href=\"http://geourl.org/\">GeoURL</a> lorsque de nouveaux " +"avis géolocalisés sont postés." diff --git a/plugins/GeoURL/locale/he/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/he/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..058f5cf93b --- /dev/null +++ b/plugins/GeoURL/locale/he/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"שליחת פינג ל־<a href=\"http://geourl.org/\">GeoURL</a> כאשר מפורסמות התרעות " +"המועשרות בנתוני מיקום גאוגרפי." diff --git a/plugins/GeoURL/locale/ia/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/ia/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..8cf47a9537 --- /dev/null +++ b/plugins/GeoURL/locale/ia/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Invia un ping a <a href=\"http://geourl.org/\">GeoURL</a> quando se publica " +"nove notas con geolocalisation." diff --git a/plugins/GeoURL/locale/id/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/id/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..fcf00d6d5e --- /dev/null +++ b/plugins/GeoURL/locale/id/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> ketika pemberitahuan lokasi " +"geo terbaru dikirim." diff --git a/plugins/GeoURL/locale/mk/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/mk/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..e7807c5295 --- /dev/null +++ b/plugins/GeoURL/locale/mk/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Пингувај <a href=\"http://geourl.org/\">GeoURL</a> при објавување на нови " +"геолоцирани забелешки." diff --git a/plugins/GeoURL/locale/nb/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/nb/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..672283c1f8 --- /dev/null +++ b/plugins/GeoURL/locale/nb/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> når nye notiser med " +"geolokasjon blir postet." diff --git a/plugins/GeoURL/locale/nl/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/nl/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..31eeb9027b --- /dev/null +++ b/plugins/GeoURL/locale/nl/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"<a href=\"http://geourl.org/\">GeoURL</a> pingen als nieuwe met " +"geolocatiegegevens verrijkte mededelingen worden geplaatst." diff --git a/plugins/GeoURL/locale/pl/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/pl/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..035a339a73 --- /dev/null +++ b/plugins/GeoURL/locale/pl/LC_MESSAGES/GeoURL.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GeoURL to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Używa <a href=\"http://geourl.org/\">GeoURL</a> po wysłaniu wpisów " +"zawierających informacje geolokalizacyjne." diff --git a/plugins/GeoURL/locale/pt/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/pt/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..189ca26cae --- /dev/null +++ b/plugins/GeoURL/locale/pt/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Fazer \"ping\" ao <a href=\"http://geourl.org/\">GeoURL</a> quando forem " +"enviadas mensagens com indicação da localização geográfica." diff --git a/plugins/GeoURL/locale/ru/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/ru/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..960ecc47c7 --- /dev/null +++ b/plugins/GeoURL/locale/ru/LC_MESSAGES/GeoURL.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GeoURL to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Пинг <a href=\"http://geourl.org/\">GeoURL</a> при отправлении новых заметок " +"с геолокацией." diff --git a/plugins/GeoURL/locale/tl/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/tl/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..d130e9f074 --- /dev/null +++ b/plugins/GeoURL/locale/tl/LC_MESSAGES/GeoURL.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GeoURL to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Kalansingin ang <a href=\"http://geourl.org/\">GeoURL</a> kapag napaskil ang " +"mga bagong mga pabatid na pinainam ng heolokasyon." diff --git a/plugins/GeoURL/locale/uk/LC_MESSAGES/GeoURL.po b/plugins/GeoURL/locale/uk/LC_MESSAGES/GeoURL.po new file mode 100644 index 0000000000..fea20fd4c4 --- /dev/null +++ b/plugins/GeoURL/locale/uk/LC_MESSAGES/GeoURL.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GeoURL to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GeoURL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-geourl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GeoURLPlugin.php:124 +msgid "" +"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced " +"notices are posted." +msgstr "" +"Пінґувати <a href=\"http://geourl.org/\">GeoURL</a>, якщо нові повідомлення " +"позначаються іншим географічним розташуванням." diff --git a/plugins/GeonamesPlugin.php b/plugins/Geonames/GeonamesPlugin.php similarity index 98% rename from plugins/GeonamesPlugin.php rename to plugins/Geonames/GeonamesPlugin.php index 3815a31fa6..d88014bb80 100644 --- a/plugins/GeonamesPlugin.php +++ b/plugins/Geonames/GeonamesPlugin.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * * @seeAlso Location */ - class GeonamesPlugin extends Plugin { const LOCATION_NS = 1; @@ -71,7 +70,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue (results in $location) */ - function onLocationFromName($name, $language, &$location) { $loc = $this->getCache(array('name' => $name, @@ -129,7 +127,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue (results in $location) */ - function onLocationFromId($id, $ns, $language, &$location) { if ($ns != self::LOCATION_NS) { @@ -198,7 +195,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue (results in $location) */ - function onLocationFromLatLon($lat, $lon, $language, &$location) { // Make sure they're canonical @@ -276,7 +272,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue */ - function onLocationNameLanguage($location, $language, &$name) { if ($location->location_ns != self::LOCATION_NS) { @@ -344,7 +339,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue */ - function onLocationUrl($location, &$url) { if ($location->location_ns != self::LOCATION_NS) { @@ -368,7 +362,6 @@ class GeonamesPlugin extends Plugin * * @return boolean whether to continue */ - function onLocationRdfUrl($location, &$url) { if ($location->location_ns != self::LOCATION_NS) { @@ -384,7 +377,7 @@ class GeonamesPlugin extends Plugin function getCache($attrs) { - $c = common_memcache(); + $c = Cache::instance(); if (empty($c)) { return null; @@ -399,7 +392,7 @@ class GeonamesPlugin extends Plugin function setCache($attrs, $loc) { - $c = common_memcache(); + $c = Cache::instance(); if (empty($c)) { return null; @@ -416,11 +409,11 @@ class GeonamesPlugin extends Plugin { $key = 'geonames:' . implode(',', array_keys($attrs)) . ':'. - common_keyize(implode(',', array_values($attrs))); + Cache::keyize(implode(',', array_values($attrs))); if ($this->cachePrefix) { return $this->cachePrefix . ':' . $key; } else { - return common_cache_key($key); + return Cache::key($key); } } diff --git a/plugins/Geonames/locale/Geonames.pot b/plugins/Geonames/locale/Geonames.pot new file mode 100644 index 0000000000..4aff1dc5aa --- /dev/null +++ b/plugins/Geonames/locale/Geonames.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" diff --git a/plugins/Geonames/locale/br/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/br/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..2d6ba948cd --- /dev/null +++ b/plugins/Geonames/locale/br/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Implijout a ra ar servij <a href=\"http://geonames.org/\">Geonames</a> evit " +"tapout anvadurioù douaroniel lennus gant mab-den evit lec'hiadoù diazezet " +"war un daouad ledred/hedred pourchaset gant an implijer." diff --git a/plugins/Geonames/locale/ca/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/ca/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..6dd4acc0ea --- /dev/null +++ b/plugins/Geonames/locale/ca/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Fa servir el servei <a href=\"http://geonames.org/\">Geonames</a> per " +"obtenir noms comprensibles per a aquelles ubicacions basades en els parells " +"lat/long de l'usuari." diff --git a/plugins/Geonames/locale/de/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/de/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..347a80da78 --- /dev/null +++ b/plugins/Geonames/locale/de/LC_MESSAGES/Geonames.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Geonames to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Verwendet den <a href=\"http://geonames.org/\">GeoNames</a>-Dienst um Namen " +"für die vom Benutzer durch Koordinaten angegebenen Standorte zu erlangen." diff --git a/plugins/Geonames/locale/eo/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/eo/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..ff51b5f8a8 --- /dev/null +++ b/plugins/Geonames/locale/eo/LC_MESSAGES/Geonames.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Geonames to Esperanto (Esperanto) +# Expored from translatewiki.net +# +# Author: LyzTyphone +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Esperanto <http://translatewiki.net/wiki/Portal:eo>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: eo\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Uziĝas <a href=\"http://geonames.org/\">Geonames</a> servo por akiri " +"kompreneblan nomon de lokoj baze de latituda-longituda paro donita de uzanto." diff --git a/plugins/Geonames/locale/es/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/es/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..5181f6e2b3 --- /dev/null +++ b/plugins/Geonames/locale/es/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Usa el servicio <a href=\"http://geonames.org/\">Geonames</a>para obtener " +"nombresde ubicaciones legibles por humanos, basadas en pares longitud/" +"latitud provistos por el usuario." diff --git a/plugins/Geonames/locale/fr/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/fr/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..d428c55669 --- /dev/null +++ b/plugins/Geonames/locale/fr/LC_MESSAGES/Geonames.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Geonames to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Utilise le service <a href=\"http://geonames.org/\">Geonames</a> pour " +"obtenir des dénominations géographiques lisibles par l’homme pour les " +"emplacements basés sur des paires latitude/longitude fournies par " +"l’utilisateur." diff --git a/plugins/Geonames/locale/he/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/he/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..34019a8e7a --- /dev/null +++ b/plugins/Geonames/locale/he/LC_MESSAGES/Geonames.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Geonames to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"שימוש בשירות <a href=\"http://geonames.org/\">Geonames</a> לקבלת שמות " +"הקריאים לבני אדם למיקומים בהתאם לצמדי קווי הגובה/רוחב שסופקו על ידי המשתמשים." diff --git a/plugins/Geonames/locale/ia/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/ia/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..6826bc2453 --- /dev/null +++ b/plugins/Geonames/locale/ia/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Usa le servicio <a href=\"http://geonames.org/\">Geonames</a> pro obtener " +"nomines geographic ben legibile a base de coordinatas latitude/longitude " +"fornite per usatores." diff --git a/plugins/Geonames/locale/id/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/id/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..cefe37f359 --- /dev/null +++ b/plugins/Geonames/locale/id/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Menggunakan layanan <a href=\"http://geonames.org/\">Geonames</a> untuk " +"mendapatkan nama terbaca untuk lokasi berdasarkan lintang/bujur dari " +"pengguna." diff --git a/plugins/Geonames/locale/mk/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/mk/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..40894e88d3 --- /dev/null +++ b/plugins/Geonames/locale/mk/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Ја користи службата <a href=\"http://geonames.org/\">Geonames</a> за " +"добивање на имиња на места за приказ врз основа на парови од географска " +"ширина и должина внесени од корисниците." diff --git a/plugins/Geonames/locale/nb/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/nb/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..e975f42197 --- /dev/null +++ b/plugins/Geonames/locale/nb/LC_MESSAGES/Geonames.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Geonames to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Bruker tjenesten <a href=\"http://geonames.org/\">Geonames</a> for å få " +"lesbare navn for steder basert på brukergitte lengde- og breddegrader." diff --git a/plugins/Geonames/locale/nl/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/nl/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..848ea14bff --- /dev/null +++ b/plugins/Geonames/locale/nl/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:11:58+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"De dienst <a href=\"http://geonames.org/\">Geonames</a> gebruiken om " +"leesbare namen voor locaties te krijgen op basis van door gebruikers " +"opgegeven paren van lengte en breedte." diff --git a/plugins/Geonames/locale/pt/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/pt/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..cc0556d248 --- /dev/null +++ b/plugins/Geonames/locale/pt/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:01+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Usa o serviço <a href=\"http://geonames.org/\">Geonames</a> para apresentar " +"os nomes de locais com base em dados de latitude/longitude fornecidos pelo " +"utilizador." diff --git a/plugins/Geonames/locale/pt_BR/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/pt_BR/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..0b860d143a --- /dev/null +++ b/plugins/Geonames/locale/pt_BR/LC_MESSAGES/Geonames.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Geonames to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:02+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Utiliza o serviço <a href=\"http://geonames.org/\">Geonames</a> para obter " +"as denominações geográficas legíveis por humanos baseado nos dados de " +"latitude/longitude fornecidas pelo usuário." diff --git a/plugins/Geonames/locale/ru/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/ru/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..8a20396632 --- /dev/null +++ b/plugins/Geonames/locale/ru/LC_MESSAGES/Geonames.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Geonames to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Сrower +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Использование сервиса <a href=\"http://geonames.org/\">GeoNames</a> для " +"получения понятных для человека названий по указанным пользователем " +"географическим координатам." diff --git a/plugins/Geonames/locale/tl/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/tl/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..af334548ca --- /dev/null +++ b/plugins/Geonames/locale/tl/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Gumagamit ng serbisyong <a href=\"http://geonames.org/\">Geonames</a> upang " +"kumuha ng mga pangalan mababasa ng tao para sa mga lokasyon batay sa mga " +"pares ng lat/long na bigay ng tagagamit." diff --git a/plugins/Geonames/locale/uk/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/uk/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..3cf99b078c --- /dev/null +++ b/plugins/Geonames/locale/uk/LC_MESSAGES/Geonames.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - Geonames to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"Використання сервісу <a href=\"http://geonames.org/\">Geonames</a> дозволяє " +"отримувати зрозумілі географічні назви замість координат, що були вказані " +"користувачами." diff --git a/plugins/Geonames/locale/zh_CN/LC_MESSAGES/Geonames.po b/plugins/Geonames/locale/zh_CN/LC_MESSAGES/Geonames.po new file mode 100644 index 0000000000..05e2e6cbb2 --- /dev/null +++ b/plugins/Geonames/locale/zh_CN/LC_MESSAGES/Geonames.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Geonames to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Geonames\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:03+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-geonames\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GeonamesPlugin.php:491 +msgid "" +"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-" +"readable names for locations based on user-provided lat/long pairs." +msgstr "" +"使用 <a href=\"http://geonames.org/\">Geonames</a> 服务获取基于用户提供的经纬" +"度坐标的可读的名称。" diff --git a/plugins/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php similarity index 98% rename from plugins/GoogleAnalyticsPlugin.php rename to plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php index c646bf113b..bb937ec5b9 100644 --- a/plugins/GoogleAnalyticsPlugin.php +++ b/plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php @@ -47,7 +47,6 @@ if (!defined('STATUSNET')) { * * @see Event */ - class GoogleAnalyticsPlugin extends Plugin { var $code = null; @@ -79,7 +78,7 @@ class GoogleAnalyticsPlugin extends Plugin 'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics', 'rawdescription' => _m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'. - ' to track Web access.')); + ' to track web access.')); return true; } } diff --git a/plugins/GoogleAnalytics/locale/GoogleAnalytics.pot b/plugins/GoogleAnalytics/locale/GoogleAnalytics.pot new file mode 100644 index 0000000000..537634f3ef --- /dev/null +++ b/plugins/GoogleAnalytics/locale/GoogleAnalytics.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" diff --git a/plugins/GoogleAnalytics/locale/br/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/br/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..86dc3eb9ac --- /dev/null +++ b/plugins/GoogleAnalytics/locale/br/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Ober gant <a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"evit dispenn roudoù ar monedoù d'al lec'hien web." diff --git a/plugins/GoogleAnalytics/locale/de/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/de/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..3b7494d43e --- /dev/null +++ b/plugins/GoogleAnalytics/locale/de/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Benutzung von <a href=\"http://www.google.com/analytics/\">Google Analytics</" +"a> zur Verfolgung des Web-Zugangs." diff --git a/plugins/GoogleAnalytics/locale/es/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/es/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..deeaf3c7c4 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/es/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Utiliza <a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"para hacer seguimiento de accesos al sitio web." diff --git a/plugins/GoogleAnalytics/locale/fr/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/fr/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..7daa3557f0 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/fr/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Utiliser <a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"pour tracer les accès Web." diff --git a/plugins/GoogleAnalytics/locale/he/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/he/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..0a7d741f1f --- /dev/null +++ b/plugins/GoogleAnalytics/locale/he/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:04+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"שימוש ב־<a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"כדי לעקוב אחר גישה לאתרים." diff --git a/plugins/GoogleAnalytics/locale/ia/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/ia/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..2837e8a82c --- /dev/null +++ b/plugins/GoogleAnalytics/locale/ia/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Usar <a href=\"http://www.google.com/analytics/\">Google Analytics</a> pro " +"traciar le accessos web." diff --git a/plugins/GoogleAnalytics/locale/id/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/id/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..7038c1b072 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/id/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Gunakan <a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"untuk melacak akses web." diff --git a/plugins/GoogleAnalytics/locale/mk/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/mk/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..e97cab8520 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/mk/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Користи <a href=\"http://www.google.com/analytics/\">Google Analytics</a> за " +"следење на мрежен пристап." diff --git a/plugins/GoogleAnalytics/locale/nb/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/nb/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..4e51f52670 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/nb/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Bruk <a href=\"http://www.google.com/analytics/\">Google Analytics</a> til å " +"spore nettilgang." diff --git a/plugins/GoogleAnalytics/locale/nl/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/nl/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..a9d4f0f8f4 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/nl/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"<a href=\"http://www.google.com/analytics/\">Google Analytics</a> gebruiken " +"om webtoegang te volgen." diff --git a/plugins/GoogleAnalytics/locale/pt/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/pt/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..859f0da659 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/pt/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Usar o <a href=\"http://www.google.com/analytics/\">Google Analytics</a> " +"para rastrear o acesso à web." diff --git a/plugins/GoogleAnalytics/locale/pt_BR/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/pt_BR/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..80becd08d0 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/pt_BR/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GoogleAnalytics to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Usar <a href=\"http://www.google.com/analytics/\">Google Analytics</a> para " +"fazer rastreamento de acessos ao site." diff --git a/plugins/GoogleAnalytics/locale/ru/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/ru/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..4e709258db --- /dev/null +++ b/plugins/GoogleAnalytics/locale/ru/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GoogleAnalytics to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Сrower +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Использование <a href=\"http://www.google.com/analytics/\">Google Analytics</" +"a> для отслеживания за посещением веб-страницы." diff --git a/plugins/GoogleAnalytics/locale/tl/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/tl/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..593cd1abc4 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/tl/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - GoogleAnalytics to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Gamitin ang <a href=\"http://www.google.com/analytics/\">Analitiks ng " +"Google</a> upang tugaygayin ang pagpunta sa web." diff --git a/plugins/GoogleAnalytics/locale/uk/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/uk/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..1b0237ff3c --- /dev/null +++ b/plugins/GoogleAnalytics/locale/uk/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GoogleAnalytics to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"Використання <a href=\"http://www.google.com/analytics/\">Google Analytics</" +"a> для стеження за відвідуваністю веб-сторінки." diff --git a/plugins/GoogleAnalytics/locale/zh_CN/LC_MESSAGES/GoogleAnalytics.po b/plugins/GoogleAnalytics/locale/zh_CN/LC_MESSAGES/GoogleAnalytics.po new file mode 100644 index 0000000000..0aba344a07 --- /dev/null +++ b/plugins/GoogleAnalytics/locale/zh_CN/LC_MESSAGES/GoogleAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - GoogleAnalytics to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GoogleAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:05+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-googleanalytics\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GoogleAnalyticsPlugin.php:80 +msgid "" +"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to " +"track web access." +msgstr "" +"使用 <a href=\"http://www.google.com/analytics/\">Google Analytics</a> 跟踪记" +"录网站访问。" diff --git a/plugins/Gravatar/GravatarPlugin.php b/plugins/Gravatar/GravatarPlugin.php index 8a9721ea90..5fcc79fd51 100644 --- a/plugins/Gravatar/GravatarPlugin.php +++ b/plugins/Gravatar/GravatarPlugin.php @@ -34,17 +34,17 @@ class GravatarPlugin extends Plugin { return true; } - + function onStartAvatarFormData($action) { $user = common_current_user(); $hasGravatar = $this->hasGravatar($user->id); - + if($hasGravatar) { return false; } } - + function onEndAvatarFormData($action) { $user = common_current_user(); @@ -91,7 +91,7 @@ class GravatarPlugin extends Plugin _m('To use a Gravatar first enter in an email address.')); } } - + function onStartAvatarSaveForm($action) { if ($action->arg('add')) { @@ -131,19 +131,18 @@ class GravatarPlugin extends Plugin } return false; } - function gravatar_save() { $cur = common_current_user(); - + if(empty($cur->email)) { - return array('message' => _m('You do not have a email set in your profile.'), + return array('message' => _m('You do not have an email address set in your profile.'), 'success' => false); } //Get rid of previous Avatar $this->gravatar_remove(); - + foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) { $gravatar = new Avatar(); $gravatar->profile_id = $cur->id; @@ -156,7 +155,7 @@ class GravatarPlugin extends Plugin $gravatar->created = DB_DataObject_Cast::dateTime(); # current time if (!$gravatar->insert()) { - return array('message' => _m('Failed to save Gravatar to the DB.'), + return array('message' => _m('Failed to save Gravatar to the database.'), 'success' => false); } } @@ -181,10 +180,10 @@ class GravatarPlugin extends Plugin return array('message' => _m('Gravatar removed.'), 'success' => true); } - + function gravatar_url($email, $size) { - $url = "http://www.gravatar.com/avatar.php?gravatar_id=". + $url = "https://secure.gravatar.com/avatar.php?gravatar_id=". md5(strtolower($email)). "&default=".urlencode(Avatar::defaultImage($size)). "&size=".$size; @@ -202,4 +201,4 @@ class GravatarPlugin extends Plugin return true; } -} \ No newline at end of file +} diff --git a/plugins/Gravatar/README b/plugins/Gravatar/README index 9337e24a0a..2639048089 100644 --- a/plugins/Gravatar/README +++ b/plugins/Gravatar/README @@ -10,4 +10,4 @@ addPlugin('Gravatar', array()); ToDo: Site default all on for gravatar by default Migration Script -Localize \ No newline at end of file +Localize diff --git a/plugins/Gravatar/locale/Gravatar.pot b/plugins/Gravatar/locale/Gravatar.pot index d3a4cd86b8..c08a1d15cd 100644 --- a/plugins/Gravatar/locale/Gravatar.pot +++ b/plugins/Gravatar/locale/Gravatar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,51 +16,51 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: GravatarPlugin.php:57 +#: GravatarPlugin.php:60 msgid "Set Gravatar" msgstr "" -#: GravatarPlugin.php:60 +#: GravatarPlugin.php:63 msgid "If you want to use your Gravatar image, click \"Add\"." msgstr "" -#: GravatarPlugin.php:65 +#: GravatarPlugin.php:68 msgid "Add" msgstr "" -#: GravatarPlugin.php:75 +#: GravatarPlugin.php:78 msgid "Remove Gravatar" msgstr "" -#: GravatarPlugin.php:78 +#: GravatarPlugin.php:81 msgid "If you want to remove your Gravatar image, click \"Remove\"." msgstr "" -#: GravatarPlugin.php:83 +#: GravatarPlugin.php:86 msgid "Remove" msgstr "" -#: GravatarPlugin.php:88 +#: GravatarPlugin.php:91 msgid "To use a Gravatar first enter in an email address." msgstr "" -#: GravatarPlugin.php:137 -msgid "You do not have a email set in your profile." +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." msgstr "" -#: GravatarPlugin.php:155 -msgid "Failed to save Gravatar to the DB." +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." msgstr "" -#: GravatarPlugin.php:159 +#: GravatarPlugin.php:162 msgid "Gravatar added." msgstr "" -#: GravatarPlugin.php:177 +#: GravatarPlugin.php:180 msgid "Gravatar removed." msgstr "" -#: GravatarPlugin.php:196 +#: GravatarPlugin.php:200 msgid "" "The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." "com/\">Gravatar</a> with StatusNet." diff --git a/plugins/Gravatar/locale/de/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/de/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..d172d1c0e1 --- /dev/null +++ b/plugins/Gravatar/locale/de/LC_MESSAGES/Gravatar.po @@ -0,0 +1,75 @@ +# Translation of StatusNet - Gravatar to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Gravatar einstellen" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Falls du dein Gravatar-Bild verwenden willst, klicke auf „Hinzufügen“." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Hinzufügen" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Gravatar löschen" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "Falls du dein Gravatar-Bild entfernen willst, klicke auf „Entfernen“." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Entfernen" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Um einen Gravatar zu verwenden, gib zunächst eine E-Mail-Adresse ein." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Du hast keine E-Mail-Adresse in deinem Profil eingetragen." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Konnte Gravatar nicht in der Datenbank speichern." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar hinzugefügt." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar entfernt." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Das Gravatar-Plugin erlaubt es Benutzern, ihr <a href=\"http://www.gravatar." +"com/\">Gravatar</a> mit StatusNet zu verwenden." diff --git a/plugins/Gravatar/locale/es/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/es/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..c5e044fa4e --- /dev/null +++ b/plugins/Gravatar/locale/es/LC_MESSAGES/Gravatar.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - Gravatar to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Definir un Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Si deseas utilizar tu imagen Gravatar, haz clic en \"Agregar\"" + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Añadir" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Eliminar el Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "Si desesa eliminar tu imagen de Gravatar, haz clic en \"Eliminar\"." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Borrar" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "" +"Para utilizar un Gravatar, primero introduce una dirección de correo " +"electrónico." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "" +"No tienes una dirección de correo electrónico establecida en tu perfil." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Error al guardar Gravatar en la base de datos." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar agregado." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar eliminado." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"La extensión Gravatar permite a los usuarios utilizar su <a href=\"http://" +"www.gravatar.com/\">Gravatar</a> con StatusNet." diff --git a/plugins/Gravatar/locale/fr/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/fr/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..6effb857d6 --- /dev/null +++ b/plugins/Gravatar/locale/fr/LC_MESSAGES/Gravatar.po @@ -0,0 +1,77 @@ +# Translation of StatusNet - Gravatar to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Définir un Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "" +"Si vous souhaitez utiliser votre image Gravatar, cliquez sur « Ajouter »." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Ajouter" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Supprimer le Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "" +"Si vous souhaitez supprimer votre image Gravatar, cliquez sur « Supprimer »." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Enlever" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "" +"Pour utiliser un Gravatar, veuillez d’abord saisir une adresse courriel." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Vous n'avez pas d’adresse courriel définie dans votre profil." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Impossible de sauvegarder le Gravatar dans la base de données." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar ajouté." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar supprimé." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Le greffon Gravatar permet aux utilisateurs d’utiliser leur image <a href=" +"\"http://www.gravatar.com/\">Gravatar</a> avec StatusNet." diff --git a/plugins/Gravatar/locale/ia/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/ia/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..4c1fd062ae --- /dev/null +++ b/plugins/Gravatar/locale/ia/LC_MESSAGES/Gravatar.po @@ -0,0 +1,74 @@ +# Translation of StatusNet - Gravatar to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Stabilir Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Si tu vole usar tu imagine Gravatar, clicca \"Adder\"." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Adder" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Remover Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "Si tu vole remover tu imagine Gravatar, clicca \"Remover\"." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Remover" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Pro usar un Gravatar, entra primo un adresse de e-mail." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Tu non ha un adresse de e-mail definite in tu profilo." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Falleva de salveguardar le Gravatar in le base de datos." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar addite." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar removite." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Le plug-in Gravatar permitte al usatores de usar lor <a href=\"http://www." +"gravatar.com/\">Gravatar</a> con StatusNet." diff --git a/plugins/Gravatar/locale/mk/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/mk/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..1dfff8d459 --- /dev/null +++ b/plugins/Gravatar/locale/mk/LC_MESSAGES/Gravatar.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - Gravatar to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Постави Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "" +"Ако сакате да ја користите Вашата слика од Gravatar, кликнете на „Додај“." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Додај" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Отстрани Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "" +"Ако сакате да ја отстраните Вашата слика од Gravatar, кликнете на „Отстрани“." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Отстрани" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "За да користите Gravatar најпрвин внесете е-пошта." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Во профилот немате назначено е-пошта." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Не успеав да го зачувам Gravatar-от во базата на податоци." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar-от е додаден." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar-от е отстранет." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Приклучокот Gravatar им овозможува на корисниците да го користат својот <a " +"href=\"http://www.gravatar.com/\">Gravatar</a> со StatusNet." diff --git a/plugins/Gravatar/locale/nl/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/nl/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..d730956aa4 --- /dev/null +++ b/plugins/Gravatar/locale/nl/LC_MESSAGES/Gravatar.po @@ -0,0 +1,75 @@ +# Translation of StatusNet - Gravatar to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Gravatar instellen" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Klik \"Toevoegen\" om uw afbeelding van Gravatar te gebruiken." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Toevoegen" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Gravatar verwijderen" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "" +"Klik \"Verwijderen\" om uw afbeelding van Gravatar niet langer te gebruiken." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Verwijderen" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Voer eerst een e-mailadres in om Gravatar te kunnen gebruiken." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "U hebt geen e-mailadres ingesteld in uw profiel." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Het was niet mogelijk de Gravatar in the database op te slaan." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "De Gravatar is toegevoegd." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "De Gravatar is verwijderd." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"De plug-in Gravatar maak het mogelijk dat gebruikers hun <a href=\"http://" +"www.gravatar.com/\">Gravatar</a> gebruiken in StatusNet." diff --git a/plugins/Gravatar/locale/pl/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/pl/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..98c45b758d --- /dev/null +++ b/plugins/Gravatar/locale/pl/LC_MESSAGES/Gravatar.po @@ -0,0 +1,75 @@ +# Translation of StatusNet - Gravatar to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Ustaw Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Aby używać obrazu Gravatar, należy nacisnąć przycisk \"Dodaj\"." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Dodaj" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Usuń Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "Aby usunąć obraz Gravatar, należy nacisnąć przycisk \"Usuń\"." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Usuń" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Aby użyć obrazu Gravatar, należy najpierw podać adres e-mail." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Nie ustawiono adresu e-mail w profilu." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Zapisanie obrazu Gravatar w bzie danych nie powiodło się." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Dodano obraz Gravatar." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Usunięto obraz Gravatar." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Wtyczka Gravatar umożliwia użytkownikom używanie obrazów <a href=\"http://" +"www.gravatar.com/\">Gravatar</a> w StatusNet." diff --git a/plugins/Gravatar/locale/pt/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/pt/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..5835dd2afa --- /dev/null +++ b/plugins/Gravatar/locale/pt/LC_MESSAGES/Gravatar.po @@ -0,0 +1,74 @@ +# Translation of StatusNet - Gravatar to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Definir Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Se desejar usar a sua imagem Gravatar, clique em \"Adicionar\"." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Adicionar" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Remover Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "Se desejar remover a sua imagem Gravatar, clique em \"Remover\"." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Remover" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Para usar um Gravatar, primeiro introduza um endereço de email." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Não definiu um endereço de email no seu perfil." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Erro ao guardar o Gravatar na base de dados." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar adicionado." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar removido." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"O plugin Gravatar permite que os utilizadores usem o seu <a href=\"http://" +"www.gravatar.com/\">Gravatar</a> com o StatusNet." diff --git a/plugins/Gravatar/locale/tl/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/tl/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..41820e5f7c --- /dev/null +++ b/plugins/Gravatar/locale/tl/LC_MESSAGES/Gravatar.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - Gravatar to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Itakda ang Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "" +"Kung nais mong gamitin ang iyong larawan ng Gravatar, pindutin ang \"Idagdag" +"\"." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Idagdag" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Alisin ang Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "" +"Kung nais mong alisin ang larawan mo ng Gravatar, pindutin ang \"Alisin\"." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Alisin" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "" +"Upang gamitin ang isang Gravatar ipasok muna ang isang tirahan ng e-liham." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "Wala kang tirahan ng e-liham na nakatakda sa iyong balangkas." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Nabigong sagipin ang Gravatar sa iyong kalipunan ng dato." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Idinagdag ang Gravatar." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Inalis ang Gravatar." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Ang pamasak na Gravatar ay nagpapahintulot sa mga tagagamit na gamitin ang " +"kanilang <a href=\"http://www.gravatar.com/\">Gravatar</a> na may StatusNet." diff --git a/plugins/Gravatar/locale/uk/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/uk/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..173cf9b579 --- /dev/null +++ b/plugins/Gravatar/locale/uk/LC_MESSAGES/Gravatar.po @@ -0,0 +1,76 @@ +# Translation of StatusNet - Gravatar to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "Встановити Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "Якщо ви бажаєте використовувати аватари Gravatar, тисніть «Додати»." + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "Додати" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "Видалити Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "" +"Якщо ви бажаєте видалити свою аватару надану Gravatar, тисніть «Видалити»." + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "Видалити" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "Щоб використовувати Gravatar, спершу введіть адресу електронної пошти." + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "У вашому профілі не вказано жодної електронної адреси." + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "Не вдалося зберегти Gravatar до бази даних." + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar додано." + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar вилучено." + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Додаток Gravatar дозволяє користувачам встановлювати аватарки з <a href=" +"\"http://www.gravatar.com/\">Gravatar</a> для сайту StatusNet." diff --git a/plugins/Gravatar/locale/zh_CN/LC_MESSAGES/Gravatar.po b/plugins/Gravatar/locale/zh_CN/LC_MESSAGES/Gravatar.po new file mode 100644 index 0000000000..9a4fada7db --- /dev/null +++ b/plugins/Gravatar/locale/zh_CN/LC_MESSAGES/Gravatar.po @@ -0,0 +1,75 @@ +# Translation of StatusNet - Gravatar to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Gravatar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:06+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-gravatar\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: GravatarPlugin.php:60 +msgid "Set Gravatar" +msgstr "设置 Gravatar" + +#: GravatarPlugin.php:63 +msgid "If you want to use your Gravatar image, click \"Add\"." +msgstr "如果你想使用你的 Gravatar 图像,点击“添加”" + +#: GravatarPlugin.php:68 +msgid "Add" +msgstr "添加" + +#: GravatarPlugin.php:78 +msgid "Remove Gravatar" +msgstr "删除 Gravatar" + +#: GravatarPlugin.php:81 +msgid "If you want to remove your Gravatar image, click \"Remove\"." +msgstr "如果你想删除你的 Gravatar 图像,点击“删除”。" + +#: GravatarPlugin.php:86 +msgid "Remove" +msgstr "删除" + +#: GravatarPlugin.php:91 +msgid "To use a Gravatar first enter in an email address." +msgstr "要使用 Gravatar 先要填写一个 email 地址。" + +#: GravatarPlugin.php:140 +msgid "You do not have an email address set in your profile." +msgstr "你的账号没有设置 email 地址。" + +#: GravatarPlugin.php:158 +msgid "Failed to save Gravatar to the database." +msgstr "将 Gravatar 保存到数据库失败。" + +#: GravatarPlugin.php:162 +msgid "Gravatar added." +msgstr "Gravatar 已添加。" + +#: GravatarPlugin.php:180 +msgid "Gravatar removed." +msgstr "Gravatar 已删除。" + +#: GravatarPlugin.php:200 +msgid "" +"The Gravatar plugin allows users to use their <a href=\"http://www.gravatar." +"com/\">Gravatar</a> with StatusNet." +msgstr "" +"Gravatar 插件可以让用户在 StatusNet 站点使用自己的 <a href=\"http://www." +"gravatar.com/\">Gravatar</a>。" diff --git a/plugins/GroupFavorited/GroupFavoritedPlugin.php b/plugins/GroupFavorited/GroupFavoritedPlugin.php new file mode 100644 index 0000000000..27ce289c2e --- /dev/null +++ b/plugins/GroupFavorited/GroupFavoritedPlugin.php @@ -0,0 +1,103 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package GroupFavoritedPlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { exit(1); } + +class GroupFavoritedPlugin extends Plugin +{ + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m path-to-action mapper + * @return boolean hook return + */ + function onRouterInitialized($m) + { + $m->connect('group/:nickname/favorited', + array('action' => 'groupfavorited'), + array('nickname' => '[a-zA-Z0-9]+')); + + return true; + } + + /** + * Automatically load the actions and libraries used by the plugin + * + * @param Class $cls the class + * + * @return boolean hook return + * + */ + function onAutoload($cls) + { + $base = dirname(__FILE__); + $lower = strtolower($cls); + switch ($lower) { + case 'groupfavoritedaction': + require_once "$base/$lower.php"; + return false; + default: + return true; + } + } + + function onEndGroupGroupNav(GroupNav $nav) + { + $action_name = $nav->action->trimmed('action'); + $nickname = $nav->group->nickname; + $nav->out->menuItem(common_local_url('groupfavorited', array('nickname' => + $nickname)), + // TRANS: Menu item in the group navigation page. + _m('MENU', 'Popular'), + // TRANS: Tooltip for menu item in the group navigation page. + // TRANS: %s is the nickname of the group. + sprintf(_m('TOOLTIP','Popular notices in %s group'), $nickname), + $action_name == 'groupfavorited', + 'nav_group_group'); + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:GroupFavorited'; + + $versions[] = array('name' => 'GroupFavorited', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('This plugin adds a menu item for popular notices in groups.')); + + return true; + } +} diff --git a/plugins/GroupFavorited/groupfavoritedaction.php b/plugins/GroupFavorited/groupfavoritedaction.php new file mode 100644 index 0000000000..dcbf7d0bc5 --- /dev/null +++ b/plugins/GroupFavorited/groupfavoritedaction.php @@ -0,0 +1,105 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * List of popular notices + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Public + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @author Evan Prodromou <evan@status.net> + * @copyright 2008-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); +} + +class GroupFavoritedAction extends ShowgroupAction +{ + /** + * Title of the page + * + * @return string page title, with page number + */ + function title() + { + $base = $this->group->getFancyName(); + + if ($this->page == 1) { + // TRANS: %s is a group name. + return sprintf(_m('Popular posts in %s group'), $base); + } else { + // TRANS: %1$s is a group name, %2$s is a group number. + return sprintf(_m('Popular posts in %1$s group, page %2$d'), + $base, + $this->page); + } + } + + /** + * Content area + * + * Shows the list of popular notices + * + * @return void + */ + function showContent() + { + $groupId = intval($this->group->id); + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); + $cutoff = sprintf("fave.modified > '%s'", + common_sql_date(time() - common_config('popular', 'cutoff'))); + + $qry = 'SELECT notice.*, '. + $weightexpr . ' as weight ' . + 'FROM notice ' . + "JOIN group_inbox ON notice.id = group_inbox.notice_id " . + 'JOIN fave ON notice.id = fave.notice_id ' . + "WHERE $cutoff AND group_id = $groupId " . + 'GROUP BY id,profile_id,uri,content,rendered,url,created,notice.modified,reply_to,is_local,source,notice.conversation ' . + 'ORDER BY weight DESC'; + + $offset = ($this->page - 1) * NOTICES_PER_PAGE; + $limit = NOTICES_PER_PAGE + 1; + + if (common_config('db', 'type') == 'pgsql') { + $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; + } else { + $qry .= ' LIMIT ' . $offset . ', ' . $limit; + } + + $notice = Memcached_DataObject::cachedQuery('Notice', + $qry, + 600); + + $nl = new NoticeList($notice, $this); + + $cnt = $nl->show(); + + if ($cnt == 0) { + //$this->showEmptyList(); + } + + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, + $this->page, 'groupfavorited', + array('nickname' => $this->group->nickname)); + } +} diff --git a/plugins/GroupFavorited/locale/GroupFavorited.pot b/plugins/GroupFavorited/locale/GroupFavorited.pot new file mode 100644 index 0000000000..d8d5f3d484 --- /dev/null +++ b/plugins/GroupFavorited/locale/GroupFavorited.pot @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" diff --git a/plugins/GroupFavorited/locale/br/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/br/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..84c0fb8566 --- /dev/null +++ b/plugins/GroupFavorited/locale/br/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - GroupFavorited to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Poblek" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Kemennadennoù poblek er strollad %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" diff --git a/plugins/GroupFavorited/locale/de/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/de/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..3c82751d14 --- /dev/null +++ b/plugins/GroupFavorited/locale/de/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,56 @@ +# Translation of StatusNet - GroupFavorited to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Michael +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Beliebte Beiträge in der %s-Gruppe" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Beliebte Beiträge in der %1$s-Gruppe, Seite %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Beliebt" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Beliebte Nachrichten in der %s-Gruppe" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Dieses Plugin fügt einen Menüeintrag mit den beliebtesten Nachrichten einer " +"Gruppen ein." diff --git a/plugins/GroupFavorited/locale/es/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/es/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..85478bb6e4 --- /dev/null +++ b/plugins/GroupFavorited/locale/es/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - GroupFavorited to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Mensajes populares en el grupo %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Mensajes populares en el grupo %1$s, página %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Popular" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Mensajes populares en el grupo %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Esta extensión añade un elemento de menú para los mensajes populares en " +"grupos." diff --git a/plugins/GroupFavorited/locale/fr/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/fr/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..754465ff9a --- /dev/null +++ b/plugins/GroupFavorited/locale/fr/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - GroupFavorited to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Messages populaires dans le groupe %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Messages populaires dans le groupe %1$s, page %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Populaires" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Avis populaires dans le groupe %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Cette extension ajoute un élément de menu pour les messages populaires dans " +"les groupes." diff --git a/plugins/GroupFavorited/locale/gl/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/gl/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..1dd12d7343 --- /dev/null +++ b/plugins/GroupFavorited/locale/gl/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - GroupFavorited to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Populares" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" diff --git a/plugins/GroupFavorited/locale/ia/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/ia/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..e830923b87 --- /dev/null +++ b/plugins/GroupFavorited/locale/ia/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - GroupFavorited to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Messages popular in gruppo %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Messages popular in gruppo %1$s, pagina %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Popular" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Notas popular in gruppo %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "Iste plug-in adde un option de menu pro notas popular in gruppos." diff --git a/plugins/GroupFavorited/locale/mk/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/mk/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..d53c6acb27 --- /dev/null +++ b/plugins/GroupFavorited/locale/mk/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - GroupFavorited to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Популарни објави во групата %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Популарни објави во групата %1$s, страница %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Популарни" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Популарни забелешки во групата %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Овој приклучок додава елемент во менито за популарни забелешки во групи." diff --git a/plugins/GroupFavorited/locale/nl/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/nl/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..f9c5c285a1 --- /dev/null +++ b/plugins/GroupFavorited/locale/nl/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - GroupFavorited to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: SPQRobin +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Populaire berichten in de groep %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Populaire berichten in de groep %1$s, pagina %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Populair" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Populaire mededelingen in de groep %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Deze plug-in voegt een menukeuze toe voor populaire mededelingen in groepen." diff --git a/plugins/GroupFavorited/locale/ru/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/ru/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..a018a255fd --- /dev/null +++ b/plugins/GroupFavorited/locale/ru/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - GroupFavorited to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Популярные сообщения в группе %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Популярное" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" diff --git a/plugins/GroupFavorited/locale/te/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/te/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..181e5fa518 --- /dev/null +++ b/plugins/GroupFavorited/locale/te/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - GroupFavorited to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "%s గుంపులో జనరంజకమైన టపాలు" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "%1$s గుంపులో జనరంజకమైన టపాలు, %2$dవ పుట" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "ప్రాచుర్యం" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "%s గుంపులో జనరంజకమైన టపాలు" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" diff --git a/plugins/GroupFavorited/locale/tl/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/tl/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..8ba22c6ab1 --- /dev/null +++ b/plugins/GroupFavorited/locale/tl/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - GroupFavorited to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Tanyag na mga pagpapaskila sa loob ng pangkat na %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Tanyag na mga pagpapaskila sa loob ng pangkat na %1$s, pahina %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Tanyag" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Bantog na mga pabatid sa loob ng pangkat na %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "" +"Ang pampasak na ito ay nagdaragdag ng isang bagay ng menu para sa mga bantog " +"na pabatid sa loob ng mga pangkat." diff --git a/plugins/GroupFavorited/locale/uk/LC_MESSAGES/GroupFavorited.po b/plugins/GroupFavorited/locale/uk/LC_MESSAGES/GroupFavorited.po new file mode 100644 index 0000000000..1be19f154b --- /dev/null +++ b/plugins/GroupFavorited/locale/uk/LC_MESSAGES/GroupFavorited.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - GroupFavorited to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - GroupFavorited\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:07+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-groupfavorited\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: %s is a group name. +#: groupfavoritedaction.php:48 +#, php-format +msgid "Popular posts in %s group" +msgstr "Популярні повідомлення спільноти %s" + +#. TRANS: %1$s is a group name, %2$s is a group number. +#: groupfavoritedaction.php:51 +#, php-format +msgid "Popular posts in %1$s group, page %2$d" +msgstr "Популярні повідомлення спільноти %1$s, сторінка %2$d" + +#. TRANS: Menu item in the group navigation page. +#: GroupFavoritedPlugin.php:72 +msgctxt "MENU" +msgid "Popular" +msgstr "Популярні" + +#. TRANS: Tooltip for menu item in the group navigation page. +#. TRANS: %s is the nickname of the group. +#: GroupFavoritedPlugin.php:75 +#, php-format +msgctxt "TOOLTIP" +msgid "Popular notices in %s group" +msgstr "Популярні дописи спільноти %s" + +#. TRANS: Plugin description. +#: GroupFavoritedPlugin.php:99 +msgid "This plugin adds a menu item for popular notices in groups." +msgstr "Цей додаток долучає до меню пункт для популярних дописів у спільноті." diff --git a/plugins/Imap/ImapPlugin.php b/plugins/Imap/ImapPlugin.php index 66be799d3e..8d8dbf223f 100644 --- a/plugins/Imap/ImapPlugin.php +++ b/plugins/Imap/ImapPlugin.php @@ -51,16 +51,16 @@ class ImapPlugin extends Plugin function initialize(){ if(!isset($this->mailbox)){ - throw new Exception("must specify a mailbox"); + throw new Exception(_m("A mailbox must be specified.")); } if(!isset($this->user)){ - throw new Exception("must specify a user"); + throw new Exception(_m("A user must be specified.")); } if(!isset($this->password)){ - throw new Exception("must specify a password"); + throw new Exception(_m("A password must be specified.")); } if(!isset($this->poll_frequency)){ - throw new Exception("must specify a poll_frequency"); + throw new Exception(_m("A poll_frequency must be specified.")); } return true; diff --git a/plugins/Imap/imapmailhandler.php b/plugins/Imap/imapmailhandler.php index 3d4b6113a9..92abf64747 100644 --- a/plugins/Imap/imapmailhandler.php +++ b/plugins/Imap/imapmailhandler.php @@ -17,7 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} class IMAPMailHandler extends MailHandler { diff --git a/plugins/Imap/imapmanager.php b/plugins/Imap/imapmanager.php index cfc08c1ee1..2d27ac97a8 100644 --- a/plugins/Imap/imapmanager.php +++ b/plugins/Imap/imapmanager.php @@ -29,6 +29,10 @@ * @link http://status.net/ */ +if (!defined('STATUSNET')) { + exit(1); +} + class ImapManager extends IoManager { protected $conn = null; @@ -44,7 +48,7 @@ class ImapManager extends IoManager */ public static function get() { - throw new Exception('ImapManager should be created using it\'s constructor, not the static get method'); + throw new Exception(_m('ImapManager should be created using its constructor, not the using the static get method.')); } /** @@ -94,12 +98,12 @@ class ImapManager extends IoManager { return $this->check_mailbox() > 0; } - + function pollInterval() { return $this->plugin->poll_frequency; } - + protected function connect() { $this->conn = imap_open($this->plugin->mailbox, $this->plugin->user, $this->plugin->password); diff --git a/plugins/Imap/locale/Imap.pot b/plugins/Imap/locale/Imap.pot index ee8452aaaf..84e3d7b9c3 100644 --- a/plugins/Imap/locale/Imap.pot +++ b/plugins/Imap/locale/Imap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,11 +16,33 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: imapmailhandler.php:28 +#: imapmailhandler.php:30 msgid "Error" msgstr "" -#: ImapPlugin.php:101 +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "" + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "" + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "" + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "" + +#: ImapPlugin.php:103 msgid "" "The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " "incoming mail containing user posts." diff --git a/plugins/Imap/locale/br/LC_MESSAGES/Imap.po b/plugins/Imap/locale/br/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..463ec484a5 --- /dev/null +++ b/plugins/Imap/locale/br/LC_MESSAGES/Imap.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - Imap to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Fazi" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Ur boest lizhiri a rank bezañ spisaet." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Un anv-implijer a rank bezañ spisaet." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Ur ger-tremen a rank bezañ spisaet." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "" + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" diff --git a/plugins/Imap/locale/fr/LC_MESSAGES/Imap.po b/plugins/Imap/locale/fr/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..7cc589e378 --- /dev/null +++ b/plugins/Imap/locale/fr/LC_MESSAGES/Imap.po @@ -0,0 +1,59 @@ +# Translation of StatusNet - Imap to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Erreur" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager devrait être instancié en utilisant son constructeur et non pas " +"en utilisant la méthode statique « get »." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Une boîte aux lettres doit être spécifiée." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Un nom d’utilisateur doit être spécifié." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Un mot de passe doit être spécifié." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Une fréquence d’interrogation doit être spécifiée." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"L’extension IMAP permet à StatusNet de rechercher dans une boîte " +"électronique POP ou IMAP les messages contenant des avis des utilisateurs." diff --git a/plugins/Imap/locale/ia/LC_MESSAGES/Imap.po b/plugins/Imap/locale/ia/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..0ea7b821b4 --- /dev/null +++ b/plugins/Imap/locale/ia/LC_MESSAGES/Imap.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Imap to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Error" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager debe esser create per medio de su constructor, non con le " +"methodo \"get\" static." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Un cassa postal debe esser specificate." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Un usator debe esser specificate." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Un contrasigno debe esser specificate." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Un poll_frequency debe esser specificate." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Le plug-in IMAP permitte que StatusNet verifica si cassas postal POP o IMAP " +"ha recipite e-mail continente messages de usatores." diff --git a/plugins/Imap/locale/mk/LC_MESSAGES/Imap.po b/plugins/Imap/locale/mk/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..615aba212e --- /dev/null +++ b/plugins/Imap/locale/mk/LC_MESSAGES/Imap.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Imap to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Грешка" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager треба да се создаде користејќи го неговиот конструктор, а не " +"преку статичниот метод на негово добивање." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Мора да назначите сандаче." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Мора да назначите корисник." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Мора да назначите лозинка." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Мора да назначите poll_frequency." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Приклучокот IMAP му овозможува на StatusNet да проверува дојдовни пораки со " +"објави од корисници во POP или IMAP сандачиња ." diff --git a/plugins/Imap/locale/nb/LC_MESSAGES/Imap.po b/plugins/Imap/locale/nb/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..869eb8544b --- /dev/null +++ b/plugins/Imap/locale/nb/LC_MESSAGES/Imap.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Imap to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Feil" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager bør opprettes ved å bruke dets konstruktør, ikke ved å bruke " +"dets statiske get-metode." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "En postkasse må spesifiseres." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "En bruker må spesifiseres." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Et passord må spesifiseres." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "En poll_frequency må spesifiseres." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Utvidelsen IMAP gjør det mulig for StatusNet å sjekke en POP- eller IMAP-" +"postkasse for innkommende e-post som innholder brukerinnlegg." diff --git a/plugins/Imap/locale/nl/LC_MESSAGES/Imap.po b/plugins/Imap/locale/nl/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..e77ca9530a --- /dev/null +++ b/plugins/Imap/locale/nl/LC_MESSAGES/Imap.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Imap to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Fout" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager moet aangemaakt worden via de constructor en niet met de " +"statische methode get." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Er moet een postbus opgegeven worden." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Er moet een gebruiker opgegeven worden." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Er moet een wachtwoord opgegeven worden." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Er moet een poll_frequency opgegeven worden." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"De plug-in IMAP maakt het mogelijk om StatusNet een POP- of IMAP-postbus te " +"laten controleren op inkomende e-mail die berichten van gebruikers bevat." diff --git a/plugins/Imap/locale/ru/LC_MESSAGES/Imap.po b/plugins/Imap/locale/ru/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..6f19105fc5 --- /dev/null +++ b/plugins/Imap/locale/ru/LC_MESSAGES/Imap.po @@ -0,0 +1,60 @@ +# Translation of StatusNet - Imap to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: Сrower +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Ошибка" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager должен быть создан с помощью конструктора, а не получен " +"статическим методом." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Должен быть указан почтовый ящик." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Должен быть указан пользователь." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Должен быть указан пароль." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Периодичность проверки должна быть задана в poll_frequency." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Плагин IMAP позволяет StatusNet проверять почтовый ящик по протоколу POP или " +"IMAP на предмет наличия во входящей почте сообщений от пользователей." diff --git a/plugins/Imap/locale/tl/LC_MESSAGES/Imap.po b/plugins/Imap/locale/tl/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..3a309495c3 --- /dev/null +++ b/plugins/Imap/locale/tl/LC_MESSAGES/Imap.po @@ -0,0 +1,59 @@ +# Translation of StatusNet - Imap to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Kamalian" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"Dapat na likhain ang ImapManager sa pamamagitan ng pambuo nito, hindi sa " +"paggamit ng paraang hindi gumagalaw ang pagkuha." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Dapat tukuyin ang isang kahon ng liham." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Dapat tukuyin ang isang tagagamit." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Dapat tukuyin ang isang hudyat." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Dapat tukuyin ang isang kadalasan ng botohan." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Ang pamasak na IMAP ay nagpapahintulot na masuri ng StatusNet ang isang " +"kahon ng liham ng POP o IMAP para sa papasok na liham na naglalaman ng mga " +"pagpapaskil ng tagagamit." diff --git a/plugins/Imap/locale/uk/LC_MESSAGES/Imap.po b/plugins/Imap/locale/uk/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..a12b8790e5 --- /dev/null +++ b/plugins/Imap/locale/uk/LC_MESSAGES/Imap.po @@ -0,0 +1,59 @@ +# Translation of StatusNet - Imap to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "Помилка" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "" +"ImapManager має бути створений за допомогою конструктору, не статичним " +"методом." + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "Поштову скриньку має бути зазначено." + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "Користувача має бути зазначено." + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "Пароль має бути зазначено." + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "Періодичність перевірки має бути зазначено." + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" +"Додаток IMAP дозволяє перевіряти поштові скриньки за протоколами POP та IMAP " +"на предмет наявності у вхідній пошті повідомлень від користувачів." diff --git a/plugins/Imap/locale/zh_CN/LC_MESSAGES/Imap.po b/plugins/Imap/locale/zh_CN/LC_MESSAGES/Imap.po new file mode 100644 index 0000000000..f4843c0ac6 --- /dev/null +++ b/plugins/Imap/locale/zh_CN/LC_MESSAGES/Imap.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - Imap to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Imap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:08+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:42:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-imap\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: imapmailhandler.php:30 +msgid "Error" +msgstr "错误" + +#: imapmanager.php:51 +msgid "" +"ImapManager should be created using its constructor, not the using the " +"static get method." +msgstr "ImapManager 应该使用它的生成器来创建,而不是使用固定的 get 方法。" + +#: ImapPlugin.php:54 +msgid "A mailbox must be specified." +msgstr "必须指定一个邮箱。" + +#: ImapPlugin.php:57 +msgid "A user must be specified." +msgstr "必须设定一个用户。" + +#: ImapPlugin.php:60 +msgid "A password must be specified." +msgstr "必须设定一个密码。" + +#: ImapPlugin.php:63 +msgid "A poll_frequency must be specified." +msgstr "必须设定一个抓取频率。" + +#: ImapPlugin.php:103 +msgid "" +"The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for " +"incoming mail containing user posts." +msgstr "" diff --git a/plugins/InProcessCache/InProcessCachePlugin.php b/plugins/InProcessCache/InProcessCachePlugin.php new file mode 100644 index 0000000000..4871fa7500 --- /dev/null +++ b/plugins/InProcessCache/InProcessCachePlugin.php @@ -0,0 +1,215 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Extra level of caching, in memory + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +/** + * Extra level of caching + * + * This plugin adds an extra level of in-process caching to any regular + * cache system like APC, XCache, or Memcache. + * + * Note that since most caching plugins return false for StartCache* + * methods, you should add this plugin before them, i.e. + * + * addPlugin('InProcessCache'); + * addPlugin('XCache'); + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class InProcessCachePlugin extends Plugin +{ + private $_items = array(); + private $_hits = array(); + private $active; + + /** + * Constructor checks if it's safe to use the in-process cache. + * On CLI scripts, we'll disable ourselves to avoid data corruption + * due to keeping stale data around. + * + * On web requests we'll roll the dice; they're short-lived so have + * less chance of stale data. Race conditions are still possible, + * so beware! + */ + function __construct() + { + parent::__construct(); + $this->active = (PHP_SAPI != 'cli'); + } + + /** + * Get an item from the cache + * + * Called before other cache systems are called (iif this + * plugin was loaded correctly, see class comment). If we + * have the data, return it, and don't hit the other cache + * systems. + * + * @param string &$key Key to fetch + * @param mixed &$value Resulting value or false for miss + * + * @return boolean false if found, else true + */ + + function onStartCacheGet(&$key, &$value) + { + if ($this->active && array_key_exists($key, $this->_items)) { + $value = $this->_items[$key]; + if (array_key_exists($key, $this->_hits)) { + $this->_hits[$key]++; + } else { + $this->_hits[$key] = 1; + } + Event::handle('EndCacheGet', array($key, &$value)); + return false; + } + return true; + } + + /** + * Called at the end of a cache get + * + * If we don't already have the data, we cache it. This + * keeps us from having to call the external cache if the + * key is requested again. + * + * @param string $key Key to fetch + * @param mixed &$value Resulting value or false for miss + * + * @return boolean hook value, true + */ + + function onEndCacheGet($key, &$value) + { + if ($this->active && (!array_key_exists($key, $this->_items) || + $this->_items[$key] != $value)) { + $this->_items[$key] = $value; + } + return true; + } + + /** + * Called at the end of setting a cache element + * + * Always set the cache element; may overwrite existing + * data. + * + * @param string $key Key to fetch + * @param mixed $value Resulting value or false for miss + * @param integer $flag ignored + * @param integer $expiry ignored + * + * @return boolean true + */ + + function onEndCacheSet($key, $value, $flag, $expiry) + { + if ($this->active) { + $this->_items[$key] = $value; + } + return true; + } + + /** + * Called at the end of deleting a cache element + * + * If stuff's deleted from the other cache, we + * delete it too. + * + * @param string &$key Key to delete + * @param boolean &$success Success flag; ignored + * + * @return boolean true + */ + + function onStartCacheDelete(&$key, &$success) + { + if ($this->active && array_key_exists($key, $this->_items)) { + unset($this->_items[$key]); + } + return true; + } + + /** + * Version info + * + * @param array &$versions Array of version blocks + * + * @return boolean true + */ + + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:InProcessCache'; + + $versions[] = array('name' => 'InProcessCache', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => $url, + 'description' => + _m('Additional in-process cache for plugins.')); + return true; + } + + /** + * Cleanup function; called at end of process + * + * If the inprocess/stats config value is true, we dump + * stats to the log file + * + * @return boolean true + */ + + function cleanup() + { + if ($this->active && common_config('inprocess', 'stats')) { + $this->log(LOG_INFO, "cache size: " . + count($this->_items)); + $sum = 0; + foreach ($this->_hits as $hitcount) { + $sum += $hitcount; + } + $this->log(LOG_INFO, $sum . " hits on " . + count($this->_hits) . " keys"); + } + return true; + } +} diff --git a/plugins/InProcessCache/locale/InProcessCache.pot b/plugins/InProcessCache/locale/InProcessCache.pot new file mode 100644 index 0000000000..fc5a65e2c7 --- /dev/null +++ b/plugins/InProcessCache/locale/InProcessCache.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: InProcessCachePlugin.php:188 +msgid "Additional in-process cache for plugins." +msgstr "" diff --git a/plugins/InfiniteScroll/locale/InfiniteScroll.pot b/plugins/InfiniteScroll/locale/InfiniteScroll.pot index a0f466fcb4..2aa10d3db4 100644 --- a/plugins/InfiniteScroll/locale/InfiniteScroll.pot +++ b/plugins/InfiniteScroll/locale/InfiniteScroll.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/InfiniteScroll/locale/de/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/de/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..e6e4501744 --- /dev/null +++ b/plugins/InfiniteScroll/locale/de/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll fügt die folgende Funktionalität zu deiner StatusNet-" +"Installation hinzu: Wenn ein Benutzer Richtung Seitenende scrollt, wird die " +"nächste Nachrichtenseite automatisch geladen und angefügt. Das bedeutet, " +"dass sie nie „Nächste Seite“ klicken müssen, was die Attraktivität " +"dramatisch erhöht." diff --git a/plugins/InfiniteScroll/locale/es/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/es/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..07b8b4d743 --- /dev/null +++ b/plugins/InfiniteScroll/locale/es/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Desplazamiento Infinito añade la siguiente funcionalidad a tu instalación " +"StatusNet: Cuando un usuario se desplaza hacia el final de la página, la " +"próxima página de mensajes se recupera y añade automáticamente. Esto " +"significa que no será necesario hacer clic en \"Próxima página\", con lo que " +"se aumenta dramáticamente la capacidad de retención." diff --git a/plugins/InfiniteScroll/locale/fr/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/fr/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..754c2afbad --- /dev/null +++ b/plugins/InfiniteScroll/locale/fr/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - InfiniteScroll to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"InfiniteScroll ajoute la fonctionnalité suivante à votre installation " +"StatusNet : lorsqu’un utilisateur fait défiler la page jusqu’à la fin, la " +"page d’avis suivante est automatiquement téléchargée et ajoutée à la suite. " +"Ceci signifie que l’utilisateur n’a plus besoin de cliquer sur le bouton « " +"Page suivante », ce qui augmente considérablement l’adhérence de " +"l’utilisateur." diff --git a/plugins/InfiniteScroll/locale/he/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/he/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..630990fa66 --- /dev/null +++ b/plugins/InfiniteScroll/locale/he/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - InfiniteScroll to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll (גלילה אינסופית) מוסיפה את התכונות הבאות להתקנת ה־StatusNet " +"שלך: כאשר משתמש גולל אל עבר תחתית הדף, דף ההודעות הבא נטען ונוסף אוטומטית. " +"משמעות הדבר היא שאין על המשתמשים ללחוץ על \"הדף הבא\", מה שמגביר את תחושת " +"הדבקות בצורה דרמטית." diff --git a/plugins/InfiniteScroll/locale/ia/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/ia/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..326208c373 --- /dev/null +++ b/plugins/InfiniteScroll/locale/ia/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll adde le sequente functionalitate a tu installation de " +"StatusNet: Quando un usator face rolar le pagina verso le fundo, le sequente " +"pagina de notas es automaticamente recuperate e adjungite. Isto significa " +"que ille nunquam ha besonio de cliccar super \"Pagina sequente\", lo que " +"augmenta dramaticamente le adherentia." diff --git a/plugins/InfiniteScroll/locale/id/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/id/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..9672c14504 --- /dev/null +++ b/plugins/InfiniteScroll/locale/id/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll menambahkan fungsi berikut terhadap instalasi StatusNet " +"Anda: Ketika seorang pengguna melakukan skrol ke bawah halaman, halaman " +"pemberitahuan selanjutnya secara otomatis didapat dan ditambahkan. Ini " +"berarti tidak perlu menekan \"Halaman Berikutnya\" yang hanya menambah " +"ketergantungan." diff --git a/plugins/InfiniteScroll/locale/ja/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/ja/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..655cfd3fea --- /dev/null +++ b/plugins/InfiniteScroll/locale/ja/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - InfiniteScroll to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"無限スクロールは、StatusNetのインストールに次の機能を追加します:ユーザーが" +"ページの最後までスクロースしたとき、次のページの通知が自動的に取得され追加さ" +"れます。これはつまり、「次のページ」をクリックする必要がなく、手間を劇的に改" +"善します。" diff --git a/plugins/InfiniteScroll/locale/mk/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/mk/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..3898938a94 --- /dev/null +++ b/plugins/InfiniteScroll/locale/mk/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"„Бесконечно лизгање“ ја додава следнава функција во Вашата инсталација на " +"StatusNet: Кога еден корисник лизга кон дното на страницата, следната " +"страница автоматски се појавува во продолжение. Со ова се отстранува " +"потребата од стискање на „Следна страница“, што значително ја зголемува " +"лепливоста." diff --git a/plugins/InfiniteScroll/locale/nb/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/nb/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..00b7c243e8 --- /dev/null +++ b/plugins/InfiniteScroll/locale/nb/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - InfiniteScroll to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll legger til følgende funksjonalitet til din StatusNet-" +"installasjon: Når en bruker ruller mot bunnen av siden hentes den neste " +"siden med notiser og legges til automatisk. Dette betyr at de aldri trenger " +"å klikke «Neste side». Dette øker «stickiness» dramatisk." diff --git a/plugins/InfiniteScroll/locale/nl/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/nl/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..3a8e75ec88 --- /dev/null +++ b/plugins/InfiniteScroll/locale/nl/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - InfiniteScroll to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Oneindig scrollen (Infinite Scroll) maakt het mogelijk om in een StatusNet-" +"site naar onderaan de pagina te scrollen en dan automatisch de volgende " +"pagina te zien laden. Een gebruiker hoeft dus nooit meer op \"Volgende pagina" +"\" te klikken zodat ze langers op de site blijven." diff --git a/plugins/InfiniteScroll/locale/pt_BR/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/pt_BR/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..f5ec1a62de --- /dev/null +++ b/plugins/InfiniteScroll/locale/pt_BR/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - InfiniteScroll to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Infinite Scroll adiciona a seguinte funcionalidade a sua instalação " +"StatusNet: Quando um usuário se desloca para o final da página, a próxima " +"página de mensagens é recuperada e adicionada automaticamente. Isto " +"significa que não será necessário clicar em \"Próxima página\", que aumenta " +"drasticamente a capacidade de retenção de usuários." diff --git a/plugins/InfiniteScroll/locale/ru/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/ru/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..7e01e959c7 --- /dev/null +++ b/plugins/InfiniteScroll/locale/ru/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - InfiniteScroll to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Сrower +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Бесконечная прокрутка добавляет следующую функциональность вашему сайту " +"StatusNet: Когда пользователь прокручивает страницу уведомлений до самого " +"низа, следующая страница уведомлений автоматически запрашивается и " +"добавлятся. Это значит, что вам никогда не прийдётся нажимать кнопку " +"\"Следующая страница\", что резко увеличивает клейкость." diff --git a/plugins/InfiniteScroll/locale/tl/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/tl/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..2ef6f2d978 --- /dev/null +++ b/plugins/InfiniteScroll/locale/tl/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - InfiniteScroll to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Nagdaragdag ang Walang Hangganang Balumbon ng sumusunod na tungkulin sa " +"iyong instalasyon ng StatusNet: Kapag ang isang tagagamit ay nagpapadulas " +"papunta sa ilalim ng pahina, ang susunod na pahina ng mga pabatid ay kusang " +"muling nakukuha at nadurugtong. Nangangahulugan ito na hindi nila kailangan " +"kailanman na pindutin ang \"Susunod na Pahina\", na mabisang nagpapataas ng " +"pagkamadikit." diff --git a/plugins/InfiniteScroll/locale/uk/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/uk/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..7d150d4941 --- /dev/null +++ b/plugins/InfiniteScroll/locale/uk/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - InfiniteScroll to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"Нескінченна прокрутка сторінки додає наступні функції сайту StatusNet: коли " +"користувач прокручує сторінку до самого її низу, дописи з наступної сторінки " +"додаються автоматично. Це означає, що вам не доведеться натискати «Назад» (до " +"попередньої сторінки), аби переглянути повідомлення." diff --git a/plugins/InfiniteScroll/locale/zh_CN/LC_MESSAGES/InfiniteScroll.po b/plugins/InfiniteScroll/locale/zh_CN/LC_MESSAGES/InfiniteScroll.po new file mode 100644 index 0000000000..d2a8f948c2 --- /dev/null +++ b/plugins/InfiniteScroll/locale/zh_CN/LC_MESSAGES/InfiniteScroll.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - InfiniteScroll to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - InfiniteScroll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-infinitescroll\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: InfiniteScrollPlugin.php:54 +msgid "" +"Infinite Scroll adds the following functionality to your StatusNet " +"installation: When a user scrolls towards the bottom of the page, the next " +"page of notices is automatically retrieved and appended. This means they " +"never need to click \"Next Page\", which dramatically increases stickiness." +msgstr "" +"无限滚动(Infinite Scroll)给你的 StatusNet 网站增加了这些功能:当用户滚动页" +"面到底部的时候,将自动获取下一页的消息并追加显示出来。这样用户就不用再去点" +"击“下一页”按钮了,大大的增加了黏贴度。" diff --git a/plugins/Irc/ChannelResponseChannel.php b/plugins/Irc/ChannelResponseChannel.php new file mode 100644 index 0000000000..9d50b914ab --- /dev/null +++ b/plugins/Irc/ChannelResponseChannel.php @@ -0,0 +1,61 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Extend the IMChannel class to allow commands to send messages + * to a channel instead of PMing a user + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Network + * @package StatusNet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 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); +} + +class ChannelResponseChannel extends IMChannel { + protected $ircChannel; + + /** + * Construct a ChannelResponseChannel + * + * @param IMplugin $imPlugin IMPlugin + * @param string $ircChannel IRC Channel to reply to + * @return ChannelResponseChannel + */ + public function __construct($imPlugin, $ircChannel) { + $this->ircChannel = $ircChannel; + parent::__construct($imPlugin); + } + + /** + * Send a message using the plugin + * + * @param User $user User + * @param string $text Message text + * @return void + */ + public function output($user, $text) { + $text = $user->nickname.': ['.common_config('site', 'name') . '] ' . $text; + $this->imPlugin->sendMessage($this->ircChannel, $text); + } +} \ No newline at end of file diff --git a/plugins/Irc/Fake_Irc.php b/plugins/Irc/Fake_Irc.php new file mode 100644 index 0000000000..d95ab0491d --- /dev/null +++ b/plugins/Irc/Fake_Irc.php @@ -0,0 +1,47 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Instead of sending IRC messages, retrieve the raw data that would be sent + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Network + * @package StatusNet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 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); +} + +class Fake_Irc extends Phergie_Driver_Streams { + public $would_be_sent = null; + + /** + * Store the components for sending a command + * + * @param string $command Command + * @param array $args Arguments + * @return void + */ + protected function send($command, $args = '') { + $this->would_be_sent = array('command' => $command, 'args' => $args); + } +} \ No newline at end of file diff --git a/plugins/Irc/IrcPlugin.php b/plugins/Irc/IrcPlugin.php new file mode 100644 index 0000000000..7a53e5cbf5 --- /dev/null +++ b/plugins/Irc/IrcPlugin.php @@ -0,0 +1,396 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, StatusNet, Inc. + * + * Send and receive notices using an IRC network + * + * PHP version 5 + * + * 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 <http://www.gnu.org/licenses/>. + * + * @category IM + * @package StatusNet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 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); +} + +// We bundle the Phergie library... +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/phergie'); + +/** + * Plugin for IRC + * + * @category Plugin + * @package StatusNet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class IrcPlugin extends ImPlugin { + public $host = null; + public $port = null; + public $username = null; + public $realname = null; + public $nick = null; + public $password = null; + public $nickservidentifyregexp = null; + public $nickservpassword = null; + public $channels = null; + public $transporttype = null; + public $encoding = null; + public $pinginterval = null; + + public $regcheck = null; + public $unregregexp = null; + public $regregexp = null; + + public $transport = 'irc'; + protected $whiteList; + protected $fake_irc; + + /** + * Get the internationalized/translated display name of this IM service + * + * @return string Name of service + */ + public function getDisplayName() { + return _m('IRC'); + } + + /** + * Normalize a screenname for comparison + * + * @param string $screenname Screenname to normalize + * @return string An equivalent screenname in normalized form + */ + public function normalize($screenname) { + $screenname = str_replace(" ","", $screenname); + return strtolower($screenname); + } + + /** + * Get the screenname of the daemon that sends and receives messages + * + * @return string Screenname + */ + public function daemonScreenname() { + return $this->nick; + } + + /** + * Validate (ensure the validity of) a screenname + * + * @param string $screenname Screenname to validate + * @return boolean true if screenname is valid + */ + public function validate($screenname) { + if (preg_match('/\A[a-z0-9\-_]{1,1000}\z/i', $screenname)) { + return true; + } else { + return false; + } + } + + /** + * Load related modules when needed + * + * @param string $cls Name of the class to be loaded + * @return boolean hook value; true means continue processing, false means stop. + */ + public function onAutoload($cls) { + $dir = dirname(__FILE__); + + switch ($cls) { + case 'IrcManager': + include_once $dir . '/'.strtolower($cls).'.php'; + return false; + case 'Fake_Irc': + case 'Irc_waiting_message': + case 'ChannelResponseChannel': + include_once $dir . '/'. $cls .'.php'; + return false; + default: + if (substr($cls, 0, 7) == 'Phergie') { + include_once str_replace('_', DIRECTORY_SEPARATOR, $cls) . '.php'; + return false; + } + return true; + } + } + + /* + * Start manager on daemon start + * + * @param array &$versions Array to insert manager into + * @return boolean + */ + public function onStartImDaemonIoManagers(&$classes) { + parent::onStartImDaemonIoManagers(&$classes); + $classes[] = new IrcManager($this); // handles sending/receiving + return true; + } + + /** + * Ensure the database table is present + * + */ + public function onCheckSchema() { + $schema = Schema::get(); + + // For storing messages while sessions become ready + $schema->ensureTable('irc_waiting_message', + array(new ColumnDef('id', 'integer', null, + false, 'PRI', null, null, true), + new ColumnDef('data', 'blob', null, false), + new ColumnDef('prioritise', 'tinyint', 1, false), + new ColumnDef('attempts', 'integer', null, false), + new ColumnDef('created', 'datetime', null, false), + new ColumnDef('claimed', 'datetime'))); + + return true; + } + + /** + * Get a microid URI for the given screenname + * + * @param string $screenname Screenname + * @return string microid URI + */ + public function microiduri($screenname) { + return 'irc:' . $screenname; + } + + /** + * Send a message to a given screenname + * + * @param string $screenname Screenname to send to + * @param string $body Text to send + * @return boolean true on success + */ + public function sendMessage($screenname, $body) { + $lines = explode("\n", $body); + foreach ($lines as $line) { + $this->fake_irc->doPrivmsg($screenname, $line); + $this->enqueueOutgoingRaw(array('type' => 'message', 'prioritise' => 0, 'data' => $this->fake_irc->would_be_sent)); + } + return true; + } + + /** + * Accept a queued input message. + * + * @return boolean true if processing completed, false if message should be reprocessed + */ + public function receiveRawMessage($data) { + if (strpos($data['source'], '#') === 0) { + $message = $data['message']; + $parts = explode(' ', $message, 2); + $command = $parts[0]; + if (in_array($command, $this->whiteList)) { + $this->handle_channel_incoming($data['sender'], $data['source'], $message); + } else { + $this->handleIncoming($data['sender'], $message); + } + } else { + $this->handleIncoming($data['sender'], $data['message']); + } + return true; + } + + /** + * Helper for handling incoming messages from a channel requiring response + * to the channel instead of via PM + * + * @param string $nick Screenname the message was sent from + * @param string $channel Channel the message originated from + * @param string $message Message text + * @param boolean true on success + */ + protected function handle_channel_incoming($nick, $channel, $notice_text) { + $user = $this->getUser($nick); + // For common_current_user to work + global $_cur; + $_cur = $user; + + if (!$user) { + $this->sendFromSite($nick, 'Unknown user; go to ' . + common_local_url('imsettings') . + ' to add your address to your account'); + common_log(LOG_WARNING, 'Message from unknown user ' . $nick); + return; + } + if ($this->handle_channel_command($user, $channel, $notice_text)) { + common_log(LOG_INFO, "Command message by $nick handled."); + return; + } else if ($this->isAutoreply($notice_text)) { + common_log(LOG_INFO, 'Ignoring auto reply from ' . $nick); + return; + } else if ($this->isOtr($notice_text)) { + common_log(LOG_INFO, 'Ignoring OTR from ' . $nick); + return; + } else { + common_log(LOG_INFO, 'Posting a notice from ' . $user->nickname); + $this->addNotice($nick, $user, $notice_text); + } + + $user->free(); + unset($user); + unset($_cur); + unset($message); + } + + /** + * Attempt to handle a message from a channel as a command + * + * @param User $user User the message is from + * @param string $channel Channel the message originated from + * @param string $body Message text + * @return boolean true if the message was a command and was executed, false if it was not a command + */ + protected function handle_channel_command($user, $channel, $body) { + $inter = new CommandInterpreter(); + $cmd = $inter->handle_command($user, $body); + if ($cmd) { + $chan = new ChannelResponseChannel($this, $channel); + $cmd->execute($chan); + return true; + } else { + return false; + } + } + + /** + * Send a confirmation code to a user + * + * @param string $screenname screenname sending to + * @param string $code the confirmation code + * @param User $user user sending to + * @return boolean success value + */ + public function sendConfirmationCode($screenname, $code, $user, $checked = false) { + $body = sprintf(_('User "%s" on %s has said that your %s screenname belongs to them. ' . + 'If that\'s true, you can confirm by clicking on this URL: ' . + '%s' . + ' . (If you cannot click it, copy-and-paste it into the ' . + 'address bar of your browser). If that user isn\'t you, ' . + 'or if you didn\'t request this confirmation, just ignore this message.'), + $user->nickname, common_config('site', 'name'), $this->getDisplayName(), common_local_url('confirmaddress', array('code' => $code))); + + if ($this->regcheck && !$checked) { + return $this->checked_sendConfirmationCode($screenname, $code, $user); + } else { + return $this->sendMessage($screenname, $body); + } + } + + /** + * Only sends the confirmation message if the nick is + * registered + * + * @param string $screenname Screenname sending to + * @param string $code The confirmation code + * @param User $user User sending to + * @return boolean true on succes + */ + public function checked_sendConfirmationCode($screenname, $code, $user) { + $this->fake_irc->doPrivmsg('NickServ', 'INFO '.$screenname); + $this->enqueueOutgoingRaw( + array( + 'type' => 'nickcheck', + 'prioritise' => 1, + 'data' => $this->fake_irc->would_be_sent, + 'nickdata' => + array( + 'screenname' => $screenname, + 'code' => $code, + 'user' => $user + ) + ) + ); + return true; + } + + /** + * Initialize plugin + * + * @return boolean + */ + public function initialize() { + if (!isset($this->host)) { + throw new Exception('must specify a host'); + } + if (!isset($this->username)) { + throw new Exception('must specify a username'); + } + if (!isset($this->realname)) { + throw new Exception('must specify a "real name"'); + } + if (!isset($this->nick)) { + throw new Exception('must specify a nickname'); + } + + if (!isset($this->port)) { + $this->port = 6667; + } + if (!isset($this->transporttype)) { + $this->transporttype = 'tcp'; + } + if (!isset($this->encoding)) { + $this->encoding = 'UTF-8'; + } + if (!isset($this->pinginterval)) { + $this->pinginterval = 120; + } + + if (!isset($this->regcheck)) { + $this->regcheck = true; + } + + $this->fake_irc = new Fake_Irc; + + /* + * Commands allowed to return output to a channel + */ + $this->whiteList = array('stats', 'last', 'get'); + + return true; + } + + /** + * Get plugin information + * + * @param array $versions Array to insert information into + * @return void + */ + public function onPluginVersion(&$versions) { + $versions[] = array('name' => 'IRC', + 'version' => STATUSNET_VERSION, + 'author' => 'Luke Fitzgerald', + 'homepage' => 'http://status.net/wiki/Plugin:IRC', + 'rawdescription' => + _m('The IRC plugin allows users to send and receive notices over an IRC network.')); + return true; + } +} diff --git a/plugins/Irc/Irc_waiting_message.php b/plugins/Irc/Irc_waiting_message.php new file mode 100644 index 0000000000..59eec63d8d --- /dev/null +++ b/plugins/Irc/Irc_waiting_message.php @@ -0,0 +1,142 @@ +<?php +/** + * Table Definition for irc_waiting_message + */ +require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +class Irc_waiting_message extends Memcached_DataObject { + + public $__table = 'irc_waiting_message'; // table name + public $id; // int primary_key not_null auto_increment + public $data; // blob not_null + public $prioritise; // tinyint(1) not_null + public $attempts; // int not_null + public $created; // datetime() not_null + public $claimed; // datetime() + + /* Static get */ + public function staticGet($k, $v = null) { + return Memcached_DataObject::staticGet('Irc_waiting_message', $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 + */ + public function table() { + return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'data' => DB_DATAOBJECT_BLOB + DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'prioritise' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_TIME + DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'claimed' => DB_DATAOBJECT_TIME + DB_DATAOBJECT_STR); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + public function keys() { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + public function keyTypes() { + return array('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. + */ + public function sequenceKey() { + return array(false, false, false); + } + + /** + * Get the next item in the queue + * + * @return Irc_waiting_message Next message if there is one + */ + public static function top() { + $wm = new Irc_waiting_message(); + + $wm->orderBy('prioritise DESC, created'); + $wm->whereAdd('claimed is null'); + + $wm->limit(1); + + $cnt = $wm->find(true); + + if ($cnt) { + # XXX: potential race condition + # can we force it to only update if claimed is still null + # (or old)? + common_log(LOG_INFO, 'claiming IRC waiting message id = ' . $wm->id); + $orig = clone($wm); + $wm->claimed = common_sql_now(); + $result = $wm->update($orig); + if ($result) { + common_log(LOG_INFO, 'claim succeeded.'); + return $wm; + } else { + common_log(LOG_INFO, 'claim failed.'); + } + } + $wm = null; + return null; + } + + /** + * Increment the attempts count + * + * @return void + * @throws Exception + */ + public function incAttempts() { + $orig = clone($this); + $this->attempts++; + $result = $this->update($orig); + + if (!$result) { + throw Exception(sprintf(_m("Could not increment attempts count for %d"), $this->id)); + } + } + + /** + * Release a claimed item. + */ + public function releaseClaim() { + // DB_DataObject doesn't let us save nulls right now + $sql = sprintf("UPDATE irc_waiting_message SET claimed=NULL WHERE id=%d", $this->id); + $this->query($sql); + + $this->claimed = null; + $this->encache(); + } +} diff --git a/plugins/Irc/README b/plugins/Irc/README new file mode 100644 index 0000000000..0a5d9ea83f --- /dev/null +++ b/plugins/Irc/README @@ -0,0 +1,45 @@ +The IRC plugin allows users to send and receive notices over an IRC network. + +Installation +============ +add "addPlugin('irc', + array('setting'=>'value', 'setting2'=>'value2', ...);" +to the bottom of your config.php + +scripts/imdaemon.php included with StatusNet 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 +======== +host*: Hostname of IRC server +port: Port of IRC server (defaults to 6667) +username*: Username of bot +realname*: Real name of bot +nick*: Nickname of bot +password: Password +nickservpassword: NickServ password for identification +nickservidentifyregexp: Override existing regexp matching request for identification from NickServ +channels: Channels for bot to idle in +transporttype: Set to 'ssl' to enable SSL +encoding: Set to change encoding +pinginterval: Set to change the number of seconds between pings (helps keep the connection open) + Defaults to 120 seconds +regcheck: Check user's nicknames are registered, enabled by default, set to false to disable +regregexp: Override existing regexp matching response from NickServ if nick checked is registered. + Must contain a capturing group catching the nick +unregregexp: Override existing regexp matching response from NickServ if nick checked is unregistered + Must contain a capturing group catching the nick + +* required + +Example +======= +addPlugin('irc', array( + 'host' => '...', + 'username' => '...', + 'realname' => '...', + 'nick' => '...', + 'channels' => array('#channel1', '#channel2') +)); + diff --git a/plugins/Irc/extlib/.gitignore b/plugins/Irc/extlib/.gitignore new file mode 100644 index 0000000000..553fe8e258 --- /dev/null +++ b/plugins/Irc/extlib/.gitignore @@ -0,0 +1,2 @@ +Settings.php +*.db diff --git a/plugins/Irc/extlib/phergie/.gitignore b/plugins/Irc/extlib/phergie/.gitignore new file mode 100644 index 0000000000..553fe8e258 --- /dev/null +++ b/plugins/Irc/extlib/phergie/.gitignore @@ -0,0 +1,2 @@ +Settings.php +*.db diff --git a/plugins/Irc/extlib/phergie/LICENSE b/plugins/Irc/extlib/phergie/LICENSE new file mode 100644 index 0000000000..d7d23420ac --- /dev/null +++ b/plugins/Irc/extlib/phergie/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2010, Phergie Development Team +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +Neither the name of the Phergie Development Team nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/plugins/Irc/extlib/phergie/Phergie/Autoload.php b/plugins/Irc/extlib/phergie/Phergie/Autoload.php new file mode 100755 index 0000000000..0004f44e22 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Autoload.php @@ -0,0 +1,81 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Autoloader for Phergie classes. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Autoload +{ + /** + * Constructor to add the base Phergie path to the include_path. + * + * @return void + */ + public function __construct() + { + $path = realpath(dirname(__FILE__) . '/..'); + $includePath = get_include_path(); + $includePathList = explode(PATH_SEPARATOR, $includePath); + if (!in_array($path, $includePathList)) { + self::addPath($path); + } + } + + /** + * Autoload callback for loading class files. + * + * @param string $class Class to load + * + * @return void + */ + public function load($class) + { + include str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php'; + } + + /** + * Registers an instance of this class as an autoloader. + * + * @return void + */ + public static function registerAutoloader() + { + spl_autoload_register(array(new self, 'load')); + } + + /** + * Add a path to the include path. + * + * @param string $path Path to add + * + * @return void + */ + public static function addPath($path) + { + set_include_path($path . PATH_SEPARATOR . get_include_path()); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Bot.php b/plugins/Irc/extlib/phergie/Phergie/Bot.php new file mode 100755 index 0000000000..85e8a00fc9 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Bot.php @@ -0,0 +1,390 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Composite class for other components to represent the bot. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Bot +{ + /** + * Current version of Phergie + */ + const VERSION = '2.0.1'; + + /** + * Current driver instance + * + * @var Phergie_Driver_Abstract + */ + protected $driver; + + /** + * Current configuration instance + * + * @var Phergie_Config + */ + protected $config; + + /** + * Current connection handler instance + * + * @var Phergie_Connection_Handler + */ + protected $connections; + + /** + * Current plugin handler instance + * + * @var Phergie_Plugin_Handler + */ + protected $plugins; + + /** + * Current event handler instance + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Current end-user interface instance + * + * @var Phergie_Ui_Abstract + */ + protected $ui; + + /** + * Current processor instance + * + * @var Phergie_Process_Abstract + */ + protected $processor; + + /** + * Returns a driver instance, creating one of the default class if + * none has been set. + * + * @return Phergie_Driver_Abstract + */ + public function getDriver() + { + if (empty($this->driver)) { + // Check if a driver has been defined in the configuration to use + // as the default + $config = $this->getConfig(); + if (isset($config['driver'])) { + $class = 'Phergie_Driver_' . ucfirst($config['driver']); + } else { + // Otherwise default to the Streams driver. + $class = 'Phergie_Driver_Streams'; + } + + $this->driver = new $class; + } + return $this->driver; + } + + /** + * Sets the driver instance to use. + * + * @param Phergie_Driver_Abstract $driver Driver instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setDriver(Phergie_Driver_Abstract $driver) + { + $this->driver = $driver; + return $this; + } + + /** + * Sets the configuration to use. + * + * @param Phergie_Config $config Configuration instance + * + * @return Phergie_Runner_Abstract Provides a fluent interface + */ + public function setConfig(Phergie_Config $config) + { + $this->config = $config; + return $this; + } + + /** + * Returns the entire configuration in use or the value of a specific + * configuration setting. + * + * @param string $index Optional index of a specific configuration + * setting for which the corresponding value should be returned + * @param mixed $default Value to return if no match is found for $index + * + * @return mixed Value corresponding to $index or the entire + * configuration if $index is not specified + */ + public function getConfig($index = null, $default = null) + { + if (empty($this->config)) { + $this->config = new Phergie_Config; + $this->config->read('Settings.php'); + } + if ($index !== null) { + if (isset($this->config[$index])) { + return $this->config[$index]; + } else { + return $default; + } + } + return $this->config; + } + + /** + * Returns a plugin handler instance, creating it if it does not already + * exist and using a default class if none has been set. + * + * @return Phergie_Plugin_Handler + */ + public function getPluginHandler() + { + if (empty($this->plugins)) { + $this->plugins = new Phergie_Plugin_Handler( + $this->getConfig(), + $this->getEventHandler() + ); + } + return $this->plugins; + } + + /** + * Sets the plugin handler instance to use. + * + * @param Phergie_Plugin_Handler $handler Plugin handler instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setPluginHandler(Phergie_Plugin_Handler $handler) + { + $this->plugins = $handler; + return $this; + } + + /** + * Returns an event handler instance, creating it if it does not already + * exist and using a default class if none has been set. + * + * @return Phergie_Event_Handler + */ + public function getEventHandler() + { + if (empty($this->events)) { + $this->events = new Phergie_Event_Handler; + } + return $this->events; + } + + /** + * Sets the event handler instance to use. + * + * @param Phergie_Event_Handler $handler Event handler instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setEventHandler(Phergie_Event_Handler $handler) + { + $this->events = $handler; + return $this; + } + + /** + * Returns a connection handler instance, creating it if it does not + * already exist and using a default class if none has been set. + * + * @return Phergie_Connection_Handler + */ + public function getConnectionHandler() + { + if (empty($this->connections)) { + $this->connections = new Phergie_Connection_Handler; + } + return $this->connections; + } + + /** + * Sets the connection handler instance to use. + * + * @param Phergie_Connection_Handler $handler Connection handler instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setConnectionHandler(Phergie_Connection_Handler $handler) + { + $this->connections = $handler; + return $this; + } + + /** + * Returns an end-user interface instance, creating it if it does not + * already exist and using a default class if none has been set. + * + * @return Phergie_Ui_Abstract + */ + public function getUi() + { + if (empty($this->ui)) { + $this->ui = new Phergie_Ui_Console; + } + return $this->ui; + } + + /** + * Sets the end-user interface instance to use. + * + * @param Phergie_Ui_Abstract $ui End-user interface instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setUi(Phergie_Ui_Abstract $ui) + { + $this->ui = $ui; + return $this; + } + + /** + * Returns a processer instance, creating one if none exists. + * + * @return Phergie_Process_Abstract + */ + public function getProcessor() + { + if (empty($this->processor)) { + $class = 'Phergie_Process_Standard'; + + $type = $this->getConfig('processor'); + if (!empty($type)) { + $class = 'Phergie_Process_' . ucfirst($type); + } + + $this->processor = new $class( + $this, + $this->getConfig('processor.options', array()) + ); + } + return $this->processor; + } + + /** + * Sets the processer instance to use. + * + * @param Phergie_Process_Abstract $processor Processer instance + * + * @return Phergie_Bot Provides a fluent interface + */ + public function setProcessor(Phergie_Process_Abstract $processor) + { + $this->processor = $processor; + return $this; + } + + /** + * Loads plugins into the plugin handler. + * + * @return void + */ + protected function loadPlugins() + { + $config = $this->getConfig(); + $plugins = $this->getPluginHandler(); + $ui = $this->getUi(); + + $plugins->setAutoload($config['plugins.autoload']); + foreach ($config['plugins'] as $name) { + try { + $plugin = $plugins->addPlugin($name); + $ui->onPluginLoad($name); + } catch (Phergie_Plugin_Exception $e) { + $ui->onPluginFailure($name, $e->getMessage()); + if (!empty($plugin)) { + $plugins->removePlugin($plugin); + } + } + } + } + + /** + * Configures and establishes connections to IRC servers. + * + * @return void + */ + protected function loadConnections() + { + $config = $this->getConfig(); + $driver = $this->getDriver(); + $connections = $this->getConnectionHandler(); + $plugins = $this->getPluginHandler(); + $ui = $this->getUi(); + + foreach ($config['connections'] as $data) { + $connection = new Phergie_Connection($data); + $connections->addConnection($connection); + + $ui->onConnect($data['host']); + $driver->setConnection($connection)->doConnect(); + $plugins->setConnection($connection); + $plugins->onConnect(); + } + } + + /** + * Establishes server connections and initiates an execution loop to + * continuously receive and process events. + * + * @return Phergie_Bot Provides a fluent interface + */ + public function run() + { + set_time_limit(0); + + $timezone = $this->getConfig('timezone', 'UTC'); + date_default_timezone_set($timezone); + + $ui = $this->getUi(); + $ui->setEnabled($this->getConfig('ui.enabled')); + + $this->loadPlugins(); + $this->loadConnections(); + + $processor = $this->getProcessor(); + + $connections = $this->getConnectionHandler(); + while (count($connections)) { + $processor->handleEvents(); + } + + $ui->onShutdown(); + + return $this; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Config.php b/plugins/Irc/extlib/phergie/Phergie/Config.php new file mode 100755 index 0000000000..c182f2ac1e --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Config.php @@ -0,0 +1,186 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Reads from and writes to PHP configuration files and provides access to + * the settings they contain. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Config implements ArrayAccess +{ + /** + * Mapping of configuration file paths to an array of names of settings + * they contain + * + * @var array + */ + protected $files = array(); + + /** + * Mapping of setting names to their current corresponding values + * + * @var array + */ + protected $settings = array(); + + /** + * Includes a specified PHP configuration file and incorporates its + * return value (which should be an associative array) into the current + * configuration settings. + * + * @param string $file Path to the file to read + * + * @return Phergie_Config Provides a fluent interface + * @throws Phergie_Config_Exception + */ + public function read($file) + { + if (!(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' + && file_exists($file)) + && !is_executable($file) + ) { + throw new Phergie_Config_Exception( + 'Path "' . $file . '" does not reference an executable file', + Phergie_Config_Exception::ERR_FILE_NOT_EXECUTABLE + ); + } + + $settings = include $file; + if (!is_array($settings)) { + throw new Phergie_Config_Exception( + 'File "' . $file . '" does not return an array', + Phergie_Config_Exception::ERR_ARRAY_NOT_RETURNED + ); + } + + $this->files[$file] = array_keys($settings); + $this->settings += $settings; + + return $this; + } + + /** + * Merges an associative array of configuration setting values into the + * current configuration settings. + * + * @param array $settings Associative array of configuration setting + * values keyed by setting name + * + * @return Phergie_Config Provides a fluent interface + */ + public function readArray(array $settings) + { + $this->settings += $settings; + + return $this; + } + + /** + * Writes the values of the current configuration settings back to their + * originating files. + * + * @return Phergie_Config Provides a fluent interface + */ + public function write() + { + foreach ($this->files as $file => &$settings) { + $values = array(); + foreach ($settings as $setting) { + $values[$setting] = $this->settings[$setting]; + } + $source = '<?php' . PHP_EOL . PHP_EOL . + 'return ' . var_export($value, true) . ';'; + file_put_contents($file, $source); + } + } + + /** + * Checks to see if a configuration setting is assigned a value. + * + * @param string $offset Configuration setting name + * + * @return bool TRUE if the setting has a value, FALSE otherwise + * @see ArrayAccess::offsetExists() + */ + public function offsetExists($offset) + { + return isset($this->settings[$offset]); + } + + /** + * Returns the value of a configuration setting. + * + * @param string $offset Configuration setting name + * + * @return mixed Configuration setting value or NULL if it is not + * assigned a value + * @see ArrayAccess::offsetGet() + */ + public function offsetGet($offset) + { + if (isset($this->settings[$offset])) { + $value = &$this->settings[$offset]; + } else { + $value = null; + } + + return $value; + } + + /** + * Sets the value of a configuration setting. + * + * @param string $offset Configuration setting name + * @param mixed $value New setting value + * + * @return void + * @see ArrayAccess::offsetSet() + */ + public function offsetSet($offset, $value) + { + $this->settings[$offset] = $value; + } + + /** + * Removes the value set for a configuration setting. + * + * @param string $offset Configuration setting name + * + * @return void + * @see ArrayAccess::offsetUnset() + */ + public function offsetUnset($offset) + { + unset($this->settings[$offset]); + + foreach ($this->files as $file => $settings) { + $key = array_search($offset, $settings); + if ($key !== false) { + unset($this->files[$file][$key]); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Config/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Config/Exception.php new file mode 100644 index 0000000000..fb646c10c1 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Config/Exception.php @@ -0,0 +1,44 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to configuration. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Config_Exception extends Phergie_Exception +{ + /** + * Error indicating that an attempt was made to read a configuration + * file that could not be executed + */ + const ERR_FILE_NOT_EXECUTABLE = 1; + + /** + * Error indicating that a read configuration file does not return an + * array + */ + const ERR_ARRAY_NOT_RETURNED = 2; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Connection.php b/plugins/Irc/extlib/phergie/Phergie/Connection.php new file mode 100755 index 0000000000..746dec05f4 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Connection.php @@ -0,0 +1,401 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Data structure for connection metadata. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Connection +{ + /** + * Host to which the client will connect + * + * @var string + */ + protected $host; + + /** + * Port on which the client will connect, defaults to the standard IRC + * port + * + * @var int + */ + protected $port; + + /** + * Transport for the connection, defaults to tcp but can be set to ssl + * or variations thereof to connect over SSL + * + * @var string + */ + protected $transport; + + /** + * Encoding method for the connection, defaults to ISO-8859-1 but can + * be set to UTF8 if necessary + * + * @var strng + */ + protected $encoding; + + /** + * Nick that the client will use + * + * @var string + */ + protected $nick; + + /** + * Username that the client will use + * + * @var string + */ + protected $username; + + /** + * Realname that the client will use + * + * @var string + */ + protected $realname; + + /** + * Password that the client will use + * + * @var string + */ + protected $password; + + /** + * Hostmask for the connection + * + * @var Phergie_Hostmask + */ + protected $hostmask; + + /** + * Constructor to initialize instance properties. + * + * @param array $options Optional associative array of property values + * to initialize + * + * @return void + */ + public function __construct(array $options = array()) + { + $this->transport = 'tcp'; + $this->encoding = 'ISO-8859-1'; + // @note this may need changed to something different, for broader support. + // @note also may need to make use of http://us.php.net/manual/en/function.stream-encoding.php + + $this->setOptions($options); + } + + /** + * Emits an error related to a required connection setting does not have + * value set for it. + * + * @param string $setting Name of the setting + * + * @return void + */ + protected function checkSetting($setting) + { + if (empty($this->$setting)) { + throw new Phergie_Connection_Exception( + 'Required connection setting "' . $setting . '" missing', + Phergie_Connection_Exception::ERR_REQUIRED_SETTING_MISSING + ); + } + } + + /** + * Returns a hostmask that uniquely identifies the connection. + * + * @return string + */ + public function getHostmask() + { + if (empty($this->hostmask)) { + $this->hostmask = new Phergie_Hostmask( + $this->getNick(), + $this->getUsername(), + $this->getHost() + ); + } + + return $this->hostmask; + } + + /** + * Sets the host to which the client will connect. + * + * @param string $host Hostname + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setHost($host) + { + if (empty($this->host)) { + $this->host = (string) $host; + } + + return $this; + } + + /** + * Returns the host to which the client will connect if it is set or + * emits an error if it is not set. + * + * @return string + */ + public function getHost() + { + $this->checkSetting('host'); + + return $this->host; + } + + /** + * Sets the port on which the client will connect. + * + * @param int $port Port + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setPort($port) + { + if (empty($this->port)) { + $this->port = (int) $port; + } + + return $this; + } + + /** + * Returns the port on which the client will connect. + * + * @return int + */ + public function getPort() + { + if (empty($this->port)) { + $this->port = 6667; + } + + return $this->port; + } + + /** + * Sets the transport for the connection to use. + * + * @param string $transport Transport (ex: tcp, ssl, etc.) + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setTransport($transport) + { + $this->transport = (string) $transport; + + if (!in_array($this->transport, stream_get_transports())) { + throw new Phergie_Connection_Exception( + 'Transport ' . $this->transport . ' is not supported', + Phergie_Connection_Exception::ERR_TRANSPORT_NOT_SUPPORTED + ); + } + + return $this; + } + + /** + * Returns the transport in use by the connection. + * + * @return string Transport (ex: tcp, ssl, etc.) + */ + public function getTransport() + { + return $this->transport; + } + + /** + * Sets the encoding for the connection to use. + * + * @param string $encoding Encoding to use (ex: ASCII, ISO-8859-1, UTF8, etc.) + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setEncoding($encoding) + { + $this->encoding = (string) $encoding; + + if (!in_array($this->encoding, mb_list_encodings())) { + throw new Phergie_Connection_Exception( + 'Encoding ' . $this->encoding . ' is not supported', + Phergie_Connection_Exception::ERR_ENCODING_NOT_SUPPORTED + ); + } + + return $this; + } + + /** + * Returns the encoding in use by the connection. + * + * @return string Encoding (ex: ASCII, ISO-8859-1, UTF8, etc.) + */ + public function getEncoding() + { + return $this->encoding; + } + + /** + * Sets the nick that the client will use. + * + * @param string $nick Nickname + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setNick($nick) + { + if (empty($this->nick)) { + $this->nick = (string) $nick; + } + + return $this; + } + + /** + * Returns the nick that the client will use. + * + * @return string + */ + public function getNick() + { + $this->checkSetting('nick'); + + return $this->nick; + } + + /** + * Sets the username that the client will use. + * + * @param string $username Username + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setUsername($username) + { + if (empty($this->username)) { + $this->username = (string) $username; + } + + return $this; + } + + /** + * Returns the username that the client will use. + * + * @return string + */ + public function getUsername() + { + $this->checkSetting('username'); + + return $this->username; + } + + /** + * Sets the realname that the client will use. + * + * @param string $realname Real name + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setRealname($realname) + { + if (empty($this->realname)) { + $this->realname = (string) $realname; + } + + return $this; + } + + /** + * Returns the realname that the client will use. + * + * @return string + */ + public function getRealname() + { + $this->checkSetting('realname'); + + return $this->realname; + } + + /** + * Sets the password that the client will use. + * + * @param string $password Password + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setPassword($password) + { + if (empty($this->password)) { + $this->password = (string) $password; + } + + return $this; + } + + /** + * Returns the password that the client will use. + * + * @return string + */ + public function getPassword() + { + return $this->password; + } + + /** + * Sets multiple connection settings using an array. + * + * @param array $options Associative array of setting names mapped to + * corresponding values + * + * @return Phergie_Connection Provides a fluent interface + */ + public function setOptions(array $options) + { + foreach ($options as $option => $value) { + $method = 'set' . ucfirst($option); + if (method_exists($this, $method)) { + $this->$method($value); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Connection/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Connection/Exception.php new file mode 100644 index 0000000000..aec1cd8e0f --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Connection/Exception.php @@ -0,0 +1,50 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to a connection to an IRC server. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Connection_Exception extends Phergie_Exception +{ + /** + * Error indicating that an operation was attempted requiring a value + * for a specific configuration setting, but none was set + */ + const ERR_REQUIRED_SETTING_MISSING = 1; + + /** + * Error indicating that a connection is configured to use a transport, + * but that transport is not supported by the current PHP installation + */ + const ERR_TRANSPORT_NOT_SUPPORTED = 2; + + /** + * Error indicating that a connection is configured to use an encoding, + * but that encoding is not supported by the current PHP installation + */ + const ERR_ENCODING_NOT_SUPPORTED = 3; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Connection/Handler.php b/plugins/Irc/extlib/phergie/Phergie/Connection/Handler.php new file mode 100644 index 0000000000..e9aeddcd3e --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Connection/Handler.php @@ -0,0 +1,130 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Handles connections initiated by the bot. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Connection_Handler implements Countable, IteratorAggregate +{ + /** + * Map of connections indexed by hostmask + * + * @var array + */ + protected $connections; + + /** + * Constructor to initialize storage for connections. + * + * @return void + */ + public function __construct() + { + $this->connections = array(); + } + + /** + * Adds a connection to the connection list. + * + * @param Phergie_Connection $connection Connection to add + * + * @return Phergie_Connection_Handler Provides a fluent interface + */ + public function addConnection(Phergie_Connection $connection) + { + $this->connections[(string) $connection->getHostmask()] = $connection; + return $this; + } + + /** + * Removes a connection from the connection list. + * + * @param Phergie_Connection|string $connection Instance or hostmask for + * the connection to remove + * + * @return Phergie_Connection_Handler Provides a fluent interface + */ + public function removeConnection($connection) + { + if ($connection instanceof Phergie_Connection) { + $hostmask = (string) $connection->getHostmask(); + } elseif (is_string($connection) + && isset($this->connections[$connection])) { + $hostmask = $connection; + } else { + return $this; + } + unset($this->connections[$hostmask]); + return $this; + } + + /** + * Returns the number of connections in the list. + * + * @return int Number of connections + */ + public function count() + { + return count($this->connections); + } + + /** + * Returns an iterator for the connection list. + * + * @return ArrayIterator + */ + public function getIterator() + { + return new ArrayIterator($this->connections); + } + + /** + * Returns a list of specified connection objects. + * + * @param array|string $keys One or more hostmasks identifying the + * connections to return + * + * @return array List of Phergie_Connection objects corresponding to the + * specified hostmask(s) + */ + public function getConnections($keys) + { + $connections = array(); + + if (!is_array($keys)) { + $keys = array($keys); + } + + foreach ($keys as $key) { + if (isset($this->connections[$key])) { + $connections[] = $this->connections[$key]; + } + } + + return $connections; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Driver/Abstract.php b/plugins/Irc/extlib/phergie/Phergie/Driver/Abstract.php new file mode 100755 index 0000000000..62736620d4 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Driver/Abstract.php @@ -0,0 +1,301 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for drivers which handle issuing client commands to the IRC + * server and converting responses into usable data objects. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +abstract class Phergie_Driver_Abstract +{ + /** + * Currently active connection + * + * @var Phergie_Connection + */ + protected $connection; + + /** + * Sets the currently active connection. + * + * @param Phergie_Connection $connection Active connection + * + * @return Phergie_Driver_Abstract Provides a fluent interface + */ + public function setConnection(Phergie_Connection $connection) + { + $this->connection = $connection; + + return $this; + } + + /** + * Returns the currently active connection. + * + * @return Phergie_Connection + * @throws Phergie_Driver_Exception + */ + public function getConnection() + { + if (empty($this->connection)) { + throw new Phergie_Driver_Exception( + 'Operation requires an active connection, but none is set', + Phergie_Driver_Exception::ERR_NO_ACTIVE_CONNECTION + ); + } + + return $this->connection; + } + + /** + * Returns an event if one has been received from the server. + * + * @return Phergie_Event_Interface|null Event instance if an event has + * been received, NULL otherwise + */ + public abstract function getEvent(); + + /** + * Initiates a connection with the server. + * + * @return void + */ + public abstract function doConnect(); + + /** + * Terminates the connection with the server. + * + * @param string $reason Reason for connection termination (optional) + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_1_6 + */ + public abstract function doQuit($reason = null); + + /** + * Joins a channel. + * + * @param string $channels Comma-delimited list of channels to join + * @param string $keys Optional comma-delimited list of channel keys + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_1 + */ + public abstract function doJoin($channels, $keys = null); + + /** + * Leaves a channel. + * + * @param string $channels Comma-delimited list of channels to leave + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_2 + */ + public abstract function doPart($channels); + + /** + * Invites a user to an invite-only channel. + * + * @param string $nick Nick of the user to invite + * @param string $channel Name of the channel + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_7 + */ + public abstract function doInvite($nick, $channel); + + /** + * Obtains a list of nicks of users in specified channels. + * + * @param string $channels Comma-delimited list of one or more channels + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_5 + */ + public abstract function doNames($channels); + + /** + * Obtains a list of channel names and topics. + * + * @param string $channels Comma-delimited list of one or more channels + * to which the response should be restricted + * (optional) + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_6 + */ + public abstract function doList($channels = null); + + /** + * Retrieves or changes a channel topic. + * + * @param string $channel Name of the channel + * @param string $topic New topic to assign (optional) + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_4 + */ + public abstract function doTopic($channel, $topic = null); + + /** + * Retrieves or changes a channel or user mode. + * + * @param string $target Channel name or user nick + * @param string $mode New mode to assign (optional) + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_3 + */ + public abstract function doMode($target, $mode = null); + + /** + * Changes the client nick. + * + * @param string $nick New nick to assign + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_1_2 + */ + public abstract function doNick($nick); + + /** + * Retrieves information about a nick. + * + * @param string $nick Nick + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_5_2 + */ + public abstract function doWhois($nick); + + /** + * Sends a message to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the message to send + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_4_1 + */ + public abstract function doPrivmsg($target, $text); + + /** + * Sends a notice to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the notice to send + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_4_2 + */ + public abstract function doNotice($target, $text); + + /** + * Kicks a user from a channel. + * + * @param string $nick Nick of the user + * @param string $channel Channel name + * @param string $reason Reason for the kick (optional) + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_2_8 + */ + public abstract function doKick($nick, $channel, $reason = null); + + /** + * Responds to a server test of client responsiveness. + * + * @param string $daemon Daemon from which the original request originates + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html#c4_6_3 + */ + public abstract function doPong($daemon); + + /** + * Sends a CTCP ACTION (/me) command to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the action to perform + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.4 + */ + public abstract function doAction($target, $text); + + /** + * Sends a CTCP PING request to a user. + * + * @param string $nick User nick + * @param string $hash Hash to use in the handshake + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.2 + */ + public abstract function doPing($nick, $hash); + + /** + * Sends a CTCP VERSION request or response to a user. + * + * @param string $nick User nick + * @param string $version Version string to send for a response + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.1 + */ + public abstract function doVersion($nick, $version = null); + + /** + * Sends a CTCP TIME request to a user. + * + * @param string $nick User nick + * @param string $time Time string to send for a response + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.6 + */ + public abstract function doTime($nick, $time = null); + + /** + * Sends a CTCP FINGER request to a user. + * + * @param string $nick User nick + * @param string $finger Finger string to send for a response + * + * @return void + * @link http://www.irchelp.org/irchelp/rfc/ctcpspec.html + */ + public abstract function doFinger($nick, $finger = null); + + /** + * Sends a raw command to the server. + * + * @param string $command Command string to send + * + * @return void + */ + public abstract function doRaw($command); +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Driver/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Driver/Exception.php new file mode 100755 index 0000000000..5873b2cb96 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Driver/Exception.php @@ -0,0 +1,59 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to driver operations. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Driver_Exception extends Phergie_Exception +{ + /** + * Error indicating that an operation was requested requiring an active + * connection before one had been set + */ + const ERR_NO_ACTIVE_CONNECTION = 1; + + /** + * Error indicating that an operation was requested requiring an active + * connection where one had been set but not initiated + */ + const ERR_NO_INITIATED_CONNECTION = 2; + + /** + * Error indicating that an attempt to initiate a connection failed + */ + const ERR_CONNECTION_ATTEMPT_FAILED = 3; + + /** + * Error indicating that an attempt to send data via a connection failed + */ + const ERR_CONNECTION_WRITE_FAILED = 4; + + /** + * Error indicating that an attempt to read data via a connection failed + */ + const ERR_CONNECTION_READ_FAILED = 5; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Driver/Statusnet.php b/plugins/Irc/extlib/phergie/Phergie/Driver/Statusnet.php new file mode 100644 index 0000000000..84c85a01cc --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Driver/Statusnet.php @@ -0,0 +1,66 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * + * 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 <http://www.gnu.org/licenses/>. + * + * Extends the Streams driver (Phergie_Driver_Streams) to give external access + * to the socket resources and send method + * + * @category Phergie + * @package Phergie_Driver_Statusnet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class Phergie_Driver_Statusnet extends Phergie_Driver_Streams { + /** + * Handles construction of command strings and their transmission to the + * server. + * + * @param string $command Command to send + * @param string|array $args Optional string or array of sequential + * arguments + * + * @return string Command string that was sent + * @throws Phergie_Driver_Exception + */ + public function send($command, $args = '') { + return parent::send($command, $args); + } + + public function forceQuit() { + try { + // Send a QUIT command to the server + $this->send('QUIT', 'Reconnecting'); + } catch (Phergie_Driver_Exception $e){} + + // Terminate the socket connection + fclose($this->socket); + + // Remove the socket from the internal socket list + unset($this->sockets[(string) $this->getConnection()->getHostmask()]); + } + + /** + * Returns the array of sockets + * + * @return array Array of socket resources + */ + public function getSockets() { + return $this->sockets; + } +} \ No newline at end of file diff --git a/plugins/Irc/extlib/phergie/Phergie/Driver/Streams.php b/plugins/Irc/extlib/phergie/Phergie/Driver/Streams.php new file mode 100755 index 0000000000..73c0230c71 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Driver/Streams.php @@ -0,0 +1,729 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Driver that uses the sockets wrapper of the streams extension for + * communicating with the server and handles formatting and parsing of + * events using PHP. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Driver_Streams extends Phergie_Driver_Abstract +{ + /** + * Socket handlers + * + * @var array + */ + protected $sockets = array(); + + /** + * Reference to the currently active socket handler + * + * @var resource + */ + protected $socket; + + /** + * Amount of time in seconds to wait to receive an event each time the + * socket is polled + * + * @var float + */ + protected $timeout = 0.1; + + /** + * Handles construction of command strings and their transmission to the + * server. + * + * @param string $command Command to send + * @param string|array $args Optional string or array of sequential + * arguments + * + * @return string Command string that was sent + * @throws Phergie_Driver_Exception + */ + protected function send($command, $args = '') + { + $connection = $this->getConnection(); + $encoding = $connection->getEncoding(); + + // Require an open socket connection to continue + if (empty($this->socket)) { + throw new Phergie_Driver_Exception( + 'doConnect() must be called first', + Phergie_Driver_Exception::ERR_NO_INITIATED_CONNECTION + ); + } + + // Add the command + $buffer = strtoupper($command); + + // Add arguments + if (!empty($args)) { + + // Apply formatting if arguments are passed in as an array + if (is_array($args)) { + $end = count($args) - 1; + $args[$end] = ':' . $args[$end]; + $args = implode(' ', $args); + } else { + $args = ':' . $args; + } + + $buffer .= ' ' . $args; + } + + // Transmit the command over the socket connection + $attempts = $written = 0; + $temp = $buffer . "\r\n"; + $is_multibyte = !substr($encoding, 0, 8) === 'ISO-8859' && $encoding !== 'ASCII' && $encoding !== 'CP1252'; + $length = ($is_multibyte) ? mb_strlen($buffer, '8bit') : strlen($buffer); + while (true) { + $written += (int) fwrite($this->socket, $temp); + if ($written < $length) { + $temp = substr($temp, $written); + $attempts++; + if ($attempts == 3) { + throw new Phergie_Driver_Exception( + 'Unable to write to socket', + Phergie_Driver_Exception::ERR_CONNECTION_WRITE_FAILED + ); + } + } else { + break; + } + } + + // Return the command string that was transmitted + return $buffer; + } + + /** + * Overrides the parent class to set the currently active socket handler + * when the active connection is changed. + * + * @param Phergie_Connection $connection Active connection + * + * @return Phergie_Driver_Streams Provides a fluent interface + */ + public function setConnection(Phergie_Connection $connection) + { + // Set the active socket handler + $hostmask = (string) $connection->getHostmask(); + if (!empty($this->sockets[$hostmask])) { + $this->socket = $this->sockets[$hostmask]; + } + + // Set the active connection + return parent::setConnection($connection); + } + + /** + * Returns a list of hostmasks corresponding to sockets with data to read. + * + * @param int $sec Length of time to wait for new data (seconds) + * @param int $usec Length of time to wait for new data (microseconds) + * + * @return array List of hostmasks or an empty array if none were found + * to have data to read + */ + public function getActiveReadSockets($sec = 0, $usec = 200000) + { + $read = $this->sockets; + $write = null; + $error = null; + $active = array(); + + if (count($this->sockets) > 0) { + $number = stream_select($read, $write, $error, $sec, $usec); + if ($number > 0) { + foreach ($read as $item) { + $active[] = array_search($item, $this->sockets); + } + } + } + + return $active; + } + + /** + * Sets the amount of time to wait for a new event each time the socket + * is polled. + * + * @param float $timeout Amount of time in seconds + * + * @return Phergie_Driver_Streams Provides a fluent interface + */ + public function setTimeout($timeout) + { + $timeout = (float) $timeout; + if ($timeout) { + $this->timeout = $timeout; + } + return $this; + } + + /** + * Returns the amount of time to wait for a new event each time the + * socket is polled. + * + * @return float Amount of time in seconds + */ + public function getTimeout() + { + return $this->timeout; + } + + /** + * Supporting method to parse event argument strings where the last + * argument may contain a colon. + * + * @param string $args Argument string to parse + * @param int $count Optional maximum number of arguments + * + * @return array Array of argument values + */ + protected function parseArguments($args, $count = -1) + { + return preg_split('/ :?/S', $args, $count); + } + + /** + * Listens for an event on the current connection. + * + * @return Phergie_Event_Interface|null Event instance if an event was + * received, NULL otherwise + */ + public function getEvent() + { + // Check the socket is still active + if (feof($this->socket)) { + throw new Phergie_Driver_Exception( + 'EOF detected on socket', + Phergie_Driver_Exception::ERR_CONNECTION_READ_FAILED + ); + } + + // Check for a new event on the current connection + $buffer = fgets($this->socket, 512); + + // If no new event was found, return NULL + if (empty($buffer)) { + return null; + } + + // Strip the trailing newline from the buffer + $buffer = rtrim($buffer); + + // If the event is from the server... + if (substr($buffer, 0, 1) != ':') { + + // Parse the command and arguments + list($cmd, $args) = array_pad(explode(' ', $buffer, 2), 2, null); + $hostmask = new Phergie_Hostmask(null, null, $this->connection->getHost()); + + } else { + // If the event could be from the server or a user... + + // Parse the server hostname or user hostmask, command, and arguments + list($prefix, $cmd, $args) + = array_pad(explode(' ', ltrim($buffer, ':'), 3), 3, null); + if (strpos($prefix, '@') !== false) { + $hostmask = Phergie_Hostmask::fromString($prefix); + } else { + $hostmask = new Phergie_Hostmask(null, null, $prefix); + } + } + + // Parse the event arguments depending on the event type + $cmd = strtolower($cmd); + switch ($cmd) { + case 'names': + case 'nick': + case 'quit': + case 'ping': + case 'join': + case 'error': + $args = array(ltrim($args, ':')); + break; + + case 'privmsg': + case 'notice': + $args = $this->parseArguments($args, 2); + list($source, $ctcp) = $args; + if (substr($ctcp, 0, 1) === "\001" && substr($ctcp, -1) === "\001") { + $ctcp = substr($ctcp, 1, -1); + $reply = ($cmd == 'notice'); + list($cmd, $args) = array_pad(explode(' ', $ctcp, 2), 2, null); + $cmd = strtolower($cmd); + switch ($cmd) { + case 'version': + case 'time': + case 'finger': + if ($reply) { + $args = $ctcp; + } + break; + case 'ping': + if ($reply) { + $cmd .= 'Response'; + } else { + $cmd = 'ctcpPing'; + } + break; + case 'action': + $args = array($source, $args); + break; + + default: + $cmd = 'ctcp'; + if ($reply) { + $cmd .= 'Response'; + } + $args = array($source, $args); + break; + } + } + break; + + case 'oper': + case 'topic': + case 'mode': + $args = $this->parseArguments($args); + break; + + case 'part': + case 'kill': + case 'invite': + $args = $this->parseArguments($args, 2); + break; + + case 'kick': + $args = $this->parseArguments($args, 3); + break; + + // Remove the target from responses + default: + $args = substr($args, strpos($args, ' ') + 1); + break; + } + + // Create, populate, and return an event object + if (ctype_digit($cmd)) { + $event = new Phergie_Event_Response; + $event + ->setCode($cmd) + ->setDescription($args); + } else { + $event = new Phergie_Event_Request; + $event + ->setType($cmd) + ->setArguments($args); + if (isset($hostmask)) { + $event->setHostmask($hostmask); + } + } + $event->setRawData($buffer); + return $event; + } + + /** + * Initiates a connection with the server. + * + * @return void + */ + public function doConnect() + { + // Listen for input indefinitely + set_time_limit(0); + + // Get connection information + $connection = $this->getConnection(); + $hostname = $connection->getHost(); + $port = $connection->getPort(); + $password = $connection->getPassword(); + $username = $connection->getUsername(); + $nick = $connection->getNick(); + $realname = $connection->getRealname(); + $transport = $connection->getTransport(); + + // Establish and configure the socket connection + $remote = $transport . '://' . $hostname . ':' . $port; + $this->socket = @stream_socket_client($remote, $errno, $errstr); + if (!$this->socket) { + throw new Phergie_Driver_Exception( + 'Unable to connect: socket error ' . $errno . ' ' . $errstr, + Phergie_Driver_Exception::ERR_CONNECTION_ATTEMPT_FAILED + ); + } + + $seconds = (int) $this->timeout; + $microseconds = ($this->timeout - $seconds) * 1000000; + stream_set_timeout($this->socket, $seconds, $microseconds); + + // Send the password if one is specified + if (!empty($password)) { + $this->send('PASS', $password); + } + + // Send user information + $this->send( + 'USER', + array( + $username, + $hostname, + $hostname, + $realname + ) + ); + + $this->send('NICK', $nick); + + // Add the socket handler to the internal array for socket handlers + $this->sockets[(string) $connection->getHostmask()] = $this->socket; + } + + /** + * Terminates the connection with the server. + * + * @param string $reason Reason for connection termination (optional) + * + * @return void + */ + public function doQuit($reason = null) + { + // Send a QUIT command to the server + $this->send('QUIT', $reason); + + // Terminate the socket connection + fclose($this->socket); + + // Remove the socket from the internal socket list + unset($this->sockets[(string) $this->getConnection()->getHostmask()]); + } + + /** + * Joins a channel. + * + * @param string $channels Comma-delimited list of channels to join + * @param string $keys Optional comma-delimited list of channel keys + * + * @return void + */ + public function doJoin($channels, $keys = null) + { + $args = array($channels); + + if (!empty($keys)) { + $args[] = $keys; + } + + $this->send('JOIN', $args); + } + + /** + * Leaves a channel. + * + * @param string $channels Comma-delimited list of channels to leave + * + * @return void + */ + public function doPart($channels) + { + $this->send('PART', $channels); + } + + /** + * Invites a user to an invite-only channel. + * + * @param string $nick Nick of the user to invite + * @param string $channel Name of the channel + * + * @return void + */ + public function doInvite($nick, $channel) + { + $this->send('INVITE', array($nick, $channel)); + } + + /** + * Obtains a list of nicks of usrs in currently joined channels. + * + * @param string $channels Comma-delimited list of one or more channels + * + * @return void + */ + public function doNames($channels) + { + $this->send('NAMES', $channels); + } + + /** + * Obtains a list of channel names and topics. + * + * @param string $channels Comma-delimited list of one or more channels + * to which the response should be restricted + * (optional) + * + * @return void + */ + public function doList($channels = null) + { + $this->send('LIST', $channels); + } + + /** + * Retrieves or changes a channel topic. + * + * @param string $channel Name of the channel + * @param string $topic New topic to assign (optional) + * + * @return void + */ + public function doTopic($channel, $topic = null) + { + $args = array($channel); + + if (!empty($topic)) { + $args[] = $topic; + } + + $this->send('TOPIC', $args); + } + + /** + * Retrieves or changes a channel or user mode. + * + * @param string $target Channel name or user nick + * @param string $mode New mode to assign (optional) + * + * @return void + */ + public function doMode($target, $mode = null) + { + $args = array($target); + + if (!empty($mode)) { + $args[] = $mode; + } + + $this->send('MODE', $args); + } + + /** + * Changes the client nick. + * + * @param string $nick New nick to assign + * + * @return void + */ + public function doNick($nick) + { + $this->send('NICK', $nick); + } + + /** + * Retrieves information about a nick. + * + * @param string $nick Nick + * + * @return void + */ + public function doWhois($nick) + { + $this->send('WHOIS', $nick); + } + + /** + * Sends a message to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the message to send + * + * @return void + */ + public function doPrivmsg($target, $text) + { + $this->send('PRIVMSG', array($target, $text)); + } + + /** + * Sends a notice to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the notice to send + * + * @return void + */ + public function doNotice($target, $text) + { + $this->send('NOTICE', array($target, $text)); + } + + /** + * Kicks a user from a channel. + * + * @param string $nick Nick of the user + * @param string $channel Channel name + * @param string $reason Reason for the kick (optional) + * + * @return void + */ + public function doKick($nick, $channel, $reason = null) + { + $args = array($nick, $channel); + + if (!empty($reason)) { + $args[] = $response; + } + + $this->send('KICK', $args); + } + + /** + * Responds to a server test of client responsiveness. + * + * @param string $daemon Daemon from which the original request originates + * + * @return void + */ + public function doPong($daemon) + { + $this->send('PONG', $daemon); + } + + /** + * Sends a CTCP ACTION (/me) command to a nick or channel. + * + * @param string $target Channel name or user nick + * @param string $text Text of the action to perform + * + * @return void + */ + public function doAction($target, $text) + { + $buffer = rtrim('ACTION ' . $text); + + $this->doPrivmsg($target, chr(1) . $buffer . chr(1)); + } + + /** + * Sends a CTCP response to a user. + * + * @param string $nick User nick + * @param string $command Command to send + * @param string|array $args String or array of sequential arguments + * (optional) + * + * @return void + */ + protected function doCtcp($nick, $command, $args = null) + { + if (is_array($args)) { + $args = implode(' ', $args); + } + + $buffer = rtrim(strtoupper($command) . ' ' . $args); + + $this->doNotice($nick, chr(1) . $buffer . chr(1)); + } + + /** + * Sends a CTCP PING request or response (they are identical) to a user. + * + * @param string $nick User nick + * @param string $hash Hash to use in the handshake + * + * @return void + */ + public function doPing($nick, $hash) + { + $this->doCtcp($nick, 'PING', $hash); + } + + /** + * Sends a CTCP VERSION request or response to a user. + * + * @param string $nick User nick + * @param string $version Version string to send for a response + * + * @return void + */ + public function doVersion($nick, $version = null) + { + if ($version) { + $this->doCtcp($nick, 'VERSION', $version); + } else { + $this->doCtcp($nick, 'VERSION'); + } + } + + /** + * Sends a CTCP TIME request to a user. + * + * @param string $nick User nick + * @param string $time Time string to send for a response + * + * @return void + */ + public function doTime($nick, $time = null) + { + if ($time) { + $this->doCtcp($nick, 'TIME', $time); + } else { + $this->doCtcp($nick, 'TIME'); + } + } + + /** + * Sends a CTCP FINGER request to a user. + * + * @param string $nick User nick + * @param string $finger Finger string to send for a response + * + * @return void + */ + public function doFinger($nick, $finger = null) + { + if ($finger) { + $this->doCtcp($nick, 'FINGER', $finger); + } else { + $this->doCtcp($nick, 'FINGER'); + } + } + + /** + * Sends a raw command to the server. + * + * @param string $command Command string to send + * + * @return void + */ + public function doRaw($command) + { + $this->send('RAW', $command); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Abstract.php b/plugins/Irc/extlib/phergie/Phergie/Event/Abstract.php new file mode 100644 index 0000000000..54b035dc03 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Abstract.php @@ -0,0 +1,62 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for events. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +abstract class Phergie_Event_Abstract +{ + /** + * Event type, used for determining the callback to execute in response + * + * @var string + */ + protected $type; + + /** + * Returns the event type. + * + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * Sets the event type. + * + * @param string $type Event type + * + * @return Phergie_Event_Abstract Implements a fluent interface + */ + public function setType($type) + { + $this->type = (string) $type; + return $this; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Command.php b/plugins/Irc/extlib/phergie/Phergie/Event/Command.php new file mode 100644 index 0000000000..5940636ba7 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Command.php @@ -0,0 +1,62 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Event originating from a plugin for the bot. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Event_Command extends Phergie_Event_Request +{ + /** + * Reference to the plugin instance that created the event + * + * @var Phergie_Plugin_Abstract + */ + protected $plugin; + + /** + * Stores a reference to the plugin instance that created the event. + * + * @param Phergie_Plugin_Abstract $plugin Plugin instance + * + * @return Phergie_Event_Command Provides a fluent interface + */ + public function setPlugin(Phergie_Plugin_Abstract $plugin) + { + $this->plugin = $plugin; + return $this; + } + + /** + * Returns a reference to the plugin instance that created the event. + * + * @return Phergie_Plugin_Abstract + */ + public function getPlugin() + { + return $this->plugin; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Event/Exception.php new file mode 100644 index 0000000000..6b094a810c --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Exception.php @@ -0,0 +1,38 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to outgoing events. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Event_Exception extends Phergie_Exception +{ + /** + * Error indicating that an attempt was made to create an event of an + * unknown type + */ + const ERR_UNKNOWN_EVENT_TYPE = 1; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Handler.php b/plugins/Irc/extlib/phergie/Phergie/Event/Handler.php new file mode 100644 index 0000000000..e308df8a56 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Handler.php @@ -0,0 +1,190 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Handles events initiated by plugins. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Event_Handler implements IteratorAggregate, Countable +{ + /** + * Current queue of events + * + * @var array + */ + protected $events; + + /** + * Constructor to initialize the event queue. + * + * @return void + */ + public function __construct() + { + $this->events = array(); + } + + /** + * Adds an event to the queue. + * + * @param Phergie_Plugin_Abstract $plugin Plugin originating the event + * @param string $type Event type, corresponding to a + * Phergie_Event_Command::TYPE_* constant + * @param array $args Optional event arguments + * + * @return Phergie_Event_Handler Provides a fluent interface + */ + public function addEvent(Phergie_Plugin_Abstract $plugin, $type, + array $args = array() + ) { + if (!defined('Phergie_Event_Command::TYPE_' . strtoupper($type))) { + throw new Phergie_Event_Exception( + 'Unknown event type "' . $type . '"', + Phergie_Event_Exception::ERR_UNKNOWN_EVENT_TYPE + ); + } + + $event = new Phergie_Event_Command; + $event + ->setPlugin($plugin) + ->setType($type) + ->setArguments($args); + + $this->events[] = $event; + + return $this; + } + + /** + * Returns the current event queue. + * + * @return array Enumerated array of Phergie_Event_Command objects + */ + public function getEvents() + { + return $this->events; + } + + /** + * Clears the event queue. + * + * @return Phergie_Event_Handler Provides a fluent interface + */ + public function clearEvents() + { + $this->events = array(); + return $this; + } + + /** + * Replaces the current event queue with a given queue of events. + * + * @param array $events Ordered list of objects of the class + * Phergie_Event_Command + * + * @return Phergie_Event_Handler Provides a fluent interface + */ + public function replaceEvents(array $events) + { + $this->events = $events; + return $this; + } + + /** + * Returns whether an event of the given type exists in the queue. + * + * @param string $type Event type from Phergie_Event_Request::TYPE_* + * constants + * + * @return bool TRUE if an event of the specified type exists in the + * queue, FALSE otherwise + */ + public function hasEventOfType($type) + { + foreach ($this->events as $event) { + if ($event->getType() == $type) { + return true; + } + } + return false; + } + + /** + * Returns a list of events of a specified type. + * + * @param string $type Event type from Phergie_Event_Request::TYPE_* + * constants + * + * @return array Array containing event instances of the specified type + * or an empty array if no such events were found + */ + public function getEventsOfType($type) + { + $events = array(); + foreach ($this->events as $event) { + if ($event->getType() == $type) { + $events[] = $event; + } + } + return $events; + } + + /** + * Removes a single event from the event queue. + * + * @param Phergie_Event_Command $event Event to remove + * + * @return Phergie_Event_Handler Provides a fluent interface + */ + public function removeEvent(Phergie_Event_Command $event) + { + $key = array_search($event, $this->events); + if ($key !== false) { + unset($this->events[$key]); + } + return $this; + } + + /** + * Returns an iterator for the current event queue. + * + * @return ArrayIterator + */ + public function getIterator() + { + return new ArrayIterator($this->events); + } + + /** + * Returns the number of events in the event queue + * + * @return int number of queued events + */ + public function count() + { + return count($this->events); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Request.php b/plugins/Irc/extlib/phergie/Phergie/Event/Request.php new file mode 100755 index 0000000000..647b5acb87 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Request.php @@ -0,0 +1,468 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Autonomous event originating from a user or the server. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + * @link http://www.irchelp.org/irchelp/rfc/chapter4.html + */ +class Phergie_Event_Request + extends Phergie_Event_Abstract + implements ArrayAccess +{ + /** + * Nick message event type + */ + const TYPE_NICK = 'nick'; + + /** + * Whois message event type + */ + const TYPE_WHOIS = 'whois'; + + /** + * Quit command event type + */ + const TYPE_QUIT = 'quit'; + + /** + * Join message event type + */ + const TYPE_JOIN = 'join'; + + /** + * Kick message event type + */ + const TYPE_KICK = 'kick'; + + /** + * Part message event type + */ + const TYPE_PART = 'part'; + + /** + * Invite message event type + */ + const TYPE_INVITE = 'invite'; + + /** + * Mode message event type + */ + const TYPE_MODE = 'mode'; + + /** + * Topic message event type + */ + const TYPE_TOPIC = 'topic'; + + /** + * Private message command event type + */ + const TYPE_PRIVMSG = 'privmsg'; + + /** + * Notice message event type + */ + const TYPE_NOTICE = 'notice'; + + /** + * Pong message event type + */ + const TYPE_PONG = 'pong'; + + /** + * CTCP ACTION command event type + */ + const TYPE_ACTION = 'action'; + + /** + * CTCP PING command event type + */ + const TYPE_PING = 'ping'; + + /** + * CTCP TIME command event type + */ + const TYPE_TIME = 'time'; + + /** + * CTCP VERSION command event type + */ + const TYPE_VERSION = 'version'; + + /** + * RAW message event type + */ + const TYPE_RAW = 'raw'; + + /** + * Mapping of event types to their named parameters + * + * @var array + */ + protected static $map = array( + + self::TYPE_QUIT => array( + 'message' => 0 + ), + + self::TYPE_JOIN => array( + 'channel' => 0 + ), + + self::TYPE_KICK => array( + 'channel' => 0, + 'user' => 1, + 'comment' => 2 + ), + + self::TYPE_PART => array( + 'channel' => 0, + 'message' => 1 + ), + + self::TYPE_INVITE => array( + 'nickname' => 0, + 'channel' => 1 + ), + + self::TYPE_MODE => array( + 'target' => 0, + 'mode' => 1, + 'limit' => 2, + 'user' => 3, + 'banmask' => 4 + ), + + self::TYPE_TOPIC => array( + 'channel' => 0, + 'topic' => 1 + ), + + self::TYPE_PRIVMSG => array( + 'receiver' => 0, + 'text' => 1 + ), + + self::TYPE_NOTICE => array( + 'nickname' => 0, + 'text' => 1 + ), + + self::TYPE_ACTION => array( + 'target' => 0, + 'action' => 1 + ), + + self::TYPE_RAW => array( + 'message' => 0 + ) + + ); + + /** + * Hostmask representing the originating user, if applicable + * + * @var Phergie_Hostmask + */ + protected $hostmask; + + /** + * Arguments included with the message + * + * @var array + */ + protected $arguments; + + /** + * Raw data sent by the server + * + * @var string + */ + protected $rawData; + + /** + * Sets the hostmask representing the originating user. + * + * @param Phergie_Hostmask $hostmask User hostmask + * + * @return Phergie_Event_Request Provides a fluent interface + */ + public function setHostmask(Phergie_Hostmask $hostmask) + { + $this->hostmask = $hostmask; + return $this; + } + + /** + * Returns the hostmask representing the originating user. + * + * @return Phergie_Event_Request|null Hostmask or NULL if none was set + */ + public function getHostmask() + { + return $this->hostmask; + } + + /** + * Sets the arguments for the request. + * + * @param array $arguments Request arguments + * + * @return Phergie_Event_Request Provides a fluent interface + */ + public function setArguments($arguments) + { + $this->arguments = $arguments; + return $this; + } + + /** + * Sets the value of a single argument for the request. + * + * @param mixed $argument Integer position (starting from 0) or the + * equivalent string name of the argument from self::$map + * @param string $value Value to assign to the argument + * + * @return Phergie_Event_Request Provides a fluent interface + */ + public function setArgument($argument, $value) + { + $argument = $this->resolveArgument($argument); + if ($argument !== null) { + $this->arguments[$argument] = (string) $value; + } + return $this; + } + + /** + * Returns the arguments for the request. + * + * @return array + */ + public function getArguments() + { + return $this->arguments; + } + + /** + * Resolves an argument specification to an integer position. + * + * @param mixed $argument Integer position (starting from 0) or the + * equivalent string name of the argument from self::$map + * + * @return int|null Integer position of the argument or NULL if no + * corresponding argument was found + */ + protected function resolveArgument($argument) + { + if (isset($this->arguments[$argument])) { + return $argument; + } else { + $argument = strtolower($argument); + if (isset(self::$map[$this->type][$argument]) + && isset($this->arguments[self::$map[$this->type][$argument]]) + ) { + return self::$map[$this->type][$argument]; + } + } + return null; + } + + /** + * Returns a single specified argument for the request. + * + * @param mixed $argument Integer position (starting from 0) or the + * equivalent string name of the argument from self::$map + * + * @return string|null Argument value or NULL if none is set + */ + public function getArgument($argument) + { + $argument = $this->resolveArgument($argument); + if ($argument !== null) { + return $this->arguments[$argument]; + } + return null; + } + + /** + * Sets the raw buffer for the event. + * + * @param string $buffer Raw event buffer + * + * @return Phergie_Event_Request Provides a fluent interface + */ + public function setRawData($buffer) + { + $this->rawData = $buffer; + return $this; + } + + /** + * Returns the raw buffer sent from the server for the event. + * + * @return string + */ + public function getRawData() + { + return $this->rawData; + } + + /** + * Returns the nick of the user who originated the event. + * + * @return string + */ + public function getNick() + { + return $this->hostmask->getNick(); + } + + /** + * Returns the channel name if the event occurred in a channel or the + * user nick if the event was a private message directed at the bot by a + * user. + * + * @return string + */ + public function getSource() + { + if (substr($this->arguments[0], 0, 1) == '#') { + return $this->arguments[0]; + } + return $this->hostmask->getNick(); + } + + /** + * Returns whether or not the event occurred within a channel. + * + * @return TRUE if the event is in a channel, FALSE otherwise + */ + public function isInChannel() + { + return (substr($this->getSource(), 0, 1) == '#'); + } + + /** + * Returns whether or not the event originated from a user. + * + * @return TRUE if the event is from a user, FALSE otherwise + */ + public function isFromUser() + { + if (empty($this->hostmask)) { + return false; + } + $username = $this->hostmask->getUsername(); + return !empty($username); + } + + /** + * Returns whether or not the event originated from the server. + * + * @return TRUE if the event is from the server, FALSE otherwise + */ + public function isFromServer() + { + $username = $this->hostmask->getUsername(); + return empty($username); + } + + /** + * Provides access to named parameters via virtual "getter" methods. + * + * @param string $name Name of the method called + * @param array $arguments Arguments passed to the method (should always + * be empty) + * + * @return mixed Method return value + */ + public function __call($name, array $arguments) + { + if (!count($arguments) && substr($name, 0, 3) == 'get') { + return $this->getArgument(substr($name, 3)); + } + } + + /** + * Checks to see if an event argument is assigned a value. + * + * @param string|int $offset Argument name or position beginning from 0 + * + * @return bool TRUE if the argument has a value, FALSE otherwise + * @see ArrayAccess::offsetExists() + */ + public function offsetExists($offset) + { + return ($this->resolveArgument($offset) !== null); + } + + /** + * Returns the value of an event argument. + * + * @param string|int $offset Argument name or position beginning from 0 + * + * @return string|null Argument value or NULL if none is set + * @see ArrayAccess::offsetGet() + */ + public function offsetGet($offset) + { + return $this->getArgument($offset); + } + + /** + * Sets the value of an event argument. + * + * @param string|int $offset Argument name or position beginning from 0 + * @param string $value New argument value + * + * @return void + * @see ArrayAccess::offsetSet() + */ + public function offsetSet($offset, $value) + { + $offset = $this->resolveArgument($offset); + if ($offset !== null) { + $this->arguments[$offset] = $value; + } + } + + /** + * Removes the value set for an event argument. + * + * @param string|int $offset Argument name or position beginning from 0 + * + * @return void + * @see ArrayAccess::offsetUnset() + */ + public function offsetUnset($offset) + { + if ($offset = $this->resolveArgument($offset)) { + unset($this->arguments[$offset]); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Event/Response.php b/plugins/Irc/extlib/phergie/Phergie/Event/Response.php new file mode 100755 index 0000000000..097e2535e8 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Event/Response.php @@ -0,0 +1,953 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Event originating from the server in response to an event sent by the + * current client. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + * @link http://www.irchelp.org/irchelp/rfc/chapter6.html + */ +class Phergie_Event_Response extends Phergie_Event_Abstract +{ + /** + * <nickname> No such nick/channel + * + * Used to indicate the nickname parameter supplied to a command is currently + * unused. + */ + const ERR_NOSUCHNICK = '401'; + + /** + * <server name> No such server + * + * Used to indicate the server name given currently doesn't exist. + */ + const ERR_NOSUCHSERVER = '402'; + + /** + * <channel name> No such channel + * + * Used to indicate the given channel name is invalid. + */ + const ERR_NOSUCHCHANNEL = '403'; + + /** + * <channel name> Cannot send to channel + * + * Sent to a user who is either (a) not on a channel which is mode +n or (b) not + * a chanop (or mode +v) on a channel which has mode +m set and is trying to send + * a PRIVMSG message to that channel. + */ + const ERR_CANNOTSENDTOCHAN = '404'; + + /** + * <channel name> You have joined too many channels + * + * Sent to a user when they have joined the maximum number of allowed channels + * and they try to join another channel. + */ + const ERR_TOOMANYCHANNELS = '405'; + + /** + * <nickname> There was no such nickname + * + * Returned by WHOWAS to indicate there is no history information for that + * nickname. + */ + const ERR_WASNOSUCHNICK = '406'; + + /** + * <target> Duplicate recipients. No message delivered + * + * Returned to a client which is attempting to send PRIVMSG/NOTICE using the + * user@host destination format and for a user@host which has several + * occurrences. + */ + const ERR_TOOMANYTARGETS = '407'; + + /** + * No origin specified + * + * PING or PONG message missing the originator parameter which is required since + * these commands must work without valid prefixes. + */ + const ERR_NOORIGIN = '409'; + + /** + * No recipient given (<command>) + */ + const ERR_NORECIPIENT = '411'; + + /** + * No text to send + */ + const ERR_NOTEXTTOSEND = '412'; + + /** + * <mask> No toplevel domain specified + */ + const ERR_NOTOPLEVEL = '413'; + + /** + * <mask> Wildcard in toplevel domain + * + * 412 - 414 are returned by PRIVMSG to indicate that the message wasn't + * delivered for some reason. ERR_NOTOPLEVEL and ERR_WILDTOPLEVEL are errors that + * are returned when an invalid use of "PRIVMSG $<server>" or "PRIVMSG #<host>" + * is attempted. + */ + const ERR_WILDTOPLEVEL = '414'; + + /** + * <command> Unknown command + * + * Returned to a registered client to indicate that the command sent is unknown + * by the server. + */ + const ERR_UNKNOWNCOMMAND = '421'; + + /** + * MOTD File is missing + * + * Server's MOTD file could not be opened by the server. + */ + const ERR_NOMOTD = '422'; + + /** + * <server> No administrative info available + * + * Returned by a server in response to an ADMIN message when there is an error in + * finding the appropriate information. + */ + const ERR_NOADMININFO = '423'; + + /** + * File error doing <file op> on <file> + * + * Generic error message used to report a failed file operation during the + * processing of a message. + */ + const ERR_FILEERROR = '424'; + + /** + * No nickname given + * + * Returned when a nickname parameter expected for a command and isn't found. + */ + const ERR_NONICKNAMEGIVEN = '431'; + + /** + * <nick> Erroneus nickname + * + * Returned after receiving a NICK message which contains characters which do not + * fall in the defined set. See section x.x.x for details on valid nicknames. + */ + const ERR_ERRONEUSNICKNAME = '432'; + + /** + * <nick> Nickname is already in use + * + * Returned when a NICK message is processed that results in an attempt to change + * to a currently existing nickname. + */ + const ERR_NICKNAMEINUSE = '433'; + + /** + * <nick> Nickname collision KILL + * + * Returned by a server to a client when it detects a nickname collision + * (registered of a NICK that already exists by another server). + */ + const ERR_NICKCOLLISION = '436'; + + /** + * <nick> <channel> They aren't on that channel + * + * Returned by the server to indicate that the target user of the command is not + * on the given channel. + */ + const ERR_USERNOTINCHANNEL = '441'; + + /** + * <channel> You're not on that channel + * + * Returned by the server whenever a client tries to perform a channel effecting + * command for which the client isn't a member. + */ + const ERR_NOTONCHANNEL = '442'; + + /** + * <user> <channel> is already on channel + * + * Returned when a client tries to invite a user to a channel they are already + * on. + */ + const ERR_USERONCHANNEL = '443'; + + /** + * <user> User not logged in + * + * Returned by the summon after a SUMMON command for a user was unable to be + * performed since they were not logged in. + */ + const ERR_NOLOGIN = '444'; + + /** + * SUMMON has been disabled + * + * Returned as a response to the SUMMON command. Must be returned by any server + * which does not implement it. + */ + const ERR_SUMMONDISABLED = '445'; + + /** + * USERS has been disabled + * + * Returned as a response to the USERS command. Must be returned by any server + * which does not implement it. + */ + const ERR_USERSDISABLED = '446'; + + /** + * You have not registered + * + * Returned by the server to indicate that the client must be registered before + * the server will allow it to be parsed in detail. + */ + const ERR_NOTREGISTERED = '451'; + + /** + * <command> Not enough parameters + * + * Returned by the server by numerous commands to indicate to the client that it + * didn't supply enough parameters. + */ + const ERR_NEEDMOREPARAMS = '461'; + + /** + * You may not reregister + * + * Returned by the server to any link which tries to change part of the + * registered details (such as password or user details from second USER + * message). + */ + const ERR_ALREADYREGISTRED = '462'; + + /** + * Your host isn't among the privileged + * + * Returned to a client which attempts to register with a server which does not + * been setup to allow connections from the host the attempted connection is + * tried. + */ + const ERR_NOPERMFORHOST = '463'; + + /** + * Password incorrect + * + * Returned to indicate a failed attempt at registering a connection for which a + * password was required and was either not given or incorrect. + */ + const ERR_PASSWDMISMATCH = '464'; + + /** + * You are banned from this server + * + * Returned after an attempt to connect and register yourself with a server which + * has been setup to explicitly deny connections to you. + */ + const ERR_YOUREBANNEDCREEP = '465'; + + /** + * <channel> Channel key already set + */ + const ERR_KEYSET = '467'; + + /** + * <channel> Cannot join channel (+l) + */ + const ERR_CHANNELISFULL = '471'; + + /** + * <char> is unknown mode char to me + */ + const ERR_UNKNOWNMODE = '472'; + + /** + * <channel> Cannot join channel (+i) + */ + const ERR_INVITEONLYCHAN = '473'; + + /** + * <channel> Cannot join channel (+b) + */ + const ERR_BANNEDFROMCHAN = '474'; + + /** + * <channel> Cannot join channel (+k) + */ + const ERR_BADCHANNELKEY = '475'; + + /** + * Permission Denied- You're not an IRC operator + * + * Any command requiring operator privileges to operate must return this error to + * indicate the attempt was unsuccessful. + */ + const ERR_NOPRIVILEGES = '481'; + + /** + * <channel> You're not channel operator + * + * Any command requiring 'chanop' privileges (such as MODE messages) must return + * this error if the client making the attempt is not a chanop on the specified + * channel. + */ + const ERR_CHANOPRIVSNEEDED = '482'; + + /** + * You cant kill a server! + * + * Any attempts to use the KILL command on a server are to be refused and this + * error returned directly to the client. + */ + const ERR_CANTKILLSERVER = '483'; + + /** + * No O-lines for your host + * + * If a client sends an OPER message and the server has not been configured to + * allow connections from the client's host as an operator, this error must be + * returned. + */ + const ERR_NOOPERHOST = '491'; + + /** + * Unknown MODE flag + * + * Returned by the server to indicate that a MODE message was sent with a + * nickname parameter and that the a mode flag sent was not recognized. + */ + const ERR_UMODEUNKNOWNFLAG = '501'; + + /** + * Cant change mode for other users + * + * Error sent to any user trying to view or change the user mode for a user other + * than themselves. + */ + const ERR_USERSDONTMATCH = '502'; + + /** + * Dummy reply number. Not used. + */ + const RPL_NONE = '300'; + + /** + * [<reply>{<space><reply>}] + * + * Reply format used by USERHOST to list replies to the query list. The reply + * string is composed as follows <reply> = <nick>['*'] '=' <'+'|'-'><hostname> + * The '*' indicates whether the client has registered as an Operator. The '-' or + * '+' characters represent whether the client has set an AWAY message or not + * respectively. + */ + const RPL_USERHOST = '302'; + + /** + * [<nick> {<space><nick>}] + * + * Reply format used by ISON to list replies to the query list. + */ + const RPL_ISON = '303'; + + /** + * <nick> <away message> + */ + const RPL_AWAY = '301'; + + /** + * You are no longer marked as being away + */ + const RPL_UNAWAY = '305'; + + /** + * You have been marked as being away + * + * These replies are used with the AWAY command (if allowed). RPL_AWAY is sent to + * any client sending a PRIVMSG to a client which is away. RPL_AWAY is only sent + * by the server to which the client is connected. Replies RPL_UNAWAY and + * RPL_NOWAWAY are sent when the client removes and sets an AWAY message. + */ + const RPL_NOWAWAY = '306'; + + /** + * <nick> <user> <host> * <real name> + */ + const RPL_WHOISUSER = '311'; + + /** + * <nick> <server> <server info> + */ + const RPL_WHOISSERVER = '312'; + + /** + * <nick> is an IRC operator + */ + const RPL_WHOISOPERATOR = '313'; + + /** + * <nick> <integer> seconds idle + */ + const RPL_WHOISIDLE = '317'; + + /** + * <nick> End of /WHOIS list + */ + const RPL_ENDOFWHOIS = '318'; + + /** + * <nick> {[@|+]<channel><space>} + * + * Replies 311 - 313, 317 - 319 are all replies generated in response to a WHOIS + * message. Given that there are enough parameters present, the answering server + * must either formulate a reply out of the above numerics (if the query nick is + * found) or return an error reply. The '*' in RPL_WHOISUSER is there as the + * literal character and not as a wild card. For each reply set, only + * RPL_WHOISCHANNELS may appear more than once (for long lists of channel names). + * The '@' and '+' characters next to the channel name indicate whether a client + * is a channel operator or has been granted permission to speak on a moderated + * channel. The RPL_ENDOFWHOIS reply is used to mark the end of processing a + * WHOIS message. + */ + const RPL_WHOISCHANNELS = '319'; + + /** + * <nick> <user> <host> * <real name> + */ + const RPL_WHOWASUSER = '314'; + + /** + * <nick> End of WHOWAS + * + * When replying to a WHOWAS message, a server must use the replies + * RPL_WHOWASUSER, RPL_WHOISSERVER or ERR_WASNOSUCHNICK for each nickname in the + * presented list. At the end of all reply batches, there must be RPL_ENDOFWHOWAS + * (even if there was only one reply and it was an error). + */ + const RPL_ENDOFWHOWAS = '369'; + + /** + * Channel Users Name + */ + const RPL_LISTSTART = '321'; + + /** + * <channel> <# visible> <topic> + */ + const RPL_LIST = '322'; + + /** + * End of /LIST + * + * Replies RPL_LISTSTART, RPL_LIST, RPL_LISTEND mark the start, actual replies + * with data and end of the server's response to a LIST command. If there are no + * channels available to return, only the start and end reply must be sent. + */ + const RPL_LISTEND = '323'; + + /** + * <channel> <mode> <mode params> + */ + const RPL_CHANNELMODEIS = '324'; + + /** + * <channel> No topic is set + */ + const RPL_NOTOPIC = '331'; + + /** + * <channel> <topic> + * + * When sending a TOPIC message to determine the channel topic, one of two + * replies is sent. If the topic is set, RPL_TOPIC is sent back else RPL_NOTOPIC. + */ + const RPL_TOPIC = '332'; + + /** + * <channel> <nick> + * + * Returned by the server to indicate that the attempted INVITE message was + * successful and is being passed onto the end client. + */ + const RPL_INVITING = '341'; + + /** + * <user> Summoning user to IRC + * + * Returned by a server answering a SUMMON message to indicate that it is + * summoning that user. + */ + const RPL_SUMMONING = '342'; + + /** + * <version>.<debuglevel> <server> <comments> + * + * Reply by the server showing its version details. The <version> is the version + * of the software being used (including any patchlevel revisions) and the + * <debuglevel> is used to indicate if the server is running in "debug mode". The + * "comments" field may contain any comments about the version or further version + * details. + */ + const RPL_VERSION = '351'; + + /** + * <channel> <user> <host> <server> <nick> <H|G>[*][@|+] <hopcount> <real name> + */ + const RPL_WHOREPLY = '352'; + + /** + * <name> End of /WHO list + * + * The RPL_WHOREPLY and RPL_ENDOFWHO pair are used to answer a WHO message. The + * RPL_WHOREPLY is only sent if there is an appropriate match to the WHO query. + * If there is a list of parameters supplied with a WHO message, a RPL_ENDOFWHO + * must be sent after processing each list item with <name> being the item. + */ + const RPL_ENDOFWHO = '315'; + + /** + * <channel> [[@|+]<nick> [[@|+]<nick> [...]]] + */ + const RPL_NAMREPLY = '353'; + + /** + * <channel> End of /NAMES list + * + * To reply to a NAMES message, a reply pair consisting of RPL_NAMREPLY and + * RPL_ENDOFNAMES is sent by the server back to the client. If there is no + * channel found as in the query, then only RPL_ENDOFNAMES is returned. The + * exception to this is when a NAMES message is sent with no parameters and all + * visible channels and contents are sent back in a series of RPL_NAMEREPLY + * messages with a RPL_ENDOFNAMES to mark the end. + */ + const RPL_ENDOFNAMES = '366'; + + /** + * <mask> <server> <hopcount> <server info> + */ + const RPL_LINKS = '364'; + + /** + * <mask> End of /LINKS list + * + * In replying to the LINKS message, a server must send replies back using the + * RPL_LINKS numeric and mark the end of the list using an RPL_ENDOFLINKS reply.v + */ + const RPL_ENDOFLINKS = '365'; + + /** + * <channel> <banid> + */ + const RPL_BANLIST = '367'; + + /** + * <channel> End of channel ban list + * + * When listing the active 'bans' for a given channel, a server is required to + * send the list back using the RPL_BANLIST and RPL_ENDOFBANLIST messages. A + * separate RPL_BANLIST is sent for each active banid. After the banids have been + * listed (or if none present) a RPL_ENDOFBANLIST must be sent. + */ + const RPL_ENDOFBANLIST = '368'; + + /** + * <string> + */ + const RPL_INFO = '371'; + + /** + * End of /INFO list + * + * A server responding to an INFO message is required to send all its 'info' in a + * series of RPL_INFO messages with a RPL_ENDOFINFO reply to indicate the end of + * the replies. + */ + const RPL_ENDOFINFO = '374'; + + /** + * - <server> Message of the day - + */ + const RPL_MOTDSTART = '375'; + + /** + * - <text> + */ + const RPL_MOTD = '372'; + + /** + * End of /MOTD command + * + * When responding to the MOTD message and the MOTD file is found, the file is + * displayed line by line, with each line no longer than 80 characters, using + * RPL_MOTD format replies. These should be surrounded by a RPL_MOTDSTART (before + * the RPL_MOTDs) and an RPL_ENDOFMOTD (after). + */ + const RPL_ENDOFMOTD = '376'; + + /** + * You are now an IRC operator + * + * RPL_YOUREOPER is sent back to a client which has just successfully issued an + * OPER message and gained operator status. + */ + const RPL_YOUREOPER = '381'; + + /** + * <config file> Rehashing + * + * If the REHASH option is used and an operator sends a REHASH message, an + * RPL_REHASHING is sent back to the operator. + */ + const RPL_REHASHING = '382'; + + /** + * <server> <string showing server's local time> + * + * When replying to the TIME message, a server must send the reply using the + * RPL_TIME format above. The string showing the time need only contain the + * correct day and time there. There is no further requirement for the time + * string. + */ + const RPL_TIME = '391'; + + /** + * UserID Terminal Host + */ + const RPL_USERSSTART = '392'; + + /** + * %-8s %-9s %-8s + */ + const RPL_USERS = '393'; + + /** + * End of users + */ + const RPL_ENDOFUSERS = '394'; + + /** + * Nobody logged in + * + * If the USERS message is handled by a server, the replies RPL_USERSTART, + * RPL_USERS, RPL_ENDOFUSERS and RPL_NOUSERS are used. RPL_USERSSTART must be + * sent first, following by either a sequence of RPL_USERS or a single + * RPL_NOUSER. Following this is RPL_ENDOFUSERS. + */ + const RPL_NOUSERS = '395'; + + /** + * Link <version & debug level> <destination> <next server> + */ + const RPL_TRACELINK = '200'; + + /** + * Try. <class> <server> + */ + const RPL_TRACECONNECTING = '201'; + + /** + * H.S. <class> <server> + */ + const RPL_TRACEHANDSHAKE = '202'; + + /** + * ???? <class> [<client IP address in dot form>] + */ + const RPL_TRACEUNKNOWN = '203'; + + /** + * Oper <class> <nick> + */ + const RPL_TRACEOPERATOR = '204'; + + /** + * User <class> <nick> + */ + const RPL_TRACEUSER = '205'; + + /** + * Serv <class> <int>S <int>C <server> <nick!user|*!*>@<host|server> + */ + const RPL_TRACESERVER = '206'; + + /** + * <newtype> 0 <client name> + */ + const RPL_TRACENEWTYPE = '208'; + + /** + * File <logfile> <debug level> + * + * The RPL_TRACE* are all returned by the server in response to the TRACE + * message. How many are returned is dependent on the the TRACE message and + * whether it was sent by an operator or not. There is no predefined order for + * which occurs first. Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and + * RPL_TRACEHANDSHAKE are all used for connections which have not been fully + * established and are either unknown, still attempting to connect or in the + * process of completing the 'server handshake'. RPL_TRACELINK is sent by any + * server which handles a TRACE message and has to pass it on to another server. + * The list of RPL_TRACELINKs sent in response to a TRACE command traversing the + * IRC network should reflect the actual connectivity of the servers themselves + * along that path. RPL_TRACENEWTYPE is to be used for any connection which does + * not fit in the other categories but is being displayed anyway. + */ + const RPL_TRACELOG = '261'; + + /** + * <linkname> <sendq> <sent messages> <sent bytes> <received messages> <received + * bytes> <time open> + */ + const RPL_STATSLINKINFO = '211'; + + /** + * <command> <count> + */ + const RPL_STATSCOMMANDS = '212'; + + /** + * C <host> * <name> <port> <class> + */ + const RPL_STATSCLINE = '213'; + + /** + * N <host> * <name> <port> <class> + */ + const RPL_STATSNLINE = '214'; + + /** + * I <host> * <host> <port> <class> + */ + const RPL_STATSILINE = '215'; + + /** + * K <host> * <username> <port> <class> + */ + const RPL_STATSKLINE = '216'; + + /** + * Y <class> <ping frequency> <connect frequency> <max sendq> + */ + const RPL_STATSYLINE = '218'; + + /** + * <stats letter> End of /STATS report + */ + const RPL_ENDOFSTATS = '219'; + + /** + * L <hostmask> * <servername> <maxdepth> + */ + const RPL_STATSLLINE = '241'; + + /** + * Server Up %d days %d%02d%02d + */ + const RPL_STATSUPTIME = '242'; + + /** + * O <hostmask> * <name> + */ + const RPL_STATSOLINE = '243'; + + /** + * H <hostmask> * <servername> + */ + const RPL_STATSHLINE = '244'; + + /** + * <user mode string> + * + * To answer a query about a client's own mode, RPL_UMODEIS is sent back. + */ + const RPL_UMODEIS = '221'; + + /** + * There are <integer> users and <integer> invisible on <integer> servers + */ + const RPL_LUSERCLIENT = '251'; + + /** + * <integer> operator(s) online + */ + const RPL_LUSEROP = '252'; + + /** + * <integer> unknown connection(s) + */ + const RPL_LUSERUNKNOWN = '253'; + + /** + * <integer> channels formed + */ + const RPL_LUSERCHANNELS = '254'; + + /** + * I have <integer> clients and <integer> servers + * + * In processing an LUSERS message, the server sends a set of replies from + * RPL_LUSERCLIENT, RPL_LUSEROP, RPL_USERUNKNOWN, RPL_LUSERCHANNELS and + * RPL_LUSERME. When replying, a server must send back RPL_LUSERCLIENT and + * RPL_LUSERME. The other replies are only sent back if a non-zero count is found + * for them. + */ + const RPL_LUSERME = '255'; + + /** + * <server> Administrative info + */ + const RPL_ADMINME = '256'; + + /** + * <admin info> + */ + const RPL_ADMINLOC1 = '257'; + + /** + * <admin info> + */ + const RPL_ADMINLOC2 = '258'; + + /** + * <admin info> + * + * When replying to an ADMIN message, a server is expected to use replies + * RLP_ADMINME through to RPL_ADMINEMAIL and provide a text message with each. + * For RPL_ADMINLOC1 a description of what city, state and country the server is + * in is expected, followed by details of the university and department + * (RPL_ADMINLOC2) and finally the administrative contact for the server (an + * email address here is required) in RPL_ADMINEMAIL. + */ + const RPL_ADMINEMAIL = '259'; + + /** + * Reply code sent by the server, which can be compared to the ERR_* and + * RPL_* constants + * + * @var string + */ + protected $code; + + /** + * Reply code description sent by the server. + * + * @var string + */ + protected $description; + + /** + * Raw data sent by the server + * + * @var string + */ + protected $rawData; + + /** + * Event type + * + * @var string + */ + protected $type = 'response'; + + /** + * Sets the reply code sent by the server. + * + * @param string $code Reply code + * + * @return Phergie_Event_Response Provides a fluent interface + */ + public function setCode($code) + { + $this->code = $code; + return $this; + } + + /** + * Returns the reply code sent by the server. + * + * @return string + */ + public function getCode() + { + return $this->code; + } + + /** + * Sets the reply code description sent by the server. + * + * @param string $description Reply code description + * + * @return Phergie_Event_Response Provides a fluent interface + */ + public function setDescription($description) + { + $this->description = $description; + return $this; + } + + /** + * Returns the reply code description sent by the server. + * + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Sets the raw buffer for the given event + * + * @param string $buffer Raw event buffer + * + * @return Phergie_Event_Response Provides a fluent interface + */ + public function setRawData($buffer) + { + $this->rawData = $buffer; + return $this; + } + + /** + * Returns the raw buffer that was sent from the server for that event + * + * @return string + */ + public function getRawData() + { + return $this->rawData; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Exception.php new file mode 100755 index 0000000000..f4d71e5319 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Exception.php @@ -0,0 +1,33 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for all Phergie-related exceptions. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Exception extends Exception +{ +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Hostmask.php b/plugins/Irc/extlib/phergie/Phergie/Hostmask.php new file mode 100755 index 0000000000..b13842f53c --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Hostmask.php @@ -0,0 +1,217 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Data structure for a hostmask. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Hostmask +{ + /** + * Host + * + * @var string + */ + protected $host; + + /** + * Nick + * + * @var string + */ + protected $nick; + + /** + * Username + * + * @var string + */ + protected $username; + + /** + * Regular expression used to parse a hostmask + * + * @var string + */ + protected static $regex = '/^([^!@]+)!(?:[ni]=)?([^@]+)@([^ ]+)/'; + + /** + * Constructor to initialize components of the hostmask. + * + * @param string $nick Nick component + * @param string $username Username component + * @param string $host Host component + * + * @return void + */ + public function __construct($nick, $username, $host) + { + $this->nick = $nick; + $this->username = $username; + $this->host = $host; + } + + /** + * Returns whether a given string appears to be a valid hostmask. + * + * @param string $string Alleged hostmask string + * + * @return bool TRUE if the string appears to be a valid hostmask, FALSE + * otherwise + */ + public static function isValid($string) + { + return (preg_match(self::$regex, $string) > 0); + } + + /** + * Parses a string containing the entire hostmask into a new instance of + * this class. + * + * @param string $hostmask Entire hostmask including the nick, username, + * and host components + * + * @return Phergie_Hostmask New instance populated with data parsed from + * the provided hostmask string + * @throws Phergie_Hostmask_Exception + */ + public static function fromString($hostmask) + { + if (preg_match(self::$regex, $hostmask, $match)) { + list(, $nick, $username, $host) = $match; + return new self($nick, $username, $host); + } + + throw new Phergie_Hostmask_Exception( + 'Invalid hostmask specified: "' . $hostmask . '"', + Phergie_Hostmask_Exception::ERR_INVALID_HOSTMASK + ); + } + + /** + * Sets the hostname. + * + * @param string $host Hostname + * + * @return Phergie_Hostmask Provides a fluent interface + */ + public function setHost($host) + { + $this->host = $host; + + return $this; + } + + /** + * Returns the hostname. + * + * @return string + */ + public function getHost() + { + return $this->host; + } + + /** + * Sets the username of the user. + * + * @param string $username Username + * + * @return Phergie_Hostmask Provides a fluent interface + */ + public function setUsername($username) + { + $this->username = $username; + + return $this; + } + + /** + * Returns the username of the user. + * + * @return string + */ + public function getUsername() + { + return $this->username; + } + + /** + * Sets the nick of the user. + * + * @param string $nick User nick + * + * @return Phergie_Hostmask Provides a fluent interface + */ + public function setNick($nick) + { + $this->nick = $nick; + + return $this; + } + + /** + * Returns the nick of the user. + * + * @return string + */ + public function getNick() + { + return $this->nick; + } + + /** + * Returns the hostmask for the originating server or user. + * + * @return string + */ + public function __toString() + { + return $this->nick . '!' . $this->username . '@' . $this->host; + } + + /** + * Returns whether a given hostmask matches a given pattern. + * + * @param string $pattern Pattern using conventions of a ban mask where + * represents a wildcard + * @param string $hostmask Optional hostmask to match against, if not + * the current hostmask instance + * + * @return bool TRUE if the hostmask matches the pattern, FALSE otherwise + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_3 Examples + */ + public function matches($pattern, $hostmask = null) + { + if (!$hostmask) { + $hostmask = (string) $this; + } + + $pattern = str_replace('*', '.*', $pattern); + + return (preg_match('#^' . $pattern . '$#', $hostmask) > 0); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Hostmask/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Hostmask/Exception.php new file mode 100644 index 0000000000..590f020046 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Hostmask/Exception.php @@ -0,0 +1,37 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to hostmask handling. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Hostmask_Exception extends Phergie_Exception +{ + /** + * Error indicating that an invalid hostmask string was specified + */ + const ERR_INVALID_HOSTMASK = 1; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Abstract.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Abstract.php new file mode 100755 index 0000000000..b7105ecdb2 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Abstract.php @@ -0,0 +1,605 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for plugins to provide event handler stubs and commonly needed + * functionality. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +abstract class Phergie_Plugin_Abstract +{ + /** + * Current configuration handler + * + * @var Phergie_Config + */ + protected $config; + + /** + * Plugin handler used to provide access to other plugins + * + * @var Phergie_Plugin_Handler + */ + protected $plugins; + + /** + * Current event handler instance for outgoing events + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Current connection instance + * + * @var Phergie_Connection + */ + protected $connection; + + /** + * Current incoming event being handled + * + * @var Phergie_Event_Request|Phergie_Event_Response + */ + protected $event; + + /** + * Plugin short name + * + * @var string + */ + protected $name; + + /** + * Returns the short name for the plugin based on its class name. + * + * @return string + */ + public function getName() + { + if (empty($this->name)) { + $this->name = substr(strrchr(get_class($this), '_'), 1); + } + return $this->name; + } + + /** + * Sets the short name for the plugin. + * + * @param string $name Plugin short name + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setName($name) + { + $this->name = (string) $name; + return $this; + } + + /** + * Indicates that the plugin failed to load due to an unsatisfied + * runtime requirement, such as a missing dependency. + * + * @param string $message Error message to provide more information + * about the reason for the failure + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + * @throws Phergie_Plugin_Exception Always + */ + protected function fail($message) + { + throw new Phergie_Plugin_Exception( + $message, + Phergie_Plugin_Exception::ERR_REQUIREMENT_UNSATISFIED + ); + } + + /** + * Sets the current configuration handler. + * + * @param Phergie_Config $config Configuration handler + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setConfig(Phergie_Config $config) + { + $this->config = $config; + return $this; + } + + /** + * Returns the current configuration handler or the value of a single + * setting from it. + * + * @param string $name Optional name of a setting for which the value + * should be returned instead of the entire configuration handler + * @param mixed $default Optional default value to return if no value + * is set for the setting indicated by $name + * + * @return Phergie_Config|mixed Configuration handler or value of the + * setting specified by $name + * @throws Phergie_Plugin_Exception No configuration handler has been set + */ + public function getConfig($name = null, $default = null) + { + if (empty($this->config)) { + throw new Phergie_Plugin_Exception( + 'Configuration handler cannot be accessed before one is set', + Phergie_Plugin_Exception::ERR_NO_CONFIG_HANDLER + ); + } + if (!is_null($name)) { + if (!isset($this->config[$name])) { + return $default; + } + return $this->config[$name]; + } + return $this->config; + } + + /** + * Sets the current plugin handler. + * + * @param Phergie_Plugin_Handler $handler Plugin handler + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setPluginHandler(Phergie_Plugin_Handler $handler) + { + $this->plugins = $handler; + return $this; + } + + /** + * Returns the current plugin handler. + * + * @return Phergie_Plugin_Handler + * @throws Phergie_Plugin_Exception No plugin handler has been set + */ + public function getPluginHandler() + { + if (empty($this->plugins)) { + throw new Phergie_Plugin_Exception( + 'Plugin handler cannot be accessed before one is set', + Phergie_Plugin_Exception::ERR_NO_PLUGIN_HANDLER + ); + } + return $this->plugins; + } + + /** + * Sets the current event handler. + * + * @param Phergie_Event_Handler $handler Event handler + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setEventHandler(Phergie_Event_Handler $handler) + { + $this->events = $handler; + return $this; + } + + /** + * Returns the current event handler. + * + * @return Phergie_Event_Handler + * @throws Phergie_Plugin_Exception No event handler has been set + */ + public function getEventHandler() + { + if (empty($this->events)) { + throw new Phergie_Plugin_Exception( + 'Event handler cannot be accessed before one is set', + Phergie_Plugin_Exception::ERR_NO_EVENT_HANDLER + ); + } + return $this->events; + } + + /** + * Sets the current connection. + * + * @param Phergie_Connection $connection Connection + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setConnection(Phergie_Connection $connection) + { + $this->connection = $connection; + return $this; + } + + /** + * Returns the current event connection. + * + * @return Phergie_Connection + * @throws Phergie_Plugin_Exception No connection has been set + */ + public function getConnection() + { + if (empty($this->connection)) { + throw new Phergie_Plugin_Exception( + 'Connection cannot be accessed before one is set', + Phergie_Plugin_Exception::ERR_NO_CONNECTION + ); + } + return $this->connection; + } + + /** + * Sets the current incoming event to be handled. + * + * @param Phergie_Event_Request|Phergie_Event_Response $event Event + * + * @return Phergie_Plugin_Abstract Provides a fluent interface + */ + public function setEvent($event) + { + $this->event = $event; + return $this; + } + + /** + * Returns the current incoming event to be handled. + * + * @return Phergie_Event_Request|Phergie_Event_Response + */ + public function getEvent() + { + if (empty($this->event)) { + throw new Phergie_Plugin_Exception( + 'Event cannot be accessed before one is set', + Phergie_Plugin_Exception::ERR_NO_EVENT + ); + } + return $this->event; + } + + /** + * Provides do* methods with signatures identical to those of + * Phergie_Driver_Abstract but that queue up events to be dispatched + * later. + * + * @param string $name Name of the method called + * @param array $args Arguments passed in the call + * + * @return mixed + */ + public function __call($name, array $args) + { + $subcmd = substr($name, 0, 2); + if ($subcmd == 'do') { + $type = strtolower(substr($name, 2)); + $this->getEventHandler()->addEvent($this, $type, $args); + } else if ($subcmd != 'on') { + throw new Phergie_Plugin_Exception( + 'Called invalid method ' . $name . ' in ' . get_class($this), + Phergie_Plugin_Exception::ERR_INVALID_CALL + ); + } + } + + /** + * Handler for when the plugin is initially loaded - useful for checking + * runtime dependencies or performing any setup necessary for the plugin + * to function properly such as initializing a database. + * + * @return void + */ + public function onLoad() + { + } + + /** + * Handler for when the bot initially connects to a server. + * + * @return void + */ + public function onConnect() + { + } + + /** + * Handler for each tick, a single iteration of the continuous loop + * executed by the bot to receive, handle, and send events - useful for + * repeated execution of tasks on a time interval. + * + * @return void + */ + public function onTick() + { + } + + /** + * Handler for when any event is received but has not yet been dispatched + * to the plugin handler method specific to its event type. + * + * @return bool|null|void FALSE to short-circuit further event + * processing, TRUE or NULL otherwise + */ + public function preEvent() + { + } + + /** + * Handler for after plugin processing of an event has concluded but + * before any events triggered in response by plugins are sent to the + * server - useful for modifying outgoing events before they are sent. + * + * @return void + */ + public function preDispatch() + { + } + + /** + * Handler for after any events triggered by plugins in response to a + * received event are sent to the server. + * + * @return void + */ + public function postDispatch() + { + } + + /** + * Handler for when the server prompts the client for a nick. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_1_2 + */ + public function onNick() + { + } + + /** + * Handler for when a user obtains operator privileges. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_1_5 + */ + public function onOper() + { + } + + /** + * Handler for when the client session is about to be terminated. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_1_6 + */ + public function onQuit() + { + } + + /** + * Handler for when a user joins a channel. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_1 + */ + public function onJoin() + { + } + + /** + * Handler for when a user leaves a channel. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_2 + */ + public function onPart() + { + } + + /** + * Handler for when a user or channel mode is changed. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_3 + */ + public function onMode() + { + } + + /** + * Handler for when a channel topic is viewed or changed. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_4 + */ + public function onTopic() + { + } + + /** + * Handler for when a message is received from a channel or user. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_4_1 + */ + public function onPrivmsg() + { + } + + /** + * Handler for when the bot receives a CTCP ACTION request. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.4 + */ + public function onAction() + { + } + + /** + * Handler for when a notice is received. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_4_2 + */ + public function onNotice() + { + } + + /** + * Handler for when a user is kicked from a channel. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_8 + */ + public function onKick() + { + } + + /** + * Handler for when the bot receives a ping event from a server, at + * which point it is expected to respond with a pong request within + * a short period else the server may terminate its connection. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_6_2 + */ + public function onPing() + { + } + + /** + * Handler for when the bot receives a CTCP TIME request. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.6 + */ + public function onTime() + { + } + + /** + * Handler for when the bot receives a CTCP VERSION request. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.1 + */ + public function onVersion() + { + } + + /** + * Handler for when the bot receives a CTCP PING request. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.2 + */ + public function onCtcpPing() + { + } + + /** + * Handler for when the bot receives a CTCP request of an unknown type. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html + */ + public function onCtcp() + { + } + + /** + * Handler for when a reply is received for a CTCP PING request sent by + * the bot. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.2 + */ + public function onPingReply() + { + } + + /** + * Handler for when a reply is received for a CTCP TIME request sent by + * the bot. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.6 + */ + public function onTimeReply() + { + } + + /** + * Handler for when a reply is received for a CTCP VERSION request sent + * by the bot. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html#4.1 + */ + public function onVersionReply() + { + } + + /** + * Handler for when a reply received for a CTCP request of an unknown + * type. + * + * @return void + * @link http://www.invlogic.com/irc/ctcp.html + */ + public function onCtcpReply() + { + } + + /** + * Handler for when the bot receives a kill request from a server. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_6_1 + */ + public function onKill() + { + } + + /** + * Handler for when the bot receives an invitation to join a channel. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_7 + */ + public function onInvite() + { + } + + /** + * Handler for when a server response is received to a command issued by + * the bot. + * + * @return void + * @link http://irchelp.org/irchelp/rfc/chapter6.html + */ + public function onResponse() + { + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Acl.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Acl.php new file mode 100755 index 0000000000..e209e32e14 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Acl.php @@ -0,0 +1,186 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Acl + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Acl + */ + +/** + * Provides an access control system to limit reponses to events based on + * the users who originate them. + * + * Configuration settings: + * acl.whitelist - mapping of user hostmask patterns (optionally by host) to + * plugins and methods where those plugins and methods will + * only be accessible to those users (i.e. and inaccessible + * to other users) + * acl.blacklist - mapping of user hostmasks (optionally by host) to plugins + * and methods where where those plugins and methods will be + * inaccessible to those users but accessible to other users + * acl.ops - TRUE to automatically give access to whitelisted plugins + * and methods to users with ops for events they initiate in + * channels where they have ops + * + * The whitelist and blacklist settings are formatted like so: + * <code> + * 'acl.whitelist' => array( + * 'hostname1' => array( + * 'pattern1' => array( + * 'plugins' => array( + * 'ShortPluginName' + * ), + * 'methods' => array( + * 'methodName' + * ) + * ), + * ) + * ), + * </code> + * + * The hostname array dimension is optional; if not used, rules will be + * applied across all connections. The pattern is a user hostmask pattern + * where asterisks (*) are used for wildcards. Plugins and methods do not + * need to be set to empty arrays if they are not used; simply exclude them. + * + * @category Phergie + * @package Phergie_Plugin_Acl + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Acl + * @uses Phergie_Plugin_UserInfo pear.phergie.org + */ +class Phergie_Plugin_Acl extends Phergie_Plugin_Abstract +{ + /** + * Checks for permission settings and removes the plugin if none are set. + * + * @return void + */ + public function onLoad() + { + $this->plugins->getPlugin('UserInfo'); + + if (!$this->getConfig('acl.blacklist') + && !$this->getConfig('acl.whitelist') + ) { + $this->plugins->removePlugin($this); + } + } + + /** + * Applies a set of rules to a plugin handler iterator. + * + * @param Phergie_Plugin_Iterator $iterator Iterator to receive rules + * @param array $rules Associate array containing + * either a 'plugins' key pointing to an array containing plugin + * short names to filter, a 'methods' key pointing to an array + * containing method names to filter, or both + * + * @return void + */ + protected function applyRules(Phergie_Plugin_Iterator $iterator, array $rules) + { + if (!empty($rules['plugins'])) { + $iterator->addPluginFilter($rules['plugins']); + } + if (!empty($rules['methods'])) { + $iterator->addMethodFilter($rules['methods']); + } + } + + /** + * Checks permission settings and short-circuits event processing for + * blacklisted users. + * + * @return void + */ + public function preEvent() + { + // Ignore server responses + if ($this->event instanceof Phergie_Event_Response) { + return; + } + + // Ignore server-initiated events + if (!$this->event->isFromUser()) { + return; + } + + // Get the iterator used to filter plugins when processing events + $iterator = $this->plugins->getIterator(); + + // Get configuration setting values + $whitelist = $this->getConfig('acl.whitelist', array()); + $blacklist = $this->getConfig('acl.blacklist', array()); + $ops = $this->getConfig('acl.ops', false); + + // Support host-specific lists + $host = $this->connection->getHost(); + foreach (array('whitelist', 'blacklist') as $var) { + foreach ($$var as $pattern => $rules) { + $regex = '/^' . str_replace('*', '.*', $pattern) . '$/i'; + if (preg_match($regex, $host)) { + ${$var} = ${$var}[$pattern]; + break; + } + } + } + + // Get information on the user initiating the current event + $hostmask = $this->event->getHostmask(); + $isOp = $ops + && $this->event->isInChannel() + && $this->plugins->userInfo->isOp( + $this->event->getNick(), + $this->event->getSource() + ); + + // Filter whitelisted commands if the user is not on the whitelist + if (!$isOp) { + $whitelisted = false; + foreach ($whitelist as $pattern => $rules) { + if ($hostmask->matches($pattern)) { + $whitelisted = true; + } + } + if (!$whitelisted) { + foreach ($whitelist as $pattern => $rules) { + $this->applyRules($iterator, $rules); + } + } + } + + // Filter blacklisted commands if the user is on the blacklist + $blacklisted = false; + foreach ($blacklist as $pattern => $rules) { + if ($hostmask->matches($pattern)) { + $this->applyRules($iterator, $rules); + break; + } + } + } + + /** + * Clears filters on the plugin handler iterator. + * + * @return void + */ + public function postDispatch() + { + $this->plugins->getIterator()->clearFilters(); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/AltNick.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/AltNick.php new file mode 100755 index 0000000000..16d5f9b9cc --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/AltNick.php @@ -0,0 +1,95 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_AltNick + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AltNick + */ + +/** + * Handles switching to alternate nicks in cases where the primary nick is + * not available for use. + * + * @category Phergie + * @package Phergie_Plugin_AltNick + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AltNick + * @uses extension spl + */ +class Phergie_Plugin_AltNick extends Phergie_Plugin_Abstract +{ + /** + * Iterator for the alternate nick list + * + * @var ArrayIterator + */ + protected $iterator; + + /** + * Initializes instance variables. + * + * @return void + */ + public function onConnect() + { + if ($this->config['altnick.nicks']) { + if (is_string($this->config['altnick.nicks'])) { + $this->config['altnick.nicks'] + = array($this->config['altnick.nicks']); + } + $this->iterator = new ArrayIterator($this->config['altnick.nicks']); + } + } + + /** + * Switches to alternate nicks as needed when nick collisions occur. + * + * @return void + */ + public function onResponse() + { + // If no alternate nick list was found, return + if (empty($this->iterator)) { + return; + } + + // If the response event indicates that the nick set is in use... + $code = $this->getEvent()->getCode(); + if ($code == Phergie_Event_Response::ERR_NICKNAMEINUSE) { + + // Attempt to move to the next nick in the alternate nick list + $this->iterator->next(); + + // If another nick is available... + if ($this->iterator->valid()) { + + // Switch to the new nick + $altNick = $this->iterator->current(); + $this->doNick($altNick); + + // Update the connection to reflect the nick change + $this->getConnection()->setNick($altNick); + + } else { + // If no other nicks are available... + + // Terminate the connection + $this->doQuit('All specified alternate nicks are in use'); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/AudioScrobbler.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/AudioScrobbler.php new file mode 100755 index 0000000000..ed4030a284 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/AudioScrobbler.php @@ -0,0 +1,191 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_AudioScrobbler + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AudioScrobbler + */ + +/** + * Provides commands to look up information on tracks played by specific + * users on the Last.fm and Libre.fm services. + * + * TODO: Make the "nick-binding" use an SQLite database instead of having them + * hard-coded in to the config file. + * + * Configuration settings: + * "audioscrobbler.lastfm_api_key": API given by last.fm (string). + * "audioscrobbler.librefm_api_key": API key given by libre.fm (string). + * + * @category Phergie + * @package Phergie_Plugin_AudioScrobbler + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AudioScrobbler + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + * @uses extension simplexml + */ +class Phergie_Plugin_AudioScrobbler extends Phergie_Plugin_Abstract +{ + /** + * Last.FM API entry point + * + * @var string + */ + protected $lastfmUrl = 'http://ws.audioscrobbler.com/2.0/'; + + /** + * Libre.FM API entry point + * + * @var string + */ + protected $librefmUrl = 'http://alpha.dev.libre.fm/2.0/'; + + /** + * Scrobbler query string for user.getRecentTracks + * + * @var string + */ + protected $query = '?method=user.getrecenttracks&user=%s&api_key=%s'; + + /** + * HTTP plugin + * + * @var Phergie_Plugin_Http + */ + protected $http; + + /** + * Check for dependencies. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('simplexml')) { + $this->fail('SimpleXML php extension is required'); + } + + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $this->http = $plugins->getPlugin('Http'); + } + + /** + * Command function to get a user's status on last.fm. + * + * @param string $user User identifier + * + * @return void + */ + public function onCommandLastfm($user = null) + { + if ($key = $this->config['audioscrobbler.lastfm_api_key']) { + $scrobbled = $this->getScrobbled($user, $this->lastfmUrl, $key); + if ($scrobbled) { + $this->doPrivmsg($this->getEvent()->getSource(), $scrobbled); + } + } + } + + /** + * Command function to get a user's status on libre.fm. + * + * @param string $user User identifier + * + * @return void + */ + public function onCommandLibrefm($user = null) + { + if ($key = $this->config['audioscrobbler.librefm_api_key']) { + $scrobbled = $this->getScrobbled($user, $this->librefmUrl, $key); + if ($scrobbled) { + $this->doPrivmsg($this->getEvent()->getSource(), $scrobbled); + } + } + } + + /** + * Simple Scrobbler API function to get a formatted string of the most + * recent track played by a user. + * + * @param string $user Username to look up + * @param string $url Base URL of the scrobbler service + * @param string $key Scrobbler service API key + * + * @return string Formatted string of the most recent track played + */ + public function getScrobbled($user, $url, $key) + { + $event = $this->getEvent(); + $user = $user ? $user : $event->getNick(); + $url = sprintf($url . $this->query, urlencode($user), urlencode($key)); + + $response = $this->http->get($url); + if ($response->isError()) { + $this->doNotice( + $event->getNick(), + 'Can\'t find status for ' . $user . ': HTTP ' . + $response->getCode() . ' ' . $response->getMessage() + ); + return false; + } + + $xml = $response->getContent(); + if ($xml->error) { + $this->doNotice( + $event->getNick(), + 'Can\'t find status for ' . $user . ': API ' . $xml->error + ); + return false; + } + + $recenttracks = $xml->recenttracks; + $track = $recenttracks->track[0]; + + // If the user exists but has not scrobbled anything, the result will + // be empty. + if (empty($track->name) && empty($track->artist)) { + $this->doNotice( + $event->getNick(), + 'Can\'t find track information for ' . $recenttracks['user'] + ); + return false; + } + + if (isset($track['nowplaying'])) { + $msg = sprintf( + '%s is listening to %s by %s', + $recenttracks['user'], + $track->name, + $track->artist + ); + } else { + $msg = sprintf( + '%s, %s was listening to %s by %s', + date('j M Y, H:i', (int) $track->date['uts']), + $recenttracks['user'], + $track->name, + $track->artist + ); + } + if ($track->streamable == 1) { + $msg .= ' - ' . $track->url; + } + return $msg; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/AutoJoin.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/AutoJoin.php new file mode 100755 index 0000000000..a6d1adfbb2 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/AutoJoin.php @@ -0,0 +1,69 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_AutoJoin + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AutoJoin + */ + +/** + * Automates the process of having the bot join one or more channels upon + * connection to the server. + * + * The configuration setting autojoin.channels is used to determine which + * channels to join. This setting can point to a comma-delimited string or + * enumerated array containing a single list of channels or an associative + * array keyed by hostname where each value is a comma-delimited string or + * enumerated array containing a list of channels to join on the server + * corresponding to that hostname. + * + * @category Phergie + * @package Phergie_Plugin_AutoJoin + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_AutoJoin + */ +class Phergie_Plugin_AutoJoin extends Phergie_Plugin_Abstract +{ + /** + * Intercepts the end of the "message of the day" response and responds by + * joining the channels specified in the configuration file. + * + * @return void + */ + public function onResponse() + { + switch ($this->getEvent()->getCode()) { + case Phergie_Event_Response::RPL_ENDOFMOTD: + case Phergie_Event_Response::ERR_NOMOTD: + if ($channels = $this->config['autojoin.channels']) { + if (is_array($channels)) { + // Support autojoin.channels being in these formats: + // 'hostname' => array('#channel1', '#channel2', ... ) + $host = $this->getConnection()->getHost(); + if (isset($channels[$host])) { + $channels = $channels[$host]; + } + if (is_array($channels)) { + $channels = implode(',', $channels); + } + } + $this->doJoin($channels); + } + $this->getPluginHandler()->removePlugin($this); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer.php new file mode 100644 index 0000000000..7213cdee8b --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer.php @@ -0,0 +1,82 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Beer + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Beer + */ + +/** + * Processes requests to serve users beer. + * + * @category Phergie + * @package Phergie_Plugin_Beer + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Beer + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Beer extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user a beer. + * + * @param string $request Request including the target and an optional + * suggestion of what beer to serve + * + * @return void + */ + public function onCommandBeer($request) + { + $format = $this->getConfig( + 'beer.format', + 'throws %target% %article% %item%.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Beer/beer.db', + 'beer', + $format, + $request + ); + } + + /** + * Adds a "booze" alias for the "beer" command. + * + * @param string $request Request including the target and an optional + * suggestion of what beer to serve + * + * @return void + */ + public function onCommandBooze($request) + { + $this->onCommandBeer($request); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer/db.php new file mode 100644 index 0000000000..c7921e5193 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Beer/db.php @@ -0,0 +1,81 @@ +<?php + +if (!defined('__DIR__')) { + define('__DIR__', dirname(__FILE__)); +} + +// Create database schema +echo 'Creating database', PHP_EOL; +$file = __DIR__ . '/beer.db'; +if (file_exists($file)) { + unlink($file); +} +$db = new PDO('sqlite:' . $file); +$db->exec('CREATE TABLE beer (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX beer_name ON beer (name)'); +$insert = $db->prepare('INSERT INTO beer (name, link) VALUES (:name, :link)'); + +// Get raw beerme.com data set +echo 'Downloading beerme.com data set', PHP_EOL; +$file = __DIR__ . '/beerlist.txt'; +if (!file_exists($file)) { + copy('http://beerme.com/beerlist.php', $file); +} +$contents = file_get_contents($file); + +// Extract data from data set +echo 'Processing beerme.com data', PHP_EOL; +$contents = tidy_repair_string($contents); +libxml_use_internal_errors(true); +$doc = new DOMDocument; +$doc->loadHTML($contents); +libxml_clear_errors(); +$xpath = new DOMXPath($doc); +$beers = $xpath->query('//table[@class="beerlist"]/tr/td[1]'); +$db->beginTransaction(); +foreach ($beers as $beer) { + $name = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $beer->textContent); + $name = preg_replace('/\h*\v+\h*/', '', $name); + $link = 'http://beerme.com' . $beer->childNodes->item(1)->getAttribute('href'); + $insert->execute(array($name, $link)); +} +$db->commit(); + +// Clean up +echo 'Cleaning up', PHP_EOL; +unlink($file); + +// Get and decompress openbeerdb.com data set +$archive = __DIR__ . '/beers.zip'; +if (!file_exists($archive)) { + echo 'Downloading openbeerdb.com data set', PHP_EOL; + copy('http://openbeerdb.googlecode.com/files/beers.zip', $archive); +} + +echo 'Decompressing openbeerdb.com data set', PHP_EOL; +$zip = new ZipArchive; +$zip->open($archive); +$zip->extractTo(__DIR__, 'beers/beers.csv'); +$zip->close(); +$file = __DIR__ . '/beers/beers.csv'; + +// Extract data from data set +echo 'Processing openbeerdb.com data', PHP_EOL; +$fp = fopen($file, 'r'); +$columns = fgetcsv($fp, 0, '|'); +$db->beginTransaction(); +while ($line = fgetcsv($fp, 0, '|')) { + $line = array_combine($columns, $line); + $name = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $line['name']); + $name = preg_replace('/\h*\v+\h*/', '', $name); + $link = null; + $insert->execute(array($name, $link)); +} +$db->commit(); +fclose($fp); + +// Clean up +echo 'Cleaning up', PHP_EOL; +unlink($file); +unlink($archive); +rmdir(__DIR__ . '/beers'); diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/BeerScore.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/BeerScore.php new file mode 100644 index 0000000000..16c671f683 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/BeerScore.php @@ -0,0 +1,156 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_BeerScore + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_BeerScore + */ + +/** + * Handles incoming requests for beer scores. + * + * @category Phergie + * @package Phergie_Plugin_BeerScore + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_BeerScore + * @uses Phergie_Plugin_Http pear.phergie.org + */ +class Phergie_Plugin_BeerScore extends Phergie_Plugin_Abstract +{ + /** + * Score result type + * + * @const string + */ + const TYPE_SCORE = 'SCORE'; + + /** + * Search result type + * + * @const string + */ + const TYPE_SEARCH = 'SEARCH'; + + /** + * Refine result type + * + * @const type + */ + const TYPE_REFINE = 'REFINE'; + + /** + * Base API URL + * + * @const string + */ + const API_BASE_URL = 'http://caedmon.net/beerscore/'; + + /** + * HTTP plugin + * + * @var Phergie_Plugin_Http + */ + protected $http; + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->http = $this->getPluginHandler()->getPlugin('Http'); + } + + /** + * Handles beerscore commands. + * + * @param string $searchstring String to use in seaching for beer scores + * + * @return void + */ + public function onCommandBeerscore($searchstring) + { + $event = $this->getEvent(); + $target = $event->getNick(); + $source = $event->getSource(); + + $apiurl = self::API_BASE_URL . rawurlencode($searchstring); + $response = $this->http->get($apiurl); + + if ($response->isError()) { + $this->doNotice($target, 'Score not found (or failed to contact API)'); + return; + } + + $result = $response->getContent(); + switch ($result->type) { + case self::TYPE_SCORE: + // small enough number to get scores + foreach ($result->beer as $beer) { + if ($beer->score === -1) { + $score = '(not rated)'; + } else { + $score = $beer->score; + } + $str + = "{$target}: rating for {$beer->name}" . + " = {$score} ({$beer->url})"; + $this->doPrivmsg($source, $str); + } + break; + + case self::TYPE_SEARCH: + // only beer names, no scores + $str = ''; + $found = 0; + foreach ($result->beer as $beer) { + if (isset($beer->score)) { + ++$found; + if ($beer->score === -1) { + $score = '(not rated)'; + } else { + $score = $beer->score; + } + $str + = "{$target}: rating for {$beer->name}" . + " = {$score} ({$beer->url})"; + $this->doPrivmsg($source, $str); + } else { + $str .= "({$beer->name} -> {$beer->url}) "; + } + } + $foundnum = $result->num - $found; + $more = $found ? 'more ' : ''; + $str = "{$target}: {$foundnum} {$more}results... {$str}"; + $this->doPrivmsg($source, $str); + break; + + case self::TYPE_REFINE: + // Too many results; only output search URL + if ($result->num < 100) { + $num = $result->num; + } else { + $num = 'at least 100'; + } + $resultsword = (($result->num > 1) ? 'results' : 'result'); + $str = "{$target}: {$num} {$resultsword}; {$result->searchurl}"; + $this->doPrivmsg($source, $str); + break; + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cache.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cache.php new file mode 100644 index 0000000000..2b54fab68a --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cache.php @@ -0,0 +1,106 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Cache + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cache + */ + +/** + * Implements a generic cache to be used by other plugins. + * + * @category Phergie + * @package Phergie_Plugin_Cache + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cache + */ +class Phergie_Plugin_Cache extends Phergie_Plugin_Abstract +{ + /** + * Key-value data storage for the cache + * + * @var array + */ + protected $cache = array(); + + /** + * Stores a value in the cache. + * + * @param string $key Key to associate with the value + * @param mixed $data Data to be stored + * @param int|null $ttl Time to live in seconds or NULL for forever + * @param bool $overwrite TRUE to overwrite any existing value + * associated with the specified key + * + * @return bool + */ + public function store($key, $data, $ttl = 3600, $overwrite = true) + { + if (!$overwrite && isset($this->cache[$key])) { + return false; + } + + if ($ttl) { + $expires = time()+$ttl; + } else { + $expires = null; + } + + $this->cache[$key] = array('data' => $data, 'expires' => $expires); + return true; + + } + + /** + * Fetches a previously stored value. + * + * @param string $key Key associated with the value + * + * @return mixed Stored value or FALSE if no value or an expired value + * is associated with the specified key + */ + public function fetch($key) + { + if (!isset($this->cache[$key])) { + return false; + } + + $item = $this->cache[$key]; + if (!is_null($item['expires']) && $item['expires'] < time()) { + $this->expire($key); + return false; + } + + return $item['data']; + } + + /** + * Expires a value that has exceeded its time to live. + * + * @param string $key Key associated with the value to expire + * + * @return bool + */ + protected function expire($key) + { + if (!isset($this->cache[$key])) { + return false; + } + unset($this->cache[$key]); + return true; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine.php new file mode 100644 index 0000000000..2b76bd312f --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine.php @@ -0,0 +1,69 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Caffeine + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Caffeine + */ + +/** + * Processes requests to serve users caffeinated beverages. + * + * @category Phergie + * @package Phergie_Plugin_Caffeine + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Caffeine + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Caffeine extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user a caffeinated beverage. + * + * @param string $request Request including the target and an optional + * suggestion of what caffeinated beverage to serve + * + * @return void + */ + public function onCommandCaffeine($request) + { + $format = $this->getConfig( + 'beer.format', + 'throws %target% %article% %item%.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Caffeine/caffeine.db', + 'caffeine', + $format, + $request + ); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine/db.php new file mode 100644 index 0000000000..cdff52fd8d --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Caffeine/db.php @@ -0,0 +1,51 @@ +<?php + +if (!defined('__DIR__')) { + define('__DIR__', dirname(__FILE__)); +} + +// Create database schema +echo 'Creating database', PHP_EOL; +$file = __DIR__ . '/caffeine.db'; +if (file_exists($file)) { + unlink($file); +} +$db = new PDO('sqlite:' . $file); +$db->exec('CREATE TABLE caffeine (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX caffeine_name ON caffeine (name)'); +$insert = $db->prepare('INSERT INTO caffeine (name, link) VALUES (:name, :link)'); + +// Get raw energyfiend.com data set +echo 'Downloading energyfiend.com data set', PHP_EOL; +$file = __DIR__ . '/the-caffeine-database.html'; +if (!file_exists($file)) { + copy('http://www.energyfiend.com/the-caffeine-database', $file); +} +$contents = file_get_contents($file); + +// Extract data from data set +echo 'Processing energyfiend.com data', PHP_EOL; +$contents = tidy_repair_string($contents); +libxml_use_internal_errors(true); +$doc = new DOMDocument; +$doc->loadHTML($contents); +libxml_clear_errors(); +$xpath = new DOMXPath($doc); +$caffeine = $xpath->query('//table[@id="caffeinedb"]//tr/td[1]'); +$db->beginTransaction(); +foreach ($caffeine as $drink) { + $name = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $drink->textContent); + $name = preg_replace('/\s*\v+\s*/', ' ', $name); + if ($drink->firstChild->nodeName == 'a') { + $link = 'http://energyfiend.com' + . $drink->firstChild->getAttribute('href'); + } else { + $link = null; + } + $insert->execute(array($name, $link)); +} +$db->commit(); + +// Clean up +echo 'Cleaning up', PHP_EOL; +unlink($file); diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php new file mode 100755 index 0000000000..99c69d8734 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Censor.php @@ -0,0 +1,120 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Censor + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Censor + */ + +/** + * Facilitates censoring of event content or discardment of events + * containing potentially offensive phrases depending on the value of the + * configuration setting censor.mode ('off', 'censor', 'discard'). Also + * provides access to a web service for detecting censored words so that + * other plugins may optionally integrate and adjust behavior accordingly to + * prevent discardment of events. + * + * @category Phergie + * @package Phergie_Plugin_Censor + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Censor + * @uses extension soap + */ +class Phergie_Plugin_Censor extends Phergie_Plugin_Abstract +{ + /** + * SOAP client to interact with the CDYNE Profanity Filter API + * + * @var SoapClient + */ + protected $soap; + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('soap')) { + $this->fail('The PHP soap extension is required'); + } + + if (!in_array($this->config['censor.mode'], array('censor', 'discard'))) { + $this->plugins->removePlugin($this); + } + } + + /** + * Returns a "clean" version of a given string. + * + * @param string $string String to clean + * + * @return string Cleaned string + */ + public function cleanString($string) + { + if (empty($this->soap)) { + $this->soap = new SoapClient('http://ws.cdyne.com/ProfanityWS/Profanity.asmx?wsdl'); + } + $params = array('Text' => $string); + $attempts = 0; + while ($attempts < 3) { + try { + $response = $this->soap->SimpleProfanityFilter($params); + break; + } catch (SoapFault $e) { + $attempts++; + sleep(1); + } + } + if ($attempts == 3) { + return $string; + } + return $response->SimpleProfanityFilterResult->CleanText; + } + + /** + * Processes events before they are dispatched and either censors their + * content or discards them if they contain potentially offensive + * content. + * + * @return void + */ + public function preDispatch() + { + $events = $this->events->getEvents(); + + foreach ($events as $event) { + switch ($event->getType()) { + case Phergie_Event_Request::TYPE_PRIVMSG: + case Phergie_Event_Request::TYPE_ACTION: + case Phergie_Event_Request::TYPE_NOTICE: + $text = $event->getArgument(1); + $clean = $this->cleanString($text); + if ($text != $clean) { + if ($this->config['censor.mode'] == 'censor') { + $event->setArgument(1, $clean); + } else { + $this->events->removeEvent($event); + } + } + break; + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail.php new file mode 100644 index 0000000000..eafeb657bf --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail.php @@ -0,0 +1,71 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Cocktail + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cocktail + */ + +/** + * Processes requests to serve users cocktail. + * + * @category Phergie + * @package Phergie_Plugin_Cocktail + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cocktail + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Cocktail extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user a cocktail. + * + * @param string $request Request including the target and an optional + * suggestion of what cocktail to serve + * + * @return void + */ + public function onCommandCocktail($request) + { + $format = $this->getConfig( + 'cocktail.format', + 'throws %target% %article% %item%.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Cocktail/cocktail.db', + 'cocktail', + $format, + $request, + true + ); + } +} + diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail/db.php new file mode 100644 index 0000000000..2e61dd0bdb --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cocktail/db.php @@ -0,0 +1,74 @@ +<?php + +if (!defined('__DIR__')) { + define('__DIR__', dirname(__FILE__)); +} + +// Create database schema +echo 'Creating database', PHP_EOL; +$file = __DIR__ . '/cocktail.db'; +if (file_exists($file)) { + unlink($file); +} +$db = new PDO('sqlite:' . $file); +$db->exec('CREATE TABLE cocktail (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX cocktail_name ON cocktail (name)'); +$insert = $db->prepare('INSERT INTO cocktail (name, link) VALUES (:name, :link)'); + +// Get raw webtender.com data set +echo 'Downloading webtender.com data set', PHP_EOL; +$start = 1; +do { + $file = __DIR__ . '/' . $start . '.html'; + if (file_exists($file)) { + continue; + } + copy( + 'http://www.webtender.com/db/browse?level=2&dir=drinks&char=%2A&start=' . $start, + $file + ); + if (!isset($limit)) { + $contents = file_get_contents($file); + preg_match('/([0-9]+) found/', $contents, $match); + $limit = $match[1] + (150 - ($match[1] % 150)); + } + echo 'Got records ', $start, ' - ', min($start + 150, $limit), ' of ', $limit, PHP_EOL; + $start += 150; +} while ($start < $limit); + +// Extract data from data set +$start = 1; +while ($start < $limit) { + echo 'Processing ', $start, ' - ', min($start + 150, $limit), ' of ', $limit, PHP_EOL; + + $file = __DIR__ . '/' . $start . '.html'; + $contents = file_get_contents($file); + $contents = tidy_repair_string($contents); + libxml_use_internal_errors(true); + $doc = new DOMDocument; + $doc->loadHTML($contents); + libxml_clear_errors(); + $xpath = new DOMXPath($doc); + + $cocktails = $xpath->query('//li/a'); + $db->beginTransaction(); + foreach ($cocktails as $cocktail) { + $name = $cocktail->nodeValue; + $name = preg_replace('/ The$|^The |\s*\([^)]+\)\s*| #[0-9]+$/', '', $name); + $name = html_entity_decode($name); + $link = 'http://www.webtender.com' . $cocktail->getAttribute('href'); + $insert->execute(array($name, $link)); + } + $db->commit(); + + $start += 150; +} + +// Clean up +echo 'Cleaning up', PHP_EOL; +$start = 1; +while ($start < $limit) { + $file = __DIR__ . '/' . $start . '.html'; + unlink($file); + $start += 150; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Command.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Command.php new file mode 100644 index 0000000000..2058977ed5 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Command.php @@ -0,0 +1,146 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Command + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Command + */ + +/** + * Handles parsing and execution of commands sent by users via messages sent + * to channels in which the bot is present or directly to the bot. + * + * @category Phergie + * @package Phergie_Plugin_Command + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Command + * @uses extension reflection + * @uses Phergie_Plugin_Message pear.phergie.org + */ +class Phergie_Plugin_Command extends Phergie_Plugin_Abstract +{ + /** + * Prefix for command method names + * + * @var string + */ + const METHOD_PREFIX = 'onCommand'; + + /** + * Cache for command lookups used to confirm that methods exist and + * parameter counts match + * + * @var array + */ + protected $methods = array(); + + /** + * Load the Message plugin + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Message'); + } + + /** + * Populates the methods cache. + * + * @return void + */ + public function populateMethodCache() + { + foreach ($this->getPluginHandler()->getPlugins() as $plugin) { + $reflector = new ReflectionClass($plugin); + foreach ($reflector->getMethods() as $method) { + $name = $method->getName(); + if (strpos($name, self::METHOD_PREFIX) === 0 + && !isset($this->methods[$name]) + ) { + $this->methods[$name] = array( + 'total' => $method->getNumberOfParameters(), + 'required' => $method->getNumberOfRequiredParameters() + ); + } + } + } + } + + /** + * Parses a given message and, if its format corresponds to that of a + * defined command, calls the handler method for that command with any + * provided parameters. + * + * @return void + */ + public function onPrivmsg() + { + // Populate the methods cache if needed + if (empty($this->methods)) { + $this->populateMethodCache(); + } + + // Check for a prefixed message + $msg = $this->plugins->message->getMessage(); + if ($msg === false) { + return; + } + + // Separate the command and arguments + $parsed = preg_split('/\s+/', $msg, 2); + $command = strtolower(array_shift($parsed)); + $args = count($parsed) ? array_shift($parsed) : ''; + + // Resolve aliases to their corresponding commands + $aliases = $this->getConfig('command.aliases', array()); + $result = preg_grep('/^' . preg_quote($command, '/') . '$/i', array_keys($aliases)); + if ($result) { + $command = $aliases[array_shift($result)]; + } + + // Check to ensure the command exists + $method = self::METHOD_PREFIX . ucfirst($command); + if (empty($this->methods[$method])) { + return; + } + + // If no arguments are passed... + if (empty($args)) { + + // If the method requires no arguments, call it + if (empty($this->methods[$method]['required'])) { + $this->getPluginHandler()->$method(); + } + + } else { + // If arguments are passed... + + // Parse the arguments + $args = preg_split('/\s+/', $args, $this->methods[$method]['total']); + + // If the minimum arguments are passed, call the method + if ($this->methods[$method]['required'] <= count($args)) { + call_user_func_array( + array($this->getPluginHandler(), $method), + $args + ); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie.php new file mode 100644 index 0000000000..4bc2ceecbc --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie.php @@ -0,0 +1,69 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Cookie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cookie + */ + +/** + * Processes requests to serve users cookies. + * + * @category Phergie + * @package Phergie_Plugin_Cookie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cookie + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Cookie extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user a cookie. + * + * @param string $request Request including the target and an optional + * suggestion of what cookie to serve + * + * @return void + */ + public function onCommandCookie($request) + { + $format = $this->getConfig( + 'cookie.format', + 'throws %target% %article% %item%.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Cookie/cookie.db', + 'cookies', + $format, + $request + ); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie/db.php new file mode 100644 index 0000000000..27763159cc --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cookie/db.php @@ -0,0 +1,55 @@ +<?php + +if (!defined('__DIR__')) { + define('__DIR__', dirname(__FILE__)); +} + +// Create database schema +echo 'Creating database', PHP_EOL; +$file = __DIR__ . '/cookie.db'; +if (file_exists($file)) { + unlink($file); +} +$db = new PDO('sqlite:' . $file); +$db->exec('CREATE TABLE cookies (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX cookie_name ON cookies (name)'); +$insert = $db->prepare('INSERT INTO cookies (name, link) VALUES (:name, :link)'); + +// Get Cookies list from http://en.wikipedia.org/wiki/List_of_cookies +echo 'Downloading data from Wikipedia', PHP_EOL; +$file = __DIR__ . '/cookieslist.txt'; +if (!file_exists($file)) { + copy('http://en.wikipedia.org/wiki/List_of_cookies', $file); +} +$contents = file_get_contents($file); + +// Extract data from data set +echo 'Processing Wikipedia\'s cookies list', PHP_EOL; +$contents = tidy_repair_string($contents); +libxml_use_internal_errors(true); +$doc = new DOMDocument; +$doc->loadHTML($contents); +libxml_clear_errors(); +$xpath = new DOMXPath($doc); + +$cookies = $xpath->query('//table[@width="90%"]/tr/td[1]/a'); + +foreach ($cookies as $cookie) { + $name = $cookie->textContent; + $name = str_replace( + array('(',')',"\n", 'cookies'), + array('','', ' ', 'cookie'), + $name + ); + $name = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $name); + $name = trim($name); + $name = rtrim($name, 's'); + + $link = 'http://en.wikipedia.org' . $cookie->getAttribute('href'); + $insert->execute(array($name, $link)); + echo 'added [' . $name . '] -> '. $link . PHP_EOL; +} + +// Clean up +echo 'Cleaning up', PHP_EOL; +unlink($file); diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Cron.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cron.php new file mode 100644 index 0000000000..d24910fa32 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Cron.php @@ -0,0 +1,147 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Cron + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cron + */ + +/** + * Allows callbacks to be registered for asynchronous execution. + * + * @category Phergie + * @package Phergie_Plugin_Cron + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Cron + */ +class Phergie_Plugin_Cron extends Phergie_Plugin_Abstract +{ + /** + * Array of all registered callbacks with delays and arguments + * + * @var array + */ + protected $callbacks; + + /** + * Returns a human-readable representation of a callback for debugging + * purposes. + * + * @param callback $callback Callback to analyze + * + * @return string|boolean String representation of the callback or FALSE + * if the specified value is not a valid callback + */ + protected function getCallbackString($callback) + { + if (!is_callable($callback)) { + return false; + } + + if (is_array($callback)) { + $class = is_string($callback[0]) ? + $callback[0] : get_class($callback[0]); + $method = $class . '::' . $callback[1]; + return $method; + } + + return $callback; + } + + /** + * Registers a callback for execution sometime after a given delay + * relative to now. + * + * @param callback $callback Callback to be registered + * @param int $delay Delay in seconds from now when the callback + * will be executed + * @param array $arguments Arguments to pass to the callback when + * it's executed + * @param bool $repeat TRUE to automatically re-register the + * callback for the same delay after it's executed, FALSE + * otherwise + * + * @return void + */ + public function registerCallback($callback, $delay, + array $arguments = array(), $repeat = false) + { + $callbackString = $this->getCallbackString($callback); + if ($callbackString === false) { + echo 'DEBUG(Cron): Invalid callback specified - ', + var_export($callback, true), PHP_EOL; + return; + } + + $registered = time(); + $scheduled = $registered + $delay; + + $this->callbacks[] = array( + 'callback' => $callback, + 'delay' => $delay, + 'arguments' => $arguments, + 'registered' => $registered, + 'scheduled' => $scheduled, + 'repeat' => $repeat, + ); + + echo 'DEBUG(Cron): Callback ', $callbackString, + ' scheduled for ', date('H:i:s', $scheduled), PHP_EOL; + } + + /** + * Handles callback execution. + * + * @return void + */ + public function onTick() + { + $time = time(); + foreach ($this->callbacks as $key => &$callback) { + $callbackString = $this->getCallbackString($callback); + + $scheduled = $callback['scheduled']; + if ($time < $scheduled) { + continue; + } + + if (empty($callback['arguments'])) { + call_user_func($callback['callback']); + } else { + call_user_func_array( + $callback['callback'], + $callback['arguments'] + ); + } + + echo 'DEBUG(Cron): Callback ', $callbackString, + ' scheduled for ', date('H:i:s', $scheduled), ',', + ' executed at ', date('H:i:s', $now), PHP_EOL; + + if ($callback['repeat']) { + $callback['scheduled'] = $time + $callback['delay']; + echo 'DEBUG(Cron): Callback ', $callbackString, + ' scheduled for ', date('H:i:s', $callback['scheduled']), + PHP_EOL; + } else { + echo 'DEBUG(Cron): Callback ', $callbackString, + ' removed from callback list', PHP_EOL; + unset($this->callbacks[$key]); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Ctcp.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ctcp.php new file mode 100755 index 0000000000..e79fcf13ee --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ctcp.php @@ -0,0 +1,91 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Ctcp + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ctcp + */ + +/** + * Responds to various CTCP requests sent by the server and users. + * + * @category Phergie + * @package Phergie_Plugin_Ctcp + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ctcp + * @link http://www.irchelp.org/irchelp/rfc/ctcpspec.html + */ +class Phergie_Plugin_Ctcp extends Phergie_Plugin_Abstract +{ + /** + * Responds to a CTCP TIME request from a user with the current local + * time. + * + * @return void + */ + public function onTime() + { + $source = $this->getEvent()->getSource(); + $this->doTime($source, strftime('%c %z')); + } + + /** + * Responds to a CTCP VERSION request from a user with the codebase + * version. + * + * @return void + */ + public function onVersion() + { + $source = $this->getEvent()->getSource(); + $msg = 'Phergie ' . Phergie_Bot::VERSION . ' (http://phergie.org)'; + $this->doVersion($source, $msg); + } + + /** + * Responds to a CTCP PING request from a user. + * + * @return void + */ + public function onCtcpPing() + { + $event = $this->getEvent(); + $source = $event->getSource(); + $handshake = $event->getArgument(1); + $this->doPing($source, $handshake); + } + + /** + * Responds to a CTCP FINGER request from a user. + * + * @return void + */ + public function onFinger() + { + $connection = $this->getConnection(); + $name = $connection->getNick(); + $realname = $connection->getRealname(); + $username = $connection->getUsername(); + + $finger + = (empty($realname) ? $realname : $name) . + ' (' . (!empty($username) ? $username : $name) . ')'; + + $this->doFinger($source, $finger); + } +} +?> diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Daddy.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Daddy.php new file mode 100644 index 0000000000..ed258e10ff --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Daddy.php @@ -0,0 +1,56 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Daddy + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Daddy + */ + +/** + * Simply responds to messages addressed to the bot that contain the phrase + * "Who's your daddy?" and related variations. + * + * @category Phergie + * @package Phergie_Plugin_Daddy + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Daddy + */ +class Phergie_Plugin_Daddy extends Phergie_Plugin_Abstract +{ + /** + * Checks messages for the question to which it should respond and sends a + * response when appropriate + * + * @return void + */ + public function onPrivmsg() + { + $config = $this->getConfig(); + $prefix = $config['command.prefix']; + $event = $this->getEvent(); + $text = $event->getArgument(1); + $target = $event->getNick(); + $source = $event->getSource(); + $pattern + = '/' . preg_quote($prefix) . + '\s*?who\'?s y(?:our|a) ([^?]+)\??/iAD'; + if (preg_match($pattern, $text, $m)) { + $msg = 'You\'re my ' . $m[1] . ', ' . $target . '!'; + $this->doPrivmsg($source, $msg); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Encoding.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Encoding.php new file mode 100644 index 0000000000..419322bd7a --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Encoding.php @@ -0,0 +1,182 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Encoding + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Encoding + */ + +/** + * Handles decoding markup entities and converting text between character + * encodings. + * + * @category Phergie + * @package Phergie_Plugin_Encoding + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Encoding + */ +class Phergie_Plugin_Encoding extends Phergie_Plugin_Abstract +{ + /** + * Lookup table for entity conversions not supported by + * html_entity_decode() + * + * @var array + * @link http://us.php.net/manual/en/function.get-html-translation-table.php#73409 + * @link http://us.php.net/manual/en/function.get-html-translation-table.php#73410 + */ + protected static $entities = array( + 'α' => 913, + ''' => 39, + 'β' => 914, + '•' => 149, + 'χ' => 935, + 'ˆ' => 94, + 'δ' => 916, + 'ε' => 917, + 'η' => 919, + 'ƒ' => 402, + 'γ' => 915, + 'ι' => 921, + 'κ' => 922, + 'λ' => 923, + '“' => 147, + '‹' => 139, + '‘' => 145, + '—' => 151, + '−' => 45, + 'μ' => 924, + '–' => 150, + 'ν' => 925, + 'œ' => 140, + 'ω' => 937, + 'ο' => 927, + 'φ' => 934, + 'π' => 928, + 'ϖ' => 982, + 'ψ' => 936, + '”' => 148, + 'ρ' => 929, + '›' => 155, + '’' => 146, + 'š' => 138, + 'σ' => 931, + 'ς' => 962, + 'τ' => 932, + 'θ' => 920, + 'ϑ' => 977, + '˜' => 126, + '™' => 153, + 'ϒ' => 978, + 'υ' => 933, + 'ξ' => 926, + 'ÿ' => 159, + 'ζ' => 918, + ); + + /** + * Decodes markup entities in a given string. + * + * @param string $string String containing markup entities + * @param string $charset Optional character set name to use in decoding + * entities, defaults to UTF-8 + * + * @return string String with markup entities decoded + */ + public function decodeEntities($string, $charset = 'UTF-8') + { + $string = str_ireplace( + array_keys(self::$entities), + array_map('chr', self::$entities), + $string + ); + $string = html_entity_decode($string, ENT_QUOTES, $charset); + $string = preg_replace( + array('/�*([0-9]+);/me', '/�*([a-f0-9]+);/mei'), + array('$this->codeToUtf(\\1)', '$this->codeToUtf(hexdec(\\1))'), + $string + ); + return $string; + } + + /** + * Converts a given unicode to its UTF-8 equivalent. + * + * @param int $code Code to convert + * @return string Character corresponding to code + */ + public function codeToUtf8($code) + { + $code = (int) $code; + switch ($code) { + // 1 byte, 7 bits + case 0: + return chr(0); + case ($code & 0x7F): + return chr($code); + + // 2 bytes, 11 bits + case ($code & 0x7FF): + return chr(0xC0 | (($code >> 6) & 0x1F)) . + chr(0x80 | ($code & 0x3F)); + + // 3 bytes, 16 bits + case ($code & 0xFFFF): + return chr(0xE0 | (($code >> 12) & 0x0F)) . + chr(0x80 | (($code >> 6) & 0x3F)) . + chr(0x80 | ($code & 0x3F)); + + // 4 bytes, 21 bits + case ($code & 0x1FFFFF): + return chr(0xF0 | ($code >> 18)) . + chr(0x80 | (($code >> 12) & 0x3F)) . + chr(0x80 | (($code >> 6) & 0x3F)) . + chr(0x80 | ($code & 0x3F)); + } + } + + /** + * Transliterates characters in a given string where possible. + * + * @param string $string String containing characters to + * transliterate + * @param string $charsetFrom Optional character set of the string, + * defaults to UTF-8 + * @param string $charsetTo Optional character set to which the string + * should be converted, defaults to ISO-8859-1 + * + * @return string String with characters transliterated or the original + * string if transliteration was not possible + */ + public function transliterate($string, $charsetFrom = 'UTF-8', $charsetTo = 'ISO-8859-1') + { + // @link http://pecl.php.net/package/translit + if (function_exists('transliterate')) { + $string = transliterate($string, array('han_transliterate', 'diacritical_remove'), $charsetFrom, $charsetTo); + } elseif (function_exists('iconv')) { + $string = iconv($charsetFrom, $charsetTo . '//TRANSLIT', $string); + } else { + // @link http://stackoverflow.com/questions/1284535/php-transliteration/1285491#1285491 + $string = preg_replace( + '~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', + '$1', + htmlentities($string, ENT_COMPAT, $charsetFrom) + ); + } + return $string; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Exception.php new file mode 100755 index 0000000000..ca4d53fede --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Exception.php @@ -0,0 +1,120 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to plugin handling. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Plugin_Exception extends Phergie_Exception +{ + /** + * Error indicating that a path containing plugins was specified, but + * did not reference a readable directory + */ + const ERR_DIRECTORY_NOT_READABLE = 1; + + /** + * Error indicating that an attempt was made to locate the class for a + * specified plugin, but the class could not be found + */ + const ERR_CLASS_NOT_FOUND = 2; + + /** + * Error indicating that an attempt was made to locate the class for a + * specified plugin, but that the found class did not extend the base + * plugin class + */ + const ERR_INCORRECT_BASE_CLASS = 3; + + /** + * Error indicating that an attempt was made to locate the class for a + * specified plugin, but that the found class cannot be instantiated + */ + const ERR_CLASS_NOT_INSTANTIABLE = 4; + + /** + * Error indicating that an attempt was made to access a plugin that had + * not been loaded and autoloading was not enabled to load it + */ + const ERR_PLUGIN_NOT_LOADED = 5; + + /** + * Error indicating that an attempt was made to access the configuration + * handler before one had been set + */ + const ERR_NO_CONFIG_HANDLER = 6; + + /** + * Error indicating that an attempt was made to access the plugin + * handler before one had been set + */ + const ERR_NO_PLUGIN_HANDLER = 7; + + /** + * Error indicating that an attempt was made to access the event + * handler before one had been set + */ + const ERR_NO_EVENT_HANDLER = 8; + + /** + * Error indicating that an attempt was made to access the connection + * before one had been set + */ + const ERR_NO_CONNECTION = 9; + + /** + * Error indicating that an attempt was made to access the current + * incoming event before one had been set + */ + const ERR_NO_EVENT = 10; + + /** + * Error indicating that a dependency of the plugin was unavailable at + * the time that an attempt was made to load it + */ + const ERR_REQUIREMENT_UNSATISFIED = 11; + + /** + * Error indicating that a call was made to a nonexistent plugin method + * and that its __call() implementation did not process that call as an + * attempt to trigger an event - this is intended to aid in debugging of + * such situations + */ + const ERR_INVALID_CALL = 12; + + /** + * Error indicating that a fatal runtime issue was encountered within a + * plugin + */ + const ERR_FATAL_ERROR = 13; + + /** + * Error indicating that a class specified to be used for iterating + * plugins cannot be found by the autoloader or does not extend + * FilterIterator + */ + const ERR_INVALID_ITERATOR_CLASS = 14; +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Google.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Google.php new file mode 100644 index 0000000000..d2a9d4dce9 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Google.php @@ -0,0 +1,459 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Google + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Google + */ + +/** + * Provides commands used to access several services offered by Google + * including search, translation, weather, maps, and currency and general + * value unit conversion. + * + * @category Phergie + * @package Phergie_Plugin_Google + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Google + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + * @uses Phergie_Plugin_Temperature pear.phergie.org + */ +class Phergie_Plugin_Google extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $plugins->getPlugin('Http'); + $plugins->getPlugin('Weather'); + } + + /** + * Returns the first result of a Google search. + * + * @param string $query Search term + * + * @return void + * @todo Implement use of URL shortening here + */ + public function onCommandG($query) + { + $url = 'http://ajax.googleapis.com/ajax/services/search/web'; + $params = array( + 'v' => '1.0', + 'q' => $query + ); + $response = $this->plugins->http->get($url, $params); + $json = $response->getContent()->responseData; + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + if ($json->cursor->estimatedResultCount > 0) { + $msg + = $nick + . ': [ ' + . $json->results[0]->titleNoFormatting + . ' ] - ' + . $json->results[0]->url + . ' - More results: ' + . $json->cursor->moreResultsUrl; + $this->doPrivmsg($source, $msg); + } else { + $msg = $nick . ': No results for this query.'; + $this->doPrivmsg($source, $msg); + } + } + + /** + * Performs a Google Count search for the given term. + * + * @param string $query Search term + * + * @return void + */ + public function onCommandGc($query) + { + $url = 'http://ajax.googleapis.com/ajax/services/search/web'; + $params = array( + 'v' => '1.0', + 'q' => $query + ); + $response = $this->plugins->http->get($url, $params); + $json = $response->getContent()->responseData->cursor; + $count = $json->estimatedResultCount; + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + if ($count) { + $msg + = $nick . ': ' . + number_format($count, 0) . + ' estimated results for ' . $query; + $this->doPrivmsg($source, $msg); + } else { + $this->doPrivmsg($source, $nick . ': No results for this query.'); + } + } + + /** + * Performs a Google Translate search for the given term. + * + * @param string $from Language of the search term + * @param string $to Language to which the search term should be + * translated + * @param string $query Term to translate + * + * @return void + */ + public function onCommandGt($from, $to, $query) + { + $url = 'http://ajax.googleapis.com/ajax/services/language/translate'; + $params = array( + 'v' => '1.0', + 'q' => $query, + 'langpair' => $from . '|' . $to + ); + $response = $this->plugins->http->get($url, $params); + $json = $response->getContent(); + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + if (empty($json->responseData->translatedText)) { + $this->doPrivmsg($source, $nick . ': ' . $json->responseDetails); + } else { + $this->doPrivmsg( + $source, + $nick . ': ' . $json->responseData->translatedText + ); + } + } + + /** + * Performs a Google Weather search for the given term. + * + * @param string $location Location to search for + * @param int $offset Optional day offset from the current date + * between 0 and 3 to get the forecast + * + * @return void + */ + public function onCommandGw($location, $offset = null) + { + $url = 'http://www.google.com/ig/api'; + $params = array( + 'weather' => $location, + 'hl' => $this->getConfig('google.lang', 'en'), + 'oe' => 'UTF-8' + ); + $response = $this->plugins->http->get($url, $params); + $xml = $response->getContent()->weather; + + $event = $this->getEvent(); + $source = $event->getSource(); + $msg = ''; + if ($event->isInChannel()) { + $msg .= $event->getNick() . ': '; + } + + if (isset($xml->problem_cause)) { + $msg .= $xml->problem_cause->attributes()->data[0]; + $this->doPrivmsg($source, $msg); + return; + } + + $temperature = $this->plugins->getPlugin('Temperature'); + + $forecast = $xml->forecast_information; + $city = $forecast->city->attributes()->data[0]; + $zip = $forecast->postal_code->attributes()->data[0]; + + if ($offset !== null) { + $offset = (int) $offset; + if ($offset < 0) { + $this->doNotice($source, 'Past weather data is not available'); + return; + } elseif ($offset > 3) { + $this->doNotice($source, 'Future weather data is limited to 3 days from today'); + return; + } + + $linha = $xml->forecast_conditions[$offset]; + $low = $linha->low->attributes()->data[0]; + $high = $linha->high->attributes()->data[0]; + $units = $forecast->unit_system->attributes()->data[0]; + $condition = $linha->condition->attributes()->data[0]; + $day = $linha->day_of_week->attributes()->data[0]; + + $date = ($offset == 0) ? time() : strtotime('next ' . $day); + $day = ucfirst($day) . ' ' . date('n/j/y', $date); + + if ($units == 'US') { + $lowF = $low; + $lowC = $temperature->convertFahrenheitToCelsius($low); + $highF = $high; + $highC = $temperature->convertFahrenheitToCelsius($high); + } else { + $lowC = $low; + $lowF = $temperature->convertCelsiusToFahrenheit($lowC); + $highC = $high; + $highF = $temperature->convertCelsiusToFahrenheit($high); + } + + $msg .= 'Forecast for ' . $city . ' (' . $zip . ')' + . ' on ' . $day . ' ::' + . ' Low: ' . $lowF . 'F/' . $lowC . 'C,' + . ' High: ' . $highF . 'F/' . $highC . 'C,' + . ' Conditions: ' . $condition; + } else { + $conditions = $xml->current_conditions; + $condition = $conditions->condition->attributes()->data[0]; + $tempF = $conditions->temp_f->attributes()->data[0]; + $tempC = $conditions->temp_c->attributes()->data[0]; + $humidity = $conditions->humidity->attributes()->data[0]; + $wind = $conditions->wind_condition->attributes()->data[0]; + $time = $forecast->current_date_time->attributes()->data[0]; + $time = date('n/j/y g:i A', strtotime($time)) . ' +0000'; + + $hiF = $temperature->getHeatIndex($tempF, $humidity); + $hiC = $temperature->convertFahrenheitToCelsius($hiF); + + $msg .= 'Weather for ' . $city . ' (' . $zip . ') -' + . ' Temperature: ' . $tempF . 'F/' . $tempC . 'C,' + . ' ' . $humidity . ',' + . ' Heat Index: ' . $hiF . 'F/' . $hiC . 'C,' + . ' Conditions: ' . $condition . ',' + . ' Updated: ' . $time; + } + + $this->doPrivmsg($source, $msg); + } + + /** + * Performs a Google Maps search for the given term. + * + * @param string $location Location to search for + * + * @return void + */ + public function onCommandGmap($location) + { + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + + $location = utf8_encode($location); + $url = 'http://maps.google.com/maps/geo'; + $params = array( + 'q' => $location, + 'output' => 'json', + 'gl' => $this->getConfig('google.lang', 'en'), + 'sensor' => 'false', + 'oe' => 'utf8', + 'mrt' => 'all', + 'key' => $this->getConfig('google.key') + ); + $response = $this->plugins->http->get($url, $params); + $json = $response->getContent(); + if (!empty($json)) { + $qtd = count($json->Placemark); + if ($qtd > 1) { + if ($qtd <= 3) { + foreach ($json->Placemark as $places) { + $xy = $places->Point->coordinates; + $address = utf8_decode($places->address); + $url = 'http://maps.google.com/maps?sll=' . $xy[1] . ',' + . $xy[0] . '&z=15'; + $msg = $nick . ' -> ' . $address . ' - ' . $url; + $this->doPrivmsg($source, $msg); + } + } else { + $msg + = $nick . + ', there are a lot of places with that query.' . + ' Try to be more specific!'; + $this->doPrivmsg($source, $msg); + } + } elseif ($qtd == 1) { + $xy = $json->Placemark[0]->Point->coordinates; + $address = utf8_decode($json->Placemark[0]->address); + $url = 'http://maps.google.com/maps?sll=' . $xy[1] . ',' . $xy[0] + . '&z=15'; + $msg = $nick . ' -> ' . $address . ' - ' . $url; + $this->doPrivmsg($source, $msg); + } else { + $this->doPrivmsg($source, $nick . ', I found nothing.'); + } + } else { + $this->doPrivmsg($source, $nick . ', we have a problem.'); + } + } + + /** + * Perform a Google Convert query to convert a value from one metric to + * another. + * + * @param string $value Value to convert + * @param string $from Source metric + * @param string $to Destination metric + * + * @return void + */ + public function onCommandGconvert($value, $from, $to) + { + $url = 'http://www.google.com/finance/converter'; + $params = array( + 'a' => $value, + 'from' => $from, + 'to' => $to + ); + $response = $this->plugins->http->get($url, $params); + $contents = $response->getContent(); + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + if ($contents) { + libxml_use_internal_errors(true); + $doc = new DOMDocument; + $doc->loadHTML($contents); + libxml_clear_errors(); + $xpath = new DOMXPath($doc); + $result = $xpath->query('//div[@id="currency_converter_result"]'); + $div = $result->item(0); + $text = rtrim($div->textContent); + $this->doPrivmsg($source, $text); + } + } + + /** + * Performs a Google search to convert a value from one unit to another. + * + * @param string $query Query of the form "[quantity] [unit] to [unit2]" + * + * @return void + * + * @pluginCmd [quantity] [unit] to [unit2] Convert a value from one + * metric to another + */ + public function onCommandConvert($query) + { + $url = 'http://www.google.com/search?q=' . urlencode($query); + $response = $this->plugins->http->get($url); + $contents = $response->getContent(); + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + + if ($response->isError()) { + $code = $response->getCode(); + $message = $response->getMessage(); + $this->doNotice($nick, 'ERROR: ' . $code . ' ' . $message); + return; + } + + $start = strpos($contents, '<h3 class=r>'); + if ($start !== false) { + $end = strpos($contents, '</b>', $start); + $text = strip_tags(substr($contents, $start, $end - $start)); + $text = str_replace( + array(chr(195), chr(151), chr(160)), + array('x', '', ' '), + $text + ); + } + + if (isset($text)) { + $this->doPrivmsg($source, $nick . ': ' . $text); + } else { + $this->doNotice($nick, 'Sorry I couldn\'t find an answer.'); + } + } + + + /** + * Returns the first definition of a Google Dictionary search. + * + * @param string $query Word to get the definition + * + * @return void + * @todo Implement use of URL shortening here + */ + public function onCommandDefine($query) + { + $lang = $this->getConfig('google.lang', 'en'); + $url = 'http://www.google.com/dictionary/json'; + $params = array( + 'callback' => 'result', + 'q' => $query, + 'sl' => $lang, + 'tl' => $lang, + 'restrict' => 'pr,de' + ); + $response = $this->plugins->http->get($url, $params); + $json = $response->getContent(); + + // Remove some garbage from the JSON and decode it + $json = str_replace(array('result(', ',200,null)'), '', $json); + $json = str_replace('"', '¿?¿', $json); + $json = strip_tags(stripcslashes($json)); + $json = str_replace('"', "'", $json); + $json = str_replace('¿?¿', '"', $json); + $json = json_decode($json); + + $event = $this->getEvent(); + $source = $event->getSource(); + $nick = $event->getNick(); + if (!empty($json->webDefinitions)) { + $results = 0; + foreach ($json->primaries[0]->entries as $entry) { + if ($entry->type == 'meaning') { + $results++; + if (empty($text)) { + foreach ($entry->terms as $term) { + if ($term->type == 'text') { + $text = trim($term->text); + } + } + } + } + } + $more = $results > 1 ? ($results - 1) . ' ' : ''; + $lang_code = substr($lang, 0, 2); + $msg = $nick . ': ' . $text + . ' - You can find ' . $more . 'more results at ' + . 'http://www.google.com/dictionary' + . '?aq=f' + . '&langpair=' . $lang_code . '%7C' . $lang_code + . '&q=' . $query + . '&hl=' . $lang_code; + $this->doPrivmsg($source, $msg); + } else { + if ($lang != 'en'){ + $lang = 'en'; + $this->onCommandDefine($query); + } else { + $msg = $nick . ': No results for this query.'; + $this->doPrivmsg($source, $msg); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Handler.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Handler.php new file mode 100755 index 0000000000..c3086587be --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Handler.php @@ -0,0 +1,501 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Handles on-demand loading of, iteration over, and access to plugins. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Plugin_Handler implements IteratorAggregate, Countable +{ + /** + * Current list of plugin instances + * + * @var array + */ + protected $plugins; + + /** + * Paths in which to search for plugin class files + * + * @var array + */ + protected $paths; + + /** + * Flag indicating whether plugin classes should be instantiated on + * demand if they are requested but no instance currently exists + * + * @var bool + */ + protected $autoload; + + /** + * Phergie_Config instance that should be passed in to any plugin + * instantiated within the handler + * + * @var Phergie_Config + */ + protected $config; + + /** + * Phergie_Event_Handler instance that should be passed in to any plugin + * instantiated within the handler + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Name of the class to use for iterating over all currently loaded + * plugins + * + * @var string + */ + protected $iteratorClass = 'Phergie_Plugin_Iterator'; + + /** + * Constructor to initialize class properties and add the path for core + * plugins. + * + * @param Phergie_Config $config configuration to pass to any + * instantiated plugin + * @param Phergie_Event_Handler $events event handler to pass to any + * instantiated plugin + * + * @return void + */ + public function __construct( + Phergie_Config $config, + Phergie_Event_Handler $events + ) { + $this->config = $config; + $this->events = $events; + + $this->plugins = array(); + $this->paths = array(); + $this->autoload = false; + + if (!empty($config['plugins.paths'])) { + foreach ($config['plugins.paths'] as $dir => $prefix) { + $this->addPath($dir, $prefix); + } + } + + $this->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + } + + + /** + * Adds a path to search for plugin class files. Paths are searched in + * the reverse order in which they are added. + * + * @param string $path Filesystem directory path + * @param string $prefix Optional class name prefix corresponding to the + * path + * + * @return Phergie_Plugin_Handler Provides a fluent interface + * @throws Phergie_Plugin_Exception + */ + public function addPath($path, $prefix = '') + { + if (!is_readable($path)) { + throw new Phergie_Plugin_Exception( + 'Path "' . $path . '" does not reference a readable directory', + Phergie_Plugin_Exception::ERR_DIRECTORY_NOT_READABLE + ); + } + + $this->paths[] = array( + 'path' => rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR, + 'prefix' => $prefix + ); + + return $this; + } + + /** + * Returns metadata corresponding to a specified plugin. + * + * @param string $plugin Short name of the plugin class + * + * @throws Phergie_Plugin_Exception Class file can't be found + * + * @return array|boolean Associative array containing the path to the + * class file and its containing directory as well as the full + * class name + */ + public function getPluginInfo($plugin) + { + foreach (array_reverse($this->paths) as $path) { + $file = $path['path'] . $plugin . '.php'; + if (file_exists($file)) { + $path = array( + 'dir' => $path['path'], + 'file' => $file, + 'class' => $path['prefix'] . $plugin, + ); + return $path; + } + } + + // If the class can't be found, display an error + throw new Phergie_Plugin_Exception( + 'Class file for plugin "' . $plugin . '" cannot be found', + Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND + ); + } + + /** + * Adds a plugin instance to the handler. + * + * @param string|Phergie_Plugin_Abstract $plugin Short name of the + * plugin class or a plugin object + * @param array $args Optional array of + * arguments to pass to the plugin constructor if a short name is + * passed for $plugin + * + * @return Phergie_Plugin_Abstract New plugin instance + */ + public function addPlugin($plugin, array $args = null) + { + // If a short plugin name is specified... + if (is_string($plugin)) { + $index = strtolower($plugin); + if (isset($this->plugins[$index])) { + return $this->plugins[$index]; + } + + // Attempt to locate and load the class + $info = $this->getPluginInfo($plugin); + $file = $info['file']; + $class = $info['class']; + include_once $file; + if (!class_exists($class, false)) { + throw new Phergie_Plugin_Exception( + 'File "' . $file . '" does not contain class "' . $class . '"', + Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND + ); + } + + // Check to ensure the class is a plugin class + if (!is_subclass_of($class, 'Phergie_Plugin_Abstract')) { + $msg + = 'Class for plugin "' . $plugin . + '" does not extend Phergie_Plugin_Abstract'; + throw new Phergie_Plugin_Exception( + $msg, + Phergie_Plugin_Exception::ERR_INCORRECT_BASE_CLASS + ); + } + + // Check to ensure the class can be instantiated + $reflection = new ReflectionClass($class); + if (!$reflection->isInstantiable()) { + throw new Phergie_Plugin_Exception( + 'Class for plugin "' . $plugin . '" cannot be instantiated', + Phergie_Plugin_Exception::ERR_CLASS_NOT_INSTANTIABLE + ); + } + + // If the class is found, instantiate it + if (!empty($args)) { + $instance = $reflection->newInstanceArgs($args); + } else { + $instance = new $class; + } + + // Store the instance + $this->plugins[$index] = $instance; + $plugin = $instance; + + } elseif ($plugin instanceof Phergie_Plugin_Abstract) { + // If a plugin instance is specified... + + // Add the plugin instance to the list of plugins + $this->plugins[strtolower($plugin->getName())] = $plugin; + } + + // Configure and initialize the instance + $plugin->setPluginHandler($this); + $plugin->setConfig($this->config); + $plugin->setEventHandler($this->events); + $plugin->onLoad(); + + return $plugin; + } + + /** + * Adds multiple plugin instances to the handler. + * + * @param array $plugins List of elements where each is of the form + * 'ShortPluginName' or array('ShortPluginName', array($arg1, + * ..., $argN)) + * + * @return Phergie_Plugin_Handler Provides a fluent interface + */ + public function addPlugins(array $plugins) + { + foreach ($plugins as $plugin) { + if (is_array($plugin)) { + $this->addPlugin($plugin[0], $plugin[1]); + } else { + $this->addPlugin($plugin); + } + } + + return $this; + } + + /** + * Removes a plugin instance from the handler. + * + * @param string|Phergie_Plugin_Abstract $plugin Short name of the + * plugin class or a plugin object + * + * @return Phergie_Plugin_Handler Provides a fluent interface + */ + public function removePlugin($plugin) + { + if ($plugin instanceof Phergie_Plugin_Abstract) { + $plugin = $plugin->getName(); + } + $plugin = strtolower($plugin); + + unset($this->plugins[$plugin]); + + return $this; + } + + /** + * Returns the corresponding instance for a specified plugin, loading it + * if it is not already loaded and autoloading is enabled. + * + * @param string $name Short name of the plugin class + * + * @return Phergie_Plugin_Abstract Plugin instance + */ + public function getPlugin($name) + { + // If the plugin is loaded, return the instance + $lower = strtolower($name); + if (isset($this->plugins[$lower])) { + return $this->plugins[$lower]; + } + + // If autoloading is disabled, display an error + if (!$this->autoload) { + $msg + = 'Plugin "' . $name . '" has been requested, ' . + 'is not loaded, and autoload is disabled'; + throw new Phergie_Plugin_Exception( + $msg, + Phergie_Plugin_Exception::ERR_PLUGIN_NOT_LOADED + ); + } + + // If autoloading is enabled, attempt to load the plugin + $plugin = $this->addPlugin($name); + + // Return the added plugin + return $plugin; + } + + /** + * Returns the corresponding instances for multiple specified plugins, + * loading them if they are not already loaded and autoloading is + * enabled. + * + * @param array $names Optional list of short names of the plugin + * classes to which the returned plugin list will be limited, + * defaults to all presently loaded plugins + * + * @return array Associative array mapping lowercased plugin class short + * names to corresponding plugin instances + */ + public function getPlugins(array $names = array()) + { + if (empty($names)) { + return $this->plugins; + } + + $plugins = array(); + foreach ($names as $name) { + $plugins[strtolower($name)] = $this->getPlugin($name); + } + return $plugins; + } + + /** + * Returns whether or not at least one instance of a specified plugin + * class is loaded. + * + * @param string $name Short name of the plugin class + * + * @return bool TRUE if an instance exists, FALSE otherwise + */ + public function hasPlugin($name) + { + return isset($this->plugins[strtolower($name)]); + } + + /** + * Sets a flag used to determine whether plugins should be loaded + * automatically if they have not been explicitly loaded. + * + * @param bool $flag TRUE to have plugins autoload (default), FALSE + * otherwise + * + * @return Phergie_Plugin_Handler Provides a fluent interface. + */ + public function setAutoload($flag = true) + { + $this->autoload = $flag; + + return $this; + } + + /** + * Returns the value of a flag used to determine whether plugins should + * be loaded automatically if they have not been explicitly loaded. + * + * @return bool TRUE if autoloading is enabled, FALSE otherwise + */ + public function getAutoload() + { + return $this->autoload; + } + + /** + * Allows plugin instances to be accessed as properties of the handler. + * + * @param string $name Short name of the plugin + * + * @return Phergie_Plugin_Abstract Requested plugin instance + */ + public function __get($name) + { + return $this->getPlugin($name); + } + + /** + * Allows plugin instances to be detected as properties of the handler. + * + * @param string $name Short name of the plugin + * + * @return bool TRUE if the plugin is loaded, FALSE otherwise + */ + public function __isset($name) + { + return $this->hasPlugin($name); + } + + /** + * Allows plugin instances to be removed as properties of handler. + * + * @param string $name Short name of the plugin + * + * @return void + */ + public function __unset($name) + { + $this->removePlugin($name); + } + + /** + * Returns an iterator for all currently loaded plugin instances. + * + * @return ArrayIterator + */ + public function getIterator() + { + return new $this->iteratorClass( + new ArrayIterator($this->plugins) + ); + } + + /** + * Sets the iterator class used for all currently loaded plugin + * instances. + * + * @param string $class Name of a class that extends FilterIterator + * + * @return Phergie_Plugin_Handler Provides a fluent API + * @throws Phergie_Plugin_Exception Class cannot be found or is not an + * FilterIterator-based class + */ + public function setIteratorClass($class) + { + $valid = true; + + try { + $error_reporting = error_reporting(0); // ignore autoloader errors + $r = new ReflectionClass($class); + error_reporting($error_reporting); + if (!$r->isSubclassOf('FilterIterator')) { + $message = 'Class ' . $class . ' is not a subclass of FilterIterator'; + $valid = false; + } + } catch (ReflectionException $e) { + $message = $e->getMessage(); + $valid = false; + } + + if (!$valid) { + throw new Phergie_Plugin_Exception( + $message, + Phergie_Plugin_Exception::ERR_INVALID_ITERATOR_CLASS + ); + } + + $this->iteratorClass = $class; + } + + /** + * Proxies method calls to all plugins containing the called method. + * + * @param string $name Name of the method called + * @param array $args Arguments passed in the method call + * + * @return void + */ + public function __call($name, array $args) + { + foreach ($this->getIterator() as $plugin) { + call_user_func_array(array($plugin, $name), $args); + } + return true; + } + + /** + * Returns the number of plugins contained within the handler. + * + * @return int Plugin count + */ + public function count() + { + return count($this->plugins); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Help.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Help.php new file mode 100644 index 0000000000..4c2c49b314 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Help.php @@ -0,0 +1,276 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Help + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Help + */ + +/** + * Provides access to descriptions of plugins and the commands they provide. + * + * @category Phergie + * @package Phergie_Plugin_Help + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Help + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Help extends Phergie_Plugin_Abstract +{ + /** + * Registry of help data indexed by plugin name + * + * @var array + */ + protected $registry; + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Creates a registry of plugin metadata on connect. + * + * @return void + */ + public function onConnect() + { + $this->populateRegistry(); + } + + /** + * Creates a registry of plugin metadata. + * + * @return void + */ + public function populateRegistry() + { + $this->registry = array(); + + foreach ($this->plugins as $plugin) { + $class = new ReflectionClass($plugin); + $pluginName = strtolower($plugin->getName()); + + // Parse the plugin description + $docblock = $class->getDocComment(); + $annotations = $this->getAnnotations($docblock); + if (isset($annotations['pluginDesc'])) { + $pluginDesc = implode(' ', $annotations['pluginDesc']); + } else { + $pluginDesc = $this->parseShortDescription($docblock); + } + $this->registry[$pluginName] = array( + 'desc' => $pluginDesc, + 'cmds' => array() + ); + + // Parse command method descriptions + $methodPrefix = Phergie_Plugin_Command::METHOD_PREFIX; + $methodPrefixLength = strlen($methodPrefix); + foreach ($class->getMethods() as $method) { + if (strpos($method->getName(), $methodPrefix) !== 0) { + continue; + } + + $cmd = strtolower(substr($method->getName(), $methodPrefixLength)); + $docblock = $method->getDocComment(); + $annotations = $this->getAnnotations($docblock); + + if (isset($annotations['pluginCmd'])) { + $cmdDesc = implode(' ', $annotations['pluginCmd']); + } else { + $cmdDesc = $this->parseShortDescription($docblock); + } + + $cmdParams = array(); + if (!empty($annotations['param'])) { + foreach ($annotations['param'] as $param) { + $match = null; + if (preg_match('/\h+\$([^\h]+)\h+/', $param, $match)) { + $cmdParams[] = $match[1]; + } + } + } + + $this->registry[$pluginName]['cmds'][$cmd] = array( + 'desc' => $cmdDesc, + 'params' => $cmdParams + ); + } + + if (empty($this->registry[$pluginName]['cmds'])) { + unset($this->registry[$pluginName]); + } + } + } + + /** + * Displays a list of plugins with help information available or + * commands available for a specific plugin. + * + * @param string $query Optional short name of a plugin for which commands + * should be returned or a command; if unspecified, a list of + * plugins with help information available is returned + * + * @return void + */ + public function onCommandHelp($query = null) + { + if ($query == 'refresh') { + $this->populateRegistry(); + } + + $nick = $this->getEvent()->getNick(); + $delay = $this->getConfig('help.delay', 2); + + // Handle requests for a plugin list + if (!$query) { + $msg = 'These plugins have help information available: ' + . implode(', ', array_keys($this->registry)); + $this->doPrivmsg($nick, $msg); + return; + } + + // Handle requests for plugin information + $query = strtolower($query); + if (isset($this->registry[$query]) + && empty($this->registry[$query]['cmds'][$query])) { + $msg = $query . ' - ' . $this->registry[$query]['desc']; + $this->doPrivmsg($nick, $msg); + + $msg = 'Available commands - ' + . implode(', ', array_keys($this->registry[$query]['cmds'])); + $this->doPrivmsg($nick, $msg); + + if ($this->getConfig('command.prefix')) { + $msg + = 'Note that these commands must be prefixed with "' + . $this->getConfig('command.prefix') + . '" (without quotes) when issued in a public channel.'; + $this->doPrivmsg($nick, $msg); + } + + return; + } + + // Handle requests for command information + foreach ($this->registry as $plugin => $data) { + if (empty($data['cmds'])) { + continue; + } + + $result = preg_grep('/^' . $query . '$/i', array_keys($data['cmds'])); + if (!$result) { + continue; + } + + $cmd = $data['cmds'][array_shift($result)]; + $msg = $query; + if (!empty($cmd['params'])) { + $msg .= ' [' . implode('] [', $cmd['params']) . ']'; + } + $msg .= ' - ' . $cmd['desc']; + $this->doPrivmsg($nick, $msg); + } + } + + /** + * Parses and returns the short description from a docblock. + * + * @param string $docblock Docblock comment code + * + * @return string Short description (i.e. content from the start of the + * docblock up to the first double-newline) + */ + protected function parseShortDescription($docblock) + { + $desc = preg_replace( + array('#^\h*\*\h*#m', '#^/\*\*\h*\v+\h*#', '#(?:\r?\n){2,}.*#s', '#\s*\v+\s*#'), + array('', '', '', ' '), + $docblock + ); + return $desc; + } + + /** + * Taken from PHPUnit/Util/Test.php and modified to fix an issue with + * tag content spanning multiple lines. + * + * PHPUnit + * + * Copyright (c) 2002-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Sebastian Bergmann nor the names of his + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * @param string $docblock docblock to parse + * + * @return array + */ + protected function getAnnotations($docblock) + { + $annotations = array(); + + $regex = '/@(?P<name>[A-Za-z_-]+)(?:[ \t]+(?P<value>.*?))?(?:\*\/|\* @)/ms'; + + if (preg_match_all($regex, $docblock, $matches)) { + $numMatches = count($matches[0]); + + for ($i = 0; $i < $numMatches; ++$i) { + $annotation = $matches['value'][$i]; + $annotation = preg_replace('/\s*\v+\s*\*\s*/', ' ', $annotation); + $annotation = rtrim($annotation); + $annotations[$matches['name'][$i]][] = $annotation; + } + } + + return $annotations; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Http.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Http.php new file mode 100644 index 0000000000..7c5c8704c2 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Http.php @@ -0,0 +1,284 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Http + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Http + */ + +/** + * Provides an HTTP client for plugins to use in contacting web services or + * retrieving feeds or web pages. + * + * @category Phergie + * @package Phergie_Plugin_Http + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Http + * @uses extension simplexml optional + * @uses extension json optional + */ +class Phergie_Plugin_Http extends Phergie_Plugin_Abstract +{ + /** + * Response to the last executed HTTP request + * + * @var Phergie_Plugin_Http_Response + */ + protected $response; + + /** + * Mapping of content types to handlers for them + * + * @var array + */ + protected $handlers; + + /** + * Initializes the handler lookup table. + * + * @return void + */ + public function onLoad() + { + $this->handlers = array( + '(?:application|text)/xml(?:;.*)?' + => 'simplexml_load_string', + '(?:(?:application|text)/(?:x-)?json)|text/javascript.*' + => 'json_decode', + ); + + if (is_array($this->config['http.handlers'])) { + $this->handlers = array_merge( + $this->handlers, + $this->config['http.handlers'] + ); + } + } + + /** + * Sets a handler callback for a content type, which is called when a + * response of that content type is received to perform any needed + * transformations on the response body content before storing it in the + * response object. Note that the calling plugin is responsible for + * indicating any dependencies related to specified handler callbacks. + * + * @param string $type PCRE regular expression (without delimiters) that + * matches one or more MIME types + * @param callback $callback Callback to execute when a response of a content + * type matched by $type is encountered + * + * @return Phergie_Plugin_Http Provides a fluent interface + */ + public function setHandler($type, $callback) + { + if (!is_callable($callback)) { + throw new Phergie_Plugin_Exception( + 'Invalid callback specified', + Phergie_Plugin_Exception::ERR_FATAL_ERROR + ); + } + + $this->handlers[$type] = $callback; + + return $this; + } + + /** + * Supporting method that parses the status line of an HTTP response + * message. + * + * @param string $status Status line + * + * @return array Associative array containing the HTTP version, response + * code, and response description + */ + protected function parseStatusLine($status) + { + $parts = explode(' ', $status, 3); + $parsed = array( + 'version' => str_replace('HTTP/', '', $parts[0]), + 'code' => $parts[1], + 'message' => rtrim($parts[2]) + ); + return $parsed; + } + + /** + * Supporting method that acts as an error handler to intercept HTTP + * responses resulting in PHP-level errors. + * + * @param int $errno Level of the error raised + * @param string $errstr Error message + * @param string $errfile Name of the file in which the error was raised + * @param string $errline Line number on which the error was raised + * + * @return bool Always returns TRUE to allow normal execution to + * continue once this method terminates + */ + public function handleError($errno, $errstr, $errfile, $errline) + { + if ($httperr = strstr($errstr, 'HTTP/')) { + $parts = $this->parseStatusLine($httperr); + $this->response + ->setCode($parts['code']) + ->setMessage($parts['message']); + } + + return true; + } + + /** + * Supporting method that executes a request and handles the response. + * + * @param string $url URL to request + * @param array $context Associative array of stream context parameters + * + * @return Phergie_Plugin_Http_Response Object representing the response + * resulting from the request + */ + public function request($url, array $context) + { + $this->response = new Phergie_Plugin_Http_Response; + + $url = (string) $url; + $context = stream_context_create(array('http' => $context)); + + set_error_handler(array($this, 'handleError'), E_WARNING); + $stream = fopen($url, 'r', false, $context); + if ($stream) { + $meta = stream_get_meta_data($stream); + $status = $this->parseStatusLine($meta['wrapper_data'][0]); + $code = $status['code']; + $message = $status['message']; + $headers = array(); + foreach (array_slice($meta['wrapper_data'], 1) as $header) { + if (!strpos($header, ':')) { + continue; + } + list($name, $value) = explode(': ', $header, 2); + $headers[$name] = $value; + } + unset($meta['wrapper_data']); + + $this->response + ->setCode($code) + ->setMessage($message) + ->setHeaders($headers) + ->setMeta($meta); + + $body = stream_get_contents($stream); + $type = $this->response->getHeaders('content-type'); + foreach ($this->handlers as $expr => $handler) { + if (preg_match('#^' . $expr . '$#i', $type)) { + $handled = call_user_func($handler, $body); + if (!empty($handled)) { + $body = $handled; + } + } + } + + $this->response->setContent($body); + } + restore_error_handler(); + + return $this->response; + } + + /** + * Performs a GET request. + * + * @param string $url URL for the request + * @param array $query Optional associative array of parameters + * constituting the URL query string if $url has none + * @param array $context Optional associative array of additional stream + * context parameters + * + * @return Phergie_Plugin_Http_Response Received response data + */ + public function get($url, array $query = array(), array $context = array()) + { + if (!empty($query)) { + $url .= '?' . http_build_query($query); + } + + $context['method'] = 'GET'; + + return $this->request($url, $context); + } + + /** + * Performs a HEAD request. + * + * @param string $url URL for the request + * @param array $query Optional associative array of parameters + * constituting the URL query string if $url has none + * @param array $context Optional associative array of additional stream + * context parameters + * + * @return Phergie_Plugin_Http_Response Received response data + */ + public function head($url, array $query = array(), array $context = array()) + { + if (!empty($query)) { + $url .= '?' . http_build_query($query); + } + + $context['method'] = 'HEAD'; + + return $this->request($url, $context); + } + + /** + * Performs a POST request. + * + * @param string $url URL for the request + * @param array $query Optional associative array of parameters + * constituting the URL query string if $url has none + * @param array $post Optional associative array of parameters + * constituting the POST request body if it is using the + * traditional URL-encoded format + * @param array $context Optional associative array of additional stream + * context parameters + * + * @return Phergie_Plugin_Http_Response Received response data + */ + public function post($url, array $query = array(), + array $post = array(), array $context = array() + ) { + if (!empty($query)) { + $url .= '?' . http_build_query($query); + } + + $context['method'] = 'POST'; + + if (!empty($post) + && (!empty($context['header']) + xor stripos($context['header'], 'Content-Type')) + ) { + if (!empty($context['header'])) { + $context['header'] .= "\r\n"; + } else { + $context['header'] = ''; + } + $context['header'] .= + 'Content-Type: application/x-www-form-urlencoded'; + $context['content'] = http_build_query($post); + } + + return $this->request($url, $context); + } +} \ No newline at end of file diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Http/Response.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Http/Response.php new file mode 100644 index 0000000000..b9e377cf64 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Http/Response.php @@ -0,0 +1,281 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Http + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Http + */ + +/** + * Data structure for HTTP response information. + * + * @category Phergie + * @package Phergie_Plugin_Http + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Http + */ +class Phergie_Plugin_Http_Response +{ + /** + * HTTP response code or 0 if no HTTP response was received + * + * @var string + */ + protected $code; + + /** + * HTTP response strings + * + * @var array + */ + protected static $codeStrings = array( + 0 => 'No Response', + 100 => 'Continue', + 200 => 'OK', + 201 => 'Created', + 204 => 'No Content', + 206 => 'Partial Content', + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 307 => 'Temporary Redirect', + 400 => 'Bad Request', + 401 => 'Unauthorized', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 408 => 'Request Timeout', + 410 => 'Gone', + 413 => 'Request Entity Too Large', + 414 => 'Request URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + 500 => 'Internal Server Error', + 501 => 'Method Not Implemented', + 503 => 'Service Unavailable', + 506 => 'Variant Also Negotiates' + ); + + /** + * Description of the HTTP response code or the error message if no HTTP + * response was received + * + * @var string + */ + protected $message; + + /** + * Content of the response body, decoded for supported content types + * + * @var mixed + */ + protected $content; + + /** + * Associative array mapping response header names to their values + * + * @var array + */ + protected $headers; + + /** + * Associative array containing other metadata about the response + * + * @var array + */ + protected $meta; + + /** + * Sets the HTTP response code. + * + * @param string $code Response code + * + * @return Phergie_Plugin_Http_Response Provides a fluent interface + */ + public function setCode($code) + { + $this->code = $code; + return $this; + } + + /** + * Returns the HTTP response code. + * + * @return string Response code + */ + public function getCode() + { + return $this->code; + } + + /** + * Returns the HTTP response code text. + * + * @return string Response code text + */ + public function getCodeAsString() + { + $code = $this->code; + + if (!isset(self::$codeStrings[$code])) { + return 'Unkown HTTP Status'; + } + + return self::$codeStrings[$code]; + } + + /** + * Returns whether the response indicates a client- or server-side error. + * + * @return bool TRUE if the response indicates an error, FALSE otherwise + */ + public function isError() + { + switch (substr($this->code, 0, 1)) { + case '0': + case '4': + case '5': + return true; + default: + return false; + } + } + + /** + * Sets the HTTP response description. + * + * @param string $message Response description + * + * @return Phergie_Plugin_Http_Response Provides a fluent interface + */ + public function setMessage($message) + { + $this->message = $message; + return $this; + } + + /** + * Returns the HTTP response description. + * + * @return string + */ + public function getMessage() + { + return $this->message; + } + + /** + * Sets the content of the response body. + * + * @param mixed $content Response body content + * + * @return Phergie_Plugin_Http_Response Provides a fluent interface + */ + public function setContent($content) + { + $this->content = $content; + return $this; + } + + /** + * Returns the content of the response body. + * + * @return mixed Response body content, decoded for supported content + * types + */ + public function getContent() + { + return $this->content; + } + + /** + * Sets the response headers. + * + * @param array $headers Associative array of response headers indexed + * by header name + * + * @return Phergie_Plugin_Http_Response Provides a fluent interface + */ + public function setHeaders(array $headers) + { + $names = array_map('strtolower', array_keys($headers)); + $values = array_values($headers); + $this->headers = array_combine($names, $values); + return $this; + } + + /** + * Returns all response headers or the value of a single specified + * response header. + * + * @param string $name Optional name of a single header for which the + * associated value should be returned + * + * @return array|string Associative array of all header values, a string + * containing the value of the header indicated by $name if one + * is set, or null if one is not + */ + public function getHeaders($name = null) + { + if ($name) { + $name = strtolower($name); + if (empty($this->headers[$name])) { + return null; + } + return $this->headers[$name]; + } + return $this->headers; + } + + /** + * Sets the response metadata. + * + * @param array $meta Associative array of response metadata + * + * @return Phergie_Plugin_Http_Response Provides a fluent interface + */ + public function setMeta(array $meta) + { + $this->meta = $meta; + return $this; + } + + /** + * Returns all metadata or the value of a single specified metadatum. + * + * @param string $name Optional name of a single metadatum for which the + * associated value should be returned + * + * @return array|string|null Associative array of all metadata values, a + * string containing the value of the metadatum indicated by + * $name if one is set, or null if one is not + */ + public function getMeta($name = null) + { + if ($name) { + if (empty($this->meta[$name])) { + return null; + } + return $this->meta[$name]; + } + return $this->meta; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Ideone.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ideone.php new file mode 100644 index 0000000000..3af88dda94 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ideone.php @@ -0,0 +1,180 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Ideone + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ideone + */ + +/** + * Interfaces with ideone.com to execute code and return the result. + * + * @category Phergie + * @package Phergie_Plugin_Ideone + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ideone + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Ideone extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->plugins->getPlugin('Command'); + } + + /** + * Checks a service response for an error, sends a notice to the event + * source if an error has occurred, and returns whether an error was found. + * + * @param array $result Associative array representing the service response + * + * @return boolean TRUE if an error is found, FALSE otherwise + */ + protected function isError($result) + { + if ($result['error'] != 'OK') { + $this->doNotice($this->event->getNick(), 'ideone error: ' . $result['error']); + return true; + } + return false; + } + + /** + * Executes a source code sequence in a specified language and returns + * the result. + * + * @param string $language Programming language the source code is in + * @param string $code Source code to execute + * + * @return void + */ + public function onCommandIdeone($language, $code) + { + $source = $this->event->getSource(); + $nick = $this->event->getNick(); + + // Get authentication credentials + $user = $this->getConfig('ideone.user', 'test'); + $pass = $this->getConfig('ideone.pass', 'test'); + + // Normalize the command parameters + $language = strtolower($language); + + // Massage PHP code to allow for convenient shorthand + if ($language == 'php') { + if (!preg_match('/^<\?(?:php)?/', $code)) { + $code = '<?php ' . $code; + } + switch (substr($code, -1)) { + case '}': + case ';': + break; + default: + $code .= ';'; + break; + } + } + + // Identify the language to use + $client = new SoapClient('http://ideone.com/api/1/service.wsdl'); + $response = $client->getLanguages($user, $pass); + if ($this->isError($response)) { + return; + } + $languageLength = strlen($language); + foreach ($response['languages'] as $languageId => $languageName) { + if (strncasecmp($language, $languageName, $languageLength) == 0) { + break; + } + } + + // Send the paste data + $response = $client->createSubmission( + $user, + $pass, + $code, + $languageId, + null, // string input - data from stdin + true, // boolean run - TRUE to execute the code + false // boolean private - FALSE to make the paste public + ); + if ($this->isError($response)) { + return; + } + $link = $response['link']; + + // Wait until the paste data is processed or the service fails + $attempts = $this->getConfig('ideone.attempts', 10); + foreach (range(1, $attempts) as $attempt) { + $response = $client->getSubmissionStatus($user, $pass, $link); + if ($this->isError($response)) { + return; + } + if ($response['status'] == 0) { + $result = $response['result']; + break; + } else { + $result = null; + sleep(1); + } + } + if ($result == null) { + $this->doNotice($nick, 'ideone error: Timed out'); + return; + } + if ($result != 15) { + $this->doNotice($nick, 'ideone error: Status code ' . $result); + return; + } + + // Get details for the created paste + $response = $client->getSubmissionDetails( + $user, + $pass, + $link, + false, // boolean withSource - FALSE to not return the source code + false, // boolean withInput - FALSE to not return stdin data + true, // boolean withOutput - TRUE to include output + true, // boolean withStderr - TRUE to return stderr data + false // boolean withCmpinfo - TRUE to return compilation info + ); + if ($this->isError($response)) { + return; + } + + // Replace the output if it exceeds a specified maximum length + $outputLimit = $this->getConfig('ideone.output_limit', 100); + var_dump($response); + if ($outputLimit && strlen($response['output']) > $outputLimit) { + $response['output'] = 'Output is too long to post'; + } + + // Format the message + $msg = $this->getConfig('ideone.format', '%nick%: [ %link% ] %output%'); + $response['nick'] = $nick; + $response['link'] = 'http://ideone.com/' . $link; + foreach ($response as $key => $value) { + $msg = str_replace('%' . $key . '%', $value, $msg); + } + $this->doPrivmsg($source, $msg); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Invisible.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Invisible.php new file mode 100755 index 0000000000..622f7d3db0 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Invisible.php @@ -0,0 +1,44 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Invisible + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Invisible + */ + +/** + * Marks the bot as invisible when it connects to the server. + * + * @category Phergie + * @package Phergie_Plugin_Invisible + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Invisible + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_2_3_2 + */ +class Phergie_Plugin_Invisible extends Phergie_Plugin_Abstract +{ + /** + * Marks the bot as invisible when it connects to the server. + * + * @return void + */ + public function onConnect() + { + $this->doMode($this->getConnection()->getNick(), '+i'); + $this->getPluginHandler()->removePlugin($this); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Iterator.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Iterator.php new file mode 100644 index 0000000000..d610962986 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Iterator.php @@ -0,0 +1,142 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Implements a filtering iterator for limiting executing of methods across + * a group of plugins. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Plugin_Iterator extends FilterIterator +{ + /** + * List of short names of plugins to exclude when iterating + * + * @var array + */ + protected $plugins = array(); + + /** + * List of method names where plugins with these methods will be + * excluded when iterating + * + * @var array + */ + protected $methods = array(); + + /** + * Overrides the parent constructor to reset the internal iterator's + * pointer to the current item, which the parent class errantly does not + * do. + * + * @param Iterator $iterator Iterator to filter + * + * @return void + * @link http://bugs.php.net/bug.php?id=52560 + */ + public function __construct(Iterator $iterator) + { + parent::__construct($iterator); + $this->rewind(); + } + + /** + * Adds to a list of plugins to exclude when iterating. + * + * @param mixed $plugins String containing the short name of a single + * plugin to exclude or an array of short names of multiple + * plugins to exclude + * + * @return Phergie_Plugin_Iterator Provides a fluent interface + */ + public function addPluginFilter($plugins) + { + if (is_array($plugins)) { + $this->plugins = array_unique( + array_merge($this->plugins, $plugins) + ); + } else { + $this->plugins[] = $plugins; + } + return $this; + } + + /** + * Adds to a list of method names where plugins defining these methods + * will be excluded when iterating. + * + * @param mixed $methods String containing the name of a single method + * or an array containing the name of multiple methods + * + * @return Phergie_Plugin_Iterator Provides a fluent interface + */ + public function addMethodFilter($methods) + { + if (is_array($methods)) { + $this->methods = array_merge($this->methods, $methods); + } else { + $this->methods[]= $methods; + } + return $this; + } + + /** + * Clears any existing plugin and methods filters. + * + * @return Phergie_Plugin_Iterator Provides a fluent interface + */ + public function clearFilters() + { + $this->plugins = array(); + $this->methods = array(); + } + + /** + * Implements FilterIterator::accept(). + * + * @return boolean TRUE to include the current item in those by returned + * during iteration, FALSE otherwise + */ + public function accept() + { + if (!$this->plugins && !$this->methods) { + return true; + } + + $current = $this->current(); + + if (in_array($current->getName(), $this->plugins)) { + return false; + } + + foreach ($this->methods as $method) { + if (method_exists($current, $method)) { + return false; + } + } + + return true; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Join.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Join.php new file mode 100755 index 0000000000..50c3ad8e69 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Join.php @@ -0,0 +1,56 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Join + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Join + */ + +/** + * Joins a specified channel on command from a user. + * + * @category Phergie + * @package Phergie_Plugin_Join + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Join + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Join extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Joins a channel. + * + * @param string $channels Comma-delimited list of channels to join + * @param string $keys Optional comma-delimited list of channel keys + * + * @return void + */ + public function onCommandJoin($channels, $keys = null) + { + $this->doJoin($channels, $keys); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Karma.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Karma.php new file mode 100644 index 0000000000..27b4a087d3 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Karma.php @@ -0,0 +1,451 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Karma + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Karma + */ + +/** + * Handles requests for incrementation or decrementation of a maintained list + * of counters for specified terms. + * + * @category Phergie + * @package Phergie_Plugin_Karma + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Karma + * @uses extension PDO + * @uses extension pdo_sqlite + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Karma extends Phergie_Plugin_Abstract +{ + /** + * SQLite object + * + * @var resource + */ + protected $db = null; + + /** + * Prepared statement to add a new karma record + * + * @var PDOStatement + */ + protected $insertKarma; + + /** + * Prepared statement to update an existing karma record + * + * @var PDOStatement + */ + protected $updateKarma; + + /** + * Retrieves an existing karma record + * + * @var PDOStatement + */ + protected $fetchKarma; + + /** + * Retrieves an existing fixed karma record + * + * @var PDOStatement + */ + protected $fetchFixedKarma; + + /** + * Retrieves a positive answer for a karma comparison + * + * @var PDOStatement + */ + protected $fetchPositiveAnswer; + + /** + * Retrieves a negative answer for a karma comparison + * + * @var PDOStatement + */ + protected $fetchNegativeAnswer; + + /** + * Check for dependencies and initializes a database connection and + * prepared statements. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $this->getDb(); + } + + /** + * Initializes prepared statements used by the plugin. + * + * @return void + */ + protected function initializePreparedStatements() + { + $this->fetchKarma = $this->db->prepare(' + SELECT karma + FROM karmas + WHERE term = :term + LIMIT 1 + '); + + $this->insertKarma = $this->db->prepare(' + INSERT INTO karmas (term, karma) + VALUES (:term, :karma) + '); + + $this->updateKarma = $this->db->prepare(' + UPDATE karmas + SET karma = :karma + WHERE term = :term + '); + + $this->fetchFixedKarma = $this->db->prepare(' + SELECT karma + FROM fixed_karmas + WHERE term = :term + LIMIT 1 + '); + + $this->fetchPositiveAnswer = $this->db->prepare(' + SELECT answer + FROM positive_answers + ORDER BY RANDOM() + LIMIT 1 + '); + + $this->fetchNegativeAnswer = $this->db->prepare(' + SELECT answer + FROM negative_answers + ORDER BY RANDOM() + LIMIT 1 + '); + } + + /** + * Returns a connection to the plugin database, initializing one if none + * is explicitly set. + * + * @return PDO Database connection + */ + public function getDb() + { + if (empty($this->db)) { + $this->db = new PDO('sqlite:' . dirname(__FILE__) . '/Karma/karma.db'); + $this->initializePreparedStatements(); + } + return $this->db; + } + + /** + * Sets the connection to the plugin database, mainly intended for unit + * testing. + * + * @param PDO $db Database connection + * + * @return Phergie_Plugin_Karma Provides a fluent interface + */ + public function setDb(PDO $db) + { + $this->db = $db; + $this->initializePreparedStatements(); + return $this; + } + + /** + * Get the canonical form of a given term. + * + * In the canonical form all sequences of whitespace + * are replaced by a single space and all characters + * are lowercased. + * + * @param string $term Term for which a canonical form is required + * + * @return string Canonical term + */ + protected function getCanonicalTerm($term) + { + $canonicalTerm = strtolower(preg_replace('|\s+|', ' ', trim($term, '()'))); + switch ($canonicalTerm) { + case 'me': + $canonicalTerm = strtolower($this->event->getNick()); + break; + case 'all': + case '*': + case 'everything': + $canonicalTerm = 'everything'; + break; + } + return $canonicalTerm; + } + + /** + * Intercepts a message and processes any contained recognized commands. + * + * @return void + */ + public function onPrivmsg() + { + $message = $this->getEvent()->getText(); + + $termPattern = '\S+?|\([^<>]+?\)+'; + $actionPattern = '(?P<action>\+\+|--)'; + + $modifyPattern = <<<REGEX + {^ + (?J) # allow overwriting capture names + \s* # ignore leading whitespace + + (?: # start with ++ or -- before the term + $actionPattern + (?P<term>$termPattern) + | # follow the term with ++ or -- + (?P<term>$termPattern) + $actionPattern # allow no whitespace between the term and the action + ) + $}ix +REGEX; + + $versusPattern = <<<REGEX + {^ + (?P<term0>$termPattern) + \s+(?P<method><|>)\s+ + (?P<term1>$termPattern)$# + $}ix +REGEX; + + $match = null; + + if (preg_match($modifyPattern, $message, $match)) { + $action = $match['action']; + $term = $this->getCanonicalTerm($match['term']); + $this->modifyKarma($term, $action); + } elseif (preg_match($versusPattern, $message, $match)) { + $term0 = trim($match['term0']); + $term1 = trim($match['term1']); + $method = $match['method']; + $this->compareKarma($term0, $term1, $method); + } + } + + /** + * Get the karma rating for a given term. + * + * @param string $term Term for which the karma rating needs to be + * retrieved + * + * @return void + */ + public function onCommandKarma($term) + { + $source = $this->getEvent()->getSource(); + $nick = $this->getEvent()->getNick(); + + $canonicalTerm = $this->getCanonicalTerm($term); + + $fixedKarma = $this->fetchFixedKarma($canonicalTerm); + if ($fixedKarma) { + $message = $nick . ': ' . $term . ' ' . $fixedKarma; + $this->doPrivmsg($source, $message); + return; + } + + $karma = $this->fetchKarma($canonicalTerm); + + $message = $nick . ': '; + + if ($term == 'me') { + $message .= 'You have'; + } else { + $message .= $term . ' has'; + } + + $message .= ' '; + + if ($karma) { + $message .= 'karma of ' . $karma; + } else { + $message .= 'neutral karma'; + } + + $message .= '.'; + + $this->doPrivmsg($source, $message); + } + + /** + * Resets the karma for a term to 0. + * + * @param string $term Term for which to reset the karma rating + * + * @return void + */ + public function onCommandReincarnate($term) + { + $data = array( + ':term' => $term, + ':karma' => 0 + ); + $this->updateKarma->execute($data); + } + + /** + * Compares the karma between two terms. Optionally increases/decreases + * the karma of either term. + * + * @param string $term0 First term + * @param string $term1 Second term + * @param string $method Comparison method (< or >) + * + * @return void + */ + protected function compareKarma($term0, $term1, $method) + { + $event = $this->getEvent(); + $nick = $event->getNick(); + $source = $event->getSource(); + + $canonicalTerm0 = $this->getCanonicalTerm($term0); + $canonicalTerm1 = $this->getCanonicalTerm($term1); + + $fixedKarma0 = $this->fetchFixedKarma($canonicalTerm0); + $fixedKarma1 = $this->fetchFixedKarma($canonicalTerm1); + + if ($fixedKarma0 || $fixedKarma1) { + return; + } + + if ($canonicalTerm0 == 'everything') { + $change = $method == '<' ? '++' : '--'; + $karma0 = 0; + $karma1 = $this->modifyKarma($canonicalTerm1, $change); + } elseif ($canonicalTerm1 == 'everything') { + $change = $method == '<' ? '--' : '++'; + $karma0 = $this->modifyKarma($canonicalTerm0, $change); + $karma1 = 0; + } else { + $karma0 = $this->fetchKarma($canonicalTerm0); + $karma1 = $this->fetchKarma($canonicalTerm1); + } + + // Combining the first and second branches here causes an odd + // single-line lapse in code coverage, but the lapse disappears if + // they're separated + if ($method == '<' && $karma0 < $karma1) { + $replies = $this->fetchPositiveAnswer; + } elseif ($method == '>' && $karma0 > $karma1) { + $replies = $this->fetchPositiveAnswer; + } else { + $replies = $this->fetchNegativeAnswer; + } + $replies->execute(); + $reply = $replies->fetchColumn(); + + if (max($karma0, $karma1) == $karma1) { + list($canonicalTerm0, $canonicalTerm1) = + array($canonicalTerm1, $canonicalTerm0); + } + + $message = str_replace( + array('%owner%','%owned%'), + array($canonicalTerm0, $canonicalTerm1), + $reply + ); + + $this->doPrivmsg($source, $message); + } + + /** + * Modifes a term's karma. + * + * @param string $term Term to modify + * @param string $action Karma action (either ++ or --) + * + * @return int Modified karma rating + */ + protected function modifyKarma($term, $action) + { + $karma = $this->fetchKarma($term); + if ($karma !== false) { + $statement = $this->updateKarma; + } else { + $statement = $this->insertKarma; + } + + $karma += ($action == '++') ? 1 : -1; + + $args = array( + ':term' => $term, + ':karma' => $karma + ); + $statement->execute($args); + + return $karma; + } + + /** + * Returns the karma rating for a specified term for which the karma + * rating can be modified. + * + * @param string $term Term for which to fetch the corresponding karma + * rating + * + * @return integer|boolean Integer value denoting the term's karma or + * FALSE if there is the specified term has no associated karma + * rating + */ + protected function fetchKarma($term) + { + $this->fetchKarma->execute(array(':term' => $term)); + $result = $this->fetchKarma->fetch(PDO::FETCH_ASSOC); + + if ($result === false) { + return false; + } + + return (int) $result['karma']; + } + + /** + * Returns a phrase describing the karma rating for a specified term for + * which the karma rating is fixed. + * + * @param string $term Term for which to fetch the corresponding karma + * rating + * + * @return string Phrase describing the karma rating, which may be append + * to the term to form a complete response + */ + protected function fetchFixedKarma($term) + { + $this->fetchFixedKarma->execute(array(':term' => $term)); + $result = $this->fetchFixedKarma->fetch(PDO::FETCH_ASSOC); + + if ($result === false) { + return false; + } + + return $result['karma']; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Lart.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Lart.php new file mode 100644 index 0000000000..d00cae0dd1 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Lart.php @@ -0,0 +1,303 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Lart + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Lart + */ + +/** + * Accepts terms and corresponding definitions for storage to a local data + * source and performs and returns the result of lookups for term definitions + * as they are requested. + * + * @category Phergie + * @package Phergie_Plugin_Lart + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Lart + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses extension PDO + * @uses extension pdo_sqlite + */ +class Phergie_Plugin_Lart extends Phergie_Plugin_Abstract +{ + /** + * PDO instance for the database + * + * @var PDO + */ + protected $db; + + /** + * Prepared statement for inserting a new definition + * + * @var PDOStatement + */ + protected $save; + + /** + * Prepared statement for deleting the definition for a given term + * + * @var PDOStatement + */ + protected $delete; + + /** + * Prepared statement for searching for a definition for which the term + * matches as a regular expression against a given search string + * + * @var PDOStatement + */ + protected $process; + + /** + * Prepared statement for searching for a definition by its exact term + * + * @var PDOStatement + */ + protected $select; + + /** + * Checks for dependencies and initializes the database. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->fail('PDO and pdo_sqlite extensions must be installed'); + } + + $this->plugins->getPlugin('Command'); + + $dir = dirname(__FILE__) . '/' . $this->getName(); + $path = $dir . '/lart.db'; + $exists = file_exists($path); + if (!$exists) { + mkdir($dir); + } + + try { + $this->db = new PDO('sqlite:' . $path); + } catch (PDO_Exception $e) { + throw new Phergie_Plugin_Exception($e->getMessage()); + } + + $this->db->sqliteCreateFunction('preg_match', 'preg_match'); + + if (!$exists) { + $this->db->exec(' + CREATE TABLE lart ( + name VARCHAR(255), + definition TEXT, + hostmask VARCHAR(50), + tstamp VARCHAR(19) + ) + '); + $this->db->exec(' + CREATE UNIQUE INDEX lart_name ON lart (name) + '); + } + + $this->save = $this->db->prepare(' + REPLACE INTO lart (name, definition, hostmask, tstamp) + VALUES (:name, :definition, :hostmask, :tstamp) + '); + + $this->process = $this->db->prepare(' + SELECT * + FROM lart + WHERE preg_match(name, :name) + '); + + $this->select = $this->db->prepare(' + SELECT * + FROM lart + WHERE name = :name + '); + + $this->delete = $this->db->prepare(' + DELETE FROM lart + WHERE name = :name + '); + } + + /** + * Retrieves the definition for a given term if it exists. + * + * @param string $term Term to search for + * + * @return mixed String containing the definition or FALSE if no definition + * exists + */ + protected function getLart($term) + { + $this->process->execute(array(':name' => $term)); + $row = $this->process->fetchObject(); + if ($row === false) { + return false; + } + preg_match($row->name, $term, $match); + $definition = preg_replace( + "/(?:\\\\|\\$)([0-9]+)/e", + '$match[\1]', + $row->definition + ); + $event = $this->getEvent(); + $definition = str_replace( + array('$source', '$nick'), + array($event->getSource(), $event->getNick()), + $definition + ); + return $definition; + } + + /** + * Deletes a given definition. + * + * @param string $term Term for which the definition should be deleted + * + * @return boolean TRUE if the definition was found and deleted, FALSE + * otherwise + */ + protected function deleteLart($term) + { + $this->delete->execute(array(':name' => $term)); + return ($this->delete->rowCount() > 0); + } + + /** + * Saves a given definition. + * + * @param string $term Term to trigger a response containing the + * corresponding definition, may be a regular expression + * @param string $definition Definition corresponding to the term + * + * @return boolean TRUE if the definition was saved successfully, FALSE + * otherwise + */ + protected function saveLart($term, $definition) + { + $data = array( + ':name' => $term, + ':definition' => $definition, + ':hostmask' => (string) $this->getEvent()->getHostmask(), + ':tstamp' => time() + ); + $this->save->execute($data); + return ($this->save->rowCount() > 0); + } + + /** + * Returns information about a definition. + * + * @param string $term Term about which to return information + * + * @return void + */ + public function onCommandLartinfo($term) + { + $this->select->execute(array(':name' => $term)); + $row = $this->select->fetchObject(); + $msg = $this->getEvent()->getNick() . ': '; + if (!$row) { + $msg .= 'Lart not found'; + } else { + $msg .= 'Term: ' . $row->name + . ', Definition: ' . $row->definition + . ', User: ' . $row->hostmask + . ', Added: ' . date('n/j/y g:i A', $row->tstamp); + } + $this->doNotice($this->getEvent()->getSource(), $msg); + } + + /** + * Creates a new definition. + * + * @param string $term Term to add + * @param string $definition Definition to add + * + * @return void + */ + public function onCommandAddlart($term, $definition) + { + $result = $this->saveLart($term, $definition); + if ($result) { + $msg = 'Lart saved successfully'; + } else { + $msg = 'Lart could not be saved'; + } + $this->doNotice($this->getEvent()->getSource(), $msg); + } + + /** + * Removes an existing definition. + * + * @param string $term Term for which the definition should be removed + * + * @return void + */ + public function onCommandDeletelart($term) + { + $source = $this->getEvent()->getSource(); + if ($this->deleteLart($term)) { + $msg = 'Lart deleted successfully'; + } else { + $msg = 'Lart not found'; + } + $this->doNotice($source, $msg); + } + + /** + * Processes definition triggers in the text of the current event. + * + * @return void + */ + protected function processLart() + { + $lart = $this->getLart($this->getEvent()->getText()); + if ($lart) { + if (strpos($lart, '/me') === 0) { + $lart = substr($lart, 4); + $method = 'doAction'; + } else { + $method = 'doPrivmsg'; + } + $this->$method($this->getEvent()->getSource(), $lart); + } + } + + /** + * Processes definition triggers in messages. + * + * @return void + */ + public function onPrivmsg() + { + $this->processLart(); + } + + /** + * Processes definition triggers in CTCP actions. + * + * @return void + */ + public function onAction() + { + $this->processLart(); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Message.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Message.php new file mode 100644 index 0000000000..af8fc7287b --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Message.php @@ -0,0 +1,112 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Message + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Message + */ + +/** + * Generalized plugin providing utility methods for + * prefix and bot named based message extraction. + * + * @category Phergie + * @package Phergie_Plugin_Message + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Message + */ +class Phergie_Plugin_Message extends Phergie_Plugin_Abstract +{ + + /** + * Check whether a message is specifically targeted at the bot. + * This is the case when the message starts with the bot's name + * followed by [,:>] or when it is a private message. + * + * @return boolean true when the message is specifically targeted at the bot, + * false otherwise. + */ + public function isTargetedMessage() + { + $event = $this->getEvent(); + + $self = preg_quote($this->connection->getNick()); + + $targetPattern = <<<REGEX + {^ + \s*{$self}\s*[:>,].* # expect the bots name, followed by a [:>,] + $}ix +REGEX; + + return !$event->isInChannel() + || preg_match($targetPattern, $event->getText()) > 0; + } + + /** + * Allow for prefix and bot name aware extraction of a message + * + * @return string|bool $message The message, which is possibly targeted at the + * bot or false if a prefix requirement failed + */ + public function getMessage() + { + $event = $this->getEvent(); + + $prefix = preg_quote($this->getConfig('command.prefix')); + $self = preg_quote($this->connection->getNick()); + $message = $event->getText(); + + // $prefixPattern matches : Phergie, do command <parameters> + // where $prefix = 'do' : do command <parameters> + // : Phergie, command <parameters> + $prefixPattern = <<<REGEX + {^ + (?: + \s*{$self}\s*[:>,]\s* # start with bot name + (?:{$prefix})? # which is optionally followed by the prefix + | + \s*{$prefix} # or start with the prefix + ) + \s*(.*) # always end with the message + $}ix +REGEX; + + // $noPrefixPattern matches : Phergie, command <parameters> + // : command <parameters> + $noPrefixPattern = <<<REGEX + {^ + \s*(?:{$self}\s*[:>,]\s*)? # optionally start with the bot name + (.*?) # always end with the message + $}ix +REGEX; + + $pattern = $noPrefixPattern; + + // If a prefix is set, force it as a requirement + if ($prefix && $event->isInChannel()) { + $pattern = $prefixPattern; + } + + $match = null; + + if (!preg_match($pattern, $message, $match)) { + return false; + } + + return $match[1]; + } +} \ No newline at end of file diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/NickServ.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/NickServ.php new file mode 100644 index 0000000000..e97abecf78 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/NickServ.php @@ -0,0 +1,178 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_NickServ + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_NickServ + */ + +/** + * Intercepts and responds to messages from the NickServ agent requesting that + * the bot authenticate its identify. + * + * The password configuration setting should contain the password registered + * with NickServ for the nick used by the bot. + * + * @category Phergie + * @package Phergie_Plugin_NickServ + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_NickServ + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_NickServ extends Phergie_Plugin_Abstract +{ + /** + * Nick of the NickServ bot + * + * @var string + */ + protected $botNick; + + /** + * Identify message + */ + protected $identifyMessage; + + /** + * Checks for dependencies and required configuration settings. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + + // Get the name of the NickServ bot, defaults to NickServ + $this->botNick = $this->getConfig('nickserv.botnick', 'NickServ'); + + // Get the identify message + $this->identifyMessage = $this->getConfig( + 'nickserv.identify_message', + '/This nickname is registered./' + ); + } + + /** + * Checks for a notice from NickServ and responds accordingly if it is an + * authentication request or a notice that a ghost connection has been + * killed. + * + * @return void + */ + public function onNotice() + { + $event = $this->event; + if (strtolower($event->getNick()) == strtolower($this->botNick)) { + $message = $event->getArgument(1); + $nick = $this->connection->getNick(); + if (preg_match($this->identifyMessage, $message)) { + $password = $this->config['nickserv.password']; + if (!empty($password)) { + $this->doPrivmsg($this->botNick, 'IDENTIFY ' . $password); + } + unset($password); + } elseif (preg_match('/^.*' . $nick . '.* has been killed/', $message)) { + $this->doNick($nick); + } + } + } + + /** + * Checks to see if the original nick has quit; if so, take the name back. + * + * @return void + */ + public function onQuit() + { + $eventNick = $this->event->getNick(); + $nick = $this->connection->getNick(); + if ($eventNick == $nick) { + $this->doNick($nick); + } + } + + /** + * Changes the in-memory configuration setting for the bot nick if it is + * successfully changed. + * + * @return void + */ + public function onNick() + { + $event = $this->event; + $connection = $this->connection; + if ($event->getNick() == $connection->getNick()) { + $connection->setNick($event->getArgument(0)); + } + } + + /** + * Provides a command to terminate ghost connections. + * + * @return void + */ + public function onCommandGhostbust() + { + $event = $this->event; + $user = $event->getNick(); + $conn = $this->connection; + $nick = $conn->getNick(); + + if ($nick != $this->config['connections'][$conn->getHost()]['nick']) { + $password = $this->config['nickserv.password']; + if (!empty($password)) { + $this->doPrivmsg( + $this->event->getSource(), + $user . ': Attempting to ghost ' . $nick .'.' + ); + $this->doPrivmsg( + $this->botNick, + 'GHOST ' . $nick . ' ' . $password, + true + ); + } + } + } + + /** + * Automatically send the GHOST command if the bot's nick is in use. + * + * @return void + */ + public function onResponse() + { + if ($this->event->getCode() == Phergie_Event_Response::ERR_NICKNAMEINUSE) { + $password = $this->config['nickserv.password']; + if (!empty($password)) { + $this->doPrivmsg( + $this->botNick, + 'GHOST ' . $this->connection->getNick() . ' ' . $password + ); + } + } + } + + /** + * Handle the server sending a KILL request. + * + * @return void + */ + public function onKill() + { + $this->doQuit($this->event->getArgument(1)); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Part.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Part.php new file mode 100755 index 0000000000..c07cdd918b --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Part.php @@ -0,0 +1,55 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Part + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Part + */ + +/** + * Parts a specified channel on command from a user. + * + * @category Phergie + * @package Phergie_Plugin_Part + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Part + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Part extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Parts a channel. + * + * @param string $channels Comma-delimited list of channels to leave + * + * @return void + */ + public function onCommandPart($channels) + { + $this->doPart($channels); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Php.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php.php new file mode 100644 index 0000000000..e10d101e73 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php.php @@ -0,0 +1,78 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + */ + +/** + * Returns information on PHP functions as requested. + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + * @uses extension pdo + * @uses extension pdo_sqlite + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Php extends Phergie_Plugin_Abstract +{ + /** + * Data source to use + * + * @var Phergie_Plugin_Php_Source + */ + protected $source; + + /** + * Check for dependencies. + * + * @return void + */ + public function onLoad() + { + // @todo find a way to move this to Phergie_Plugin_Php_Source_Local + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->fail('PDO and pdo_sqlite extensions must be installed'); + } + + $this->getPluginHandler()->getPlugin('Command'); + + $this->source = new Phergie_Plugin_Php_Source_Local; + } + + /** + * Searches the data source for the requested function. + * + * @param string $functionName Name of the function to search for + * + * @return void + */ + public function onCommandPhp($functionName) + { + $nick = $this->event->getNick(); + if ($function = $this->source->findFunction($functionName)) { + $msg = $nick . ': ' . $function['description']; + $this->doPrivmsg($this->event->getSource(), $msg); + } else { + $msg = 'Search for function ' . $functionName . ' returned no results.'; + $this->doNotice($nick, $msg); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source.php new file mode 100644 index 0000000000..c6cf3261bd --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source.php @@ -0,0 +1,46 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + */ + +/** + * Data source interface for the Php plugin. + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + * @uses extension pdo + * @uses extension pdo_sqlite + * @uses Phergie_Plugin_Command pear.phergie.org + */ +interface Phergie_Plugin_Php_Source +{ + /** + * Searches for a description of the function. + * + * @param string $function Search pattern to match against the function + * name, wildcards supported using % + * + * @return array|null Associative array containing the function name and + * description or NULL if no results are found + */ + public function findFunction($function); +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source/Local.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source/Local.php new file mode 100644 index 0000000000..9292bea848 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Php/Source/Local.php @@ -0,0 +1,208 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + */ + +/** + * Data source for {@see Phergie_Plugin_Php}. This source reads function + * descriptions from a file and stores them in a SQLite database. When a + * function description is requested, the function is retrieved from the + * local database. + * + * @category Phergie + * @package Phergie_Plugin_Php + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + * @uses extension pdo + * @uses extension pdo_sqlite + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Php_Source_Local implements Phergie_Plugin_Php_Source +{ + /** + * Local database for storage + * + * @var PDO + */ + protected $database; + + /** + * Source of the PHP function summary + * + * @var string + */ + protected $url = 'http://cvs.php.net/viewvc.cgi/phpdoc/funcsummary.txt?revision=HEAD'; + + /** + * Constructor to initialize the data source. + * + * @return void + */ + public function __construct() + { + $path = dirname(__FILE__); + + try { + $this->database = new PDO('sqlite:' . $path . '/functions.db'); + $this->buildDatabase(); + // @todo Modify this to be rethrown as an appropriate + // Phergie_Plugin_Exception and handled in Phergie_Plugin_Php + } catch (PDOException $e) { + echo 'PDO failure: '.$e->getMessage(); + } + } + + /** + * Searches for a description of the function. + * + * @param string $function Search pattern to match against the function + * name, wildcards supported using % + * + * @return array|null Associative array containing the function name and + * description or NULL if no results are found + */ + public function findFunction($function) + { + // Remove possible parentheses + $split = preg_split('{\(|\)}', $function); + $function = (count($split)) ? array_shift($split) : $function; + + // Prepare the database statement + $stmt = $this->database->prepare('SELECT `name`, `description` FROM `functions` WHERE `name` LIKE :function'); + $stmt->execute(array(':function' => $function)); + + // Check the results + if (count($stmt) > 0) { + $result = $stmt->fetch(PDO::FETCH_ASSOC); + /** + * @todo add class and function URLS + * class methods: http://php.net/manual/en/classname.methodname.php + * functions: http://php.net/manual/en/function.functionname.php + * where '_' is replaced with '-' + */ + return $result; + } + + // No results found, return + return null; + } + + /** + * Build the database and parses the function summary file into it. + * + * @param bool $rebuild TRUE to force a rebuild of the table used to + * house function information, FALSE otherwise, defaults to FALSE + * + * @return void + */ + protected function buildDatabase($rebuild = false) + { + // Check to see if the functions table exists + $checkstmt = $this->database->query("SELECT COUNT(*) FROM `sqlite_master` WHERE `name` = 'functions'"); + $checkstmt->execute(); + $result = $checkstmt->fetch(PDO::FETCH_ASSOC); + unset( $checkstmt ); + $table = $result['COUNT(*)']; + unset( $result ); + // If the table doesn't exist, create it + if (!$table) { + $this->database->exec('CREATE TABLE `functions` (`name` VARCHAR(255), `description` TEXT)'); + $this->database->exec('CREATE UNIQUE INDEX `functions_name` ON `functions` (`name`)'); + } + + // If we created a new table, fill it with data + if (!$table || $rebuild) { + // Get the contents of the source file + // @todo Handle possible error cases better here; the @ operator + // shouldn't be needed + $contents = @file($this->url, FILE_IGNORE_NEW_LINES + FILE_SKIP_EMPTY_LINES); + + if (!$contents) { + return; + } + + // Parse the contents + $valid = array(); + $firstPart = ''; + $lineNumber = 0; + foreach ($contents as $line) { + // Clean the current line + $line = trim($line); + + // Skip comment lines + if (0 === strpos($line, '#')) { + // reset the line if the current line is odd + if (($lineNumber % 2) !== 0) { + $lineNumber--; + } + continue; + } + + /* + * If the current line is even, it's the first part of the + * complete function description ... + */ + if (($lineNumber % 2) === 0) { + $firstPart = $line; + } else { + // ... it's the last part of the complete function description + $completeLine = $firstPart . ' ' . $line; + $firstPart = ''; + if (preg_match('{^([^\s]*)[\s]?([^)]*)\(([^\)]*)\)[\sU]+([\sa-zA-Z0-9\.,\-_()]*)$}', $completeLine, $matches)) { + $valid[] = $matches; + } + } + // Up the line number before going to the next line + $lineNumber++; + } + // free up some memory + unset($contents); + + // Process the valid matches + if (count($valid) > 0) { + // Clear the database + $this->database->exec('DELETE * FROM `functions`'); + + // Prepare the sql statement + $stmt = $this->database->prepare('INSERT INTO `functions` (`name`, `description`) VALUES (:name, :description)'); + $this->database->beginTransaction(); + + // Insert the data + foreach ($valid as $function) { + // Extract function values + list( , $retval, $name, $params, $desc) = $function; + if (empty($name)) { + $name = $retval; + $retval = ''; + } + // Reconstruct the complete function line + $line = trim($retval . ' ' . $name . '(' . $params . ') - ' . $desc); + // Execute the statement + $stmt->execute(array(':name' => $name, ':description' => $line)); + } + + // Commit the changes to the database + $this->database->commit(); + } + // free up some more memory + unset($valid); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Ping.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ping.php new file mode 100755 index 0000000000..021670d97d --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Ping.php @@ -0,0 +1,162 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Ping + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ping + */ + +/** + * Uses a self CTCP PING to ensure that the client connection has not been + * dropped. + * + * @category Phergie + * @package Phergie_Plugin_Ping + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Ping + */ +class Phergie_Plugin_Ping extends Phergie_Plugin_Abstract +{ + /** + * Timestamp for the last instance in which an event was received + * + * @var int + */ + protected $lastEvent; + + /** + * Timestamp for the last instance in which a PING was sent + * + * @var int + */ + protected $lastPing; + + /** + * Initialize event timestamps upon connecting to the server. + * + * @return void + */ + public function onConnect() + { + $this->lastEvent = time(); + $this->lastPing = null; + } + + /** + * Updates the timestamp since the last received event when a new event + * arrives. + * + * @return void + */ + public function preEvent() + { + $this->lastEvent = time(); + } + + /** + * Clears the ping time if a reply is received. + * + * @return void + */ + public function onPingResponse() + { + $this->lastPing = null; + } + + /** + * Performs a self ping if the event threshold has been exceeded or + * issues a termination command if the ping threshold has been exceeded. + * + * @return void + */ + public function onTick() + { + $time = time(); + if (!empty($this->lastPing)) { + if ($time - $this->lastPing > $this->getConfig('ping.ping', 20)) { + $this->doQuit(); + } + } elseif ( + $time - $this->lastEvent > $this->getConfig('ping.event', 300) + ) { + $this->lastPing = $time; + $this->doPing($this->getConnection()->getNick(), $this->lastPing); + } + } + + /** + * Gets the last ping time + * lastPing needs exposing for things such as unit testing + * + * @return int timestamp of last ping + */ + public function getLastPing() + { + return $this->lastPing; + } + + /** + * Set the last ping time + * lastPing needs to be exposed for unit testing + * + * @param int|null $ping timestamp of last ping + * + * @return self + */ + public function setLastPing($ping = null) + { + if (null === $ping) { + $ping = time(); + } + if (!is_int($ping)) { + throw new InvalidArgumentException('$ping must be an integer or null'); + } + $this->lastPing = $ping; + return $this; + } + + /** + * Gets the last event time + * lastEvent needs exposing for things such as unit testing + * + * @return int timestamp of last ping + */ + public function getLastEvent() + { + return $this->lastEvent; + } + + /** + * Set the last event time + * lastEvent needs to be exposed for unit testing + * + * @param int|null $event timestamp of last ping + * + * @return self + */ + public function setLastEvent($event = null) + { + if (null === $event) { + $event = time(); + } + if (!is_int($event)) { + throw new InvalidArgumentException('$ping must be an integer or null'); + } + $this->lastEvent = $event; + return $this; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Pong.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Pong.php new file mode 100755 index 0000000000..54e19fc06d --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Pong.php @@ -0,0 +1,44 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Pong + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Pong + */ + +/** + * Responds to PING requests from the server. + * + * @category Phergie + * @package Phergie_Plugin_Pong + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Pong + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_6_2 + * @link http://irchelp.org/irchelp/rfc/chapter4.html#c4_6_3 + */ +class Phergie_Plugin_Pong extends Phergie_Plugin_Abstract +{ + /** + * Sends a PONG response for each PING request received by the server. + * + * @return void + */ + public function onPing() + { + $this->doPong($this->getEvent()->getArgument(0)); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Prioritize.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Prioritize.php new file mode 100755 index 0000000000..2312567fb7 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Prioritize.php @@ -0,0 +1,99 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Prioritize + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Prioritize + */ + +/** + * Prioritizes events such that they are executed in order from least to most + * destructive. + * + * @category Phergie + * @package Phergie_Plugin_Prioritize + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Prioritize + */ +class Phergie_Plugin_Prioritize extends Phergie_Plugin_Abstract +{ + /** + * Event types ordered by priority of execution + * + * @var array + */ + protected $priority = array( + 'raw', + 'pass', + 'user', + 'ping', + 'pong', + 'notice', + 'join', + 'list', + 'names', + 'version', + 'stats', + 'links', + 'time', + 'trace', + 'admin', + 'info', + 'who', + 'whois', + 'whowas', + 'mode', + 'privmsg', + 'action', + 'nick', + 'topic', + 'invite', + 'kill', + 'part', + 'quit' + ); + + /** + * Prioritizes events from least to most destructive. + * + * @return void + */ + public function preDispatch() + { + $events = $this->getEventHandler(); + + // Categorize events by type + $categorized = array(); + foreach ($events as $event) { + $type = $event->getType(); + if (!isset($categorized[$type])) { + $categorized[$type] = array(); + } + $categorized[$type][] = $event; + } + + // Order events by type from least to most destructive + $types = array_intersect($this->priority, array_keys($categorized)); + $prioritized = array(); + foreach ($types as $type) { + $prioritized = array_merge($prioritized, $categorized[$type]); + } + + // Replace the original events array with the prioritized one + $events->replaceEvents($prioritized); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Puppet.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Puppet.php new file mode 100644 index 0000000000..bede0be2c8 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Puppet.php @@ -0,0 +1,89 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Puppet + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Puppet + */ + +/** + * Allows a user to effectively speak and act as the bot. + * + * @category Phergie + * @package Phergie_Plugin_Puppet + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Puppet + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Puppet extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Handles a request for the bot to repeat a given message in a specified + * channel. + * + * <code>say #chan message</code> + * + * @param string $channel Name of the channel + * @param string $message Message to repeat + * + * @return void + */ + public function onCommandSay($channel, $message) + { + $this->doPrivmsg($channel, $message); + } + + /** + * Handles a request for the bot to repeat a given action in a specified + * channel. + * + * <code>act #chan action</code> + * + * @param string $channel Name of the channel + * @param string $action Action to perform + * + * @return void + */ + public function onCommandAct($channel, $action) + { + $this->doAction($channel, $action); + } + + /** + * Handles a request for the bot to send the server a raw message + * + * <code>raw message</code> + * + * @param string $message Message to send + * + * @return void + */ + public function onCommandRaw($message) + { + $this->doRaw($message); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Quit.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Quit.php new file mode 100755 index 0000000000..eca22a98e3 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Quit.php @@ -0,0 +1,54 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Quit + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Quit + */ + +/** + * Terminates the current connection upon command. + * + * @category Phergie + * @package Phergie_Plugin_Quit + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Quit + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Quit extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Issues a quit command when a message is received requesting that the + * bot terminate the current connection. + * + * @return void + */ + public function onCommandQuit() + { + $this->doQuit('Requested by ' . $this->getEvent()->getNick()); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Reload.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Reload.php new file mode 100755 index 0000000000..4305770812 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Reload.php @@ -0,0 +1,122 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Reload + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Reload + */ + +/** + * Facilitates reloading of individual plugins for development purposes. + * Note that, because existing class definitions cannot be removed from + * memory, increased memory usage is an expected result of using this plugin. + * + * @category Phergie + * @package Phergie_Plugin_Reload + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Reload + * @uses Phergie_Plugin_Command pear.phergie.org + */ +class Phergie_Plugin_Reload extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Command'); + } + + /** + * Reloads a specified plugin. + * + * @param string $plugin Short name of the plugin to reload + * + * @return void + */ + public function onCommandReload($plugin) + { + $plugin = ucfirst($plugin); + + $evalClass = true; + if (strpos($plugin, ' ') !== false) { + $args = explode(' ', $plugin); + $plugin = $args[0]; + if (strtolower($args[1]) == 'force') { + $evalClass = false; + } + } + + if (!$this->plugins->hasPlugin($plugin)) { + echo 'DEBUG(Reload): ' . ucfirst($plugin) . ' is not loaded yet, loading', PHP_EOL; + try { + $this->plugins->getPlugin($plugin); + $this->plugins->command->populateMethodCache(); + } catch (Phergie_Plugin_Exception $e) { + if ($e->getCode() == Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND) { + echo 'DEBUG(Reload): ', $e->getMessage(), PHP_EOL; + } else { + throw $e; + } + } + return; + } + + try { + $info = $this->plugins->getPluginInfo($plugin); + } catch (Phergie_Plugin_Exception $e) { + $source = $this->event->getSource(); + $nick = $this->event->getNick(); + $this->doNotice($source, $nick . ': ' . $e->getMessage()); + return; + } + + $class = $info['class']; + $contents = file_get_contents($info['file']); + $newClass = $class . '_' . sha1($contents); + + if (class_exists($newClass, false)) { + if ($evalClass == true) { + echo 'DEBUG(Reload): Class ', $class, ' has not changed since last reload', PHP_EOL; + return; + } + } else { + $contents = preg_replace( + array('/^<\?(?:php)?/', '/class\s+' . $class . '/i'), + array('', 'class ' . $newClass), + $contents + ); + eval($contents); + } + + $instance = new $newClass; + $instance->setName($plugin); + $instance->setEvent($this->event); + $this->plugins + ->removePlugin($plugin) + ->addPlugin($instance); + + $this->plugins->command->populateMethodCache(); + if ($this->plugins->hasPlugin('Help')) { + $this->plugins->help->populateRegistry(); + } + + echo 'DEBUG(Reload): Reloaded ', $class, ' to ', $newClass, PHP_EOL; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Remind.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Remind.php new file mode 100644 index 0000000000..42d674c68f --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Remind.php @@ -0,0 +1,378 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Remind + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Remind + */ + +/** + * Parses and logs messages that should be relayed to other users the next time + * the recipient is active on the same channel. + * + * @category Phergie + * @package Phergie_Plugin_Remind + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Remind + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Time pear.phergie.org + * @uses extension PDO + * @uses extension pdo_sqlite + */ +class Phergie_Plugin_Remind extends Phergie_Plugin_Abstract +{ + /** + * Number of reminders to show in public. + */ + protected $publicReminders = 3; + + /** + * PDO resource for a SQLite database containing the reminders. + * + * @var resource + */ + protected $db; + + /** + * Flag that indicates whether or not to use an in-memory reminder list. + * + * @var bool + */ + protected $keepListInMemory = true; + + /** + * In-memory store for pending reminders. + */ + protected $msgStorage = array(); + + /** + * Check for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $plugins->getPlugin('Time'); + + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->fail('PDO and pdo_sqlite extensions must be installed'); + } + + $dir = dirname(__FILE__) . '/' . $this->getName(); + $path = $dir . '/reminder.db'; + if (!file_exists($dir)) { + mkdir($dir); + } + + if (isset($this->config['remind.use_memory'])) { + $this->keepListInMemory = (bool) $this->config['remind.use_memory']; + } + + if (isset($this->config['remind.public_reminders'])) { + $this->publicReminders = (int) $this->config['remind.public_reminders']; + $this->publicReminders = max($this->publicReminders, 0); + } + + try { + $this->db = new PDO('sqlite:' . $path); + $this->createTables(); + } catch (PDO_Exception $e) { + throw new Phergie_Plugin_Exception($e->getMessage()); + } + } + + /** + * Intercepts a message and processes any contained recognized commands. + * + * @return void + */ + public function onPrivmsg() + { + $source = $this->getEvent()->getSource(); + $nick = $this->getEvent()->getNick(); + + $this->deliverReminders($source, $nick); + } + + /** + * Handle reminder requests + * + * @param string $recipient recipient of the message + * @param string $message message to tell the recipient + * + * @return void + * @see handleRemind() + */ + public function onCommandTell($recipient, $message) + { + $this->handleRemind($recipient, $message); + } + + /** + * Handle reminder requests + * + * @param string $recipient recipient of the message + * @param string $message message to tell the recipient + * + * @return void + * @see handleRemind() + */ + public function onCommandAsk($recipient, $message) + { + $this->handleRemind($recipient, $message); + } + + /** + * Handle reminder requests + * + * @param string $recipient recipient of the message + * @param string $message message to tell the recipient + * + * @return void + * @see handleRemind() + */ + public function onCommandRemind($recipient, $message) + { + $this->handleRemind($recipient, $message); + } + + /** + * Handles the tell/remind command (stores the message) + * + * @param string $recipient name of the recipient + * @param string $message message to store + * + * @return void + */ + protected function handleRemind($recipient, $message) + { + $source = $this->getEvent()->getSource(); + $nick = $this->getEvent()->getNick(); + + if (!$this->getEvent()->isInChannel()) { + $this->doPrivmsg($source, 'Reminders must be requested in-channel.'); + return; + } + + $q = $this->db->prepare( + 'INSERT INTO remind + ( + time, + channel, + recipient, + sender, + message + ) + VALUES + ( + :time, + :channel, + :recipient, + :sender, + :message + )' + ); + try { + $q->execute( + array( + 'time' => date(DATE_RFC822), + 'channel' => $source, + 'recipient' => strtolower($recipient), + 'sender' => strtolower($nick), + 'message' => $message + ) + ); + } catch (PDOException $e) { + } + + if ($rowid = $this->db->lastInsertId()) { + $this->doPrivmsg($source, 'ok, ' . $nick . ', message stored'); + } else { + $this->doPrivmsg( + $source, + $nick . ': bad things happened. Message not saved.' + ); + return; + } + + if ($this->keepListInMemory) { + $this->msgStorage[$source][strtolower($recipient)] = $rowid; + } + } + + /** + * Determines if the user has pending reminders, and if so, delivers them. + * + * @param string $channel channel to check + * @param string $nick nick to check + * + * @return void + */ + protected function deliverReminders($channel, $nick) + { + if ($channel[0] != '#') { + // private message, not a channel, so don't check + return; + } + + // short circuit if there's no message in memory (if allowed) + if ($this->keepListInMemory + && !isset($this->msgStorage[$channel][strtolower($nick)]) + ) { + return; + } + + // fetch and deliver messages + $reminders = $this->fetchMessages($channel, $nick); + if (count($reminders) > $this->publicReminders) { + $msgs = array_slice($reminders, 0, $this->publicReminders); + $privmsgs = array_slice($reminders, $this->publicReminders); + } else { + $msgs = $reminders; + $privmsgs = false; + } + + foreach ($msgs as $msg) { + $ts = $this->plugins->time->getCountdown($msg['time']); + $formatted = sprintf( + '%s: (from %s, %s ago) %s', + $nick, $msg['sender'], $ts, $msg['message'] + ); + $this->doPrivmsg($channel, $formatted); + $this->deleteMessage($msg['rowid'], $channel, $nick); + } + + if ($privmsgs) { + foreach ($privmsgs as $msg) { + $ts = $this->plugins->time->getCountdown($msg['time']); + $formatted = sprintf( + 'from %s, %s ago: %s', + $msg['sender'], $ts, $msg['message'] + ); + $this->doPrivmsg($nick, $formatted); + $this->deleteMessage($msg['rowid'], $channel, $nick); + } + $formatted = sprintf( + '%s: (%d more messages sent in private.)', + $nick, count($privmsgs) + ); + $this->doPrivmsg($channel, $formatted); + } + } + + /** + * Get pending messages (for a specific channel/recipient) + * + * @param string $channel channel on which to check for pending messages + * @param string $recipient user for which to check pending messages + * + * @return array of records + */ + protected function fetchMessages($channel = null, $recipient = null) + { + if ($channel) { + $qClause = 'WHERE channel = :channel AND recipient LIKE :recipient'; + $params = compact('channel', 'recipient'); + } else { + $qClause = ''; + $params = array(); + } + $q = $this->db->prepare( + 'SELECT rowid, channel, sender, recipient, time, message + FROM remind ' . $qClause + ); + $q->execute($params); + return $q->fetchAll(); + } + + /** + * Deletes a delivered message + * + * @param int $rowid ID of the message to delete + * @param string $channel message's channel + * @param string $nick message's recipient + * + * @return void + */ + protected function deleteMessage($rowid, $channel, $nick) + { + $nick = strtolower($nick); + $q = $this->db->prepare('DELETE FROM remind WHERE rowid = :rowid'); + $q->execute(array('rowid' => $rowid)); + + if ($this->keepListInMemory) { + if (isset($this->msgStorage[$channel][$nick]) + && $this->msgStorage[$channel][$nick] == $rowid + ) { + unset($this->msgStorage[$channel][$nick]); + } + } + } + + /** + * Determines if a table exists + * + * @param string $name Table name + * + * @return bool + */ + protected function haveTable($name) + { + $sql = 'SELECT COUNT(*) FROM sqlite_master WHERE name = ' + . $this->db->quote($name); + return (bool) $this->db->query($sql)->fetchColumn(); + } + + /** + * Creates the database table(s) (if they don't exist) + * + * @return void + */ + protected function createTables() + { + if (!$this->haveTable('remind')) { + $this->db->exec( + 'CREATE TABLE + remind + ( + time INTEGER, + channel TEXT, + recipient TEXT, + sender TEXT, + message TEXT + )' + ); + } + } + + /** + * Populates the in-memory cache of pending reminders + * + * @return void + */ + protected function populateMemory() + { + if (!$this->keepListInMemory) { + return; + } + foreach ($this->fetchMessages() as $msg) { + $this->msgStorage[$msg['channel']][$msg['recipient']] = $msg['rowid']; + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Serve.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Serve.php new file mode 100755 index 0000000000..cdb8f7f919 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Serve.php @@ -0,0 +1,160 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Serve + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Serve + */ + +/** + * Processes requests to serve a user something from a database. + * + * @category Phergie + * @package Phergie_Plugin_Serve + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Serve + * @uses extension pdo + * @uses extension pdo_sqlite + */ +class Phergie_Plugin_Serve extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->fail('PDO and pdo_sqlite extensions must be installed'); + } + } + + /** + * Retrieves a random item from the database table. + * + * @param string $database Path to the SQLite database file + * @param string $table Name of the database table + * @param array $request Parsed request + * + * @return object Retrieved item + */ + protected function getItem($database, $table, array $request) + { + $db = new PDO('sqlite:' . $database); + if (!empty($request['suggestion'])) { + $query = 'SELECT * FROM ' . $table . ' WHERE name LIKE ? ORDER BY RANDOM() LIMIT 1'; + $stmt = $db->prepare($query); + $stmt->execute(array('%' . $request['suggestion'] . '%')); + $item = $stmt->fetchObject(); + if (!$item) { + $item = new stdClass; + $item->name = $request['suggestion']; + $item->link = null; + } + } else { + $query = 'SELECT * FROM ' . $table . ' ORDER BY RANDOM() LIMIT 1'; + $stmt = $db->query($query); + $item = $stmt->fetchObject(); + } + return $item; + } + + /** + * Processes a request to serve a user something. + * + * @param string $database Path to the SQLite database file + * @param string $table Name of the database table + * @param string $format Format of the response where %target%, + * %item%, %article%', and %link will be replaced with their + * respective data + * @param string $request Request string including the target and an + * optional suggestion of the item to fetch + * @param boolean $censor TRUE to integrate with the Censor plugin, + * defaults to FALSE + * + * @return boolean TRUE if the request was processed successfully, FALSE + * otherwise + */ + public function serve($database, $table, $format, $request, $censor = false) + { + // Parse the request + $result = preg_match( + '/(?P<target>[^\s]+)(\s+an?\s+)?(?P<suggestion>.*)?/', + $request, + $match + ); + + if (!$result) { + return false; + } + + // Resolve the target + $target = $match['target']; + if ($target == 'me') { + $target = $this->event->getNick(); + } + + // Process the request + $item = $this->getItem($database, $table, $match); + + // Reprocess the request for censorship if required + if ($this->plugins->hasPlugin('Censor')) { + $plugin = $this->plugins->getPlugin('Censor'); + $attempts = 0; + while ($censor && $attempts < 3) { + $clean = $plugin->cleanString($item->name); + if ($item->name != $clean) { + $attempts++; + $item = $this->getItem($database, $table, $match); + } else { + $censor = false; + } + } + if ($censor && $attempts == 3) { + $this->doAction($this->event->getSource(), 'shrugs.'); + } + } + + // Derive the proper article for the item + if (preg_match('/^[aeiou]/i', $item->name)) { + $article = 'an'; + } else { + $article = 'a'; + } + + // Format the message + $replacements = array( + 'target' => $target, + 'item' => $item->name, + 'link' => $item->link, + 'article' => $article + ); + + $msg = $format; + foreach ($replacements as $placeholder => $value) { + $msg = str_replace( + '%' . $placeholder . '%', + $value, + $msg + ); + } + + // Send the message + $this->doAction($this->event->getSource(), $msg); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/SpellCheck.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/SpellCheck.php new file mode 100644 index 0000000000..b731cffc87 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/SpellCheck.php @@ -0,0 +1,118 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_TerryChay + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TerryChay + */ + +/** + * Handles requests for checking spelling of specified words and returning + * either confirmation of correctly spelled words or potential correct + * spellings for misspelled words. + * + * @category Phergie + * @package Phergie_Plugin_SpellCheck + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TerryChay + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses extension pspell + */ +class Phergie_Plugin_SpellCheck extends Phergie_Plugin_Abstract +{ + /** + * Spell check dictionary handler + * + * @var resource + */ + protected $pspell; + + /** + * Limit on the number of potential correct spellings returned + * + * @var int + */ + protected $limit; + + /** + * Check for dependencies. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('pspell')) { + $this->fail('pspell php extension is required'); + } + + if (!$this->getConfig('spellcheck.lang')) { + $this->fail('Setting spellcheck.lang must be filled-in'); + } + + $this->plugins->getPlugin('Command'); + + set_error_handler(array($this, 'loadDictionaryError')); + $this->pspell = pspell_new($this->getConfig('spellcheck.lang')); + restore_error_handler(); + + $this->limit = $this->getConfig('spellcheck.limit', 5); + } + + /** + * Intercepts and handles requests for spell checks. + * + * @param string $word the string to perform checks against + * + * @return void + */ + public function onCommandSpell($word) + { + $source = $this->event->getSource(); + $target = $this->event->getNick(); + + $message = $target . ': The word "' . $word; + $message .= '" seems to be spelled correctly.'; + if (!pspell_check($this->pspell, $word)) { + $suggestions = pspell_suggest($this->pspell, $word); + + $message = $target; + $message .= ': I could not find any suggestions for "' . $word . '".'; + if (!empty($suggestions)) { + $suggestions = array_splice($suggestions, 0, $this->limit); + $message = $target . ': Suggestions for "'; + $message .= $word . '": ' . implode(', ', $suggestions) . '.'; + } + } + + $this->doPrivmsg($source, $message); + } + + /** + * Handle any errors from loading dictionary + * + * @param integer $errno Error code + * @param string $errstr Error message + * @param string $errfile File that errored + * @param integer $errline Line where the error happened + * + * @return void + */ + protected function loadDictionaryError($errno, $errstr, $errfile, $errline) + { + $this->fail($errstr); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Statusnet.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Statusnet.php new file mode 100644 index 0000000000..dc2680a6df --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Statusnet.php @@ -0,0 +1,143 @@ +<?php +/** + * StatusNet - the distributed open-source microblogging tool + * + * 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 <http://www.gnu.org/licenses/>. + * + * Talks to the Statusnet IM architecture to enqueue incoming message messages + * and notify result of nickname registration checks + * + * @category Phergie + * @package Phergie_Plugin_Statusnet + * @author Luke Fitzgerald <lw.fitzgerald@googlemail.com> + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class Phergie_Plugin_Statusnet extends Phergie_Plugin_Abstract { + /** + * Message callback details + * + * @var array + */ + protected $messageCallback; + + /** + * Registration check callback details + * + * @var array + */ + protected $regCallback; + + /** + * Connection established callback details + * + * @var array + */ + protected $connectedCallback; + + /** + * Load callback from config + */ + public function onLoad() { + $messageCallback = $this->config['statusnet.messagecallback']; + if (is_callable($messageCallback)) { + $this->messageCallback = $messageCallback; + } else { + $this->messageCallback = NULL; + } + + $regCallback = $this->config['statusnet.regcallback']; + if (is_callable($regCallback)) { + $this->regCallback = $regCallback; + } else { + $this->regCallback = NULL; + } + + $connectedCallback = $this->config['statusnet.connectedcallback']; + if (is_callable($connectedCallback)) { + $this->connectedCallback = $connectedCallback; + } else { + $this->connectedCallback = NULL; + } + + $this->unregRegexp = $this->getConfig('statusnet.unregregexp', '/\x02(.*?)\x02 (?:isn\'t|is not) registered/i'); + $this->regRegexp = $this->getConfig('statusnet.regregexp', '/(?:\A|\x02)(\w+?)\x02? (?:\(account|is \w+?\z)/i'); + } + + /** + * Passes incoming messages to StatusNet + * + * @return void + */ + public function onPrivmsg() { + if ($this->messageCallback !== NULL) { + $event = $this->getEvent(); + $source = $event->getSource(); + $sender = $event->getNick(); + $message = trim($event->getText()); + + if (strpos($source, '#') === 0) { + $botNick = $this->getConnection()->getNick(); + $nickPos = strpos($message, $botNick); + $nickLen = strlen($botNick); + $colonPos = strpos($message, ':', $nickLen); + $commandStr = trim(substr($message, $colonPos+1)); + if ($nickPos === 0 && $colonPos == $nickLen && !empty($commandStr)) { + call_user_func($this->messageCallback, array('source' => $source, 'sender' => $sender, 'message' => $commandStr)); + } + } else { + call_user_func($this->messageCallback, array('source' => $source, 'sender' => $sender, 'message' => $message)); + } + } + } + + /** + * Catches the response from NickServ + * + * @return void + */ + public function onNotice() { + if ($this->regCallback !== NULL) { + $event = $this->getEvent(); + if ($event->getNick() == 'NickServ') { + $message = $event->getArgument(1); + if (preg_match($this->unregRegexp, $message, $groups)) { + $screenname = $groups[1]; + call_user_func($this->regCallback, array('screenname' => $screenname, 'registered' => false)); + } elseif (preg_match($this->regRegexp, $message, $groups)) { + $screenname = $groups[1]; + call_user_func($this->regCallback, array('screenname' => $screenname, 'registered' => true)); + } + } + } + } + + /** + * Intercepts the end of the "message of the day" response and tells + * StatusNet we're connected + * + * @return void + */ + public function onResponse() { + switch ($this->getEvent()->getCode()) { + case Phergie_Event_Response::RPL_ENDOFMOTD: + case Phergie_Event_Response::ERR_NOMOTD: + if ($this->connectedCallback !== NULL) { + call_user_func($this->connectedCallback); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea.php new file mode 100644 index 0000000000..c6453566c7 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea.php @@ -0,0 +1,69 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Tea + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Tea + */ + +/** + * Processes requests to serve users tea. + * + * @category Phergie + * @package Phergie_Plugin_Tea + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Tea + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Tea extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user tea. + * + * @param string $request Request including the target and an optional + * suggestion of what tea to serve + * + * @return void + */ + public function onCommandTea($request) + { + $format = $this->getConfig( + 'tea.format', + 'serves %target% a cup of %item% tea.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Tea/tea.db', + 'tea', + $format, + $request + ); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea/db.php new file mode 100644 index 0000000000..21fe1950d1 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tea/db.php @@ -0,0 +1,49 @@ +<?php + +if (!defined('__DIR__')) { + define('__DIR__', dirname(__FILE__)); +} + +// Create database schema +echo 'Creating database', PHP_EOL; +$file = __DIR__ . '/tea.db'; +if (file_exists($file)) { + unlink($file); +} +$db = new PDO('sqlite:' . $file); +$db->exec('CREATE TABLE tea (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX tea_name ON tea (name)'); +$insert = $db->prepare('INSERT INTO tea (name, link) VALUES (:name, :link)'); + +// Get raw teacuppa.com data set +echo 'Downloading teacuppa.com data set', PHP_EOL; +$file = __DIR__ . '/tea-list.html'; +if (!file_exists($file)) { + copy('http://www.teacuppa.com/tea-list.asp', $file); +} +$contents = file_get_contents($file); + +// Extract data from data set +echo 'Processing teacuppa.com data', PHP_EOL; +$contents = tidy_repair_string($contents); +libxml_use_internal_errors(true); +$doc = new DOMDocument; +$doc->loadHTML($contents); +libxml_clear_errors(); +$xpath = new DOMXPath($doc); +$teas = $xpath->query('//p[@class="page_title"]/following-sibling::table//a'); +$db->beginTransaction(); +foreach ($teas as $tea) { + $name = preg_replace( + array('/\s*\v+\s*/', '/\s+tea\s*$/i'), + array(' ', ''), + $tea->textContent + ); + $link = 'http://teacuppa.com/' . $tea->getAttribute('href'); + $insert->execute(array($name, $link)); +} +$db->commit(); + +// Clean up +echo 'Cleaning up', PHP_EOL; +unlink($file); diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Temperature.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Temperature.php new file mode 100644 index 0000000000..541fd85cff --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Temperature.php @@ -0,0 +1,81 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Temperature + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Temperature + */ + +/** + * Performs temperature calculations for other plugins. + * + * @category Phergie + * @package Phergie_Plugin_Temperature + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Temperature + */ +class Phergie_Plugin_Temperature extends Phergie_Plugin_Abstract +{ + /** + * Converts a temperature in Celsius to Fahrenheit. + * + * @param int $temp Temperature in Celsius + * + * @return int Temperature converted to Fahrenheit + */ + public function convertCelsiusToFahrenheit($temp) + { + return round(((((int) $temp * 9) / 5) + 32)); + } + + /** + * Converts a temperature in Fahrenheit to Celsius. + * + * @param int $temp Temperature in Fahrenheit + * + * @return int Temperature converted to Celsius + */ + public function convertFahrenheitToCelsius($temp) + { + return round(((((int) $temp - 32) * 5) / 9)); + } + + /** + * Calculates the heat index (i.e. "feels like" temperature) based on + * temperature and relative humidity. + * + * @param int $temperature Temperature in degrees Fahrenheit + * @param int $humidity Relative humidity (ex: 68) + * @return int Heat index in degrees Fahrenheit + */ + public function getHeatIndex($temperature, $humidity) + { + $temperature2 = $temperature * $temperature; + $humidity2 = $humidity * $humidity; + return round( + -42.379 + + (2.04901523 * $temperature) + + (10.14333127 * $humidity) - + (0.22475541 * $temperature * $humidity) - + (0.00683783 * $temperature2) - + (0.05481717 * $humidity2) + + (0.00122874 * $temperature2 * $humidity) + + (0.00085282 * $temperature * $humidity2) - + (0.00000199 * $temperature2 * $humidity2) + ); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/TerryChay.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/TerryChay.php new file mode 100644 index 0000000000..246cfc3986 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/TerryChay.php @@ -0,0 +1,94 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_TerryChay + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TerryChay + */ + +/** + * Parses incoming messages for the words "Terry Chay" or tychay and responds + * with a random Terry fact retrieved from the Chayism web service. + * + * @category Phergie + * @package Phergie_Plugin_TerryChay + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TerryChay + * @uses Phergie_Plugin_Http pear.phergie.org + */ +class Phergie_Plugin_TerryChay extends Phergie_Plugin_Abstract +{ + /** + * URL to the web service + * + * @const string + */ + const URL = 'http://phpdoc.info/chayism/'; + + /** + * HTTP plugin + * + * @var Phergie_Plugin_Http + */ + protected $http; + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $this->getPluginHandler()->getPlugin('Http'); + } + + /** + * Fetches a chayism. + * + * @return string|bool Fetched chayism or FALSE if the operation failed + */ + public function getChayism() + { + return $this + ->getPluginHandler() + ->getPlugin('Http') + ->get(self::URL) + ->getContent(); + } + + /** + * Parses incoming messages for "Terry Chay" and related variations and + * responds with a chayism. + * + * @return void + */ + public function onPrivmsg() + { + $event = $this->getEvent(); + $source = $event->getSource(); + $message = $event->getText(); + $pattern + = '{^(' . preg_quote($this->getConfig('command.prefix')) . + '\s*)?.*(terry\s+chay|tychay)}ix'; + + if (preg_match($pattern, $message)) { + if($fact = $this->getChayism()) { + $this->doPrivmsg($source, 'Fact: ' . $fact); + } + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/TheFuckingWeather.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/TheFuckingWeather.php new file mode 100644 index 0000000000..8559426b61 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/TheFuckingWeather.php @@ -0,0 +1,144 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_TheFuckingWeather + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TheFuckingWeather + */ + +/** + * Detects and responds to requests for current weather conditions in a + * particular location using data from a web service. + * + * @category Phergie + * @package Phergie_Plugin_TheFuckingWeather + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_TheFuckingWeather + * @link http://thefuckingweather.com + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + */ + +class Phergie_Plugin_TheFuckingWeather extends Phergie_Plugin_Abstract +{ + /** + * HTTP plugin + * + * @var Phergie_Plugin_Http + */ + protected $http = null; + + /** + * Base API URL + * + * @var string + */ + protected $url = 'http://www.thefuckingweather.com/?zipcode='; + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $pluginHandler = $this->getPluginHandler(); + $pluginHandler->getPlugin('Command'); + $this->http = $pluginHandler->getPlugin('Http'); + } + + /** + * Returns the weather from the specified location. + * + * @param string $location Location term + * + * @return void + * @todo Implement use of URL shortening here + */ + public function onCommandThefuckingweather($location) + { + $source = $this->getEvent()->getSource(); + $target = $this->getEvent()->getNick(); + $out = $this->getWeather($location); + if (!$out) { + $this->doNotice($source, $out); + } else { + $this->doPrivmsg($source, $target . ': ' . $out); + } + } + + /** + * Alias for TheFuckingWeather command. + * + * @param string $location Location term + * + * @return void + */ + public function onCommandTfw($location) + { + $this->onCommandThefuckingweather($location); + } + + /** + * Get the necessary content and returns the search result. + * + * @param string $location Location term + * + * @return string|bool Search result or FALSE if none is found + * @todo Try to optimize pregs + */ + protected function getWeather($location) + { + $url = $this->url . urlencode($location); + $response = $this->http->get($url); + $content = $response->getContent(); + + preg_match_all( + '#<div><span class="small">(.*?)<\/span><\/div>#im', + $content, $matches + ); + $location = $matches[1][0]; + + if (!empty($location)) { + preg_match_all( + '#<div class="large" >(.*?)<br \/>#im', + $content, $matches + ); + $temp_numb = (int) $matches[1][0]; + $temp_numb .= ' F / ' . round(($temp_numb - 32) / 1.8, 0) . ' C?!'; + + preg_match_all( + '#<br \/>(.*?)<\/div><div id="remark"><br \/>#im', + $content, $matches + ); + $temp_desc = $matches[1][0]; + + preg_match_all( + '#<div id="remark"><br \/>\n<span>(.*?)<\/span><\/div>#im', + $content, $matches + ); + $remark = $matches[1][0]; + + $result = "{$location}: {$temp_numb} {$temp_desc} ({$remark})"; + $result = preg_replace('/</', ' <', $result); + $result = strip_tags($result); + return html_entity_decode($result); + } else { + return 'No fucking clue where that is.'; + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Time.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Time.php new file mode 100644 index 0000000000..0d90bd8a68 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Time.php @@ -0,0 +1,72 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Time + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Time + */ + +/** + * Helper plugin to assist other plugins with time manipulation, display. + * + * Any shared time-related code should go into this class. + * + * @category Phergie + * @package Phergie_Plugin_Time + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Time + */ +class Phergie_Plugin_Time extends Phergie_Plugin_Abstract +{ + /** + * Returns the time interval between the current time and a given + * timestamp. + * + * @param string $timestamp Timestamp compatible with strtotime() + * + * @return string + */ + public function getCountdown($timestamp) + { + $time = time() - strtotime($timestamp); + $return = array(); + + $days = floor($time / 86400); + if ($days > 0) { + $return[] = $days . 'd'; + $time %= 86400; + } + + $hours = floor($time / 3600); + if ($hours > 0) { + $return[] = $hours . 'h'; + $time %= 3600; + } + + $minutes = floor($time / 60); + if ($minutes > 0) { + $return[] = $minutes . 'm'; + $time %= 60; + } + + if ($time > 0 || count($return) <= 0) { + $return[] = ($time > 0 ? $time : '0') . 's'; + } + + return implode(' ', $return); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld.php new file mode 100644 index 0000000000..d7d64a4717 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld.php @@ -0,0 +1,148 @@ +<?php + +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Url + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Url + */ + +/** + * Responds to a request for a TLD (formatted as .tld where tld is the TLD to + * be looked up) with its corresponding description. + * + * @category Phergie + * @package Phergie_Plugin_Tld + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Tld + * @uses extension PDO + * @uses extension pdo_sqlite + */ +class Phergie_Plugin_Tld extends Phergie_Plugin_Abstract +{ + /** + * Connection to the database + * + * @var PDO + */ + protected $db; + + /** + * Prepared statement for selecting a single TLD + * + * @var PDOStatement + */ + protected $select; + + /** + * Prepared statement for selecting all TLDs + * + * @var PDOStatement + */ + protected $selectAll; + + /** + * Checks for dependencies and sets up the database and hard-coded values. + * + * @return void + */ + public function onLoad() + { + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->fail('PDO and pdo_sqlite extensions must be installed'); + } + + $dbFile = dirname(__FILE__) . '/Tld/tld.db'; + try { + $this->db = new PDO('sqlite:' . $dbFile); + + $this->select = $this->db->prepare(' + SELECT type, description + FROM tld + WHERE LOWER(tld) = LOWER(:tld) + '); + + $this->selectAll = $this->db->prepare(' + SELECT tld, type, description + FROM btld + '); + } catch (PDOException $e) { + $this->getPluginHandler()->removePlugin($this); + } + } + + /** + * takes a tld in the format '.tld' and returns its related data + * + * @param string $tld tld to process + * + * @return null + */ + public function onCommandTld($tld) + { + $tld = ltrim($tld, '.'); + $description = $this->getTld($tld); + $this->doPrivmsg( + $this->event->getSource(), + "{$this->getEvent()->getNick()}: .{$tld} -> " + . ($description ? $description : 'Unknown TLD') + ); + } + + /** + * Retrieves the definition for a given TLD if it exists + * + * @param string $tld TLD to search for + * + * @return mixed Definition of the given TLD as a string or false if unknown + */ + public function getTld($tld) + { + $tld = trim(strtolower($tld)); + if ($this->select->execute(array('tld' => $tld))) { + $tlds = $this->select->fetch(); + if (is_array($tlds)) { + return '(' . $tlds['type'] . ') ' . $tlds['description']; + } + } + return false; + } + + /** + * Retrieves a list of all the TLDs and their definitions + * + * @return mixed Array of all the TLDs and their definitions or FALSE on + * failure + */ + public function getTlds() + { + if ($this->selectAll->execute()) { + $tlds = $this->selectAll->fetchAll(); + if (is_array($tlds)) { + $tldinfo = array(); + foreach ($tlds as $key => $tld) { + if (!empty($tld['tld'])) { + $tldinfo[$tld['tld']] = "({$tld['type']}) " + . $tld['description']; + } + } + return $tldinfo; + } + } + return false; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld/db.php new file mode 100644 index 0000000000..28f963ad10 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Tld/db.php @@ -0,0 +1,68 @@ +<?php + +$dbFile = 'tld.db'; + +if (file_exists($dbFile)) { + exit; +} + +$db = new PDO('sqlite:' . dirname(__FILE__) . '/' . $dbFile); + +$query = ' + CREATE TABLE tld ( + tld VARCHAR(20), + type VARCHAR(20), + description VARCHAR(255) + ) +'; +$db->exec($query); + +$insert = $db->prepare(' + INSERT INTO tld (tld, type, description) + VALUES (:tld, :type, :description) +'); + +$contents = file_get_contents( + 'http://www.iana.org/domains/root/db/' +); + +libxml_use_internal_errors(true); +$doc = new DOMDocument; +$doc->loadHTML($contents); +libxml_clear_errors(); + +$descriptions = array( + 'com' => 'Commercial', + 'info' => 'Information', + 'net' => 'Network', + 'org' => 'Organization', + 'edu' => 'Educational', + 'name' => 'Individuals, by name' +); + +$xpath = new DOMXPath($doc); +$rows = $xpath->query('//tr[contains(@class, "iana-group")]'); +foreach (range(0, $rows->length - 1) as $index) { + $row = $rows->item($index); + $tld = strtolower(ltrim($row->childNodes->item(0)->textContent, '.')); + $type = $row->childNodes->item(1)->nodeValue; + if (isset($descriptions[$tld])) { + $description = $descriptions[$tld]; + } else { + $description = $row->childNodes->item(2)->textContent; + $regex = '{(^(?:Reserved|Restricted)\s*(?:exclusively\s*)?' + . '(?:for|to)\s*(?:members of\s*)?(?:the|support)?' + . '\s*|\s*as advised.*$)}i'; + $description = preg_replace($regex, '', $description); + $description = ucfirst(trim($description)); + } + $data = array_map( + 'html_entity_decode', + array( + 'tld' => $tld, + 'type' => $type, + 'description' => $description + ) + ); + $insert->execute($data); +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter.php new file mode 100644 index 0000000000..4a77d1e418 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter.php @@ -0,0 +1,206 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Twitter + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Twitter + */ + +/** + * These requires are for library code, so they don't fit Autoload's normal + * conventions. + * + * @link http://github.com/scoates/simpletweet + */ +require dirname(__FILE__) . '/Twitter/twitter.class.php'; +require dirname(__FILE__) . '/Twitter/laconica.class.php'; + +/** + * Twitter plugin; Allows tweet (if configured) and twitter commands + * + * Usage: + * tweet text to tweet + * (sends a message to twitter and Phergie will give you the link) + * twitter username + * (fetches and displays the last tweet by @username) + * twitter username 3 + * (fetches and displays the third last tweet by @username) + * twitter 1234567 + * (fetches and displays tweet number 1234567) + * http://twitter.com/username/statuses/1234567 + * (same as `twitter 1234567`) + * + * @category Phergie + * @package Phergie_Plugin_Twitter + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Twitter + * @uses Phergie_Plugin_Time pear.phergie.org + */ +class Phergie_Plugin_Twitter extends Phergie_Plugin_Abstract +{ + /** + * Twitter object (from Simpletweet) + */ + protected $twitter; + + /** + * Twitter user + */ + protected $twitteruser = null; + + /** + * Password + */ + protected $twitterpassword = null; + + /** + * Register with the URL plugin, if possible + * + * @return void + */ + public function onConnect() + { + if ($url = $this->getPluginHandler()->getPlugin('Url')) { + $url->registerRenderer($this); + } + } + + /** + * Initialize (set up configuration vars) + * + * @return void + */ + public function onLoad() + { + if (!isset($this->config['twitter.class']) + || !$twitterClass = $this->config['twitter.class'] + ) { + $twitterClass = 'Twitter'; + } + + $this->twitteruser = $this->config['twitter.user']; + $this->twitterpassword = $this->config['twitter.password']; + $url = $this->config['twitter.url']; + + $this->twitter = new $twitterClass( + $this->twitteruser, + $this->twitterpassword, + $url + ); + + } + + /** + * Fetches the associated tweet and relays it to the channel + * + * @param string $tweeter if numeric the tweet number/id, otherwise the + * twitter user name (optionally prefixed with @) + * @param int $num optional tweet number for this user (number of + * tweets ago) + * + * @return void + */ + public function onCommandTwitter($tweeter = null, $num = 1) + { + $source = $this->getEvent()->getSource(); + if (is_numeric($tweeter)) { + $tweet = $this->twitter->getTweetByNum($tweeter); + } else if (is_null($tweeter) && $this->twitteruser) { + $tweet = $this->twitter->getLastTweet($this->twitteruser, 1); + } else { + $tweet = $this->twitter->getLastTweet(ltrim($tweeter, '@'), $num); + } + if ($tweet) { + $this->doPrivmsg($source, $this->formatTweet($tweet)); + } + } + + /** + * Sends a tweet to Twitter as the configured user + * + * @param string $txt the text to tweet + * + * @return void + */ + public function onCommandTweet($txt) + { + $nick = $this->getEvent()->getNick(); + if (!$this->twitteruser) { + return; + } + $source = $this->getEvent()->getSource(); + if ($tweet = $this->twitter->sendTweet($txt)) { + $this->doPrivmsg( + $source, 'Tweeted: ' + . $this->twitter->getUrlOutputStatus($tweet) + ); + } else { + $this->doNotice($nick, 'Tweet failed'); + } + } + + /** + * Formats a Tweet into a message suitable for output + * + * @param object $tweet JSON-decoded tweet object from Twitter + * @param bool $includeUrl whether or not to include the URL in the + * formatted output + * + * @return string + */ + protected function formatTweet(StdClass $tweet, $includeUrl = true) + { + $ts = $this->plugins->time->getCountDown($tweet->created_at); + $out = '<@' . $tweet->user->screen_name .'> '. $tweet->text + . ' - ' . $ts . ' ago'; + if ($includeUrl) { + $out .= ' (' . $this->twitter->getUrlOutputStatus($tweet) . ')'; + } + return $out; + } + + /** + * Renders a URL + * + * @param array $parsed parse_url() output for the URL to render + * + * @return bool + */ + public function renderUrl(array $parsed) + { + if ($parsed['host'] != 'twitter.com' + && $parsed['host'] != 'www.twitter.com' + ) { + // unable to render non-twitter URLs + return false; + } + + $source = $this->getEvent()->getSource(); + + if (preg_match('#^/(.*?)/status(es)?/([0-9]+)$#', $parsed['path'], $matches) + ) { + $tweet = $this->twitter->getTweetByNum($matches[3]); + if ($tweet) { + $this->doPrivmsg($source, $this->formatTweet($tweet, false)); + } + return true; + } + + // if we get this far, we haven't satisfied the URL, so bail: + return false; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/laconica.class.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/laconica.class.php new file mode 100644 index 0000000000..e411991dbe --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/laconica.class.php @@ -0,0 +1,41 @@ +<?php +/** + * Sean's Simple Twitter Library - Laconica extension + * + * Copyright 2008, Sean Coates + * Usage of the works is permitted provided that this instrument is retained + * with the works, so that any entity that uses the works is notified of this + * instrument. + * DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY. + * ( Fair License - http://www.opensource.org/licenses/fair.php ) + * Short license: do whatever you like with this. + * + */ +class Twitter_Laconica extends Twitter { + + /** + * Constructor; sets up configuration. + * + * @param string $user Laconica user name; null for limited read-only access + * @param string $pass Laconica password; null for limited read-only access + * @param string $baseUrl Base URL of Laconica install. Defaults to identi.ca + */ + public function __construct($user=null, $pass=null, $baseUrl = 'http://identi.ca/') { + $this->baseUrl = $baseUrl; + parent::__construct($user, $pass); + } + + /** + * Returns the base API URL + */ + protected function getUrlApi() { + return $this->baseUrlFull . 'api/'; + } + + /** + * Output URL: status + */ + public function getUrlOutputStatus(StdClass $tweet) { + return $this->baseUrl . 'notice/' . urlencode($tweet->id); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/twitter.class.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/twitter.class.php new file mode 100644 index 0000000000..31173a6d08 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Twitter/twitter.class.php @@ -0,0 +1,287 @@ +<?php +/** + * Sean's Simple Twitter Library + * + * Probably a little more or a little less than you need. + * + * Copyright 2008, Sean Coates + * Usage of the works is permitted provided that this instrument is retained + * with the works, so that any entity that uses the works is notified of this + * instrument. + * DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY. + * ( Fair License - http://www.opensource.org/licenses/fair.php ) + * Short license: do whatever you like with this. + * + * komode: le=unix language=php codepage=utf8 tab=4 notabs indent=4 + */ +class Twitter { + + /** + * Base URL for Twitter API + * + * Do not specify user/password in URL + */ + protected $baseUrl = 'http://twitter.com/'; + + /** + * Full base URL (includes user/pass) + * + * (created in Init) + */ + protected $baseUrlFull = null; + + /** + * Twitter API user + */ + protected $user; + + /** + * Twitter API password + */ + protected $pass; + + /** + * Constructor; sets up configuration. + * + * @param string $user Twitter user name; null for limited read-only access + * @param string $pass Twitter password; null for limited read-only access + */ + public function __construct($user=null, $pass=null) { + $this->baseUrlFull = $this->baseUrl; + if (null !== $user) { + // user is defined, so use it in the URL + $this->user = $user; + $this->pass = $pass; + $parsed = parse_url($this->baseUrl); + $this->baseUrlFull = $parsed['scheme'] . '://' . $this->user . ':' . + $this->pass . '@' . $parsed['host']; + // port (optional) + if (isset($parsed['port']) && is_numeric($parsed['port'])) { + $this->baseUrlFull .= ':' . $parsed['port']; + } + // append path (default: /) + if (isset($parsed['path'])) { + $this->baseUrlFull .= $parsed['path']; + } else { + $this->baseUrlFull .= '/'; + } + } + } + + /** + * Fetches a tweet by its number/id + * + * @param int $num the tweet id/number + * @return string (null on failure) + */ + public function getTweetByNum($num) { + if (!is_numeric($num)) { + return; + } + $tweet = json_decode(file_get_contents($this->getUrlStatus($num))); + return $tweet; + } + + /** + * Reads [last] tweet from user + * + * @param string $tweeter the tweeter username + * @param int $num this many tweets ago (1 = current tweet) + * @return string (false on failure) + */ + public function getLastTweet($tweeter, $num = 1) + { + $source = json_decode(file_get_contents($this->getUrlUserTimeline($tweeter))); + if ($num > count($source)) { + return false; + } + $tweet = $source[$num - 1]; + if (!isset($tweet->user->screen_name) || !$tweet->user->screen_name) { + return false; + } + return $tweet; + } + + /** + * fetches mentions for a user + */ + public function getMentions($sinceId=null, $count=20) { + return json_decode(file_get_contents($this->getUrlMentions($sinceId, $count))); + } + + /** + * Fetches followers for a user + */ + public function getFollowers($cursor=-1) { + return json_decode(file_get_contents($this->getUrlFollowers($cursor))); + } + + /** + * Follow a userid + */ + public function follow($userId) { + $params = array( + 'http' => array( + 'method' => 'POST', + 'content' => array(), + 'header' => 'Content-type: application/x-www-form-urlencoded', + ) + ); + $ctx = stream_context_create($params); + $fp = fopen($this->getUrlFollow($userId), 'rb', false, $ctx); + if (!$fp) { + return false; + } + $response = stream_get_contents($fp); + if ($response === false) { + return false; + } + $response = json_decode($response); + return $response; + } + + /** + * fetches DMs for a user + */ + public function getDMs($sinceId=null, $count=20, $page=1) { + return json_decode(file_get_contents($this->getUrlDMs($sinceId, $count, $page))); + } + + /** + * Send DM + */ + public function sendDM($screenName, $text) { + $data = http_build_query(array('screen_name'=>$screenName, 'text'=>$text)); + $params = array( + 'http' => array( + 'method' => 'POST', + 'content' => $data, + 'header' => 'Content-type: application/x-www-form-urlencoded', + ) + ); + $ctx = stream_context_create($params); + $fp = fopen($this->getUrlSendDM(), 'rb', false, $ctx); + if (!$fp) { + return false; + } + $response = stream_get_contents($fp); + if ($response === false) { + return false; + } + $response = json_decode($response); + return $response; + } + + /** + * Sends a tweet + * + * @param string $txt the tweet text to send + * @return string URL of tweet (or false on failure) + */ + public function sendTweet($txt, $limit=true) { + if ($limit) { + $txt = substr($txt, 0, 140); // twitter message size limit + } + $data = 'status=' . urlencode($txt); + $params = array( + 'http' => array( + 'method' => 'POST', + 'content' => $data, + 'header' => 'Content-type: application/x-www-form-urlencoded', + ) + ); + $ctx = stream_context_create($params); + $fp = fopen($this->getUrlTweetPost(), 'rb', false, $ctx); + if (!$fp) { + return false; + } + $response = stream_get_contents($fp); + if ($response === false) { + return false; + } + $response = json_decode($response); + return $response; + } + + /** + * Returns the base API URL + */ + protected function getUrlApi() { + return $this->baseUrlFull; + } + + /** + * Returns the status URL + * + * @param int $num the tweet number + */ + protected function getUrlStatus($num) { + return $this->getUrlApi() . 'statuses/show/'. urlencode($num) .'.json'; + } + + /** + * Returns the user timeline URL + */ + protected function getUrlUserTimeline($user) { + return $this->getUrlApi() . 'statuses/user_timeline/'. urlencode($user) .'.json'; + } + + /** + * Returns the tweet posting URL + */ + protected function getUrlTweetPost() { + return $this->getUrlApi() . 'statuses/update.json'; + } + + /** + * Output URL: status + */ + public function getUrlOutputStatus(StdClass $tweet) { + return $this->baseUrl . urlencode($tweet->user->screen_name) . '/statuses/' . urlencode($tweet->id); + } + + /** + * Return mentions URL + */ + public function getUrlMentions($sinceId=null, $count=20) { + $url = $this->baseUrlFull . 'statuses/mentions.json?count=' . urlencode($count); + if ($sinceId !== null) { + $url .= '&since_id=' . urlencode($sinceId); + } + return $url; + } + + /** + * Returns the followers URL + */ + public function getUrlFollowers($cursor=-1) { + return $this->baseUrlFull . 'statuses/followers.json?cursor=' . ((int)$cursor); + } + + /** + * Returns the follow-user URL + */ + public function getUrlFollow($userid) { + return $this->baseUrlFull . 'friendships/create/' . ((int) $userid) . '.json'; + } + + /** + * Returns the get DMs URL + */ + public function getUrlDMs($sinceId=null, $count=20, $page=1) { + $url = $this->baseUrlFull . 'direct_messages.json?'; + if ($sinceId !== null) { + $url .= 'since_id=' . urlencode($sinceId); + } + $url .= "&page={$page}"; + $url .= "&count={$count}"; + return $url; + } + + /** + * Returns the send DM URL + */ + public function getURLSendDM() { + return $this->baseUrlFull . 'direct_messages/new.json'; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Url.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url.php new file mode 100644 index 0000000000..bac115b1b9 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url.php @@ -0,0 +1,638 @@ +<?php +/** + * Phergie + * + * PHP version 5 + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE. + * It is also available through the world-wide-web at this URL: + * http://phergie.org/license + * + * @category Phergie + * @package Phergie_Plugin_Url + * @author Phergie Development Team <team@phergie.org> + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Url + */ + +/** + * Monitors incoming messages for instances of URLs and responds with messages + * containing relevant information about detected URLs. + * + * Has an utility method accessible via + * $this->getPlugin('Url')->getTitle('http://foo..'). + * + * @category Phergie + * @package Phergie_Plugin_Url + * @author Phergie Development Team <team@phergie.org> + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Url + * @uses Phergie_Plugin_Encoding pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + * @uses Phergie_Plugin_Tld pear.phergie.org + */ +class Phergie_Plugin_Url extends Phergie_Plugin_Abstract +{ + /** + * Links output format + * + * Can use the variables %nick%, %title% and %link% in it to display + * page titles and links + * + * @var string + */ + protected $baseFormat = '%message%'; + protected $messageFormat = '[ %link% ] %title%'; + + /** + * Flag indicating whether a single response should be sent for a single + * message containing multiple links + * + * @var bool + */ + protected $mergeLinks = true; + + /** + * Max length of the fetched URL title + * + * @var int + */ + protected $titleLength = 40; + + /** + * Url cache to prevent spamming, especially with multiple bots on the + * same channel + * + * @var array + */ + protected $urlCache = array(); + protected $shortCache = array(); + + /** + * Time in seconds to store the cached entries + * + * Setting it to 0 or below disables the cache expiration + * + * @var int + */ + protected $expire = 1800; + + /** + * Number of entries to keep in the cache at one time per channel + * + * Setting it to 0 or below disables the cache limit + * + * @var int + */ + protected $limit = 10; + + /** + * Flag that determines if the plugin will fall back to using an HTTP + * stream when a URL using SSL is detected and OpenSSL support isn't + * available in the PHP installation in use + * + * @var bool + */ + protected $sslFallback = true; + + /** + * Flag that is set to true by the custom error handler if an HTTP error + * code has been received + * + * @var boolean + */ + protected $errorStatus = false; + protected $errorMessage = null; + + /** + * Flag indicating whether or not to display error messages as the title + * if a link posted encounters an error + * + * @var boolean + */ + protected $showErrors = true; + + /** + * Flag indicating whether to detect schemeless URLS (i.e. "example.com") + * + * @var boolean + */ + protected $detectSchemeless = false; + + /** + * Shortener object + */ + protected $shortener; + + /** + * Array of renderers + */ + protected $renderers = array(); + + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Encoding'); + $plugins->getPlugin('Http'); + $plugins->getPlugin('Tld'); + + // make the shortener configurable + $shortener = $this->getConfig('url.shortener', 'Trim'); + $shortener = "Phergie_Plugin_Url_Shorten_{$shortener}"; + $this->shortener = new $shortener($this->plugins->getPlugin('Http')); + + if (!$this->shortener instanceof Phergie_Plugin_Url_Shorten_Abstract) { + $this->fail("Declared shortener class {$shortener} is not of proper ancestry"); + } + + // load config (a bit ugly, but focusing on porting): + foreach ( + array( + 'detect_schemeless' => 'detectSchemeless', + 'base_format' => 'baseFormat', + 'message_format' => 'messageFormat', + 'merge_links' => 'mergeLinks', + 'title_length' => 'titleLength', + 'show_errors' => 'showErrors', + 'expire' => 'expire', + ) as $config => $local) { + if (isset($this->config["url.{$config}"])) { + $this->$local = $this->config["uri.{$config}"]; + } + } + } + + /** + * Checks an incoming message for the presence of a URL and, if one is + * found, responds with its title if it is an HTML document and the + * shortened equivalent of its original URL if it meets length requirements. + * + * @todo Update this to pull configuration settings from $this->config + * rather than caching them as class properties + * @return void + */ + public function onPrivmsg() + { + $this->handleMsg(); + } + + /** + * Checks an incoming message for the presence of a URL and, if one is + * found, responds with its title if it is an HTML document and the + * shortened equivalent of its original URL if it meets length requirements. + * + * @todo Update this to pull configuration settings from $this->config + * rather than caching them as class properties + * @return void + */ + public function onAction() + { + $this->handleMsg(); + } + + /** + * Handles message events and responds with url titles. + * + * @return void + */ + protected function handleMsg() + { + $source = $this->getEvent()->getSource(); + $user = $this->getEvent()->getNick(); + + $responses = array(); + $urls = $this->findUrls($this->getEvent()->getArgument(1)); + + foreach ($urls as $parsed) { + $url = $parsed['glued']; + + // allow out-of-class renderers to handle this URL + foreach ($this->renderers as $renderer) { + if ($renderer->renderUrl($parsed) === true) { + // renderers should return true if they've fully + // rendered the passed URL (they're responsible + // for their own output) + $this->debug('Handled by renderer: ' . get_class($renderer)); + continue 2; + } + } + + // Convert url + $shortenedUrl = $this->shortener->shorten($url); + if (!$shortenedUrl) { + $this->debug('Invalid Url: Unable to shorten. (' . $url . ')'); + $shortenedUrl = $url; + } + + // Prevent spamfest + if ($this->checkUrlCache($url, $shortenedUrl)) { + $this->debug('Invalid Url: URL is in the cache. (' . $url . ')'); + continue; + } + + $title = $this->getTitle($url); + if (!empty($title)) { + $responses[] = str_replace( + array( + '%title%', + '%link%', + '%nick%' + ), array( + $title, + $shortenedUrl, + $user + ), $this->messageFormat + ); + } + + // Update cache + $this->updateUrlCache($url, $shortenedUrl); + unset($title, $shortenedUrl, $title); + } + + // Check to see if there were any URL responses, format them and handle if they + // get merged into one message or not + if (count($responses) > 0) { + if ($this->mergeLinks) { + $message = str_replace( + array( + '%message%', + '%nick%' + ), array( + implode('; ', $responses), + $user + ), $this->baseFormat + ); + $this->doPrivmsg($source, $message); + } else { + foreach ($responses as $response) { + $message = str_replace( + array( + '%message%', + '%nick%' + ), array( + implode('; ', $responses), + $user + ), $this->baseFormat + ); + $this->doPrivmsg($source, $message); + } + } + } + } + + /** + * Detect URLs in a given string. + * + * @param string $message the string to detect urls in + * + * @return array the array of urls found + */ + public function findUrls($message) + { + $pattern = '#'.($this->detectSchemeless ? '' : 'https?://').'(?:([0-9]{1,3}(?:\.[0-9]{1,3}){3})(?![^/]) | (' + .($this->detectSchemeless ? '(?<!http:/|https:/)[@/\\\]' : '').')?(?:(?:[a-z0-9_-]+\.?)+\.[a-z0-9]{1,6}))[^\s]*#xis'; + $urls = array(); + + // URL Match + if (preg_match_all($pattern, $message, $matches, PREG_SET_ORDER)) { + foreach ($matches as $m) { + $url = trim(rtrim($m[0], ', ].?!;')); + + // Check to see if the URL was from an email address, is a directory, etc + if (!empty($m[2])) { + $this->debug('Invalid Url: URL is either an email or a directory path. (' . $url . ')'); + continue; + } + + // Parse the given URL + if (!$parsed = $this->parseUrl($url)) { + $this->debug('Invalid Url: Could not parse the URL. (' . $url . ')'); + continue; + } + + // Check to see if the given IP/Host is valid + if (!empty($m[1]) and !$this->checkValidIP($m[1])) { + $this->debug('Invalid Url: ' . $m[1] . ' is not a valid IP address. (' . $url . ')'); + continue; + } + + // Process TLD if it's not an IP + if (empty($m[1])) { + // Get the TLD from the host + $pos = strrpos($parsed['host'], '.'); + $parsed['tld'] = ($pos !== false ? substr($parsed['host'], ($pos+1)) : ''); + + // Check to see if the URL has a valid TLD + if ($this->plugins->tld->getTld($parsed['tld']) === false) { + $this->debug('Invalid Url: ' . $parsed['tld'] . ' is not a supported TLD. (' . $url . ')'); + continue; + } + } + + // Check to see if the URL is to a secured site or not and handle it accordingly + if ($parsed['scheme'] == 'https' && !extension_loaded('openssl')) { + if (!$this->sslFallback) { + $this->debug('Invalid Url: HTTPS is an invalid scheme, OpenSSL isn\'t available. (' . $url . ')'); + continue; + } else { + $parsed['scheme'] = 'http'; + } + } + + if (!in_array($parsed['scheme'], array('http', 'https'))) { + $this->debug('Invalid Url: ' . $parsed['scheme'] . ' is not a supported scheme. (' . $url . ')'); + continue; + } + + $urls[] = $parsed + array('glued' => $this->glueURL($parsed)); + } + } + + return $urls; + } + + /** + * Checks a given URL (+shortened) against the cache to verify if they were + * previously posted on the channel. + * + * @param string $url The URL to check against + * @param string $shortenedUrl The shortened URL to check against + * + * @return bool + */ + protected function checkUrlCache($url, $shortenedUrl) + { + $source = $this->getEvent()->getSource(); + + /** + * Transform the URL (+shortened) into a HEX CRC32 checksum to prevent potential problems + * and minimize the size of the cache for less cache bloat. + */ + $url = $this->getUrlChecksum($url); + $shortenedUrl = $this->getUrlChecksum($shortenedUrl); + + $cache = array( + 'url' => isset($this->urlCache[$source][$url]) ? $this->urlCache[$source][$url] : null, + 'shortened' => isset($this->shortCache[$source][$shortenedUrl]) ? $this->shortCache[$source][$shortenedUrl] : null + ); + + $expire = $this->expire; + $this->debug("Cache expire: {$expire}"); + /** + * If cache expiration is enabled, check to see if the given url has expired in the cache + * If expire is disabled, simply check to see if the url is listed + */ + if (($expire > 0 && (($cache['url'] + $expire) > time() || ($cache['shortened'] + $expire) > time())) + || ($expire <= 0 && (isset($cache['url']) || isset($cache['shortened']))) + ) { + unset($cache, $url, $shortenedUrl, $expire); + return true; + } + unset($cache, $url, $shortenedUrl, $expire); + return false; + } + + /** + * Updates the cache and adds the given URL (+shortened) to the cache. It + * also handles cleaning the cache of old entries as well. + * + * @param string $url The URL to add to the cache + * @param string $shortenedUrl The shortened to add to the cache + * + * @return bool + */ + protected function updateUrlCache($url, $shortenedUrl) + { + $source = $this->getEvent()->getSource(); + + /** + * Transform the URL (+shortened) into a HEX CRC32 checksum to prevent potential problems + * and minimize the size of the cache for less cache bloat. + */ + $url = $this->getUrlChecksum($url); + $shortenedUrl = $this->getUrlChecksum($shortenedUrl); + $time = time(); + + // Handle the URL cache and remove old entries that surpass the limit if enabled + $this->urlCache[$source][$url] = $time; + if ($this->limit > 0 && count($this->urlCache[$source]) > $this->limit) { + asort($this->urlCache[$source], SORT_NUMERIC); + array_shift($this->urlCache[$source]); + } + + // Handle the shortened cache and remove old entries that surpass the limit if enabled + $this->shortCache[$source][$shortenedUrl] = $time; + if ($this->limit > 0 && count($this->shortCache[$source]) > $this->limit) { + asort($this->shortCache[$source], SORT_NUMERIC); + array_shift($this->shortCache[$source]); + } + unset($url, $shortenedUrl, $time); + } + + /** + * Transliterates a UTF-8 string into corresponding ASCII characters and + * truncates and appends an ellipsis to the string if it exceeds a given + * length. + * + * @param string $str String to decode + * @param int $trim Maximum string length, optional + * + * @return string + */ + protected function decode($str, $trim = null) + { + $out = $this->plugins->encoding->transliterate($str); + if ($trim > 0) { + $out = substr($out, 0, $trim) . (strlen($out) > $trim ? '...' : ''); + } + return $out; + } + + /** + * Takes a url, parses and cleans the URL without of all the junk + * and then return the hex checksum of the url. + * + * @param string $url url to checksum + * + * @return string the hex checksum of the cleaned url + */ + protected function getUrlChecksum($url) + { + $checksum = strtolower(urldecode($this->glueUrl($url, true))); + $checksum = preg_replace('#\s#', '', $this->plugins->encoding->transliterate($checksum)); + return dechex(crc32($checksum)); + } + + /** + * Parses a given URI and procceses the output to remove redundant + * or missing values. + * + * @param string $url the url to parse + * + * @return array the url components + */ + protected function parseUrl($url) + { + if (is_array($url)) return $url; + + $url = trim(ltrim($url, ' /@\\')); + if (!preg_match('&^(?:([a-z][-+.a-z0-9]*):)&xis', $url, $matches)) { + $url = 'http://' . $url; + } + $parsed = parse_url($url); + + if (!isset($parsed['scheme'])) { + $parsed['scheme'] = 'http'; + } + $parsed['scheme'] = strtolower($parsed['scheme']); + + if (isset($parsed['path']) && !isset($parsed['host'])) { + $host = $parsed['path']; + $path = ''; + if (strpos($parsed['path'], '/') !== false) { + list($host, $path) = array_pad(explode('/', $parsed['path'], 2), 2, null); + } + $parsed['host'] = $host; + $parsed['path'] = $path; + } + + return $parsed; + } + + /** + * Parses a given URI and then glues it back together in the proper format. + * If base is set, then it chops off the scheme, user and pass and fragment + * information to return a more unique base URI. + * + * @param string $uri uri to rebuild + * @param string $base set to true to only return the base components + * + * @return string the rebuilt uri + */ + protected function glueUrl($uri, $base = false) + { + $parsed = $uri; + if (!is_array($parsed)) { + $parsed = $this->parseUrl($parsed); + } + + if (is_array($parsed)) { + $uri = ''; + if (!$base) { + $uri .= (!empty($parsed['scheme']) ? $parsed['scheme'] . ':' . + ((strtolower($parsed['scheme']) == 'mailto') ? '' : '//') : ''); + $uri .= (!empty($parsed['user']) ? $parsed['user'] . + (!empty($parsed['pass']) ? ':' . $parsed['pass'] : '') . '@' : ''); + } + if ($base && !empty($parsed['host'])) { + $parsed['host'] = trim($parsed['host']); + if (substr($parsed['host'], 0, 4) == 'www.') { + $parsed['host'] = substr($parsed['host'], 4); + } + } + $uri .= (!empty($parsed['host']) ? $parsed['host'] : ''); + if (!empty($parsed['port']) + && (($parsed['scheme'] == 'http' && $parsed['port'] == 80) + || ($parsed['scheme'] == 'https' && $parsed['port'] == 443)) + ) { + unset($parsed['port']); + } + $uri .= (!empty($parsed['port']) ? ':' . $parsed['port'] : ''); + if (!empty($parsed['path']) && (!$base || $base && $parsed['path'] != '/')) { + $uri .= (substr($parsed['path'], 0, 1) == '/') ? $parsed['path'] : ('/' . $parsed['path']); + } + $uri .= (!empty($parsed['query']) ? '?' . $parsed['query'] : ''); + if (!$base) { + $uri .= (!empty($parsed['fragment']) ? '#' . $parsed['fragment'] : ''); + } + } + return $uri; + } + + /** + * Checks the given string to see if its a valid IP4 address + * + * @param string $ip the ip to validate + * + * @return bool + */ + protected function checkValidIP($ip) + { + return long2ip(ip2long($ip)) === $ip; + } + + /** + * Returns the title of the given page + * + * @param string $url url to the page + * + * @return string title + */ + public function getTitle($url) + { + $http = $this->plugins->getPlugin('Http'); + $options = array( + 'timeout' => 3.5, + 'user_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12' + ); + + $response = $http->head($url, array(), $options); + $header = $response->getHeaders('Content-Type'); + + if (!preg_match('#^(text/x?html|application/xhtml+xml)(?:;.*)?$#', $header)) { + $title = $header; + } else { + $response = $http->get($url, array(), $options); + $content = $response->getContent(); + if (preg_match('#<title[^>]*>(.*?)#is', $content, $match)) { + $title = preg_replace('/[\s\v]+/', ' ', trim($match[1])); + } + } + $encoding = $this->plugins->getPlugin('Encoding'); + $title = $encoding->decodeEntities($title); + + if (empty($title)) { + if ($response->isError()) { + $title = $response->getCodeAsString(); + } else { + $title = 'No Title'; + } + } + + return $title; + } + + /** + * Output a debug message + * + * @param string $msg the message to output + * + * @return void + */ + protected function debug($msg) + { + echo "(DEBUG:Url) $msg\n"; + } + + /** + * Add a renderer to the stack + * + * @param object $obj the renderer to add + * + * @return void + */ + public function registerRenderer($obj) + { + $this->renderers[spl_object_hash($obj)] = $obj; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Abstract.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Abstract.php new file mode 100644 index 0000000000..607d1654c4 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Abstract.php @@ -0,0 +1,105 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + */ + +/** + * URL shortener abstract class + * + * @category Phergie + * @package Phergie_Plugin_Url + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Url + * @uses Phergie_Plugin_Http pear.phergie.org + */ +abstract class Phergie_Plugin_Url_Shorten_Abstract +{ + protected $http; + + /** + * Constructor + * + * @param Phergie_Plugin_Http $http instance of the http plugin + */ + public function __construct(Phergie_Plugin_Http $http) + { + $this->http = $http; + } + + /** + * Returns an array of request parameters given a url to shorten. The + * following keys are valid request parameters: + * + * * 'uri': the URI for the request (required) + * * 'query': an array of key-value pairs sent in a GET request + * * 'post': an array of key-value pairs sent in a POST request + * * 'callback': to be called after the request is finished. Should accept + * a Phergie_Plugin_Http_Response object and return either the shortened + * url or false if an error has occured. + * + * If the 'post' key is present a POST request shall be made; otherwise + * a GET request will be made. The 'post' key can be an empty array and + * a post request will still be made. + * + * If no callback is provided the contents of the response will be returned. + * + * @param string $url the url to shorten + * + * @return array the request parameters + */ + protected abstract function getRequestParams($url); + + /** + * Shortens a given url. + * + * @param string $url the url to shorten + * + * @return string the shortened url or false on a failure + */ + public function shorten($url) + { + $defaults = array('get' => array(), 'post' => array(), 'callback' => null); + $options = array('timeout' => 2); + $params = $this->getRequestParams($url) + $defaults; + + // Should some kind of notice be thrown? Maybe just if getRequestParams does not return an array? + if (!is_array($params) || empty($params['uri'])) { + return $url; + } + + if (!empty($params['post'])) { + $response = $this->http->post($params['uri'], $params['get'], $params['post'], $options); + } else { + $response = $this->http->get($params['uri'], $params['get'], $options); + } + + if (is_callable($params['callback'])) { + return call_user_func($params['callback'], $response); + } + + $code = $response->getCode(); + $content = trim($response->getContent); + if ($code < 200 || $code >= 300 || empty($content)) { + return false; + } + + return $response->getContent(); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Trim.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Trim.php new file mode 100644 index 0000000000..af7e8a514f --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Url/Shorten/Trim.php @@ -0,0 +1,64 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Php + */ + +/** + * Shortens urls via the tr.im service + * + * @category Phergie + * @package Phergie_Plugin_Url + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Url + */ +class Phergie_Plugin_Url_Shorten_Trim extends Phergie_Plugin_Url_Shorten_Abstract +{ + /** + * Returns an array of request parameters given a url to shorten. The + * following keys are valid request parameters: + * + * @param string $url the url to shorten + * + * @return array the request parameters + */ + protected function getRequestParams($url) + { + return array( + 'uri' => 'http://api.tr.im/v1/trim_simple?url=' . rawurlencode($url), + 'callback' => array($this, 'onComplete') + ); + } + + /** + * Callback for when the URL has been shortened. Checks for error messages. + * + * @param Phergie_Plugin_Http_Response $response the response object + * + * @return string|bool the shortened url or false on failure + */ + protected function onComplete($response) + { + if (strpos($response->getContent(), 'Error: ') === 0) { + return false; + } + + return $response->getContent(); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/UserInfo.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/UserInfo.php new file mode 100644 index 0000000000..9437073d8f --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/UserInfo.php @@ -0,0 +1,413 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_UserInfo + */ + +/** + * Provides an API for querying information on users. + * + * @category Phergie + * @package Phergie_Plugin_UserInfo + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_UserInfo + */ +class Phergie_Plugin_UserInfo extends Phergie_Plugin_Abstract +{ + const REGULAR = 1; + const VOICE = 2; + const HALFOP = 4; + const OP = 8; + const ADMIN = 16; + const OWNER = 32; + + /** + * An array containing all the user information for a given channel + * + * @var array + */ + protected $store = array(); + + /** + * Tracks mode changes + * + * @return void + */ + public function onMode() + { + $args = $this->event->getArguments(); + + if (count($args) != 3) { + return; + } + + list($chan, $modes, $nicks) = $args; + + if (!preg_match('/(?:\+|-)[hovaq+-]+/i', $modes)) { + return; + } + + $chan = trim(strtolower($chan)); + $modes = str_split(trim(strtolower($modes)), 1); + $nicks = explode(' ', trim(strtolower($nicks))); + $operation = array_shift($modes); // + or - + + while ($char = array_shift($modes)) { + $nick = array_shift($nicks); + $mode = null; + + switch ($char) { + case 'q': + $mode = self::OWNER; + break; + case 'a': + $mode = self::ADMIN; + break; + case 'o': + $mode = self::OP; + break; + case 'h': + $mode = self::HALFOP; + break; + case 'v': + $mode = self::VOICE; + break; + } + + if (!empty($mode)) { + if ($operation == '+') { + $this->store[$chan][$nick] |= $mode; + } else if ($operation == '-') { + $this->store[$chan][$nick] ^= $mode; + } + } + } + } + + /** + * Tracks users joining a channel + * + * @return void + */ + public function onJoin() + { + $chan = trim(strtolower($this->event->getArgument(0))); + $nick = trim(strtolower($this->event->getNick())); + + $this->store[$chan][$nick] = self::REGULAR; + } + + /** + * Tracks users leaving a channel + * + * @return void + */ + public function onPart() + { + $chan = trim(strtolower($this->event->getArgument(0))); + $nick = trim(strtolower($this->event->getNick())); + + if (isset($this->store[$chan][$nick])) { + unset($this->store[$chan][$nick]); + } + } + + /** + * Tracks users quitting a server + * + * @return void + */ + public function onQuit() + { + $nick = trim(strtolower($this->event->getNick())); + + foreach ($this->store as $chan => $store) { + if (isset($store[$nick])) { + unset($this->store[$chan][$nick]); + } + } + } + + /** + * Tracks users changing nicks + * + * @return void + */ + public function onNick() + { + $nick = trim(strtolower($this->event->getNick())); + $newNick = trim(strtolower($this->event->getArgument(0))); + + foreach ($this->store as $chan => $store) { + if (isset($store[$nick])) { + $this->store[$chan][$newNick] = $store[$nick]; + unset($this->store[$chan][$nick]); + } + } + } + + /** + * Populates the internal user listing for a channel when the bot joins it. + * + * @return void + */ + public function onResponse() + { + if ($this->event->getCode() != Phergie_Event_Response::RPL_NAMREPLY) { + return; + } + + $desc = preg_split('/[@*=]\s*/', $this->event->getDescription(), 2); + list($chan, $users) = array_pad(explode(' :', trim($desc[1])), 2, null); + $users = explode(' ', trim($users)); + + $chan = trim(strtolower($chan)); + + foreach ($users as $user) { + if (empty($user)) { + continue; + } + + $user = trim(strtolower($user)); + $flag = self::REGULAR; + + if ($user[0] == '~') { + $flag |= self::OWNER; + } else if ($user[0] == '&') { + $flag |= self::ADMIN; + } else if ($user[0] == '@') { + $flag |= self::OP; + } else if ($user[0] == '%') { + $flag |= self::HALFOP; + } else if ($user[0] == '+') { + $flag |= self::VOICE; + } + + if ($flag != self::REGULAR) { + $user = substr($user, 1); + } + + $this->store[$chan][$user] = $flag; + } + } + + /** + * Debugging function + * + * @return void + */ + public function onPrivmsg() + { + if ($this->getConfig('debug', false) == false) { + return; + } + + list($target, $msg) = array_pad($this->event->getArguments(), 2, null); + + if (preg_match('#^ishere (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isIn($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^isowner (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isOwner($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^isadmin (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isAdmin($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^isop (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isOp($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^ishop (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isHalfop($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^isvoice (\S+)$#', $msg, $m)) { + $this->doPrivmsg($target, $this->isVoice($m[1], $target) ? 'true' : 'false'); + } elseif (preg_match('#^channels (\S+)$#', $msg, $m)) { + $channels = $this->getChannels($m[1]); + $this->doPrivmsg($target, $channels ? join(', ', $channels) : 'unable to find nick'); + } elseif (preg_match('#^users (\S+)$#', $msg, $m)) { + $nicks = $this->getUsers($m[1]); + $this->doPrivmsg($target, $nicks ? join(', ', $nicks) : 'unable to find channel'); + } elseif (preg_match('#^random (\S+)$#', $msg, $m)) { + $nick = $this->getrandomuser($m[1]); + $this->doPrivmsg($target, $nick ? $nick : 'unable to find channel'); + } + } + + /** + * Checks whether or not a given user has a mode + * + * @param int $mode A numeric mode (identified by the class constants) + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function is($mode, $nick, $chan) + { + $chan = trim(strtolower($chan)); + $nick = trim(strtolower($nick)); + + if (!isset($this->store[$chan][$nick])) { + return false; + } + + return ($this->store[$chan][$nick] & $mode) != 0; + } + + /** + * Checks whether or not a given user has owner (~) status + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isOwner($nick, $chan) + { + return $this->is(self::OWNER, $nick, $chan); + } + + /** + * Checks whether or not a given user has admin (&) status + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isAdmin($nick, $chan) + { + return $this->is(self::ADMIN, $nick, $chan); + } + + /** + * Checks whether or not a given user has operator (@) status + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isOp($nick, $chan) + { + return $this->is(self::OP, $nick, $chan); + } + + /** + * Checks whether or not a given user has halfop (%) status + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isHalfop($nick, $chan) + { + return $this->is(self::HALFOP, $nick, $chan); + } + + /** + * Checks whether or not a given user has voice (+) status + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isVoice($nick, $chan) + { + return $this->is(self::VOICE, $nick, $chan); + } + + /** + * Checks whether or not a given user is in a channel + * + * @param string $nick The nick to check + * @param string $chan The channel to check in + * + * @return bool + */ + public function isIn($nick, $chan) + { + return $this->is(self::REGULAR, $nick, $chan); + } + + /** + * Returns the entire user list for a channel or false if the bot is not + * in the channel. + * + * @param string $chan The channel name + * + * @return array|bool + */ + public function getUsers($chan) + { + $chan = trim(strtolower($chan)); + if (isset($this->store[$chan])) { + return array_keys($this->store[$chan]); + } + return false; + } + + /** + * Returns the nick of a random user present in a given channel or false + * if the bot is not present in the channel. + * + * @param string $chan The channel name + * + * @return array|bool + */ + public function getRandomUser($chan) + { + $chan = trim(strtolower($chan)); + + if (isset($this->store[$chan])) { + $ignore = array('chanserv', 'q', 'l', 's'); + + do { + $nick = array_rand($this->store[$chan], 1); + } while (in_array($nick, $ignore)); + + return $nick; + } + + return false; + } + + /** + * Returns a list of channels in which a given user is present. + * + * @param string $nick Nick of the user (optional, defaults to the bot's + * nick) + * + * @return array|bool + */ + public function getChannels($nick = null) + { + if (empty($nick)) { + $nick = $this->connection->getNick(); + } + + $nick = trim(strtolower($nick)); + $channels = array(); + + foreach ($this->store as $chan => $store) { + if (isset($store[$nick])) { + $channels[] = $chan; + } + } + + return $channels; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Weather.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Weather.php new file mode 100644 index 0000000000..7d4f85a19d --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Weather.php @@ -0,0 +1,149 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Weather + */ + +/** + * Detects and responds to requests for current weather conditions in a + * particular location using data from a web service. Requires registering + * with weather.com to obtain authentication credentials, which must be + * stored in the configuration settings weather.partner_id and + * weather.license_key for the plugin to function. + * + * @category Phergie + * @package Phergie_Plugin_Weather + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Weather + * @link http://www.weather.com/services/xmloap.html + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + * @uses Phergie_Plugin_Temperature pear.phergie.org + * @uses extension SimpleXML + */ +class Phergie_Plugin_Weather extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $plugins->getPlugin('Http'); + $plugins->getPlugin('Temperature'); + + if (empty($this->config['weather.partner_id']) + || empty($this->config['weather.license_key'])) { + $this->fail('weather.partner_id and weather.license_key must be specified'); + } + } + + /** + * Returns a weather report for a specified location. + * + * @param string $location Zip code or city/state/country specification + * + * @return void + */ + public function onCommandWeather($location) + { + $response = $this->plugins->http->get( + 'http://xoap.weather.com/search/search', + array('where' => $location) + ); + + if ($response->isError()) { + $this->doNotice( + $this->event->getNick(), + 'ERROR: ' . $response->getCode() . ' ' . $response->getMessage() + ); + return; + } + + $nick = $this->event->getNick(); + + $xml = $response->getContent(); + if (count($xml->loc) == 0) { + $this->doNotice($nick, 'No results for that location.'); + return; + } + + $where = (string) $xml->loc[0]['id']; + $response = $this->plugins->http->get( + 'http://xoap.weather.com/weather/local/' . $where, + array( + 'cc' => '*', + 'link' => 'xoap', + 'prod' => 'xoap', + 'par' => $this->config['weather.partner_id'], + 'key' => $this->config['weather.license_key'], + ) + ); + + if ($response->isError()) { + $this->doNotice( + $this->event->getNick(), + 'ERROR: ' . $response->getCode() . ' ' . $response->getMessage() + ); + return; + } + + $temperature = $this->plugins->getPlugin('Temperature'); + $xml = $response->getContent(); + $weather = 'Weather for ' . (string) $xml->loc->dnam . ' - '; + switch ($xml->head->ut) { + case 'F': + $tempF = $xml->cc->tmp; + $tempC = $temperature->convertFahrenheitToCelsius($tempF); + break; + case 'C': + $tempC = $xml->cc->tmp; + $tempF = $temperature->convertCelsiusToFahrenheit($tempC); + break; + default: + $this->doNotice( + $this->event->getNick(), + 'ERROR: No scale information given.'); + break; + } + $r = $xml->cc->hmid; + $hiF = $temperature->getHeatIndex($tempF, $r); + $hiC = $temperature->convertFahrenheitToCelsius($hiF); + $weather .= 'Temperature: ' . $tempF . 'F/' . $tempC . 'C'; + $weather .= ', Humidity: ' . (string) $xml->cc->hmid . '%'; + if ($hiF > $tempF || $hiC > $tempC) { + $weather .= ', Heat Index: ' . $hiF . 'F/' . $hiC . 'C'; + } + $weather .= + ', Conditions: ' . (string) $xml->cc->t . + ', Updated: ' . (string) $xml->cc->lsup . + ' [ http://weather.com/weather/today/' . + str_replace( + array('(', ')', ',', ' '), + array('', '', '', '+'), + (string) $xml->loc->dnam + ) . + ' ]'; + + $this->doPrivmsg($this->event->getSource(), $nick . ': ' . $weather); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine.php new file mode 100644 index 0000000000..9aa0845a6a --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine.php @@ -0,0 +1,69 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Wine + */ + +/** + * Processes requests to serve users wine. + * + * @category Phergie + * @package Phergie_Plugin_Wine + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Wine + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Serve pear.phergie.org + */ +class Phergie_Plugin_Wine extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->plugins; + $plugins->getPlugin('Command'); + $plugins->getPlugin('Serve'); + } + + /** + * Processes requests to serve a user a wine. + * + * @param string $request Request including the target and an optional + * suggestion of what wine to serve + * + * @return void + */ + public function onCommandWine($request) + { + $format = $this->getConfig( + 'wine.format', + 'serves %target% a glass of %item%.' + ); + + $this->plugins->getPlugin('Serve')->serve( + dirname(__FILE__) . '/Wine/wine.db', + 'wine', + $format, + $request + ); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine/db.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine/db.php new file mode 100644 index 0000000000..ce01c2d983 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Wine/db.php @@ -0,0 +1,53 @@ +exec('CREATE TABLE wine (name VARCHAR(255), link VARCHAR(255))'); +$db->exec('CREATE UNIQUE INDEX wine_name ON wine (name)'); +$insert = $db->prepare('INSERT INTO wine (name, link) VALUES (:name, :link)'); + +// Get and decompress lcboapi.com data set +$outer = __DIR__ . '/current.zip'; +if (!file_exists($outer)) { + echo 'Downloading lcboapi.com data set', PHP_EOL; + copy('http://lcboapi.com/download/current.zip', $outer); +} + +echo 'Decompressing lcboapi.com data set', PHP_EOL; +$zip = new ZipArchive; +$zip->open($outer); +$stat = $zip->statIndex(0); +$inner = __DIR__ . '/' . $stat['name']; +$zip->extractTo(__DIR__); +$zip->close(); +$zip = new ZipArchive; +$zip->open($inner); +$stat = $zip->statIndex(0); +$file = __DIR__ . '/' . $stat['name']; +$zip->extractTo(__DIR__); +$zip->close(); + +// Aggregate data set into the database +$lcbo = new PDO('sqlite:' . $file); +$result = $lcbo->query('SELECT product_no, name FROM products WHERE primary_category = "Wine"'); +$wines = $result->fetchAll(); +echo 'Processing lcboapi.com data - ', number_format(count($wines), 0), ' records', PHP_EOL; +$db->beginTransaction(); +foreach ($wines as $wine) { + $name = $wine['name']; + $link = 'http://lcboapi.com/products/' . $wine['product_no']; + $insert->execute(array($name, $link)); +} +$db->commit(); + +// Clean up +echo 'Cleaning up', PHP_EOL; +unset($lcbo); +unlink($outer); +unlink($inner); +unlink($file); diff --git a/plugins/Irc/extlib/phergie/Phergie/Plugin/Youtube.php b/plugins/Irc/extlib/phergie/Phergie/Plugin/Youtube.php new file mode 100644 index 0000000000..e06ea5640b --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Plugin/Youtube.php @@ -0,0 +1,168 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Youtube + */ + +/** + * Provides commands used to access several services offered by Google + * including search, translation, weather, maps, and currency and general + * value unit conversion. + * + * @category Phergie + * @package Phergie_Plugin_Youtube + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Plugin_Youtube + * @uses Phergie_Plugin_Command pear.phergie.org + * @uses Phergie_Plugin_Http pear.phergie.org + */ +class Phergie_Plugin_Youtube extends Phergie_Plugin_Abstract +{ + /** + * Checks for dependencies. + * + * @return void + */ + public function onLoad() + { + $plugins = $this->getPluginHandler(); + $plugins->getPlugin('Command'); + $plugins->getPlugin('Http'); + if ($url = $plugins->getPlugin('Url')) { + $url->registerRenderer($this); + } + } + + /** + * Queries the YouTube video search web service, processes the first + * result, and sends a message back to the current event source. + * + * @param string $query Search term + * + * @return object YouTube result object + */ + protected function queryYoutube($query) + { + $url = 'http://gdata.youtube.com/feeds/api/videos'; + $params = array( + 'max-results' => '1', + 'alt' => 'json', + 'q' => $query + ); + $http = $this->plugins->getPlugin('Http'); + $response = $http->get($url, $params); + $json = $response->getContent(); + + $entries = $json->feed->entry; + if (!$entries) { + $this->doNotice($this->event->getNick(), 'Query returned no results'); + return; + } + $entry = reset($entries); + + $nick = $this->event->getNick(); + $link = $entry->link[0]->href; + $title = $entry->title->{'$t'}; + $author = $entry->author[0]->name->{'$t'}; + $seconds = $entry->{'media$group'}->{'yt$duration'}->seconds; + $published = $entry->published->{'$t'}; + $views = $entry->{'yt$statistics'}->viewCount; + $rating = $entry->{'gd$rating'}->average; + + $minutes = floor($seconds / 60); + $seconds = str_pad($seconds % 60, 2, '0', STR_PAD_LEFT); + $parsed_link = parse_url($link); + parse_str($parsed_link['query'], $parsed_query); + $link = 'http://youtu.be/' . $parsed_query['v']; + $published = date('n/j/y g:i A', strtotime($published)); + $views = number_format($views, 0); + $rating = round($rating, 2); + + $format = $this->getConfig('youtube.format'); + if (!$format) { + $format = '%nick%:' + . ' [ %link% ]' + . ' "%title%" by %author%,' + . ' Length %minutes%:%seconds%,' + . ' Published %published%,' + . ' Views %views%,' + . ' Rating %rating%'; + } + + $replacements = array( + 'nick' => $nick, + 'link' => $link, + 'title' => $title, + 'author' => $author, + 'minutes' => $minutes, + 'seconds' => $seconds, + 'published' => $published, + 'views' => $views, + 'rating' => $rating + ); + + $msg = $format; + foreach ($replacements as $from => $to) { + $msg = str_replace('%' . $from . '%', $to, $msg); + } + $this->doPrivmsg($this->event->getSource(), $msg); + } + + /** + * Returns the first result of a YouTube search. + * + * @param string $query Search query + * + * @return void + */ + public function onCommandYoutube($query) + { + $this->queryYoutube($query); + } + + /** + * Renders YouTube URLs. + * + * @param array $parsed parse_url() output for the URL to render + * + * @return boolean TRUE if the URL was rendered successfully, FALSE + * otherwise + */ + public function renderUrl(array $parsed) + { + switch ($parsed['host']) { + case 'youtu.be': + $v = ltrim($parsed['path'], '/'); + break; + case 'youtube.com': + case 'www.youtube.com': + parse_str($parsed['query'], $parsed_query); + if (!empty($parsed_query['v'])) { + $v = $parsed_query['v']; + break; + } + default: + return false; + } + + $this->queryYoutube($v); + + return true; + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Process/Abstract.php b/plugins/Irc/extlib/phergie/Phergie/Process/Abstract.php new file mode 100755 index 0000000000..0ec3569feb --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Process/Abstract.php @@ -0,0 +1,130 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for obtaining and processing incoming events. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +abstract class Phergie_Process_Abstract +{ + /** + * Current driver instance + * + * @var Phergie_Driver_Abstract + */ + protected $driver; + + /** + * Current connection handler instance + * + * @var Phergie_Connection_Handler + */ + protected $connections; + + /** + * Current plugin handler instance + * + * @var Phergie_Plugin_Handler + */ + protected $plugins; + + /** + * Current event handler instance + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Current end-user interface instance + * + * @var Phergie_Ui_Abstract + */ + protected $ui; + + /** + * List of arguments for use within the instance + * + * @var array + */ + protected $options = array(); + + /** + * Gets the required class refences from Phergie_Bot. + * + * @param Phergie_Bot $bot Current bot instance in use + * @param array $options Optional processor arguments + * + * @return void + */ + public function __construct(Phergie_Bot $bot, array $options = array()) + { + $this->driver = $bot->getDriver(); + $this->plugins = $bot->getPluginHandler(); + $this->connections = $bot->getConnectionHandler(); + $this->events = $bot->getEventHandler(); + $this->ui = $bot->getUi(); + $this->options = $options; + } + + /** + * Sends resulting outgoing events from ealier processing in handleEvents. + * + * @param Phergie_Connection $connection Active connection + * + * @return void + */ + protected function processEvents(Phergie_Connection $connection) + { + $this->plugins->preDispatch(); + if (count($this->events)) { + foreach ($this->events as $event) { + $this->ui->onCommand($event, $connection); + + $method = 'do' . ucfirst(strtolower($event->getType())); + call_user_func_array( + array($this->driver, $method), + $event->getArguments() + ); + } + } + $this->plugins->postDispatch(); + + if ($this->events->hasEventOfType(Phergie_Event_Request::TYPE_QUIT)) { + $this->ui->onQuit($connection); + $this->connections->removeConnection($connection); + } + + $this->events->clearEvents(); + } + + /** + * Obtains and processes incoming events. + * + * @return void + */ + public abstract function handleEvents(); +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Process/Async.php b/plugins/Irc/extlib/phergie/Phergie/Process/Async.php new file mode 100644 index 0000000000..78d5959144 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Process/Async.php @@ -0,0 +1,157 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Connection data processor which polls to handle input in an + * asynchronous manner. Will also cause the application tick at + * the user-defined wait time. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Process_Async extends Phergie_Process_Abstract +{ + /** + * Length of time to poll for stream activity (seconds) + * + * @var int + */ + protected $sec = 0; + + /** + * Length of time to poll for stream activity (microseconds) + * + * @var int + */ + protected $usec = 200000; + + /** + * Length of time to wait between ticks. + * + * @var int + */ + protected $wait = 0; + + /** + * Records when the application last performed a tick + * + * @var int + */ + protected $lastTick = 0; + + /** + * Overrides the parent class to set the poll time. + * + * @param Phergie_Bot $bot Main bot class + * @param array $options Processor arguments + * + * @return void + */ + public function __construct(Phergie_Bot $bot, array $options) + { + if (!$bot->getDriver() instanceof Phergie_Driver_Streams) { + throw new Phergie_Process_Exception( + 'The Async event processor requires the Streams driver' + ); + } + + foreach (array('sec', 'usec') as $var) { + if (isset($options[$var])) { + if (!is_int($options[$var])) { + throw new Phergie_Process_Exception( + 'Processor option "' . $var . '" must be an integer' + ); + } + $this->$var = $options[$var]; + } + } + + if (!isset($this->sec) && !isset($this->usec)) { + throw new Phergie_Process_Exception( + 'One of the processor options "sec" or "usec" must be specified' + ); + } + + parent::__construct($bot, $options); + } + + /** + * Waits for stream activity and performs event processing on + * connections with data to read. + * + * @return void + */ + protected function handleEventsAsync() + { + $hostmasks = $this->driver->getActiveReadSockets($this->sec, $this->usec); + if (!$hostmasks) { + return; + } + $connections = $this->connections->getConnections($hostmasks); + foreach ($connections as $connection) { + $this->driver->setConnection($connection); + $this->plugins->setConnection($connection); + $this->plugins->onTick(); + + if ($event = $this->driver->getEvent()) { + $this->ui->onEvent($event, $connection); + $this->plugins->setEvent($event); + $this->plugins->preEvent(); + $this->plugins->{'on' . ucfirst($event->getType())}(); + } + + $this->processEvents($connection); + } + } + + /** + * Perform application tick event on all plugins and connections. + * + * @return void + */ + protected function doTick() + { + foreach ($this->connections as $connection) { + $this->plugins->setConnection($connection); + $this->plugins->onTick(); + $this->processEvents($connection); + } + } + + /** + * Obtains and processes incoming events, then sends resulting outgoing + * events. + * + * @return void + */ + public function handleEvents() + { + $time = time(); + if ($this->lastTick == 0 || ($this->lastTick + $this->wait <= $time)) { + $this->doTick(); + $this->lastTick = $time; + } + $this->handleEventsAsync(); + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Process/Exception.php b/plugins/Irc/extlib/phergie/Phergie/Process/Exception.php new file mode 100755 index 0000000000..f964443c66 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Process/Exception.php @@ -0,0 +1,33 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Exception related to event processor operations. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Process_Exception extends Phergie_Exception +{ +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Process/Standard.php b/plugins/Irc/extlib/phergie/Phergie/Process/Standard.php new file mode 100644 index 0000000000..24adbaf991 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Process/Standard.php @@ -0,0 +1,57 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Connection data processor which reads all connections looking + * for a response. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Process_Standard extends Phergie_Process_Abstract +{ + /** + * Obtains and processes incoming events, then sends resulting outgoing + * events. + * + * @return void + */ + public function handleEvents() + { + foreach ($this->connections as $connection) { + $this->driver->setConnection($connection); + $this->plugins->setConnection($connection); + $this->plugins->onTick(); + + if ($event = $this->driver->getEvent()) { + $this->ui->onEvent($event, $connection); + $this->plugins->setEvent($event); + $this->plugins->preEvent(); + $this->plugins->{'on' . ucfirst($event->getType())}(); + } + + $this->processEvents($connection); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/StatusnetBot.php b/plugins/Irc/extlib/phergie/Phergie/StatusnetBot.php new file mode 100644 index 0000000000..9c1b3a6f18 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/StatusnetBot.php @@ -0,0 +1,98 @@ +. + * + * Extends the bot class (Phergie_Bot) to allow connection and access to + * sockets and to allow StatusNet to 'drive' the bot + * + * @category Phergie + * @package Phergie_StatusnetBot + * @author Luke Fitzgerald + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class Phergie_StatusnetBot extends Phergie_Bot { + /** + * Set up bot and connect to servers + * + * @return void + */ + public function connect() { + $ui = $this->getUi(); + $ui->setEnabled($this->getConfig('ui.enabled')); + + $this->loadPlugins(); + $this->loadConnections(); + } + + /** + * Transmit raw command to server using driver + * + * Handles construction of command strings and their transmission to the + * server. + * + * @param string $command Command to send + * @param string|array $args Optional string or array of sequential + * arguments + * + * @return string Command string that was sent + * @throws Phergie_Driver_Exception + */ + public function send($command, $args = '') { + return $this->getDriver()->send($command, $args); + } + + /** + * Handle incoming data on the socket using the handleEvents + * method of the Processor + * + * @return void + */ + public function handleEvents() { + $this->getProcessor()->handleEvents(); + } + + /** + * Close the current connection and reconnect to the server + * + * @return void + */ + public function reconnect() { + $driver = $this->getDriver(); + $sockets = $driver->getSockets(); + + // Close any existing connections + try { + $driver->forceQuit(); + } catch (Phergie_Driver_Exception $e){} + try { + $driver->doConnect(); + } catch (Phergie_Driver_Exception $e){ + $driver->forceQuit(); + throw $e; + } + } + + /** + * Get the sockets used by the bot + * + * @return array Array of socket resources + */ + public function getSockets() { + return $this->getDriver()->getSockets(); + } +} \ No newline at end of file diff --git a/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/INSTALL b/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/INSTALL new file mode 100755 index 0000000000..dfc9857561 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/INSTALL @@ -0,0 +1,24 @@ +----------------------------------------------------------------------------- +-- About LogViewer +----------------------------------------------------------------------------- + +The purpose of this tool is to make an HTML display of the Logs made by the +Logging plugin for Phergie stored in SQLite database. + +----------------------------------------------------------------------------- +-- Installation +----------------------------------------------------------------------------- + +To install this, simply copy the contents of this directory into whatever +directory you want this to run under. + +----------------------------------------------------------------------------- +-- Configuration +----------------------------------------------------------------------------- + +The only configuration needed at this point in time is to edit the $database +variable in the top of the index.php to point to the appropriate Phergie +log file. + +Stuff may get more complicated in the future ;) But this is meant to be +simple for now. \ No newline at end of file diff --git a/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/index.php b/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/index.php new file mode 100755 index 0000000000..fc27fa2942 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Tools/LogViewer/index.php @@ -0,0 +1,368 @@ + + **/ +function show_channels(PDO $db) { + // Begin the HTML page: + template_header('Channels'); + echo "\nChannels:\n
    \n"; + + // Loop through the database reading in each channel, and echoing out a
  • for it. + // only grab actual channels that start with # ... also pre-lowercase everything. + // this allows us to 'deal' with variable caps in how the channels were logged. + $channels = $db->query(" + select distinct lower(chan) as c + from logs + where chan like '#%' + "); + foreach ($channels as $row) { + $html = utf8specialchars($row['c']); + $url = urlencode($row['c']); + echo "
  • {$html}
  • \n"; + } + + // Finish off the page: + echo "\n
\n"; + template_footer(); +} + +/** + * show_days + * + * Create a calendar view of all days available for this particular channel + * + * NOTE: May get unwieldy if large log files. Perhaps consider in the future + * making a paginated version of this? by year? Or a separate 'which year' page + * before this? Not to worry about now. + * + * @param PDO A PDO object referring to the database + * @return void + * @author Eli White + **/ +function show_days(PDO $db) { + $channel = $_GET['w']; + $url = urlencode($channel); + + // Begin the HTML page: + template_header('Daily Logs for Channel: ' . utf8specialchars($channel)); + echo "\n
    \n"; + + // Query the database to discover all days that are available for this channel: + $data = array(); + $prepared = $db->prepare(" + select distinct date(tstamp) as day + from logs + where lower(chan) = :chan + "); + $prepared->execute(array(':chan' => $channel)); + foreach ($prepared as $row) { + list($y, $m, $d) = explode('-', $row['day']); + $data[$y][$m][$d] = "{$y}-{$m}-{$d}"; + } + + // For now, just loop over them all and provide a list: + ksort($data); + foreach ($data as $year => $months) { + ksort($months); + foreach ($months as $month => $days) { + // Figure out a few facts about this month: + $stamp = mktime(0, 0, 0, $month, 1, $year); + $first_weekday = idate('w', $stamp); + $days_in_month = idate('t', $stamp); + $name = date('F', $stamp); + + // We have a month ... start a new table: + echo << + + + +EOTABLE; + // Now we need to start looping through the days in this month: + echo ''; + $rowmod = 0; + // Loop through all day entries, no matter how many blanks we need: + for ($d = (-$first_weekday + 1); $d < $days_in_month + 1; $d++) { + if (!($rowmod++ % 7)) { + // Stop/start a new row: + echo ''; + } + echo ''; + } + // Finish off any blanks needed for a complete table row: + while ($rowmod++ % 7) { + echo ''; + } + echo "
    {$name} {$year}
    SunMonTueWedThuFriSat
    '; + // If this day is pre or post actual month days, make it blank: + if (($d < 1) || ($d > $days_in_month)) { + echo ' '; + } elseif (isset($days[$d])) { + // Make a link to the day's log: + echo "{$d}"; + } else { + // Just a dead number: + echo $d; + } + echo ' 
\n"; + } + } + + // Finish off the page: + echo "\n\n"; + template_footer(); +} + +/** + * show_log + * + * Actually show the log for this specific day + * + * @param PDO A PDO object referring to the database + * @return void + * @author Eli White + **/ +function show_log(PDO $db) { + $channel = $_GET['w']; + $day = $_GET['d']; + $parts = explode('-', $day); + $formatted_date = "{$parts[0]}-{$parts[1]}-{$parts[2]}"; + + // Begin the HTML page: + template_header('Date: ' . utf8specialchars($formatted_date) . + ' - Channel: ' . utf8specialchars($channel)); + + // Query the database to get all log lines for this date: + $prepared = $db->prepare(" + select time(tstamp) as t, type, nick, message + from logs + where lower(chan) = :chan and date(tstamp) = :day + order by tstamp asc + "); + $prepared->execute(array( + ':chan' => $channel, + ':day' => $day, + )); + + // Loop through each line, + foreach ($prepared as $row) { + // Prepare some basic details for output: + $color = nick_color($row['nick']); + $time = utf8specialchars($row['t']); + $msg = utf8specialchars($row['message']); + $nick = utf8specialchars($row['nick']); + $type = false; + + // Now change the format of the line based upon the type: + switch ($row['type']) { + case 4: // PRIVMSG (A Regular Message) + echo "[$time] <{$nick}> {$msg}
\n"; + break; + case 5: // ACTION (emote) + echo "[$time] *{$nick} {$msg}
\n"; + break; + case 1: // JOIN + echo "[$time] -> {$nick} joined the room.
\n"; + break; + case 2: // PART (leaves channel) + echo "[$time] -> {$nick} left the room: {$msg}
\n"; + break; + case 3: // QUIT (quits the server) + echo "[$time] -> {$nick} left the server: {$msg}
\n"; + break; + case 6: // NICK (changes their nickname) + echo "[$time] -> {$nick} is now known as: {$msg}
\n"; + break; + case 7: // KICK (booted) + echo "[$time] -> {$nick} boots {$msg} from the room.
\n"; + break; + case 8: // MODE (changed their mode) + $type = 'MODE'; + case 9: // TOPIC (changed the topic) + $type = $type ? $type : 'TOPIC'; + echo "[$time] -> {$nick}: :{$type}: {$msg}
\n"; + } + } + + // Finish up the page: + template_footer(); +} + +/** + * nick_color + * + * Uses a silly little algorithm to pick a consistent but unique(ish) color for + * any given username. NOTE: Augment this in the future to make it not generate + * 'close to white' ones, also maybe to ensure uniqueness? (Not allow two to have + * colors that are close to each other?) + * + * @return string A CSS valid hex color string + * @author Eli White + **/ +function nick_color($user) { + static $colors = array(); + + if (!isset($colors[$user])) { + $colors[$user] = substr(md5($user), 0, 6); + } + + return $colors[$user]; +} + +/** + * utf8specialchars + * + * Just a quick wrapper around htmlspecialchars + * + * @param string The UTF8 string to escape + * @return string An escaped and ready for HTML use string + * @author Eli White + **/ +function utf8specialchars($string) { + return htmlspecialchars($string, ENT_COMPAT, 'UTF-8'); +} + + +/********** TEMPLATES **********/ + +/** + * template_header + * + * Echo out the header for each HTML page + * + * @param $title string The title to be used for this page. + * @return void + * @author Eli White + **/ +function template_header($title) { + $css = template_css(); + echo << + + + + Phergie LogViewer - {$title} + + + +

Phergie LogViewer - {$title}

+EOHTML; +} + +/** + * template_footer + * + * Echo out the bottom of each HTML page + * + * @return void + * @author Eli White + **/ +function template_footer() { + echo << + +EOHTML; +} + +/** + * template_css + * + * Generate the CSS used by these HTML pages & return it. + * + * @return string The CSS in question: + * @author Eli White + **/ +function template_css() { + return << + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * Base class for end-user interfaces. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +abstract class Phergie_Ui_Abstract +{ + /** + * Handler for when a server connection is attempted. + * + * @param string $host Server hostname + * + * @return void + */ + public function onConnect($host) + { + } + + /** + * Handler for when an attempt is made to load a plugin. + * + * @param string $plugin Short name of the plugin + * + * @return void + */ + public function onPluginLoad($plugin) + { + } + + /** + * Handler for when a plugin fails to load. + * + * @param string $plugin Short name of the plugin + * @param string $message Message describing the reason for the failure + * + * @return void + */ + public function onPluginFailure($plugin, $message) + { + } + + /** + * Handler for when the bot receives an IRC event. + * + * @param Phergie_Event_Abstract $event Received event + * @param Phergie_Connection $connection Connection on which the event + * was received + * + * @return void + */ + public function onEvent(Phergie_Event_Abstract $event, + Phergie_Connection $connection + ) { + } + + /** + * Handler for when the bot sends a command to a server. + * + * @param Phergie_Event_Command $event Event representing the command + * being sent + * @param Phergie_Connection $connection Connection on which the command + * is being sent + * + * @return void + */ + public function onCommand(Phergie_Event_Command $event, + Phergie_Connection $connection + ) { + } + + /** + * Handler for when the bot terminates a connection to a server. + * + * @param Phergie_Connection $connection Terminated connection + * + * @return void + */ + public function onQuit(Phergie_Connection $connection) + { + } + + /** + * Handler for when the bot shuts down after terminating all server + * connections. + * + * @return void + */ + public function onShutdown() + { + } +} diff --git a/plugins/Irc/extlib/phergie/Phergie/Ui/Console.php b/plugins/Irc/extlib/phergie/Phergie/Ui/Console.php new file mode 100644 index 0000000000..a0a528b3f2 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Phergie/Ui/Console.php @@ -0,0 +1,223 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * End-user interface that produces console output when running the bot from + * a shell. + * + * @category Phergie + * @package Phergie + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ +class Phergie_Ui_Console extends Phergie_Ui_Abstract +{ + /** + * Flag that toggles all console output + * + * @var bool + */ + protected $enabled; + + /** + * Format for timestamps included in console output + * + * @var string + * @link http://php.net/date + */ + protected $format; + + /** + * Constructor to initialize object properties. + * + * @return void + */ + public function __construct() + { + $this->enabled = true; + $this->format = 'H:i:s'; + } + + /** + * Outputs a timestamped line to the console if console output is enabled. + * + * @param string $line Line to output + * + * @return void + */ + protected function console($line) + { + if ($this->enabled) { + echo date($this->format), ' ', $line, PHP_EOL; + } + } + + /** + * Returns whether console output is enabled. + * + * @return bool TRUE if console output is enabled, FALSE otherwise + */ + public function isEnabled() + { + return $this->enabled; + } + + /** + * Sets whether console output is enabled. + * + * @param bool $enabled TRUE to enable console output, FALSE otherwise, + * defaults to TRUE + * + * @return Phergie_Ui_Console Provides a fluent interface + */ + public function setEnabled($enabled = true) + { + $this->enabled = (bool) $enabled; + return $this; + } + + /** + * Returns the format used for timestamps in console output. + * + * @return string + * @link http://php.net/date + */ + public function getFormat() + { + return $this->format; + } + + /** + * Sets the format used for timestamps in console output, overwriting + * any previous format used. + * + * @param string $format Timestamp format + * + * @return Phergie_Ui_Console Provides a fluent interface + * @link http://php.net/date + */ + public function setFormat($format) + { + $this->format = (string) $format; + return $this; + } + + /** + * Outputs a prompt when a server connection is attempted. + * + * @param string $host Server hostname + * + * @return void + */ + public function onConnect($host) + { + $this->console('Connecting to ' . $host); + } + + /** + * Outputs a prompt when a plugin is loaded successfully. + * + * @param string $plugin Short name of the plugin + * + * @return void + */ + public function onPluginLoad($plugin) + { + $this->console('Loaded plugin ' . $plugin); + } + + /** + * Outputs a prompt when a plugin fails to load. + * + * @param string $plugin Short name of the plugin + * @param string $message Message describing the reason for the failure + * + * @return void + */ + public function onPluginFailure($plugin, $message) + { + $this->console('Unable to load plugin ' . $plugin . ' - ' . $message); + } + + /** + * Outputs a prompt when the bot receives an IRC event. + * + * @param Phergie_Event_Abstract $event Received event + * @param Phergie_Connection $connection Connection on which the + * event was received + * + * @return void + */ + public function onEvent(Phergie_Event_Abstract $event, + Phergie_Connection $connection + ) { + $host = $connection->getHostmask()->getHost(); + $this->console($host . ' <- ' . $event->getRawData()); + } + + /** + * Outputs a prompt when the bot sends a command to a server. + * + * @param Phergie_Event_Command $event Event representing the + * command being sent + * @param Phergie_Connection $connection Connection on which the + * command is being sent + * + * @return void + */ + public function onCommand(Phergie_Event_Command $event, + Phergie_Connection $connection + ) { + $plugin = $event->getPlugin()->getName(); + $host = $connection->getHostmask()->getHost(); + $type = strtoupper($event->getType()); + $args = implode(' ', $event->getArguments()); + $this->console( + $plugin . ' plugin: ' . + $host . ' -> ' . $type . ' ' . $args + ); + } + + /** + * Outputs a prompt when the bot terminates a connection to a server. + * + * @param Phergie_Connection $connection Terminated connection + * + * @return void + */ + public function onQuit(Phergie_Connection $connection) + { + $host = $connection->getHostmask()->getHost(); + $this->console('Disconnecting from ' . $host); + } + + /** + * Outputs a prompt when the bot shuts down after terminating all server + * connections. + * + * @return void + */ + public function onShutdown() + { + $this->console('Shutting down'); + } +} diff --git a/plugins/Irc/extlib/phergie/PhergiePackageTask.php b/plugins/Irc/extlib/phergie/PhergiePackageTask.php new file mode 100644 index 0000000000..dfc760a16d --- /dev/null +++ b/plugins/Irc/extlib/phergie/PhergiePackageTask.php @@ -0,0 +1,110 @@ +pkg->addMaintainer('lead', 'team', 'Phergie Development Team', 'team@phergie.org'); + + $path = str_replace('_', '/', $this->package) . '.php'; + if (file_exists($path)) { + $contents = file_get_contents($path); + preg_match_all('#/\*\*(.*)\*/#Ums', $contents, $matches, PREG_SET_ORDER); + $doc = $matches[1][1]; + + $have_summary = false; + $have_description = false; + foreach ($this->options as $option) { + switch ($option->getName()) { + case 'summary': + $have_summary = true; + break; + case 'description': + $have_descripion = true; + break; + } + } + + if (!$have_summary || !$have_description) { + $description = substr($doc, 0, strpos($doc, '@')); + $description = trim(preg_replace(array('#^[\h*]*|[\h*]*$#m', '#[\h]+#m'), array('', ' '), $description)); + $split = preg_split('/\v\v+/', $description); + $summary = trim(array_shift($split)); + if (!$have_summary) { + $this->pkg->setSummary(htmlentities($summary, ENT_QUOTES)); + } + if (!$have_description) { + $this->pkg->setDescription(htmlentities($description, ENT_QUOTES)); + } + } + + $doc = preg_split('/\v+/', $doc); + $doc = preg_grep('/@uses/', $doc); + $doc = preg_replace('/\s*\* @uses\s+|\s+$/', '', $doc); + foreach ($doc as $line) { + if (strpos($line, 'extension') === 0) { + $line = explode(' ', $line); + $name = $line[1]; + $optional = 'required'; + if (isset($line[2])) { + $optional = $line[2]; + } + $this->pkg->addExtensionDep( + $optional, + $name + ); + } else { + $line = explode(' ', $line); + $name = $line[0]; + $channel = $line[1]; + $optional = 'required'; + if (isset($line[2])) { + $optional = $line[2]; + } + $this->pkg->addPackageDepWithChannel( + $optional, + $name, + $channel + ); + } + } + } + + $newmap = array(); + foreach ($this->mappings as $key => $map) { + switch ($map->getName()) { + case 'releases': + $releases = $map->getValue(); + foreach ($releases as $release) { + $this->pkg->addRelease(); + if (isset($release['installconditions'])) { + if (isset($release['installconditions']['os'])) { + $this->pkg->setOsInstallCondition($release['installconditions']['os']); + } + } + if (isset($release['filelist'])) { + if (isset($release['filelist']['install'])) { + foreach ($release['filelist']['install'] as $file => $as) { + $this->pkg->addInstallAs($file, $as); + } + } + if (isset($release['filelist']['ignore'])) { + foreach ($release['filelist']['ignore'] as $file) { + $this->pkg->addIgnoreToRelease($file); + } + } + } + } + break; + + default: + $newmap[] = $map; + } + } + $this->mappings = $newmap; + + parent::setOptions(); + } +} diff --git a/plugins/Irc/extlib/phergie/README b/plugins/Irc/extlib/phergie/README new file mode 100644 index 0000000000..d97ce05242 --- /dev/null +++ b/plugins/Irc/extlib/phergie/README @@ -0,0 +1,11 @@ +Phergie is an IRC bot written for PHP 5.2. + +Main project web site: http://phergie.org + +Instructions for running your own instance of Phergie: http://phergie.org/users/ + +Architectural overview for plugin developers: http://phergie.org/developers/ + +Support: http://phergie.org/support/ + +Bug reports/feature requests: http://github.com/elazar/phergie/issues diff --git a/plugins/Irc/extlib/phergie/Settings.php.dist b/plugins/Irc/extlib/phergie/Settings.php.dist new file mode 100755 index 0000000000..87b4a95c68 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Settings.php.dist @@ -0,0 +1,98 @@ + array( + // Ex: All connection info for the Freenode network + array( + 'host' => 'irc.freenode.net', + 'port' => 6667, + 'username' => 'Elazar', + 'realname' => 'Matthew Turland', + 'nick' => 'Phergie2', + // 'password' => 'password goes here if needed', + // 'transport' => 'ssl', // uncomment to connect using SSL + // 'encoding' => 'UTF8', // uncomment if using UTF8 + ) + ), + + 'processor' => 'async', + 'processor.options' => array('usec' => 200000), + // Time zone. See: http://www.php.net/manual/en/timezones.php + 'timezone' => 'UTC', + + // Whitelist of plugins to load + 'plugins' => array( + // To enable a plugin, simply add a string to this array containing + // the short name of the plugin as shown below. + + // 'ShortPluginName', + + // Below is an example of enabling the AutoJoin plugin, for which + // the corresponding PEAR package is Phergie_Plugin_AutoJoin. This + // plugin allows you to set a list of channels in this configuration + // file that the bot will automatically join when it connects to a + // server. If you'd like to enable this plugin, simply install it, + // uncomment the line below, and set a value for the setting + // autojoin.channels (examples for which are located further down in + // this file). + + // 'AutoJoin', + + // A few other recommended plugins: + + // Servers randomly send PING events to clients to ensure that + // they're still connected and will eventually terminate the + + // connection if a PONG response is not received. The Pong plugin + // handles sending these responses. + + // 'Pong', + + // It's sometimes difficult to distinguish between a lack of + // activity on a server and the client not receiving data even + // though a connection remains open. The Ping plugin performs a self + // CTCP PING sporadically to ensure that its connection is still + // functioning and, if not, terminates the bot. + + // 'Ping', + + // Sometimes it's desirable to have the bot disconnect gracefully + // when issued a command to do so via a PRIVMSG event. The Quit + // plugin implements this using the Command plugin to intercept the + // command. + + // 'Quit', + ), + + // If set to true, this allows any plugin dependencies for plugins + // listed in the 'plugins' option to be loaded even if they are not + // explicitly included in that list + 'plugins.autoload' => true, + + // Enables shell output describing bot events via Phergie_Ui_Console + 'ui.enabled' => true, + + // Examples of supported values for autojoins.channel: + // 'autojoin.channels' => '#channel1,#channel2', + // 'autojoin.channels' => array('#channel1', '#channel2'), + // 'autojoin.channels' => array( + // 'host1' => '#channel1,#channel2', + // 'host2' => array('#channel3', '#channel4') + // ), + + // Examples of setting values for Ping plugin settings + + // This is the amount of time in seconds that the Ping plugin will wait + // to receive an event from the server before it initiates a self-ping + + // 'ping.event' => 300, // 5 minutes + + // This is the amount of time in seconds that the Ping plugin will wait + // following a self-ping attempt before it assumes that a response will + // never be received and terminates the connection + + // 'ping.ping' => 10, // 10 seconds + +); diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/ConnectionTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/ConnectionTest.php new file mode 100644 index 0000000000..ba94cd0ea6 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/ConnectionTest.php @@ -0,0 +1,262 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Connection. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_ConnectionTest extends PHPUnit_Framework_TestCase +{ + /** + * Associative array containing an option-to-value mapping + * + * @var array + */ + private $options = array( + 'host' => 'example.com', + 'port' => 4080, + 'transport' => 'udp', + 'encoding' => 'ASCII', + 'nick' => 'MyNick', + 'username' => 'MyUsername', + 'realname' => 'MyRealName', + 'password' => 'MyPassword', + ); + + /** + * Data provider for testGetOptionReturnsDefault(). + * + * @return array Enumerated array of enumerated arrays each containing a + * set of parameters for a single call to + * testGetOptionReturnsDefault() + */ + public function dataProviderTestGetOptionReturnsDefault() + { + return array( + array('transport', 'tcp'), + array('encoding', 'ISO-8859-1'), + array('port', 6667), + array('password', null), + ); + } + + /** + * Tests that a default values are used for some options. + * + * @param string $option Name of the option with a default value + * @param mixed $value Default value of the option + * + * @return void + * @dataProvider dataProviderTestGetOptionReturnsDefault + */ + public function testGetOptionReturnsDefault($option, $value) + { + $connection = new Phergie_Connection; + $this->assertEquals($value, $connection->{'get' . ucfirst($option)}()); + } + + /** + * Tests that a default encoding is used if one isn't specified. + * + * @return void + */ + public function testGetEncodingReturnsDefault() + { + $connection = new Phergie_Connection; + $this->assertEquals('ISO-8859-1', $connection->getEncoding()); + } + + /** + * Tests that options can be set via the constructor. + * + * @return void + */ + public function testSetOptionsViaConstructor() + { + $connection = new Phergie_Connection($this->options); + foreach ($this->options as $key => $value) { + $this->assertEquals($value, $connection->{'get' . ucfirst($key)}()); + } + } + + /** + * Data provider for testGetHostmaskMissingDataGeneratesException(). + * + * @return array Enumerated array of enumerated arrays each containing a + * set of parameters for a single call to + * testGetHostmaskMissingDataGeneratesException() + */ + public function dataProviderTestGetHostmaskMissingDataGeneratesException() + { + return array( + array(null, $this->options['username'], $this->options['host']), + array($this->options['nick'], null, $this->options['host']), + array($this->options['nick'], $this->options['username'], null), + ); + } + + /** + * Tests that attempting to retrieve a hostmask without option values + * for all of its constituents generates an exception. + * + * @param string $nick Bot nick + * @param string $username Bot username + * @param string $host Server hostname + * + * @return void + * @dataProvider dataProviderTestGetHostmaskMissingDataGeneratesException + */ + public function testGetHostmaskMissingDataGeneratesException($nick, $username, $host) + { + $options = array( + 'nick' => $nick, + 'username' => $username, + 'host' => $host, + ); + + $connection = new Phergie_Connection($options); + + try { + $hostmask = $connection->getHostmask(); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Connection_Exception $e) { + return; + } catch (Exception $e) { + $this->fail('Unexpected exception was thrown'); + } + } + + /** + * Tests that attempting to retrieve a hostmask with all required + * options is successful. + * + * @return void + */ + public function testGetHostmaskWithValidData() + { + $options = array( + 'nick' => 'MyNick', + 'username' => 'MyUsername', + 'host' => 'example.com' + ); + + $connection = new Phergie_Connection($options); + $hostmask = $connection->getHostmask(); + $this->assertType('Phergie_Hostmask', $hostmask); + } + + /** + * Data provider for testGetRequiredOptionsWithoutValuesSet(). + * + * @return array Enumerated array of enumerated arrays each containing a + * set of parameters for a single call to + * testGetRequiredOptionsWithoutValuesSet() + */ + public function dataProviderTestGetRequiredOptionsWithoutValuesSet() + { + return array( + array('host'), + array('nick'), + array('username'), + array('realname'), + ); + } + + /** + * Tests that attempting to retrieve values of required options when no + * values are set results in an exception. + * + * @param string $option Option name + * + * @return void + * @dataProvider dataProviderTestGetRequiredOptionsWithoutValuesSet + */ + public function testGetRequiredOptionsWithoutValuesSet($option) + { + try { + $connection = new Phergie_Connection; + $value = $connection->{'get' . ucfirst($option)}(); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Connection_Exception $e) { + return; + } catch (Exception $e) { + $this->fail('Unexpected exception was thrown'); + } + } + + /** + * Tests that attempting to set an invalid value for the transport + * results in an exception. + * + * @return void + */ + public function testSetTransportWithInvalidValue() + { + $connection = new Phergie_Connection; + try { + $connection->setTransport('blah'); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Connection_Exception $e) { + return; + } catch (Exception $e) { + $this->fail('Unexpected exception was thrown'); + } + } + + /** + * Tests that attempting to set an invalid value for the encoding + * results in an exception. + * + * @return void + */ + public function testSetEncodingWithInvalidValue() + { + $connection = new Phergie_Connection; + try { + $connection->setEncoding('blah'); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Connection_Exception $e) { + return; + } catch (Exception $e) { + $this->fail('Unexpected exception was thrown'); + } + } + + /** + * Tests that options can be set collectively after the connection is + * instantiated. + * + * @return void + */ + public function testSetOptions() + { + $connection = new Phergie_Connection; + $connection->setOptions($this->options); + foreach ($this->options as $key => $value) { + $this->assertEquals($value, $connection->{'get' . ucfirst($key)}()); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/HandlerTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/HandlerTest.php new file mode 100644 index 0000000000..9ecdd327ae --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/HandlerTest.php @@ -0,0 +1,837 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_Handler. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_HandlerTest extends PHPUnit_Framework_TestCase +{ + /** + * Plugin handler instance being tested + * + * @var Phergie_Plugin_Handler + */ + protected $handler; + + /** + * Mock Phergie_Config instance passed to the plugin handler constructor + * + * @var Phergie_Config + */ + protected $config; + + /** + * Mock Phergie_Event_Handler instance passed to the plugin handler + * constructor + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Returns a mock plugin instance. + * + * @param string $name Optional short name for the mock plugin, defaults + * to 'TestPlugin' + * @param array $methods Optional list of methods to override + * + * @return Phergie_Plugin_Abstract + */ + protected function getMockPlugin($name = 'TestPlugin', array $methods = array()) + { + $methods[] = 'getName'; + $plugin = $this->getMock('Phergie_Plugin_Abstract', $methods); + $plugin + ->expects($this->any()) + ->method('getName') + ->will($this->returnValue($name)); + return $plugin; + } + + /** + * Sets up a new handler instance before each test. + * + * @return void + */ + public function setUp() + { + $this->config = $this->getMock('Phergie_Config'); + $this->events = $this->getMock('Phergie_Event_Handler'); + $this->handler = new Phergie_Plugin_Handler( + $this->config, + $this->events + ); + } + + /** + * Tests iterability of the plugin handler. + * + * @return void + */ + public function testImplementsIteratorAggregate() + { + $reflection = new ReflectionObject($this->handler); + + $this->assertTrue( + $reflection->implementsInterface('IteratorAggregate'), + 'Handler does not implement IteratorAggregate' + ); + + $this->assertType( + 'Iterator', + $this->handler->getIterator(), + 'getIterator() must return an iterator' + ); + } + + /** + * Tests that a default iterator is returned if none is explicitly set. + * + * @return void + */ + public function testGetIteratorReturnsDefault() + { + $this->assertType( + 'Phergie_Plugin_Iterator', + $this->handler->getIterator() + ); + } + + /** + * Tests the ability to change the handler's iterator class when a valid + * class is specified. + * + * @return void + */ + public function testSetIteratorClassWithValidClass() + { + eval(' + class DummyIterator extends FilterIterator { + public function accept() { + return true; + } + } + '); + + $this->handler->setIteratorClass('DummyIterator'); + + $this->assertType( + 'DummyIterator', + $this->handler->getIterator() + ); + } + + /** + * Tests that a failure occurs when a nonexistent iterator class is + * specified. + * + * @return void + */ + public function testSetIteratorClassWithNonexistentClass() + { + try { + $this->handler->setIteratorClass('FooIterator'); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Plugin_Exception $e) { + return; + } + $this->fail('Unexpected exception was thrown'); + } + + /** + * Tests that a failure occurs when a class that is not a subclass of + * FilterIterator is specified. + * + * @return void + */ + public function testSetIteratorClassWithNonFilterIteratorClass() + { + try { + $this->handler->setIteratorClass('ArrayIterator'); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Plugin_Exception $e) { + return; + } + $this->fail('Unexpected exception was thrown'); + } + + /** + * Tests countability of the plugin handler. + * + * @return void + */ + public function testImplementsCountable() + { + $reflection = new ReflectionObject($this->handler); + + $this->assertTrue( + $reflection->implementsInterface('Countable'), + 'Handler does not implement Countable' + ); + + $this->assertType( + 'int', + count($this->handler), + 'count() must return an integer' + ); + } + + /** + * Tests the plugin handler exposing added plugins as instance + * properties of the handler via isset(). + * + * @return void + */ + public function testImplementsIsset() + { + $pluginName = 'TestPlugin'; + $this->assertFalse(isset($this->handler->{$pluginName})); + $plugin = $this->getMockPlugin($pluginName); + $this->handler->addPlugin($plugin); + $this->assertTrue(isset($this->handler->{$pluginName})); + } + + /** + * Tests the plugin handler exposing added plugins as instance + * properties of the handler. + * + * @depends testImplementsIsset + * @return void + */ + public function testImplementsGet() + { + $plugin = $this->getMockPlugin(); + $this->handler->addPlugin($plugin); + $name = $plugin->getName(); + $getPlugin = $this->handler->getPlugin($name); + $this->assertTrue(isset($this->handler->$name)); + $get = $this->handler->$name; + $this->assertSame($getPlugin, $get); + } + + /** + * Tests the plugin handler allowing for plugin removal via unset(). + * + * @depends testImplementsGet + * @return void + */ + public function testImplementsUnset() + { + $plugin = $this->getMockPlugin(); + $this->handler->addPlugin($plugin); + unset($this->handler->{$plugin->getName()}); + $this->assertFalse($this->handler->hasPlugin($plugin->getName())); + } + + /** + * Tests the plugin handler executing a callback on all contained + * plugins. + * + * @return void + */ + public function testImplementsCall() + { + foreach (range(1, 2) as $index) { + $plugin = $this->getMockPlugin('TestPlugin' . $index, array('callback')); + $plugin + ->expects($this->once()) + ->method('callback'); + $this->handler->addPlugin($plugin); + } + + $this->assertTrue($this->handler->callback()); + } + + /** + * Tests a newly instantiated handler not having plugins associated with + * it. + * + * @depends testImplementsCountable + * @return void + */ + public function testEmptyHandlerHasNoPlugins() + { + $this->assertEquals(0, count($this->handler)); + } + + /** + * Tests a newly instantiated handler not having autoloading enabled by + * default. + * + * @return void + */ + public function testGetAutoloadDefaultsToNotAutoload() + { + $this->assertFalse($this->handler->getAutoload()); + } + + /** + * Tests setAutoload(). + * + * @depends testGetAutoloadDefaultsToNotAutoload + * @return void + */ + public function testSetAutoload() + { + $this->assertSame( + $this->handler->setAutoload(true), + $this->handler, + 'setAutoload() does not provide a fluent interface' + ); + + $this->assertTrue( + $this->handler->getAutoload(), + 'setAutoload() had no effect on getAutoload()' + ); + } + + /** + * Tests addPath() providing a fluent interface. + * + * @return void + */ + public function testAddPathProvidesFluentInterface() + { + $handler = $this->handler->addPath(dirname(__FILE__)); + $this->assertSame($this->handler, $handler); + } + + /** + * Tests addPath() throwing an exception when it cannot read the + * directory. + * + * @return void + */ + public function testAddPathThrowsExceptionOnUnreadableDirectory() + { + try { + $this->handler->addPath('/an/unreadable/directory/path'); + } catch(Phergie_Plugin_Exception $e) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_DIRECTORY_NOT_READABLE, + $e->getCode() + ); + return; + } + + $this->fail('An expected exception has not been raised'); + } + + /** + * Tests adding a path to the plugin handler. + * + * @return void + */ + public function testAddPath() + { + $pluginName = 'Mock'; + + try { + $this->handler->addPlugin($pluginName); + } catch(Phergie_Plugin_Exception $e) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND, + $e->getCode() + ); + } + + if (!isset($e)) { + $this->fail('Plugin loaded, path was already present'); + } + + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + + try { + $this->handler->addPlugin($pluginName); + } catch(Phergie_Plugin_Exception $e) { + $this->fail('Added path, plugin still not found'); + } + } + + /** + * Tests addPlugin() returning an added plugin instance. + * + * @return void + */ + public function testAddPluginByInstanceReturnsPluginInstance() + { + $plugin = $this->getMockPlugin(); + $returnedPlugin = $this->handler->addPlugin($plugin); + $this->assertSame( + $returnedPlugin, + $plugin, + 'addPlugin() does not return the instance passed to it' + ); + } + + /** + * Tests adding a plugin to the handler using the plugin's short name. + * + * @return void + */ + public function testAddPluginByShortName() + { + $pluginName = 'Mock'; + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + + $returnedPlugin = $this->handler->addPlugin($pluginName); + $this->assertTrue($this->handler->hasPlugin($pluginName)); + + $this->assertType( + 'Phergie_Plugin_Mock', + $this->handler->getPlugin($pluginName) + ); + + $this->assertSame( + $this->handler->getPlugin($pluginName), + $returnedPlugin, + 'Handler does not contain added plugin' + ); + } + + + /** + * Tests adding a plugin instance to the handler. + * + * @return void + */ + public function testAddPluginByInstance() + { + $plugin = $this->getMockPlugin(); + $returnedPlugin = $this->handler->addPlugin($plugin); + $this->assertTrue($this->handler->hasPlugin('TestPlugin')); + + $this->assertSame( + $plugin, + $returnedPlugin, + 'addPlugin() does not return added plugin instance' + ); + + $this->assertSame( + $plugin, + $this->handler->getPlugin('TestPlugin'), + 'getPlugin() does not return added plugin instance' + ); + } + + /** + * Tests addPlugin() throwing an exception when the plugin class file + * can't be found. + * + * @return void + */ + public function testAddPluginThrowsExceptionWhenPluginFileNotFound() + { + try { + $this->handler->addPlugin('TestPlugin'); + } catch(Phergie_Plugin_Exception $e) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND, + $e->getCode() + ); + return; + } + + $this->fail('An expected exception has not been raised'); + } + + /** + * Recursively removes all files and subdirectories in a directory. + * + * @param string $path Directory path + * @return void + */ + private function removeDirectory($path) + { + if (file_exists($path)) { + $it = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($path), + RecursiveIteratorIterator::CHILD_FIRST + ); + foreach ($it as $entry) { + if ($it->isDot()) { + continue; + } + if ($entry->isDir()) { + rmdir($entry->getPathname()); + } else { + unlink($entry->getPathname()); + } + } + } + } + + /** + * Tests addPlugin() throwing an exception when the plugin class file is + * found, but does not contain the plugin class as expected. + * + * @return void + */ + public function testAddPluginThrowsExceptionWhenPluginClassNotFound() + { + $path = sys_get_temp_dir() . '/Phergie/Plugin'; + $this->removeDirectory(dirname($path)); + mkdir($path, 0777, true); + touch($path . '/TestPlugin.php'); + $this->handler->addPath($path, 'Phergie_Plugin_'); + + try { + $this->handler->addPlugin('TestPlugin'); + } catch(Phergie_Plugin_Exception $e) { } + + if (isset($e)) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_CLASS_NOT_FOUND, + $e->getCode() + ); + } else { + $this->fail('An expected exception has not been raised'); + } + + $this->removeDirectory(dirname($path)); + } + + /** + * Tests addPlugin() throwing an exception when trying to instantiate a + * class that doesn't extend Phergie_Plugin_Abstract. + * + * @return void + */ + public function testAddPluginThrowsExceptionIfRequestingNonPlugin() + { + try { + $this->handler->addPlugin('Handler'); + } catch(Phergie_Plugin_Exception $e) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_INCORRECT_BASE_CLASS, + $e->getCode() + ); + return; + } + + $this->fail('An expected exception has not been raised'); + } + + /** + * Tests addPlugin() throwing an exception when trying to instantiate a + * class that can't be instantiated. + * + * @return void + */ + public function testAddPluginThrowsExceptionIfPluginNotInstantiable() + { + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + try { + $this->handler->addPlugin('TestNonInstantiablePluginFromFile'); + } catch(Phergie_Plugin_Exception $e) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_CLASS_NOT_INSTANTIABLE, + $e->getCode() + ); + return; + } + + $this->fail('An expected exception has not been raised'); + } + + /** + * Tests adding a plugin by its short name with arguments passed to the + * plugin constructor. + * + * @return void + */ + public function testAddPluginShortNamePassesArgsToConstructor() + { + $pluginName = 'Mock'; + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + + $arguments = array('a', 'b', 'c'); + $plugin = $this->handler->addPlugin($pluginName, $arguments); + + $this->assertAttributeSame( + $arguments, + 'arguments', + $plugin, + 'Arguments do not match' + ); + } + + /** + * Tests addPlugin() passing Phergie_Config to an instantiated plugin. + * + * @return void + */ + public function testAddPluginPassesConstructorArguments() + { + $pluginName = 'Mock'; + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + $plugin = $this->handler->addPlugin($pluginName); + + $this->assertSame( + $this->config, + $plugin->getConfig(), + 'Phergie_Config instances do not match' + ); + + $this->assertSame( + $this->events, + $plugin->getEventHandler(), + 'Phergie_Event_Handler instances do not match' + ); + } + + /** + * Tests addPlugin() calling onLoad() on an instantiated plugin. + * + * @return void + */ + public function testAddPluginCallsOnLoadOnInstantiatedPlugin() + { + $plugin = $this->getMockPlugin(null, array('onLoad')); + $plugin + ->expects($this->once()) + ->method('onLoad'); + $this->handler->addPlugin($plugin); + } + + /** + * Tests addPlugin() returning the same plugin when called twice. + * + * @return void + */ + public function testAddPluginReturnsSamePluginWhenAskedTwice() + { + $pluginName = 'Mock'; + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + $plugin1 = $this->handler->addPlugin($pluginName); + $plugin2 = $this->handler->addPlugin($pluginName); + $this->assertSame($plugin1, $plugin2); + } + + /** + * Tests getPlugin() throwing an exception when trying to get an + * unloaded plugin with autoload disabled. + * + * @depends testGetAutoloadDefaultsToNotAutoload + * @return void + */ + public function testExceptionThrownWhenLoadingPluginWithoutAutoload() + { + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + + try { + $this->handler->getPlugin('Mock'); + } catch (Phergie_Plugin_Exception $expected) { + $this->assertEquals( + Phergie_Plugin_Exception::ERR_PLUGIN_NOT_LOADED, + $expected->getCode() + ); + return; + } + + $this->fail('An expected exception has not been raised'); + } + + /** + * Tests addPlugins() with a plugin short name and no plugin constructor + * arguments. + * + * @depends testAddPluginByShortName + * @depends testAddPluginByInstance + * @return void + */ + public function testAddPluginsWithoutArguments() + { + $prefix = 'Phergie_Plugin_'; + $this->handler->addPath(dirname(__FILE__), $prefix); + + $plugin = 'Mock'; + $this->handler->addPlugins(array($plugin)); + $returnedPlugin = $this->handler->getPlugin($plugin); + $this->assertContains( + get_class($returnedPlugin), + $prefix . $plugin, + 'Short name plugin not of expected class' + ); + } + + /** + * Tests addPlugins() with a plugin short name and plugin constructor + * arguments. + * + * @depends testAddPluginByShortName + * @depends testAddPluginByInstance + * @return void + */ + public function testAddPluginsWithArguments() + { + $prefix = 'Phergie_Plugin_'; + $this->handler->addPath(dirname(__FILE__), $prefix); + + $arguments = array(1, 2, 3); + $plugin = array('Mock', $arguments); + $this->handler->addPlugins(array($plugin)); + $returnedPlugin = $this->handler->getPlugin('Mock'); + $this->assertEquals( + $arguments, + $returnedPlugin->getArguments(), + 'Constructor arguments for instance plugin do not match' + ); + } + + /** + * Tests removePlugin() with a plugin instance. + * + * @depends testAddPluginByInstance + * @return void + */ + public function testRemovePluginByInstance() + { + $plugin = $this->getMockPlugin(); + $this->handler->addPlugin($plugin); + $this->handler->removePlugin($plugin); + $this->assertFalse( + $this->handler->hasPlugin($plugin->getName()), + 'Plugin was not removed' + ); + } + + /** + * Tests removePlugin() with a plugin short name. + * + * @depends testAddPluginByShortName + * @return void + */ + public function testRemovePluginByShortName() + { + $plugin = 'Mock'; + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + + $this->handler->addPlugin($plugin); + $this->handler->removePlugin($plugin); + $this->assertFalse( + $this->handler->hasPlugin($plugin), + 'Plugin was not removed' + ); + } + + /** + * Tests getPlugin() when the plugin is not already loaded and + * autoloading is disabled. + * + * @depends testSetAutoload + * @return void + */ + public function testGetPluginWithAutoloadEnabled() + { + $this->handler->setAutoload(true); + $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); + $plugin = $this->handler->getPlugin('Mock'); + $this->assertType( + 'Phergie_Plugin_Mock', + $plugin, + 'Retrieved plugin not of expected class' + ); + } + + /** + * Tests getPlugins(). + * + * @depends testGetPluginWithAutoloadEnabled + * @return void + */ + public function testGetPlugins() + { + $plugin1 = $this->getMockPlugin('TestPlugin1'); + $this->handler->addPlugin($plugin1); + + $plugin2 = $this->getMockPlugin('TestPlugin2'); + $this->handler->addPlugin($plugin2); + + $expected = array( + 'testplugin1' => $plugin1, + 'testplugin2' => $plugin2, + ); + + $actual = $this->handler->getPlugins(); + $this->assertEquals($expected, $actual); + + $actual = $this->handler->getPlugins(array('testplugin1', 'testplugin2')); + $this->assertEquals($expected, $actual); + } + + /** + * Tests that multiple plugin iterators can be used concurrently. + * + * @return void + */ + public function testUseMultiplePluginIteratorsConcurrently() + { + $plugin1 = $this->getMockPlugin('TestPlugin1'); + $this->handler->addPlugin($plugin1); + + $plugin2 = $this->getMockPlugin('TestPlugin2'); + $this->handler->addPlugin($plugin2); + + $iterator1 = $this->handler->getIterator(); + $iterator1->next(); + $this->assertSame($plugin2, $iterator1->current()); + + $iterator2 = $this->handler->getIterator(); + $this->assertSame($plugin1, $iterator2->current()); + } + + /** + * Tests adding plugin paths via configuration. + * + * @return void + */ + public function testAddPluginPathsViaConfiguration() + { + $dir = dirname(__FILE__); + $prefix = 'Phergie_Plugin_'; + $paths = array($dir => $prefix); + $this->config + ->expects($this->any()) + ->method('offsetExists') + ->will($this->returnValue(true)); + $this->config + ->expects($this->any()) + ->method('offsetGet') + ->will($this->returnValue($paths)); + + // Reinitialize the handler so the configuration change takes effect + // within the constructor + $this->handler = new Phergie_Plugin_Handler( + $this->config, + $this->events + ); + + $this->handler->setAutoload(true); + $this->handler->getPlugin('Mock'); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/IteratorTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/IteratorTest.php new file mode 100644 index 0000000000..336b25d355 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/IteratorTest.php @@ -0,0 +1,151 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_Iterator. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_IteratorTest extends PHPUnit_Framework_TestCase +{ + /** + * Iterator instance being tested + * + * @var Phergie_Plugin_Iterator + */ + protected $iterator; + + /** + * List of mock plugin instances to be iterated + * + * @var array + */ + protected $plugins; + + /** + * Initializes the iterator instance being tested. + * + * @return void + */ + public function setUp() + { + $this->plugins = array(); + foreach (range(0, 4) as $index) { + $plugin = $this->getMock('Phergie_Plugin_Abstract'); + $plugin + ->expects($this->any()) + ->method('getName') + ->will($this->returnValue($index)); + $this->plugins[] = $plugin; + } + + $this->iterator = new Phergie_Plugin_Iterator( + new ArrayIterator($this->plugins) + ); + } + + /** + * Tests that all plugins are iterated when no filters are applied. + */ + public function testIteratesAllPluginsWithNoFilters() + { + $expected = range(0, 4); + $actual = array(); + foreach ($this->iterator as $plugin) { + $actual[] = $plugin->getName(); + } + $this->assertEquals($expected, $actual); + } + + /** + * Tests that appropriate plugins are iterated when plugin name filters + * are applied. + */ + public function testIteratesPluginsWithNameFilters() + { + // Test acceptance of strings and fluent interface implementation + $returned = $this->iterator->addPluginFilter('0'); + $this->assertSame($this->iterator, $returned); + + // Test acceptance of arrays + $this->iterator->addPluginFilter(array('1', '3')); + + // Test application of filters to iteration + $expected = array('2', '4'); + $actual = array(); + foreach ($this->iterator as $plugin) { + $actual[] = $plugin->getName(); + } + $this->assertEquals($expected, $actual); + } + + /** + * Tests that appropriate plugins are iterated when method name filters + * are applied. + * + * The same method name is used in all cases here because mocked methods + * of mock objects do not appear to be detected by method_exists() or + * ReflectionClass, so filtering by a method defined in the base plugin + * class seems the easiest way to test that method filtering really + * works. + */ + public function testIteratesPluginsWithMethodFilters() + { + // Tests acceptance of strings and fluent interface implementation + $returned = $this->iterator->addMethodFilter('getName'); + $this->assertSame($this->iterator, $returned); + + // Test acceptance of arrays + $this->iterator->addMethodFilter(array('getName', 'getName')); + + // Test application of filters to iteration + $expected = array(); + $actual = array(); + foreach ($this->iterator as $plugin) { + $actual[] = $plugin->getName(); + } + $this->assertEquals($expected, $actual); + } + + /** + * Tests that all plugins are iterated after filters are cleared. + * + * @depends testIteratesPluginsWithNameFilters + * @depends testIteratesPluginsWithMethodFilters + */ + public function testIteratesPluginsAfterClearingFilters() + { + $this->iterator->addPluginFilter('0'); + $this->iterator->addMethodFilter('method1'); + $this->iterator->clearFilters(); + + $expected = range(0, 4); + $actual = array(); + foreach ($this->iterator as $plugin) { + $actual[] = $plugin->getName(); + } + $this->assertEquals($expected, $actual); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/KarmaTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/KarmaTest.php new file mode 100644 index 0000000000..6b72316743 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/KarmaTest.php @@ -0,0 +1,335 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_Karma. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_KarmaTest extends Phergie_Plugin_TestCase +{ + /** + * Skips tests if the SQLite PDO driver is not available. + * + * @return void + */ + public function setUp() + { + if (!extension_loaded('PDO') || !extension_loaded('pdo_sqlite')) { + $this->markTestSkipped('PDO or pdo_sqlite extension is required'); + } + + parent::setUp(); + } + + /** + * Configures the plugin to use a temporary copy of the database. + * + * @return PDO Connection to the temporary database + */ + private function createMockDatabase() + { + $dbPath = $this->getPluginsPath('Karma/karma.db'); + $db = $this->getMockDatabase($dbPath); + $this->plugin->setDb($db); + return $db; + } + + /** + * Tests the requirement of the Command plugin. + * + * @return void + */ + public function testRequiresCommandPlugin() + { + $this->assertRequiresPlugin('Command'); + $this->plugin->onLoad(); + } + + /** + * Initiates a karma event with a specified term. + * + * @param string $term Karma term + * + * @return Phergie_Event_Request Initiated mock event + */ + private function initiateKarmaEvent($term) + { + $args = array( + 'receiver' => $this->source, + 'text' => 'karma ' . $term + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + return $event; + } + + /** + * Checks for an expected karma response. + * + * @param Phergie_Event_Request $event Event containing the karma + * request + * @param string $term Karma term + * @param string $response Portion of the response + * message following the term + * from the original event + * + * @return void + */ + private function checkForKarmaResponse($event, $term, $response) + { + $text = $event->getNick() . ': ' . $response; + $this->assertEmitsEvent('privmsg', array($event->getSource(), $text)); + $this->plugin->onCommandKarma($term); + } + + /** + * Tests that a default database is used when none is specified. + * + * @return void + */ + public function testGetDb() + { + $db = $this->plugin->getDb(); + $this->assertType('PDO', $db); + } + + /** + * Tests specifying a custom database for the plugin to use. + * + * @return void + */ + public function testSetDb() + { + $db = $this->createMockDatabase(); + $this->assertSame($db, $this->plugin->getDb()); + } + + /** + * Tests that issuing the karma command with an unknown term returns a + * neutral rating. + * + * @return void + */ + public function testKarmaCommandOnUnknownTerm() + { + $term = 'foo'; + $this->createMockDatabase(); + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, $term . ' has neutral karma.'); + } + + /** + * Tests that issuing the karma command with the term "me" returns the + * the karma rating for the initiating user. + * + * @return void + */ + public function testKarmaCommandOnUser() + { + $term = 'me'; + $this->createMockDatabase(); + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, 'You have neutral karma.'); + } + + /** + * Tests that issuing the karma command with a term that has a fixed + * karma rating results in that rating being returned. + * + * @return void + */ + public function testKarmaCommandWithFixedKarmaTerm() + { + $term = 'phergie'; + $this->createMockDatabase(); + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, 'phergie has karma of awesome.'); + } + + /** + * Supporting method that tests the result of a karma term rating change. + * + * @param string $term Karma term for which the rating is being + * changed + * @param string $operation ++ or -- + * @param int $karma Expected karma rating after the change is + * applied + */ + private function checkForKarmaRatingChange($term, $operation, $karma) + { + $args = array( + 'receiver' => $this->source, + 'text' => $term . $operation + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + $this->plugin->onPrivmsg(); + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, $term . ' has karma of ' . $karma . '.'); + } + + /** + * Tests incrementing the karma rating of a new term. + * + * @return void + */ + public function testIncrementingKarmaRating() + { + $this->createMockDatabase(); + $this->checkForKarmaRatingChange('foo', '++', 1); + } + + /** + * Tests decrementing the karma rating of a new term. + * + * @return void + */ + public function testDecrementingKarmaRating() + { + $this->createMockDatabase(); + $this->checkForKarmaRatingChange('foo', '--', -1); + } + + /** + * Tests modifying the karma rating of an existing term. + * + * @return void + */ + public function testChangingExistingKarmaRating() + { + $term = 'foo'; + $this->createMockDatabase(); + $this->checkForKarmaRatingChange($term, '++', 1); + $this->checkForKarmaRatingChange($term, '++', 2); + } + + /** + * Tests resetting the karma rating of an existing term to 0. + * + * @return void + */ + public function testResettingExistingKarmaRating() + { + $term = 'foo'; + $this->createMockDatabase(); + $this->checkForKarmaRatingChange($term, '++', 1); + $this->plugin->onCommandReincarnate($term); + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, $term . ' has neutral karma.'); + } + + /** + * Data provider for testKarmaComparisons(). + * + * @return array Enumerated array of enumerated arrays each containing a + * set of parameter values for a single call to + * testKarmaComparisons() + */ + public function dataProviderTestKarmaComparisons() + { + $term1 = 'foo'; + $term2 = 'bar'; + + $positive = 'True that.'; + $negative = 'No sir, not at all.'; + + return array( + array($term1, $term2, 1, 0, '>', $positive), + array($term1, $term2, 0, 1, '>', $negative), + array($term1, $term2, 1, 1, '>', $negative), + array($term1, $term2, 1, 0, '<', $negative), + array($term1, $term2, 0, 1, '<', $positive), + array($term1, $term2, 1, 1, '<', $negative), + array($term1, 'phergie', 1, 0, '>', $positive), + array('phergie', $term2, 0, 1, '<', $positive), + array($term1, 'everything', 0, 0, '>', $positive), + array('everything', $term2, 0, 0, '>', $positive), + ); + } + + /** + * Tests comparing the karma ratings of two terms. + * + * @param string $term1 First term + * @param string $term2 Second term + * @param int $karma1 Karma rating of the first time, 0 or 1 + * @param int $karma2 Karma rating of the second term, 0 or 1 + * @param string $operator Comparison operator, > or < + * @param string $response Response to check for + * + * @return void + * @dataProvider dataProviderTestKarmaComparisons + */ + public function testKarmaComparisons($term1, $term2, $karma1, $karma2, + $operator, $response + ) { + $db = $this->createMockDatabase(); + + // Reduce answer tables to expected response + $stmt = $db->prepare('DELETE FROM positive_answers WHERE answer != ?'); + $stmt->execute(array($response)); + $stmt = $db->prepare('DELETE FROM negative_answers WHERE answer != ?'); + $stmt->execute(array($response)); + + if ($karma1) { + $this->checkForKarmaRatingChange($term1, '++', 1); + } + + if ($karma2) { + $this->checkForKarmaRatingChange($term2, '++', 1); + } + + $args = array( + 'receiver' => $this->source, + 'text' => $term1 . ' ' . $operator . ' ' . $term2 + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + + // Test lack of a response for terms with fixed karma ratings + if ($term1 == 'phergie' || $term2 == 'phergie') { + $callback = 'assertDoesNotEmitEvent'; + } else { + $callback = 'assertEmitsEvent'; + } + + $this->$callback('privmsg', array($event->getSource(), $response)); + $this->plugin->onPrivmsg(); + + // Test for karma changes when one term is "everything" + if ($term1 == 'everything' || $term2 == 'everything') { + if ($term1 == 'everything') { + $term = $term2; + $karma = ($operator == '>') ? -1 : 1; + } else { + $term = $term1; + $karma = ($operator == '>') ? 1 : -1; + } + $event = $this->initiateKarmaEvent($term); + $this->checkForKarmaResponse($event, $term, $term . ' has karma of ' . $karma . '.'); + } + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/Mock.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/Mock.php new file mode 100755 index 0000000000..44a5d11c7c --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/Mock.php @@ -0,0 +1,61 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Creates a plugin on the filesystem that can be used by + * Phergie_Plugin_Handler::addPath() to be located and loaded. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_Mock extends Phergie_Plugin_Abstract +{ + /** + * Arguments passed to the constructor + * + * @var array + */ + protected $arguments; + + /** + * Stores all arguments for later use. + * + * @return void + */ + public function __construct() + { + $this->arguments = func_get_args(); + } + + /** + * Returns all constructor arguments. + * + * @return array Enumerated array containing the arguments passed to the + * constructor in order + */ + public function getArguments() + { + return $this->arguments; + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PingTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PingTest.php new file mode 100644 index 0000000000..ac30d46ffe --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PingTest.php @@ -0,0 +1,164 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_Ping. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_PingTest extends Phergie_Plugin_TestCase +{ + /** + * Tests that the last ping and event are initialized on connection to + * the server. + * + * @return void + */ + public function testOnConnect() + { + $this->plugin->onConnect(); + + $expected = time(); + $actual = $this->plugin->getLastEvent(); + $this->assertEquals($expected, $actual); + + $expected = null; + $actual = $this->plugin->getLastPing(); + $this->assertEquals($expected, $actual); + } + + /** + * Tests that the last event is reset when an event occurs. + * + * @return void + */ + public function testPreEvent() + { + $this->plugin->preEvent(); + + $expected = time(); + $actual = $this->plugin->getLastEvent(); + $this->assertEquals($expected, $actual); + } + + /** + * Tests that the last ping is reset when a ping is received. + * + * @return void + */ + public function testOnPingResponse() + { + $this->plugin->onPingResponse(); + + $expected = null; + $actual = $this->plugin->getLastPing(); + $this->assertEquals($expected, $actual); + } + + /** + * Tests that the test suite is able to manipulate the value of the last + * event. + * + * @return void + */ + public function testSetLastEvent() + { + $expected = time() + 1; + $this->plugin->setLastEvent($expected); + $actual = $this->plugin->getLastEvent(); + $this->assertEquals($expected, $actual); + + $this->plugin->setLastEvent(); + $expected = time(); + $actual = $this->plugin->getLastEvent(); + $this->assertEquals($expected, $actual); + + try { + $this->plugin->setLastEvent('foo'); + $this->fail('Expected exception was not thrown'); + } catch (Exception $e) { } + } + + /** + * Tests that the test suite is able to manipulate the value of the last + * ping. + * + * @return void + */ + public function testSetLastPing() + { + $expected = time() + 1; + $this->plugin->setLastPing($expected); + $actual = $this->plugin->getLastPing(); + $this->assertEquals($expected, $actual); + + $this->plugin->setLastPing(); + $expected = time(); + $actual = $this->plugin->getLastPing(); + $this->assertEquals($expected, $actual); + + try { + $this->plugin->setLastPing('foo'); + $this->fail('Expected exception was not thrown'); + } catch (Exception $e) { } + } + + /** + * Tests that a ping event is sent after the appropriate time period has + * lapsed since receiving an event. + * + * @depends testSetLastEvent + * @return void + */ + public function testPing() + { + $pingEvent = 10; + $this->setConfig('ping.event', $pingEvent); + $lastEvent = time() - ($pingEvent + 1); + $this->plugin->setLastEvent($lastEvent); + $expected = time(); + $this->assertEmitsEvent('ping', array($this->nick, $expected)); + $this->plugin->onTick(); + $actual = $this->plugin->getLastPing(); + $this->assertEquals($expected, $actual); + } + + /** + * Tests that a quit event is sent after the appropriate time period has + * lapsed since sending a ping event. + * + * @depends testPing + * @return void + */ + public function testQuit() + { + $pingPing = 10; + $this->setConfig('ping.ping', $pingPing); + $lastPing = time() - ($pingPing + 1); + $this->plugin->setLastPing($lastPing); + $this->assertEmitsEvent('quit'); + $this->plugin->onTick(); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PongTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PongTest.php new file mode 100644 index 0000000000..e8351fef24 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/PongTest.php @@ -0,0 +1,46 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_Pong. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_PongTest extends Phergie_Plugin_TestCase +{ + /** + * Test that a pong event is sent when a ping event is received. + * + * @return void + */ + public function testPong() + { + $expected = 'irc.freenode.net'; + $event = $this->getMockEvent('ping', array($expected)); + $this->plugin->setEvent($event); + $this->assertEmitsEvent('pong', array($expected)); + $this->plugin->onPing(); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/SpellCheckTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/SpellCheckTest.php new file mode 100644 index 0000000000..369a0c6444 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/SpellCheckTest.php @@ -0,0 +1,166 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_SpellCheck. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_SpellCheckTest extends Phergie_Plugin_TestCase +{ + /** + * Checks for the pspell extension. + * + * @return void + */ + public function setUp() + { + parent::setUp(); + + if (!extension_loaded('pspell')) { + $this->markTestSkipped('pspell extension not available'); + } + } + + /** + * Tests for the plugin failing to load when the language setting is not + * specified. + * + * @return void + */ + public function testLanguageSettingNotSet() + { + try { + $this->plugin->onLoad(); + $this->fail('Expected exception was not thrown'); + } catch (Phergie_Plugin_Exception $e) { + return; + } + $this->fail('Unexpected exception was thrown'); + } + + /** + * Tests for the plugin requiring the Command plugin as a dependency. + * + * @return void + */ + public function testRequiresCommandPlugin() + { + $this->setConfig('spellcheck.lang', 'en'); + $this->assertRequiresPlugin('Command'); + $this->plugin->onLoad(); + } + + /** + * Tests for the plugin failing to load because of a dictionary error. + * + * @return void + */ + public function testLoadDictionaryError() + { + $this->setConfig('spellcheck.lang', 'foo'); + try { + $this->plugin->onLoad(); + $this->fail('Expected exception not thrown'); + } catch (Phergie_Plugin_Exception $e) { + return; + } + $this->fail('Unexpected exception was thrown'); + } + + /** + * Initializes a spell check event. + * + * @param string $word Word to be checked + * + * @return void + */ + private function initializeSpellCheckEvent($word) + { + $this->setConfig('spellcheck.lang', 'en'); + $this->plugin->onLoad(); + $args = array( + 'receiver' => $this->source, + 'text' => 'spell ' . $word + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + } + + /** + * Checks for a specified response to a spell check event. + * + * @param string $word Work being checked + * @param string $response Expected response + * + * @return void + */ + private function checkForSpellCheckResponse($word, $response) + { + $this->assertEmitsEvent('privmsg', array($this->source, $response)); + $this->plugin->onCommandSpell($word); + } + + /** + * Tests for the plugin returning a response for a correctly spelled word. + * + * @return void + */ + public function testRespondsForCorrectlySpelledWord() + { + $word = 'test'; + $this->initializeSpellCheckEvent($word); + $response = $this->nick . ': The word "' . $word . '" seems to be spelled correctly.'; + $this->checkForSpellCheckResponse($word, $response); + } + + /** + * Tests for the plugin returning a response when it can't find any + * suggestions for a word. + * + * @return void + */ + public function testRespondsWithoutSuggestions() + { + $word = 'kjlfljlkjljkljlj'; + $this->initializeSpellCheckEvent($word); + $response = $this->nick . ': I could not find any suggestions for "' . $word . '".'; + $this->checkForSpellCheckResponse($word, $response); + } + + /** + * Tests for the plugin returning a response when it is able to find + * suggestions for a word. + * + * @return void + */ + public function testRespondsWithSuggestions() + { + $word = 'teh'; + $this->initializeSpellCheckEvent($word); + $response = $this->nick . ': Suggestions for "' . $word . '": the, Te, tech, Th, eh.'; + $this->checkForSpellCheckResponse($word, $response); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php new file mode 100644 index 0000000000..e58ac6f290 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TerryChayTest.php @@ -0,0 +1,135 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for Pherge_Plugin_TerryChay. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_TerryChayTest extends Phergie_Plugin_TestCase +{ + /** + * Chayism used as a consistent response when related events are + * triggered + * + * @var string + */ + private $chayism = 'Terry Chay doesn\'t need a framework; he already knows everyone\'s code'; + + /** + * Configures the mock plugin handler to return a mock Http plugin with + * a mock response object populated with predetermined content. + * + * @return void + */ + public function setUpHttpClient() + { + $response = $this->getMock('Phergie_Plugin_Http_Response'); + $response + ->expects($this->any()) + ->method('getContent') + ->will($this->returnValue($this->chayism)); + + $plugin = $this->getMock('Phergie_Plugin_Http'); + $plugin + ->expects($this->any()) + ->method('get') + ->will($this->returnValue($response)); + + $this->getMockPluginHandler() + ->expects($this->any()) + ->method('getPlugin') + ->with('Http') + ->will($this->returnValue($plugin)); + } + + /** + * Tests that the plugin requires the Http plugin as a dependency. + * + * @return void + */ + public function testRequiresHttpPlugin() + { + $this->assertRequiresPlugin('Http'); + $this->plugin->onLoad(); + } + + /** + * Data provider for testPrivmsgTriggerReturnsChayism(). + * + * @return array Enumerated array of enumerated arrays each containing + * a set of parameters for a single call to + * testPrivmsgTriggerReturnsChayism() + */ + public function dataProviderTestPrivmsgTriggerReturnsChayism() + { + return array( + array('terry chay'), + array('terry chay'), + array('tychay'), + array('!tychay'), + array('! tychay'), + array('foo tychay bar'), + ); + } + + /** + * Tests that appropriate triggers result in a response with a Chayism. + * + * @return void + * @dataProvider dataProviderTestPrivmsgTriggerReturnsChayism + */ + public function testPrivmsgTriggerReturnsChayism($trigger) + { + $this->setConfig('command.prefix', '!'); + $this->setUpHttpClient(); + $args = array( + 'receiver' => $this->source, + 'text' => $trigger + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + $this->assertEmitsEvent('privmsg', array($this->source, 'Fact: ' . $this->chayism)); + $this->plugin->onPrivmsg(); + } + + /** + * Tests that lack of an appropriate trigger results in no response with + * a Chayism. + * + * @return void + */ + public function testNoPrivmsgTriggerDoesNotReturnChayism() + { + $args = array( + 'receiver' => $this->source, + 'text' => 'foo bar baz' + ); + $event = $this->getMockEvent('privmsg', $args); + $this->plugin->setEvent($event); + $this->assertDoesNotEmitEvent('privmsg', array($this->source, 'Fact: ' . $this->chayism)); + $this->plugin->onPrivmsg(); + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestCase.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestCase.php new file mode 100644 index 0000000000..941e7cb410 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestCase.php @@ -0,0 +1,435 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Unit test suite for plugin classes. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +abstract class Phergie_Plugin_TestCase extends PHPUnit_Framework_TestCase +{ + /** + * Mock configuration + * + * @var Phergie_Config + */ + protected $config; + + /** + * Associative array for configuration setting values, accessed by the + * mock configuration object using a callback + * + * @var array + */ + protected $settings = array(); + + /** + * Mock connection + * + * @var Phergie_Connection + */ + protected $connection; + + /** + * Mock event handler + * + * @var Phergie_Event_Handler + */ + protected $events; + + /** + * Mock plugin handler + * + * @var Phergie_Plugin_Handler + */ + protected $plugins; + + /** + * Plugin instance being tested + * + * @var Phergie_Plugin_Abstract + */ + protected $plugin; + + /** + * Full name of the plugin class being tested, may be explicitly + * specified in subclasses but is otherwise automatically derived from + * the test case class name + * + * @var string + */ + protected $pluginClass; + + /** + * User nick used in any events requiring one + * + * @var string + */ + protected $nick = 'nick'; + + /** + * Event source used in any events requiring one + * + * @var string + */ + protected $source = '#channel'; + + /** + * Initializes instance properties. + * + * @return void + */ + public function setUp() + { + if (empty($this->pluginClass)) { + $this->pluginClass = preg_replace('/Test$/', '', get_class($this)); + } + + if (empty($this->plugin)) { + $this->plugin = new $this->pluginClass; + } + + $this->plugin->setConfig($this->getMockConfig()); + $this->plugin->setConnection($this->getMockConnection()); + $this->plugin->setEventHandler($this->getMockEventHandler()); + $this->plugin->setPluginHandler($this->getMockPluginHandler()); + } + + /** + * Destroys all initialized instance properties. + * + * @return void + */ + public function tearDown() + { + unset( + $this->plugins, + $this->events, + $this->connection, + $this->config, + $this->plugin + ); + } + + /** + * Returns a mock configuration object. + * + * @return Phergie_Config + */ + protected function getMockConfig() + { + if (empty($this->config)) { + $this->config = $this->getMock('Phergie_Config', array('offsetExists', 'offsetGet')); + $this->config + ->expects($this->any()) + ->method('offsetExists') + ->will($this->returnCallback(array($this, 'configOffsetExists'))); + $this->config + ->expects($this->any()) + ->method('offsetGet') + ->will($this->returnCallback(array($this, 'configOffsetGet'))); + } + return $this->config; + } + + /** + * Returns whether a specific configuration setting has a value. Only + * intended for use by this class, but must be public for PHPUnit to + * call them. + * + * @param string $name Name of the setting + * + * @return boolean TRUE if the setting has a value, FALSE otherwise + */ + public function configOffsetExists($name) + { + return isset($this->settings[$name]); + } + + /** + * Returns the value of a specific configuration setting. Only intended + * for use by this class, but must be public for PHPUnit to call them. + * + * @param string $name Name of the setting + * + * @return mixed Value of the setting + */ + public function configOffsetGet($name) + { + return $this->settings[$name]; + } + + /** + * Returns a mock connection object. + * + * @return Phergie_Connection + */ + protected function getMockConnection() + { + if (empty($this->connection)) { + $this->connection = $this->getMock('Phergie_Connection'); + $this->connection + ->expects($this->any()) + ->method('getNick') + ->will($this->returnValue($this->nick)); + } + return $this->connection; + } + + /** + * Returns a mock event handler object. + * + * @return Phergie_Event_Handler + */ + protected function getMockEventHandler() + { + if (empty($this->events)) { + $this->events = $this->getMock('Phergie_Event_Handler', array('addEvent')); + } + return $this->events; + } + + /** + * Returns a mock plugin handler object. + * + * @return Phergie_Plugin_Handler + */ + protected function getMockPluginHandler() + { + if (empty($this->plugins)) { + $config = $this->getMockConfig(); + $events = $this->getMockEventHandler(); + $this->plugins = $this->getMock( + 'Phergie_Plugin_Handler', + array(), // mock everything + array($config, $events) + ); + } + return $this->plugins; + } + + /** + * Returns a mock event object. + * + * @param string $type Event type + * @param array $args Optional associative array of event arguments + * @param string $nick Optional user nick to associate with the event + * @param string $source Optional user nick or channel name to associate + * with the event as its source + * + * @return Phergie_Event_Request + */ + protected function getMockEvent($type, array $args = array(), + $nick = null, $source = null + ) { + $methods = array('getNick', 'getSource'); + foreach (array_keys($args) as $arg) { + if (is_int($arg) || ctype_digit($arg)) { + $methods[] = 'getArgument'; + } else { + $methods[] = 'get' . ucfirst($arg); + } + } + + $event = $this->getMock( + 'Phergie_Event_Request', + $methods + ); + + $nick = $nick ? $nick : $this->nick; + $event + ->expects($this->any()) + ->method('getNick') + ->will($this->returnValue($nick)); + + $source = $source ? $source : $this->source; + $event + ->expects($this->any()) + ->method('getSource') + ->will($this->returnValue($source)); + + foreach ($args as $key => $value) { + if (is_int($key) || ctype_digit($key)) { + $event + ->expects($this->any()) + ->method('getArgument') + ->with($key) + ->will($this->returnValue($value)); + } else { + $event + ->expects($this->any()) + ->method('get' . ucfirst($key)) + ->will($this->returnValue($value)); + } + } + + return $event; + } + + /** + * Sets the value of a configuration setting. + * + * @param string $setting Name of the setting + * @param mixed $value Value for the setting + * + * @return void + */ + protected function setConfig($setting, $value) + { + $this->settings[$setting] = $value; + } + + /** + * Returns the absolute path to the Phergie/Plugin directory. Useful in + * conjunction with getMockDatabase(). + * + * @param string $subpath Optional path to append to the directory path + * + * @return string Directory path + */ + protected function getPluginsPath($subpath = null) + { + $path = realpath(dirname(__FILE__) . '/../../../Phergie/Plugin'); + if (!empty($subpath)) { + $path .= '/' . ltrim($subpath, '/'); + } + return $path; + } + + /** + * Modifies the event handler to include an expectation of an event + * being added by the plugin being tested. Note that this must be called + * BEFORE executing the plugin code intended to initiate the event. + * + * @param string $type Event type + * @param array $args Optional enumerated array of event arguments + * + * @return void + */ + protected function assertEmitsEvent($type, array $args = array()) + { + $this->events + ->expects($this->at(0)) + ->method('addEvent') + ->with($this->plugin, $type, $args); + } + + /** + * Modifies the event handler to include an expectation of an event NOT + * being added by the plugin being tested. Note that this must be called + * BEFORE executing plugin code that may initiate the event. + * + * @param string $type Event type + * @param array $args Optional enumerated array of event arguments + * + * @return void + */ + protected function assertDoesNotEmitEvent($type, array $args = array()) + { + // Ugly hack to get around an issue in PHPUnit + // @link http://github.com/sebastianbergmann/phpunit-mock-objects/issues/issue/5#issue/5/comment/343524 + $callback = create_function( + '$plugin, $type, $args', + 'if (get_class($plugin) == "' . $this->pluginClass . '" + && $type == "' . $type . '" + && $args == "' . var_export($args, true) . '") { + trigger_error("Instance of ' . $this->pluginClass + . ' unexpectedly emitted event of type ' . $type + . '", E_USER_ERROR); + }' + ); + + $this->events + ->expects($this->any()) + ->method('addEvent') + ->will($this->returnCallback($callback)); + } + + /** + * Modifies the plugin handler to include an expectation of a plugin + * being retrieved, indicating a dependency. Note that this must be + * called BEFORE executing the plugin code that may load that plugin + * dependency, which is usually located in onLoad(). + * + * @param string $name Short name of the plugin required as a dependency + * + * @return void + */ + public function assertRequiresPlugin($name) + { + $this->plugins + ->expects($this->atLeastOnce()) + ->method('getPlugin') + ->with($name); + } + + /** + * Creates an in-memory copy of a specified SQLite database file and + * returns a connection to it. + * + * @param string $path Path to the SQLite file to copy + * + * @return PDO Connection to the database copy + */ + public function getMockDatabase($path) + { + $original = new PDO('sqlite:' . $path); + $copy = new PDO('sqlite::memory:'); + + $result = $original->query('SELECT sql FROM sqlite_master'); + while ($sql = $result->fetchColumn()) { + $copy->exec($sql); + } + + $tables = array(); + $result = $original->query('SELECT name FROM sqlite_master WHERE type = "table"'); + while ($table = $result->fetchColumn()) { + $tables[] = $table; + } + + foreach ($tables as $table) { + $result = $original->query('SELECT * FROM ' . $table); + $insert = null; + $copy->beginTransaction(); + while ($row = $result->fetch(PDO::FETCH_ASSOC)) { + $columns = array_keys($row); + if (empty($insert)) { + $insert = $copy->prepare( + 'INSERT INTO "' . $table . '" (' . + '"' . implode('", "', $columns) . '"' . + ') VALUES (' . + ':' . implode(', :', $columns) . + ')' + ); + } + $insert->execute($row); + } + $copy->commit(); + unset($insert); + } + + return $copy; + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestNonInstantiablePluginFromFile.php b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestNonInstantiablePluginFromFile.php new file mode 100755 index 0000000000..f9bddd1516 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/Phergie/Plugin/TestNonInstantiablePluginFromFile.php @@ -0,0 +1,43 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +/** + * Creates a plugin on the filesystem that can be used by + * Phergie_Plugin_Handler's addPath utility to be located and loaded. + * + * @category Phergie + * @package Phergie_Tests + * @author Phergie Development Team + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ +class Phergie_Plugin_TestNonInstantiablePluginFromFile +extends Phergie_Plugin_Abstract +{ + /** + * Private constructor to ensure that this class is not instantiable. + * + * @return void + */ + private function __construct() + { + } +} diff --git a/plugins/Irc/extlib/phergie/Tests/TestHelper.php b/plugins/Irc/extlib/phergie/Tests/TestHelper.php new file mode 100644 index 0000000000..e70af44562 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/TestHelper.php @@ -0,0 +1,26 @@ + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie_Tests + */ + +error_reporting(E_ALL | E_STRICT); + +// Phergie components require Phergie_Autoload to function correctly. +require_once dirname(__FILE__) . '/../Phergie/Autoload.php'; +Phergie_Autoload::registerAutoloader(); diff --git a/plugins/Irc/extlib/phergie/Tests/phpunit.xml b/plugins/Irc/extlib/phergie/Tests/phpunit.xml new file mode 100644 index 0000000000..b96589e4a1 --- /dev/null +++ b/plugins/Irc/extlib/phergie/Tests/phpunit.xml @@ -0,0 +1,26 @@ + + + + ./ + + diff --git a/plugins/Irc/extlib/phergie/build.xml b/plugins/Irc/extlib/phergie/build.xml new file mode 100644 index 0000000000..7510c75a15 --- /dev/null +++ b/plugins/Irc/extlib/phergie/build.xml @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/Irc/extlib/phergie/phergie.bat b/plugins/Irc/extlib/phergie/phergie.bat new file mode 100644 index 0000000000..4eec11d5c7 --- /dev/null +++ b/plugins/Irc/extlib/phergie/phergie.bat @@ -0,0 +1,14 @@ +@echo off +REM Phergie +REM +REM PHP version 5 +REM +REM LICENSE +REM +REM This source file is subject to the new BSD license that is bundled +REM with this package in the file LICENSE. +REM It is also available through the world-wide-web at this URL: +REM http://phergie.org/license + +set PHPBIN="@php_bin@" +%PHPBIN% "@bin_dir@\phergie" %* diff --git a/plugins/Irc/extlib/phergie/phergie.php b/plugins/Irc/extlib/phergie/phergie.php new file mode 100755 index 0000000000..f0b9f6ced5 --- /dev/null +++ b/plugins/Irc/extlib/phergie/phergie.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php + + * @copyright 2008-2010 Phergie Development Team (http://phergie.org) + * @license http://phergie.org/license New BSD License + * @link http://pear.phergie.org/package/Phergie + */ + +/** + * @see Phergie_Autoload + */ +require 'Phergie/Autoload.php'; +Phergie_Autoload::registerAutoloader(); + +$bot = new Phergie_Bot; + +if (!isset($argc)) { + echo + 'The PHP setting register_argc_argv must be enabled for Phergie ', + 'configuration files to be specified using command line arguments; ', + 'defaulting to Settings.php in the current working directory', + PHP_EOL; +} else if ($argc > 0) { + // Skip the current file for manual installations + // ex: php phergie.php Settings.php + if (realpath($argv[0]) == __FILE__) { + array_shift($argv); + } + + // If configuration files were specified, override default behavior + if (count($argv) > 0) { + $config = new Phergie_Config; + foreach ($argv as $file) { + $config->read($file); + } + $bot->setConfig($config); + } +} + +$bot->run(); diff --git a/plugins/Irc/ircmanager.php b/plugins/Irc/ircmanager.php new file mode 100644 index 0000000000..6066293311 --- /dev/null +++ b/plugins/Irc/ircmanager.php @@ -0,0 +1,357 @@ +. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +/** + * IRC background connection manager for IRC-using queue handlers, + * allowing them to send outgoing messages on the right connection. + * + * Input is handled during socket select loop, Any incoming messages will be handled. + * + * In a multi-site queuedaemon.php run, one connection will be instantiated + * for each site being handled by the current process that has IRC enabled. + */ + +class IrcManager extends ImManager { + protected $conn = null; + protected $lastPing = null; + protected $messageWaiting = true; + protected $lastMessage = null; + + protected $regChecks = array(); + protected $regChecksLookup = array(); + + protected $connected = false; + + /** + * Initialize connection to server. + * + * @return boolean true on success + */ + public function start($master) { + if (parent::start($master)) { + $this->connect(); + return true; + } else { + return false; + } + } + + /** + * Return any open sockets that the run loop should listen + * for input on. + * + * @return array Array of socket resources + */ + public function getSockets() { + $this->connect(); + if ($this->conn) { + return $this->conn->getSockets(); + } else { + return array(); + } + } + + /** + * Request a maximum timeout for listeners before the next idle period. + * + * @return integer Maximum timeout + */ + public function timeout() { + if ($this->messageWaiting) { + return 1; + } else { + return $this->plugin->pinginterval; + } + } + + /** + * Idle processing for io manager's execution loop. + * + * @return void + */ + public function idle() { + // Send a ping if necessary + if (empty($this->lastPing) || time() - $this->lastPing > $this->plugin->pinginterval) { + $this->sendPing(); + } + + if ($this->connected) { + // Send a waiting message if appropriate + if ($this->messageWaiting && time() - $this->lastMessage > 1) { + $wm = Irc_waiting_message::top(); + if ($wm === NULL) { + $this->messageWaiting = false; + return; + } + + $data = unserialize($wm->data); + $wm->incAttempts(); + + if ($this->send_raw_message($data)) { + $wm->delete(); + } else { + if ($wm->attempts <= common_config('queue', 'max_retries')) { + // Try again next idle + $wm->releaseClaim(); + } else { + // Exceeded the maximum number of retries + $wm->delete(); + } + } + } + } + } + + /** + * Process IRC events that have come in over the wire. + * + * @param resource $socket Socket to handle input on + * @return void + */ + public function handleInput($socket) { + common_log(LOG_DEBUG, 'Servicing the IRC queue.'); + $this->stats('irc_process'); + + try { + $this->conn->handleEvents(); + } catch (Phergie_Driver_Exception $e) { + $this->connected = false; + $this->conn->reconnect(); + } + } + + /** + * Initiate connection + * + * @return void + */ + public function connect() { + if (!$this->conn) { + $this->conn = new Phergie_StatusnetBot; + + $config = new Phergie_Config; + $config->readArray( + array( + 'connections' => array( + array( + 'host' => $this->plugin->host, + 'port' => $this->plugin->port, + 'username' => $this->plugin->username, + 'realname' => $this->plugin->realname, + 'nick' => $this->plugin->nick, + 'password' => $this->plugin->password, + 'transport' => $this->plugin->transporttype, + 'encoding' => $this->plugin->encoding + ) + ), + + 'driver' => 'statusnet', + + 'processor' => 'async', + 'processor.options' => array('sec' => 0, 'usec' => 0), + + 'plugins' => array( + 'Pong', + 'NickServ', + 'AutoJoin', + 'Statusnet', + ), + + 'plugins.autoload' => true, + + // Uncomment to enable debugging output + //'ui.enabled' => true, + + 'nickserv.password' => $this->plugin->nickservpassword, + 'nickserv.identify_message' => $this->plugin->nickservidentifyregexp, + + 'autojoin.channels' => $this->plugin->channels, + + 'statusnet.messagecallback' => array($this, 'handle_irc_message'), + 'statusnet.regcallback' => array($this, 'handle_reg_response'), + 'statusnet.connectedcallback' => array($this, 'handle_connected'), + 'statusnet.unregregexp' => $this->plugin->unregregexp, + 'statusnet.regregexp' => $this->plugin->regregexp + ) + ); + + $this->conn->setConfig($config); + $this->conn->connect(); + $this->lastPing = time(); + $this->lastMessage = time(); + } + return $this->conn; + } + + /** + * Called via a callback when a message is received + * Passes it back to the queuing system + * + * @param array $data Data + * @return boolean + */ + public function handle_irc_message($data) { + $this->plugin->enqueueIncomingRaw($data); + return true; + } + + /** + * Called via a callback when NickServ responds to + * the bots query asking if a nick is registered + * + * @param array $data Data + * @return void + */ + public function handle_reg_response($data) { + // Retrieve data + $screenname = $data['screenname']; + $nickdata = $this->regChecks[$screenname]; + $usernick = $nickdata['user']->nickname; + + if (isset($this->regChecksLookup[$usernick])) { + if ($data['registered']) { + // Send message + $this->plugin->sendConfirmationCode($screenname, $nickdata['code'], $nickdata['user'], true); + } else { + $this->plugin->sendMessage($screenname, _m('Your nickname is not registered so IRC connectivity cannot be enabled')); + + $confirm = new Confirm_address(); + + $confirm->user_id = $user->id; + $confirm->address_type = $this->plugin->transport; + + if ($confirm->find(true)) { + $result = $confirm->delete(); + + if (!$result) { + common_log_db_error($confirm, 'DELETE', __FILE__); + // TRANS: Server error thrown on database error canceling IM address confirmation. + $this->serverError(_('Couldn\'t delete confirmation.')); + return; + } + } + } + + // Unset lookup value + unset($this->regChecksLookup[$usernick]); + + // Unset data + unset($this->regChecks[$screename]); + } + } + + /** + * Called when the connection is established + * + * @return void + */ + public function handle_connected() { + $this->connected = true; + } + + /** + * Enters a message into the database for sending when ready + * + * @param string $command Command + * @param array $args Arguments + * @return boolean + */ + protected function enqueue_waiting_message($data) { + $wm = new Irc_waiting_message(); + + $wm->data = serialize($data); + $wm->prioritise = $data['prioritise']; + $wm->attempts = 0; + $wm->created = common_sql_now(); + $result = $wm->insert(); + + if (!$result) { + common_log_db_error($wm, 'INSERT', __FILE__); + throw new ServerException('DB error inserting IRC waiting queue item'); + } + + return true; + } + + /** + * Send a message using the daemon + * + * @param $data Message data + * @return boolean true on success + */ + public function send_raw_message($data) { + $this->connect(); + if (!$this->conn) { + return false; + } + + if ($data['type'] != 'delayedmessage') { + if ($data['type'] != 'message') { + // Nick checking + $nickdata = $data['nickdata']; + $usernick = $nickdata['user']->nickname; + $screenname = $nickdata['screenname']; + + // Cancel any existing checks for this user + if (isset($this->regChecksLookup[$usernick])) { + unset($this->regChecks[$this->regChecksLookup[$usernick]]); + } + + $this->regChecks[$screenname] = $nickdata; + $this->regChecksLookup[$usernick] = $screenname; + } + + // If there is a backlog or we need to wait, queue the message + if ($this->messageWaiting || time() - $this->lastMessage < 1) { + $this->enqueue_waiting_message( + array( + 'type' => 'delayedmessage', + 'prioritise' => $data['prioritise'], + 'data' => $data['data'] + ) + ); + $this->messageWaiting = true; + return true; + } + } + + try { + $this->conn->send($data['data']['command'], $data['data']['args']); + } catch (Phergie_Driver_Exception $e) { + $this->connected = false; + $this->conn->reconnect(); + return false; + } + + $this->lastMessage = time(); + return true; + } + + /** + * Sends a ping + * + * @return void + */ + protected function sendPing() { + $this->lastPing = time(); + $this->conn->send('PING', $this->lastPing); + } +} diff --git a/plugins/LdapAuthentication/locale/LdapAuthentication.pot b/plugins/LdapAuthentication/locale/LdapAuthentication.pot index 8f09b1e51e..850b1e2c45 100644 --- a/plugins/LdapAuthentication/locale/LdapAuthentication.pot +++ b/plugins/LdapAuthentication/locale/LdapAuthentication.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/LdapAuthentication/locale/es/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/es/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..46ac5424cc --- /dev/null +++ b/plugins/LdapAuthentication/locale/es/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"La extensión de Autenticación LDAP permite a StatusNet manejar la " +"autenticación a través de LDAP." diff --git a/plugins/LdapAuthentication/locale/fr/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/fr/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..e6e7609d7f --- /dev/null +++ b/plugins/LdapAuthentication/locale/fr/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to French (Français) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:09+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"L’extension LDAP Authentication permet à StatusNet de gérer l’identification " +"par LDAP." diff --git a/plugins/LdapAuthentication/locale/he/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/he/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..ef33c05991 --- /dev/null +++ b/plugins/LdapAuthentication/locale/he/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LdapAuthentication to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "תוסף האימות מול LDAP מאפשר ל־StatusNet לטפל באימות דרך LDAP." diff --git a/plugins/LdapAuthentication/locale/ia/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/ia/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..6ca331021a --- /dev/null +++ b/plugins/LdapAuthentication/locale/ia/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Le plug-in LDAP Authentication permitte que StatusNet manea le " +"authentication via LDAP." diff --git a/plugins/LdapAuthentication/locale/id/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/id/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..e47193a630 --- /dev/null +++ b/plugins/LdapAuthentication/locale/id/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Pengaya LDAP Authentication memungkinkan StatusNet untuk menangani " +"autentikasi melalui LDAP." diff --git a/plugins/LdapAuthentication/locale/ja/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/ja/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..863f6d0823 --- /dev/null +++ b/plugins/LdapAuthentication/locale/ja/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - LdapAuthentication to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Japanese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"LDAP認証プラグインは、StatusNetにLDAPによる認証を処理させることができます。" diff --git a/plugins/LdapAuthentication/locale/mk/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/mk/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..1cbff8ef89 --- /dev/null +++ b/plugins/LdapAuthentication/locale/mk/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Приклучокот за потврдување LDAP му овозможува на StatusNet да работи со " +"потврдувања преку LDAP." diff --git a/plugins/LdapAuthentication/locale/nb/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/nb/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..e5ff996541 --- /dev/null +++ b/plugins/LdapAuthentication/locale/nb/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Utvidelsen LDAP Authentication gjør det mulig for StatusNet å håndtere " +"autentisering gjennom LDAP." diff --git a/plugins/LdapAuthentication/locale/nl/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/nl/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..b72f51d011 --- /dev/null +++ b/plugins/LdapAuthentication/locale/nl/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"De plug-in LDAP-authenticatie maakt het mogelijk om authenticatie voor " +"StatusNet via LDAP af te handelen." diff --git a/plugins/LdapAuthentication/locale/pt_BR/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/pt_BR/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..a0f35cfcec --- /dev/null +++ b/plugins/LdapAuthentication/locale/pt_BR/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthentication to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Brazilian Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"O plugin de autenticação LDAP permite ao StatusNet manejar a autenticação " +"através de LDAP." diff --git a/plugins/LdapAuthentication/locale/ru/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/ru/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..9060aabf7c --- /dev/null +++ b/plugins/LdapAuthentication/locale/ru/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthentication to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Плагин аутентификации LDAP позволяет обрабатывать запросы к StatusNet через " +"сетевой протокол LDAP." diff --git a/plugins/LdapAuthentication/locale/tl/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/tl/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..08164c4b5c --- /dev/null +++ b/plugins/LdapAuthentication/locale/tl/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthentication to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Ang pamasak na Pagpapatunay ng LDAP ay nagpapahintulot sa StatusNet na " +"panghawakan ang pagpapatunay sa pamamagitan ng LDAP." diff --git a/plugins/LdapAuthentication/locale/uk/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/uk/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..9a17300f91 --- /dev/null +++ b/plugins/LdapAuthentication/locale/uk/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthentication to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "" +"Додаток автентифікації LDAP дозволяє обробляти запити автентифікації за " +"допомогою LDAP." diff --git a/plugins/LdapAuthentication/locale/zh_CN/LC_MESSAGES/LdapAuthentication.po b/plugins/LdapAuthentication/locale/zh_CN/LC_MESSAGES/LdapAuthentication.po new file mode 100644 index 0000000000..feb8a31baf --- /dev/null +++ b/plugins/LdapAuthentication/locale/zh_CN/LC_MESSAGES/LdapAuthentication.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - LdapAuthentication to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LdapAuthenticationPlugin.php:146 +msgid "" +"The LDAP Authentication plugin allows for StatusNet to handle authentication " +"through LDAP." +msgstr "LDAP 验证插件允许 StatusNet 通过 LDAP 处理验证。" diff --git a/plugins/LdapAuthorization/locale/LdapAuthorization.pot b/plugins/LdapAuthorization/locale/LdapAuthorization.pot index 8156f6146f..ea248aa171 100644 --- a/plugins/LdapAuthorization/locale/LdapAuthorization.pot +++ b/plugins/LdapAuthorization/locale/LdapAuthorization.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/LdapAuthorization/locale/es/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/es/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..fcef50189e --- /dev/null +++ b/plugins/LdapAuthorization/locale/es/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"La extensión de Autorización LDAP permite a StatusNet para manejar la " +"autorización a través de LDAP." diff --git a/plugins/LdapAuthorization/locale/fr/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/fr/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..6d795562fe --- /dev/null +++ b/plugins/LdapAuthorization/locale/fr/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"L’extension LDAP Authorization permet à StatusNet de gérer l’autorisation " +"par LDAP." diff --git a/plugins/LdapAuthorization/locale/he/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/he/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..0bfd2d76a0 --- /dev/null +++ b/plugins/LdapAuthorization/locale/he/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LdapAuthorization to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "תוסף האימות מול LDAP מאפשר ל־StatusNet לטפל באימות דרך LDAP." diff --git a/plugins/LdapAuthorization/locale/ia/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/ia/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..07d8c26ad9 --- /dev/null +++ b/plugins/LdapAuthorization/locale/ia/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Le plug-in LDAP Authorization permitte que StatusNet manea le autorisation " +"via LDAP." diff --git a/plugins/LdapAuthorization/locale/id/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/id/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..46136b8651 --- /dev/null +++ b/plugins/LdapAuthorization/locale/id/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Pengaya LDAP Authorization memungkinkan StatusNet menangani otorisasi " +"melalui LDAP." diff --git a/plugins/LdapAuthorization/locale/mk/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/mk/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..3e8e23a8de --- /dev/null +++ b/plugins/LdapAuthorization/locale/mk/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Приклучокот за овластување LDAP му овозможува на StatusNet да работи со " +"овластувања преку LDAP." diff --git a/plugins/LdapAuthorization/locale/nb/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/nb/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..bed810de76 --- /dev/null +++ b/plugins/LdapAuthorization/locale/nb/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Utvidelsen LDAP Authorization gjør det mulig for StatusNet å håndtere " +"autorisasjon gjennom LDAP." diff --git a/plugins/LdapAuthorization/locale/nl/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/nl/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..eda2edbb4b --- /dev/null +++ b/plugins/LdapAuthorization/locale/nl/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"De plug-in LDAP-autorisatie maakt het mogelijk om autorisatie voor StatusNet " +"via LDAP af te handelen." diff --git a/plugins/LdapAuthorization/locale/pt_BR/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/pt_BR/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..a9959242f5 --- /dev/null +++ b/plugins/LdapAuthorization/locale/pt_BR/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthorization to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Brazilian Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"O plugin de autorização LDAP permite ao StatusNet manejar a autorização " +"através de LDAP." diff --git a/plugins/LdapAuthorization/locale/ru/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/ru/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..9577864f81 --- /dev/null +++ b/plugins/LdapAuthorization/locale/ru/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthorization to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Плагин авторизации LDAP позволяет обрабатывать запросы к StatusNet через " +"сетевой протокол LDAP." diff --git a/plugins/LdapAuthorization/locale/tl/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/tl/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..ca598f5658 --- /dev/null +++ b/plugins/LdapAuthorization/locale/tl/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - LdapAuthorization to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Ang pamasak na Pahintulot na pang-LDAP ay nagpapahintulot sa StatusNet na " +"panghawakan ang pahintulot sa pamamagitan ng LDAP." diff --git a/plugins/LdapAuthorization/locale/uk/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/uk/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..bc354ab71a --- /dev/null +++ b/plugins/LdapAuthorization/locale/uk/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LdapAuthorization to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "" +"Додаток авторизації LDAP дозволяє обробляти запити авторизації за допомогою " +"LDAP." diff --git a/plugins/LdapAuthorization/locale/zh_CN/LC_MESSAGES/LdapAuthorization.po b/plugins/LdapAuthorization/locale/zh_CN/LC_MESSAGES/LdapAuthorization.po new file mode 100644 index 0000000000..e1bb991988 --- /dev/null +++ b/plugins/LdapAuthorization/locale/zh_CN/LC_MESSAGES/LdapAuthorization.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - LdapAuthorization to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LdapAuthorization\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:10+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:13:50+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-ldapauthorization\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LdapAuthorizationPlugin.php:124 +msgid "" +"The LDAP Authorization plugin allows for StatusNet to handle authorization " +"through LDAP." +msgstr "LDAP 授权插件允许 StatusNet 通过 LDAP 处理授权。" diff --git a/plugins/LdapCommon/LdapCommon.php b/plugins/LdapCommon/LdapCommon.php index 1f1647a753..3afcd824f9 100644 --- a/plugins/LdapCommon/LdapCommon.php +++ b/plugins/LdapCommon/LdapCommon.php @@ -60,13 +60,13 @@ class LdapCommon $this->ldap_config = $this->get_ldap_config(); if(!isset($this->host)){ - throw new Exception("must specify a host"); + throw new Exception(_m("A host must be specified.")); } if(!isset($this->basedn)){ - throw new Exception("must specify a basedn"); + throw new Exception(_m('"basedn" must be specified.')); } if(!isset($this->attributes['username'])){ - throw new Exception("username attribute must be set."); + throw new Exception(_m('The username attribute must be set.')); } } @@ -126,11 +126,11 @@ class LdapCommon } throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); } - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { $cacheObj = new MemcacheSchemaCache( array('c'=>$c, - 'cacheKey' => common_cache_key('ldap_schema:' . $config_id))); + 'cacheKey' => Cache::key('ldap_schema:' . $config_id))); $ldap->registerSchemaCache($cacheObj); } self::$ldap_connections[$config_id] = $ldap; @@ -140,10 +140,16 @@ class LdapCommon function checkPassword($username, $password) { - $entry = $this->get_user($username); + $entry = $this->get_user($username,array('dn' => 'dn')); if(!$entry){ return false; }else{ + if(empty($password)) { + //NET_LDAP2 will do an anonymous bind if bindpw is not set / empty string + //which causes all login attempts that involve a blank password to appear + //to succeed. Which is obviously not good. + return false; + } $config = $this->get_ldap_config(); $config['binddn']=$entry->dn(); $config['bindpw']=$password; @@ -162,7 +168,7 @@ class LdapCommon //throw new Exception(_('Sorry, changing LDAP passwords is not supported at this time')); return false; } - $entry = $this->get_user($username); + $entry = $this->get_user($username,array('dn' => 'dn')); if(!$entry){ return false; }else{ @@ -173,7 +179,7 @@ class LdapCommon $ldap = $this->get_ldap_connection($config); $entry = $this->get_user($username,array(),$ldap); - + $newCryptedPassword = $this->hashPassword($newpassword, $this->password_encoding); if ($newCryptedPassword===false) { return false; @@ -254,15 +260,14 @@ class LdapCommon * @return string The hashed password. * */ - - function hashPassword( $passwordClear, $encodageType ) + function hashPassword( $passwordClear, $encodageType ) { $encodageType = strtolower( $encodageType ); switch( $encodageType ) { - case 'crypt': - $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2)); + case 'crypt': + $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2)); break; - + case 'ext_des': // extended des crypt. see OpenBSD crypt man page. if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) {return FALSE;} //Your system crypt library does not support extended DES encryption. @@ -345,8 +350,7 @@ class LdapCommon * @param int $length The length of the salt string to generate. * @return string The generated salt string. */ - - function randomSalt( $length ) + function randomSalt( $length ) { $possible = '0123456789'. 'abcdefghijklmnopqrstuvwxyz'. @@ -360,10 +364,8 @@ class LdapCommon return $str; } - } class LdapInvalidCredentialsException extends Exception { - } diff --git a/plugins/LdapCommon/MemcacheSchemaCache.php b/plugins/LdapCommon/MemcacheSchemaCache.php index 4ee2e8e16a..960164fd31 100644 --- a/plugins/LdapCommon/MemcacheSchemaCache.php +++ b/plugins/LdapCommon/MemcacheSchemaCache.php @@ -1,5 +1,5 @@ c = $cfg['c']; @@ -57,18 +57,18 @@ class MemcacheSchemaCache implements Net_LDAP2_SchemaCache } /** - * Store a schema object in the cache - * - * This method will be called, if Net_LDAP2 has fetched a fresh - * schema object from LDAP and wants to init or refresh the cache. - * - * To invalidate the cache and cause Net_LDAP2 to refresh the cache, - * you can call this method with null or false as value. - * The next call to $ldap->schema() will then refresh the caches object. - * - * @param mixed $schema The object that should be cached - * @return true|Net_LDAP2_Error|false - */ + * Store a schema object in the cache + * + * This method will be called, if Net_LDAP2 has fetched a fresh + * schema object from LDAP and wants to init or refresh the cache. + * + * To invalidate the cache and cause Net_LDAP2 to refresh the cache, + * you can call this method with null or false as value. + * The next call to $ldap->schema() will then refresh the caches object. + * + * @param mixed $schema The object that should be cached + * @return true|Net_LDAP2_Error|false + */ public function storeSchema($schema) { return $this->c->set($this->cacheKey, $schema); } diff --git a/plugins/LilUrl/LilUrlPlugin.php b/plugins/LilUrl/LilUrlPlugin.php index 06ea49ff57..b63cc8a556 100644 --- a/plugins/LilUrl/LilUrlPlugin.php +++ b/plugins/LilUrl/LilUrlPlugin.php @@ -38,7 +38,7 @@ class LilUrlPlugin extends UrlShortenerPlugin function onInitializePlugin(){ parent::onInitializePlugin(); if(!isset($this->serviceUrl)){ - throw new Exception("must specify a serviceUrl"); + throw new Exception(_m('A serviceUrl must be specified.')); } } @@ -69,4 +69,3 @@ class LilUrlPlugin extends UrlShortenerPlugin return true; } } - diff --git a/plugins/LilUrl/locale/LilUrl.pot b/plugins/LilUrl/locale/LilUrl.pot index 47ed367277..a5dbcb653a 100644 --- a/plugins/LilUrl/locale/LilUrl.pot +++ b/plugins/LilUrl/locale/LilUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,10 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "" + #: LilUrlPlugin.php:68 #, php-format msgid "Uses %1$s URL-shortener service." diff --git a/plugins/LilUrl/locale/de/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/de/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..4fa94be401 --- /dev/null +++ b/plugins/LilUrl/locale/de/LC_MESSAGES/LilUrl.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LilUrl to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Eine „serviceUrl“ muss angegeben werden." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "Benutzung des %1$s-URL-Kürzungsdienstes." diff --git a/plugins/LilUrl/locale/fr/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/fr/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..3d006f88df --- /dev/null +++ b/plugins/LilUrl/locale/fr/LC_MESSAGES/LilUrl.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - LilUrl to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Une URL de service doit être spécifiée." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Utilise le service de raccourcissement d’URL %1$s." diff --git a/plugins/LilUrl/locale/he/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/he/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..04bf124ebd --- /dev/null +++ b/plugins/LilUrl/locale/he/LC_MESSAGES/LilUrl.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LilUrl to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "יש לציין serviceUrl (כתובת השירות)" + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "שימוש בשירות קיצור הכתובות %1$s." diff --git a/plugins/LilUrl/locale/ia/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/ia/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..5133030758 --- /dev/null +++ b/plugins/LilUrl/locale/ia/LC_MESSAGES/LilUrl.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - LilUrl to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Un serviceUrl debe esser specificate." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Usa le servicio de accurtamento de URL %1$s." diff --git a/plugins/LilUrl/locale/id/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/id/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..0fee92499a --- /dev/null +++ b/plugins/LilUrl/locale/id/LC_MESSAGES/LilUrl.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LilUrl to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Sebuah serviceUrl harus disebutkan." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "Menggunakan layanan pemendek URL %1$s." diff --git a/plugins/LilUrl/locale/ja/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/ja/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..8d70190b66 --- /dev/null +++ b/plugins/LilUrl/locale/ja/LC_MESSAGES/LilUrl.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LilUrl to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Japanese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "" + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "%1$sをURL短縮サービスとして利用する。" diff --git a/plugins/LilUrl/locale/mk/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/mk/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..1661cca61d --- /dev/null +++ b/plugins/LilUrl/locale/mk/LC_MESSAGES/LilUrl.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - LilUrl to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Мора да се назначи адреса на службата (serviceUrl)." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Користи %1$s - служба за скратување на URL-" +"адреси." diff --git a/plugins/LilUrl/locale/nb/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/nb/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..0a9678950d --- /dev/null +++ b/plugins/LilUrl/locale/nb/LC_MESSAGES/LilUrl.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - LilUrl to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "En tjeneste-Url må spesifiseres." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "Bruker URL-forkortertjenesten %1$s." diff --git a/plugins/LilUrl/locale/nl/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/nl/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..02ee24f93d --- /dev/null +++ b/plugins/LilUrl/locale/nl/LC_MESSAGES/LilUrl.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - LilUrl to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Er moet een serviceUrl opgegeven worden." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Gebruikt de dienst %1$s om URL's korter te " +"maken." diff --git a/plugins/LilUrl/locale/ru/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/ru/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..afac9282bb --- /dev/null +++ b/plugins/LilUrl/locale/ru/LC_MESSAGES/LilUrl.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - LilUrl to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Должен быть указан URL-адрес сервису." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "Использование службы сокращения URL %1$s." diff --git a/plugins/LilUrl/locale/tl/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/tl/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..3adb1c1db1 --- /dev/null +++ b/plugins/LilUrl/locale/tl/LC_MESSAGES/LilUrl.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - LilUrl to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "Dapat tukuyin ang isang URL ng palingkuran." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Gumagamit ng %1$s na serbisyong pampaikli ng " +"URL." diff --git a/plugins/LilUrl/locale/uk/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/uk/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..de56f16370 --- /dev/null +++ b/plugins/LilUrl/locale/uk/LC_MESSAGES/LilUrl.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - LilUrl to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "URL-адресу сервісу має бути зазначено." + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "" +"Використання %1$s для скорочення URL-адрес." diff --git a/plugins/LilUrl/locale/zh_CN/LC_MESSAGES/LilUrl.po b/plugins/LilUrl/locale/zh_CN/LC_MESSAGES/LilUrl.po new file mode 100644 index 0000000000..85a1aa8963 --- /dev/null +++ b/plugins/LilUrl/locale/zh_CN/LC_MESSAGES/LilUrl.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - LilUrl to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LilUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-lilurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LilUrlPlugin.php:43 +msgid "A serviceUrl must be specified." +msgstr "必须设置一个服务的地址 Url。" + +#: LilUrlPlugin.php:68 +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "使用 %1$s 短链接服务" diff --git a/plugins/LinkPreview/LinkPreviewPlugin.php b/plugins/LinkPreview/LinkPreviewPlugin.php new file mode 100644 index 0000000000..65f896ca27 --- /dev/null +++ b/plugins/LinkPreview/LinkPreviewPlugin.php @@ -0,0 +1,101 @@ +. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Some UI extras for now... + * + * @package LinkPreviewPlugin + * @maintainer Brion Vibber + */ +class LinkPreviewPlugin extends Plugin +{ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'LinkPreview', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:LinkPreview', + 'rawdescription' => + _m('UI extensions previewing thumbnails from links.')); + + return true; + } + + /** + * Load JS at runtime if we're logged in. + * + * @param Action $action + * @return boolean hook result + */ + function onEndShowScripts($action) + { + $user = common_current_user(); + if ($user && common_config('attachments', 'process_links')) { + $action->script('plugins/LinkPreview/linkpreview.min.js'); + $data = json_encode(array( + 'api' => common_local_url('oembedproxy'), + 'width' => common_config('attachments', 'thumbwidth'), + 'height' => common_config('attachments', 'thumbheight'), + )); + $action->inlineScript('$(function() {SN.Init.LinkPreview && SN.Init.LinkPreview('.$data.');})'); + } + return true; + } + + /** + * Autoloader + * + * Loads our classes if they're requested. + * + * @param string $cls Class requested + * + * @return boolean hook return + */ + function onAutoload($cls) + { + $lower = strtolower($cls); + switch ($lower) + { + case 'oembedproxyaction': + require_once dirname(__FILE__) . '/' . $lower . '.php'; + return false; + default: + return true; + } + } + + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m URL mapper + * + * @return boolean hook return + */ + function onStartInitializeRouter($m) + { + $m->connect('main/oembed/proxy', + array('action' => 'oembedproxy')); + + return true; + } +} diff --git a/plugins/LinkPreview/linkpreview.js b/plugins/LinkPreview/linkpreview.js new file mode 100644 index 0000000000..407934c5ae --- /dev/null +++ b/plugins/LinkPreview/linkpreview.js @@ -0,0 +1,247 @@ +/** + * (c) 2010 StatusNet, Inc. + */ + +(function() { + /** + * Quickie wrapper around ooembed JSON lookup + */ + var oEmbed = { + api: 'http://oohembed.com/oohembed', + width: 100, + height: 75, + cache: {}, + callbacks: {}, + + /** + * Do a cached oEmbed lookup for the given URL. + * + * @param {String} url + * @param {function} callback + */ + lookup: function(url, callback) + { + if (typeof oEmbed.cache[url] == "object") { + // We already have a successful lookup. + callback(oEmbed.cache[url]); + } else if (typeof oEmbed.callbacks[url] == "undefined") { + // No lookup yet... Start it! + oEmbed.callbacks[url] = [callback]; + + oEmbed.rawLookup(url, function(data) { + oEmbed.cache[url] = data; + var callbacks = oEmbed.callbacks[url]; + oEmbed.callbacks[url] = undefined; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](data); + } + }); + } else { + // A lookup is in progress. + oEmbed.callbacks[url].push(callback); + } + }, + + /** + * Do an oEmbed lookup for the given URL. + * + * @fixme proxy through ourselves if possible? + * @fixme use the global thumbnail size settings + * + * @param {String} url + * @param {function} callback + */ + rawLookup: function(url, callback) + { + var params = { + url: url, + format: 'json', + maxwidth: oEmbed.width, + maxheight: oEmbed.height, + token: $('#token').val() + }; + $.ajax({ + url: oEmbed.api, + data: params, + dataType: 'json', + success: function(data, xhr) { + callback(data); + }, + error: function(xhr, textStatus, errorThrown) { + callback(null); + } + }); + } + }; + + var LinkPreview = { + links: [], + state: [], + refresh: [], + + /** + * Find URL links from the source text that may be interesting. + * + * @param {String} text + * @return {Array} list of URLs + */ + findLinks: function (text) + { + // @fixme match this to core code + var re = /(?:^| )(https?:\/\/.+?\/.+?)(?= |$)/mg; + var links = []; + var matches; + while ((matches = re.exec(text)) !== null) { + links.push(matches[1]); + } + return links; + }, + + /** + * Start looking up info for a link preview... + * May start async data loads. + * + * @param {number} col: column number to insert preview into + */ + prepLinkPreview: function(col) + { + var id = 'link-preview-' + col; + var url = LinkPreview.links[col]; + LinkPreview.refresh[col] = false; + LinkPreview.markLoading(col); + + oEmbed.lookup(url, function(data) { + var thumb = null; + var width = 100; + if (data && typeof data.thumbnail_url == "string") { + thumb = data.thumbnail_url; + if (typeof data.thumbnail_width !== "undefined") { + if (data.thumbnail_width < width) { + width = data.thumbnail_width; + } + } + } else if (data && data.type == 'photo' && typeof data.url == "string") { + thumb = data.url; + if (typeof data.width !== "undefined") { + if (data.width < width) { + width = data.width; + } + } + } + + if (thumb) { + var link = $(''); + link.find('a') + .attr('href', url) + .attr('target', '_blank') + .last() + .find('img') + .attr('src', thumb) + .attr('width', width) + .attr('title', data.title || data.url || url); + $('#' + id).empty(); + $('#' + id).append(link); + } else { + // No thumbnail available or error retriving it. + LinkPreview.clearLink(col); + } + + if (LinkPreview.refresh[col]) { + // Darn user has typed more characters. + // Go fetch another link! + LinkPreview.prepLinkPreview(col); + } else { + LinkPreview.markDone(col); + } + }); + }, + + /** + * Update the live preview section with links found in the given text. + * May start async data loads. + * + * @param {String} text: free-form input text + */ + previewLinks: function(text) + { + var i; + var old = LinkPreview.links; + var links = LinkPreview.findLinks(text); + LinkPreview.links = links; + + // Check for existing common elements... + for (i = 0; i < old.length && i < links.length; i++) { + if (links[i] != old[i]) { + if (LinkPreview.state[i] == "loading") { + // Slate this column for a refresh when this one's done. + LinkPreview.refresh[i] = true; + } else { + // Change an existing entry! + LinkPreview.prepLinkPreview(i); + } + } + } + if (links.length > old.length) { + // Adding new entries, whee! + for (i = old.length; i < links.length; i++) { + LinkPreview.addPreviewArea(i); + LinkPreview.prepLinkPreview(i); + } + } else if (old.length > links.length) { + // Remove preview entries for links that have been removed. + for (i = links.length; i < old.length; i++) { + LinkPreview.clearLink(i); + } + } + }, + + addPreviewArea: function(col) { + var id = 'link-preview-' + col; + $('#link-preview').append(''); + }, + + clearLink: function(col) { + var id = 'link-preview-' + col; + $('#' + id).html(''); + }, + + markLoading: function(col) { + LinkPreview.state[col] = "loading"; + var id = 'link-preview-' + col; + $('#' + id).attr('style', 'opacity: 0.5'); + }, + + markDone: function(col) { + LinkPreview.state[col] = "done"; + var id = 'link-preview-' + col; + $('#' + id).removeAttr('style'); + }, + + /** + * Clear out any link preview data. + */ + clear: function() { + LinkPreview.links = []; + $('#link-preview').empty(); + } + }; + + SN.Init.LinkPreview = function(params) { + if (params.api) oEmbed.api = params.api; + if (params.width) oEmbed.width = params.width; + if (params.height) oEmbed.height = params.height; + + $('#form_notice') + .append('') + .bind('reset', function() { + LinkPreview.clear(); + }); + + // Piggyback on the counter update... + var origCounter = SN.U.Counter; + SN.U.Counter = function(form) { + LinkPreview.previewLinks($('#notice_data-text').val()); + return origCounter(form); + } + } +})(); diff --git a/plugins/LinkPreview/linkpreview.min.js b/plugins/LinkPreview/linkpreview.min.js new file mode 100644 index 0000000000..a6fb9dba83 --- /dev/null +++ b/plugins/LinkPreview/linkpreview.min.js @@ -0,0 +1 @@ +(function(){var a={api:"http://oohembed.com/oohembed",width:100,height:75,cache:{},callbacks:{},lookup:function(c,d){if(typeof a.cache[c]=="object"){d(a.cache[c])}else{if(typeof a.callbacks[c]=="undefined"){a.callbacks[c]=[d];a.rawLookup(c,function(g){a.cache[c]=g;var f=a.callbacks[c];a.callbacks[c]=undefined;for(var e=0;e');h.find("a").attr("href",c).attr("target","_blank").last().find("img").attr("src",f).attr("width",g).attr("title",i.title||i.url||c);$("#"+e).empty();$("#"+e).append(h)}else{b.clearLink(d)}if(b.refresh[d]){b.prepLinkPreview(d)}else{b.markDone(d)}})},previewLinks:function(f){var e;var c=b.links;var d=b.findLinks(f);b.links=d;for(e=0;ec.length){for(e=c.length;ed.length){for(e=d.length;e')},clearLink:function(c){var d="link-preview-"+c;$("#"+d).html("")},markLoading:function(c){b.state[c]="loading";var d="link-preview-"+c;$("#"+d).attr("style","opacity: 0.5")},markDone:function(c){b.state[c]="done";var d="link-preview-"+c;$("#"+d).removeAttr("style")},clear:function(){b.links=[];$("#link-preview").empty()}};SN.Init.LinkPreview=function(c){if(c.api){a.api=c.api}if(c.width){a.width=c.width}if(c.height){a.height=c.height}$("#form_notice").append('').bind("reset",function(){b.clear()});var d=SN.U.Counter;SN.U.Counter=function(e){b.previewLinks($("#notice_data-text").val());return d(e)}}})(); \ No newline at end of file diff --git a/plugins/LinkPreview/locale/LinkPreview.pot b/plugins/LinkPreview/locale/LinkPreview.pot new file mode 100644 index 0000000000..860ed45d6f --- /dev/null +++ b/plugins/LinkPreview/locale/LinkPreview.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" diff --git a/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..d6745ff164 --- /dev/null +++ b/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LinkPreview to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Extensions d’interface utilisateur pour prévisualiser des vignettes depuis " +"les liens." diff --git a/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..b66ad5dcbc --- /dev/null +++ b/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - LinkPreview to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "הרחבות מנשק משתמש המאפשרות צפייה בתמונות ממוזערות של קישורים." diff --git a/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..f16bdf5531 --- /dev/null +++ b/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LinkPreview to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Extensiones del interfacie de usator pro previsualisar miniaturas de " +"ligamines." diff --git a/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..0c286067a0 --- /dev/null +++ b/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - LinkPreview to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Додатоци за корисничкиот посредник што даваат преглед на минијатури од врски." diff --git a/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..5c427a578f --- /dev/null +++ b/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LinkPreview to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Gebruikersinterfaceuitbreiding voor het weergeven van miniaturen voor " +"verwijzingen." diff --git a/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..7e0af65453 --- /dev/null +++ b/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - LinkPreview to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Extensões da interface, para antevisão de miniaturas a partir de links." diff --git a/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..1ed5565681 --- /dev/null +++ b/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LinkPreview to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Расширения пользовательского интерфейса для просмотр миниатюр из ссылок." diff --git a/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po new file mode 100644 index 0000000000..e8f412487d --- /dev/null +++ b/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LinkPreview to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LinkPreview\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-linkpreview\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LinkPreviewPlugin.php:39 +msgid "UI extensions previewing thumbnails from links." +msgstr "" +"Додаток до користувацького інтерфейсу для перегляду мініатюр з посилань." diff --git a/plugins/LinkPreview/oembedproxyaction.php b/plugins/LinkPreview/oembedproxyaction.php new file mode 100644 index 0000000000..bc80ee5cf9 --- /dev/null +++ b/plugins/LinkPreview/oembedproxyaction.php @@ -0,0 +1,87 @@ +. + * + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 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); +} + +/** + * Oembed proxy implementation + * + * This class provides an interface for our JS-side code to pull info on + * links from other sites, using either native oEmbed, our own custom + * handlers, or the oohEmbed.com offsite proxy service as configured. + * + * @category oEmbed + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 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 OembedproxyAction extends OembedAction +{ + + function handle($args) + { + // Trigger short error responses; not a human-readable web page. + StatusNet::setApi(true); + + // We're not a general oEmbed proxy service; limit to valid sessions. + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->clientError(_('There was a problem with your session token. '. + 'Try again, please.')); + } + + $format = $this->arg('format'); + if ($format && $format != 'json') { + throw new ClientException('Invalid format; only JSON supported.'); + } + + $url = $this->arg('url'); + if (!common_valid_http_url($url)) { + throw new ClientException('Invalid URL.'); + } + + $params = array(); + if ($this->arg('maxwidth')) { + $params['maxwidth'] = $this->arg('maxwidth'); + } + if ($this->arg('maxheight')) { + $params['maxheight'] = $this->arg('maxheight'); + } + + $data = oEmbedHelper::getObject($url, $params); + + $this->init_document('json'); + print json_encode($data); + } + +} diff --git a/plugins/LinkbackPlugin.php b/plugins/Linkback/LinkbackPlugin.php similarity index 99% rename from plugins/LinkbackPlugin.php rename to plugins/Linkback/LinkbackPlugin.php index 8e44beae18..797572d7f8 100644 --- a/plugins/LinkbackPlugin.php +++ b/plugins/Linkback/LinkbackPlugin.php @@ -49,7 +49,6 @@ define('LINKBACKPLUGIN_VERSION', '0.1'); * * @see Event */ - class LinkbackPlugin extends Plugin { var $notice = null; @@ -154,7 +153,6 @@ class LinkbackPlugin extends Plugin // Largely cadged from trackback_cls.php by // Ran Aroussi , GPL2 or any later version // http://phptrackback.sourceforge.net/ - function getTrackback($text, $url) { if (preg_match_all('/()/sm', $text, $match, PREG_SET_ORDER)) { diff --git a/plugins/Linkback/locale/Linkback.pot b/plugins/Linkback/locale/Linkback.pot new file mode 100644 index 0000000000..7324dc87b3 --- /dev/null +++ b/plugins/Linkback/locale/Linkback.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" diff --git a/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..1f5f55971c --- /dev/null +++ b/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Benachrichtigt Blog-Autoren wenn ihre Beiträge in Mikroblog-Nachrichten " +"verlinkt wurden mithilfe von Pingback- oder Trackback-Protokollen." diff --git a/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..718e6d6555 --- /dev/null +++ b/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:11+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Notificar a los autores de blogs cunado sus publicaciones hayan sido " +"vinculadas en mensajes de microblogs mediante protocolosPingback o Trackback protocols." diff --git a/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..f722555a01 --- /dev/null +++ b/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Avertissez les auteurs de blogues lorsque leurs publications ont été liées " +"dans des avis « microblogue », au moyen des protocoles Pingback ou Trackback." diff --git a/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..ce5ecf33d2 --- /dev/null +++ b/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"הודעה לכותבי בלוגים מתי נוסף קישור לרישומים שלהם בהודעות מיקרובלוגים באמצעות " +"הפרוטוקוליםPingback או Trackback." diff --git a/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..5e09629feb --- /dev/null +++ b/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Notificar autores de blogs quando lor articulos ha essite ligate in notas de " +"microblog usante le protocollos Pingback o Trackback." diff --git a/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..946f2391cf --- /dev/null +++ b/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Memberitahu penulis blog apabila kiriman mereka telah terhubung dengan " +"mikroblog menggunakan protokol Pingback atau Trackback ." diff --git a/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..b87e129e4a --- /dev/null +++ b/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Извести ги авторите на блоговите кога некој стави врска до нивните објави во " +"забелешки од микроблогови користејќи ги протоколите Pingback или Trackback." diff --git a/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..1477015596 --- /dev/null +++ b/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Varsle bloggforfattere når deres innlegg har blitt lenket til i " +"mikrobloggvarsler ved å bruke Pingback- eller Trackback-protokoller." diff --git a/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..322fc63e4b --- /dev/null +++ b/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Blogauteurs laten weten wanneer naar hun berichten wordt verwezen in " +"mededelingen met behulp van de protocollen Pingback of Trackback." diff --git a/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..46a3225068 --- /dev/null +++ b/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Linkback to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Уведомляет авторов блогов, когда на их сообщения были ссылки с помощью " +"протоколов Pingback или Trackback." diff --git a/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..c4d809bc79 --- /dev/null +++ b/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Ipaalam sa mga may-akda ng blog kapag ang kanilang ang mga pagpapaskil ay " +"ikinawing sa mga pabatid ng mikroblog sa pamamagitan ng mga protokol na Pingback o Trackback." diff --git a/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..34114d837e --- /dev/null +++ b/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Linkback to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Сповіщення авторів блоґів, якщо їхні дописи стають об’єктом уваги у " +"мікроблоґах, використовуючи протоколи Pingback або Trackback." diff --git a/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..76a44f0668 --- /dev/null +++ b/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - Linkback to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:12+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: LinkbackPlugin.php:241 +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"当博客的地址在消息中被发布时使用 PingbackTrackback 协议通知博客的作者。" diff --git a/plugins/LogFilter/LogFilterPlugin.php b/plugins/LogFilter/LogFilterPlugin.php new file mode 100644 index 0000000000..e2153e959c --- /dev/null +++ b/plugins/LogFilter/LogFilterPlugin.php @@ -0,0 +1,94 @@ +. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Example to disable all debug messages and those containing 'About to push': + * addPlugin('LogFilter', array( + * 'priority' => array(LOG_DEBUG => false), + * 'regex' => array('/About to push/' => false) + * )); + * + * @todo add an admin panel + * + * @package LogFilterPlugin + * @maintainer Brion Vibber + */ +class LogFilterPlugin extends Plugin +{ + public $default = true; // Set to false to require opting things in + public $priority = array(); // override by priority: array(LOG_ERR => true, LOG_DEBUG => false) + public $regex = array(); // override by regex match of message: array('/twitter/i' => false) + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'LogFilter', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:LogFilter', + 'rawdescription' => + _m('Provides server-side setting to filter log output by type or keyword.')); + + return true; + } + + /** + * Hook for the StartLog event in common_log(). + * If a message doesn't pass our filters, we'll abort it. + * + * @param string $priority + * @param string $msg + * @param string $filename + * @return boolean hook result code + */ + function onStartLog(&$priority, &$msg, &$filename) + { + if ($this->filter($priority, $msg)) { + // Let it through + return true; + } else { + // Abort -- this line will go to /dev/null :) + return false; + } + } + + /** + * Do the filtering... + * + * @param string $priority + * @param string $msg + * @return boolean true to let the log message be processed + */ + function filter($priority, $msg) + { + $state = $this->default; + if (array_key_exists($priority, $this->priority)) { + $state = $this->priority[$priority]; + } + foreach ($this->regex as $regex => $override) { + if (preg_match($regex, $msg)) { + $state = $override; + } + } + return $state; + } +} diff --git a/plugins/LogFilter/locale/LogFilter.pot b/plugins/LogFilter/locale/LogFilter.pot new file mode 100644 index 0000000000..40689c1537 --- /dev/null +++ b/plugins/LogFilter/locale/LogFilter.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" diff --git a/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..aa5e61beb1 --- /dev/null +++ b/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LogFilter to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Fournit une configuration côté serveur pour filtrer la sortie du journal " +"d’activité par type ou par mot-clé." diff --git a/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..c18fccd9f2 --- /dev/null +++ b/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - LogFilter to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "אספקת הגדרות צד־שרת לסינון פלט לפי סוג או לפי מילת מפתח." diff --git a/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..d6187ae7ce --- /dev/null +++ b/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LogFilter to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Forni un configuration al latere del servitor pro filtrar le producite " +"lineas de registro per typo o per parola-clave." diff --git a/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..6d1375b314 --- /dev/null +++ b/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LogFilter to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Овозможува поставка кај опслужувачот за филтрирање на дневничките изводи по " +"тип или клучен збор." diff --git a/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..e97f621736 --- /dev/null +++ b/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - LogFilter to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Biedt serverinstellingen om logboekuitvoer te filteren op type of trefwoord." diff --git a/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..bc090d5580 --- /dev/null +++ b/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - LogFilter to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Fornece uma configuração do lado do servidor para filtrar a saída do " +"registo, por tipo ou por um termo chave." diff --git a/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..439cc66c94 --- /dev/null +++ b/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - LogFilter to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Предоставляет серверный параметр для фильтрации выходных данных журнала по " +"типу или ключевому слову." diff --git a/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..88ae2633b5 --- /dev/null +++ b/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - LogFilter to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: LogFilterPlugin.php:49 +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Забезпечує на серверній стороні установки для фільтрації виводу журналу за " +"типом або ключовим словом." diff --git a/plugins/Mapstraction/Makefile b/plugins/Mapstraction/Makefile new file mode 100644 index 0000000000..3b13135ee0 --- /dev/null +++ b/plugins/Mapstraction/Makefile @@ -0,0 +1,14 @@ +.fake: clean all + +TARGETS=usermap-mxn-openlayers.min.js + +CORE=js/mxn.js js/mxn.core.js +USERMAP=usermap.js + +all: $(TARGETS) + +clean: + rm -f $(TARGETS) + +usermap-mxn-openlayers.min.js: $(CORE) js/mxn.openlayers.core.js $(USERMAP) + cat $+ | yui-compressor -o $@ --type=js diff --git a/plugins/Mapstraction/MapstractionPlugin.php b/plugins/Mapstraction/MapstractionPlugin.php index e7240a6449..d5b4e5052b 100644 --- a/plugins/Mapstraction/MapstractionPlugin.php +++ b/plugins/Mapstraction/MapstractionPlugin.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET')) { * * @seeAlso Location */ - class MapstractionPlugin extends Plugin { const VERSION = STATUSNET_VERSION; @@ -64,15 +63,14 @@ class MapstractionPlugin extends Plugin * * @return boolean event handler return */ - function onRouterInitialized($m) { $m->connect(':nickname/all/map', array('action' => 'allmap'), - array('nickname' => '['.NICKNAME_FMT.']{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname/map', array('action' => 'usermap'), - array('nickname' => '['.NICKNAME_FMT.']{1,64}')); + array('nickname' => Nickname::DISPLAY_FMT)); return true; } @@ -85,7 +83,6 @@ class MapstractionPlugin extends Plugin * * @return boolean event handler return */ - function onAutoload($cls) { switch ($cls) @@ -109,7 +106,6 @@ class MapstractionPlugin extends Plugin * * @return boolean event handler return */ - function onEndShowScripts($action) { $actionName = $action->trimmed('action'); @@ -129,11 +125,11 @@ class MapstractionPlugin extends Plugin urlencode($this->apikey))); break; case 'microsoft': - $action->script('http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6'); + $action->script((StatusNet::isHTTPS()?'https':'http') + '://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6'); break; case 'openlayers': - // XXX: is this not nice...? - $action->script('http://openlayers.org/api/OpenLayers.js'); + // Use our included stripped & minified OpenLayers. + $action->script(common_path('plugins/Mapstraction/OpenLayers/OpenLayers.js')); break; case 'yahoo': $action->script(sprintf('http://api.maps.yahoo.com/ajaxymap?v=3.8&appid=%s', @@ -144,11 +140,19 @@ class MapstractionPlugin extends Plugin return true; } - $action->script(sprintf('%s?(%s)', - common_path('plugins/Mapstraction/js/mxn.js'), - $this->provider)); + if ($this->provider == 'openlayers') { + // We have an optimized path for our default case. + // + // Note that OpenLayers.js needs to be separate, or it won't + // be able to find its UI images and styles. + $action->script(common_path('plugins/Mapstraction/usermap-mxn-openlayers.min.js')); + } else { + $action->script(sprintf('%s?(%s)', + common_path('plugins/Mapstraction/js/mxn.js'), + $this->provider)); - $action->script(common_path('plugins/Mapstraction/usermap.js')); + $action->script(common_path('plugins/Mapstraction/usermap.js')); + } $action->inlineScript(sprintf('var _provider = "%s";', $this->provider)); @@ -160,7 +164,8 @@ class MapstractionPlugin extends Plugin ' var user = null; '. (($actionName == 'showstream') ? ' user = scrapeUser(); ' : '') . ' var notices = scrapeNotices(user); ' . - ' showMapstraction($("#map_canvas"), notices); '. + ' var canvas = $("#map_canvas")[0]; ' . + ' if (typeof(canvas) != "undefined") { showMapstraction(canvas, notices); } '. '});'); } @@ -190,6 +195,7 @@ class MapstractionPlugin extends Plugin array('nickname' => $action->trimmed('nickname'))); $action->element('a', array('href' => $mapUrl), + // TRANS: Clickable item to allow opening the map in full size. _m("Full size")); $action->elementEnd('div'); @@ -203,8 +209,7 @@ class MapstractionPlugin extends Plugin 'homepage' => 'http://status.net/wiki/Plugin:Mapstraction', 'rawdescription' => _m('Show maps of users\' and friends\' notices '. - 'with Mapstraction '. - 'JavaScript library.')); + 'with Mapstraction.')); return true; } } diff --git a/plugins/Mapstraction/OpenLayers/Makefile b/plugins/Mapstraction/OpenLayers/Makefile new file mode 100644 index 0000000000..6d2ef7eacd --- /dev/null +++ b/plugins/Mapstraction/OpenLayers/Makefile @@ -0,0 +1,15 @@ +.fake: clean all + +TARGET=OpenLayers.js +SOURCEDIR=OpenLayers-2.10/ +HERE=`pwd` + +all: $(TARGET) + +clean: + rm -f $(TARGET) + +$(TARGET): statusnet.cfg + cp -f statusnet.cfg $(SOURCEDIR)/build/statusnet.cfg + (cd $(SOURCEDIR)/build && ./build.py statusnet.cfg) + yui-compressor $(SOURCEDIR)/build/OpenLayers.js -o $(TARGET) diff --git a/plugins/Mapstraction/OpenLayers/OpenLayers.js b/plugins/Mapstraction/OpenLayers/OpenLayers.js new file mode 100644 index 0000000000..ea42b1db4e --- /dev/null +++ b/plugins/Mapstraction/OpenLayers/OpenLayers.js @@ -0,0 +1 @@ +var OpenLayers={singleFile:true};(function(){var j=(typeof OpenLayers=="object"&&OpenLayers.singleFile);var a;window.OpenLayers={_scriptName:(!j)?"lib/OpenLayers.js":"OpenLayers.js",_getScriptLocation:function(){if(a!=undefined){return a}a="";var r=new RegExp("(^|(.*?\\/))("+OpenLayers._scriptName+")(\\?|$)");var n=document.getElementsByTagName("script");for(var p=0,h=n.length;p<\/script>"}else{var m=document.createElement("script");m.src=l+k[d];var f=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;f.appendChild(m)}}if(e){document.write(b.join(""))}}})();OpenLayers.VERSION_NUMBER="OpenLayers 2.10 -- $Revision: 10721 $";OpenLayers.String={startsWith:function(b,a){return(b.indexOf(a)==0)},contains:function(b,a){return(b.indexOf(a)!=-1)},trim:function(a){return a.replace(/^\s\s*/,"").replace(/\s\s*$/,"")},camelize:function(f){var d=f.split("-");var b=d[0];for(var c=1,a=d.length;c0){b=parseFloat(a.toPrecision(c))}return b},format:function(c,a,g,i){a=(typeof a!="undefined")?a:0;g=(typeof g!="undefined")?g:OpenLayers.Number.thousandsSeparator;i=(typeof i!="undefined")?i:OpenLayers.Number.decimalSeparator;if(a!=null){c=parseFloat(c.toFixed(a))}var b=c.toString().split(".");if(b.length==1&&a==null){a=0}var d=b[0];if(g){var e=/(-?[0-9]+)([0-9]{3})/;while(e.test(d)){d=d.replace(e,"$1"+g+"$2")}}var f;if(a==0){f=d}else{var h=b.length>1?b[1]:"0";if(a!=null){h=h+new Array(a-h.length+1).join("0")}f=d+i+h}return f}};if(!Number.prototype.limitSigDigs){Number.prototype.limitSigDigs=function(a){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{newMethod:"OpenLayers.Number.limitSigDigs"}));return OpenLayers.Number.limitSigDigs(this,a)}}OpenLayers.Function={bind:function(c,b){var a=Array.prototype.slice.apply(arguments,[2]);return function(){var d=a.concat(Array.prototype.slice.apply(arguments,[0]));return c.apply(b,d)}},bindAsEventListener:function(b,a){return function(c){return b.call(a,c||window.event)}},False:function(){return false},True:function(){return true}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{newMethod:"OpenLayers.Function.bind"}));Array.prototype.unshift.apply(arguments,[this]);return OpenLayers.Function.bind.apply(null,arguments)}}if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(a){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{newMethod:"OpenLayers.Function.bindAsEventListener"}));return OpenLayers.Function.bindAsEventListener(this,a)}}OpenLayers.Array={filter:function(g,f,b){var d=[];if(Array.prototype.filter){d=g.filter(f,b)}else{var a=g.length;if(typeof f!="function"){throw new TypeError()}for(var c=0;c1){b=d.prototype.initialize;d.prototype.initialize=function(){};c=new d();if(b===undefined){delete d.prototype.initialize}else{d.prototype.initialize=b}}g=d.prototype}else{g=d}OpenLayers.Util.extend(c,g)}e.prototype=c;return e};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments)}}};OpenLayers.Class.inherit=function(){var d=arguments[0];var e=new d(OpenLayers.Class.isPrototype);for(var c=1,a=arguments.length;c=0;a--){if(c[a]==b){c.splice(a,1)}}return c};OpenLayers.Util.clearArray=function(a){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{newMethod:"array = []"}));a.length=0};OpenLayers.Util.indexOf=function(d,c){if(typeof d.indexOf=="function"){return d.indexOf(c)}else{for(var b=0,a=d.length;b=0&&parseFloat(b)<1){e.style.filter="alpha(opacity="+(b*100)+")";e.style.opacity=b}else{if(parseFloat(b)==1){e.style.filter="";e.style.opacity=""}}};OpenLayers.Util.createDiv=function(a,i,h,f,e,c,b,g){var d=document.createElement("div");if(f){d.style.backgroundImage="url("+f+")"}if(!a){a=OpenLayers.Util.createUniqueID("OpenLayersDiv")}if(!e){e="absolute"}OpenLayers.Util.modifyDOMElement(d,a,i,h,e,c,b,g);return d};OpenLayers.Util.createImage=function(a,h,g,e,d,c,f,i){var b=document.createElement("img");if(!a){a=OpenLayers.Util.createUniqueID("OpenLayersDiv")}if(!d){d="relative"}OpenLayers.Util.modifyDOMElement(b,a,h,g,d,c,null,f);if(i){b.style.display="none";OpenLayers.Event.observe(b,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,b));OpenLayers.Event.observe(b,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,b))}b.style.alt=a;b.galleryImg="no";if(e){b.src=e}return b};OpenLayers.Util.setOpacity=function(b,a){OpenLayers.Util.modifyDOMElement(b,null,null,null,null,null,null,a)};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.display=""}OpenLayers.Element.removeClass(this,"olImageLoadError")};OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var d=this.urls;if(d&&d instanceof Array&&d.length>1){var e=this.src.toString();var c,a;for(a=0;c=d[a];a++){if(e.indexOf(c)!=-1){break}}var f=Math.floor(d.length*Math.random());var b=d[f];a=0;while(b==c&&a++<4){f=Math.floor(d.length*Math.random());b=d[f]}this.src=e.replace(c,b)}else{this.src=this.src}}else{OpenLayers.Element.addClass(this,"olImageLoadError")}this.style.display=""};OpenLayers.Util.alphaHackNeeded=null;OpenLayers.Util.alphaHack=function(){if(OpenLayers.Util.alphaHackNeeded==null){var d=navigator.appVersion.split("MSIE");var a=parseFloat(d[1]);var b=false;try{b=!!(document.body.filters)}catch(c){}OpenLayers.Util.alphaHackNeeded=(b&&(a>=5.5)&&(a<7))}return OpenLayers.Util.alphaHackNeeded};OpenLayers.Util.modifyAlphaImageDiv=function(a,b,j,i,g,f,c,d,h){OpenLayers.Util.modifyDOMElement(a,b,j,i,f,null,null,h);var e=a.childNodes[0];if(g){e.src=g}OpenLayers.Util.modifyDOMElement(e,a.id+"_innerImage",null,i,"relative",c);if(OpenLayers.Util.alphaHack()){if(a.style.display!="none"){a.style.display="inline-block"}if(d==null){d="scale"}a.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e.src+"', sizingMethod='"+d+"')";if(parseFloat(a.style.opacity)>=0&&parseFloat(a.style.opacity)<1){a.style.filter+=" alpha(opacity="+a.style.opacity*100+")"}e.style.filter="alpha(opacity=0)"}};OpenLayers.Util.createAlphaImageDiv=function(b,j,i,g,f,c,d,h,k){var a=OpenLayers.Util.createDiv();var e=OpenLayers.Util.createImage(null,null,null,null,null,null,null,false);a.appendChild(e);if(k){e.style.display="none";OpenLayers.Event.observe(e,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,a));OpenLayers.Event.observe(e,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,a))}OpenLayers.Util.modifyAlphaImageDiv(a,b,j,i,g,f,c,d,h);return a};OpenLayers.Util.upperCaseObject=function(b){var a={};for(var c in b){a[c.toUpperCase()]=b[c]}return a};OpenLayers.Util.applyDefaults=function(d,c){d=d||{};var b=typeof window.Event=="function"&&c instanceof window.Event;for(var a in c){if(d[a]===undefined||(!b&&c.hasOwnProperty&&c.hasOwnProperty(a)&&!d.hasOwnProperty(a))){d[a]=c[a]}}if(!b&&c&&c.hasOwnProperty&&c.hasOwnProperty("toString")&&!d.hasOwnProperty("toString")){d.toString=c.toString}return d};OpenLayers.Util.getParameterString=function(c){var b=[];for(var h in c){var g=c[h];if((g!=null)&&(typeof g!="function")){var d;if(typeof g=="object"&&g.constructor==Array){var e=[];var i;for(var a=0,f=g.length;a0)){if(!b){b=0}if(a[b].childNodes.length>1){return a.childNodes[1].nodeValue}else{if(a[b].childNodes.length==1){return a[b].firstChild.nodeValue}}}else{return""}};OpenLayers.Util.getXmlNodeValue=function(a){var b=null;OpenLayers.Util.Try(function(){b=a.text;if(!b){b=a.textContent}if(!b){b=a.firstChild.nodeValue}},function(){b=a.textContent});return b};OpenLayers.Util.mouseLeft=function(a,c){var b=(a.relatedTarget)?a.relatedTarget:a.toElement;while(b!=c&&b!=null){b=b.parentNode}return(b!=c)};OpenLayers.Util.DEFAULT_PRECISION=14;OpenLayers.Util.toFloat=function(b,a){if(a==null){a=OpenLayers.Util.DEFAULT_PRECISION}var b;if(a==0){b=parseFloat(b)}else{b=parseFloat(parseFloat(b).toPrecision(a))}return b};OpenLayers.Util.rad=function(a){return a*Math.PI/180};OpenLayers.Util.deg=function(a){return a*180/Math.PI};OpenLayers.Util.VincentyConstants={a:6378137,b:6356752.3142,f:1/298.257223563};OpenLayers.Util.distVincenty=function(g,e){var k=OpenLayers.Util.VincentyConstants;var M=k.a,K=k.b,G=k.f;var n=OpenLayers.Util.rad(e.lon-g.lon);var J=Math.atan((1-G)*Math.tan(OpenLayers.Util.rad(g.lat)));var I=Math.atan((1-G)*Math.tan(OpenLayers.Util.rad(e.lat)));var m=Math.sin(J),i=Math.cos(J);var l=Math.sin(I),h=Math.cos(I);var r=n,o=2*Math.PI;var q=20;while(Math.abs(r-o)>1e-12&&--q>0){var z=Math.sin(r),c=Math.cos(r);var N=Math.sqrt((h*z)*(h*z)+(i*l-m*h*c)*(i*l-m*h*c));if(N==0){return 0}var E=m*l+i*h*c;var y=Math.atan2(N,E);var j=Math.asin(i*h*z/N);var F=Math.cos(j)*Math.cos(j);var p=E-2*m*l/F;var v=G/16*F*(4+G*(4-3*F));o=r;r=n+(1-v)*G*Math.sin(j)*(y+v*N*(p+v*E*(-1+2*p*p)))}if(q==0){return NaN}var u=F*(M*M-K*K)/(K*K);var x=1+u/16384*(4096+u*(-768+u*(320-175*u)));var w=u/1024*(256+u*(-128+u*(74-47*u)));var D=w*N*(p+w/4*(E*(-1+2*p*p)-w/6*p*(-3+4*N*N)*(-3+4*p*p)));var t=K*x*(y-D);var H=t.toFixed(3)/1000;return H};OpenLayers.Util.destinationVincenty=function(l,P,E){var o=OpenLayers.Util;var i=o.VincentyConstants;var Q=i.a,O=i.b,J=i.f;var N=l.lon;var g=l.lat;var q=E;var D=o.rad(P);var G=Math.sin(D);var h=Math.cos(D);var F=(1-J)*Math.tan(o.rad(g));var c=1/Math.sqrt((1+F*F)),j=F*c;var p=Math.atan2(F,h);var y=c*G;var I=1-y*y;var t=I*(Q*Q-O*O)/(O*O);var x=1+t/16384*(4096+t*(-768+t*(320-175*t)));var v=t/1024*(256+t*(-128+t*(74-47*t)));var w=q/(O*x),K=2*Math.PI;while(Math.abs(w-K)>1e-12){var m=Math.cos(2*p+w);var R=Math.sin(w);var H=Math.cos(w);var z=v*R*(m+v/4*(H*(-1+2*m*m)-v/6*m*(-3+4*R*R)*(-3+4*m*m)));K=w;w=q/(O*x)+z}var M=j*R-c*H*h;var d=Math.atan2(j*H+c*R*h,(1-J)*Math.sqrt(y*y+M*M));var n=Math.atan2(R*G,c*H-j*R*h);var r=J/16*I*(4+J*(4-3*I));var k=n-(1-r)*J*y*(w+r*R*(m+r*H*(-1+2*m*m)));var e=Math.atan2(y,-M);return new OpenLayers.LonLat(N+o.deg(k),o.deg(d))};OpenLayers.Util.getParameters=function(b){b=b||window.location.href;var a="";if(OpenLayers.String.contains(b,"?")){var c=b.indexOf("?")+1;var e=OpenLayers.String.contains(b,"#")?b.indexOf("#"):b.length;a=b.substring(c,e)}var l={};var d=a.split(/[&;]/);for(var g=0,h=d.length;g1)?(1/b):b;return a};OpenLayers.Util.getResolutionFromScale=function(d,a){var b;if(d){if(a==null){a="degrees"}var c=OpenLayers.Util.normalizeScale(d);b=1/(c*OpenLayers.INCHES_PER_UNIT[a]*OpenLayers.DOTS_PER_INCH)}return b};OpenLayers.Util.getScaleFromResolution=function(b,a){if(a==null){a="degrees"}var c=b*OpenLayers.INCHES_PER_UNIT[a]*OpenLayers.DOTS_PER_INCH;return c};OpenLayers.Util.safeStopPropagation=function(a){OpenLayers.Event.stop(a,true)};OpenLayers.Util.pagePosition=function(f){var a=0,d=0;var b=f;var g=f;while(b){if(b==document.body){if(OpenLayers.Element.getStyle(g,"position")=="absolute"){break}}a+=b.offsetTop||0;d+=b.offsetLeft||0;g=b;try{b=b.offsetParent}catch(c){OpenLayers.Console.error(OpenLayers.i18n("pagePositionFailed",{elemId:b.id}));break}}b=f;while(b){a-=b.scrollTop||0;d-=b.scrollLeft||0;b=b.parentNode}return[d,a]};OpenLayers.Util.isEquivalentUrl=function(f,e,c){c=c||{};OpenLayers.Util.applyDefaults(c,{ignoreCase:true,ignorePort80:true,ignoreHash:true});var b=OpenLayers.Util.createUrlObject(f,c);var a=OpenLayers.Util.createUrlObject(e,c);for(var d in b){if(d!=="args"){if(b[d]!=a[d]){return false}}}for(var d in b.args){if(b.args[d]!=a.args[d]){return false}delete a.args[d]}for(var d in a.args){return false}return true};OpenLayers.Util.createUrlObject=function(c,k){k=k||{};if(!(/^\w+:\/\//).test(c)){var g=window.location;var e=g.port?":"+g.port:"";var h=g.protocol+"//"+g.host.split(":").shift()+e;if(c.indexOf("/")===0){c=h+c}else{var f=g.pathname.split("/");f.pop();c=h+f.join("/")+"/"+c}}if(k.ignoreCase){c=c.toLowerCase()}var i=document.createElement("a");i.href=c;var d={};d.host=i.host.split(":").shift();d.protocol=i.protocol;if(k.ignorePort80){d.port=(i.port=="80"||i.port=="0")?"":i.port}else{d.port=(i.port==""||i.port=="0")?"80":i.port}d.hash=(k.ignoreHash||i.hash==="#")?"":i.hash;var b=i.search;if(!b){var j=c.indexOf("?");b=(j!=-1)?c.substr(j):""}d.args=OpenLayers.Util.getParameters(b);d.pathname=(i.pathname.charAt(0)=="/")?i.pathname:"/"+i.pathname;return d};OpenLayers.Util.removeTail=function(b){var c=null;var a=b.indexOf("?");var d=b.indexOf("#");if(a==-1){c=(d!=-1)?b.substr(0,d):b}else{c=(d!=-1)?b.substr(0,Math.min(a,d)):b.substr(0,a)}return c};OpenLayers.Util.getBrowserName=function(){var b="";var a=navigator.userAgent.toLowerCase();if(a.indexOf("opera")!=-1){b="opera"}else{if(a.indexOf("msie")!=-1){b="msie"}else{if(a.indexOf("safari")!=-1){b="safari"}else{if(a.indexOf("mozilla")!=-1){if(a.indexOf("firefox")!=-1){b="firefox"}else{b="mozilla"}}}}}return b};OpenLayers.Util.getRenderedDimensions=function(b,o,p){var k,e;var a=document.createElement("div");a.style.visibility="hidden";var n=(p&&p.containerElement)?p.containerElement:document.body;if(o){if(o.w){k=o.w;a.style.width=k+"px"}else{if(o.h){e=o.h;a.style.height=e+"px"}}}if(p&&p.displayClass){a.className=p.displayClass}var f=document.createElement("div");f.innerHTML=b;f.style.overflow="visible";if(f.childNodes){for(var d=0,c=f.childNodes.length;d=0){if(a<10){a="0"+a}f+=a+"'";if(e.indexOf("dms")>=0){if(g<10){g="0"+g}f+=g+'"'}}if(b=="lon"){f+=h<0?OpenLayers.i18n("W"):OpenLayers.i18n("E")}else{f+=h<0?OpenLayers.i18n("S"):OpenLayers.i18n("N")}return f};OpenLayers.Element={visible:function(a){return OpenLayers.Util.getElement(a).style.display!="none"},toggle:function(){for(var c=0,a=arguments.length;c"+this.contentDiv.innerHTML+"";var h=(this.map)?this.map.layerContainerDiv:document.body;var i=OpenLayers.Util.getRenderedDimensions(e,null,{displayClass:this.displayClass,containerElement:h});var g=this.getSafeContentSize(i);var f=null;if(g.equals(i)){f=i}else{var b=new OpenLayers.Size();b.w=(g.w(e.w-this.map.paddingForPopups.right)){c.x=e.w-this.map.paddingForPopups.right-this.size.w}}if(d.y(e.h-this.map.paddingForPopups.bottom)){c.y=e.h-this.map.paddingForPopups.bottom-this.size.h}}var b=d.x-c.x;var a=d.y-c.y;this.map.pan(b,a)},registerEvents:function(){this.events=new OpenLayers.Events(this,this.div,null,true);this.events.on({mousedown:this.onmousedown,mousemove:this.onmousemove,mouseup:this.onmouseup,click:this.onclick,mouseout:this.onmouseout,dblclick:this.ondblclick,scope:this})},onmousedown:function(a){this.mousedown=true;OpenLayers.Event.stop(a,true)},onmousemove:function(a){if(this.mousedown){OpenLayers.Event.stop(a,true)}},onmouseup:function(a){if(this.mousedown){this.mousedown=false;OpenLayers.Event.stop(a,true)}},onclick:function(a){OpenLayers.Event.stop(a,true)},onmouseout:function(a){this.mousedown=false},ondblclick:function(a){OpenLayers.Event.stop(a,true)},CLASS_NAME:"OpenLayers.Popup"});OpenLayers.Popup.WIDTH=200;OpenLayers.Popup.HEIGHT=200;OpenLayers.Popup.COLOR="white";OpenLayers.Popup.OPACITY=1;OpenLayers.Popup.BORDER="0px";OpenLayers.Bounds=OpenLayers.Class({left:null,bottom:null,right:null,top:null,centerLonLat:null,initialize:function(d,a,b,c){if(d!=null){this.left=OpenLayers.Util.toFloat(d)}if(a!=null){this.bottom=OpenLayers.Util.toFloat(a)}if(b!=null){this.right=OpenLayers.Util.toFloat(b)}if(c!=null){this.top=OpenLayers.Util.toFloat(c)}},clone:function(){return new OpenLayers.Bounds(this.left,this.bottom,this.right,this.top)},equals:function(b){var a=false;if(b!=null){a=((this.left==b.left)&&(this.right==b.right)&&(this.top==b.top)&&(this.bottom==b.bottom))}return a},toString:function(){return("left-bottom=("+this.left+","+this.bottom+") right-top=("+this.right+","+this.top+")")},toArray:function(a){if(a===true){return[this.bottom,this.left,this.top,this.right]}else{return[this.left,this.bottom,this.right,this.top]}},toBBOX:function(b,e){if(b==null){b=6}var g=Math.pow(10,b);var f=Math.round(this.left*g)/g;var d=Math.round(this.bottom*g)/g;var c=Math.round(this.right*g)/g;var a=Math.round(this.top*g)/g;if(e===true){return d+","+f+","+a+","+c}else{return f+","+d+","+c+","+a}},toGeometry:function(){return new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing([new OpenLayers.Geometry.Point(this.left,this.bottom),new OpenLayers.Geometry.Point(this.right,this.bottom),new OpenLayers.Geometry.Point(this.right,this.top),new OpenLayers.Geometry.Point(this.left,this.top)])])},getWidth:function(){return(this.right-this.left)},getHeight:function(){return(this.top-this.bottom)},getSize:function(){return new OpenLayers.Size(this.getWidth(),this.getHeight())},getCenterPixel:function(){return new OpenLayers.Pixel((this.left+this.right)/2,(this.bottom+this.top)/2)},getCenterLonLat:function(){if(!this.centerLonLat){this.centerLonLat=new OpenLayers.LonLat((this.left+this.right)/2,(this.bottom+this.top)/2)}return this.centerLonLat},scale:function(e,c){if(c==null){c=this.getCenterLonLat()}var a,h;if(c.CLASS_NAME=="OpenLayers.LonLat"){a=c.lon;h=c.lat}else{a=c.x;h=c.y}var g=(this.left-a)*e+a;var b=(this.bottom-h)*e+h;var d=(this.right-a)*e+a;var f=(this.top-h)*e+h;return new OpenLayers.Bounds(g,b,d,f)},add:function(a,c){if((a==null)||(c==null)){var b=OpenLayers.i18n("boundsAddError");OpenLayers.Console.error(b);return null}return new OpenLayers.Bounds(this.left+a,this.bottom+c,this.right+a,this.top+c)},extend:function(a){var b=null;if(a){switch(a.CLASS_NAME){case"OpenLayers.LonLat":b=new OpenLayers.Bounds(a.lon,a.lat,a.lon,a.lat);break;case"OpenLayers.Geometry.Point":b=new OpenLayers.Bounds(a.x,a.y,a.x,a.y);break;case"OpenLayers.Bounds":b=a;break}if(b){this.centerLonLat=null;if((this.left==null)||(b.leftthis.right)){this.right=b.right}if((this.top==null)||(b.top>this.top)){this.top=b.top}}}},containsLonLat:function(b,a){return this.contains(b.lon,b.lat,a)},containsPixel:function(b,a){return this.contains(b.x,b.y,a)},contains:function(b,d,a){if(a==null){a=true}if(b==null||d==null){return false}b=OpenLayers.Util.toFloat(b);d=OpenLayers.Util.toFloat(d);var c=false;if(a){c=((b>=this.left)&&(b<=this.right)&&(d>=this.bottom)&&(d<=this.top))}else{c=((b>this.left)&&(bthis.bottom)&&(d=this.bottom)&&(e.bottom<=this.top))||((this.bottom>=e.bottom)&&(this.bottom<=e.top)));var f=(((e.top>=this.bottom)&&(e.top<=this.top))||((this.top>e.bottom)&&(this.top=this.left)&&(e.left<=this.right))||((this.left>=e.left)&&(this.left<=e.right)));var a=(((e.right>=this.left)&&(e.right<=this.right))||((this.right>=e.left)&&(this.right<=e.right)));d=((g||f)&&(c||a))}return d},containsBounds:function(g,b,a){if(b==null){b=false}if(a==null){a=true}var c=this.contains(g.left,g.bottom,a);var d=this.contains(g.right,g.bottom,a);var f=this.contains(g.left,g.top,a);var e=this.contains(g.right,g.top,a);return(b)?(c||d||f||e):(c&&d&&f&&e)},determineQuadrant:function(c){var b="";var a=this.getCenterLonLat();b+=(c.lat=a.right&&e.right>a.right){e=e.add(-a.getWidth(),0)}}return e},CLASS_NAME:"OpenLayers.Bounds"});OpenLayers.Bounds.fromString=function(b){var a=b.split(",");return OpenLayers.Bounds.fromArray(a)};OpenLayers.Bounds.fromArray=function(a){return new OpenLayers.Bounds(parseFloat(a[0]),parseFloat(a[1]),parseFloat(a[2]),parseFloat(a[3]))};OpenLayers.Bounds.fromSize=function(a){return new OpenLayers.Bounds(0,a.h,a.w,0)};OpenLayers.Bounds.oppositeQuadrant=function(a){var b="";b+=(a.charAt(0)=="t")?"b":"t";b+=(a.charAt(1)=="l")?"r":"l";return b};OpenLayers.LonLat=OpenLayers.Class({lon:0,lat:0,initialize:function(b,a){this.lon=OpenLayers.Util.toFloat(b);this.lat=OpenLayers.Util.toFloat(a)},toString:function(){return("lon="+this.lon+",lat="+this.lat)},toShortString:function(){return(this.lon+", "+this.lat)},clone:function(){return new OpenLayers.LonLat(this.lon,this.lat)},add:function(c,a){if((c==null)||(a==null)){var b=OpenLayers.i18n("lonlatAddError");OpenLayers.Console.error(b);return null}return new OpenLayers.LonLat(this.lon+OpenLayers.Util.toFloat(c),this.lat+OpenLayers.Util.toFloat(a))},equals:function(b){var a=false;if(b!=null){a=((this.lon==b.lon&&this.lat==b.lat)||(isNaN(this.lon)&&isNaN(this.lat)&&isNaN(b.lon)&&isNaN(b.lat)))}return a},transform:function(c,b){var a=OpenLayers.Projection.transform({x:this.lon,y:this.lat},c,b);this.lon=a.x;this.lat=a.y;return this},wrapDateLine:function(a){var b=this.clone();if(a){while(b.lona.right){b.lon-=a.getWidth()}}return b},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(b){var a=b.split(",");return new OpenLayers.LonLat(a[0],a[1])};OpenLayers.Pixel=OpenLayers.Class({x:0,y:0,initialize:function(a,b){this.x=parseFloat(a);this.y=parseFloat(b)},toString:function(){return("x="+this.x+",y="+this.y)},clone:function(){return new OpenLayers.Pixel(this.x,this.y)},equals:function(a){var b=false;if(a!=null){b=((this.x==a.x&&this.y==a.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(a.x)&&isNaN(a.y)))}return b},add:function(a,c){if((a==null)||(c==null)){var b=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(b);return null}return new OpenLayers.Pixel(this.x+a,this.y+c)},offset:function(a){var b=this.clone();if(a){b=this.add(a.x,a.y)}return b},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Control=OpenLayers.Class({id:null,map:null,div:null,type:null,allowSelection:false,displayClass:"",title:"",autoActivate:false,active:null,handler:null,eventListeners:null,events:null,EVENT_TYPES:["activate","deactivate"],initialize:function(a){this.displayClass=this.CLASS_NAME.replace("OpenLayers.","ol").replace(/\./g,"");OpenLayers.Util.extend(this,a);this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES);if(this.eventListeners instanceof Object){this.events.on(this.eventListeners)}if(this.id==null){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_")}},destroy:function(){if(this.events){if(this.eventListeners){this.events.un(this.eventListeners)}this.events.destroy();this.events=null}this.eventListeners=null;if(this.handler){this.handler.destroy();this.handler=null}if(this.handlers){for(var a in this.handlers){if(this.handlers.hasOwnProperty(a)&&typeof this.handlers[a].destroy=="function"){this.handlers[a].destroy()}}this.handlers=null}if(this.map){this.map.removeControl(this);this.map=null}},setMap:function(a){this.map=a;if(this.handler){this.handler.setMap(a)}},draw:function(a){if(this.div==null){this.div=OpenLayers.Util.createDiv(this.id);this.div.className=this.displayClass;if(!this.allowSelection){this.div.className+=" olControlNoSelect";this.div.setAttribute("unselectable","on",0);this.div.onselectstart=OpenLayers.Function.False}if(this.title!=""){this.div.title=this.title}}if(a!=null){this.position=a.clone()}this.moveTo(this.position);return this.div},moveTo:function(a){if((a!=null)&&(this.div!=null)){this.div.style.left=a.x+"px";this.div.style.top=a.y+"px"}},activate:function(){if(this.active){return false}if(this.handler){this.handler.activate()}this.active=true;if(this.map){OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active")}this.events.triggerEvent("activate");return true},deactivate:function(){if(this.active){if(this.handler){this.handler.deactivate()}this.active=false;if(this.map){OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass.replace(/ /g,"")+"Active")}this.events.triggerEvent("deactivate");return true}return false},CLASS_NAME:"OpenLayers.Control"});OpenLayers.Control.TYPE_BUTTON=1;OpenLayers.Control.TYPE_TOGGLE=2;OpenLayers.Control.TYPE_TOOL=3;OpenLayers.Lang={code:null,defaultCode:"en",getCode:function(){if(!OpenLayers.Lang.code){OpenLayers.Lang.setCode()}return OpenLayers.Lang.code},setCode:function(b){var d;if(!b){b=(OpenLayers.Util.getBrowserName()=="msie")?navigator.userLanguage:navigator.language}var c=b.split("-");c[0]=c[0].toLowerCase();if(typeof OpenLayers.Lang[c[0]]=="object"){d=c[0]}if(c[1]){var a=c[0]+"-"+c[1].toUpperCase();if(typeof OpenLayers.Lang[a]=="object"){d=a}}if(!d){OpenLayers.Console.warn("Failed to find OpenLayers.Lang."+c.join("-")+" dictionary, falling back to default language");d=OpenLayers.Lang.defaultCode}OpenLayers.Lang.code=d},translate:function(b,a){var d=OpenLayers.Lang[OpenLayers.Lang.getCode()];var c=d[b];if(!c){c=b}if(a){c=OpenLayers.String.format(c,a)}return c}};OpenLayers.i18n=OpenLayers.Lang.translate;OpenLayers.Popup.Anchored=OpenLayers.Class(OpenLayers.Popup,{relativePosition:null,keepInMap:true,anchor:null,initialize:function(h,d,g,c,b,f,e){var a=[h,d,g,c,f,e];OpenLayers.Popup.prototype.initialize.apply(this,a);this.anchor=(b!=null)?b:{size:new OpenLayers.Size(0,0),offset:new OpenLayers.Pixel(0,0)}},destroy:function(){this.anchor=null;this.relativePosition=null;OpenLayers.Popup.prototype.destroy.apply(this,arguments)},show:function(){this.updatePosition();OpenLayers.Popup.prototype.show.apply(this,arguments)},moveTo:function(c){var b=this.relativePosition;this.relativePosition=this.calculateRelativePosition(c);var d=this.calculateNewPx(c);var a=new Array(d);OpenLayers.Popup.prototype.moveTo.apply(this,a);if(this.relativePosition!=b){this.updateRelativePosition()}},setSize:function(b){OpenLayers.Popup.prototype.setSize.apply(this,arguments);if((this.lonlat)&&(this.map)){var a=this.map.getLayerPxFromLonLat(this.lonlat);this.moveTo(a)}},calculateRelativePosition:function(b){var d=this.map.getLonLatFromLayerPx(b);var c=this.map.getExtent();var a=c.determineQuadrant(d);return OpenLayers.Bounds.oppositeQuadrant(a)},updateRelativePosition:function(){},calculateNewPx:function(b){var e=b.offset(this.anchor.offset);var a=this.size||this.contentSize;var d=(this.relativePosition.charAt(0)=="t");e.y+=(d)?-(a.h+this.anchor.size.h):this.anchor.size.h;var c=(this.relativePosition.charAt(1)=="l");e.x+=(c)?-(a.w+this.anchor.size.w):this.anchor.size.w;return e},CLASS_NAME:"OpenLayers.Popup.Anchored"});OpenLayers.Tween=OpenLayers.Class({INTERVAL:10,easing:null,begin:null,finish:null,duration:null,callbacks:null,time:null,interval:null,playing:false,initialize:function(a){this.easing=(a)?a:OpenLayers.Easing.Expo.easeOut},start:function(c,b,d,a){this.playing=true;this.begin=c;this.finish=b;this.duration=d;this.callbacks=a.callbacks;this.time=0;if(this.interval){window.clearInterval(this.interval);this.interval=null}if(this.callbacks&&this.callbacks.start){this.callbacks.start.call(this,this.begin)}this.interval=window.setInterval(OpenLayers.Function.bind(this.play,this),this.INTERVAL)},stop:function(){if(!this.playing){return}if(this.callbacks&&this.callbacks.done){this.callbacks.done.call(this,this.finish)}window.clearInterval(this.interval);this.interval=null;this.playing=false},play:function(){var g={};for(var d in this.begin){var a=this.begin[d];var e=this.finish[d];if(a==null||e==null||isNaN(a)||isNaN(e)){OpenLayers.Console.error("invalid value for Tween")}var h=e-a;g[d]=this.easing.apply(this,[this.time,a,h,this.duration])}this.time++;if(this.callbacks&&this.callbacks.eachStep){this.callbacks.eachStep.call(this,g)}if(this.time>this.duration){this.stop()}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(e,a,g,f){return g*e/f+a},easeOut:function(e,a,g,f){return g*e/f+a},easeInOut:function(e,a,g,f){return g*e/f+a},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(e,a,g,f){return(e==0)?a:g*Math.pow(2,10*(e/f-1))+a},easeOut:function(e,a,g,f){return(e==f)?a+g:g*(-Math.pow(2,-10*e/f)+1)+a},easeInOut:function(e,a,g,f){if(e==0){return a}if(e==f){return a+g}if((e/=f/2)<1){return g/2*Math.pow(2,10*(e-1))+a}return g/2*(-Math.pow(2,-10*--e)+2)+a},CLASS_NAME:"OpenLayers.Easing.Expo"};OpenLayers.Easing.Quad={easeIn:function(e,a,g,f){return g*(e/=f)*e+a},easeOut:function(e,a,g,f){return -g*(e/=f)*(e-2)+a},easeInOut:function(e,a,g,f){if((e/=f/2)<1){return g/2*e*e+a}return -g/2*((--e)*(e-2)-1)+a},CLASS_NAME:"OpenLayers.Easing.Quad"};OpenLayers.Control.ArgParser=OpenLayers.Class(OpenLayers.Control,{center:null,zoom:null,layers:null,displayProjection:null,initialize:function(a){OpenLayers.Control.prototype.initialize.apply(this,arguments)},setMap:function(e){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var c=0,a=this.map.controls.length;c=0;--a){this._removeButton(this.buttons[a])}},doubleClick:function(a){OpenLayers.Event.stop(a);return false},buttonDown:function(a){if(!OpenLayers.Event.isLeftClick(a)){return}switch(this.action){case"panup":this.map.pan(0,-this.getSlideFactor("h"));break;case"pandown":this.map.pan(0,this.getSlideFactor("h"));break;case"panleft":this.map.pan(-this.getSlideFactor("w"),0);break;case"panright":this.map.pan(this.getSlideFactor("w"),0);break;case"zoomin":this.map.zoomIn();break;case"zoomout":this.map.zoomOut();break;case"zoomworld":this.map.zoomToMaxExtent();break}OpenLayers.Event.stop(a)},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(a){return a.target||a.srcElement},isLeftClick:function(a){return(((a.which)&&(a.which==1))||((a.button)&&(a.button==1)))},isRightClick:function(a){return(((a.which)&&(a.which==3))||((a.button)&&(a.button==2)))},stop:function(b,a){if(!a){if(b.preventDefault){b.preventDefault()}else{b.returnValue=false}}if(b.stopPropagation){b.stopPropagation()}else{b.cancelBubble=true}},findElement:function(c,b){var a=OpenLayers.Event.element(c);while(a.parentNode&&(!a.tagName||(a.tagName.toUpperCase()!=b.toUpperCase()))){a=a.parentNode}return a},observe:function(b,d,c,a){var e=OpenLayers.Util.getElement(b);a=a||false;if(d=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||e.attachEvent)){d="keydown"}if(!this.observers){this.observers={}}if(!e._eventCacheID){var f="eventCacheID_";if(e.id){f=e.id+"_"+f}e._eventCacheID=OpenLayers.Util.createUniqueID(f)}var g=e._eventCacheID;if(!this.observers[g]){this.observers[g]=[]}this.observers[g].push({element:e,name:d,observer:c,useCapture:a});if(e.addEventListener){e.addEventListener(d,c,a)}else{if(e.attachEvent){e.attachEvent("on"+d,c)}}},stopObservingElement:function(a){var b=OpenLayers.Util.getElement(a);var c=b._eventCacheID;this._removeElementObservers(OpenLayers.Event.observers[c])},_removeElementObservers:function(e){if(e){for(var b=e.length-1;b>=0;b--){var c=e[b];var a=new Array(c.element,c.name,c.observer,c.useCapture);var d=OpenLayers.Event.stopObserving.apply(this,a)}}},stopObserving:function(h,a,g,b){b=b||false;var f=OpenLayers.Util.getElement(h);var d=f._eventCacheID;if(a=="keypress"){if(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||f.detachEvent){a="keydown"}}var k=false;var c=OpenLayers.Event.observers[d];if(c){var e=0;while(!k&&e
To get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.

Most likely, this is because the Google Maps library script was either not included, or does not contain the correct API key for your site.

Developers: For help getting this working correctly, click here",getLayerWarning:"The ${layerType} Layer was unable to load correctly.

To get rid of this message, select a new BaseLayer in the layer switcher in the upper-right corner.

Most likely, this is because the ${layerLib} library script was not correctly included.

Developers: For help getting this working correctly, click here",scale:"Scale = 1 : ${scaleDenom}",W:"W",E:"E",N:"N",S:"S",graticule:"Graticule",layerAlreadyAdded:"You tried to add the layer: ${layerName} to the map, but it has already been added",reprojectDeprecated:"You are using the 'reproject' option on the ${layerName} layer. This option is deprecated: its use was designed to support displaying data over commercial basemaps, but that functionality should now be achieved by using Spherical Mercator support. More information is available from http://trac.openlayers.org/wiki/SphericalMercator.",methodDeprecated:"This method has been deprecated and will be removed in 3.0. Please use ${newMethod} instead.",boundsAddError:"You must pass both x and y values to the add function.",lonlatAddError:"You must pass both lon and lat values to the add function.",pixelAddError:"You must pass both x and y values to the add function.",unsupportedGeometryType:"Unsupported geometry type: ${geomType}",pagePositionFailed:"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",filterEvaluateNotImplemented:"evaluate is not implemented for this filter type.",end:""};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(g,c,f,b,a,e,d){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments)},draw:function(a){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div},updateRelativePosition:function(){this.setRicoCorners()},setSize:function(a){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners()},setBackgroundColor:function(a){if(a!=undefined){this.backgroundColor=a}if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor)}}},setOpacity:function(a){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,a);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity)}}},setBorder:function(a){this.border=0},setRicoCorners:function(){var a=this.getCornersToRound(this.relativePosition);var b={corners:a,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,b);this.rounded=true}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,b);this.setBackgroundColor();this.setOpacity()}},getCornersToRound:function(){var a=["tl","tr","bl","br"];var b=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(a,b);return a.join(" ")},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Projection=OpenLayers.Class({proj:null,projCode:null,initialize:function(b,a){OpenLayers.Util.extend(this,a);this.projCode=b;if(window.Proj4js){this.proj=new Proj4js.Proj(b)}},getCode:function(){return this.proj?this.proj.srsCode:this.projCode},getUnits:function(){return this.proj?this.proj.units:null},toString:function(){return this.getCode()},equals:function(a){if(a&&a.getCode){return this.getCode()==a.getCode()}else{return false}},destroy:function(){delete this.proj;delete this.projCode},CLASS_NAME:"OpenLayers.Projection"});OpenLayers.Projection.transforms={};OpenLayers.Projection.addTransform=function(c,b,a){if(!OpenLayers.Projection.transforms[c]){OpenLayers.Projection.transforms[c]={}}OpenLayers.Projection.transforms[c][b]=a};OpenLayers.Projection.transform=function(a,c,b){if(c.proj&&b.proj){a=Proj4js.transform(c.proj,b.proj,a)}else{if(c&&b&&OpenLayers.Projection.transforms[c.getCode()]&&OpenLayers.Projection.transforms[c.getCode()][b.getCode()]){OpenLayers.Projection.transforms[c.getCode()][b.getCode()](a)}}return a};OpenLayers.Tile=OpenLayers.Class({EVENT_TYPES:["loadstart","loadend","reload","unload"],events:null,id:null,layer:null,url:null,bounds:null,size:null,position:null,isLoading:false,initialize:function(d,a,e,b,c){this.layer=d;this.position=a.clone();this.bounds=e.clone();this.url=b;this.size=c.clone();this.id=OpenLayers.Util.createUniqueID("Tile_");this.events=new OpenLayers.Events(this,null,this.EVENT_TYPES)},unload:function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("unload")}},destroy:function(){this.layer=null;this.bounds=null;this.size=null;this.position=null;this.events.destroy();this.events=null},clone:function(a){if(a==null){a=new OpenLayers.Tile(this.layer,this.position,this.bounds,this.url,this.size)}OpenLayers.Util.applyDefaults(a,this);return a},draw:function(){var a=this.layer.maxExtent;var b=(a&&this.bounds.intersectsBounds(a,false));this.shouldDraw=(b||this.layer.displayOutsideMaxExtent);this.clear();return this.shouldDraw},moveTo:function(b,a,c){if(c==null){c=true}this.bounds=b.clone();this.position=a.clone();if(c){this.draw()}},clear:function(){},getBoundsFromBaseLayer:function(a){var f=OpenLayers.i18n("reprojectDeprecated",{layerName:this.layer.name});OpenLayers.Console.warn(f);var d=this.layer.map.getLonLatFromLayerPx(a);var c=a.clone();c.x+=this.size.w;c.y+=this.size.h;var b=this.layer.map.getLonLatFromLayerPx(c);if(d.lon>b.lon){if(d.lon<0){d.lon=-180-(d.lon+180)}else{b.lon=180+b.lon+180}}var e=new OpenLayers.Bounds(d.lon,b.lat,b.lon,d.lat);return e},showTile:function(){if(this.shouldDraw){this.show()}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Handler=OpenLayers.Class({id:null,control:null,map:null,keyMask:null,active:false,evt:null,initialize:function(d,b,a){OpenLayers.Util.extend(this,a);this.control=d;this.callbacks=b;var c=this.map||d.map;if(c){this.setMap(c)}this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_")},setMap:function(a){this.map=a},checkModifiers:function(a){if(this.keyMask==null){return true}var b=(a.shiftKey?OpenLayers.Handler.MOD_SHIFT:0)|(a.ctrlKey?OpenLayers.Handler.MOD_CTRL:0)|(a.altKey?OpenLayers.Handler.MOD_ALT:0);return(b==this.keyMask)},activate:function(){if(this.active){return false}var c=OpenLayers.Events.prototype.BROWSER_EVENTS;for(var b=0,a=c.length;b=0;--a){this.controls[a].destroy()}this.controls=null}if(this.layers!=null){for(var a=this.layers.length-1;a>=0;--a){this.layers[a].destroy(false)}this.layers=null}if(this.viewPortDiv){this.div.removeChild(this.viewPortDiv)}this.viewPortDiv=null;if(this.eventListeners){this.events.un(this.eventListeners);this.eventListeners=null}this.events.destroy();this.events=null},setOptions:function(a){OpenLayers.Util.extend(this,a)},getTileSize:function(){return this.tileSize},getBy:function(e,c,a){var d=(typeof a.test=="function");var b=OpenLayers.Array.filter(this[e],function(f){return f[c]==a||(d&&a.test(f[c]))});return b},getLayersBy:function(b,a){return this.getBy("layers",b,a)},getLayersByName:function(a){return this.getLayersBy("name",a)},getLayersByClass:function(a){return this.getLayersBy("CLASS_NAME",a)},getControlsBy:function(b,a){return this.getBy("controls",b,a)},getControlsByClass:function(a){return this.getControlsBy("CLASS_NAME",a)},getLayer:function(e){var b=null;for(var d=0,a=this.layers.length;dthis.layers.length){b=this.layers.length}}if(e!=b){this.layers.splice(e,1);this.layers.splice(b,0,d);for(var c=0,a=this.layers.length;c=0;--b){this.removePopup(this.popups[b])}}a.map=this;this.popups.push(a);var c=a.draw();if(c){c.style.zIndex=this.Z_INDEX_BASE.Popup+this.popups.length;this.layerContainerDiv.appendChild(c)}},removePopup:function(a){OpenLayers.Util.removeItem(this.popups,a);if(a.div){try{this.layerContainerDiv.removeChild(a.div)}catch(b){}}a.map=null},getSize:function(){var a=null;if(this.size!=null){a=this.size.clone()}return a},updateSize:function(){var c=this.getCurrentSize();if(c&&!isNaN(c.h)&&!isNaN(c.w)){this.events.clearMouseCache();var f=this.getSize();if(f==null){this.size=f=c}if(!c.equals(f)){this.size=c;for(var d=0,b=this.layers.length;dthis.restrictedExtent.getWidth()){g=new OpenLayers.LonLat(p.lon,g.lat)}else{if(o.leftthis.restrictedExtent.right){g=g.add(this.restrictedExtent.right-o.right,0)}}}if(o.getHeight()>this.restrictedExtent.getHeight()){g=new OpenLayers.LonLat(g.lon,p.lat)}else{if(o.bottomthis.restrictedExtent.top){g=g.add(0,this.restrictedExtent.top-o.top)}}}}}var b=c||((this.isValidZoomLevel(n))&&(n!=this.getZoom()));var e=(this.isValidLonLat(g))&&(!g.equals(this.center));if(b||e||!m){if(!this.dragging&&!h){this.events.triggerEvent("movestart")}if(e){if((!b)&&(this.center)){this.centerLayerContainer(g)}this.center=g.clone()}if((b)||(this.layerContainerOrigin==null)){this.layerContainerOrigin=this.center.clone();this.layerContainerDiv.style.left="0px";this.layerContainerDiv.style.top="0px"}if(b){this.zoom=n;this.resolution=this.getResolutionForZoom(n);this.viewRequestID++}var a=this.getExtent();if(this.baseLayer.visibility){this.baseLayer.moveTo(a,b,m);if(m){this.baseLayer.events.triggerEvent("move")}else{this.baseLayer.events.triggerEvent("moveend",{zoomChanged:b})}}a=this.baseLayer.getExtent();for(var f=0,k=this.layers.length;f=0)&&(a0){a=this.layers[0].getResolution()}}return a},getUnits:function(){var a=null;if(this.baseLayer!=null){a=this.baseLayer.units}return a},getScale:function(){var c=null;if(this.baseLayer!=null){var b=this.getResolution();var a=this.baseLayer.units;c=OpenLayers.Util.getScaleFromResolution(b,a)}return c},getZoomForExtent:function(c,b){var a=null;if(this.baseLayer!=null){a=this.baseLayer.getZoomForExtent(c,b)}return a},getResolutionForZoom:function(b){var a=null;if(this.baseLayer){a=this.baseLayer.getResolutionForZoom(b)}return a},getZoomForResolution:function(a,c){var b=null;if(this.baseLayer!=null){b=this.baseLayer.getZoomForResolution(a,c)}return b},zoomTo:function(a){if(this.isValidZoomLevel(a)){this.setCenter(null,a)}},zoomIn:function(){this.zoomTo(this.getZoom()+1)},zoomOut:function(){this.zoomTo(this.getZoom()-1)},zoomToExtent:function(d,c){var b=d.getCenterLonLat();if(this.baseLayer.wrapDateLine){var a=this.getMaxExtent();d=d.clone();while(d.rightOpenLayers.IMAGE_RELOAD_ATTEMPTS){c.call(this)}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(a,this))},checkImgURL:function(){if(this.layer){var a=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(a,this.url)){this.hide()}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return}var d=1;if(this.backBufferTile.resolution){d=this.backBufferTile.resolution/this.layer.getResolution()}if(d!=this.lastRatio){if(this.layer.transitionEffect=="resize"){var c=new OpenLayers.LonLat(this.backBufferTile.bounds.left,this.backBufferTile.bounds.top);var b=new OpenLayers.Size(this.backBufferTile.size.w*d,this.backBufferTile.size.h*d);var a=this.layer.map.getLayerPxFromLonLat(c);OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,null,a,b);var e=this.backBufferTile.imageSize;e=new OpenLayers.Size(e.w*d,e.h*d);var f=this.backBufferTile.imageOffset;if(f){f=new OpenLayers.Pixel(f.x*d,f.y*d)}OpenLayers.Util.modifyDOMElement(this.backBufferTile.imgDiv,null,f,e);this.backBufferTile.show()}}else{if(this.layer.singleTile){this.backBufferTile.show()}else{this.backBufferTile.hide()}}this.lastRatio=d},show:function(){this.frame.style.display="";if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(navigator.userAgent.toLowerCase().indexOf("gecko")!=-1){this.frame.scrollLeft=this.frame.scrollLeft}}},hide:function(){this.frame.style.display="none"},CLASS_NAME:"OpenLayers.Tile.Image"});OpenLayers.Tile.Image.useBlankTile=(OpenLayers.Util.getBrowserName()=="safari"||OpenLayers.Util.getBrowserName()=="opera");OpenLayers.Feature=OpenLayers.Class({layer:null,id:null,lonlat:null,data:null,marker:null,popupClass:OpenLayers.Popup.AnchoredBubble,popup:null,initialize:function(a,c,b){this.layer=a;this.lonlat=c;this.data=(b!=null)?b:{};this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_")},destroy:function(){if((this.layer!=null)&&(this.layer.map!=null)){if(this.popup!=null){this.layer.map.removePopup(this.popup)}}if(this.layer!=null&&this.marker!=null){this.layer.removeMarker(this.marker)}this.layer=null;this.id=null;this.lonlat=null;this.data=null;if(this.marker!=null){this.destroyMarker(this.marker);this.marker=null}if(this.popup!=null){this.destroyPopup(this.popup);this.popup=null}},onScreen:function(){var b=false;if((this.layer!=null)&&(this.layer.map!=null)){var a=this.layer.map.getExtent();b=a.containsLonLat(this.lonlat)}return b},createMarker:function(){if(this.lonlat!=null){this.marker=new OpenLayers.Marker(this.lonlat,this.data.icon)}return this.marker},destroyMarker:function(){this.marker.destroy()},createPopup:function(b){if(this.lonlat!=null){var c=this.id+"_popup";var a=(this.marker)?this.marker.icon:null;if(!this.popup){this.popup=new this.popupClass(c,this.lonlat,this.data.popupSize,this.data.popupContentHTML,a,b)}if(this.data.overflow!=null){this.popup.contentDiv.style.overflow=this.data.overflow}this.popup.feature=this}return this.popup},destroyPopup:function(){if(this.popup){this.popup.feature=null;this.popup.destroy();this.popup=null}},CLASS_NAME:"OpenLayers.Feature"});OpenLayers.Handler.Click=OpenLayers.Class(OpenLayers.Handler,{delay:300,single:true,"double":false,pixelTolerance:0,stopSingle:false,stopDouble:false,timerId:null,down:null,rightclickTimerId:null,initialize:function(c,b,a){OpenLayers.Handler.prototype.initialize.apply(this,arguments);if(this.pixelTolerance!=null){this.mousedown=function(d){this.down=d.xy;return true}}},mousedown:null,mouseup:function(b){var a=true;if(this.checkModifiers(b)&&this.control.handleRightClicks&&OpenLayers.Event.isRightClick(b)){a=this.rightclick(b)}return a},rightclick:function(b){if(this.passesTolerance(b)){if(this.rightclickTimerId!=null){this.clearTimer();this.callback("dblrightclick",[b]);return !this.stopDouble}else{var a=this["double"]?OpenLayers.Util.extend({},b):this.callback("rightclick",[b]);var c=OpenLayers.Function.bind(this.delayedRightCall,this,a);this.rightclickTimerId=window.setTimeout(c,this.delay)}}return !this.stopSingle},delayedRightCall:function(a){this.rightclickTimerId=null;if(a){this.callback("rightclick",[a])}return !this.stopSingle},dblclick:function(a){if(this.passesTolerance(a)){if(this["double"]){this.callback("dblclick",[a])}this.clearTimer()}return !this.stopDouble},click:function(b){if(this.passesTolerance(b)){if(this.timerId!=null){this.clearTimer()}else{var a=this.single?OpenLayers.Util.extend({},b):null;this.timerId=window.setTimeout(OpenLayers.Function.bind(this.delayedCall,this,a),this.delay)}}return !this.stopSingle},passesTolerance:function(b){var c=true;if(this.pixelTolerance!=null&&this.down){var a=Math.sqrt(Math.pow(this.down.x-b.xy.x,2)+Math.pow(this.down.y-b.xy.y,2));if(a>this.pixelTolerance){c=false}}return c},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null}if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null}},delayedCall:function(a){this.timerId=null;if(a){this.callback("click",[a])}},deactivate:function(){var a=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.clearTimer();this.down=null;a=true}return a},CLASS_NAME:"OpenLayers.Handler.Click"});OpenLayers.Handler.Drag=OpenLayers.Class(OpenLayers.Handler,{started:false,stopDown:true,dragging:false,last:null,start:null,oldOnselectstart:null,interval:0,timeoutId:null,documentDrag:false,documentEvents:null,initialize:function(c,b,a){OpenLayers.Handler.prototype.initialize.apply(this,arguments)},down:function(a){},move:function(a){},up:function(a){},out:function(a){},mousedown:function(b){var a=true;this.dragging=false;if(this.checkModifiers(b)&&OpenLayers.Event.isLeftClick(b)){this.started=true;this.start=b.xy;this.last=b.xy;OpenLayers.Element.addClass(this.map.viewPortDiv,"olDragDown");this.down(b);this.callback("down",[b.xy]);OpenLayers.Event.stop(b);if(!this.oldOnselectstart){this.oldOnselectstart=(document.onselectstart)?document.onselectstart:OpenLayers.Function.True}document.onselectstart=OpenLayers.Function.False;a=!this.stopDown}else{this.started=false;this.start=null;this.last=null}return a},mousemove:function(a){if(this.started&&!this.timeoutId&&(a.xy.x!=this.last.x||a.xy.y!=this.last.y)){if(this.documentDrag===true&&this.documentEvents){if(a.element===document){this.adjustXY(a);this.setEvent(a)}else{this.destroyDocumentEvents()}}if(this.interval>0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval)}this.dragging=true;this.move(a);this.callback("move",[a.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False}this.last=this.evt.xy}return true},removeTimeout:function(){this.timeoutId=null},mouseup:function(b){if(this.started){if(this.documentDrag===true&&this.documentEvents){this.adjustXY(b);this.destroyDocumentEvents()}var a=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(b);this.callback("up",[b.xy]);if(a){this.callback("done",[b.xy])}document.onselectstart=this.oldOnselectstart}return true},mouseout:function(b){if(this.started&&OpenLayers.Util.mouseLeft(b,this.map.div)){if(this.documentDrag===true){this.documentEvents=new OpenLayers.Events(this,document,null,null,{includeXY:true});this.documentEvents.on({mousemove:this.mousemove,mouseup:this.mouseup});OpenLayers.Element.addClass(document.body,"olDragDown")}else{var a=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.out(b);this.callback("out",[]);if(a){this.callback("done",[b.xy])}if(document.onselectstart){document.onselectstart=this.oldOnselectstart}}}return true},click:function(a){return(this.start==this.last)},activate:function(){var a=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragging=false;a=true}return a},deactivate:function(){var a=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.started=false;this.dragging=false;this.start=null;this.last=null;a=true;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown")}return a},adjustXY:function(a){var b=OpenLayers.Util.pagePosition(this.map.div);a.xy.x-=b[0];a.xy.y-=b[1]},destroyDocumentEvents:function(){OpenLayers.Element.removeClass(document.body,"olDragDown");this.documentEvents.destroy();this.documentEvents=null},CLASS_NAME:"OpenLayers.Handler.Drag"});OpenLayers.Handler.MouseWheel=OpenLayers.Class(OpenLayers.Handler,{wheelListener:null,mousePosition:null,interval:0,delta:0,cumulative:true,initialize:function(c,b,a){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.wheelListener=OpenLayers.Function.bindAsEventListener(this.onWheelEvent,this)},destroy:function(){OpenLayers.Handler.prototype.destroy.apply(this,arguments);this.wheelListener=null},onWheelEvent:function(k){if(!this.map||!this.checkModifiers(k)){return}var g=false;var m=false;var f=false;var b=OpenLayers.Event.element(k);while((b!=null)&&!f&&!g){if(!g){try{if(b.currentStyle){c=b.currentStyle.overflow}else{var a=document.defaultView.getComputedStyle(b,null);var c=a.getPropertyValue("overflow")}g=(c&&(c=="auto")||(c=="scroll"))}catch(d){}}if(!m){for(var h=0,j=this.map.layers.length;h=0){this.initResolutions();break}}}},onMapResize:function(){},redraw:function(){var b=false;if(this.map){this.inRange=this.calculateInRange();var c=this.getExtent();if(c&&this.inRange&&this.visibility){var a=true;this.moveTo(c,a,false);this.events.triggerEvent("moveend",{zoomChanged:a});b=true}}return b},moveTo:function(b,a,c){var d=this.visibility;if(!this.isBaseLayer){d=d&&this.inRange}this.display(d)},setMap:function(b){if(this.map==null){this.map=b;this.maxExtent=this.maxExtent||this.map.maxExtent;this.minExtent=this.minExtent||this.map.minExtent;this.projection=this.projection||this.map.projection;if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection)}this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var a=((this.visibility)&&(this.inRange));this.div.style.display=a?"":"none"}this.setTileSize()}},afterAdd:function(){},removeMap:function(a){},getImageSize:function(a){return(this.imageSize||this.tileSize)},setTileSize:function(a){var b=(a)?a:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=b;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(b.w+(2*this.gutter),b.h+(2*this.gutter))}},getVisibility:function(){return this.visibility},setVisibility:function(a){if(a!=this.visibility){this.visibility=a;this.display(a);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"})}this.events.triggerEvent("visibilitychanged")}},display:function(a){if(a!=(this.div.style.display!="none")){this.div.style.display=(a&&this.calculateInRange())?"block":"none"}},calculateInRange:function(){var b=false;if(this.alwaysInRange){b=true}else{if(this.map){var a=this.map.getResolution();b=((a>=this.minResolution)&&(a<=this.maxResolution))}}return b},setIsBaseLayer:function(a){if(a!=this.isBaseLayer){this.isBaseLayer=a;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this})}}},initResolutions:function(){var e,a;var f={},d=true;for(e=0,a=this.RESOLUTION_PROPERTIES.length;e=e){d=j;k=f}if(j<=e){b=j;c=f;break}}var h=d-b;if(h>0){n=k+((d-e)/h)}else{n=k}}else{var l;var m=Number.POSITIVE_INFINITY;for(var f=0,g=this.resolutions.length;fm){break}m=l}else{if(this.resolutions[f]d){this.zoomBox.style.width=Math.max(1,c-e.xOffset)+"px"}if(f.y>b){this.zoomBox.style.height=Math.max(1,a-e.yOffset)+"px"}}},endBox:function(b){var a;if(Math.abs(this.dragHandler.start.x-b.x)>5||Math.abs(this.dragHandler.start.y-b.y)>5){var g=this.dragHandler.start;var f=Math.min(g.y,b.y);var c=Math.max(g.y,b.y);var e=Math.min(g.x,b.x);var d=Math.max(g.x,b.x);a=new OpenLayers.Bounds(e,c,d,f)}else{a=this.dragHandler.start.clone()}this.removeBox();this.callback("done",[a])},removeBox:function(){this.map.viewPortDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxCharacteristics=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDrawBox")},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true}else{return false}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.dragHandler.deactivate();return true}else{return false}},getBoxCharacteristics:function(){if(!this.boxCharacteristics){var a=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width"))+1;var c=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-top-width"))+parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-bottom-width"))+1;var b=OpenLayers.Util.getBrowserName()=="msie"?document.compatMode!="BackCompat":true;this.boxCharacteristics={xOffset:a,yOffset:c,newBoxModel:b}}return this.boxCharacteristics},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Layer.HTTPRequest=OpenLayers.Class(OpenLayers.Layer,{URL_HASH_FACTOR:(Math.sqrt(5)-1)/2,url:null,params:null,reproject:false,initialize:function(d,c,e,b){var a=arguments;a=[d,b];OpenLayers.Layer.prototype.initialize.apply(this,a);this.url=c;this.params=OpenLayers.Util.extend({},e)},destroy:function(){this.url=null;this.params=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments)},clone:function(a){if(a==null){a=new OpenLayers.Layer.HTTPRequest(this.name,this.url,this.params,this.getOptions())}a=OpenLayers.Layer.prototype.clone.apply(this,[a]);return a},setUrl:function(a){this.url=a},mergeNewParams:function(b){this.params=OpenLayers.Util.extend(this.params,b);var a=this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"params"})}return a},redraw:function(a){if(a){return this.mergeNewParams({_olSalt:Math.random()})}else{return OpenLayers.Layer.prototype.redraw.apply(this,[])}},selectUrl:function(e,d){var c=1;for(var b=0,a=e.length;b0){this.removeMarker(this.markers[0])}}},drawMarker:function(a){var b=this.map.getLayerPxFromLonLat(a.lonlat);if(b==null){a.display(false)}else{if(!a.isDrawn()){var c=a.draw(b);this.div.appendChild(c)}else{if(a.icon){a.icon.moveTo(b)}}}},getDataExtent:function(){var b=null;if(this.markers&&(this.markers.length>0)){var b=new OpenLayers.Bounds();for(var d=0,a=this.markers.length;d0){c.push(",")}j=f[e].geometry;h=j.CLASS_NAME.split(".")[2].toLowerCase();if(!this.extract[h]){return null}if(this.internalProjection&&this.externalProjection){j=j.clone();j.transform(this.internalProjection,this.externalProjection)}d=this.extract[h].apply(this,[j]);c.push(h.toUpperCase()+"("+d+")")}if(b){c.push(")")}return c.join("")},extract:{point:function(a){return a.x+" "+a.y},multipoint:function(c){var d=[];for(var b=0,a=c.components.length;b=i.bottom-j*this.buffer)||t=0)&&(c=0)){f=this.grid[j][c]}if((f!=null)&&(!f.queued)){b.unshift(f);f.queued=true;l=0;g=j;a=c}else{k=(k+1)%4;l++}}for(var d=0,e=b.length;d-this.tileSize.w*(b-1)){this.shiftColumn(true)}else{if(d.x<-this.tileSize.w*b){this.shiftColumn(false)}else{if(d.y>-this.tileSize.h*(b-1)){this.shiftRow(true)}else{if(d.y<-this.tileSize.h*b){this.shiftRow(false)}else{break}}}}}},shiftRow:function(n){var c=(n)?0:(this.grid.length-1);var b=this.grid;var f=b[c];var e=this.map.getResolution();var h=(n)?-this.tileSize.h:this.tileSize.h;var g=e*-h;var m=(n)?b.pop():b.shift();for(var j=0,l=f.length;je){var f=this.grid.pop();for(var b=0,a=f.length;bc){for(var b=0,a=this.grid.length;b=0&&E<=1&&C>=0&&C<=1){if(!s){f=true}else{var h=a.x1+(E*o);var g=a.y1+(E*w);f=new OpenLayers.Geometry.Point(h,g)}}}if(z){var r;if(f){if(s){var n=[a,H];var A,h,g;outer:for(var v=0;v<2;++v){A=n[v];for(var u=1;u<3;++u){h=A["x"+u];g=A["y"+u];r=Math.sqrt(Math.pow(h-f.x,2)+Math.pow(g-f.y,2));if(r=1){g=a;e=f}else{g=b+h*m;e=i+h*l}}return{distance:Math.sqrt(Math.pow(g-c,2)+Math.pow(e-j,2)),x:g,y:e}};OpenLayers.Layer.TMS=OpenLayers.Class(OpenLayers.Layer.Grid,{serviceVersion:"1.0.0",isBaseLayer:true,tileOrigin:null,serverResolutions:null,zoomOffset:0,initialize:function(d,c,b){var a=[];a.push(d,c,{},b);OpenLayers.Layer.Grid.prototype.initialize.apply(this,a)},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments)},clone:function(a){if(a==null){a=new OpenLayers.Layer.TMS(this.name,this.url,this.getOptions())}a=OpenLayers.Layer.Grid.prototype.clone.apply(this,[a]);return a},getURL:function(d){d=this.adjustBounds(d);var c=this.map.getResolution();var a=Math.round((d.left-this.tileOrigin.lon)/(c*this.tileSize.w));var g=Math.round((d.bottom-this.tileOrigin.lat)/(c*this.tileSize.h));var f=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,c):this.map.getZoom()+this.zoomOffset;var e=this.serviceVersion+"/"+this.layername+"/"+f+"/"+a+"/"+g+"."+this.type;var b=this.url;if(b instanceof Array){b=this.selectUrl(e,b)}return b+e},addTile:function(b,a){return new OpenLayers.Tile.Image(this,a,b,null,this.tileSize)},setMap:function(a){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.map.maxExtent.left,this.map.maxExtent.bottom)}},CLASS_NAME:"OpenLayers.Layer.TMS"});OpenLayers.Layer.WMS=OpenLayers.Class(OpenLayers.Layer.Grid,{DEFAULT_PARAMS:{service:"WMS",version:"1.1.1",request:"GetMap",styles:"",exceptions:"application/vnd.ogc.se_inimage",format:"image/jpeg"},reproject:false,isBaseLayer:true,encodeBBOX:false,noMagic:false,yx:{"EPSG:4326":true},initialize:function(d,c,e,b){var a=[];e=OpenLayers.Util.upperCaseObject(e);if(parseFloat(e.VERSION)>=1.3&&!e.EXCEPTIONS){e.EXCEPTIONS="INIMAGE"}a.push(d,c,e,b);OpenLayers.Layer.Grid.prototype.initialize.apply(this,a);OpenLayers.Util.applyDefaults(this.params,OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS));if(!this.noMagic&&this.params.TRANSPARENT&&this.params.TRANSPARENT.toString().toLowerCase()=="true"){if((b==null)||(!b.isBaseLayer)){this.isBaseLayer=false}if(this.params.FORMAT=="image/jpeg"){this.params.FORMAT=OpenLayers.Util.alphaHack()?"image/gif":"image/png"}}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments)},clone:function(a){if(a==null){a=new OpenLayers.Layer.WMS(this.name,this.url,this.params,this.getOptions())}a=OpenLayers.Layer.Grid.prototype.clone.apply(this,[a]);return a},reverseAxisOrder:function(){return(parseFloat(this.params.VERSION)>=1.3&&!!this.yx[this.map.getProjectionObject().getCode()])},getURL:function(c){c=this.adjustBounds(c);var d=this.getImageSize();var e={};var b=this.reverseAxisOrder();e.BBOX=this.encodeBBOX?c.toBBOX(null,b):c.toArray(b);e.WIDTH=d.w;e.HEIGHT=d.h;var a=this.getFullRequestString(e);return a},addTile:function(b,a){return new OpenLayers.Tile.Image(this,a,b,null,this.tileSize)},mergeNewParams:function(c){var b=OpenLayers.Util.upperCaseObject(c);var a=[b];return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,a)},getFullRequestString:function(d,b){var a=this.map.getProjection();var c=(a=="none")?null:a;if(parseFloat(this.params.VERSION)>=1.3){this.params.CRS=c}else{this.params.SRS=c}return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments)},CLASS_NAME:"OpenLayers.Layer.WMS"});OpenLayers.Geometry.Collection=OpenLayers.Class(OpenLayers.Geometry,{components:null,componentTypes:null,initialize:function(a){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.components=[];if(a!=null){this.addComponents(a)}},destroy:function(){this.components.length=0;this.components=null;OpenLayers.Geometry.prototype.destroy.apply(this,arguments)},clone:function(){var geometry=eval("new "+this.CLASS_NAME+"()");for(var i=0,len=this.components.length;i0){this.setBounds(this.components[0].getBounds());for(var b=1,a=this.components.length;b-1)){if(a!=null&&(a=0;--a){this.removeComponent(b[a])}},removeComponent:function(a){OpenLayers.Util.removeItem(this.components,a);this.clearBounds()},getLength:function(){var c=0;for(var b=0,a=this.components.length;b0)?e:h;c.push(f)}l=b.length;if(d===0){for(var k=0;k1)){for(var b=1,a=this.components.length;b1)){var h,g;for(var d=1,a=e.components.length;d2)){OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments)}},intersects:function(m){var c=false;var l=m.CLASS_NAME;if(l=="OpenLayers.Geometry.LineString"||l=="OpenLayers.Geometry.LinearRing"||l=="OpenLayers.Geometry.Point"){var p=this.getSortedSegments();var n;if(l=="OpenLayers.Geometry.Point"){n=[{x1:m.x,y1:m.y,x2:m.x,y2:m.y}]}else{n=m.getSortedSegments()}var s,g,e,a,r,q,d,b;outer:for(var h=0,k=p.length;he){break}if(q.x2Math.max(a,r)){continue}if(Math.max(d,b)0){var p=r.x10){a.unshift(r,1);Array.prototype.splice.apply(c,a);r+=a.length-2}if(d){for(var q=0,u=h.points.length;q0&&s.length>0){s.push(f.clone());m.push(new OpenLayers.Geometry.LineString(s))}}else{n=x.splitWith(this,b)}if(c&&c.length>1){e=true}else{c=[]}if(m&&m.length>1){l=true}else{m=[]}if(e||l){if(d){n=[m,c]}else{n=c}}return n},splitWith:function(b,a){return b.split(this,a)},getVertices:function(a){var b;if(a===true){b=[this.components[0],this.components[this.components.length-1]]}else{if(a===false){b=this.components.slice(1,this.components.length-1)}else{b=this.components.slice()}}return b},distanceTo:function(h,g){var k=!(g&&g.edge===false);var B=k&&g&&g.details;var q,e={};var t=Number.POSITIVE_INFINITY;if(h instanceof OpenLayers.Geometry.Point){var r=this.getSortedSegments();var p=h.x;var o=h.y;var z;for(var v=0,w=r.length;vp&&((o>z.y1&&oz.y2))){break}}}if(B){e={distance:e.distance,x0:e.x,y0:e.y,x1:p,y1:o}}else{e=e.distance}}else{if(h instanceof OpenLayers.Geometry.LineString){var d=this.getSortedSegments();var c=h.getSortedSegments();var b,a,n,A,f;var m=c.length;var l={point:true};outer:for(var v=0,w=d.length;v4){this.components.pop();OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);var b=this.components[0];OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,[b])}},move:function(b,d){for(var c=0,a=this.components.length;c2)){var h=0;var g=0;for(var e=0;e2)){var f=0;for(var e=0,d=this.components.length;e2){var h,g;for(var e=0;e=q&&k<=o)||q>=o&&(k<=q&&k>=o)){h=-1;break}}continue}e=s(r(j,q,d,o,b),l);if(e==k){if(d=d&&j<=b)||d>b&&(j<=d&&j>=b)){h=-1;break}}if(e<=k){continue}if(q!=o&&(eMath.max(q,o))){continue}if(d=d&&jb&&(j=b)){++h}}var p=(h==-1)?1:!!(h&1);return p},intersects:function(d){var b=false;if(d.CLASS_NAME=="OpenLayers.Geometry.Point"){b=this.containsPoint(d)}else{if(d.CLASS_NAME=="OpenLayers.Geometry.LineString"){b=d.intersects(this)}else{if(d.CLASS_NAME=="OpenLayers.Geometry.LinearRing"){b=OpenLayers.Geometry.LineString.prototype.intersects.apply(this,[d])}else{for(var c=0,a=d.components.length;cprofile->fullname)) { - $base = $this->profile->fullname . ' (' . $this->user->nickname . ') '; - } else { - $base = $this->user->nickname; - } + $base = $this->profile->getFancyName(); if ($this->page == 1) { + // TRANS: Page title. + // TRANS: %s is a user nickname. return sprintf(_m("%s friends map"), $base); } else { - return sprintf(_m("%s friends map, page %d"), + // @todo CHECKME: does this even happen? May not be needed. + // TRANS: Page title. + // TRANS: %1$s is a user nickname, %2$d is a page number. + return sprintf(_m('%1$s friends map, page %2$d'), $base, $this->page); } diff --git a/plugins/Mapstraction/locale/Mapstraction.pot b/plugins/Mapstraction/locale/Mapstraction.pot index 764bf7b291..89f59e044b 100644 --- a/plugins/Mapstraction/locale/Mapstraction.pot +++ b/plugins/Mapstraction/locale/Mapstraction.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,18 +16,19 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: MapstractionPlugin.php:182 +#: MapstractionPlugin.php:187 msgid "Map" msgstr "" -#: MapstractionPlugin.php:193 +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 msgid "Full size" msgstr "" -#: MapstractionPlugin.php:205 +#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction JavaScript library." +"mapstraction.com/\">Mapstraction." msgstr "" #: map.php:72 @@ -38,17 +39,21 @@ msgstr "" msgid "User has no profile." msgstr "" -#: allmap.php:71 +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "" -#: allmap.php:74 +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 #, php-format -msgid "%s friends map, page %d" +msgid "%1$s friends map, page %2$d" msgstr "" -#: usermap.php:71 +#: usermap.php:68 #, php-format msgid "%s map, page %d" msgstr "" diff --git a/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..7bc4a4a155 --- /dev/null +++ b/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,64 @@ +# Translation of StatusNet - Mapstraction to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Kartenn" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "N'eus ket eus an implijer-se." + +#: map.php:79 +msgid "User has no profile." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Kartenn mignoned %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, fuzzy, php-format +msgid "%1$s friends map, page %2$d" +msgstr "%s gartenn, pajenn %d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "%s gartenn, pajenn %d" diff --git a/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..cd63dc1442 --- /dev/null +++ b/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,67 @@ +# Translation of StatusNet - Mapstraction to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:13+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Karte" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "in voller Größe" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Zeigt Karten mit Nachrichten von Freunden und Nutzern mit Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Unbekannter Benutzer." + +#: map.php:79 +msgid "User has no profile." +msgstr "Benutzer hat kein Profil." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Karte der Freunde von %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Karte der Freunde von %1$s, Seite %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "%s-Karte, Seite %d" diff --git a/plugins/Mapstraction/locale/es/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/es/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..26c996a5cf --- /dev/null +++ b/plugins/Mapstraction/locale/es/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,65 @@ +# Translation of StatusNet - Mapstraction to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Mapa" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "" + +#: map.php:79 +msgid "User has no profile." +msgstr "Usuario no tiene perfil." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..751544b68b --- /dev/null +++ b/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,64 @@ +# Translation of StatusNet - Mapstraction to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Kartta" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Täysi koko" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "Käyttäjää ei ole." + +#: map.php:79 +msgid "User has no profile." +msgstr "Käyttäjällä ei ole profiilia." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Kartta käyttäjän %s ystävistä" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, fuzzy, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Kartta käyttäjän %s ystävistä" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..015e4f92bf --- /dev/null +++ b/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,67 @@ +# Translation of StatusNet - Mapstraction to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Cartographie" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Pleine taille" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Affiche des cartes localisant les avis des utilisateurs et amis avec Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Utilisateur inexistant." + +#: map.php:79 +msgid "User has no profile." +msgstr "Aucun profil ne correspond à cet utilisateur." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Carte des amis de %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Carte des amis de %1$s, page %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "Carte %s, page %d" diff --git a/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..7e9b8d6188 --- /dev/null +++ b/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,64 @@ +# Translation of StatusNet - Mapstraction to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Galician \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Mapa" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Tamaño completo" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "Non existe tal usuario." + +#: map.php:79 +msgid "User has no profile." +msgstr "O usuario non ten perfil." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..1f37fa736c --- /dev/null +++ b/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,66 @@ +# Translation of StatusNet - Mapstraction to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Mappa" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Dimension complete" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Monstra mappas de notas de usatores e amicos con Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Iste usator non existe." + +#: map.php:79 +msgid "User has no profile." +msgstr "Le usator non ha un profilo." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Mappa del amicos de %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Mappa de amicos de %1$s, pagina %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "Mappa de %s, pagina %d" diff --git a/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..3626b07eb5 --- /dev/null +++ b/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,66 @@ +# Translation of StatusNet - Mapstraction to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Карта" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Полна големина" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Прикажувај карти со забелешките на корисниците и пријателите со Mapstraction" + +#: map.php:72 +msgid "No such user." +msgstr "Нема таков корисник." + +#: map.php:79 +msgid "User has no profile." +msgstr "Корисникот нема профил." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Карта на пријатели на %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Карта на пријатели на %1$s, страница %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "Карта на %s, стр. %d" diff --git a/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..16982697e3 --- /dev/null +++ b/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,66 @@ +# Translation of StatusNet - Mapstraction to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Kart" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Full størrelse" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Vis kart over brukeres og venners notiser med Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Ingen slik bruker." + +#: map.php:79 +msgid "User has no profile." +msgstr "Bruker har ingen profil." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "%s vennekart" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "%1$s vennekart, side %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "%s kart, side %d" diff --git a/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..5848ca4453 --- /dev/null +++ b/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,67 @@ +# Translation of StatusNet - Mapstraction to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Kaart" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Groter" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Geeft een kaart met de mededelingen van de gebruiker en vrienden weer met " +"behulp van Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Deze gebruiker bestaat niet" + +#: map.php:79 +msgid "User has no profile." +msgstr "Deze gebruiker heeft geen profiel." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Kaart van %s en vrienden" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Kaart van vrienden van %1$s, pagina %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "Kaart van %s, pagina %d" diff --git a/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..a27df4d254 --- /dev/null +++ b/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,65 @@ +# Translation of StatusNet - Mapstraction to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Карта" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Полный размер" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "Нет такого пользователя." + +#: map.php:79 +msgid "User has no profile." +msgstr "У пользователя нет профиля." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Карта друзей: %s" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, fuzzy, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Карта друзей: %s" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..ba99ac8547 --- /dev/null +++ b/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,64 @@ +# Translation of StatusNet - Mapstraction to Tamil (தமிழ்) +# Expored from translatewiki.net +# +# Author: TRYPPN +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Tamil \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ta\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "வரைபடம்" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "முழு அளவு" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "அப்படியொரு பயனர் இல்லை." + +#: map.php:79 +msgid "User has no profile." +msgstr "" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..65a3c17d77 --- /dev/null +++ b/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,64 @@ +# Translation of StatusNet - Mapstraction to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Telugu \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "పటం" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "పూర్తి పరిమాణం" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" + +#: map.php:72 +msgid "No such user." +msgstr "" + +#: map.php:79 +msgid "User has no profile." +msgstr "" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..d191492d94 --- /dev/null +++ b/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,66 @@ +# Translation of StatusNet - Mapstraction to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Mapa" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Buong sukat" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Nagpapakita ng mga mapa ng mga pabatid ng mga tagagamit at ng mga kaibigan " +"sa pamamagitan ng Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Walang ganyang tagagamit." + +#: map.php:79 +msgid "User has no profile." +msgstr "Walang balangkas ang tagagamit." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "%s na mapa ng mga kaibigan" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr " %1$s mapa ng mga kaibigan, pahina %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "%s na mapa, pahina %d" diff --git a/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..ebdda7d2d7 --- /dev/null +++ b/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,67 @@ +# Translation of StatusNet - Mapstraction to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "Мапа" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "Повний розмір" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"Показ мапи дописів користувачів і друзів за допомогою Mapstraction." + +#: map.php:72 +msgid "No such user." +msgstr "Такого користувача немає." + +#: map.php:79 +msgid "User has no profile." +msgstr "Користувач не має профілю." + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "Мапа друзів %s." + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "Мапа друзів %1$s, сторінка %2$d" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "Мапа друзів %s, сторінка %d" diff --git a/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po new file mode 100644 index 0000000000..51deb5f380 --- /dev/null +++ b/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po @@ -0,0 +1,67 @@ +# Translation of StatusNet - Mapstraction to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Mapstraction\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:14+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-mapstraction\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MapstractionPlugin.php:187 +msgid "Map" +msgstr "地图" + +#. TRANS: Clickable item to allow opening the map in full size. +#: MapstractionPlugin.php:199 +msgid "Full size" +msgstr "完整尺寸" + +#: MapstractionPlugin.php:211 +msgid "" +"Show maps of users' and friends' notices with Mapstraction." +msgstr "" +"使用 Mapstraction 显示用户和好友" +"的消息地图。" + +#: map.php:72 +msgid "No such user." +msgstr "没有这个用户。" + +#: map.php:79 +msgid "User has no profile." +msgstr "用户没有个人信息。" + +#. TRANS: Page title. +#. TRANS: %s is a user nickname. +#: allmap.php:69 +#, php-format +msgid "%s friends map" +msgstr "%s 好友地图" + +#. TRANS: Page title. +#. TRANS: %1$s is a user nickname, %2$d is a page number. +#: allmap.php:75 +#, php-format +msgid "%1$s friends map, page %2$d" +msgstr "%1$s 好友地图,第 %2$d 页。" + +#: usermap.php:68 +#, php-format +msgid "%s map, page %d" +msgstr "%s 地图,第 %d 页" diff --git a/plugins/Mapstraction/map.php b/plugins/Mapstraction/map.php index 7dab8e10a9..dbba4edd0c 100644 --- a/plugins/Mapstraction/map.php +++ b/plugins/Mapstraction/map.php @@ -42,7 +42,6 @@ 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 MapAction extends OwnerDesignAction { var $profile = null; @@ -54,7 +53,7 @@ class MapAction extends OwnerDesignAction parent::prepare($args); $nickname_arg = $this->arg('nickname'); - $nickname = common_canonical_nickname($nickname_arg); + $nickname = Nickname::normalize($nickname_arg); // Permanent redirect on non-canonical nickname @@ -116,7 +115,6 @@ class MapAction extends OwnerDesignAction * * @return boolean event handler return */ - function showScripts() { parent::showScripts(); diff --git a/plugins/Mapstraction/usermap-mxn-openlayers.min.js b/plugins/Mapstraction/usermap-mxn-openlayers.min.js new file mode 100644 index 0000000000..6f55fa6c6a --- /dev/null +++ b/plugins/Mapstraction/usermap-mxn-openlayers.min.js @@ -0,0 +1 @@ +(function(){var h=null;var e="core";var b;var a=document.getElementsByTagName("script");for(var f=0;f<\/script>");for(var c=0;c<\/script>")}}})();(function(){var c={};var b=function(i,h,g,e,f){if(!d(i,h,g)){throw"Method "+g+" of object "+h+" is not supported by API "+i+". Are you missing a script tag?"}return c[i][h][g].apply(e,f)};var d=function(g,f,e){if(typeof(c[g])=="undefined"){throw"API "+g+" not loaded. Are you missing a script tag?"}if(typeof(c[g][f])=="undefined"){throw"Object definition "+f+" in API "+g+" not loaded. Are you missing a script tag?"}return typeof(c[g][f][e])=="function"};var a=window.mxn={register:function(f,e){if(!c.hasOwnProperty(f)){c[f]={}}a.util.merge(c[f],e)},addProxyMethods:function(g,k,f){for(var e=0;e0){current_marker=this.markers.pop();this.invoker.go("removeMarker",[current_marker])}};Mapstraction.prototype.declutterMarkers=function(opts){if(this.loaded[this.api]===false){var me=this;this.onload[this.api].push(function(){me.declutterMarkers(opts)});return}var map=this.maps[this.api];switch(this.api){case"multimap":map.declutterGroup(opts.groupName);break;case" dummy":break;default:if(this.debug){alert(this.api+" not supported by Mapstraction.declutterMarkers")}}};Mapstraction.prototype.addPolyline=function(polyline,old){polyline.api=this.api;polyline.map=this.maps[this.api];var propPoly=this.invoker.go("addPolyline",arguments);polyline.setChild(propPoly);if(!old){this.polylines.push(polyline)}this.polylineAdded.fire({polyline:polyline})};var removePolylineImpl=function(polyline){this.invoker.go("removePolyline",arguments);polyline.onmap=false;this.polylineRemoved.fire({polyline:polyline})};Mapstraction.prototype.removePolyline=function(polyline){var current_polyline;for(var i=0;i0){current_polyline=this.polylines.pop();removePolylineImpl.call(this,current_polyline)}};Mapstraction.prototype.autoCenterAndZoom=function(){var lat_max=-90;var lat_min=90;var lon_max=-180;var lon_min=180;var lat,lon;var checkMinMax=function(){if(lat>lat_max){lat_max=lat}if(latlon_max){lon_max=lon}if(lonlat_max){lat_max=lat}if(latlon_max){lon_max=lon}if(lon0){latConv=(radius/mapstraction.polylines[i].points[j].latConv());lonConv=(radius/mapstraction.polylines[i].points[j].lonConv())}if((lat+latConv)>lat_max){lat_max=(lat+latConv)}if((lat-latConv)lon_max){lon_max=(lon+lonConv)}if((lon-lonConv)=100){opacity=100}var c=opacity/100;var d=document.getElementById(id);if(typeof(d.style.filter)=="string"){d.style.filter="alpha(opacity:"+opacity+")"}if(typeof(d.style.KHTMLOpacity)=="string"){d.style.KHTMLOpacity=c}if(typeof(d.style.MozOpacity)=="string"){d.style.MozOpacity=c}if(typeof(d.style.opacity)=="string"){d.style.opacity=c}};Mapstraction.prototype.setImagePosition=function(id){var imgElement=document.getElementById(id);var oContext={latLng:{top:imgElement.getAttribute("north"),left:imgElement.getAttribute("west"),bottom:imgElement.getAttribute("south"),right:imgElement.getAttribute("east")},pixels:{top:0,right:0,bottom:0,left:0}};this.invoker.go("setImagePosition",arguments,{context:oContext});imgElement.style.top=oContext.pixels.top.toString()+"px";imgElement.style.left=oContext.pixels.left.toString()+"px";imgElement.style.width=(oContext.pixels.right-oContext.pixels.left).toString()+"px";imgElement.style.height=(oContext.pixels.bottom-oContext.pixels.top).toString()+"px"};Mapstraction.prototype.addJSON=function(json){var features;if(typeof(json)=="string"){features=eval("("+json+")")}else{features=json}features=features.features;var map=this.maps[this.api];var html="";var item;var polyline;var marker;var markers=[];if(features.type=="FeatureCollection"){this.addJSON(features.features)}for(var i=0;i"+item.title+"

"+item.description+"

";marker=new Marker(new LatLonPoint(item.geometry.coordinates[1],item.geometry.coordinates[0]));markers.push(marker);this.addMarkerWithData(marker,{infoBubble:html,label:item.title,date:'new Date("'+item.date+'")',iconShadow:item.icon_shadow,marker:item.id,iconShadowSize:item.icon_shadow_size,icon:"http://boston.openguides.org/markers/AQUA.png",iconSize:item.icon_size,category:item.source_id,draggable:false,hover:false});break;case"Polygon":var points=[];polyline=new Polyline(points);mapstraction.addPolylineWithData(polyline,{fillColor:item.poly_color,date:'new Date("'+item.date+'")',category:item.source_id,width:item.line_width,opacity:item.line_opacity,color:item.line_color,polygon:true});markers.push(polyline);break;default:}}return markers};Mapstraction.prototype.addTileLayer=function(tile_url,opacity,copyright_text,min_zoom,max_zoom,map_type){if(!tile_url){return}this.tileLayers=this.tileLayers||[];opacity=opacity||0.6;copyright_text=copyright_text||"Mapstraction";min_zoom=min_zoom||1;max_zoom=max_zoom||18;map_type=map_type||false;return this.invoker.go("addTileLayer",[tile_url,opacity,copyright_text,min_zoom,max_zoom,map_type])};Mapstraction.prototype.addFilter=function(field,operator,value){if(!this.filters){this.filters=[]}this.filters.push([field,operator,value])};Mapstraction.prototype.removeFilter=function(field,operator,value){if(!this.filters){return}var del;for(var f=0;ff[2]){vis=false}break;case"eq":if(o.getAttribute(f[0])==f[2]){vis=false}break}return vis};Mapstraction.prototype.getAttributeExtremes=function(field){var min;var max;for(var m=0;mthis.markers[m].getAttribute(field)){min=this.markers[m].getAttribute(field)}if(!max||maxthis.polylines[p].getAttribute(field)){min=this.polylines[p].getAttribute(field)}if(!max||max=this.sw.lat&&point.lat<=this.ne.lat&&point.lon>=this.sw.lon&&point.lon<=this.ne.lon};BoundingBox.prototype.toSpan=function(){return new LatLonPoint(Math.abs(this.sw.lat-this.ne.lat),Math.abs(this.sw.lon-this.ne.lon))};BoundingBox.prototype.extend=function(point){if(this.sw.lat>point.lat){this.sw.lat=point.lat}if(this.sw.lon>point.lon){this.sw.lon=point.lon}if(this.ne.lat=tolerance){reduced[reduced.length]=this.points[i];markerPoint=i}}reduced[reduced.length]=this.points[this.points.length-1];this.points=reduced};var Radius=mxn.Radius=function(center,quality){this.center=center;var latConv=center.latConv();var lonConv=center.lonConv();var rad=Math.PI/180;this.calcs=[];for(var i=0;i<360;i+=quality){this.calcs.push([Math.cos(i*rad)/latConv,Math.sin(i*rad)/lonConv])}};Radius.prototype.getPolyline=function(radius,colour){var points=[];for(var i=0;i=e){return null}else{d=((d%e)+e)%e;var i=k+"/"+d+"/"+l+"."+this.type;var f=this.url;if(f instanceof Array){f=this.selectUrl(i,f)}return f+i}},displayOutsideMaxExtent:true});this.layers.osm=new OpenLayers.Layer.TMS("OSM",["http://a.tah.openstreetmap.org/Tiles/tile.php/","http://b.tah.openstreetmap.org/Tiles/tile.php/","http://c.tah.openstreetmap.org/Tiles/tile.php/"],{type:"png",getURL:function(h){var g=this.map.getResolution();var d=Math.round((h.left-this.maxExtent.left)/(g*this.tileSize.w));var l=Math.round((this.maxExtent.top-h.top)/(g*this.tileSize.h));var k=this.map.getZoom();var e=Math.pow(2,k);if(l<0||l>=e){return null}else{d=((d%e)+e)%e;var i=k+"/"+d+"/"+l+"."+this.type;var f=this.url;if(f instanceof Array){f=this.selectUrl(i,f)}return f+i}},displayOutsideMaxExtent:true});this.maps[b].addLayer(this.layers.osmmapnik);this.maps[b].addLayer(this.layers.osm)},applyOptions:function(){},resizeTo:function(b,a){this.currentElement.style.width=b;this.currentElement.style.height=a;this.maps[this.api].updateSize()},addControls:function(a){var c=this.maps[this.api];for(var b=c.controls.length;b>1;b--){c.controls[b-1].deactivate();c.removeControl(c.controls[b-1])}if(a.zoom=="large"){c.addControl(new OpenLayers.Control.PanZoomBar())}else{if(a.zoom=="small"){c.addControl(new OpenLayers.Control.ZoomPanel());if(a.pan){c.addControl(new OpenLayers.Control.PanPanel())}}else{if(a.pan){c.addControl(new OpenLayers.Control.PanPanel())}}}if(a.overview){c.addControl(new OpenLayers.Control.OverviewMap())}if(a.map_type){c.addControl(new OpenLayers.Control.LayerSwitcher())}},addSmallControls:function(){var a=this.maps[this.api];this.addControlsArgs.pan=false;this.addControlsArgs.scale=false;this.addControlsArgs.zoom="small";a.addControl(new OpenLayers.Control.ZoomBox());a.addControl(new OpenLayers.Control.LayerSwitcher({ascending:false}))},addLargeControls:function(){var a=this.maps[this.api];a.addControl(new OpenLayers.Control.PanZoomBar());this.addControlsArgs.pan=true;this.addControlsArgs.zoom="large"},addMapTypeControls:function(){var a=this.maps[this.api];a.addControl(new OpenLayers.Control.LayerSwitcher({ascending:false}));this.addControlsArgs.map_type=true},setCenterAndZoom:function(a,b){var d=this.maps[this.api];var c=a.toProprietary(this.api);d.setCenter(a.toProprietary(this.api),b)},addMarker:function(b,a){var d=this.maps[this.api];var c=b.toProprietary(this.api);if(!this.layers.markers){this.layers.markers=new OpenLayers.Layer.Markers("markers");d.addLayer(this.layers.markers)}this.layers.markers.addMarker(c);return c},removeMarker:function(a){var c=this.maps[this.api];var b=a.toProprietary(this.api);this.layers.markers.removeMarker(b);b.destroy()},removeAllMarkers:function(){var a=this.maps[this.api]},declutterMarkers:function(a){var b=this.maps[this.api]},addPolyline:function(b,a){var d=this.maps[this.api];var c=b.toProprietary(this.api);if(!this.layers.polylines){this.layers.polylines=new OpenLayers.Layer.Vector("polylines");d.addLayer(this.layers.polylines)}b.setChild(c);this.layers.polylines.addFeatures([c]);return c},removePolyline:function(a){var c=this.maps[this.api];var b=a.toProprietary(this.api);this.layers.polylines.removeFeatures([b])},removeAllPolylines:function(){var c=[];for(var a=0,b=this.polylines.length;ad.lon){a.lon-=360}var b=new OpenLayers.Bounds();b.extend(new mxn.LatLonPoint(a.lat,a.lon).toProprietary(this.api));b.extend(new mxn.LatLonPoint(d.lat,d.lon).toProprietary(this.api));e.zoomToExtent(b)},addImageOverlay:function(c,a,e,i,f,g,d,h){var b=this.maps[this.api]},setImagePosition:function(e,b){var d=this.maps[this.api];var c;var a},addOverlay:function(a,b){var c=this.maps[this.api]},addTileLayer:function(f,a,b,d,e){var c=this.maps[this.api]},toggleTileLayer:function(b){var a=this.maps[this.api]},getPixelRatio:function(){var a=this.maps[this.api]},mousePosition:function(a){var b=this.maps[this.api]}},LatLonPoint:{toProprietary:function(){var b=this.lon*20037508.34/180;var a=Math.log(Math.tan((90+this.lat)*Math.PI/360))/(Math.PI/180);a=a*20037508.34/180;return new OpenLayers.LonLat(b,a)},fromProprietary:function(a){var c=(a.lon/20037508.34)*180;var b=(a.lat/20037508.34)*180;b=180/Math.PI*(2*Math.atan(Math.exp(b*Math.PI/180))-Math.PI/2);this.lon=c;this.lat=b}},Marker:{toProprietary:function(){var e,d,f;if(this.iconSize){e=new OpenLayers.Size(this.iconSize[0],this.iconSize[1])}else{e=new OpenLayers.Size(21,25)}if(this.iconAnchor){d=new OpenLayers.Pixel(this.iconAnchor[0],this.iconAnchor[1])}else{d=new OpenLayers.Pixel(-(e.w/2),-e.h)}if(this.iconUrl){f=new OpenLayers.Icon(this.iconUrl,e,d)}else{f=new OpenLayers.Icon("http://openlayers.org/dev/img/marker-gold.png",e,d)}var b=new OpenLayers.Marker(this.location.toProprietary("openlayers"),f);if(this.infoBubble){var a=new OpenLayers.Popup(null,this.location.toProprietary("openlayers"),new OpenLayers.Size(100,100),this.infoBubble,true);a.autoSize=true;var c=this.map;if(this.hover){b.events.register("mouseover",b,function(h){c.addPopup(a);a.show()});b.events.register("mouseout",b,function(h){a.hide();c.removePopup(a)})}else{var g=false;b.events.register("mousedown",b,function(h){if(g){a.hide();c.removePopup(a);g=false}else{c.addPopup(a);a.show();g=true}})}}if(this.hoverIconUrl){}if(this.infoDiv){}return b},openBubble:function(){},hide:function(){this.proprietary_marker.setOptions({visible:false})},show:function(){this.proprietary_marker.setOptions({visible:true})},update:function(){}},Polyline:{toProprietary:function(){var f;var d=[];var a;var c={strokeColor:this.color||"#000000",strokeOpacity:this.opacity||1,strokeWidth:this.width||1,fillColor:this.fillColor||"#000000",fillOpacity:this.getAttribute("fillOpacity")||0.2};for(var b=0,e=this.points.length;be){e=k}if(am){m=a}pt=new mxn.LatLonPoint(k,a);mkr=new mxn.Marker(pt);mkr.setIcon(c.user["profile_image_url"],[24,24]);mkr.setInfoBubble(''+c.user["screen_name"]+" "+c.html+'
'+c.created_at+"");b.addMarker(mkr)}bounds=new mxn.BoundingBox(d,l,e,m);b.setBounds(bounds)}; \ No newline at end of file diff --git a/plugins/Mapstraction/usermap.php b/plugins/Mapstraction/usermap.php index 094334f605..54412146ee 100644 --- a/plugins/Mapstraction/usermap.php +++ b/plugins/Mapstraction/usermap.php @@ -42,10 +42,8 @@ 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 UsermapAction extends MapAction { - function prepare($args) { if(parent::prepare($args)) { @@ -60,15 +58,13 @@ class UsermapAction extends MapAction function title() { - if (!empty($this->profile->fullname)) { - $base = $this->profile->fullname . ' (' . $this->user->nickname . ') '; - } else { - $base = $this->user->nickname; - } + $base = $this->profile->getFancyName(); if ($this->page == 1) { + // @todo CHECKME: inconsisten with paged variant below. " map" missing. return $base; } else { + // @todo CHECKME: Is the part ", page %2$d" relevant here? return sprintf(_m("%s map, page %d"), $base, $this->page); diff --git a/plugins/MemcachePlugin.php b/plugins/Memcache/MemcachePlugin.php similarity index 99% rename from plugins/MemcachePlugin.php rename to plugins/Memcache/MemcachePlugin.php index c3ca5c1359..f0c473c313 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/Memcache/MemcachePlugin.php @@ -48,7 +48,6 @@ 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 MemcachePlugin extends Plugin { static $cacheInitialized = false; @@ -70,7 +69,6 @@ class MemcachePlugin extends Plugin * * @return boolean flag value */ - function onInitializePlugin() { if (self::$cacheInitialized) { @@ -101,7 +99,6 @@ class MemcachePlugin extends Plugin * * @return boolean hook success */ - function onStartCacheGet(&$key, &$value) { $this->_ensureConn(); @@ -121,7 +118,6 @@ class MemcachePlugin extends Plugin * * @return boolean hook success */ - function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { $this->_ensureConn(); @@ -160,7 +156,6 @@ class MemcachePlugin extends Plugin * * @return boolean hook success */ - function onStartCacheDelete(&$key, &$success) { $this->_ensureConn(); @@ -194,7 +189,6 @@ class MemcachePlugin extends Plugin * * @return void */ - private function _ensureConn() { if (empty($this->_conn)) { @@ -253,4 +247,3 @@ class MemcachePlugin extends Plugin return true; } } - diff --git a/plugins/Memcache/locale/Memcache.pot b/plugins/Memcache/locale/Memcache.pot new file mode 100644 index 0000000000..4b923128ce --- /dev/null +++ b/plugins/Memcache/locale/Memcache.pot @@ -0,0 +1,22 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" diff --git a/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..9621a87fbf --- /dev/null +++ b/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcache to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Verwendung von Memcached zur " +"Zwischenspeicherung von Anfragen" diff --git a/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..68bef8d0e6 --- /dev/null +++ b/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utilizar Memcached para cachear " +"resultados de consulta." diff --git a/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..04d9f803bd --- /dev/null +++ b/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utiliser Memcached pour mettre en " +"cache les résultats de requêtes." diff --git a/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..6cc70c044d --- /dev/null +++ b/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"שימוש ב־Memcached (מטמון בזיכרון) " +"לשמירת תוצאות השאילתות במטמון." diff --git a/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..d2dfe536e2 --- /dev/null +++ b/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Usar Memcached pro immagazinar " +"resultatos de consultas in cache." diff --git a/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..c2d18ae0c3 --- /dev/null +++ b/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Користи Memcached за кеширање на " +"резултати од барања." diff --git a/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..853ec92642 --- /dev/null +++ b/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Bruk Memcached for å hurtiglagre " +"søkeresultat." diff --git a/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..dd37edcf92 --- /dev/null +++ b/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Memcached gebruiken om zoekresultaten " +"te cachen." diff --git a/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..6e55ee64ce --- /dev/null +++ b/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utilizar o Memcached para colocar em " +"cache os resultados de consultas." diff --git a/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..9e82c01397 --- /dev/null +++ b/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcache to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Brazilian Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utiliza Memcached para fazer o cache " +"de resultados de consulta." diff --git a/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..2a63d8d4f1 --- /dev/null +++ b/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcache to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Использование Memcached для " +"кеширования результатов запросов." diff --git a/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..772e301abe --- /dev/null +++ b/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcache to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Gamitin ang Memcached upang itago ang " +"mga resulta ng pagtatanong." diff --git a/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..ae657ea05e --- /dev/null +++ b/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcache to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Використання Memcached для кешування " +"результатів запитів." diff --git a/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..149d891662 --- /dev/null +++ b/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Memcache to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MemcachePlugin.php:246 +msgid "" +"Use Memcached to cache query results." +msgstr "使用 Memcached 来缓存查询结果。" diff --git a/plugins/MemcachedPlugin.php b/plugins/Memcached/MemcachedPlugin.php similarity index 99% rename from plugins/MemcachedPlugin.php rename to plugins/Memcached/MemcachedPlugin.php index 77b989b951..3b3383d496 100644 --- a/plugins/MemcachedPlugin.php +++ b/plugins/Memcached/MemcachedPlugin.php @@ -69,7 +69,6 @@ class MemcachedPlugin extends Plugin * * @return boolean flag value */ - function onInitializePlugin() { $this->_ensureConn(); @@ -87,7 +86,6 @@ class MemcachedPlugin extends Plugin * * @return boolean hook success */ - function onStartCacheGet(&$key, &$value) { $this->_ensureConn(); @@ -107,7 +105,6 @@ class MemcachedPlugin extends Plugin * * @return boolean hook success */ - function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { $this->_ensureConn(); @@ -146,7 +143,6 @@ class MemcachedPlugin extends Plugin * * @return boolean hook success */ - function onStartCacheDelete(&$key, &$success) { $this->_ensureConn(); @@ -169,7 +165,6 @@ class MemcachedPlugin extends Plugin * * @return void */ - private function _ensureConn() { if (empty($this->_conn)) { @@ -224,4 +219,3 @@ class MemcachedPlugin extends Plugin return true; } } - diff --git a/plugins/Memcached/locale/Memcached.pot b/plugins/Memcached/locale/Memcached.pot new file mode 100644 index 0000000000..b3e2a79568 --- /dev/null +++ b/plugins/Memcached/locale/Memcached.pot @@ -0,0 +1,22 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" diff --git a/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..fd306f6251 --- /dev/null +++ b/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Verwendung von Memcached zur " +"Zwischenspeicherung von Anfragen" diff --git a/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..8120ccb2dd --- /dev/null +++ b/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utilizar Memcached para cachear " +"resultados de consulta." diff --git a/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..e871bb1087 --- /dev/null +++ b/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utiliser Memcached pour mettre en " +"cache les résultats de requêtes." diff --git a/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..632bab32af --- /dev/null +++ b/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"שימוש ב־Memcached (מטמון בזיכרון) " +"לשמירת תוצאות השאילתות במטמון." diff --git a/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..4a599829f1 --- /dev/null +++ b/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:15+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Usar Memcached pro immagazinar " +"resultatos de consultas in cache." diff --git a/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..90a851d15b --- /dev/null +++ b/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Gunakan Memcached untuk menyinggahkan " +"hasil pencarian." diff --git a/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..7dcd2110aa --- /dev/null +++ b/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: Iwai.masaharu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Japanese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"クエリー結果のキャッシュに Memcached を" +"使う" diff --git a/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..3ed7c8eba3 --- /dev/null +++ b/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Користи Memcached за кеширање на " +"резултати од барања." diff --git a/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..d68153006e --- /dev/null +++ b/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Bruk Memcached for å hurtiglagre " +"søkeresultat." diff --git a/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..7c777ce502 --- /dev/null +++ b/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Memcached gebruiken om zoekresultaten " +"te cachen." diff --git a/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..dbde512042 --- /dev/null +++ b/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Utilizar o Memcached para colocar em " +"cache os resultados de consultas." diff --git a/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..e6c49f162e --- /dev/null +++ b/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcached to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Использование Memcached для " +"кеширования результатов запросов." diff --git a/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..3b0eb0d115 --- /dev/null +++ b/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Memcached to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Gamitin ang Memcached upang ikubli ang " +"mga resulta ng pagtatanong." diff --git a/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..72aa6eb3d1 --- /dev/null +++ b/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - Memcached to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Використання Memcached для зберігання " +"пошукових запитів в кеші." diff --git a/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..d8a872e637 --- /dev/null +++ b/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Memcached to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MemcachedPlugin.php:218 +msgid "" +"Use Memcached to cache query results." +msgstr "使用 Memcached 来缓存查询结果。" diff --git a/plugins/Meteor/MeteorPlugin.php b/plugins/Meteor/MeteorPlugin.php index ec8c9e217c..1bdccae7a8 100644 --- a/plugins/Meteor/MeteorPlugin.php +++ b/plugins/Meteor/MeteorPlugin.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/plugins/Realtime/RealtimePlugin.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class MeteorPlugin extends RealtimePlugin { public $webserver = null; @@ -90,7 +89,7 @@ class MeteorPlugin extends RealtimePlugin { $scripts = parent::_getScripts(); $scripts[] = 'http://'.$this->webserver.(($this->webport == 80) ? '':':'.$this->webport).'/meteor.js'; - $scripts[] = common_path('plugins/Meteor/meteorupdater.js'); + $scripts[] = common_path('plugins/Meteor/meteorupdater.min.js'); return $scripts; } @@ -112,7 +111,8 @@ class MeteorPlugin extends RealtimePlugin // May throw an exception. $this->_socket = stream_socket_client("tcp://{$controlserver}:{$this->controlport}", $errno, $errstr, $timeout, $flags); if (!$this->_socket) { - throw new Exception("Couldn't connect to {$controlserver} on {$this->controlport}"); + // TRANS: Exception. %1$s is the control server, %2$s is the control port. + throw new Exception(sprintf(_m('Couldn\'t connect to %1$s on %2$s.'),$controlserver,$this->controlport)); } } @@ -124,7 +124,8 @@ class MeteorPlugin extends RealtimePlugin $cnt = fwrite($this->_socket, $cmd); $result = fgets($this->_socket); if (preg_match('/^ERR (.*)$/', $result, $matches)) { - throw new Exception('Error adding meteor message "'.$matches[1].'"'); + // TRANS: Exception. %s is the Meteor message that could not be added. + throw new Exception(sprintf(_m('Error adding meteor message "%s"'),$matches[1])); } // TODO: parse and deal with result } @@ -146,4 +147,15 @@ class MeteorPlugin extends RealtimePlugin } return implode('-', $path); } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Meteor', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Meteor', + 'rawdescription' => + _m('Plugin to do "real time" updates using Comet/Bayeux.')); + return true; + } } diff --git a/plugins/Meteor/locale/Meteor.pot b/plugins/Meteor/locale/Meteor.pot new file mode 100644 index 0000000000..d251f41234 --- /dev/null +++ b/plugins/Meteor/locale/Meteor.pot @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "" + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" diff --git a/plugins/Meteor/locale/br/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/br/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..ec3fb5a9e2 --- /dev/null +++ b/plugins/Meteor/locale/br/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Dibosupl eo kevreañ ouzh %1$s war %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" diff --git a/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..1387f9f0cd --- /dev/null +++ b/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Konnte nicht mit %1$s auf %2$s verbinden." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Fehler beim Hinzufügen der Meteor-Nachricht „%s“" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plugin für Echtzeit-Aktualisierungen mit Comet/Bayeux." diff --git a/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..749111d7fb --- /dev/null +++ b/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - Meteor to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Impossible de se connecter à %1$s sur le port %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Erreur lors de l’ajout d'un message du message meteor « %s »" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Extension pour réaliser des mises à jour « en temps réel » en utilisant Comet/" +"Bayeux." diff --git a/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..add0016dcc --- /dev/null +++ b/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Non poteva connecter a %1$s sur %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Error durante le addition del message Meteor \"%s\"" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plug-in pro facer actualisationes \"in directo\" usante Comet/Bayeux." diff --git a/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..11a15a05e4 --- /dev/null +++ b/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Indonesian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Tidak dapat terhubung ke %1$s di %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Kesalahan menambahkan pesan meteor \"%s\"" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Pengaya untuk membuat pemutakhiran langsung menggunakan Comet/Bayeux." diff --git a/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..aaac6b2a7e --- /dev/null +++ b/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Не можев да се поврзам со %1$s на %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Грешка при додавање на Meteor-овата порака „%s“" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Приклучок за вршење на поднови „во живо“ со Comet/Bayeux." diff --git a/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..506c57eda1 --- /dev/null +++ b/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Kunne ikke koble til %1$s på %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Mislyktes å legge til meteormelding «%s»" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Utvidelse for å gjøre «sanntids»-oppdateringer med Comet/Bayeux." diff --git a/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..fbc52c7440 --- /dev/null +++ b/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Meteor to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Het was niet mogelijk te verbinden met %1$s op %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Fout bij het toevoegen van meteorbericht \"%s\"" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "Plug-in voor het maken van \"real time\" updates via Comet/Bayeux." diff --git a/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..45784258f1 --- /dev/null +++ b/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - Meteor to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Hindi makaugnay sa %1$s sa %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Kamalian sa pagdaragdag ng mensahe ng meteor na \"%s\"" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Pamasak upang makagawa ng mga pagsasapanahong nasa \"tunay na panahon\" na " +"gimagamitan ng Comet/Bayeux." diff --git a/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..6a7fe8a05b --- /dev/null +++ b/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - Meteor to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "Не вдається підключитися до %1$s на %2$s." + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "Помилка при додаванні швидкого повідомлення «%s»" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "" +"Додаток для оновлення стрічки повідомлень у «реальному часі» використовуючи " +"Comet/Bayeux." diff --git a/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po new file mode 100644 index 0000000000..73cc2c2800 --- /dev/null +++ b/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - Meteor to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Meteor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:16+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:40:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-meteor\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Exception. %1$s is the control server, %2$s is the control port. +#: MeteorPlugin.php:115 +#, php-format +msgid "Couldn't connect to %1$s on %2$s." +msgstr "无法连在 %2$s 端口连接到 %1$s。" + +#. TRANS: Exception. %s is the Meteor message that could not be added. +#: MeteorPlugin.php:128 +#, php-format +msgid "Error adding meteor message \"%s\"" +msgstr "添加 meteor 消息“%s”出错。" + +#: MeteorPlugin.php:158 +msgid "Plugin to do \"real time\" updates using Comet/Bayeux." +msgstr "通过 Comet/Bayeux 实现“实时更新”的插件。" diff --git a/plugins/Meteor/meteorupdater.min.js b/plugins/Meteor/meteorupdater.min.js new file mode 100644 index 0000000000..61928ab4f2 --- /dev/null +++ b/plugins/Meteor/meteorupdater.min.js @@ -0,0 +1 @@ +var MeteorUpdater=function(){return{init:function(c,a,b){Meteor.callbacks.process=function(d){RealtimeUpdate.receive(JSON.parse(d))};Meteor.host=c;Meteor.port=a;Meteor.joinChannel(b,0);Meteor.connect()}}}(); \ No newline at end of file diff --git a/plugins/Minify/MinifyPlugin.php b/plugins/Minify/MinifyPlugin.php index 13010e75a1..cfed0779ba 100644 --- a/plugins/Minify/MinifyPlugin.php +++ b/plugins/Minify/MinifyPlugin.php @@ -51,7 +51,6 @@ class MinifyPlugin extends Plugin * * @return boolean hook return */ - function onStartInitializeRouter($m) { $m->connect('main/min', @@ -119,9 +118,9 @@ class MinifyPlugin extends Plugin function onStartInlineScriptElement($action,&$code,&$type) { if($this->minifyInlineJs && $type=='text/javascript'){ - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cacheKey = common_cache_key(self::cacheKey . ':' . crc32($code)); + $cacheKey = Cache::key(self::cacheKey . ':' . crc32($code)); $out = $c->get($cacheKey); } if(empty($out)) { @@ -139,9 +138,9 @@ class MinifyPlugin extends Plugin function onStartStyleElement($action,&$code,&$type,&$media) { if($this->minifyInlineCss && $type=='text/css'){ - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cacheKey = common_cache_key(self::cacheKey . ':' . crc32($code)); + $cacheKey = Cache::key(self::cacheKey . ':' . crc32($code)); $out = $c->get($cacheKey); } if(empty($out)) { @@ -177,8 +176,7 @@ class MinifyPlugin extends Plugin 'author' => 'Craig Andrews', 'homepage' => 'http://status.net/wiki/Plugin:Minify', 'rawdescription' => - _m('The Minify plugin minifies your CSS and Javascript, removing whitespace and comments.')); + _m('The Minify plugin minifies StatusNet\'s CSS and JavaScript, removing whitespace and comments.')); return true; } } - diff --git a/plugins/Minify/locale/Minify.pot b/plugins/Minify/locale/Minify.pot index 6f7372d405..6392faabfe 100644 --- a/plugins/Minify/locale/Minify.pot +++ b/plugins/Minify/locale/Minify.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,8 +16,20 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "" + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "" + +#: minify.php:111 +msgid "File type not supported." +msgstr "" + #: MinifyPlugin.php:179 msgid "" -"The Minify plugin minifies your CSS and Javascript, removing whitespace and " -"comments." +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." msgstr "" diff --git a/plugins/Minify/locale/br/LC_MESSAGES/Minify.po b/plugins/Minify/locale/br/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..d31caf223a --- /dev/null +++ b/plugins/Minify/locale/br/LC_MESSAGES/Minify.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - Minify to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "" + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "" + +#: minify.php:111 +msgid "File type not supported." +msgstr "N'eo ket skoret ar seurt restroù" + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" diff --git a/plugins/Minify/locale/de/LC_MESSAGES/Minify.po b/plugins/Minify/locale/de/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..258a5a539f --- /dev/null +++ b/plugins/Minify/locale/de/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Der Parameter „f“ ist keine gültige Pfadangabe." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Der Parameter „f“ ist erfordert, fehlt jedoch." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Dateityp nicht unterstützt." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Das Minify-Plugin minimiert das CSS und JavaScript von StatusNet durch " +"Entfernen von Leerzeichen und Kommentaren." diff --git a/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po b/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..98e45442c2 --- /dev/null +++ b/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Le paramètre « f » ne contient pas un chemin valide." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Le paramètre « f » est nécessaire mais absent." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Type de fichier non pris en charge." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Le greffon Minify minimise vos CSS et Javascript, en supprimant les espaces " +"et les commentaires." diff --git a/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po b/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..91a08cc116 --- /dev/null +++ b/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Le parametro \"f\" non es un cammino valide." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Le parametro \"f\" es necessari, ma manca." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Typo de file non supportate." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Le plug-in Minify minimisa le CSS e JavaScript de StatusNet, removente " +"spatio blanc e commentos." diff --git a/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po b/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..a68fb38f98 --- /dev/null +++ b/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметарот „f“ не претставува важечка патека." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Параметарот „f“ е задолжителен, но недостасува." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Овој топ на податотека не е поддржан." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Приклучокот Minify ги смалува CSS и JavaScript на StatusNet, отстранувајќи " +"бели простори и коментари." diff --git a/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po b/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..23ef02c134 --- /dev/null +++ b/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Parameteren «f» er ikke en gyldig sti." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Parameteren «f» er nødvendig, men mangler." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Filtype støttes ikke." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Utvidelsen Minify minimerer StatusNets CSS og JavaScript og fjerner " +"mellomrom og kommentarer." diff --git a/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po b/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..7f8fafe6b3 --- /dev/null +++ b/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "De parameter \"f\" is geen geldig pad." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "De parameter \"f\" is vereist, maar ontbreekt." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Dit bestandstype wordt niet ondersteund" + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"De plug-in Minify maakt CSS en JavaScript kleiner door witruimte en " +"opmerkingen te verwijderen." diff --git a/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po b/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..0e593bcc79 --- /dev/null +++ b/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po @@ -0,0 +1,44 @@ +# Translation of StatusNet - Minify to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметр «f» содержит неправильный путь." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Требуется параметр «f», но он отсутствует." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Тип файла не поддерживается." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Плагин «Minify» сжимает CSS и JavaScript StatusNet'а, удаляя лишние пробелы и " +"комментарии." diff --git a/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po b/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..085c21ffde --- /dev/null +++ b/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - Minify to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Ang parametrong \"f\" ay hindi isang tanggap na landas." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Ang parametrong \"f\" ay kailangan ngunit nawawala." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Hindi tinatangkilik ang uri ng talaksan." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Ang pamasak na Minify ay nagpapaliit sa CSS at JavaScript ng StatusNet, na " +"nagtatanggal ng puting puwang at mga puna." diff --git a/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po b/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..34a3bfe1fc --- /dev/null +++ b/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - Minify to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметр «f» не є правильним шляхом." + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "Параметр «f» має бути зазначено, але він відсутній." + +#: minify.php:111 +msgid "File type not supported." +msgstr "Тип файлу не підтримується." + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" +"Додаток Minify мінімізує CSS та JavaScript сайту StatusNet, усуваючи " +"пропуски і коментарі." diff --git a/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po b/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po new file mode 100644 index 0000000000..280550a11e --- /dev/null +++ b/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - Minify to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Minify\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:17+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:12:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-minify\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: minify.php:49 +msgid "The parameter \"f\" is not a valid path." +msgstr "参数 \"f\" 不是个有效的路径。" + +#: minify.php:53 +msgid "The parameter \"f\" is required but missing." +msgstr "需要参数 \"f\" 但是丢失了。" + +#: minify.php:111 +msgid "File type not supported." +msgstr "文件类型不支持。" + +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "Minify 插件通过删除空白和注释缩小 StatusNet 的 CSS 和 JavaScript。" diff --git a/plugins/Minify/minify.php b/plugins/Minify/minify.php index 64727f5e7e..e012a40272 100644 --- a/plugins/Minify/minify.php +++ b/plugins/Minify/minify.php @@ -46,11 +46,11 @@ class MinifyAction extends Action if(file_exists($this->file)) { return true; } else { - $this->clientError(_('f parameter is not a valid path'),404); + $this->clientError(_m('The parameter "f" is not a valid path.'),404); return false; } }else{ - $this->clientError(_('f parameter is required'),500); + $this->clientError(_m('The parameter "f" is required but missing.'),500); return false; } } @@ -74,9 +74,9 @@ class MinifyAction extends Action { parent::handle($args); - $c = common_memcache(); + $c = Cache::instance(); if (!empty($c)) { - $cacheKey = common_cache_key(MinifyPlugin::cacheKey . ':' . $this->file . '?v=' . empty($this->v)?'':$this->v); + $cacheKey = Cache::key(MinifyPlugin::cacheKey . ':' . $this->file . '?v=' . empty($this->v)?'':$this->v); $out = $c->get($cacheKey); } if(empty($out)) { @@ -108,10 +108,9 @@ class MinifyAction extends Action header('Content-Type: ' . self::TYPE_CSS); break; default: - $this->clientError(_('File type not supported'),500); + $this->clientError(_m('File type not supported.'),500); return false; } return $out; } } - diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php index 6076bbde0b..b042bf7edd 100644 --- a/plugins/MobileProfile/MobileProfilePlugin.php +++ b/plugins/MobileProfile/MobileProfilePlugin.php @@ -36,7 +36,6 @@ define('PAGE_TYPE_PREFS_MOBILEPROFILE', require_once INSTALLDIR.'/plugins/Mobile/WAP20Plugin.php'; - /** * Superclass for plugin to output XHTML Mobile Profile * @@ -46,7 +45,6 @@ require_once INSTALLDIR.'/plugins/Mobile/WAP20Plugin.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class MobileProfilePlugin extends WAP20Plugin { public $DTD = null; @@ -60,14 +58,13 @@ class MobileProfilePlugin extends WAP20Plugin parent::__construct(); } - function onStartShowHTML($action) { // XXX: This should probably graduate to WAP20Plugin // If they are on the mobile site, serve them MP if ((common_config('site', 'mobileserver').'/'. - common_config('site', 'path').'/' == + common_config('site', 'path').'/' == $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) { $this->serveMobile = true; @@ -78,18 +75,18 @@ class MobileProfilePlugin extends WAP20Plugin //if (strstr('application/vnd.wap.xhtml+xml', $type) !== false) { // $this->serveMobile = true; //} else { - // If they are a mobile device that supports WAP 2.0, + // If they are a mobile device that supports WAP 2.0, // serve them MP // XXX: Browser sniffing sucks - // I really don't like going through this every page, + // I really don't like going through this every page, // perhaps use $_SESSION or cookies - // May be better to group the devices in terms of + // May be better to group the devices in terms of // low,mid,high-end - // Or, detect the mobile devices based on their support for + // Or, detect the mobile devices based on their support for // MP 1.0, 1.1, or 1.2 may be ideal. Possible? $this->mobiledevices = array( @@ -165,11 +162,11 @@ class MobileProfilePlugin extends WAP20Plugin } //} - // If they are okay with MP, and the site has a mobile server, + // If they are okay with MP, and the site has a mobile server, // redirect there - if ($this->serveMobile && + if ($this->serveMobile && common_config('site', 'mobileserver') !== false && - (common_config('site', 'mobileserver') != + (common_config('site', 'mobileserver') != common_config('site', 'server'))) { // FIXME: Redirect to equivalent page on mobile site instead @@ -193,8 +190,8 @@ class MobileProfilePlugin extends WAP20Plugin $type = common_negotiate_type($cp, $sp); if (!$type) { - throw new ClientException(_('This page is not available in a '. - 'media type you accept'), 406); + throw new ClientException(_m('This page is not available in a '. + 'media type you accept.'), 406); } //} @@ -217,7 +214,6 @@ class MobileProfilePlugin extends WAP20Plugin return false; } - function setMobileFeatures($useragent) { $mobiledeviceInputFileType = array( @@ -234,14 +230,13 @@ class MobileProfilePlugin extends WAP20Plugin } } - function onStartShowStatusNetStyles($action) { if (!$this->serveMobile) { return true; } - $action->cssLink('css/display.css'); + $action->primaryCssLink(); if (file_exists(Theme::file('css/mp-screen.css'))) { $action->cssLink('css/mp-screen.css', null, 'screen'); @@ -262,7 +257,6 @@ class MobileProfilePlugin extends WAP20Plugin return false; } - function onStartShowUAStyles($action) { if (!$this->serveMobile) { return true; @@ -288,18 +282,17 @@ class MobileProfilePlugin extends WAP20Plugin return false; } - function _showLogo($action) { $action->elementStart('address', 'vcard'); $action->elementStart('a', array('class' => 'url home bookmark', 'href' => common_local_url('public'))); - if (common_config('site', 'mobilelogo') || - file_exists(Theme::file('logo.png')) || + if (common_config('site', 'mobilelogo') || + file_exists(Theme::file('logo.png')) || file_exists(Theme::file('mobilelogo.png'))) { $action->element('img', array('class' => 'photo', - 'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') : + 'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') : ((file_exists(Theme::file('mobilelogo.png'))) ? (Theme::path('mobilelogo.png')) : Theme::path('logo.png')), 'alt' => common_config('site', 'name'))); } @@ -308,44 +301,42 @@ class MobileProfilePlugin extends WAP20Plugin $action->elementEnd('address'); } - function _showPrimaryNav($action) { $user = common_current_user(); $action->elementStart('ul', array('id' => 'site_nav_global_primary')); if ($user) { $action->menuItem(common_local_url('all', array('nickname' => $user->nickname)), - _('Home')); + _m('Home')); $action->menuItem(common_local_url('profilesettings'), - _('Account')); + _m('Account')); $action->menuItem(common_local_url('oauthconnectionssettings'), - _('Connect')); + _m('Connect')); if ($user->hasRight(Right::CONFIGURESITE)) { $action->menuItem(common_local_url('siteadminpanel'), - _('Admin'), _('Change site configuration'), false, 'nav_admin'); + _m('Admin'), _m('Change site configuration'), false, 'nav_admin'); } if (common_config('invite', 'enabled')) { $action->menuItem(common_local_url('invite'), - _('Invite')); + _m('Invite')); } $action->menuItem(common_local_url('logout'), - _('Logout')); + _m('Logout')); } else { if (!common_config('site', 'closed')) { $action->menuItem(common_local_url('register'), - _('Register')); + _m('Register')); } $action->menuItem(common_local_url('login'), - _('Login')); + _m('Login')); } if ($user || !common_config('site', 'private')) { $action->menuItem(common_local_url('peoplesearch'), - _('Search')); + _m('Search')); } $action->elementEnd('ul'); } - function onStartShowNoticeFormData($form) { if (!$this->serveMobile) { @@ -367,11 +358,11 @@ class MobileProfilePlugin extends WAP20Plugin if (common_config('attachments', 'uploads')) { if ($this->mobileFeatures['inputfiletype']) { - $form->out->element('label', array('for' => 'notice_data-attach'), _('Attach')); + $form->out->element('label', array('for' => 'notice_data-attach'), _m('Attach')); $form->out->element('input', array('id' => 'notice_data-attach', 'type' => 'file', 'name' => 'attach', - 'title' => _('Attach a file'))); + 'title' => _m('Attach a file'))); $form->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota')); } } @@ -383,7 +374,6 @@ class MobileProfilePlugin extends WAP20Plugin return false; } - function onStartShowAside($action) { if ($this->serveMobile) { @@ -391,13 +381,11 @@ class MobileProfilePlugin extends WAP20Plugin } } - function onStartShowScripts($action) { } - function _common_path($relative, $ssl=false) { $pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : ''; diff --git a/plugins/MobileProfile/locale/MobileProfile.pot b/plugins/MobileProfile/locale/MobileProfile.pot index 9495e975b9..10d68aa02c 100644 --- a/plugins/MobileProfile/locale/MobileProfile.pot +++ b/plugins/MobileProfile/locale/MobileProfile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,58 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: MobileProfilePlugin.php:424 +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "" + +#: MobileProfilePlugin.php:417 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..2afbfe8c95 --- /dev/null +++ b/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Gwendal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Degemer" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Kont" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Kevreañ" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Merour" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Kemmañ arventennoù al lec'hienn" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Pediñ" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Digevreañ" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Marilhañ" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Kevreañ" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Klask" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Stagañ" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Stagañ ur restr" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/es/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/es/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..0b310228ba --- /dev/null +++ b/plugins/MobileProfile/locale/es/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Cuenta" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Conectar" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Invitar" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Cerrar sesión" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..30e59f303e --- /dev/null +++ b/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - MobileProfile to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" +"Cette page n’est pas disponible dans un des types de média que vous acceptez." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Accueil" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Compte" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Connexion" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Administrateur" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Modifier la configuration du site" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Inviter" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Déconnexion" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "S’inscrire" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Connexion" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Rechercher" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Joindre" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Joindre un fichier" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "Sortie XHTML MobileProfile pour les navigateurs compatibles." diff --git a/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..ff8684706a --- /dev/null +++ b/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: Galician \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Inicio" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Conta" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Conectar" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Administrador" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Cambiar a configuración do sitio" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Convidar" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Saír" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Rexistrarse" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Rexistro" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Procurar" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Anexar" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Anexar un ficheiro" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..a0f192406b --- /dev/null +++ b/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - MobileProfile to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Iste pagina non es disponibile in un formato que tu accepta." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Initio" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Conto" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Connecter" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Admin" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Modificar le configuration del sito" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Invitar" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Clauder session" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Crear conto" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Aperir session" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Cercar" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Annexar" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Annexar un file" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" +"Production de XHTML MobileProfile pro le programmas de usator que lo " +"supporta." diff --git a/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..ba6329588c --- /dev/null +++ b/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:18+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Страницава не е достапна во форматот кој Вие го прифаќате." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Почетна" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Сметка" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Поврзи се" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Администратор" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Промена на поставките на мрежното место" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Покани" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Одјава" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Регистрација" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Најава" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Пребарај" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Приложи" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Приложи податотека" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "Излез „XHTML MobileProfile“ за поддршка на кориснички агенти." diff --git a/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..033d7c67ac --- /dev/null +++ b/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Norwegian (bokmål)‬ \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Hjem" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Konto" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Koble til" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Admin" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Endre nettstedskonfigurasjon" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Inviter" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Logg ut" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Registrer" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Logg inn" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Søk" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Legg ved" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Legg ved en fil" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "XHTML MobileProfile-utdata for støttede brukeragenter." diff --git a/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..33be7a68d6 --- /dev/null +++ b/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - MobileProfile to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Deze pagina is niet beschikbaar in een mediumtype dat u accepteert." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Hoofdmenu" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Gebruiker" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Koppelen" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Beheer" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Websiteinstellingen wijzigen" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Uitnodigen" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Afmelden" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Registreren" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Aanmelden" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Zoeken" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Toevoegen" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Bestand toevoegen" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" +"Uitvoer in MobileProfile XHTML voor de gebruikersprogramma's die dat " +"ondersteunen." diff --git a/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..c58fa20d7d --- /dev/null +++ b/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Pashto (پښتو) +# Expored from translatewiki.net +# +# Author: Ahmed-Najib-Biabani-Ibrahimkhel +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Pashto \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ps\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "کور" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "وتل" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "ننوتل" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "پلټل" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..7cc7368601 --- /dev/null +++ b/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - MobileProfile to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Страница недоступна для того типа, который вы задействовали." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Домой" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Аккаунт" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Подключиться" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Администратор" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Изменить конфигурацию сайта" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Пригласить" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Выйти" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Регистрация" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Представиться" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Поиск" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Прикрепить" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Прикрепить файл" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "XHTML MobileProfile вывод для поддерживаемых пользовательских агентов." diff --git a/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..ad9b73e7d2 --- /dev/null +++ b/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Tamil (தமிழ்) +# Expored from translatewiki.net +# +# Author: TRYPPN +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Tamil \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ta\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "கணக்கு" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "இணை" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "விடுபதிகை" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "பதிவு செய்" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "புகுபதிகை" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "தேடுக" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "இணை" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "ஒரு கோப்பை இணைக்கவும்" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..fbf99b663b --- /dev/null +++ b/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,78 @@ +# Translation of StatusNet - MobileProfile to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Telugu \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "ముంగిలి" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "ఖాతా" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "ఆహ్వానించు" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "నిష్క్రమించండి" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "నమోదవ్వండి" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "ప్రవేశించండి" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "వెతుకు" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..effd59f372 --- /dev/null +++ b/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - MobileProfile to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Tagalog \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Ang pahinang ito ay hindi makukuha sa uri ng midya na tinanggap mo." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Tahanan" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Akawnt" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "Umugnay" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Tagapangasiwa" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Baguhin ang pagkakaayos ng sityo" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Anyayahan" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Umalis sa pagkakalagda" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Magpatala" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Lumagda" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Humanap" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Ilakip" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Maglakip ng isang talaksan" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" +"Mga paglalabas na XHTML na MobileProfile para sa pagtataguyo ng mga ahente " +"ng tagagamit." diff --git a/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..4a5086991f --- /dev/null +++ b/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,80 @@ +# Translation of StatusNet - MobileProfile to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "Ця сторінка не доступна для того типу медіа, з яким ви погодились." + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "Дім" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "Акаунт" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "З’єднання" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "Адмін" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "Змінити конфігурацію сайту" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "Запросити" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "Вийти" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "Реєстрація" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "Увійти" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "Пошук" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "Вкласти" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "Вкласти файл" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" +"Додаток MobileProfile генерує XHTML прийнятний для мобільних пристроїв." diff --git a/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po new file mode 100644 index 0000000000..424ccd54f9 --- /dev/null +++ b/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po @@ -0,0 +1,79 @@ +# Translation of StatusNet - MobileProfile to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - MobileProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Simplified Chinese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-mobileprofile\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: MobileProfilePlugin.php:193 +msgid "This page is not available in a media type you accept." +msgstr "" + +#: MobileProfilePlugin.php:310 +msgid "Home" +msgstr "" + +#: MobileProfilePlugin.php:312 +msgid "Account" +msgstr "账号" + +#: MobileProfilePlugin.php:314 +msgid "Connect" +msgstr "关联" + +#: MobileProfilePlugin.php:317 +msgid "Admin" +msgstr "管理" + +#: MobileProfilePlugin.php:317 +msgid "Change site configuration" +msgstr "更改网站配置" + +#: MobileProfilePlugin.php:321 +msgid "Invite" +msgstr "邀请" + +#: MobileProfilePlugin.php:324 +msgid "Logout" +msgstr "登出" + +#: MobileProfilePlugin.php:328 +msgid "Register" +msgstr "注册" + +#: MobileProfilePlugin.php:331 +msgid "Login" +msgstr "登录" + +#: MobileProfilePlugin.php:335 +msgid "Search" +msgstr "搜索" + +#: MobileProfilePlugin.php:361 +msgid "Attach" +msgstr "附件" + +#: MobileProfilePlugin.php:365 +msgid "Attach a file" +msgstr "添加一个文件附件" + +#: MobileProfilePlugin.php:417 +msgid "XHTML MobileProfile output for supporting user agents." +msgstr "" diff --git a/plugins/ModHelper/ModHelperPlugin.php b/plugins/ModHelper/ModHelperPlugin.php new file mode 100644 index 0000000000..d003827d13 --- /dev/null +++ b/plugins/ModHelper/ModHelperPlugin.php @@ -0,0 +1,53 @@ +. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * @package ModHelperPlugin + * @maintainer Brion Vibber + */ +class ModHelperPlugin extends Plugin +{ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'ModHelper', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:ModHelper', + 'rawdescription' => + _m('Lets users who have been manually marked as "modhelper"s silence accounts.')); + + return true; + } + + function onUserRightsCheck($profile, $right, &$result) + { + if ($right == Right::SILENCEUSER) { + // Hrm.... really we should confirm that the *other* user isn't privleged. :) + if ($profile->hasRole('modhelper')) { + $result = true; + return false; + } + } + return true; + } +} diff --git a/plugins/ModHelper/locale/ModHelper.pot b/plugins/ModHelper/locale/ModHelper.pot new file mode 100644 index 0000000000..3d5268dbf4 --- /dev/null +++ b/plugins/ModHelper/locale/ModHelper.pot @@ -0,0 +1,22 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" diff --git a/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..387671a0a7 --- /dev/null +++ b/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - ModHelper to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Spanish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Permite a los usuarios que han sido marcados manualmente como \"modhelper\" " +"silenciar cuentas." diff --git a/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..e8caf09050 --- /dev/null +++ b/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - ModHelper to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Permet aux utilisateurs qui ont été marqués manuellement comme « modhelper » " +"de réduire des comptes au silence." diff --git a/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..0aaf0f7e75 --- /dev/null +++ b/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - ModHelper to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Hebrew \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "מתן האפשרות למשתמשים שסומנו כ־\"modhelper\" להשתיק חשבונות." diff --git a/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..4b787f6775 --- /dev/null +++ b/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - ModHelper to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Permitte al usatores qui ha essite manualmente marcate como \"modhelper\" de " +"silentiar contos." diff --git a/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..9379b268f6 --- /dev/null +++ b/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - ModHelper to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Им овозможува да замолчуваат сметки на корисниците што се рачно означени " +"како „modhelper“." diff --git a/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..d71b409f1e --- /dev/null +++ b/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - ModHelper to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Laat gebruikers die handmatig zijn aangemerkt als \"modhelper\" andere " +"gebruikers monddood maken." diff --git a/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..199380aef7 --- /dev/null +++ b/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - ModHelper to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Russian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Позволяет пользователям, которые были вручную помечены как «modhelper» " +"заглушать учётные записи." diff --git a/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..77b34b46fe --- /dev/null +++ b/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - ModHelper to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:19+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ModHelperPlugin.php:37 +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Дозволити користувачам, котрих вручну було позначено як «помічник " +"модератора», позбавляти інших користувачів права голосу." diff --git a/plugins/ModPlus/ModPlusPlugin.php b/plugins/ModPlus/ModPlusPlugin.php new file mode 100644 index 0000000000..3e7a8c7455 --- /dev/null +++ b/plugins/ModPlus/ModPlusPlugin.php @@ -0,0 +1,116 @@ +. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Some UI extras for now... + * + * @package ModPlusPlugin + * @maintainer Brion Vibber + */ +class ModPlusPlugin extends Plugin +{ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'ModPlus', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:ModPlus', + 'rawdescription' => + _m('UI extensions for profile moderation actions.')); + + return true; + } + + /** + * Load JS at runtime if we're logged in. + * + * @param Action $action + * @return boolean hook result + */ + function onEndShowScripts($action) + { + $user = common_current_user(); + if ($user) { + $action->script('plugins/ModPlus/modplus.js'); + } + return true; + } + + function onEndShowStatusNetStyles($action) { + $action->cssLink('plugins/ModPlus/modplus.css'); + return true; + } + + /** + * Autoloader + * + * Loads our classes if they're requested. + * + * @param string $cls Class requested + * + * @return boolean hook return + */ + function onAutoload($cls) + { + switch ($cls) + { + case 'RemoteprofileAction': + case 'RemoteProfileAction': + require_once dirname(__FILE__) . '/remoteprofileaction.php'; + return false; + default: + return true; + } + } + + /** + * Add OpenID-related paths to the router table + * + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m URL mapper + * + * @return boolean hook return + */ + function onStartInitializeRouter($m) + { + $m->connect('user/remote/:id', + array('action' => 'remoteprofile'), + array('id' => '[\d]+')); + + return true; + } + + function onStartShowNoticeItem($item) + { + $profile = $item->profile; + $isRemote = !(User::staticGet('id', $profile->id)); + if ($isRemote) { + $target = common_local_url('remoteprofile', array('id' => $profile->id)); + $label = _m('Remote profile options...'); + $item->out->elementStart('div', 'remote-profile-options'); + $item->out->element('a', array('href' => $target), $label); + $item->out->elementEnd('div'); + } + } +} diff --git a/plugins/ModPlus/locale/ModPlus.pot b/plugins/ModPlus/locale/ModPlus.pot new file mode 100644 index 0000000000..29674a77ff --- /dev/null +++ b/plugins/ModPlus/locale/ModPlus.pot @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "" + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" diff --git a/plugins/ModPlus/locale/br/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/br/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..cf9aa6433f --- /dev/null +++ b/plugins/ModPlus/locale/br/LC_MESSAGES/ModPlus.po @@ -0,0 +1,48 @@ +# Translation of StatusNet - ModPlus to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "" + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s war %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" diff --git a/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..8c63154343 --- /dev/null +++ b/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ModPlus to French (Français) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: French \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" +"Extensions d’interface utilisateur pour les actions de modération des " +"profils." + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "Options de profil distantes..." + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s sur %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" +"Ce profil distant est enregistré sur un autre site ; voir [la page de profil " +"originale de %s sur %s](%s)." + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" +"Les modérateurs du site ont réduit ce profil au silence, ce qui empêche " +"l’envoi de nouveaux messages aux utilisateurs de ce site." diff --git a/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..24cfb7d048 --- /dev/null +++ b/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - ModPlus to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" +"Extensiones del interfacie de usator pro actiones de moderation de profilos." + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "Optiones de profilo remote..." + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s in %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" +"Iste profilo remote es registrate in un altere sito; vide [le pagina de " +"profilo original de %s in %s](%s)." + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" +"Le moderatores del sito ha silentiate iste profilo, impediente le livration " +"de nove messages al usatores de iste sito." diff --git a/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..8eeb2091f2 --- /dev/null +++ b/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - ModPlus to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" +"Додатоци за кориснички посредник наменети за постапки за административна " +"контрола на профили." + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "Нагодувања на далечински профил..." + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s на %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" +"Овој далечински профил е регистриран на друго мреж. место. Погледајте ја [%" +"s's изворната профилна страница на %s](%s)." + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" +"Администраторите го замолчиле овој профил, што оневозможува праќање нови " +"пораки на било кој корисник на мрежното место." diff --git a/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..3518bda815 --- /dev/null +++ b/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po @@ -0,0 +1,56 @@ +# Translation of StatusNet - ModPlus to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" +"Uitbreiding van de gebruikersinterface voor handelingen ten aanzien van " +"profielmoderatie." + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "Instellingen voor profiel op andere server..." + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s op %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" +"Dit profiel op een andere server is geregistreerd bij een andere site. Zie " +"[de originele profielpagina van %s op %s](%s)." + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" +"Moderatoren van de site hebben dit profiel het zwijgen opgelegd, waardoor " +"het niet mogelijk is nieuwe berichten aan gebruikers van deze site te " +"verzenden." diff --git a/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po new file mode 100644 index 0000000000..1e5b3953c3 --- /dev/null +++ b/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - ModPlus to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModPlus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 17:54:28+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-modplus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "Розширення користувацького інтерфейсу для модерування профілю." + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "Опції віддаленого профілю..." + +#: remoteprofileaction.php:51 +#, php-format +msgid "%s on %s" +msgstr "%s на %s" + +#: remoteprofileaction.php:62 +#, php-format +msgid "" +"This remote profile is registered on another site; see [%s's original " +"profile page on %s](%s)." +msgstr "" +"Це віддалений профіль, зареєстрований на іншому сайті; див. [справжній " +"профіль %s на сайті %s](%s)." + +#: remoteprofileaction.php:70 +msgid "" +"Site moderators have silenced this profile, which prevents delivery of new " +"messages to any users on this site." +msgstr "" +"Модератори сайту позбавили права голосу даний профіль, що перешкоджає " +"доставці нових повідомлень для всіх користувачів на цьому сайті." diff --git a/plugins/ModPlus/modplus.css b/plugins/ModPlus/modplus.css new file mode 100644 index 0000000000..8d2fc8fba1 --- /dev/null +++ b/plugins/ModPlus/modplus.css @@ -0,0 +1,23 @@ +.remote-profile-options { + position: absolute; + z-index: 999; + + background: url(../../theme/base/images/icons/twotone/green/admin.gif) no-repeat 8px 8px white; + border: solid 1px #c0c0c0; + + margin-top: 56px; + + padding: 6px 16px; + padding-left: 32px; + + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + -msie-border-radius: 8px; + border-radius: 8px; + + box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); + -moz-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); + -webkit-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); + + display: none; +} diff --git a/plugins/ModPlus/modplus.js b/plugins/ModPlus/modplus.js new file mode 100644 index 0000000000..2e90de4f19 --- /dev/null +++ b/plugins/ModPlus/modplus.js @@ -0,0 +1,23 @@ +/** + * modplus.js + * (c) 2010 StatusNet, Inc + */ + +$(function() { + function ModPlus_setup(notice) { + if ($(notice).find('.remote-profile-options').size()) { + var $options = $(notice).find('.remote-profile-options'); + $options.prepend($()) + $(notice).find('.author').mouseenter(function(event) { + $(notice).find('.remote-profile-options').fadeIn(); + }); + $(notice).mouseleave(function(event) { + $(notice).find('.remote-profile-options').fadeOut(); + }); + } + } + + $('.notice').each(function() { + ModPlus_setup(this); + }); +}); diff --git a/plugins/ModPlus/remoteprofileaction.php b/plugins/ModPlus/remoteprofileaction.php new file mode 100644 index 0000000000..caa5e6fbf3 --- /dev/null +++ b/plugins/ModPlus/remoteprofileaction.php @@ -0,0 +1,106 @@ +arg('id'); + $this->user = false; + $this->profile = Profile::staticGet('id', $id); + + if (!$this->profile) { + $this->serverError(_('User has no profile.')); + return false; + } + + $user = User::staticGet('id', $this->profile->id); + if ($user) { + // This is a local user -- send to their regular profile. + $url = common_local_url('showstream', array('nickname' => $user->nickname)); + common_redirect($url); + return false; + } + + $this->tag = $this->trimmed('tag'); + $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; + common_set_returnto($this->selfUrl()); + return true; + } + + function handle($args) + { + // skip yadis thingy + $this->showPage(); + } + + function title() + { + // maybe fixed in 0.9.x + if (!empty($this->profile->fullname)) { + $base = $this->profile->fullname . ' (' . $this->profile->nickname . ') '; + } else { + $base = $this->profile->nickname; + } + $host = parse_url($this->profile->profileurl, PHP_URL_HOST); + return sprintf(_m('%s on %s'), $base, $host); + } + + /** + * Instead of showing notices, link to the original offsite profile. + */ + function showNotices() + { + $url = $this->profile->profileurl; + $host = parse_url($url, PHP_URL_HOST); + $markdown = sprintf( + _m('This remote profile is registered on another site; see [%s\'s original profile page on %s](%s).'), + $this->profile->nickname, + $host, + $url); + $html = common_markup_to_html($markdown); + $this->raw($html); + + if ($this->profile->hasRole(Profile_role::SILENCED)) { + $markdown = _m('Site moderators have silenced this profile, which prevents delivery of new messages to any users on this site.'); + $this->raw(common_markup_to_html($markdown)); + } + } + + function getFeeds() + { + // none + } + + /** + * Don't do various extra stuff, and also trim some things to avoid crawlers. + */ + function extraHead() + { + $this->element('meta', array('name' => 'robots', + 'content' => 'noindex,nofollow')); + } + + function showLocalNav() + { + $nav = new PublicGroupNav($this); + $nav->show(); + } + + function showSections() + { + ProfileAction::showSections(); + // skip tag cloud + } + + function showStatistics() + { + // skip + } + +} \ No newline at end of file diff --git a/plugins/Msn/MsnPlugin.php b/plugins/Msn/MsnPlugin.php new file mode 100644 index 0000000000..187486eedc --- /dev/null +++ b/plugins/Msn/MsnPlugin.php @@ -0,0 +1,216 @@ +. + * + * @category IM + * @package StatusNet + * @author Luke Fitzgerald + * @copyright 2010 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); +} +// We bundle the phpmsnclass library... +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/phpmsnclass'); + +/** + * Plugin for MSN + * + * @category Plugin + * @package StatusNet + * @author Luke Fitzgerald + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class MsnPlugin extends ImPlugin { + public $user = null; + public $password = null; + public $nickname = null; + public $transport = 'msn'; + + /** + * Get the internationalized/translated display name of this IM service + * + * @return string Name of service + */ + public function getDisplayName() { + return _m('MSN'); + } + + /** + * Normalize a screenname for comparison + * + * @param string $screenname screenname to normalize + * @return string an equivalent screenname in normalized form + */ + public function normalize($screenname) { + $screenname = str_replace(" ","", $screenname); + return strtolower($screenname); + } + + /** + * Get the screenname of the daemon that sends and receives messages + * + * @return string Screenname + */ + public function daemonScreenname() { + return $this->user; + } + + /** + * Validate (ensure the validity of) a screenname + * + * @param string $screenname screenname to validate + * @return boolean + */ + public function validate($screenname) { + return Validate::email($screenname, common_config('email', 'check_domain')); + } + + /** + * Load related modules when needed + * + * @param string $cls Name of the class to be loaded + * @return boolean hook value; true means continue processing, false means stop. + */ + public function onAutoload($cls) { + $dir = dirname(__FILE__); + + switch ($cls) { + case 'MSN': + require_once(INSTALLDIR.'/plugins/Msn/extlib/phpmsnclass/msn.class.php'); + return false; + case 'MsnManager': + case 'Msn_waiting_message': + include_once $dir . '/'.strtolower($cls).'.php'; + return false; + default: + return true; + } + } + + /* + * Start manager on daemon start + * + * @return boolean + */ + public function onStartImDaemonIoManagers(&$classes) { + parent::onStartImDaemonIoManagers(&$classes); + $classes[] = new MsnManager($this); // handles sending/receiving + return true; + } + + /** + * Ensure the database table is present + * + */ + public function onCheckSchema() { + $schema = Schema::get(); + + // For storing messages while sessions become ready + $schema->ensureTable('msn_waiting_message', + array(new ColumnDef('id', 'integer', null, + false, 'PRI', null, null, true), + new ColumnDef('screenname', 'varchar', 255, false), + new ColumnDef('message', 'text', null, false), + new ColumnDef('created', 'datetime', null, false), + new ColumnDef('claimed', 'datetime'))); + + return true; + } + + /** + * Get a microid URI for the given screenname + * + * @param string $screenname + * @return string microid URI + */ + public function microiduri($screenname) { + return 'msnim:' . $screenname; + } + + /** + * Send a message to a given screenname + * + * @param string $screenname Screenname to send to + * @param string $body Text to send + * @return boolean success value + */ + public function sendMessage($screenname, $body) { + $this->enqueueOutgoingRaw(array('to' => $screenname, 'message' => $body)); + return true; + } + + /** + * Accept a queued input message. + * + * @param array $data Data + * @return true if processing completed, false if message should be reprocessed + */ + public function receiveRawMessage($data) { + $this->handleIncoming($data['sender'], $data['message']); + return true; + } + + /** + * Initialize plugin + * + * @return boolean + */ + public function initialize() { + 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->nickname)) { + throw new Exception("Must specify a nickname"); + } + + return true; + } + + /** + * Get plugin information + * + * @param array $versions array to insert information into + * @return void + */ + public function onPluginVersion(&$versions) { + $versions[] = array( + 'name' => 'MSN', + 'version' => STATUSNET_VERSION, + 'author' => 'Luke Fitzgerald', + 'homepage' => 'http://status.net/wiki/Plugin:MSN', + 'rawdescription' => + _m('The MSN plugin allows users to send and receive notices over the MSN network.') + ); + return true; + } +} diff --git a/plugins/Msn/README b/plugins/Msn/README new file mode 100644 index 0000000000..fa7bc2fb22 --- /dev/null +++ b/plugins/Msn/README @@ -0,0 +1,32 @@ +The MSN plugin allows users to send and receive notices over the MSN network. + +Required PHP extensions: +curl pcre mhash mcrypt bcmath + +Installation +============ +add "addPlugin('msn', + array('setting'=>'value', 'setting2'=>'value2', ...);" +to the bottom of your config.php + +scripts/imdaemon.php included with StatusNet 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 +======== +user*: username (screenname) to use when logging into MSN +password*: password for that user +nickname*: nickname for the bot + +* required +default values are in (parenthesis) + +Example +======= +addPlugin('msn', array( + 'user' => '...', + 'password' => '...', + 'nickname' => '...' +)); + diff --git a/plugins/Msn/extlib/phpmsnclass/msn.class.php b/plugins/Msn/extlib/phpmsnclass/msn.class.php new file mode 100644 index 0000000000..996c5571c2 --- /dev/null +++ b/plugins/Msn/extlib/phpmsnclass/msn.class.php @@ -0,0 +1,3210 @@ + + +Based on MSN class ver 2.0 by Tommy Wu, Ricky Su +License: GPL + +Documentation on the MSN protocol can be found at: http://msnpiki.msnfanatic.com/index.php/Main_Page + +This class uses MSNP15. + +In addition to PHP5, the additional php modules required are: +curl pcre mcrypt bcmath + +*/ + +class MSN { + const PROTOCOL = 'MSNP15'; + const PASSPORT_URL = 'https://login.live.com/RST.srf'; + const BUILDVER = '8.1.0178'; + const PROD_KEY = 'PK}_A_0N_K%O?A9S'; + const PROD_ID = 'PROD0114ES4Z%Q5W'; + const LOGIN_METHOD = 'SSO'; + + const OIM_SEND_URL = 'https://ows.messenger.msn.com/OimWS/oim.asmx'; + const OIM_SEND_SOAP = 'http://messenger.live.com/ws/2006/09/oim/Store2'; + + const OIM_MAILDATA_URL = 'https://rsi.hotmail.com/rsi/rsi.asmx'; + const OIM_MAILDATA_SOAP = 'http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMetadata'; + const OIM_READ_URL = 'https://rsi.hotmail.com/rsi/rsi.asmx'; + const OIM_READ_SOAP = 'http://www.hotmail.msn.com/ws/2004/09/oim/rsi/GetMessage'; + const OIM_DEL_URL = 'https://rsi.hotmail.com/rsi/rsi.asmx'; + const OIM_DEL_SOAP = 'http://www.hotmail.msn.com/ws/2004/09/oim/rsi/DeleteMessages'; + + const MEMBERSHIP_URL = 'https://contacts.msn.com/abservice/SharingService.asmx'; + const MEMBERSHIP_SOAP = 'http://www.msn.com/webservices/AddressBook/FindMembership'; + + const ADDMEMBER_URL = 'https://contacts.msn.com/abservice/SharingService.asmx'; + const ADDMEMBER_SOAP = 'http://www.msn.com/webservices/AddressBook/AddMember'; + + const DELMEMBER_URL = 'https://contacts.msn.com/abservice/SharingService.asmx'; + const DELMEMBER_SOAP = 'http://www.msn.com/webservices/AddressBook/DeleteMember'; + + // the message length (include header) is limited (maybe since WLM 8.5 released) + // for WLM: 1664 bytes + // for YIM: 518 bytes + const MAX_MSN_MESSAGE_LEN = 1664; + const MAX_YAHOO_MESSAGE_LEN = 518; + + private $debug; + private $timeout; + + private $id; + private $ticket; + private $user = ''; + private $password = ''; + private $NSfp = false; + private $passport_policy = ''; + private $alias; + private $psm; + private $retry_wait; + private $update_pending; + private $PhotoStickerFile = false; + private $Emotions = false; + private $XFRReqTimeout = 60; + private $SBStreamTimeout = 2; + private $MsnObjArray = array(); + private $MsnObjMap = array(); + private $ABAuthHeader; + private $ABService; + private $Contacts; + + private $server = 'messenger.hotmail.com'; + private $port = 1863; + + private $clientid = ''; + + private $error = ''; + + private $authed = false; + + private $oim_try = 3; + + private $font_fn = 'Arial'; + private $font_co = '333333'; + private $font_ef = ''; + + // Begin added for StatusNet + + private $aContactList = array(); + private $aADL = array(); + + /** + * Holds session information indexed by screenname if + * session has no socket or socket if socket present + * + * @var array + */ + private $switchBoardSessions = array(); + + /** + * Holds sockets indexed by screenname + * + * @var array + */ + private $switchBoardSessionLookup = array(); + + /** + * Holds references to sessions waiting for XFR + * + * @var array + */ + private $waitingForXFR = array(); + + /** + * Event Handler Functions + */ + private $myEventHandlers = array(); + + // End added for StatusNet + + /** + * Constructor method + * + * @param array $Configs Array of configuration options + * 'user' - Username + * 'password' - Password + * 'alias' - Bot nickname + * 'psm' - Bot personal status message + * 'retry_wait' - Time to wait before trying to reconnect + * 'update_pending' - Whether to update pending contacts + * 'PhotoSticker' - Photo file to use (?) + * 'debug' - Enable/Disable debugging mode + * @param integer $timeout Connection timeout + * @param integer $client_id Client id (hexadecimal) + * @return MSN + */ + public function __construct ($Configs = array(), $timeout = 15, $client_id = 0x7000800C) { + $this->user = $Configs['user']; + $this->password = $Configs['password']; + $this->alias = isset($Configs['alias']) ? $Configs['alias'] : ''; + $this->psm = isset($Configs['psm']) ? $Configs['psm'] : ''; + $this->retry_wait = isset($Configs['retry_wait']) ? $Configs['retry_wait'] : 30; + $this->update_pending = isset($Configs['update_pending']) ? $Configs['update_pending'] : true; + $this->PhotoStickerFile=isset($Configs['PhotoSticker']) ? $Configs['PhotoSticker'] : false; + + if ($this->Emotions = isset($Configs['Emotions']) ? $Configs['Emotions']:false) { + foreach($this->Emotions as $EmotionFilePath) + $this->MsnObj($EmotionFilePath,$Type=2); + } + $this->debug = isset($Configs['debug']) ? $Configs['debug'] : false; + $this->timeout = $timeout; + + // Check support + if (!function_exists('curl_init')) throw new Exception("curl module not found!\n"); + if (!function_exists('preg_match')) throw new Exception("pcre module not found!\n"); + if (!function_exists('mcrypt_cbc')) throw new Exception("mcrypt module not found!\n"); + if (!function_exists('bcmod')) throw new Exception("bcmath module not found!\n"); + + /* + http://msnpiki.msnfanatic.com/index.php/Client_ID + Client ID for MSN: + normal MSN 8.1 clientid is: + 01110110 01001100 11000000 00101100 + = 0x764CC02C + + we just use following: + * 0x04: Your client can send/receive Ink (GIF format) + * 0x08: Your client can send/recieve Ink (ISF format) + * 0x8000: This means you support Winks receiving (If not set the official Client will warn with 'contact has an older client and is not capable of receiving Winks') + * 0x70000000: This is the value for MSNC7 (WL Msgr 8.1) + = 0x7000800C; + */ + $this->clientid = $client_id; + $this->ABService = new SoapClient(realpath(dirname(__FILE__)).'/soap/msnab_sharingservice.wsdl', array('trace' => 1)); + } + + /** + * Signon methods + */ + + /** + * Connect to the NS server + * + * @param String $user Username + * @param String $password Password + * @param String $redirect_server Redirect server + * @param Integer $redirect_port Redirect port + * @return Boolean Returns true if successful + */ + private function connect($user, $password, $redirect_server = '', $redirect_port = 1863) { + $this->id = 1; + if ($redirect_server === '') { + $this->NSfp = @fsockopen($this->server, $this->port, $errno, $errstr, $this->timeout); + if (!$this->NSfp) { + $this->error = "!!! Could not connect to $this->server:$this->port, error => $errno, $errstr"; + return false; + } + } + else { + $this->NSfp = @fsockopen($redirect_server, $redirect_port, $errno, $errstr, $this->timeout); + if (!$this->NSfp) { + $this->error = "!!! Could not connect to $redirect_server:$redirect_port, error => $errno, $errstr"; + return false; + } + } + $this->authed = false; + // MSNP9 + // NS: >> VER {id} MSNP9 CVR0 + // MSNP15 + // NS: >>> VER {id} MSNP15 CVR0 + $this->ns_writeln("VER $this->id ".self::PROTOCOL.' CVR0'); + + $start_tm = time(); + while (!self::socketcheck($this->NSfp)) { + $data = $this->ns_readln(); + // no data? + if ($data === false) { + // logout now + // NS: >>> OUT + $this->ns_writeln("OUT"); + @fclose($this->NSfp); + $this->error = 'Timeout, maybe protocol changed!'; + return false; + } + + $code = substr($data, 0, 3); + $start_tm = time(); + + switch ($code) { + case 'VER': + // MSNP9 + // NS: <<< VER {id} MSNP9 CVR0 + // NS: >>> CVR {id} 0x0409 winnt 5.1 i386 MSMSGS 6.0.0602 msmsgs {user} + // MSNP15 + // NS: <<< VER {id} MSNP15 CVR0 + // NS: >>> CVR {id} 0x0409 winnt 5.1 i386 MSMSGS 8.1.0178 msmsgs {user} + $this->ns_writeln("CVR $this->id 0x0409 winnt 5.1 i386 MSMSGS ".self::BUILDVER." msmsgs $user"); + break; + + case 'CVR': + // MSNP9 + // NS: <<< CVR {id} {ver_list} {download_serve} .... + // NS: >>> USR {id} TWN I {user} + // MSNP15 + // NS: <<< CVR {id} {ver_list} {download_serve} .... + // NS: >>> USR {id} SSO I {user} + $this->ns_writeln("USR $this->id ".self::LOGIN_METHOD." I $user"); + break; + + case 'USR': + // already login for passport site, finish the login process now. + // NS: <<< USR {id} OK {user} {verify} 0 + if ($this->authed) return true; + // max. 16 digits for password + if (strlen($password) > 16) + $password = substr($password, 0, 16); + + $this->user = $user; + $this->password = $password; + // NS: <<< USR {id} SSO S {policy} {nonce} + @list(/* USR */, /* id */, /* SSO */, /* S */, $policy, $nonce) = @explode(' ', $data); + + $this->passport_policy = $policy; + $aTickets = $this->get_passport_ticket(); + if (!$aTickets || !is_array($aTickets)) { + // logout now + // NS: >>> OUT + $this->ns_writeln("OUT"); + @fclose($this->NSfp); + $this->error = 'Passport authentication failed!'; + return false; + } + + $ticket = $aTickets['ticket']; + $secret = $aTickets['secret']; + $this->ticket = $aTickets; + $login_code = $this->generateLoginBLOB($secret, $nonce); + + // NS: >>> USR {id} SSO S {ticket} {login_code} + $this->ns_writeln("USR $this->id ".self::LOGIN_METHOD." S $ticket $login_code"); + $this->authed = true; + break; + + case 'XFR': + // main login server will redirect to anther NS after USR command + // MSNP9 + // NS: <<< XFR {id} NS {server} 0 {server} + // MSNP15 + // NS: <<< XFR {id} NS {server} U D + @list(/* XFR */, /* id */, $Type, $server) = @explode(' ', $data); + if ($Type!='NS') break; + @list($ip, $port) = @explode(':', $server); + // this connection will close after XFR + @fclose($this->NSfp); + + $this->NSfp = @fsockopen($ip, $port, $errno, $errstr, $this->timeout); + if (!$this->NSfp) { + $this->error = "Can't connect to $ip:$port, error => $errno, $errstr"; + return false; + } + + // MSNP9 + // NS: >> VER {id} MSNP9 CVR0 + // MSNP15 + // NS: >>> VER {id} MSNP15 CVR0 + $this->ns_writeln("VER $this->id ".self::PROTOCOL.' CVR0'); + break; + + case 'GCF': + // return some policy data after 'USR {id} SSO I {user}' command + // NS: <<< GCF 0 {size} + @list(/* GCF */, /* 0 */, $size) = @explode(' ', $data); + // we don't need the data, just read it and drop + if (is_numeric($size) && $size > 0) + $this->ns_readdata($size); + break; + + default: + // we'll quit if got any error + if (is_numeric($code)) { + // logout now + // NS: >>> OUT + $this->ns_writeln("OUT"); + @fclose($this->NSfp); + $this->error = "Error code: $code, please check the detail information from: http://msnpiki.msnfanatic.com/index.php/Reference:Error_List"; + return false; + } + // unknown response from server, just ignore it + break; + } + } + // never goto here + } + + /** + * Sign onto the NS server and retrieve the address book + * + * @return void + */ + public function signon() { + /* FIXME Don't implement the signon as a loop or we could hang + * the queue handler! */ + $this->debug_message('*** Trying to connect to MSN network'); + + // Remove any remaining switchboard sessions + $this->switchBoardSessions = array(); + $this->switchBoardSessionLookup = array(); + + while (true) { + // Connect + if (!$this->connect($this->user, $this->password)) { + $this->signonFailure("!!! Could not connect to server: $this->error"); + continue; + } + + // Update contacts + if ($this->UpdateContacts() === false) { + $this->signonFailure(''); + continue; + } + + // Get membership lists + if (($this->aContactList = $this->getMembershipList()) === false) { + $this->signonFailure('!!! Get membership list failed'); + continue; + } + + if ($this->update_pending) { + if (is_array($this->aContactList)) { + $pending = 'Pending'; + foreach ($this->aContactList as $u_domain => $aUserList) { + foreach ($aUserList as $u_name => $aNetworks) { + foreach ($aNetworks as $network => $aData) { + if (isset($aData[$pending])) { + // pending list + $cnt = 0; + foreach (array('Allow', 'Reverse') as $list) { + if (isset($aData[$list])) + $cnt++; + else { + if ($this->addMemberToList($u_name.'@'.$u_domain, $network, $list)) { + $this->aContactList[$u_domain][$u_name][$network][$list] = false; + $cnt++; + } + } + } + if ($cnt >= 2) { + $id = $aData[$pending]; + // we can delete it from pending now + if ($this->delMemberFromList($id, $u_name.'@'.$u_domain, $network, $pending)) + unset($this->aContactList[$u_domain][$u_name][$network][$pending]); + } + } + else { + // sync list + foreach (array('Allow', 'Reverse') as $list) { + if (!isset($aData[$list])) { + if ($this->addMemberToList($u_name.'@'.$u_domain, $network, $list)) + $this->aContactList[$u_domain][$u_name][$network][$list] = false; + } + } + } + } + } + } + } + } + $n = 0; + $sList = ''; + $len = 0; + if (is_array($this->aContactList)) { + foreach ($this->aContactList as $u_domain => $aUserList) { + $str = ''; + $len += strlen($str); + if ($len > 7400) { + $this->aADL[$n] = ''.$sList.''; + $n++; + $sList = ''; + $len = strlen($str); + } + $sList .= $str; + foreach ($aUserList as $u_name => $aNetworks) { + foreach ($aNetworks as $network => $status) { + $str = ''; + $len += strlen($str); + // max: 7500, but is 19, + // so we use 7475 + if ($len > 7475) { + $sList .= ''; + $this->aADL[$n] = ''.$sList.''; + $n++; + $sList = ''.$str; + $len = strlen($sList); + } + else + $sList .= $str; + } + } + $sList .= ''; + } + } + $this->aADL[$n] = ''.$sList.''; + // NS: >>> BLP {id} BL + $this->ns_writeln("BLP $this->id BL"); + foreach ($this->aADL as $str) { + $len = strlen($str); + // NS: >>> ADL {id} {size} + $this->ns_writeln("ADL $this->id $len"); + $this->ns_writedata($str); + } + // NS: >>> PRP {id} MFN name + if ($this->alias == '') $this->alias = $user; + $aliasname = rawurlencode($this->alias); + $this->ns_writeln("PRP $this->id MFN $aliasname"); + //設定個人大頭貼 + //$MsnObj=$this->PhotoStckObj(); + // NS: >>> CHG {id} {status} {clientid} {msnobj} + $this->ns_writeln("CHG $this->id NLN $this->clientid"); + if ($this->PhotoStickerFile !== false) + $this->ns_writeln("CHG $this->id NLN $this->clientid ".rawurlencode($this->MsnObj($this->PhotoStickerFile))); + // NS: >>> UUX {id} length + $str = ''.htmlspecialchars($this->psm).''; + $len = strlen($str); + $this->ns_writeln("UUX $this->id $len"); + $this->ns_writedata($str); + if (!self::socketcheck($this->NSfp)) { + $this->debug_message('*** Connected, waiting for commands'); + break; + } else { + $this->NSRetryWait($this->retry_wait); + } + } + } + + /** + * Called if there is an error during signon + * + * @param string $message Error message to log + * @return void + */ + private function signonFailure($message) { + if(!empty($message)) { + $this->debug_message($message); + } + $this->callHandler('ConnectFailed', $message); + $this->NSRetryWait($this->retry_wait); + } + + /** + * Log out and close the NS connection + * + * @return void + */ + private function nsLogout() { + if (is_resource($this->NSfp) && !feof($this->NSfp)) { + // logout now + // NS: >>> OUT + $this->ns_writeln("OUT"); + fclose($this->NSfp); + $this->NSfp = false; + $this->debug_message("*** Logged out"); + } + } + + /** + * NS and SB command handling methods + */ + + /** + * Read and handle incoming command from NS + * + * @return void + */ + private function nsReceive() { + // Sign in again if not signed in or socket failed + if (!is_resource($this->NSfp) || self::socketcheck($this->NSfp)) { + $this->callHandler('Reconnect'); + $this->NSRetryWait($this->retry_wait); + $this->signon(); + return; + } + + $data = $this->ns_readln(); + if ($data === false) { + // There was no data / an error when reading from the socket so reconnect + $this->callHandler('Reconnect'); + $this->NSRetryWait($this->retry_wait); + $this->signon(); + return; + } + + switch (substr($data, 0, 3)) { + case 'SBS': + // after 'USR {id} OK {user} {verify} 0' response, the server will send SBS and profile to us + // NS: <<< SBS 0 null + break; + + case 'RFS': + // FIXME: + // NS: <<< RFS ??? + // refresh ADL, so we re-send it again + if (is_array($this->aADL)) { + foreach ($this->aADL as $str) { + $len = strlen($str); + // NS: >>> ADL {id} {size} + $this->ns_writeln("ADL $this->id $len"); + $this->ns_writedata($str); + } + } + break; + + case 'LST': + // NS: <<< LST {email} {alias} 11 0 + @list(/* LST */, $email) = @explode(' ', $data); + @list($u_name, $u_domain) = @explode('@', $email); + if (!isset($this->aContactList[$u_domain][$u_name][1])) { + $this->aContactList[$u_domain][$u_name][1]['Allow'] = 'Allow'; + $this->debug_message("*** Added to contact list: $u_name@$u_domain"); + } + break; + + case 'ADL': + // randomly, we get ADL command, someone add us to their contact list for MSNP15 + // NS: <<< ADL 0 {size} + @list(/* ADL */, /* 0 */, $size) = @explode(' ', $data); + if (is_numeric($size) && $size > 0) { + $data = $this->ns_readdata($size); + preg_match('##', $data, $matches); + if (is_array($matches) && count($matches) > 0) { + $u_domain = $matches[1]; + $u_name = $matches[2]; + $network = $matches[4]; + if (isset($this->aContactList[$u_domain][$u_name][$network])) + $this->debug_message("*** Someone (network: $network) added us to their list (but already in our list): $u_name@$u_domain"); + else { + $re_login = false; + $cnt = 0; + foreach (array('Allow', 'Reverse') as $list) { + if (!$this->addMemberToList($u_name.'@'.$u_domain, $network, $list)) { + if ($re_login) { + $this->debug_message("*** Could not add $u_name@$u_domain (network: $network) to $list list"); + continue; + } + $aTickets = $this->get_passport_ticket(); + if (!$aTickets || !is_array($aTickets)) { + // failed to login? ignore it + $this->debug_message("*** Could not re-login, something wrong here"); + $this->debug_message("*** Could not add $u_name@$u_domain (network: $network) to $list list"); + continue; + } + $re_login = true; + $this->ticket = $aTickets; + $this->debug_message("**** Got new ticket, trying again"); + if (!$this->addMemberToList($u_name.'@'.$u_domain, $network, $list)) { + $this->debug_message("*** Could not add $u_name@$u_domain (network: $network) to $list list"); + continue; + } + } + $this->aContactList[$u_domain][$u_name][$network][$list] = false; + $cnt++; + } + $this->debug_message("*** Someone (network: $network) added us to their list: $u_name@$u_domain"); + } + $str = ''; + $len = strlen($str); + + $this->callHandler('AddedToList', array('screenname' => $u_name.'@'.$u_domain, 'network' => $network)); + } + else + $this->debug_message("*** Someone added us to their list: $data"); + } + break; + + case 'RML': + // randomly, we get RML command, someome remove us to their contact list for MSNP15 + // NS: <<< RML 0 {size} + @list(/* RML */, /* 0 */, $size) = @explode(' ', $data); + if (is_numeric($size) && $size > 0) { + $data = $this->ns_readdata($size); + preg_match('##', $data, $matches); + if (is_array($matches) && count($matches) > 0) { + $u_domain = $matches[1]; + $u_name = $matches[2]; + $network = $matches[4]; + if (isset($this->aContactList[$u_domain][$u_name][$network])) { + $aData = $this->aContactList[$u_domain][$u_name][$network]; + + foreach ($aData as $list => $id) + $this->delMemberFromList($id, $u_name.'@'.$u_domain, $network, $list); + + unset($this->aContactList[$u_domain][$u_name][$network]); + $this->debug_message("*** Someone (network: $network) removed us from their list: $u_name@$u_domain"); + } + else + $this->debug_message("*** Someone (network: $network) removed us from their list (but not in our list): $u_name@$u_domain"); + + $this->callHandler('RemovedFromList', array('screenname' => $u_name.'@'.$u_domain, 'network' => $network)); + } + else + $this->debug_message("*** Someone removed us from their list: $data"); + } + break; + + case 'MSG': + // randomly, we get MSG notification from server + // NS: <<< MSG Hotmail Hotmail {size} + @list(/* MSG */, /* Hotmail */, /* Hotmail */, $size) = @explode(' ', $data); + if (is_numeric($size) && $size > 0) { + $data = $this->ns_readdata($size); + $aLines = @explode("\n", $data); + $header = true; + $ignore = false; + $maildata = ''; + foreach ($aLines as $line) { + $line = rtrim($line); + if ($header) { + if ($line === '') { + $header = false; + continue; + } + if (strncasecmp($line, 'Content-Type:', 13) == 0) { + if (strpos($line, 'text/x-msmsgsinitialmdatanotification') === false && strpos($line, 'text/x-msmsgsoimnotification') === false) { + // we just need text/x-msmsgsinitialmdatanotification + // or text/x-msmsgsoimnotification + $ignore = true; + break; + } + } + continue; + } + if (strncasecmp($line, 'Mail-Data:', 10) == 0) { + $maildata = trim(substr($line, 10)); + break; + } + } + if ($ignore) { + $this->debug_message("*** Ignoring MSG for: $line"); + break; + } + if ($maildata == '') { + $this->debug_message("*** Ignoring MSG not for OIM"); + break; + } + $re_login = false; + if (strcasecmp($maildata, 'too-large') == 0) { + $this->debug_message("*** Large mail-data, need to get the data via SOAP"); + $maildata = $this->getOIM_maildata(); + if ($maildata === false) { + $this->debug_message("*** Could not get mail-data via SOAP"); + + // maybe we need to re-login again + $aTickets = $this->get_passport_ticket(); + if (!$aTickets || !is_array($aTickets)) { + // failed to login? ignore it + $this->debug_message("*** Could not re-login, something wrong here, ignoring this OIM"); + break; + } + $re_login = true; + $this->ticket = $aTickets; + $this->debug_message("*** Got new ticket, trying again"); + $maildata = $this->getOIM_maildata(); + if ($maildata === false) { + $this->debug_message("*** Could not get mail-data via SOAP, and re-login already attempted, ignoring this OIM"); + break; + } + } + } + // could be a lots of ..., so we can't use preg_match here + $p = $maildata; + $aOIMs = array(); + while (1) { + $start = strpos($p, ''); + $end = strpos($p, ''); + if ($start === false || $end === false || $start > $end) break; + $end += 4; + $sOIM = substr($p, $start, $end - $start); + $aOIMs[] = $sOIM; + $p = substr($p, $end); + } + if (count($aOIMs) == 0) { + $this->debug_message("*** Ignoring empty OIM"); + break; + } + foreach ($aOIMs as $maildata) { + // T: 11 for MSN, 13 for Yahoo + // S: 6 for MSN, 7 for Yahoo + // RT: the datetime received by server + // RS: already read or not + // SZ: size of message + // E: sender + // I: msgid + // F: always 00000000-0000-0000-0000-000000000009 + // N: sender alias + preg_match('#(.*)#', $maildata, $matches); + if (count($matches) == 0) { + $this->debug_message("*** Ignoring OIM maildata without type"); + continue; + } + $oim_type = $matches[1]; + if ($oim_type = 13) + $network = 32; + else + $network = 1; + preg_match('#(.*)#', $maildata, $matches); + if (count($matches) == 0) { + $this->debug_message("*** Ignoring OIM maildata without sender"); + continue; + } + $oim_sender = $matches[1]; + preg_match('#(.*)#', $maildata, $matches); + if (count($matches) == 0) { + $this->debug_message("*** Ignoring OIM maildata without msgid"); + continue; + } + $oim_msgid = $matches[1]; + preg_match('#(.*)#', $maildata, $matches); + $oim_size = (count($matches) == 0) ? 0 : $matches[1]; + preg_match('#(.*)#', $maildata, $matches); + $oim_time = (count($matches) == 0) ? 0 : $matches[1]; + $this->debug_message("*** OIM received from $oim_sender, Time: $oim_time, MSGID: $oim_msgid, size: $oim_size"); + $sMsg = $this->getOIM_message($oim_msgid); + if ($sMsg === false) { + $this->debug_message("*** Could not get OIM, msgid = $oim_msgid"); + if ($re_login) { + $this->debug_message("*** Could not get OIM via SOAP, and re-login already attempted, ignoring this OIM"); + continue; + } + $aTickets = $this->get_passport_ticket(); + if (!$aTickets || !is_array($aTickets)) { + // failed to login? ignore it + $this->debug_message("*** Could not re-login, something wrong here, ignoring this OIM"); + continue; + } + $re_login = true; + $this->ticket = $aTickets; + $this->debug_message("*** get new ticket, try it again"); + $sMsg = $this->getOIM_message($oim_msgid); + if ($sMsg === false) { + $this->debug_message("*** Could not get OIM via SOAP, and re-login already attempted, ignoring this OIM"); + continue; + } + } + $this->debug_message("*** MSG (Offline) from $oim_sender (network: $network): $sMsg"); + $this->callHandler('IMin', array('sender' => $oim_sender, 'message' => $sMsg, 'network' => $network, 'offline' => true)); + } + } + break; + + case 'UBM': + // randomly, we get UBM, this is the message from other network, like Yahoo! + // NS: <<< UBM {email} $network $type {size} + @list(/* UBM */, $from_email, $network, $type, $size) = @explode(' ', $data); + if (is_numeric($size) && $size > 0) { + $data = $this->ns_readdata($size); + $aLines = @explode("\n", $data); + $header = true; + $ignore = false; + $sMsg = ''; + foreach ($aLines as $line) { + $line = rtrim($line); + if ($header) { + if ($line === '') { + $header = false; + continue; + } + if (strncasecmp($line, 'TypingUser:', 11) == 0) { + $ignore = true; + break; + } + continue; + } + $aSubLines = @explode("\r", $line); + foreach ($aSubLines as $str) { + if ($sMsg !== '') + $sMsg .= "\n"; + $sMsg .= $str; + } + } + if ($ignore) { + $this->debug_message("*** Ignoring message from $from_email: $line"); + break; + } + $this->debug_message("*** MSG from $from_email (network: $network): $sMsg"); + $this->callHandler('IMin', array('sender' => $from_email, 'message' => $sMsg, 'network' => $network, 'offline' => false)); + } + break; + + case 'UBX': + // randomly, we get UBX notification from server + // NS: <<< UBX email {network} {size} + @list(/* UBX */, /* email */, /* network */, $size) = @explode(' ', $data); + // we don't need the notification data, so just ignore it + if (is_numeric($size) && $size > 0) + $this->ns_readdata($size); + break; + + case 'CHL': + // randomly, we'll get challenge from server + // NS: <<< CHL 0 {code} + @list(/* CHL */, /* 0 */, $chl_code) = @explode(' ', $data); + $fingerprint = $this->getChallenge($chl_code); + // NS: >>> QRY {id} {product_id} 32 + // NS: >>> fingerprint + $this->ns_writeln("QRY $this->id ".self::PROD_ID.' 32'); + $this->ns_writedata($fingerprint); + $this->ns_writeln("CHG $this->id NLN $this->clientid"); + if ($this->PhotoStickerFile !== false) + $this->ns_writeln("CHG $this->id NLN $this->clientid ".rawurlencode($this->MsnObj($this->PhotoStickerFile))); + break; + case 'CHG': + // NS: <<< CHG {id} {status} {code} + // ignore it + // change our status to online first + break; + + case 'XFR': + // sometimes, NS will redirect to another NS + // MSNP9 + // NS: <<< XFR {id} NS {server} 0 {server} + // MSNP15 + // NS: <<< XFR {id} NS {server} U D + // for normal switchboard XFR + // NS: <<< XFR {id} SB {server} CKI {cki} U messenger.msn.com 0 + @list(/* XFR */, /* {id} */, $server_type, $server, /* CKI */, $cki_code) = @explode(' ', $data); + @list($ip, $port) = @explode(':', $server); + if ($server_type != 'SB') { + // maybe exit? + // this connection will close after XFR + $this->nsLogout(); + continue; + } + + $this->debug_message("NS: <<< XFR SB"); + $session = array_shift($this->waitingForXFR); + $this->connectToSBSession('Active', $ip, $port, $session['to'], array('cki' => $cki_code)); + break; + case 'QNG': + // NS: <<< QNG {time} + @list(/* QNG */, $ping_wait) = @explode(' ', $data); + $this->callHandler('Pong', $ping_wait); + break; + + case 'RNG': + if ($this->PhotoStickerFile !== false) + $this->ns_writeln("CHG $this->id NLN $this->clientid ".rawurlencode($this->MsnObj($this->PhotoStickerFile))); + else + $this->ns_writeln("CHG $this->id NLN $this->clientid"); + // someone is trying to talk to us + // NS: <<< RNG {session_id} {server} {auth_type} {ticket} {email} {alias} U {client} 0 + $this->debug_message("NS: <<< RNG $data"); + @list(/* RNG */, $sid, $server, /* auth_type */, $ticket, $email, $name) = @explode(' ', $data); + @list($sb_ip, $sb_port) = @explode(':', $server); + $this->debug_message("*** RING from $email, $sb_ip:$sb_port"); + $this->addContact($email, 1, $email, true); + $this->connectToSBSession('Passive', $sb_ip, $sb_port, $email, array('sid' => $sid, 'ticket' => $ticket)); + break; + + case 'NLN': + // NS: <<< NLN {status} {email} {networkid} {nickname} {clientid} {dpobj} + @list(/* NLN */, $status, $email, $network, $nickname) = @explode(' ', $data); + $this->callHandler('StatusChange', array('screenname' => $email, 'status' => $status, 'network' => $network, 'nickname' => $nickname)); + break; + + case 'OUT': + // force logout from NS + // NS: <<< OUT xxx + $this->debug_message("*** LOGOUT from NS"); + return $this->nsLogout(); + + default: + $code = substr($data,0,3); + if (is_numeric($code)) { + $this->error = "Error code: $code, please check the detail information from: http://msnpiki.msnfanatic.com/index.php/Reference:Error_List"; + $this->debug_message("*** NS: $this->error"); + + return $this->nsLogout(); + } + break; + } + } + + /** + * Read and handle incoming command/message from + * a switchboard session socket + */ + private function sbReceive($socket) { + $intsocket = (int) $socket; + $session = &$this->switchBoardSessions[$intsocket]; + + if (feof($socket)) { + // Unset session lookup value + unset($this->switchBoardSessionLookup[$session['to']]); + + // Unset session itself + unset($this->switchBoardSessions[$intsocket]); + return; + } + + $id = &$session['id']; + + $data = $this->sb_readln($socket); + $code = substr($data, 0, 3); + switch($code) { + case 'IRO': + // SB: <<< IRO {id} {rooster} {roostercount} {email} {alias} {clientid} + @list(/* IRO */, /* id */, $cur_num, $total, $email, $alias, $clientid) = @explode(' ', $data); + $this->debug_message("*** $email joined session"); + if ($email == $session['to']) { + $session['joined'] = true; + $this->callHandler('SessionReady', array('to' => $email)); + } + break; + case 'BYE': + $this->debug_message("*** Quit for BYE"); + $this->endSBSession($socket); + break; + case 'USR': + // SB: <<< USR {id} OK {user} {alias} + // we don't need the data, just ignore it + // request user to join this switchboard + // SB: >>> CAL {id} {user} + $this->sb_writeln($socket, $id, "CAL $id ".$session['to']); + break; + case 'CAL': + // SB: <<< CAL {id} RINGING {?} + // we don't need this, just ignore, and wait for other response + $session['id']++; + break; + case 'JOI': + // SB: <<< JOI {user} {alias} {clientid?} + // someone join us + @list(/* JOI */, $email) = @explode(' ', $data); + if ($email == $session['to']) { + $session['joined'] = true; + $this->callHandler('SessionReady', array('to' => $email)); + } + break; + case 'MSG': + // SB: <<< MSG {email} {alias} {len} + @list(/* MSG */, $from_email, /* alias */, $len) = @explode(' ', $data); + $len = trim($len); + $data = $this->sb_readdata($socket, $len); + $aLines = @explode("\n", $data); + $header = true; + $ignore = false; + $is_p2p = false; + $sMsg = ''; + foreach ($aLines as $line) { + $line = rtrim($line); + if ($header) { + if ($line === '') { + $header = false; + continue; + } + if (strncasecmp($line, 'TypingUser:', 11) == 0) { + // typing notification, just ignore + $ignore = true; + break; + } + if (strncasecmp($line, 'Chunk:', 6) == 0) { + // we don't handle any split message, just ignore + $ignore = true; + break; + } + if (strncasecmp($line, 'Content-Type: application/x-msnmsgrp2p', 38) == 0) { + // p2p message, ignore it, but we need to send acknowledgement for it... + $is_p2p = true; + $p = strstr($data, "\n\n"); + $sMsg = ''; + if ($p === false) { + $p = strstr($data, "\r\n\r\n"); + if ($p !== false) + $sMsg = substr($p, 4); + } + else + $sMsg = substr($p, 2); + break; + } + if (strncasecmp($line, 'Content-Type: application/x-', 28) == 0) { + // ignore all application/x-... message + // for example: + // application/x-ms-ink => ink message + $ignore = true; + break; + } + if (strncasecmp($line, 'Content-Type: text/x-', 21) == 0) { + // ignore all text/x-... message + // for example: + // text/x-msnmsgr-datacast => nudge, voice clip.... + // text/x-mms-animemoticon => customized animemotion word + $ignore = true; + break; + } + continue; + } + if ($sMsg !== '') + $sMsg .= "\n"; + $sMsg .= $line; + } + if ($ignore) { + $this->debug_message("*** Ignoring SB data from $from_email: $line"); + break; + } + if ($is_p2p) { + // we will ignore any p2p message after sending acknowledgement + $ignore = true; + $len = strlen($sMsg); + $this->debug_message("*** p2p message from $from_email, size $len"); + // header = 48 bytes + // content >= 0 bytes + // footer = 4 bytes + // so it need to >= 52 bytes + /*if ($len < 52) { + $this->debug_message("*** p2p: size error, less than 52!"); + break; + }*/ + $aDwords = @unpack("V12dword", $sMsg); + if (!is_array($aDwords)) { + $this->debug_message("*** p2p: header unpack error!"); + break; + } + $this->debug_message("*** p2p: dump received message:\n".$this->dump_binary($sMsg)); + $hdr_SessionID = $aDwords['dword1']; + $hdr_Identifier = $aDwords['dword2']; + $hdr_DataOffsetLow = $aDwords['dword3']; + $hdr_DataOffsetHigh = $aDwords['dword4']; + $hdr_TotalDataSizeLow = $aDwords['dword5']; + $hdr_TotalDataSizeHigh = $aDwords['dword6']; + $hdr_MessageLength = $aDwords['dword7']; + $hdr_Flag = $aDwords['dword8']; + $hdr_AckID = $aDwords['dword9']; + $hdr_AckUID = $aDwords['dword10']; + $hdr_AckSizeLow = $aDwords['dword11']; + $hdr_AckSizeHigh = $aDwords['dword12']; + $this->debug_message("*** p2p: header SessionID = $hdr_SessionID"); + $this->debug_message("*** p2p: header Inentifier = $hdr_Identifier"); + $this->debug_message("*** p2p: header Data Offset Low = $hdr_DataOffsetLow"); + $this->debug_message("*** p2p: header Data Offset High = $hdr_DataOffsetHigh"); + $this->debug_message("*** p2p: header Total Data Size Low = $hdr_TotalDataSizeLow"); + $this->debug_message("*** p2p: header Total Data Size High = $hdr_TotalDataSizeHigh"); + $this->debug_message("*** p2p: header MessageLength = $hdr_MessageLength"); + $this->debug_message("*** p2p: header Flag = $hdr_Flag"); + $this->debug_message("*** p2p: header AckID = $hdr_AckID"); + $this->debug_message("*** p2p: header AckUID = $hdr_AckUID"); + $this->debug_message("*** p2p: header AckSize Low = $hdr_AckSizeLow"); + $this->debug_message("*** p2p: header AckSize High = $hdr_AckSizeHigh"); + if ($hdr_Flag == 2) { + //This is an ACK from SB ignore.... + $this->debug_message("*** p2p: //This is an ACK from SB ignore....:\n"); + break; + } + $MsgBody = $this->linetoArray(substr($sMsg, 48, -4)); + $this->debug_message("*** p2p: body".print_r($MsgBody, true)); + if (($MsgBody['EUF-GUID']=='{A4268EEC-FEC5-49E5-95C3-F126696BDBF6}')&&($PictureFilePath=$this->GetPictureFilePath($MsgBody['Context']))) { + while (true) { + if ($this->sb_readln($socket) === false) break; + } + $this->debug_message("*** p2p: Inv hdr:\n".$this->dump_binary(substr($sMsg, 0, 48))); + preg_match('/{([0-9A-F\-]*)}/i', $MsgBody['Via'], $Matches); + $BranchGUID = $Matches[1]; + //it's an invite to send a display picture. + $new_id = ~$hdr_Identifier; + $hdr = pack( + "LLLLLLLLLLLL", $hdr_SessionID, + $new_id, + 0, 0, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh, + 0, + 2, + $hdr_Identifier, + $hdr_AckID, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh + ); + $footer = pack("L", 0); + $message = "MIME-Version: 1.0\r\nContent-Type: application/x-msnmsgrp2p\r\nP2P-Dest: $from_email\r\n\r\n$hdr$footer"; + $len = strlen($message); + $this->sb_writeln($socket, $id, "MSG $id D $len"); + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: send display picture acknowledgement for $hdr_SessionID"); + $this->debug_message("*** p2p: Invite ACK message:\n".$this->dump_binary($message)); + $this->sb_readln($socket); // Read ACK; + $this->debug_message("*** p2p: Invite ACK Hdr:\n".$this->dump_binary($hdr)); + $new_id -= 3; + //Send 200 OK message + $MessageContent="SessionID: ".$MsgBody['SessionID']."\r\n\r\n".pack("C", 0); + $MessagePayload= + "MSNSLP/1.0 200 OK\r\n". + "To: \r\n". + "From: user.">\r\n". + "Via: ".$MsgBody['Via']."\r\n". + "CSeq: ".($MsgBody['CSeq']+1)."\r\n". + "Call-ID: ".$MsgBody['Call-ID']."\r\n". + "Max-Forwards: 0\r\n". + "Content-Type: application/x-msnmsgr-sessionreqbody\r\n". + "Content-Length: ".strlen($MessageContent)."\r\n\r\n". + $MessageContent; + $hdr_TotalDataSizeLow=strlen($MessagePayload); + $hdr_TotalDataSizeHigh=0; + $hdr = pack( + "LLLLLLLLLLLL", $hdr_SessionID, + $new_id, + 0, 0, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh, + strlen($MessagePayload), + 0, + rand(), + 0, + 0, 0 + ); + + $message = + "MIME-Version: 1.0\r\n". + "Content-Type: application/x-msnmsgrp2p\r\n". + "P2P-Dest: $from_email\r\n\r\n$hdr$MessagePayload$footer"; + $this->sb_writeln($socket, $id, "MSG $id D ".strlen($message)); + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: dump 200 ok message:\n".$this->dump_binary($message)); + $this->sb_readln($socket); // Read ACK; + + $this->debug_message("*** p2p: 200 ok:\n".$this->dump_binary($hdr)); + // send data preparation message + // send 4 null bytes as data + $hdr_TotalDataSizeLow = 4; + $hdr_TotalDataSizeHigh = 0 ; + $new_id++; + $hdr = pack( + "LLLLLLLLLLLL", + $MsgBody['SessionID'], + $new_id, + 0, 0, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh, + $hdr_TotalDataSizeLow, + 0, + rand(), + 0, + 0, 0 + ); + $message = + "MIME-Version: 1.0\r\n". + "Content-Type: application/x-msnmsgrp2p\r\n". + "P2P-Dest: $from_email\r\n\r\n$hdr".pack('L', 0)."$footer"; + $this->sb_writeln($socket, $id, "MSG $id D ".strlen($message)); + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: dump send Data preparation message:\n".$this->dump_binary($message)); + $this->debug_message("*** p2p: Data Prepare Hdr:\n".$this->dump_binary($hdr)); + $this->sb_readln($socket); // Read ACK; + + // send Data Content.. + $footer=pack('N',1); + $new_id++; + $FileSize=filesize($PictureFilePath); + if ($hTitle=fopen($PictureFilePath,'rb')) { + $Offset = 0; + //$new_id++; + while (!feof($hTitle)) { + $FileContent = fread($hTitle, 1024); + $FileContentSize = strlen($FileContent); + $hdr = pack( + "LLLLLLLLLLLL", + $MsgBody['SessionID'], + $new_id, + $Offset, 0, + $FileSize, 0, + $FileContentSize, + 0x20, + rand(), + 0, + 0, 0 + ); + $message = + "MIME-Version: 1.0\r\n". + "Content-Type: application/x-msnmsgrp2p\r\n". + "P2P-Dest: $from_email\r\n\r\n$hdr$FileContent$footer"; + $this->sb_writeln($socket, $id, "MSG $id D ".strlen($message)); + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: dump send Data Content message $Offset / $FileSize :\n".$this->dump_binary($message)); + $this->debug_message("*** p2p: Data Content Hdr:\n".$this->dump_binary($hdr)); + //$this->SB_readln($socket);//Read ACK; + $Offset += $FileContentSize; + } + } + //Send Bye + /* + $MessageContent="\r\n".pack("C", 0); + $MessagePayload= + "BYE MSNMSGR:MSNSLP/1.0\r\n". + "To: \r\n". + "From: user.">\r\n". + "Via: MSNSLP/1.0/TLP ;branch={".$BranchGUID."}\r\n". + "CSeq: 0\r\n". + "Call-ID: ".$MsgBody['Call-ID']."\r\n". + "Max-Forwards: 0\r\n". + "Content-Type: application/x-msnmsgr-sessionclosebody\r\n". + "Content-Length: ".strlen($MessageContent)."\r\n\r\n".$MessageContent; + $footer=pack('N',0); + $hdr_TotalDataSizeLow=strlen($MessagePayload); + $hdr_TotalDataSizeHigh=0; + $new_id++; + $hdr = pack("LLLLLLLLLLLL", + 0, + $new_id, + 0, 0, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh, + 0, + 0, + rand(), + 0, + 0,0); + $message = + "MIME-Version: 1.0\r\n". + "Content-Type: application/x-msnmsgrp2p\r\n". + "P2P-Dest: $from_email\r\n\r\n$hdr$MessagePayload$footer"; + $this->sb_writeln($socket, $id, "MSG $id D ".strlen($message)); + $id++; + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: dump send BYE message :\n".$this->dump_binary($message)); + */ + break; + } + //TODO: + //if ($hdr_Flag == 2) { + // just send ACK... + // $this->sb_writeln($socket, $id, "ACK $id"); + // break; + //} + if ($hdr_SessionID == 4) { + // ignore? + $this->debug_message("*** p2p: ignore flag 4"); + break; + } + $finished = false; + if ($hdr_TotalDataSizeHigh == 0) { + // only 32 bites size + if (($hdr_MessageLength + $hdr_DataOffsetLow) == $hdr_TotalDataSizeLow) + $finished = true; + } + else { + // we won't accept any file transfer + // so I think we won't get any message size need to use 64 bits + // 64 bits size here, can't count directly... + $totalsize = base_convert(sprintf("%X%08X", $hdr_TotalDataSizeHigh, $hdr_TotalDataSizeLow), 16, 10); + $dataoffset = base_convert(sprintf("%X%08X", $hdr_DataOffsetHigh, $hdr_DataOffsetLow), 16, 10); + $messagelength = base_convert(sprintf("%X", $hdr_MessageLength), 16, 10); + $now_size = bcadd($dataoffset, $messagelength); + if (bccomp($now_size, $totalsize) >= 0) + $finished = true; + } + if (!$finished) { + // ignore not finished split packet + $this->debug_message("*** p2p: ignore split packet, not finished"); + break; + } + //$new_id = ~$hdr_Identifier; + /* + $new_id++; + $hdr = pack("LLLLLLLLLLLL", $hdr_SessionID, + $new_id, + 0, 0, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh, + 0, + 2, + $hdr_Identifier, + $hdr_AckID, + $hdr_TotalDataSizeLow, $hdr_TotalDataSizeHigh); + $footer = pack("L", 0); + $message = "MIME-Version: 1.0\r\nContent-Type: application/x-msnmsgrp2p\r\nP2P-Dest: $from_email\r\n\r\n$hdr$footer"; + $len = strlen($message); + $this->sb_writeln($socket, $id, "MSG $id D $len"); + $id++; + $this->sb_writedata($socket, $message); + $this->debug_message("*** p2p: send acknowledgement for $hdr_SessionID"); + $this->debug_message("*** p2p: dump sent message:\n".$this->dump_binary($hdr.$footer)); + */ + break; + } + $this->debug_message("*** MSG from $from_email: $sMsg"); + $this->callHandler('IMin', array('sender' => $from_email, 'message' => $sMsg, 'network' => 1, 'offline' => false)); + break; + case '217': + $this->debug_message('*** User '.$session['to'].' is offline. Trying OIM.'); + $session['offline'] = true; + break; + default: + if (is_numeric($code)) { + $this->error = "Error code: $code, please check the detail information from: http://msnpiki.msnfanatic.com/index.php/Reference:Error_List"; + $this->debug_message("*** SB: $this->error"); + } + break; + } + } + + /** + * Checks for new data and calls appropriate methods + * + * This method is usually called in an infinite loop to keep checking for new data + * + * @return void + */ + public function receive() { + // First, get an array of sockets that have data that is ready to be read + $ready = array(); + $ready = $this->getSockets(); + $numrdy = stream_select($ready, $w = NULL, $x = NULL, NULL); + + // Now that we've waited for something, go through the $ready + // array and read appropriately + + foreach ($ready as $socket) { + if ($socket == $this->NSfp) { + $this->nsReceive(); + } else { + $this->sbReceive($socket); + } + } + } + + /** + * Switchboard related methods + */ + + /** + * Send a request for a switchboard session + * + * @param string $to Target email for switchboard session + */ + private function reqSBSession($to) { + $this->debug_message("*** Request SB for $to"); + $this->ns_writeln("XFR $this->id SB"); + + // Add to the queue of those waiting for a switchboard session reponse + $this->switchBoardSessions[$to] = array( + 'to' => $to, + 'socket' => NULL, + 'id' => 1, + 'joined' => false, + 'offline' => false, + 'XFRReqTime' => time() + ); + $this->waitingForXFR[$to] = &$this->switchBoardSessions[$to]; + } + + /** + * Following an XFR or RNG, connect to the switchboard session + * + * @param string $mode Mode, either 'Active' (in the case of XFR) or 'Passive' (in the case of RNG) + * @param string $ip IP of Switchboard + * @param integer $port Port of Switchboard + * @param string $to User on other end of Switchboard + * @param array $param Array of parameters - 'cki', 'ticket', 'sid' + * @return boolean true if successful + */ + private function connectToSBSession($mode, $ip, $port, $to, $param) { + $this->debug_message("*** SB: Trying to connect to switchboard server $ip:$port"); + + $socket = @fsockopen($ip, $port, $errno, $errstr, $this->timeout); + if (!$socket) { + $this->debug_message("*** SB: Can't connect to $ip:$port, error => $errno, $errstr"); + return false; + } + + // Store the socket in the lookup array + $this->switchBoardSessionLookup[$to] = $socket; + + // Store the socket in the sessions array + $this->switchBoardSessions[$to] = array( + 'to' => $to, + 'socket' => $socket, + 'id' => 1, + 'joined' => false, + 'offline' => false, + 'XFRReqTime' => time() + ); + + // Change the index of the session to the socket + $intsocket = (int) $socket; + $this->switchBoardSessions[$intsocket] = $this->switchBoardSessions[$to]; + unset($this->switchBoardSessions[$to]); + + $id = &$this->switchBoardSessions[$intsocket]['id']; + + if ($mode == 'Active') { + $cki_code = $param['cki']; + + // SB: >>> USR {id} {user} {cki} + $this->sb_writeln($socket, $id, "USR $id $this->user $cki_code"); + } else { + // Passive + $ticket = $param['ticket']; + $sid = $param['sid']; + + // SB: >>> ANS {id} {user} {ticket} {session_id} + $this->sb_writeln($socket, $id, "ANS $id $this->user $ticket $sid"); + } + } + + /** + * Called when we want to end a switchboard session + * or a switchboard session ends + * + * @param resource $socket Socket + * @param boolean $killsession Whether to delete the session + * @return void + */ + private function endSBSession($socket) { + if (!self::socketcheck($socket)) { + $this->sb_writeln($socket, $fake = 0, 'OUT'); + } + @fclose($socket); + + // Unset session lookup value + $intsocket = (int) $socket; + unset($this->switchBoardSessionLookup[$this->switchBoardSessions[$intsocket]['to']]); + + // Unset session itself + unset($this->switchBoardSessions[$intsocket]); + } + + /** + * Send a message via an existing SB session + * + * @param string $to Recipient for message + * @param string $message Message + * @return boolean true on success + */ + private function sendMessageViaSB($to, $message) { + $socket = $this->switchBoardSessionLookup[$to]; + if (self::socketcheck($socket)) { + return false; + } + + $id = &$this->switchBoardSessions[(int) $socket]['id']; + + $aMessage = $this->getMessage($message); + // CheckEmotion... + $MsnObjDefine = $this->GetMsnObjDefine($aMessage); + if ($MsnObjDefine !== '') { + $SendString = "MIME-Version: 1.0\r\nContent-Type: text/x-mms-emoticon\r\n\r\n$MsnObjDefine"; + $len = strlen($SendString); + + if ($this->sb_writeln($socket, $id, "MSG $id N $len") === false || + $this->sb_writedata($socket, $SendString) === false) { + $this->endSBSession($socket); + return false; + } + } + $len = strlen($aMessage); + + if ($this->sb_writeln($socket, $id, "MSG $id N $len") === false || + $this->sb_writedata($socket, $aMessage) === false) { + $this->endSBSession($socket); + return false; + } + + // Don't close the SB session, we might as well leave it open + return true; + } + + /** + * Send a message to a user on another network + * + * @param string $to Intended recipient + * @param string $message Message + * @param integer $network Network + * @return void + */ + private function sendOtherNetworkMessage($to, $message, $network) { + $message = $this->getMessage($message, $network); + $len = strlen($message); + if ($this->ns_writeln("UUM $this->id $to $network 1 $len") === false || + $this->ns_writedata($Message) === false) { + return false; + } + $this->debug_message("*** Sent to $to (network: $network):\n$Message"); + return true; + } + + /** + * Send a message + * + * @param string $to To address in form user@host.com(@network) + * where network is 1 for MSN, 32 for Yahoo + * and 'Offline' for offline messages + * @param string $message Message + * @param boolean &$waitForSession Boolean passed by reference, + * if set to true on return, message + * did not fail to send but is + * waiting for a valid session + * + * @return boolean true on success + */ + public function sendMessage($to, $message, &$waitForSession) { + if ($message != '') { + $toParts = explode('@', $to); + if(count($toParts) < 3) { + list($name, $host) = $toParts; + $network = 1; + } else { + list($name, $host, $network) = $toParts; + } + + $recipient = $name.'@'.$host; + + if ($network === 1) { + if (!isset($this->switchBoardSessionLookup[$recipient])) { + if (!isset($this->switchBoardSessions[$recipient]) || time() - $this->switchBoardSessions[$recipient]['XFRReqTime'] > $this->XFRReqTimeout) { + $this->debug_message("*** No existing SB session or request has timed out"); + $this->reqSBSession($recipient); + } + + $waitForSession = true; + return false; + } else { + $socket = $this->switchBoardSessionLookup[$recipient]; + $intsocket = (int) $socket; + if ($this->switchBoardSessions[$intsocket]['offline']) { + $this->debug_message("*** Contact ($recipient) offline, sending OIM"); + $this->endSBSession($socket); + $waitForSession = false; + return $this->sendMessage($recipient.'@Offline', $message); + } else { + if ($this->switchBoardSessions[$intsocket]['joined'] !== true) { + $this->debug_message("*** Recipient has not joined session, returning false"); + $waitForSession = true; + return false; + } + + $this->debug_message("*** Attempting to send message to $recipient using existing SB session"); + + if ($this->sendMessageViaSB($recipient, $message)) { + $this->debug_message('*** Message sent successfully'); + return true; + } + + $waitForSession = false; + return false; + } + } + } elseif ($network == 'Offline') { + //Send OIM + //FIXME: 修正Send OIM + $lockkey = ''; + $re_login = false; + for ($i = 0; $i < $this->oim_try; $i++) { + if (($oim_result = $this->sendOIM($recipient, $message, $lockkey)) === true) break; + if (is_array($oim_result) && $oim_result['challenge'] !== false) { + // need challenge lockkey + $this->debug_message("*** Need challenge code for ".$oim_result['challenge']); + $lockkey = $this->getChallenge($oim_result['challenge']); + continue; + } + if ($oim_result === false || $oim_result['auth_policy'] !== false) { + if ($re_login) { + $this->debug_message("*** Can't send OIM, but we already re-logged-in again, so returning false"); + return false; + } + $this->debug_message("*** Can't send OIM, maybe ticket expired, trying to login again"); + + // Maybe we need to re-login again + if (!$this->get_passport_ticket()) { + $this->debug_message("*** Can't re-login, something went wrong here, returning false"); + return false; + } + $this->debug_message("*** Getting new ticket and trying again"); + continue; + } + } + return true; + } else { + // Other network + return $this->sendOtherNetworkMessage($recipient, $message, $network); + } + } + return true; + } + + /** + * OIM methods + */ + + /** + * Get OIM mail data + * + * @return string mail data or false on failure + */ + function getOIM_maildata() { + preg_match('#t=(.*)&p=(.*)#', $this->ticket['web_ticket'], $matches); + if (count($matches) == 0) { + $this->debug_message('*** No web ticket?'); + return false; + } + $t = htmlspecialchars($matches[1]); + $p = htmlspecialchars($matches[2]); + $XML = ' + + + + '.$t.' +

'.$p.'

+
+
+ + + +
'; + + $header_array = array( + 'SOAPAction: '.self::OIM_MAILDATA_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Messenger '.self::BUILDVER.')' + ); + + $this->debug_message('*** URL: '.self::OIM_MAILDATA_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::OIM_MAILDATA_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) { + $this->debug_message("*** Could not get OIM maildata! http code: $http_code"); + return false; + } + + // See #XML_Data + preg_match('#]*)>(.*)#', $data, $matches); + if (count($matches) == 0) { + $this->debug_message('*** Could not get OIM maildata'); + return false; + } + return $matches[2]; + } + + /** + * Fetch OIM message with given id + * + * @param string $msgid + * @return string Message or false on failure + */ + function getOIM_message($msgid) { + preg_match('#t=(.*)&p=(.*)#', $this->ticket['web_ticket'], $matches); + if (count($matches) == 0) { + $this->debug_message('*** No web ticket?'); + return false; + } + $t = htmlspecialchars($matches[1]); + $p = htmlspecialchars($matches[2]); + + // read OIM + $XML = ' + + + + '.$t.' +

'.$p.'

+
+
+ + + '.$msgid.' + false + + +
'; + + $header_array = array( + 'SOAPAction: '.self::OIM_READ_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Messenger '.self::BUILDVER.')' + ); + + $this->debug_message('*** URL: '.self::OIM_READ_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::OIM_READ_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) { + $this->debug_message("*** Can't get OIM: $msgid, http code = $http_code"); + return false; + } + + // why can't use preg_match('#(.*)#', $data, $matches)? + // multi-lines? + $start = strpos($data, ''); + $end = strpos($data, ''); + if ($start === false || $end === false || $start > $end) { + $this->debug_message("*** Can't get OIM: $msgid"); + return false; + } + $lines = substr($data, $start + 18, $end - $start); + $aLines = @explode("\n", $lines); + $header = true; + $ignore = false; + $sOIM = ''; + foreach ($aLines as $line) { + $line = rtrim($line); + if ($header) { + if ($line === '') { + $header = false; + continue; + } + continue; + } + // stop at empty lines + if ($line === '') break; + $sOIM .= $line; + } + $sMsg = base64_decode($sOIM); + //$this->debug_message("*** we get OIM ($msgid): $sMsg"); + + // delete OIM + $XML = ' + + + + '.$t.' +

'.$p.'

+
+
+ + + + '.$msgid.' + + + +
'; + + $header_array = array( + 'SOAPAction: '.self::OIM_DEL_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Messenger '.self::BUILDVER.')' + ); + + $this->debug_message('*** URL: '.self::OIM_DEL_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::OIM_DEL_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) + $this->debug_message("*** Could not delete OIM: $msgid, http code = $http_code"); + else + $this->debug_message("*** OIM ($msgid) deleted"); + return $sMsg; + } + + /** + * Send offline message + * + * @param string $to Intended recipient + * @param string $sMessage Message + * @param string $lockkey Lock key + * @return mixed true on success or error data + */ + private function sendOIM($to, $sMessage, $lockkey) { + $XML = ' + + + + + + + http://messenger.msn.com + 1 + + + + text + MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: base64 +X-OIM-Message-Type: OfflineMessage +X-OIM-Run-Id: {DAB68CFA-38C9-449B-945E-38AFA51E50A7} +X-OIM-Sequence-Num: 1 + +'.chunk_split(base64_encode($sMessage)).' + + +'; + + $header_array = array( + 'SOAPAction: '.self::OIM_SEND_SOAP, + 'Content-Type: text/xml', + 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Messenger '.self::BUILDVER.')' + ); + + $this->debug_message('*** URL: '.self::OIM_SEND_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::OIM_SEND_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code == 200) { + $this->debug_message("*** OIM sent for $to"); + return true; + } + + $challenge = false; + $auth_policy = false; + // the lockkey is invalid, authenticated fail, we need challenge it again + // 364763969 + preg_match("#(.*)#", $data, $matches); + if (count($matches) != 0) { + // yes, we get new LockKeyChallenge + $challenge = $matches[2]; + $this->debug_message("*** OIM need new challenge ($challenge) for $to"); + } + // auth policy error + // MBI_SSL + preg_match("#(.*)#", $data, $matches); + if (count($matches) != 0) { + $auth_policy = $matches[2]; + $this->debug_message("*** OIM need new auth policy ($auth_policy) for $to"); + } + if ($auth_policy === false && $challenge === false) { + //q0:AuthenticationFailed + preg_match("#(.*)#", $data, $matches); + if (count($matches) == 0) { + // no error, we assume the OIM is sent + $this->debug_message("*** OIM sent for $to"); + return true; + } + $err_code = $matches[2]; + //Exception of type 'System.Web.Services.Protocols.SoapException' was thrown. + preg_match("#(.*)#", $data, $matches); + if (count($matches) > 0) + $err_msg = $matches[1]; + else + $err_msg = ''; + $this->debug_message("*** OIM failed for $to"); + $this->debug_message("*** OIM Error code: $err_code"); + $this->debug_message("*** OIM Error Message: $err_msg"); + return false; + } + return array('challenge' => $challenge, 'auth_policy' => $auth_policy); + } + + /** + * Contact / Membership list methods + */ + + /** + * Fetch contact list + * + * @return boolean true on success + */ + private function UpdateContacts() { + $ABApplicationHeaderArray = array( + 'ABApplicationHeader' => array( + ':' => array('xmlns' => 'http://www.msn.com/webservices/AddressBook'), + 'ApplicationId' => 'CFE80F9D-180F-4399-82AB-413F33A1FA11', + 'IsMigration' => false, + 'PartnerScenario' => 'ContactSave' + ) + ); + + $ABApplicationHeader = new SoapHeader('http://www.msn.com/webservices/AddressBook', 'ABApplicationHeader', $this->Array2SoapVar($ABApplicationHeaderArray)); + $ABFindAllArray = array( + 'ABFindAll' => array( + ':' => array('xmlns'=>'http://www.msn.com/webservices/AddressBook'), + 'abId' => '00000000-0000-0000-0000-000000000000', + 'abView' => 'Full', + 'lastChange' => '0001-01-01T00:00:00.0000000-08:00', + ) + ); + $ABFindAll = new SoapParam($this->Array2SoapVar($ABFindAllArray), 'ABFindAll'); + $this->ABService->__setSoapHeaders(array($ABApplicationHeader, $this->ABAuthHeader)); + $this->Contacts = array(); + try { + $this->debug_message('*** Updating Contacts...'); + $Result = $this->ABService->ABFindAll($ABFindAll); + $this->debug_message("*** Result:\n".print_r($Result, true)."\n".$this->ABService->__getLastResponse()); + foreach($Result->ABFindAllResult->contacts->Contact as $Contact) + $this->Contacts[$Contact->contactInfo->passportName] = $Contact; + } catch(Exception $e) { + $this->debug_message("*** Update Contacts Error \nRequest:".$this->ABService->__getLastRequest()."\nError:".$e->getMessage()); + return false; + } + return true; + } + + /** + * Add contact + * + * @param string $email + * @param integer $network + * @param string $display + * @param boolean $sendADL + * @return boolean true on success + */ + private function addContact($email, $network, $display = '', $sendADL = false) { + if ($network != 1) return true; + if (isset($this->Contacts[$email])) return true; + + $ABContactAddArray = array( + 'ABContactAdd' => array( + ':' => array('xmlns' => 'http://www.msn.com/webservices/AddressBook'), + 'abId' => '00000000-0000-0000-0000-000000000000', + 'contacts' => array( + 'Contact' => array( + ':' => array('xmlns' => 'http://www.msn.com/webservices/AddressBook'), + 'contactInfo' => array( + 'contactType' => 'LivePending', + 'passportName' => $email, + 'isMessengerUser' => true, + 'MessengerMemberInfo' => array( + 'DisplayName' => $email + ) + ) + ) + ), + 'options' => array( + 'EnableAllowListManagement' => true + ) + ) + ); + $ABContactAdd = new SoapParam($this->Array2SoapVar($ABContactAddArray), 'ABContactAdd'); + try { + $this->debug_message("*** Adding Contact $email..."); + $this->ABService->ABContactAdd($ABContactAdd); + } catch(Exception $e) { + $this->debug_message("*** Add Contact Error \nRequest:".$this->ABService->__getLastRequest()."\nError:".$e->getMessage()); + return false; + } + if ($sendADL && !feof($this->NSfp)) { + @list($u_name, $u_domain) = @explode('@', $email); + foreach (array('1', '2') as $l) { + $str = ''; + $len = strlen($str); + // NS: >>> ADL {id} {size} + $this->ns_writeln("ADL $this->id $len"); + $this->ns_writedata($str); + } + } + $this->UpdateContacts(); + return true; + } + + /** + * Remove contact from list + * + * @param integer $memberID + * @param string $email + * @param integer $network + * @param string $list + */ + function delMemberFromList($memberID, $email, $network, $list) { + if ($network != 1 && $network != 32) return true; + if ($memberID === false) return true; + $user = $email; + $ticket = htmlspecialchars($this->ticket['contact_ticket']); + if ($network == 1) + $XML = ' + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + ContactMsgrAPI + + + false + '.$ticket.' + + + + + + 0 + Messenger + + + + + '.$list.' + + + Passport + '.$memberID.' + Accepted + + + + + + +'; + else + $XML = ' + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + ContactMsgrAPI + + + false + '.$ticket.' + + + + + + 0 + Messenger + + + + + '.$list.' + + + Email + '.$memberID.' + Accepted + + + + + + +'; + + $header_array = array( + 'SOAPAction: '.self::DELMEMBER_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: MSN Explorer/9.0 (MSN 8.0; TmstmpExt)' + ); + + $this->debug_message('*** URL: '.self::DELMEMBER_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::DELMEMBER_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) { + preg_match('#(.*)(.*)#', $data, $matches); + if (count($matches) == 0) { + $this->debug_message("*** Could not delete member (network: $network) $email ($memberID) from $list list"); + return false; + } + $faultcode = trim($matches[1]); + $faultstring = trim($matches[2]); + if (strcasecmp($faultcode, 'soap:Client') || stripos($faultstring, 'Member does not exist') === false) { + $this->debug_message("*** Could not delete member (network: $network) $email ($memberID) from $list list, error code: $faultcode, $faultstring"); + return false; + } + $this->debug_message("*** Could not delete member (network: $network) $email ($memberID) from $list list, not present in list"); + return true; + } + $this->debug_message("*** Member successfully deleted (network: $network) $email ($memberID) from $list list"); + return true; + } + + /** + * Add contact to list + * + * @param string $email + * @param integer $network + * @param string $list + */ + function addMemberToList($email, $network, $list) { + if ($network != 1 && $network != 32) return true; + $ticket = htmlspecialchars($this->ticket['contact_ticket']); + $user = $email; + + if ($network == 1) + $XML = ' + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + ContactMsgrAPI + + + false + '.$ticket.' + + + + + + 0 + Messenger + + + + + '.$list.' + + + Passport + Accepted + '.$user.' + + + + + + +'; + else + $XML = ' + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + ContactMsgrAPI + + + false + '.$ticket.' + + + + + + 0 + Messenger + + + + + '.$list.' + + + Email + Accepted + '.$user.' + + + MSN.IM.BuddyType + 32:YAHOO + + + + + + + + +'; + $header_array = array( + 'SOAPAction: '.self::ADDMEMBER_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: MSN Explorer/9.0 (MSN 8.0; TmstmpExt)' + ); + + $this->debug_message('*** URL: '.self::ADDMEMBER_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::ADDMEMBER_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) { + preg_match('#(.*)(.*)#', $data, $matches); + if (count($matches) == 0) { + $this->debug_message("*** Could not add member (network: $network) $email to $list list"); + return false; + } + $faultcode = trim($matches[1]); + $faultstring = trim($matches[2]); + if (strcasecmp($faultcode, 'soap:Client') || stripos($faultstring, 'Member already exists') === false) { + $this->debug_message("*** Could not add member (network: $network) $email to $list list, error code: $faultcode, $faultstring"); + return false; + } + $this->debug_message("*** Could not add member (network: $network) $email to $list list, already present"); + return true; + } + $this->debug_message("*** Member successfully added (network: $network) $email to $list list"); + return true; + } + + /** + * Get membership lists + * + * @param mixed $returnData Membership list or false on failure + */ + function getMembershipList($returnData = false) { + $ticket = htmlspecialchars($this->ticket['contact_ticket']); + $XML = ' + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Initial + + + false + '.$ticket.' + + + + + + + Messenger + Invitation + SocialNetwork + Space + Profile + + + + +'; + $header_array = array( + 'SOAPAction: '.self::MEMBERSHIP_SOAP, + 'Content-Type: text/xml; charset=utf-8', + 'User-Agent: MSN Explorer/9.0 (MSN 8.0; TmstmpExt)' + ); + $this->debug_message('*** URL: '.self::MEMBERSHIP_URL); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, self::MEMBERSHIP_URL); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header_array); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) return false; + $p = $data; + $aMemberships = array(); + while (1) { + //$this->debug_message("search p = $p"); + $start = strpos($p, ''); + $end = strpos($p, ''); + if ($start === false || $end === false || $start > $end) break; + //$this->debug_message("start = $start, end = $end"); + $end += 13; + $sMembership = substr($p, $start, $end - $start); + $aMemberships[] = $sMembership; + //$this->debug_message("add sMembership = $sMembership"); + $p = substr($p, $end); + } + //$this->debug_message("aMemberships = ".var_export($aMemberships, true)); + + $aContactList = array(); + foreach ($aMemberships as $sMembership) { + //$this->debug_message("sMembership = $sMembership"); + if (isset($matches)) unset($matches); + preg_match('#(.*)#', $sMembership, $matches); + if (count($matches) == 0) continue; + $sMemberRole = $matches[1]; + //$this->debug_message("MemberRole = $sMemberRole"); + if ($sMemberRole != 'Allow' && $sMemberRole != 'Reverse' && $sMemberRole != 'Pending') continue; + $p = $sMembership; + if (isset($aMembers)) unset($aMembers); + $aMembers = array(); + while (1) { + //$this->debug_message("search p = $p"); + $start = strpos($p, 'debug_message("add sMember = $sMember"); + $p = substr($p, $end); + } + //$this->debug_message("aMembers = ".var_export($aMembers, true)); + foreach ($aMembers as $sMember) { + //$this->debug_message("sMember = $sMember"); + if (isset($matches)) unset($matches); + preg_match('##', $sMember, $matches); + if (count($matches) == 0) continue; + $sMemberType = $matches[1]; + //$this->debug_message("MemberType = $sMemberType"); + $network = -1; + preg_match('#(.*)#', $sMember, $matches); + if (count($matches) == 0) continue; + $id = $matches[1]; + if ($sMemberType == 'PassportMember') { + if (strpos($sMember, 'Passport') === false) continue; + $network = 1; + preg_match('#(.*)#', $sMember, $matches); + } + else if ($sMemberType == 'EmailMember') { + if (strpos($sMember, 'Email') === false) continue; + // Value is 32: or 32:YAHOO + preg_match('#MSN.IM.BuddyType(.*):(.*)#', $sMember, $matches); + if (count($matches) == 0) continue; + if ($matches[1] != 32) continue; + $network = 32; + preg_match('#(.*)#', $sMember, $matches); + } + if ($network == -1) continue; + if (count($matches) > 0) { + $email = $matches[1]; + @list($u_name, $u_domain) = @explode('@', $email); + if ($u_domain == NULL) continue; + $aContactList[$u_domain][$u_name][$network][$sMemberRole] = $id; + $this->debug_message("*** Adding new contact (network: $network, status: $sMemberRole): $u_name@$u_domain ($id)"); + } + } + } + return $aContactList; + } + + /** + * MsnObj related methods + */ + + /** + * + * @param $FilePath 圖檔路徑 + * @param $Type 檔案類型 3=>大頭貼,2表情圖案 + * @return array + */ + private function MsnObj($FilePath, $Type = 3) { + if (!($FileSize=filesize($FilePath))) return ''; + $Location = md5($FilePath); + $Friendly = md5($FilePath.$Type); + if (isset($this->MsnObjMap[$Location])) return $this->MsnObjMap[$Location]; + $sha1d = base64_encode(sha1(file_get_contents($FilePath), true)); + $sha1c = base64_encode(sha1("Creator".$this->user."Size$FileSize"."Type$Type"."Location$Location"."Friendly".$Friendly."SHA1D$sha1d", true)); + $this->MsnObjArray[$Location] = $FilePath; + $MsnObj = ''; + $this->MsnObjMap[$Location] = $MsnObj; + $this->debug_message("*** p2p: addMsnObj $FilePath::$MsnObj\n"); + return $MsnObj; + } + + private function GetPictureFilePath($Context) { + $MsnObj = base64_decode($Context); + if (preg_match('/location="(.*?)"/i', $MsnObj, $Match)) + $location = $Match[1]; + $this->debug_message("*** p2p: PictureFile[$location] ::All".print_r($this->MsnObjArray,true)."\n"); + if ($location && isset($this->MsnObjArray[$location])) + return $this->MsnObjArray[$location]; + return false; + } + + private function GetMsnObjDefine($Message) { + $DefineString = ''; + if (is_array($this->Emotions)) + foreach ($this->Emotions as $Pattern => $FilePath) { + if (strpos($Message, $Pattern) !== false) + $DefineString .= "$Pattern\t".$this->MsnObj($FilePath, 2)."\t"; + } + return $DefineString; + } + + /** + * Socket methods + */ + + /** + * Read data of specified size from NS socket + * + * @param integer $size Size to read + * @return string Data read + */ + private function ns_readdata($size) { + $data = ''; + $count = 0; + while (!feof($this->NSfp)) { + $buf = @fread($this->NSfp, $size - $count); + $data .= $buf; + $count += strlen($buf); + if ($count >= $size) break; + } + $this->debug_message("NS: data ($size/$count) <<<\n$data"); + return $data; + } + + /** + * Read line from the NS socket + * + * @return string Data read + */ + private function ns_readln() { + $data = @fgets($this->NSfp, 4096); + if ($data !== false) { + $data = trim($data); + $this->debug_message("NS: <<< $data"); + } + return $data; + } + + /** + * Write line to NS socket + * + * Also increments id + * + * @param string $data Line to write to socket + * @return mixed Bytes written or false on failure + */ + private function ns_writeln($data) { + $result = @fwrite($this->NSfp, $data."\r\n"); + if ($result !== false) { + $this->debug_message("NS: >>> $data"); + $this->id++; + } + return $result; + } + + /** + * Write data to NS socket + * + * @param string $data Data to write to socket + * @return mixed Bytes written or false on failure + */ + private function ns_writedata($data) { + $result = @fwrite($this->NSfp, $data); + if ($result !== false) { + $this->debug_message("NS: >>> $data"); + } + return $result; + } + + /** + * Read data of specified size from given SB socket + * + * @param resource $socket SB socket + * @param integer $size Size to read + * @return string Data read + */ + private function sb_readdata($socket, $size) { + $data = ''; + $count = 0; + while (!feof($socket)) { + $buf = @fread($socket, $size - $count); + $data .= $buf; + $count += strlen($buf); + if ($count >= $size) break; + } + $this->debug_message("SB: data ($size/$count) <<<\n$data"); + return $data; + } + + /** + * Read line from given SB socket + * + * @param resource $socket SB Socket + * @return string Line read + */ + private function sb_readln($socket) { + $data = @fgets($socket, 4096); + if ($data !== false) { + $data = trim($data); + $this->debug_message("SB: <<< $data"); + } + return $data; + } + + /** + * Write line to given SB socket + * + * Also increments id + * + * @param resource $socket SB socket + * @param integer $id Reference to SB id + * @param string $data Line to write + * @return mixed Bytes written or false on error + */ + private function sb_writeln($socket, &$id, $data) { + $result = @fwrite($socket, $data."\r\n"); + if ($result !== false) { + $this->debug_message("SB: >>> $data"); + $id++; + } + return $result; + } + + /** + * Write data to given SB socket + * + * @param resource $socket SB socket + * @param $data Data to write to socket + * @return mixed Bytes written or false on error + */ + private function sb_writedata($socket, $data) { + $result = @fwrite($socket, $data); + if ($result !== false) { + $this->debug_message("SB: >>> $data"); + } + return $result; + } + + /** + * Get all the sockets currently in use + * + * @return array Array of socket resources + */ + public function getSockets() { + return array_merge(array($this->NSfp), $this->switchBoardSessionLookup); + } + + /** + * Checks socket for end of file + * + * @param resource $socket Socket to check + * @return boolean true if end of file (socket) + */ + private static function socketcheck($socket){ + $info = stream_get_meta_data($socket); + return $info['eof']; + } + + /** + * Key generation methods + */ + + private function derive_key($key, $magic) { + $hash1 = $this->mhash_sha1($magic, $key); + $hash2 = $this->mhash_sha1($hash1.$magic, $key); + $hash3 = $this->mhash_sha1($hash1, $key); + $hash4 = $this->mhash_sha1($hash3.$magic, $key); + return $hash2.substr($hash4, 0, 4); + } + + private function generateLoginBLOB($key, $challenge) { + $key1 = base64_decode($key); + $key2 = $this->derive_key($key1, 'WS-SecureConversationSESSION KEY HASH'); + $key3 = $this->derive_key($key1, 'WS-SecureConversationSESSION KEY ENCRYPTION'); + + // get hash of challenge using key2 + $hash = $this->mhash_sha1($challenge, $key2); + + // get 8 bytes random data + $iv = substr(base64_encode(rand(1000,9999).rand(1000,9999)), 2, 8); + + $cipher = mcrypt_cbc(MCRYPT_3DES, $key3, $challenge."\x08\x08\x08\x08\x08\x08\x08\x08", MCRYPT_ENCRYPT, $iv); + + $blob = pack('LLLLLLL', 28, 1, 0x6603, 0x8004, 8, 20, 72); + $blob .= $iv; + $blob .= $hash; + $blob .= $cipher; + + return base64_encode($blob); + } + + /** + * Generate challenge response + * + * @param string $code + * @return string challenge response code + */ + private function getChallenge($code) { + // MSNP15 + // http://msnpiki.msnfanatic.com/index.php/MSNP11:Challenges + // Step 1: The MD5 Hash + $md5Hash = md5($code.self::PROD_KEY); + $aMD5 = @explode("\0", chunk_split($md5Hash, 8, "\0")); + for ($i = 0; $i < 4; $i++) { + $aMD5[$i] = implode('', array_reverse(@explode("\0", chunk_split($aMD5[$i], 2, "\0")))); + $aMD5[$i] = (0 + base_convert($aMD5[$i], 16, 10)) & 0x7FFFFFFF; + } + + // Step 2: A new string + $chl_id = $code.self::PROD_ID; + $chl_id .= str_repeat('0', 8 - (strlen($chl_id) % 8)); + + $aID = @explode("\0", substr(chunk_split($chl_id, 4, "\0"), 0, -1)); + for ($i = 0; $i < count($aID); $i++) { + $aID[$i] = implode('', array_reverse(@explode("\0", chunk_split($aID[$i], 1, "\0")))); + $aID[$i] = 0 + base_convert(bin2hex($aID[$i]), 16, 10); + } + + // Step 3: The 64 bit key + $magic_num = 0x0E79A9C1; + $str7f = 0x7FFFFFFF; + $high = 0; + $low = 0; + for ($i = 0; $i < count($aID); $i += 2) { + $temp = $aID[$i]; + $temp = bcmod(bcmul($magic_num, $temp), $str7f); + $temp = bcadd($temp, $high); + $temp = bcadd(bcmul($aMD5[0], $temp), $aMD5[1]); + $temp = bcmod($temp, $str7f); + + $high = $aID[$i+1]; + $high = bcmod(bcadd($high, $temp), $str7f); + $high = bcadd(bcmul($aMD5[2], $high), $aMD5[3]); + $high = bcmod($high, $str7f); + + $low = bcadd(bcadd($low, $high), $temp); + } + + $high = bcmod(bcadd($high, $aMD5[1]), $str7f); + $low = bcmod(bcadd($low, $aMD5[3]), $str7f); + + $new_high = bcmul($high & 0xFF, 0x1000000); + $new_high = bcadd($new_high, bcmul($high & 0xFF00, 0x100)); + $new_high = bcadd($new_high, bcdiv($high & 0xFF0000, 0x100)); + $new_high = bcadd($new_high, bcdiv($high & 0xFF000000, 0x1000000)); + // we need integer here + $high = 0+$new_high; + + $new_low = bcmul($low & 0xFF, 0x1000000); + $new_low = bcadd($new_low, bcmul($low & 0xFF00, 0x100)); + $new_low = bcadd($new_low, bcdiv($low & 0xFF0000, 0x100)); + $new_low = bcadd($new_low, bcdiv($low & 0xFF000000, 0x1000000)); + // we need integer here + $low = 0+$new_low; + + // we just use 32 bits integer, don't need the key, just high/low + // $key = bcadd(bcmul($high, 0x100000000), $low); + + // Step 4: Using the key + $md5Hash = md5($code.self::PROD_KEY); + $aHash = @explode("\0", chunk_split($md5Hash, 8, "\0")); + + $hash = ''; + $hash .= sprintf("%08x", (0 + base_convert($aHash[0], 16, 10)) ^ $high); + $hash .= sprintf("%08x", (0 + base_convert($aHash[1], 16, 10)) ^ $low); + $hash .= sprintf("%08x", (0 + base_convert($aHash[2], 16, 10)) ^ $high); + $hash .= sprintf("%08x", (0 + base_convert($aHash[3], 16, 10)) ^ $low); + + return $hash; + } + + /** + * Utility methods + */ + + private function Array2SoapVar($Array, $ReturnSoapVarObj = true, $TypeName = null, $TypeNameSpace = null) { + $ArrayString = ''; + foreach($Array as $Key => $Val) { + if ($Key{0} == ':') continue; + $Attrib = ''; + if (is_array($Val[':'])) { + foreach ($Val[':'] as $AttribName => $AttribVal) + $Attrib .= " $AttribName = '$AttribVal'"; + } + if ($Key{0} == '!') { + //List Type Define + $Key = substr($Key,1); + foreach ($Val as $ListKey => $ListVal) { + if ($ListKey{0} == ':') continue; + if (is_array($ListVal)) $ListVal = $this->Array2SoapVar($ListVal, false); + elseif (is_bool($ListVal)) $ListVal = $ListVal ? 'true' : 'false'; + $ArrayString .= "<$Key$Attrib>$ListVal"; + } + continue; + } + if (is_array($Val)) $Val = $this->Array2SoapVar($Val, false); + elseif (is_bool($Val)) $Val = $Val ? 'true' : 'false'; + $ArrayString .= "<$Key$Attrib>$Val"; + } + if ($ReturnSoapVarObj) return new SoapVar($ArrayString, XSD_ANYXML, $TypeName, $TypeNameSpace); + return $ArrayString; + } + + private function linetoArray($lines) { + $lines = str_replace("\r", '', $lines); + $lines = explode("\n", $lines); + foreach ($lines as $line) { + if (!isset($line{3})) continue; + list($Key, $Val) = explode(':', $line); + $Data[trim($Key)] = trim($Val); + } + return $Data; + } + + /** + * Get Passport ticket + * + * @param string $url URL string (Optional) + * @return mixed Array of tickets or false on failure + */ + private function get_passport_ticket($url = '') { + $user = $this->user; + $password = htmlspecialchars($this->password); + + if ($url === '') + $passport_url = self::PASSPORT_URL; + else + $passport_url = $url; + + $XML = ' + +
+ + {7108E71A-9926-4FCB-BCC9-9A9D3F32E423} + 4 + 1 + + AQAAAAIAAABsYwQAAAAxMDMz + + + + '.$user.' + '.$password.' + + +
+ + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + http://Passport.NET/tb + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + messengerclear.live.com + + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + messenger.msn.com + + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + contacts.msn.com + + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + messengersecure.live.com + + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + spaces.live.com + + + + + + http://schemas.xmlsoap.org/ws/2004/04/security/trust/Issue + + + storage.msn.com + + + + + + +
'; + + $this->debug_message("*** URL: $passport_url"); + $this->debug_message("*** Sending SOAP:\n$XML"); + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $passport_url); + if ($this->debug) curl_setopt($curl, CURLOPT_HEADER, 1); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($curl, CURLOPT_POST, 1); + curl_setopt($curl, CURLOPT_POSTFIELDS, $XML); + $data = curl_exec($curl); + $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + curl_close($curl); + $this->debug_message("*** Get Result:\n$data"); + + if ($http_code != 200) { + // sometimes, redirect to another URL + // MSNP15 + //psf:Redirect + //https://msnia.login.live.com/pp450/RST.srf + //Authentication Failure + if (strpos($data, 'psf:Redirect') === false) { + $this->debug_message("*** Could not get passport ticket! http code = $http_code"); + return false; + } + preg_match("#(.*)#", $data, $matches); + if (count($matches) == 0) { + $this->debug_message('*** Redirected, but could not get redirect URL!'); + return false; + } + $redirect_url = $matches[1]; + if ($redirect_url == $passport_url) { + $this->debug_message('*** Redirected, but to same URL!'); + return false; + } + $this->debug_message("*** Redirected to $redirect_url"); + return $this->get_passport_ticket($redirect_url); + } + + // sometimes, redirect to another URL, also return 200 + // MSNP15 + //psf:Redirect + //https://msnia.login.live.com/pp450/RST.srf + //Authentication Failure + if (strpos($data, 'psf:Redirect') !== false) { + preg_match("#(.*)#", $data, $matches); + if (count($matches) != 0) { + $redirect_url = $matches[1]; + if ($redirect_url == $passport_url) { + $this->debug_message('*** Redirected, but to same URL!'); + return false; + } + $this->debug_message("*** Redirected to $redirect_url"); + return $this->get_passport_ticket($redirect_url); + } + } + + // no Redurect faultcode or URL + // we should get the ticket here + + // we need ticket and secret code + // RST1: messengerclear.live.com + // t=tick&p= + // binary secret + // RST2: messenger.msn.com + // t=tick + // RST3: contacts.msn.com + // t=tick&p= + // RST4: messengersecure.live.com + // t=tick&p= + // RST5: spaces.live.com + // t=tick&p= + // RST6: storage.msn.com + // t=tick&p= + preg_match("#". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "#", + $data, $matches); + + // no ticket found! + if (count($matches) == 0) { + $this->debug_message('*** Could not get passport ticket!'); + return false; + } + + //$this->debug_message(var_export($matches, true)); + // matches[0]: all data + // matches[1]: RST1 (messengerclear.live.com) ticket + // matches[2]: ... + // matches[3]: RST1 (messengerclear.live.com) binary secret + // matches[4]: ... + // matches[5]: RST2 (messenger.msn.com) ticket + // matches[6]: ... + // matches[7]: RST3 (contacts.msn.com) ticket + // matches[8]: ... + // matches[9]: RST4 (messengersecure.live.com) ticket + // matches[10]: ... + // matches[11]: RST5 (spaces.live.com) ticket + // matches[12]: ... + // matches[13]: RST6 (storage.live.com) ticket + // matches[14]: ... + + // so + // ticket => $matches[1] + // secret => $matches[3] + // web_ticket => $matches[5] + // contact_ticket => $matches[7] + // oim_ticket => $matches[9] + // space_ticket => $matches[11] + // storage_ticket => $matches[13] + + // yes, we get ticket + $aTickets = array( + 'ticket' => html_entity_decode($matches[1]), + 'secret' => html_entity_decode($matches[3]), + 'web_ticket' => html_entity_decode($matches[5]), + 'contact_ticket' => html_entity_decode($matches[7]), + 'oim_ticket' => html_entity_decode($matches[9]), + 'space_ticket' => html_entity_decode($matches[11]), + 'storage_ticket' => html_entity_decode($matches[13]) + ); + $this->ticket = $aTickets; + //$this->debug_message(var_export($aTickets, true)); + $ABAuthHeaderArray = array( + 'ABAuthHeader' => array( + ':' => array('xmlns' => 'http://www.msn.com/webservices/AddressBook'), + 'ManagedGroupRequest' => false, + 'TicketToken' => htmlspecialchars($this->ticket['contact_ticket']), + ) + ); + $this->ABAuthHeader = new SoapHeader('http://www.msn.com/webservices/AddressBook', 'ABAuthHeader', $this->Array2SoapVar($ABAuthHeaderArray)); + return $aTickets; + } + + /** + * Generate the data to send a message + * + * @param string $sMessage Message + * @param integer $network Network + * @return string Message data + */ + private function getMessage($sMessage, $network = 1) { + $msg_header = "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nX-MMS-IM-Format: FN=$this->font_fn; EF=$this->font_ef; CO=$this->font_co; CS=0; PF=22\r\n\r\n"; + $msg_header_len = strlen($msg_header); + if ($network == 1) + $maxlen = self::MAX_MSN_MESSAGE_LEN - $msg_header_len; + else + $maxlen = self::MAX_YAHOO_MESSAGE_LEN - $msg_header_len; + $sMessage = str_replace("\r", '', $sMessage); + $msg = substr($sMessage, 0, $maxlen); + return $msg_header.$msg; + } + + /** + * Sleep for the given number of seconds + * + * @param integer $wait Number of seconds to sleep for + */ + private function NSRetryWait($wait) { + $this->debug_message("*** Sleeping for $wait seconds before retrying"); + sleep($wait); + } + + /** + * Sends a ping command + * + * Should be called about every 50 seconds + * + * @return void + */ + public function sendPing() { + // NS: >>> PNG + $this->ns_writeln("PNG"); + } + + /** + * Methods to add / call callbacks + */ + + /** + * Calls User Handler + * + * Calls registered handler for a specific event. + * + * @param string $event Command (event) name (Rvous etc) + * @param array $data Data + * @see registerHandler + * @return void + */ + private function callHandler($event, $data = NULL) { + if (isset($this->myEventHandlers[$event])) { + if ($data !== NULL) { + call_user_func($this->myEventHandlers[$event], $data); + } else { + call_user_func($this->myEventHandlers[$event]); + } + } + } + + /** + * Registers a user handler + * + * Handler List + * IMIn, SessionReady, Pong, ConnectFailed, Reconnect, + * AddedToList, RemovedFromList, StatusChange + * + * @param string $event Event name + * @param string $handler User function to call + * @see callHandler + * @return boolean true if successful + */ + public function registerHandler($event, $handler) { + if (is_callable($handler)) { + $this->myEventHandlers[$event] = $handler; + return true; + } else { + return false; + } + } + + /** + * Debugging methods + */ + + /** + * Print message if debugging is enabled + * + * @param string $str Message to print + */ + private function debug_message($str) { + if (!$this->debug) return; + echo $str."\n"; + } + + /** + * Dump binary data + * + * @param string $str Data string + * @return Binary data + */ + private function dump_binary($str) { + $buf = ''; + $a_str = ''; + $h_str = ''; + $len = strlen($str); + for ($i = 0; $i < $len; $i++) { + if (($i % 16) == 0) { + if ($buf !== '') { + $buf .= "$h_str $a_str\n"; + } + $buf .= sprintf("%04X:", $i); + $a_str = ''; + $h_str = ''; + } + $ch = ord($str[$i]); + if ($ch < 32) + $a_str .= '.'; + else + $a_str .= chr($ch); + $h_str .= sprintf(" %02X", $ch); + } + if ($h_str !== '') + $buf .= "$h_str $a_str\n"; + return $buf; + } + + function mhash_sha1($data, $key) + { + if (extension_loaded("mhash")) + return mhash(MHASH_SHA1, $data, $key); + + if (function_exists("hash_hmac")) + return hash_hmac('sha1', $data, $key, true); + + // RFC 2104 HMAC implementation for php. Hacked by Lance Rushing + $b = 64; + if (strlen($key) > $b) + $key = pack("H*", sha1($key)); + $key = str_pad($key, $b, chr(0x00)); + $ipad = str_pad("", $b, chr(0x36)); + $opad = str_pad("", $b, chr(0x5c)); + $k_ipad = $key ^ $ipad ; + $k_opad = $key ^ $opad; + + $sha1_value = sha1($k_opad . pack("H*", sha1($k_ipad . $data))); + + $hash_data = ''; + $str = join('',explode('\x', $sha1_value)); + $len = strlen($str); + for ($i = 0; $i < $len; $i += 2) + $hash_data .= chr(hexdec(substr($str, $i, 2))); + return $hash_data; + } +} diff --git a/plugins/Msn/extlib/phpmsnclass/msnbot.php b/plugins/Msn/extlib/phpmsnclass/msnbot.php new file mode 100755 index 0000000000..7a9f66ca2e --- /dev/null +++ b/plugins/Msn/extlib/phpmsnclass/msnbot.php @@ -0,0 +1,63 @@ +#!/usr/bin/php +End(); + return; + } +} + +// network: +// 1: WLM/MSN +// 2: LCS +// 4: Mobile Phones +// 32: Yahoo! +function getNetworkName($network) +{ + switch ($network) + { + case 1: + return 'WLM/MSN'; + case 2: + return 'LCS'; + case 4: + return 'Mobile Phones'; + case 32: + return 'Yahoo!'; + } + return "Unknown ($network)"; +} + + +require_once('config.php'); +include_once('msn.class.php'); + +$msn = new MSN(array( + 'user' => 'xxx@hotmail.com', + 'password' => 'mypassword', + 'alias' => 'myalias', + 'psm' => 'psm', +// 'PhotoSticker' => 'msntitle.jpg', + 'debug'=> true, +/* 'Emotions' => array( + 'aaa' => 'emotion.gif' + ),*/ +)); + +$fp=fopen(MSN_CLASS_LOG_DIR.DIRECTORY_SEPARATOR.'msnbot.pid', 'wt'); +if($fp) +{ + fputs($fp,posix_getpid()); + fclose($fp); +} +declare(ticks = 1); +$msn->Run(); +$msn->log_message("done!"); +@unlink(dirname($_SERVER['argv'][0]).DIRECTORY_SEPARATOR.'log'.DIRECTORY_SEPARATOR.'msnbot.pid'); diff --git a/plugins/Msn/extlib/phpmsnclass/soap/msnab_datatypes.xsd b/plugins/Msn/extlib/phpmsnclass/soap/msnab_datatypes.xsd new file mode 100644 index 0000000000..46fc23f911 --- /dev/null +++ b/plugins/Msn/extlib/phpmsnclass/soap/msnab_datatypes.xsd @@ -0,0 +1,832 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A space (ASCII #32) separated list of properties that + have changed as part of an update request. The property + names don't always match the name of the associated + element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates whether the contact has a Windows Live + Space or not. + + + + + + + + + + + + + Seen is YYYY/MM/DD format. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A space (ASCII #32) separated list of properties that + have changed as part of an update request. The property + names don't always match the name of the associated + element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/Msn/extlib/phpmsnclass/soap/msnab_servicetypes.xsd b/plugins/Msn/extlib/phpmsnclass/soap/msnab_servicetypes.xsd new file mode 100644 index 0000000000..3fa9798b62 --- /dev/null +++ b/plugins/Msn/extlib/phpmsnclass/soap/msnab_servicetypes.xsd @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/Msn/extlib/phpmsnclass/soap/msnab_sharingservice.wsdl b/plugins/Msn/extlib/phpmsnclass/soap/msnab_sharingservice.wsdl new file mode 100644 index 0000000000..7ec87f90c9 --- /dev/null +++ b/plugins/Msn/extlib/phpmsnclass/soap/msnab_sharingservice.wsdl @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/Msn/msn_waiting_message.php b/plugins/Msn/msn_waiting_message.php new file mode 100644 index 0000000000..0af7c4f3ec --- /dev/null +++ b/plugins/Msn/msn_waiting_message.php @@ -0,0 +1,132 @@ + DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'screenname' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'message' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_TIME + DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'claimed' => DB_DATAOBJECT_TIME + DB_DATAOBJECT_STR); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + public function keys() { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + public function keyTypes() { + return array('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); + } + + /** + * @param string $screenname screenname or array of screennames to pull from + * If not specified, checks all queues in the system. + */ + public static function top($screenname = null) { + $wm = new Msn_waiting_message(); + if ($screenname) { + if (is_array($screenname)) { + // @fixme use safer escaping + $list = implode("','", array_map('addslashes', $screenname)); + $wm->whereAdd("screenname in ('$list')"); + } else { + $wm->screenname = $screenname; + } + } + $wm->orderBy('created'); + $wm->whereAdd('claimed is null'); + + $wm->limit(1); + + $cnt = $wm->find(true); + + if ($cnt) { + # XXX: potential race condition + # can we force it to only update if claimed is still null + # (or old)? + common_log(LOG_INFO, 'claiming msn waiting message id = ' . $wm->id); + $orig = clone($wm); + $wm->claimed = common_sql_now(); + $result = $wm->update($orig); + if ($result) { + common_log(LOG_INFO, 'claim succeeded.'); + return $wm; + } else { + common_log(LOG_INFO, 'claim failed.'); + } + } + $wm = null; + return null; + } + + /** + * Release a claimed item. + */ + public function releaseClaim() { + // DB_DataObject doesn't let us save nulls right now + $sql = sprintf("UPDATE msn_waiting_message SET claimed=NULL WHERE id=%d", $this->id); + $this->query($sql); + + $this->claimed = null; + $this->encache(); + } +} diff --git a/plugins/Msn/msnmanager.php b/plugins/Msn/msnmanager.php new file mode 100644 index 0000000000..a8996ecafa --- /dev/null +++ b/plugins/Msn/msnmanager.php @@ -0,0 +1,275 @@ +. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +/** + * MSN background connection manager for MSN-using queue handlers, + * allowing them to send outgoing messages on the right connection. + * + * Input is handled during socket select loop, keepalive pings during idle. + * Any incoming messages will be handled. + * + * In a multi-site queuedaemon.php run, one connection will be instantiated + * for each site being handled by the current process that has MSN enabled. + */ + +class MsnManager extends ImManager { + public $conn = null; + protected $lastPing = null; + protected $pingInterval; + + /** + * Initialise connection to server. + * + * @return boolean true on success + */ + public function start($master) { + if (parent::start($master)) { + $this->requeue_waiting_messages(); + $this->connect(); + return true; + } else { + return false; + } + } + + /** + * Return any open sockets that the run loop should listen + * for input on. + * + * @return array Array of socket resources + */ + public function getSockets() { + $this->connect(); + if ($this->conn) { + return $this->conn->getSockets(); + } else { + return array(); + } + } + + /** + * Idle processing for io manager's execution loop. + * Send keepalive pings to server. + * + * @return void + */ + public function idle($timeout = 0) { + if (empty($this->lastPing) || time() - $this->lastPing > $this->pingInterval) { + $this->send_ping(); + } + } + + /** + * Message pump is triggered on socket input, so we only need an idle() + * call often enough to trigger our outgoing pings. + */ + public function timeout() { + return $this->pingInterval; + } + + /** + * Process MSN events that have come in over the wire. + * + * @param resource $socket Socket ready + * @return void + */ + public function handleInput($socket) { + common_log(LOG_DEBUG, 'Servicing the MSN queue.'); + $this->stats('msn_process'); + $this->conn->receive(); + } + + /** + * Initiate connection + * + * @return void + */ + public function connect() { + if (!$this->conn) { + $this->conn = new MSN( + array( + 'user' => $this->plugin->user, + 'password' => $this->plugin->password, + 'alias' => $this->plugin->nickname, + 'psm' => 'Send me a message to post a notice', + 'debug' => false + ) + ); + $this->conn->registerHandler('IMin', array($this, 'handle_msn_message')); + $this->conn->registerHandler('SessionReady', array($this, 'handle_session_ready')); + $this->conn->registerHandler('Pong', array($this, 'update_ping_time')); + $this->conn->registerHandler('ConnectFailed', array($this, 'handle_connect_failed')); + $this->conn->registerHandler('Reconnect', array($this, 'handle_reconnect')); + $this->conn->signon(); + $this->lastPing = time(); + } + return $this->conn; + } + + /** + * Called by the idle process to send a ping + * when necessary + * + * @return void + */ + protected function send_ping() { + $this->connect(); + if (!$this->conn) { + return false; + } + + $this->conn->sendPing(); + $this->lastPing = time(); + $this->pingInterval = 50; + return true; + } + + /** + * Update the time till the next ping + * + * @param $data Time till next ping + * @return void + */ + public function update_ping_time($data) { + $this->pingInterval = $data; + } + + /** + * Called via a callback when a message is received + * + * Passes it back to the queuing system + * + * @param array $data Data + * @return boolean + */ + public function handle_msn_message($data) { + $this->plugin->enqueueIncomingRaw($data); + return true; + } + + /** + * Called via a callback when a session becomes ready + * + * @param array $data Data + */ + public function handle_session_ready($data) { + $sessionFailed = false; + $wm = Msn_waiting_message::top($data['to']); + while ($wm != NULL) { + if ($sessionFailed) { + $this->plugin->sendMessage($wm->screenname, $wm->message); + $sessionFailed = true; + } elseif (!$this->conn->sendMessage($wm->screenname, $wm->message, $ignore)) { + $this->plugin->sendMessage($wm->screenname, $wm->message); + } + + $wm->delete(); + $wm = Msn_waiting_message::top($data['to']); + } + } + + /** + * Requeue messages from the waiting table so we try + * to send them again + * + * @return void + */ + protected function requeue_waiting_messages() { + $wm = Msn_waiting_message::top(); + while ($wm != NULL) { + $this->plugin->sendMessage($wm->screenname, $wm->message); + $wm->delete(); + $wm = Msn_waiting_message::top(); + } + } + + /** + * Called by callback to log failure during connect + * + * @param string $message error message reported + * @return void + */ + public function handle_connect_failed($message) { + common_log(LOG_NOTICE, 'MSN connect failed, retrying: ' . $message); + } + + /** + * Called by callback to log reconnection + * + * @param void $data Not used (there to keep callback happy) + * @return void + */ + public function handle_reconnect($data) { + common_log(LOG_NOTICE, 'MSN reconnecting'); + // Requeue messages waiting in the DB + $this->requeue_waiting_messages(); + } + + /** + * Enters a message into the database for sending via a callback + * when the session is established + * + * @param string $to Intended recipient + * @param string $message Message + */ + protected function enqueue_waiting_message($to, $message) { + $wm = new Msn_waiting_message(); + + $wm->screenname = $to; + $wm->message = $message; + $wm->created = common_sql_now(); + $result = $wm->insert(); + + if (!$result) { + common_log_db_error($wm, 'INSERT', __FILE__); + throw new ServerException('DB error inserting queue item'); + } + + return true; + } + + /** + * Send a message using the daemon + * + * @param $data Message data + * @return boolean true on success + */ + public function send_raw_message($data) { + $this->connect(); + if (!$this->conn) { + return false; + } + + $waitForSession = false; + if (!$this->conn->sendMessage($data['to'], $data['message'], $waitForSession)) { + if ($waitForSession) { + $this->enqueue_waiting_message($data['to'], $data['message']); + } else { + return false; + } + } + + // Sending a command updates the time till next ping + $this->lastPing = time(); + $this->pingInterval = 50; + return true; + } +} diff --git a/plugins/NoticeTitle/NoticeTitlePlugin.php b/plugins/NoticeTitle/NoticeTitlePlugin.php new file mode 100644 index 0000000000..054c3d3e48 --- /dev/null +++ b/plugins/NoticeTitle/NoticeTitlePlugin.php @@ -0,0 +1,365 @@ +. + * + * @category NoticeTitle + * @package StatusNet + * @author Evan Prodromou + * @copyright 2010 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); +} + +define('NOTICE_TITLE_PLUGIN_VERSION', '0.1'); + +/** + * NoticeTitle plugin to add an optional title to notices. + * + * Stores notice titles in a secondary table, notice_title. + * + * @category NoticeTitle + * @package StatusNet + * @author Evan Prodromou + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class NoticeTitlePlugin extends Plugin +{ + + // By default, notice-title widget will be available to all users. + // With restricted on, only users who have been granted the + // "richedit" role get it. + public $restricted = false; + + /** + * Database schema setup + * + * Add the notice_title helper table + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing titles for notices + + $schema->ensureTable('notice_title', + array(new ColumnDef('notice_id', + 'integer', + null, + true, + 'PRI'), + new ColumnDef('title', + 'varchar', + Notice_title::MAXCHARS, + false))); + + return true; + } + + /** + * Load related modules when needed + * + * @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 'Notice_title': + include_once $dir . '/'.$cls.'.php'; + return false; + default: + return true; + } + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:NoticeTitle'; + + $versions[] = array('name' => 'NoticeTitle', + 'version' => NOTICE_TITLE_PLUGIN_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => $url, + 'rawdescription' => + _m('Adds optional titles to notices.')); + return true; + } + + /** + * Show title entry when showing notice form + * + * @param Form $form Form being shown + * + * @return boolean hook value + */ + + function onStartShowNoticeFormData($form) + { + if ($this->isAllowedRichEdit()) { + $form->out->element('style', + null, + 'label#notice_data-text-label { display: none }'); + $form->out->element('input', array('type' => 'text', + 'id' => 'notice_title', + 'name' => 'notice_title', + 'size' => 40, + 'maxlength' => Notice_title::MAXCHARS)); + } + return true; + } + + /** + * Validate notice title before saving + * + * @param Action $action NewNoticeAction being executed + * @param integer &$authorId Author ID + * @param string &$text Text of the notice + * @param array &$options Options array + * + * @return boolean hook value + */ + + function onStartNoticeSaveWeb($action, &$authorId, &$text, &$options) + { + $title = $action->trimmed('notice_title'); + if (!empty($title) && $this->isAllowedRichEdit()) { + if (mb_strlen($title) > Notice_title::MAXCHARS) { + throw new Exception(sprintf(_m("The notice title is too long (max %d characters).", + Notice_title::MAXCHARS))); + } + } + return true; + } + + /** + * Save notice title after notice is saved + * + * @param Action $action NewNoticeAction being executed + * @param Notice $notice Notice that was saved + * + * @return boolean hook value + */ + + function onEndNoticeSaveWeb($action, $notice) + { + if (!empty($notice)) { + + $title = $action->trimmed('notice_title'); + + if (!empty($title) && $this->isAllowedRichEdit()) { + + $nt = new Notice_title(); + + $nt->notice_id = $notice->id; + $nt->title = $title; + + $nt->insert(); + } + } + + return true; + } + + /** + * Show the notice title in lists + * + * @param NoticeListItem $nli NoticeListItem being shown + * + * @return boolean hook value + */ + + function onStartShowNoticeItem($nli) + { + $title = Notice_title::fromNotice($nli->notice); + + if (!empty($title)) { + $nli->out->elementStart('h4', array('class' => 'notice_title')); + $nli->out->element('a', array('href' => $nli->notice->bestUrl()), $title); + $nli->out->elementEnd('h4'); + } + + return true; + } + + /** + * Show the notice title in RSS output + * + * @param Notice $notice Notice being shown + * @param array &$entry array of values used for RSS output + * + * @return boolean hook value + */ + + function onEndRssEntryArray($notice, &$entry) + { + $title = Notice_title::fromNotice($notice); + + if (!empty($title)) { + $entry['title'] = $title; + } + + return true; + } + + /** + * Show the notice title in Atom output + * + * @param Notice &$notice Notice being shown + * @param XMLStringer &$xs output context + * @param string &$output string to be output as title + * + * @return boolean hook value + */ + + function onEndNoticeAsActivity($notice, &$activity) + { + $title = Notice_title::fromNotice($notice); + + if (!empty($title)) { + foreach ($activity->objects as $obj) { + if ($obj->id == $notice->uri) { + $obj->title = $title; + break; + } + } + } + + return true; + } + + /** + * Remove title when the notice is deleted + * + * @param Notice $notice Notice being deleted + * + * @return boolean hook value + */ + + function onNoticeDeleteRelated($notice) + { + $nt = Notice_title::staticGet('notice_id', $notice->id); + + if (!empty($nt)) { + $nt->delete(); + } + + return true; + } + + /** + * If a notice has a title, show it in the element + * + * @param Action $action Action being executed + * + * @return boolean hook value + */ + + function onStartShowHeadTitle($action) + { + $actionName = $action->trimmed('action'); + + if ($actionName == 'shownotice') { + $title = Notice_title::fromNotice($action->notice); + if (!empty($title)) { + $action->element('title', null, + // TRANS: Page title. %1$s is the title, %2$s is the site name. + sprintf(_m("%1\$s - %2\$s"), + $title, + common_config('site', 'name'))); + } + } + + return true; + } + + /** + * If a notice has a title, show it in the <h1> element + * + * @param Action $action Action being executed + * + * @return boolean hook value + */ + + function onStartShowPageTitle($action) + { + $actionName = $action->trimmed('action'); + + if ($actionName == 'shownotice') { + $title = Notice_title::fromNotice($action->notice); + if (!empty($title)) { + $action->element('h1', null, $title); + return false; + } + } + + return true; + } + + /** + * Does the current user have permission to use the notice-title widget? + * Always true unless the plugin's "restricted" setting is on, in which + * case it's limited to users with the "richedit" role. + * + * @fixme make that more sanely configurable :) + * + * @return boolean + */ + private function isAllowedRichEdit() + { + if ($this->restricted) { + $user = common_current_user(); + return !empty($user) && $user->hasRole('richedit'); + } else { + return true; + } + } + +} diff --git a/plugins/NoticeTitle/Notice_title.php b/plugins/NoticeTitle/Notice_title.php new file mode 100644 index 0000000000..b66ea9901b --- /dev/null +++ b/plugins/NoticeTitle/Notice_title.php @@ -0,0 +1,138 @@ +<?php +/** + * Data class for notice titles + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for notice titles + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Notice_title extends Memcached_DataObject +{ + const MAXCHARS = 255; + + public $__table = 'notice_title'; // table name + public $notice_id; // int(4) primary_key not_null + public $title; // varchar(255) + + /** + * 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 Notice_title object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Notice_title', $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('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'title' => DB_DATAOBJECT_STR); + } + + /** + * return key definitions for DB_DataObject + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * @return array list mapping field names to key types + */ + + function keyTypes() + { + return array('notice_id' => 'K'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + /** + * Get a notice title based on the notice + * + * @param Notice $notice Notice to fetch a title for + * + * @return string title of the notice, or null if none + */ + + static function fromNotice($notice) + { + $nt = Notice_title::staticGet('notice_id', $notice->id); + if (empty($nt)) { + return null; + } else { + return $nt->title; + } + } +} diff --git a/plugins/NoticeTitle/locale/NoticeTitle.pot b/plugins/NoticeTitle/locale/NoticeTitle.pot new file mode 100644 index 0000000000..8c6f2e0adc --- /dev/null +++ b/plugins/NoticeTitle/locale/NoticeTitle.pot @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "" diff --git a/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..d00487d582 --- /dev/null +++ b/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - NoticeTitle to Arabic (العربية) +# Expored from translatewiki.net +# +# Author: OsamaK +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:20+0000\n" +"Language-Team: Arabic <http://translatewiki.net/wiki/Portal:ar>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ar\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == " +"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " +"99) ? 4 : 5 ) ) ) );\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "يضيف عناوين اختيارية إلى الإشعارات." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..2a55a27cb2 --- /dev/null +++ b/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - NoticeTitle to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Ouzhpennañ a ra titloù diret d'ar c'hemennoù." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..1a95da619c --- /dev/null +++ b/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Fügt Nachrichten optionale Titel hinzu." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s – %2$s" diff --git a/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..1660fe2654 --- /dev/null +++ b/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Ajoute des titres optionnels aux avis." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..453921c8a2 --- /dev/null +++ b/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "הוספת כותרת (לא הכרחית) להתרעות." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s – %2$s" diff --git a/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..d3875185d9 --- /dev/null +++ b/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Adde optional titulos a notas." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..a947c22df2 --- /dev/null +++ b/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Додава наслови на забелешките (по избор)." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..a632996a97 --- /dev/null +++ b/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Legger valgfrie titler til notiser." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..837806327a --- /dev/null +++ b/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Nepali (नेपाली) +# Expored from translatewiki.net +# +# Author: Bhawani Gautam Rhk +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Nepali <http://translatewiki.net/wiki/Portal:ne>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ne\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "सूचनाकोलागि वैकल्पिक शीर्षकहरु जोड्छ" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..4c40b30a57 --- /dev/null +++ b/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Voegt optioneel titels toe aan mededelingen." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..c0667efc93 --- /dev/null +++ b/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - NoticeTitle to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..9e6f2c3d13 --- /dev/null +++ b/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - NoticeTitle to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Добавляет необязательный заголовок для сообщений." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..0a6a613173 --- /dev/null +++ b/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..430dcb9e28 --- /dev/null +++ b/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - NoticeTitle to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Nagdaragdag ng maaaring wala na mga pamagat sa mga pabatid." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr " %1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..efd18baf81 --- /dev/null +++ b/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - NoticeTitle to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "Додавати до повідомлень необов’язкові заголовки." + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..9400ad3893 --- /dev/null +++ b/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - NoticeTitle to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: NoticeTitlePlugin.php:132 +msgid "Adds optional titles to notices." +msgstr "为消息添加可选的标题。" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#: NoticeTitlePlugin.php:314 +#, php-format +msgid "%1$s - %2$s" +msgstr "" diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 6fef20d6f5..f846a2fc8b 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -22,7 +22,9 @@ * @maintainer Brion Vibber <brion@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/'); @@ -50,10 +52,6 @@ class OStatusPlugin extends Plugin function onRouterInitialized($m) { // Discovery actions - $m->connect('.well-known/host-meta', - array('action' => 'hostmeta')); - $m->connect('main/xrd', - array('action' => 'userxrd')); $m->connect('main/ownerxrd', array('action' => 'ownerxrd')); $m->connect('main/ostatus', @@ -223,6 +221,7 @@ class OStatusPlugin extends Plugin array('nickname' => $profile->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), + // TRANS: Link description for link to subscribe to a remote user. _m('Subscribe')); $output->elementEnd('li'); @@ -241,23 +240,13 @@ class OStatusPlugin extends Plugin array('group' => $group->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), + // TRANS: Link description for link to join a remote group. _m('Join')); } return true; } - /** - * Check if we've got remote replies to send via Salmon. - * - * @fixme push webfinger lookup & sending to a background queue - * @fixme also detect short-form name for remote subscribees where not ambiguous - */ - - function onEndNoticeSave($notice) - { - } - /** * Find any explicit remote mentions. Accepted forms: * Webfinger: @user@example.com @@ -464,6 +453,7 @@ class OStatusPlugin extends Plugin } $url = $notice->url; + // TRANSLATE: %s is a domain. $title = sprintf(_m("Sent from %s via OStatus"), $domain); return false; } @@ -492,7 +482,7 @@ class OStatusPlugin extends Plugin * Tell the FeedSub infrastructure whether we have any active OStatus * usage for the feed; if not it'll be able to garbage-collect the * feed subscription. - * + * * @param FeedSub $feedsub * @param integer $count in/out * @return mixed hook return code @@ -535,6 +525,7 @@ class OStatusPlugin extends Plugin } if (!$oprofile->subscribe()) { + // TRANS: Exception. throw new Exception(_m('Could not set up remote subscription.')); } } @@ -564,23 +555,10 @@ class OStatusPlugin extends Plugin return true; } - $act = new Activity(); + $sub = Subscription::pkeyGet(array('subscriber' => $subscriber->id, + 'subscribed' => $other->id)); - $act->verb = ActivityVerb::FOLLOW; - - $act->id = TagURI::mint('follow:%d:%d:%s', - $subscriber->id, - $other->id, - common_date_iso8601(time())); - - $act->time = time(); - $act->title = _("Follow"); - $act->content = sprintf(_("%s is now following %s."), - $subscriber->getBestName(), - $other->getBestName()); - - $act->actor = ActivityObject::fromProfile($subscriber); - $act->object = ActivityObject::fromProfile($other); + $act = $sub->asActivity(); $oprofile->notifyActivity($act, $subscriber); @@ -622,8 +600,10 @@ class OStatusPlugin extends Plugin common_date_iso8601(time())); $act->time = time(); - $act->title = _("Unfollow"); - $act->content = sprintf(_("%s stopped following %s."), + $act->title = _m('Unfollow'); + // TRANS: Success message for unsubscribe from user attempt through OStatus. + // TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. + $act->content = sprintf(_m('%1$s stopped following %2$s.'), $profile->getBestName(), $other->getBestName()); @@ -654,6 +634,9 @@ class OStatusPlugin extends Plugin throw new Exception(_m('Could not set up remote group membership.')); } + // NOTE: we don't use Group_member::asActivity() since that record + // has not yet been created. + $member = Profile::staticGet($user->id); $act = new Activity(); @@ -668,7 +651,9 @@ class OStatusPlugin extends Plugin $act->time = time(); $act->title = _m("Join"); - $act->content = sprintf(_m("%s has joined group %s."), + // TRANS: Success message for subscribe to group attempt through OStatus. + // TRANS: %1$s is the member name, %2$s is the subscribed group's name. + $act->content = sprintf(_m('%1$s has joined group %2$s.'), $member->getBestName(), $oprofile->getBestName()); @@ -676,6 +661,7 @@ class OStatusPlugin extends Plugin return true; } else { $oprofile->garbageCollect(); + // TRANS: Exception. throw new Exception(_m("Failed joining remote group.")); } } @@ -717,7 +703,9 @@ class OStatusPlugin extends Plugin $act->time = time(); $act->title = _m("Leave"); - $act->content = sprintf(_m("%s has left group %s."), + // TRANS: Success message for unsubscribe from group attempt through OStatus. + // TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. + $act->content = sprintf(_m('%1$s has left group %2$s.'), $member->getBestName(), $oprofile->getBestName()); @@ -732,7 +720,6 @@ class OStatusPlugin extends Plugin * @param Notice $notice being favored * @return hook return value */ - function onEndFavorNotice(Profile $profile, Notice $notice) { $user = User::staticGet('id', $profile->id); @@ -747,22 +734,15 @@ class OStatusPlugin extends Plugin return true; } - $act = new Activity(); + $fav = Fave::pkeyGet(array('user_id' => $user->id, + 'notice_id' => $notice->id)); - $act->verb = ActivityVerb::FAVORITE; - $act->id = TagURI::mint('favor:%d:%d:%s', - $profile->id, - $notice->id, - common_date_iso8601(time())); + if (empty($fav)) { + // That's weird. + return true; + } - $act->time = time(); - $act->title = _("Favor"); - $act->content = sprintf(_("%s marked notice %s as a favorite."), - $profile->getBestName(), - $notice->uri); - - $act->actor = ActivityObject::fromProfile($profile); - $act->object = ActivityObject::fromNotice($notice); + $act = $fav->asActivity(); $oprofile->notifyActivity($act, $profile); @@ -800,8 +780,10 @@ class OStatusPlugin extends Plugin $notice->id, common_date_iso8601(time())); $act->time = time(); - $act->title = _("Disfavor"); - $act->content = sprintf(_("%s marked notice %s as no longer a favorite."), + $act->title = _m('Disfavor'); + // TRANS: Success message for remove a favorite notice through OStatus. + // TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. + $act->content = sprintf(_m('%1$s marked notice %2$s as no longer a favorite.'), $profile->getBestName(), $notice->uri); @@ -875,8 +857,9 @@ class OStatusPlugin extends Plugin $action->elementStart('p', array('id' => 'entity_remote_subscribe', 'class' => 'entity_subscribe')); $action->element('a', array('href' => common_local_url($target), - 'class' => 'entity_remote_subscribe') - , _m('Remote')); + 'class' => 'entity_remote_subscribe'), + // TRANS: Link text for link to remote subscribe. + _m('Remote')); $action->elementEnd('p'); $action->elementEnd('div'); } @@ -915,7 +898,10 @@ class OStatusPlugin extends Plugin $profile->id, common_date_iso8601(time())); $act->time = time(); + // TRANS: Title for activity. $act->title = _m("Profile update"); + // TRANS: Ping text for remote profile update through OStatus. + // TRANS: %s is user that updated their profile. $act->content = sprintf(_m("%s has updated their profile page."), $profile->getBestName()); @@ -945,6 +931,7 @@ class OStatusPlugin extends Plugin array('nickname' => $profileUser->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), + // TRANS: Link text for a user to subscribe to an OStatus user. _m('Subscribe')); $output->elementEnd('li'); } @@ -959,15 +946,15 @@ class OStatusPlugin extends Plugin 'version' => STATUSNET_VERSION, 'author' => 'Evan Prodromou, James Walker, Brion Vibber, Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:OStatus', - 'rawdescription' => - _m('Follow people across social networks that implement '. + // TRANS: Plugin description. + 'rawdescription' => _m('Follow people across social networks that implement '. '<a href="http://ostatus.org/">OStatus</a>.')); return true; } /** - * Utility function to check if the given URL is a canonical group profile + * Utility function to check if the given URI is a canonical group profile * page, and if so return the ID number. * * @param string $url @@ -975,11 +962,22 @@ class OStatusPlugin extends Plugin */ public static function localGroupFromUrl($url) { - $template = common_local_url('groupbyid', array('id' => '31337')); - $template = preg_quote($template, '/'); - $template = str_replace('31337', '(\d+)', $template); - if (preg_match("/$template/", $url, $matches)) { - return intval($matches[1]); + $group = User_group::staticGet('uri', $url); + if ($group) { + $local = Local_group::staticGet('group_id', $group->id); + if ($local) { + return $group->id; + } + } else { + // To find local groups which haven't had their uri fields filled out... + // If the domain has changed since a subscriber got the URI, it'll + // be broken. + $template = common_local_url('groupbyid', array('id' => '31337')); + $template = preg_quote($template, '/'); + $template = str_replace('31337', '(\d+)', $template); + if (preg_match("/$template/", $url, $matches)) { + return intval($matches[1]); + } } return false; } @@ -995,4 +993,58 @@ class OStatusPlugin extends Plugin $feed = $oprofile->feeduri; return false; } + + function onStartGetProfileFromURI($uri, &$profile) { + + // XXX: do discovery here instead (OStatus_profile::ensureProfileURI($uri)) + + $oprofile = Ostatus_profile::staticGet('uri', $uri); + + if (!empty($oprofile) && !$oprofile->isGroup()) { + $profile = $oprofile->localProfile(); + return false; + } + + return true; + } + + function onEndXrdActionLinks(&$xrd, $user) + { + $xrd->links[] = array('rel' => Discovery::UPDATESFROM, + 'href' => common_local_url('ApiTimelineUser', + array('id' => $user->id, + 'format' => 'atom')), + 'type' => 'application/atom+xml'); + + // Salmon + $salmon_url = common_local_url('usersalmon', + array('id' => $user->id)); + + $xrd->links[] = array('rel' => Salmon::REL_SALMON, + 'href' => $salmon_url); + // XXX : Deprecated - to be removed. + $xrd->links[] = array('rel' => Salmon::NS_REPLIES, + 'href' => $salmon_url); + + $xrd->links[] = array('rel' => Salmon::NS_MENTIONS, + 'href' => $salmon_url); + + // Get this user's keypair + $magickey = Magicsig::staticGet('user_id', $user->id); + if (!$magickey) { + // No keypair yet, let's generate one. + $magickey = new Magicsig(); + $magickey->generate($user->id); + } + + $xrd->links[] = array('rel' => Magicsig::PUBLICKEYREL, + 'href' => 'data:application/magic-public-key,'. $magickey->toString(false)); + + // TODO - finalize where the redirect should go on the publisher + $url = common_local_url('ostatussub') . '?profile={uri}'; + $xrd->links[] = array('rel' => 'http://ostatus.org/schema/1.0/subscribe', + 'template' => $url ); + + return true; + } } diff --git a/plugins/OStatus/actions/groupsalmon.php b/plugins/OStatus/actions/groupsalmon.php index 5094dccf0f..3a3d63fe20 100644 --- a/plugins/OStatus/actions/groupsalmon.php +++ b/plugins/OStatus/actions/groupsalmon.php @@ -17,15 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/** - * @package OStatusPlugin - * @author James Walker <james@status.net> - */ - if (!defined('STATUSNET')) { exit(1); } +/** + * @package OStatusPlugin + * @author James Walker <james@status.net> + */ class GroupsalmonAction extends SalmonAction { var $group = null; @@ -37,17 +36,20 @@ class GroupsalmonAction extends SalmonAction $id = $this->trimmed('id'); if (!$id) { - $this->clientError(_('No ID.')); + // TRANS: Client error. + $this->clientError(_m('No ID.')); } $this->group = User_group::staticGet('id', $id); if (empty($this->group)) { - $this->clientError(_('No such group.')); + // TRANS: Client error. + $this->clientError(_m('No such group.')); } $oprofile = Ostatus_profile::staticGet('group_id', $id); if ($oprofile) { + // TRANS: Client error. $this->clientError(_m("Can't accept remote posts for a remote group.")); } @@ -57,7 +59,6 @@ class GroupsalmonAction extends SalmonAction /** * We've gotten a post event on the Salmon backchannel, probably a reply. */ - function handlePost() { // @fixme process all objects? @@ -69,18 +70,20 @@ class GroupsalmonAction extends SalmonAction case ActivityObject::COMMENT: break; default: + // TRANS: Client exception. throw new ClientException("Can't handle that kind of post."); } // Notice must be to the attention of this group - $context = $this->activity->context; if (empty($context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of anyone."); } else { $uri = common_local_url('groupbyid', array('id' => $this->group->id)); if (!in_array($uri, $context->attention)) { + // TRANS: Client exception. throw new ClientException("Not to the attention of this group."); } } @@ -116,14 +119,15 @@ class GroupsalmonAction extends SalmonAction * currently we're doing the main logic in joingroup action * and so have to repeat it here. */ - function handleJoin() { $oprofile = $this->ensureProfile(); if (!$oprofile) { + // TRANS: Client error. $this->clientError(_m("Can't read profile to set up group membership.")); } if ($oprofile->isGroup()) { + // TRANS: Client error. $this->clientError(_m("Groups can't join groups.")); } @@ -137,7 +141,7 @@ class GroupsalmonAction extends SalmonAction } if (Group_block::isBlocked($this->group, $profile)) { - $this->clientError(_('You have been blocked from that group by the admin.'), 403); + $this->clientError(_m('You have been blocked from that group by the admin.'), 403); return false; } @@ -151,6 +155,7 @@ class GroupsalmonAction extends SalmonAction //Event::handle('EndJoinGroup', array($this->group, $profile)); //} } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not join remote user %1$s to group %2$s.'), $oprofile->uri, $this->group->nickname)); } @@ -159,7 +164,6 @@ class GroupsalmonAction extends SalmonAction /** * A remote user left our group. */ - function handleLeave() { $oprofile = $this->ensureProfile(); @@ -180,10 +184,10 @@ class GroupsalmonAction extends SalmonAction //Event::handle('EndLeaveGroup', array($this->group, $profile)); //} } catch (Exception $e) { + // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. $this->serverError(sprintf(_m('Could not remove remote user %1$s from group %2$s.'), $oprofile->uri, $this->group->nickname)); return; } } - } diff --git a/plugins/OStatus/actions/ostatusgroup.php b/plugins/OStatus/actions/ostatusgroup.php index 1b368de63c..24fbaac9ca 100644 --- a/plugins/OStatus/actions/ostatusgroup.php +++ b/plugins/OStatus/actions/ostatusgroup.php @@ -22,7 +22,9 @@ * @maintainer Brion Vibber <brion@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} /** * Key UI methods: @@ -72,13 +74,16 @@ class OStatusGroupAction extends OStatusSubAction $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', + // TRANS: Field label. _m('Join group'), $this->profile_uri, - _m("OStatus group's address, like http://example.net/group/nickname")); + // TRANS: Tooltip for field label "Join group". + _m("OStatus group's address, like http://example.net/group/nickname.")); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('validate', _m('Continue')); + // TRANS: Button text. + $this->submit('validate', _m('BUTTON','Continue')); $this->elementEnd('fieldset'); @@ -156,7 +161,6 @@ class OStatusGroupAction extends OStatusSubAction * * @return string Title of the page */ - function title() { // TRANS: Page title for OStatus remote group join form @@ -168,9 +172,9 @@ class OStatusGroupAction extends OStatusSubAction * * @return instructions for use */ - function getInstructions() { + // TRANS: Instructions. return _m('You can subscribe to groups from other supported sites. Paste the group\'s profile URI below:'); } diff --git a/plugins/OStatus/actions/ostatusinit.php b/plugins/OStatus/actions/ostatusinit.php index d7dee1ac71..25a52482d1 100644 --- a/plugins/OStatus/actions/ostatusinit.php +++ b/plugins/OStatus/actions/ostatusinit.php @@ -22,12 +22,12 @@ * @maintainer James Walker <james@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - +if (!defined('STATUSNET')) { + exit(1); +} class OStatusInitAction extends Action { - var $nickname; var $group; var $profile; @@ -38,6 +38,7 @@ class OStatusInitAction extends Action parent::prepare($args); if (common_logged_in()) { + // TRANS: Client error. $this->clientError(_m('You can use the local subscription!')); return false; } @@ -45,13 +46,13 @@ class OStatusInitAction extends Action // Local user or group the remote wants to subscribe to $this->nickname = $this->trimmed('nickname'); $this->group = $this->trimmed('group'); - + // Webfinger or profile URL of the remote user $this->profile = $this->trimmed('profile'); return true; } - + function handle($args) { parent::handle($args); @@ -69,7 +70,7 @@ class OStatusInitAction extends Action $this->showForm(); } } - + function showForm($err = null) { $this->err = $err; @@ -78,6 +79,7 @@ class OStatusInitAction extends Action $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); $this->elementStart('head'); + // TRANS: Form title. $this->element('title', null, _m('Subscribe to user')); $this->elementEnd('head'); $this->elementStart('body'); @@ -93,11 +95,15 @@ class OStatusInitAction extends Action { if ($this->group) { + // TRANS: Form legend. $header = sprintf(_m('Join group %s'), $this->group); - $submit = _m('Join'); + // TRANS: Button text. + $submit = _m('BUTTON','Join'); } else { + // TRANS: Form legend. $header = sprintf(_m('Subscribe to %s'), $this->nickname); - $submit = _m('Subscribe'); + // TRANS: Button text. + $submit = _m('BUTTON','Subscribe'); } $this->elementStart('form', array('id' => 'form_ostatus_connect', 'method' => 'post', @@ -109,11 +115,13 @@ class OStatusInitAction extends Action $this->elementStart('ul', 'form_data'); $this->elementStart('li', array('id' => 'ostatus_nickname')); + // TRANS: Field label. $this->input('nickname', _m('User nickname'), $this->nickname, - _m('Nickname of the user you want to follow')); + _m('Nickname of the user you want to follow.')); $this->hidden('group', $this->group); // pass-through for magic links $this->elementEnd('li'); $this->elementStart('li', array('id' => 'ostatus_profile')); + // TRANS: Field label. $this->input('profile', _m('Profile Account'), $this->profile, _m("Your account id (i.e. user@status.net) -- with GNU social, users do not use one server to communicate in the way that Facebook and Twitter users do. Instead, users are spread out over a network of servers and different sites. You can run your own server, or you can sign up for one of the public servers -- it doesn't even need to be a GNU social server -- any server that speaks the OStatus protocol is suitable. A good place to get an account for yourself is www.status.net")); $this->elementEnd('li'); @@ -136,6 +144,7 @@ class OStatusInitAction extends Action } elseif (strpos($this->profile, '@') !== false) { $this->connectWebfinger($this->profile); } else { + // TRANS: Client error. $this->clientError(_m("Must provide a remote profile.")); } } @@ -147,6 +156,7 @@ class OStatusInitAction extends Action $disco = new Discovery; $result = $disco->lookup($acct); if (!$result) { + // TRANS: Client error. $this->clientError(_m("Couldn't look up OStatus account profile.")); } @@ -159,6 +169,7 @@ class OStatusInitAction extends Action } } + // TRANS: Client error. $this->clientError(_m("Couldn't confirm remote profile address.")); } @@ -184,6 +195,7 @@ class OStatusInitAction extends Action if ($user) { return common_local_url('userbyid', array('id' => $user->id)); } else { + // TRANS: Client error. $this->clientError("No such user."); } } else if ($this->group) { @@ -191,18 +203,18 @@ class OStatusInitAction extends Action if ($group) { return common_local_url('groupbyid', array('id' => $group->group_id)); } else { + // TRANS: Client error. $this->clientError("No such group."); } } else { + // TRANS: Client error. $this->clientError("No local user or group nickname provided."); } } function title() { - return _m('OStatus Connect'); + // TRANS: Page title. + return _m('OStatus Connect'); } - - - } diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index 28714514f5..a293fda5db 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -22,7 +22,9 @@ * @maintainer Brion Vibber <brion@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} /** * Key UI methods: @@ -62,13 +64,15 @@ class OStatusSubAction extends Action $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', + // TRANS: Field label for a field that takes an OStatus user address. _m('Subscribe to'), $this->profile_uri, - _m("OStatus user's address, like nickname@example.com or http://example.net/nickname")); + // TRANS: Tooltip for field label "Subscribe to". + _m('OStatus user\'s address, like nickname@example.com or http://example.net/nickname')); $this->elementEnd('li'); $this->elementEnd('ul'); - - $this->submit('validate', _m('Continue')); + // TRANS: Button text. + $this->submit('validate', _m('BUTTON','Continue')); $this->elementEnd('fieldset'); @@ -103,9 +107,13 @@ class OStatusSubAction extends Action $this->hidden('profile', $this->profile_uri); if ($this->oprofile->isGroup()) { $this->submit('submit', _m('Join'), 'submit', null, - _m('Join this group')); + // TRANS: Button text. + // TRANS: Tooltip for button "Join". + _m('BUTTON','Join this group')); } else { - $this->submit('submit', _m('Confirm'), 'submit', null, + // TRANS: Button text. + $this->submit('submit', _m('BUTTON','Confirm'), 'submit', null, + // TRANS: Tooltip for button "Confirm". _m('Subscribe to this user')); } $this->elementEnd('fieldset'); @@ -156,7 +164,7 @@ class OStatusSubAction extends Action $this->elementStart('div', 'entity_profile vcard'); $this->elementStart('dl', 'entity_depiction'); - $this->element('dt', null, _('Photo')); + $this->element('dt', null, _m('Photo')); $this->elementStart('dd'); $this->element('img', array('src' => $avatar, 'class' => 'photo avatar', @@ -167,7 +175,7 @@ class OStatusSubAction extends Action $this->elementEnd('dl'); $this->elementStart('dl', 'entity_nickname'); - $this->element('dt', null, _('Nickname')); + $this->element('dt', null, _m('Nickname')); $this->elementStart('dd'); $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; $this->elementStart('a', array('href' => $profile, @@ -188,7 +196,7 @@ class OStatusSubAction extends Action } if (!is_null($location)) { $this->elementStart('dl', 'entity_location'); - $this->element('dt', null, _('Location')); + $this->element('dt', null, _m('Location')); $this->elementStart('dd', 'label'); $this->raw($location); $this->elementEnd('dd'); @@ -197,7 +205,7 @@ class OStatusSubAction extends Action if (!is_null($homepage)) { $this->elementStart('dl', 'entity_url'); - $this->element('dt', null, _('URL')); + $this->element('dt', null, _m('URL')); $this->elementStart('dd'); $this->elementStart('a', array('href' => $homepage, 'class' => 'url')); @@ -209,7 +217,7 @@ class OStatusSubAction extends Action if (!is_null($note)) { $this->elementStart('dl', 'entity_note'); - $this->element('dt', null, _('Note')); + $this->element('dt', null, _m('Note')); $this->elementStart('dd', 'note'); $this->raw($note); $this->elementEnd('dd'); @@ -244,32 +252,40 @@ class OStatusSubAction extends Action } else if (Validate::uri($this->profile_uri)) { $this->oprofile = Ostatus_profile::ensureProfileURL($this->profile_uri); } else { - $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + // TRANS: Error text. + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug('Invalid address format.', __FILE__); return false; } return true; } catch (FeedSubBadURLException $e) { - $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + // TRANS: Error text. + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug('Invalid URL or could not reach server.', __FILE__); } catch (FeedSubBadResponseException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Cannot read feed; server returned error.', __FILE__); } catch (FeedSubEmptyException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Cannot read feed; server returned an empty page.', __FILE__); } catch (FeedSubBadHTMLException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Bad HTML, could not find feed link.', __FILE__); } catch (FeedSubNoFeedException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Could not find a feed linked from this URL.', __FILE__); } catch (FeedSubUnrecognizedTypeException $e) { + // TRANS: Error text. $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); common_debug('Not a recognized feed type.', __FILE__); } catch (Exception $e) { // Any new ones we forgot about - $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + // TRANS: Error text. + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname."); common_debug(sprintf('Bad feed URL: %s %s', get_class($e), $e->getMessage()), __FILE__); } @@ -350,7 +366,7 @@ class OStatusSubAction extends Action // CSRF protection $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $this->showForm(_('There was a problem with your session token. '. + $this->showForm(_m('There was a problem with your session token. '. 'Try again, please.')); return; } @@ -377,6 +393,7 @@ class OStatusSubAction extends Action $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); $this->elementStart('head'); + // TRANS: Form title. $this->element('title', null, _m('Subscribe to user')); $this->elementEnd('head'); $this->elementStart('body'); @@ -408,6 +425,7 @@ class OStatusSubAction extends Action function getInstructions() { + // TRANS: Instructions. return _m('You can subscribe to users from other supported sites. Paste their address or profile URI below:'); } @@ -426,7 +444,6 @@ class OStatusSubAction extends Action * * @return void */ - function showContent() { if ($this->oprofile) { @@ -459,5 +476,4 @@ class OStatusSubAction extends Action function showNoticeForm() { // nop } - } diff --git a/plugins/OStatus/actions/ownerxrd.php b/plugins/OStatus/actions/ownerxrd.php index 9c141d8c79..3f99e1cbd0 100644 --- a/plugins/OStatus/actions/ownerxrd.php +++ b/plugins/OStatus/actions/ownerxrd.php @@ -22,7 +22,9 @@ * @maintainer James Walker <james@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} class OwnerxrdAction extends XrdAction { @@ -32,15 +34,15 @@ class OwnerxrdAction extends XrdAction function prepare($args) { $this->user = User::siteOwner(); - + if (!$this->user) { - $this->clientError(_('No such user.'), 404); + $this->clientError(_m('No such user.'), 404); return false; } $nick = common_canonical_nickname($this->user->nickname); $acct = 'acct:' . $nick . '@' . common_config('site', 'server'); - + $this->xrd = new XRD(); // Check to see if a $config['webfinger']['owner'] has been set diff --git a/plugins/OStatus/actions/pushcallback.php b/plugins/OStatus/actions/pushcallback.php index 9a2067b8ca..9b83d43c4d 100644 --- a/plugins/OStatus/actions/pushcallback.php +++ b/plugins/OStatus/actions/pushcallback.php @@ -22,8 +22,9 @@ * @maintainer Brion Vibber <brion@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - +if (!defined('STATUSNET')) { + exit(1); +} class PushCallbackAction extends Action { @@ -37,7 +38,7 @@ class PushCallbackAction extends Action $this->handleGet(); } } - + /** * Handler for POST content updates from the hub */ @@ -46,12 +47,13 @@ class PushCallbackAction extends Action $feedid = $this->arg('feed'); common_log(LOG_INFO, "POST for feed id $feedid"); if (!$feedid) { - throw new ServerException('Empty or invalid feed id', 400); + throw new ServerException(_m('Empty or invalid feed id.'), 400); } $feedsub = FeedSub::staticGet('id', $feedid); if (!$feedsub) { - throw new ServerException('Unknown PuSH feed id ' . $feedid, 400); + // TRANS: Server exception. %s is a feed ID. + throw new ServerException(sprintf(_m('Unknown PuSH feed id %s'),$feedid), 400); } $hmac = ''; @@ -70,7 +72,7 @@ class PushCallbackAction extends Action $qm = QueueManager::get(); $qm->enqueue($data, 'pushin'); } - + /** * Handler for GET verification requests from the hub. */ @@ -81,28 +83,34 @@ class PushCallbackAction extends Action $challenge = $this->arg('hub_challenge'); $lease_seconds = $this->arg('hub_lease_seconds'); $verify_token = $this->arg('hub_verify_token'); + common_log(LOG_INFO, __METHOD__ . ": sub verification mode: $mode topic: $topic challenge: $challenge lease_seconds: $lease_seconds verify_token: $verify_token"); if ($mode != 'subscribe' && $mode != 'unsubscribe') { - throw new ClientException("Bad hub.mode $mode", 404); + // TRANS: Client exception. %s is an invalid value for hub.mode. + throw new ClientException(sprintf(_m('Bad hub.mode "$s".',$mode)), 404); } $feedsub = FeedSub::staticGet('uri', $topic); if (!$feedsub) { - throw new ClientException("Bad hub.topic feed $topic", 404); + // TRANS: Client exception. %s is an invalid feed name. + throw new ClientException(sprintf(_m('Bad hub.topic feed "%s".'),$topic), 404); } if ($feedsub->verify_token !== $verify_token) { - throw new ClientException("Bad hub.verify_token $token for $topic", 404); + // TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. + throw new ClientException(sprintf(_m('Bad hub.verify_token %1$s for %2$s.'),$token,$topic), 404); } if ($mode == 'subscribe') { // We may get re-sub requests legitimately. if ($feedsub->sub_state != 'subscribe' && $feedsub->sub_state != 'active') { - throw new ClientException("Unexpected subscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected subscribe request for %s.'),$topic), 404); } } else { if ($feedsub->sub_state != 'unsubscribe') { - throw new ClientException("Unexpected unsubscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected unsubscribe request for %s.'),$topic), 404); } } diff --git a/plugins/OStatus/actions/pushhub.php b/plugins/OStatus/actions/pushhub.php index 842d65e7d2..bfd51ec02f 100644 --- a/plugins/OStatus/actions/pushhub.php +++ b/plugins/OStatus/actions/pushhub.php @@ -23,6 +23,10 @@ * @maintainer Brion Vibber <brion@status.net> */ +if (!defined('STATUSNET')) { + exit(1); +} + /** @@ -36,7 +40,6 @@ Things to consider... */ - class PushHubAction extends Action { function arg($arg, $def=null) @@ -63,9 +66,11 @@ class PushHubAction extends Action $this->subunsub($mode); break; case "publish": - throw new ClientException("Publishing outside feeds not supported.", 400); + // TRANS: Client exception. + throw new ClientException(_m('Publishing outside feeds not supported.'), 400); default: - throw new ClientException("Unrecognized mode '$mode'.", 400); + // TRANS: Client exception. %s is a mode. + throw new ClientException(sprintf(_m('Unrecognized mode "%s".'),$mode), 400); } } @@ -84,24 +89,28 @@ class PushHubAction extends Action $topic = $this->argUrl('hub.topic'); if (!$this->recognizedFeed($topic)) { - throw new ClientException("Unsupported hub.topic $topic; this hub only serves local user and group Atom feeds."); + // TRANS: Client exception. %s is a topic. + throw new ClientException(sprintf(_m('Unsupported hub.topic %s this hub only serves local user and group Atom feeds.'),$topic)); } $verify = $this->arg('hub.verify'); // @fixme may be multiple if ($verify != 'sync' && $verify != 'async') { - throw new ClientException("Invalid hub.verify $verify; must be sync or async."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.verify "%s". It must be sync or async.'),$verify)); } $lease = $this->arg('hub.lease_seconds', null); if ($mode == 'subscribe' && $lease != '' && !preg_match('/^\d+$/', $lease)) { - throw new ClientException("Invalid hub.lease $lease; must be empty or positive integer."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.lease "%s". It must be empty or positive integer.'),$lease)); } $token = $this->arg('hub.verify_token', null); $secret = $this->arg('hub.secret', null); if ($secret != '' && strlen($secret) >= 200) { - throw new ClientException("Invalid hub.secret $secret; must be under 200 bytes."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.secret "%s". It must be under 200 bytes.'),$secret)); } $sub = HubSub::staticGet($topic, $callback); @@ -152,7 +161,8 @@ class PushHubAction extends Action if ($feed == $userFeed) { $user = User::staticGet('id', $id); if (!$user) { - throw new ClientException("Invalid hub.topic $feed; user doesn't exist."); + // TRANS: Client exception. + throw new ClientException(sprintt(_m('Invalid hub.topic "%s". User doesn\'t exist.'),$feed)); } else { return true; } @@ -160,7 +170,8 @@ class PushHubAction extends Action if ($feed == $groupFeed) { $user = User_group::staticGet('id', $id); if (!$user) { - throw new ClientException("Invalid hub.topic $feed; group doesn't exist."); + // TRANS: Client exception. + throw new ClientException(sprintf(_m('Invalid hub.topic "%s". Group doesn\'t exist.'),$feed)); } else { return true; } @@ -183,7 +194,9 @@ class PushHubAction extends Action if (Validate::uri($url, $params)) { return $url; } else { - throw new ClientException("Invalid URL passed for $arg: '$url'"); + // TRANS: Client exception. + // TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. + throw new ClientException(sprintf(_m('Invalid URL passed for %1$s: "%2$s"'),$arg,$url)); } } @@ -199,4 +212,3 @@ class PushHubAction extends Action return HubSub::staticGet($feed, $callback); } } - diff --git a/plugins/OStatus/actions/usersalmon.php b/plugins/OStatus/actions/usersalmon.php index 641e131abc..e78c653300 100644 --- a/plugins/OStatus/actions/usersalmon.php +++ b/plugins/OStatus/actions/usersalmon.php @@ -17,15 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -/** - * @package OStatusPlugin - * @author James Walker <james@status.net> - */ - if (!defined('STATUSNET')) { exit(1); } +/** + * @package OStatusPlugin + * @author James Walker <james@status.net> + */ class UsersalmonAction extends SalmonAction { function prepare($args) @@ -35,13 +34,13 @@ class UsersalmonAction extends SalmonAction $id = $this->trimmed('id'); if (!$id) { - $this->clientError(_('No ID.')); + $this->clientError(_m('No ID.')); } $this->user = User::staticGet('id', $id); if (empty($this->user)) { - $this->clientError(_('No such user.')); + $this->clientError(_m('No such user.')); } return true; @@ -71,25 +70,31 @@ class UsersalmonAction extends SalmonAction // Notice must either be a) in reply to a notice by this user // or b) to the attention of this user + // or c) in reply to a notice to the attention of this user $context = $this->activity->context; if (!empty($context->replyToID)) { $notice = Notice::staticGet('uri', $context->replyToID); if (empty($notice)) { - throw new ClientException("In reply to unknown notice"); + // TRANS: Client exception. + throw new ClientException(_m('In reply to unknown notice.')); } - if ($notice->profile_id != $this->user->id) { - throw new ClientException("In reply to a notice not by this user"); + if ($notice->profile_id != $this->user->id && + !in_array($this->user->id, $notice->getReplies())) { + // TRANS: Client exception. + throw new ClientException(_m('In reply to a notice not by this user and not mentioning this user.')); } } else if (!empty($context->attention)) { if (!in_array($this->user->uri, $context->attention) && !in_array(common_profile_url($this->user->nickname), $context->attention)) { common_log(LOG_ERR, "{$this->user->uri} not in attention list (".implode(',', $context->attention).")"); - throw new ClientException("To the attention of user(s) not including this one!"); + // TRANS: Client exception. + throw new ClientException('To the attention of user(s), not including this one.'); } } else { - throw new ClientException("Not to anyone in reply to anything!"); + // TRANS: Client exception. + throw new ClientException('Not to anyone in reply to anything.'); } $existing = Notice::staticGet('uri', $this->activity->objects[0]->id); @@ -106,7 +111,6 @@ class UsersalmonAction extends SalmonAction * We've gotten a follow/subscribe notification from a remote user. * Save a subscription relationship for them. */ - function handleFollow() { $oprofile = $this->ensureProfile(); @@ -150,11 +154,13 @@ class UsersalmonAction extends SalmonAction 'notice_id' => $notice->id)); if (!empty($old)) { - throw new ClientException("We already know that's a fave!"); + // TRANS: Client exception. + throw new ClientException(_('This is already a favorite.')); } if (!Fave::addNew($profile, $notice)) { - throw new ClientException("Could not save new favorite."); + // TRANS: Client exception. + throw new ClientException(_m('Could not save new favorite.')); } } @@ -170,7 +176,8 @@ class UsersalmonAction extends SalmonAction $fave = Fave::pkeyGet(array('user_id' => $profile->id, 'notice_id' => $notice->id)); if (empty($fave)) { - throw new ClientException("Notice wasn't favorited!"); + // TRANS: Client exception. + throw new ClientException(_('Notice wasn\'t favorited!')); } $fave->delete(); @@ -184,7 +191,8 @@ class UsersalmonAction extends SalmonAction function getNotice($object) { if (!$object) { - throw new ClientException("Can't favorite/unfavorite without an object."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t favorite/unfavorite without an object.')); } switch ($object->type) { @@ -195,20 +203,22 @@ class UsersalmonAction extends SalmonAction case ActivityObject::COMMENT: break; default: - throw new ClientException("Can't handle that kind of object for liking/faving."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t handle that kind of object for liking/faving.')); } $notice = Notice::staticGet('uri', $object->id); if (empty($notice)) { - throw new ClientException("Notice with ID $object->id unknown."); + // TRANS: Client exception. %s is an object ID. + throw new ClientException(sprintf(_m('Notice with ID %s unknown.'),$object->id)); } if ($notice->profile_id != $this->user->id) { - throw new ClientException("Notice with ID $object->id not posted by $this->user->id."); + // TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. + throw new ClientException(sprintf(_m('Notice with ID %1$s not posted by %2$s.'),$object->id,$this->user->id)); } return $notice; } - } diff --git a/plugins/OStatus/classes/FeedSub.php b/plugins/OStatus/classes/FeedSub.php index dd1968db12..140f323846 100644 --- a/plugins/OStatus/classes/FeedSub.php +++ b/plugins/OStatus/classes/FeedSub.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * @package OStatusPlugin * @maintainer Brion Vibber <brion@status.net> @@ -39,7 +43,6 @@ PuSH subscription flow: hub sends us updates via POST */ - class FeedDBException extends FeedSubException { public $obj; @@ -88,7 +91,6 @@ class FeedSub extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -143,7 +145,6 @@ class FeedSub extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -157,7 +158,6 @@ class FeedSub extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('id' => 'K', 'uri' => 'U'); @@ -249,7 +249,7 @@ class FeedSub extends Memcached_DataObject // We'll never actually get updates in this mode. return true; } else { - throw new ServerException("Attempting to start PuSH subscription for feed with no hub"); + throw new ServerException(_m('Attempting to start PuSH subscription for feed with no hub.')); } } @@ -279,7 +279,7 @@ class FeedSub extends Memcached_DataObject // We'll never actually get updates in this mode. return true; } else { - throw new ServerException("Attempting to end PuSH subscription for feed with no hub"); + throw new ServerException(_m('Attempting to end PuSH subscription for feed with no hub.')); } } @@ -500,6 +500,4 @@ class FeedSub extends Memcached_DataObject } return false; } - } - diff --git a/plugins/OStatus/classes/HubSub.php b/plugins/OStatus/classes/HubSub.php index 7db528a4e8..e7ac23af58 100644 --- a/plugins/OStatus/classes/HubSub.php +++ b/plugins/OStatus/classes/HubSub.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * PuSH feed subscription record * @package Hub @@ -54,7 +58,6 @@ class HubSub extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('hashkey' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, @@ -112,7 +115,6 @@ class HubSub extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('hashkey' => 'K'); @@ -206,7 +208,8 @@ class HubSub extends Memcached_DataObject if ($status >= 200 && $status < 300) { common_log(LOG_INFO, "Verified $mode of $this->callback:$this->topic"); } else { - throw new ClientException("Hub subscriber verification returned HTTP $status"); + // TRANS: Client exception. %s is a HTTP status code. + throw new ClientException(sprintf(_m('Hub subscriber verification returned HTTP %s.'),$status)); } $old = HubSub::staticGet($this->topic, $this->callback); @@ -307,9 +310,9 @@ class HubSub extends Memcached_DataObject /** * Queue up a large batch of pushes to multiple subscribers * for this same topic update. - * + * * If queues are disabled, this will run immediately. - * + * * @param string $atom well-formed Atom feed * @param array $pushCallbacks list of callback URLs */ @@ -352,11 +355,9 @@ class HubSub extends Memcached_DataObject if ($response->isOk()) { return true; } else { - throw new Exception("Callback returned status: " . - $response->getStatus() . - "; body: " . - trim($response->getBody())); + // TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. + throw new Exception(sprintf(_m('Callback returned status: %1$s. Body: %2$s'), + $response->getStatus(),trim($response->getBody()))); } } } - diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index f8c56a05f3..e057deb144 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -27,27 +27,30 @@ * @link http://status.net/ */ +if (!defined('STATUSNET')) { + exit(1); +} + require_once 'Crypt/RSA.php'; class Magicsig extends Memcached_DataObject { - const PUBLICKEYREL = 'magic-public-key'; - + public $__table = 'magicsig'; public $user_id; public $keypair; public $alg; - + public $publicKey; public $privateKey; - + public function __construct($alg = 'RSA-SHA256') { $this->alg = $alg; } - + public /*static*/ function staticGet($k, $v=null) { $obj = parent::staticGet(__CLASS__, $k, $v); @@ -86,7 +89,6 @@ class Magicsig extends Memcached_DataObject 64, false)); } - function keys() { return array_keys($this->keyTypes()); @@ -111,7 +113,7 @@ class Magicsig extends Memcached_DataObject public function generate($user_id) { $rsa = new Crypt_RSA(); - + $keypair = $rsa->createKey(); $rsa->loadKey($keypair['privatekey']); @@ -121,12 +123,11 @@ class Magicsig extends Memcached_DataObject $this->publicKey = new Crypt_RSA(); $this->publicKey->loadKey($keypair['publickey']); - + $this->user_id = $user_id; $this->insert(); } - public function toString($full_pair = true) { $mod = Magicsig::base64_url_encode($this->publicKey->modulus->toBytes()); @@ -136,13 +137,13 @@ class Magicsig extends Memcached_DataObject $private_exp = '.' . Magicsig::base64_url_encode($this->privateKey->exponent->toBytes()); } - return 'RSA.' . $mod . '.' . $exp . $private_exp; + return 'RSA.' . $mod . '.' . $exp . $private_exp; } - + public static function fromString($text) { $magic_sig = new Magicsig(); - + // remove whitespace $text = preg_replace('/\s+/', '', $text); @@ -150,7 +151,7 @@ class Magicsig extends Memcached_DataObject if (!preg_match('/RSA\.([^\.]+)\.([^\.]+)(.([^\.]+))?/', $text, $matches)) { return false; } - + $mod = $matches[1]; $exp = $matches[2]; if (!empty($matches[4])) { @@ -184,7 +185,7 @@ class Magicsig extends Memcached_DataObject $this->publicKey = $rsa; } } - + public function getName() { return $this->alg; @@ -197,9 +198,8 @@ class Magicsig extends Memcached_DataObject case 'RSA-SHA256': return 'sha256'; } - } - + public function sign($bytes) { $sig = $this->privateKey->sign($bytes); @@ -223,5 +223,3 @@ class Magicsig extends Memcached_DataObject return base64_decode(strtr($input, '-_', '+/')); } } - - diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index cc4307b14f..1089f6a21f 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -17,12 +17,16 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * @package OStatusPlugin * @maintainer Brion Vibber <brion@status.net> */ -class Ostatus_profile extends Memcached_DataObject +class Ostatus_profile extends Managed_DataObject { public $__table = 'ostatus_profile'; @@ -44,77 +48,35 @@ class Ostatus_profile extends Memcached_DataObject } /** - * 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 table definition for Schema setup and DB_DataObject usage. * * @return array array of column definitions */ - function table() - { - return array('uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, - 'profile_id' => DB_DATAOBJECT_INT, - 'group_id' => DB_DATAOBJECT_INT, - 'feeduri' => DB_DATAOBJECT_STR, - 'salmonuri' => DB_DATAOBJECT_STR, - 'avatar' => DB_DATAOBJECT_STR, - 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, - 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); - } - static function schemaDef() { - return array(new ColumnDef('uri', 'varchar', - 255, false, 'PRI'), - new ColumnDef('profile_id', 'integer', - null, true, 'UNI'), - new ColumnDef('group_id', 'integer', - null, true, 'UNI'), - new ColumnDef('feeduri', 'varchar', - 255, true, 'UNI'), - new ColumnDef('salmonuri', 'text', - null, true), - new ColumnDef('avatar', 'text', - null, true), - new ColumnDef('created', 'datetime', - null, false), - new ColumnDef('modified', '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() - { - return array_keys($this->keyTypes()); - } - - /** - * 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 array('uri' => 'K', 'profile_id' => 'U', 'group_id' => 'U', 'feeduri' => 'U'); - } - - function sequenceKey() - { - return array(false, false, false); + return array( + 'fields' => array( + 'uri' => array('type' => 'varchar', 'length' => 255, 'not null' => true), + 'profile_id' => array('type' => 'integer'), + 'group_id' => array('type' => 'integer'), + 'feeduri' => array('type' => 'varchar', 'length' => 255), + 'salmonuri' => array('type' => 'varchar', 'length' => 255), + 'avatar' => array('type' => 'text'), + 'created' => array('type' => 'datetime', 'not null' => true), + 'modified' => array('type' => 'datetime', 'not null' => true), + ), + 'primary key' => array('uri'), + 'unique keys' => array( + 'ostatus_profile_profile_id_idx' => array('profile_id'), + 'ostatus_profile_group_id_idx' => array('group_id'), + 'ostatus_profile_feeduri_idx' => array('feeduri'), + ), + 'foreign keys' => array( + 'ostatus_profile_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + 'ostatus_profile_group_id_fkey' => array('user_group', array('group_id' => 'id')), + ), + ); } /** @@ -188,9 +150,11 @@ class Ostatus_profile extends Memcached_DataObject } else if ($this->group_id && !$this->profile_id) { return true; } else if ($this->group_id && $this->profile_id) { - throw new ServerException("Invalid ostatus_profile state: both group and profile IDs set for $this->uri"); + // TRANS: Server exception. %s is a URI. + throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs set for %s.'),$this->uri)); } else { - throw new ServerException("Invalid ostatus_profile state: both group and profile IDs empty for $this->uri"); + // TRANS: Server exception. %s is a URI. + throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs empty for %s.'),$this->uri)); } } @@ -278,7 +242,9 @@ class Ostatus_profile extends Memcached_DataObject if ($type == 'object') { $type = get_class($actor); } - throw new ServerException("Invalid actor passed to " . __METHOD__ . ": " . $type); + // TRANS: Server exception. + // TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. + throw new ServerException(sprintf(_m('Invalid actor passed to %1$s: %2$s.'),__METHOD__,$type)); } if ($object == null) { $object = $this; @@ -370,7 +336,8 @@ class Ostatus_profile extends Memcached_DataObject } else if ($entry instanceof Notice) { return $preamble . $entry->asAtomEntry(true, true); } else { - throw new ServerException("Invalid type passed to Ostatus_profile::notify; must be XML string or Activity entry"); + // TRANS: Server exception. + throw new ServerException(_m('Invalid type passed to Ostatus_profile::notify. It must be XML string or Activity entry.')); } } @@ -400,7 +367,8 @@ class Ostatus_profile extends Memcached_DataObject } else if ($feed->localName == 'rss') { // @fixme check namespace $this->processRssFeed($feed, $source); } else { - throw new Exception("Unknown feed format."); + // TRANS: Exception. + throw new Exception(_m('Unknown feed format.')); } } @@ -423,7 +391,8 @@ class Ostatus_profile extends Memcached_DataObject $channels = $rss->getElementsByTagName('channel'); if ($channels->length == 0) { - throw new Exception("RSS feed without a channel."); + // TRANS: Exception. + throw new Exception(_m('RSS feed without a channel.')); } else if ($channels->length > 1) { common_log(LOG_WARNING, __METHOD__ . ": more than one channel in an RSS feed"); } @@ -467,7 +436,8 @@ class Ostatus_profile extends Memcached_DataObject } break; default: - throw new ClientException("Can't handle that kind of post."); + // TRANS: Client exception. + throw new ClientException(_m('Can\'t handle that kind of post.')); } Event::handle('EndHandleFeedEntry', array($activity)); @@ -549,13 +519,14 @@ class Ostatus_profile extends Memcached_DataObject $sourceContent = $note->title; } else { // @fixme fetch from $sourceUrl? - throw new ClientException("No content for notice {$sourceUri}"); + // TRANS: Client exception. %s is a source URI. + throw new ClientException(sprintf(_m('No content for notice %s.'),$sourceUri)); } // Get (safe!) HTML and text versions of the content $rendered = $this->purify($sourceContent); - $content = html_entity_decode(strip_tags($rendered)); + $content = html_entity_decode(strip_tags($rendered), ENT_QUOTES, 'UTF-8'); $shortened = common_shorten_links($content); @@ -566,7 +537,7 @@ class Ostatus_profile extends Memcached_DataObject if (Notice::contentTooLong($shortened)) { $attachment = $this->saveHTMLFile($note->title, $rendered); - $summary = html_entity_decode(strip_tags($note->summary)); + $summary = html_entity_decode(strip_tags($note->summary), ENT_QUOTES, 'UTF-8'); if (empty($summary)) { $summary = $content; } @@ -580,12 +551,17 @@ class Ostatus_profile extends Memcached_DataObject // We mark up the attachment link specially for the HTML output // so we can fold-out the full version inline. + + // @fixme I18N this tooltip will be saved with the site's default language + // TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime + // TRANS: this will usually be replaced with localised text from StatusNet core messages. + $showMoreText = _m('Show more'); $attachUrl = common_local_url('attachment', array('attachment' => $attachment->id)); $rendered = common_render_text($shortSummary) . '<a href="' . htmlspecialchars($attachUrl) .'"'. ' class="attachment more"' . - ' title="'. htmlspecialchars(_m('Show more')) . '">' . + ' title="'. htmlspecialchars($showMoreText) . '">' . '…' . '</a>'; } @@ -699,21 +675,7 @@ class Ostatus_profile extends Memcached_DataObject continue; } - // Is the recipient a remote group? - $oprofile = Ostatus_profile::staticGet('uri', $recipient); - if ($oprofile) { - if ($oprofile->isGroup()) { - // Deliver to local members of this remote group. - // @fixme sender verification? - $groups[] = $oprofile->group_id; - } else { - common_log(LOG_DEBUG, "Skipping reply to remote profile $recipient"); - } - continue; - } - // Is the recipient a local group? - // @fixme uri on user_group isn't reliable yet // $group = User_group::staticGet('uri', $recipient); $id = OStatusPlugin::localGroupFromUrl($recipient); if ($id) { @@ -732,7 +694,22 @@ class Ostatus_profile extends Memcached_DataObject } } - common_log(LOG_DEBUG, "Skipping reply to unrecognized profile $recipient"); + // Is the recipient a remote user or group? + try { + $oprofile = Ostatus_profile::ensureProfileURI($recipient); + if ($oprofile->isGroup()) { + // Deliver to local members of this remote group. + // @fixme sender verification? + $groups[] = $oprofile->group_id; + } else { + // may be canonicalized or something + $replies[] = $oprofile->uri; + } + continue; + } catch (Exception $e) { + // Neither a recognizable local nor remote user! + common_log(LOG_DEBUG, "Skipping reply to unrecognized profile $recipient: " . $e->getMessage()); + } } $attention_uris = $replies; @@ -770,7 +747,8 @@ class Ostatus_profile extends Memcached_DataObject $response = $client->get($profile_url); if (!$response->isOk()) { - throw new Exception("Could not reach profile page: " . $profile_url); + // TRANS: Exception. %s is a profile URL. + throw new Exception(sprintf(_m('Could not reach profile page %s.'),$profile_url)); } // Check if we have a non-canonical URL @@ -827,7 +805,8 @@ class Ostatus_profile extends Memcached_DataObject return self::ensureFeedURL($feedurl, $hints); } - throw new Exception("Could not find a feed URL for profile page " . $finalUrl); + // TRANS: Exception. %s is a URL. + throw new Exception(sprintf(_m('Could not find a feed URL for profile page %s.'),$finalUrl)); } /** @@ -859,6 +838,7 @@ class Ostatus_profile extends Memcached_DataObject $user = User::staticGet('id', $profile->id); if (!empty($user)) { + // @todo i18n FIXME: use sprintf and add i18n (?) throw new OStatusShadowException($profile, "'$profile_url' is the profile for local user '{$user->nickname}'."); } @@ -963,8 +943,8 @@ class Ostatus_profile extends Memcached_DataObject } // XXX: make some educated guesses here - - throw new FeedSubException("Can't find enough profile information to make a feed."); + // TRANS: Feed sub exception. + throw new FeedSubException(_m('Can\'t find enough profile information to make a feed.')); } /** @@ -1023,7 +1003,8 @@ class Ostatus_profile extends Memcached_DataObject return; } if (!common_valid_http_url($url)) { - throw new ServerException(sprintf(_m("Invalid avatar URL %s"), $url)); + // TRANS: Server exception. %s is a URL. + throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url)); } if ($this->isGroup()) { @@ -1033,29 +1014,44 @@ class Ostatus_profile extends Memcached_DataObject } if (!$self) { throw new ServerException(sprintf( - _m("Tried to update avatar for unsaved remote profile %s"), + // TRANS: Server exception. %s is a URI. + _m("Tried to update avatar for unsaved remote profile %s."), $this->uri)); } // @fixme this should be better encapsulated // ripped from oauthstore.php (for old OMB client) $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar'); - if (!copy($url, $temp_filename)) { - throw new ServerException(sprintf(_m("Unable to fetch avatar from %s"), $url)); - } + try { + if (!copy($url, $temp_filename)) { + // TRANS: Server exception. %s is a URL. + throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url)); + } - if ($this->isGroup()) { - $id = $this->group_id; - } else { - $id = $this->profile_id; + if ($this->isGroup()) { + $id = $this->group_id; + } else { + $id = $this->profile_id; + } + // @fixme should we be using different ids? + $imagefile = new ImageFile($id, $temp_filename); + $filename = Avatar::filename($id, + image_type_to_extension($imagefile->type), + null, + common_timestamp()); + rename($temp_filename, Avatar::path($filename)); + } catch (Exception $e) { + unlink($temp_filename); + throw $e; } - // @fixme should we be using different ids? - $imagefile = new ImageFile($id, $temp_filename); - $filename = Avatar::filename($id, - image_type_to_extension($imagefile->type), - null, - common_timestamp()); - rename($temp_filename, Avatar::path($filename)); + // @fixme hardcoded chmod is lame, but seems to be necessary to + // keep from accidentally saving images from command-line (queues) + // that can't be read from web server, which causes hard-to-notice + // problems later on: + // + // http://status.net/open-source/issues/2663 + chmod(Avatar::path($filename), 0644); + $self->setOriginal($filename); $orig = clone($this); @@ -1071,7 +1067,7 @@ class Ostatus_profile extends Memcached_DataObject * @return mixed URL string or false */ - protected static function getActivityObjectAvatar($object, $hints=array()) + public static function getActivityObjectAvatar($object, $hints=array()) { if ($object->avatarLinks) { $best = false; @@ -1224,7 +1220,7 @@ class Ostatus_profile extends Memcached_DataObject if ($object->link && common_valid_http_url($object->link)) { return $object->link; } - throw new ServerException("No author ID URI found"); + throw new ServerException("No author ID URI found."); } /** @@ -1254,11 +1250,13 @@ class Ostatus_profile extends Memcached_DataObject $user = User::staticGet('uri', $homeuri); if ($user) { - throw new Exception("Local user can't be referenced as remote."); + // TRANS: Exception. + throw new Exception(_m('Local user can\'t be referenced as remote.')); } if (OStatusPlugin::localGroupFromUrl($homeuri)) { - throw new Exception("Local group can't be referenced as remote."); + // TRANS: Exception. + throw new Exception(_m('Local group can\'t be referenced as remote.')); } if (array_key_exists('feedurl', $hints)) { @@ -1309,7 +1307,8 @@ class Ostatus_profile extends Memcached_DataObject $oprofile->profile_id = $profile->insert(); if (!$oprofile->profile_id) { - throw new ServerException("Can't save local profile"); + // TRANS: Server exception. + throw new ServerException(_m('Can\'t save local profile.')); } } else { $group = new User_group(); @@ -1319,14 +1318,16 @@ class Ostatus_profile extends Memcached_DataObject $oprofile->group_id = $group->insert(); if (!$oprofile->group_id) { - throw new ServerException("Can't save local profile"); + // TRANS: Server exception. + throw new ServerException(_m('Can\'t save local profile.')); } } $ok = $oprofile->insert(); if (!$ok) { - throw new ServerException("Can't save OStatus profile"); + // TRANS: Server exception. + throw new ServerException(_m('Can\'t save OStatus profile.')); } $avatar = self::getActivityObjectAvatar($object, $hints); @@ -1368,7 +1369,7 @@ class Ostatus_profile extends Memcached_DataObject } } - protected static function updateProfile($profile, $object, $hints=array()) + public static function updateProfile($profile, $object, $hints=array()) { $orig = clone($profile); @@ -1496,7 +1497,7 @@ class Ostatus_profile extends Memcached_DataObject return $bio; } - protected static function getActivityObjectNickname($object, $hints=array()) + public static function getActivityObjectNickname($object, $hints=array()) { if ($object->poco) { if (!empty($object->poco->preferredUsername)) { @@ -1513,8 +1514,11 @@ class Ostatus_profile extends Memcached_DataObject } // Try the profile url (like foo.example.com or example.com/user/foo) - - $profileUrl = ($object->link) ? $object->link : $hints['profileurl']; + if (!empty($object->link)) { + $profileUrl = $object->link; + } else if (!empty($hints['profileurl'])) { + $profileUrl = $hints['profileurl']; + } if (!empty($profileUrl)) { $nickname = self::nicknameFromURI($profileUrl); @@ -1545,9 +1549,11 @@ class Ostatus_profile extends Memcached_DataObject protected static function nicknameFromURI($uri) { - preg_match('/(\w+):/', $uri, $matches); - - $protocol = $matches[1]; + if (preg_match('/(\w+):/', $uri, $matches)) { + $protocol = $matches[1]; + } else { + return null; + } switch ($protocol) { case 'acct': @@ -1584,7 +1590,8 @@ class Ostatus_profile extends Memcached_DataObject if ($uri !== false) { if (is_null($uri)) { // Negative cache entry - throw new Exception('Not a valid webfinger address.'); + // TRANS: Exception. + throw new Exception(_m('Not a valid webfinger address.')); } $oprofile = Ostatus_profile::staticGet('uri', $uri); if (!empty($oprofile)) { @@ -1611,7 +1618,8 @@ class Ostatus_profile extends Memcached_DataObject // Save negative cache entry so we don't waste time looking it up again. // @fixme distinguish temporary failures? self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), null); - throw new Exception('Not a valid webfinger address.'); + // TRANS: Exception. + throw new Exception(_m('Not a valid webfinger address.')); } $hints = array('webfinger' => $addr); @@ -1692,7 +1700,8 @@ class Ostatus_profile extends Memcached_DataObject if (!$profile_id) { common_log_db_error($profile, 'INSERT', __FILE__); - throw new Exception("Couldn't save profile for '$addr'"); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t save profile for "%s".'),$addr)); } $oprofile = new Ostatus_profile(); @@ -1710,14 +1719,16 @@ class Ostatus_profile extends Memcached_DataObject if (!$result) { common_log_db_error($oprofile, 'INSERT', __FILE__); - throw new Exception("Couldn't save ostatus_profile for '$addr'"); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t save ostatus_profile for "%s".'),$addr)); } self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri); return $oprofile; } - throw new Exception("Couldn't find a valid profile for '$addr'"); + // TRANS: Exception. %s is a webfinger address. + throw new Exception(sprintf(_m('Couldn\'t find a valid profile for "%s".'),$addr)); } /** @@ -1759,11 +1770,43 @@ class Ostatus_profile extends Memcached_DataObject if ($file_id === false) { common_log_db_error($file, "INSERT", __FILE__); - throw new ServerException(_('Could not store HTML content of long post as file.')); + // TRANS: Server exception. + throw new ServerException(_m('Could not store HTML content of long post as file.')); } return $file; } + + static function ensureProfileURI($uri) + { + $oprofile = null; + + // First, try to query it + + $oprofile = Ostatus_profile::staticGet('uri', $uri); + + // If unfound, do discovery stuff + + if (empty($oprofile)) { + if (preg_match("/^(\w+)\:(.*)/", $uri, $match)) { + $protocol = $match[1]; + switch ($protocol) { + case 'http': + case 'https': + $oprofile = Ostatus_profile::ensureProfileURL($uri); + break; + case 'acct': + case 'mailto': + $rest = $match[2]; + $oprofile = Ostatus_profile::ensureWebfinger($rest); + default: + common_log("Unrecognized URI protocol for profile: $protocol ($uri)"); + break; + } + } + } + return $oprofile; + } } /** @@ -1785,4 +1828,3 @@ class OStatusShadowException extends Exception parent::__construct($message); } } - diff --git a/plugins/OStatus/classes/Ostatus_source.php b/plugins/OStatus/classes/Ostatus_source.php index e6ce7d442b..0fd74e48ba 100644 --- a/plugins/OStatus/classes/Ostatus_source.php +++ b/plugins/OStatus/classes/Ostatus_source.php @@ -17,11 +17,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * @package OStatusPlugin * @maintainer Brion Vibber <brion@status.net> */ - class Ostatus_source extends Memcached_DataObject { public $__table = 'ostatus_source'; @@ -43,7 +46,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -69,7 +71,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array_keys($this->keyTypes()); @@ -83,7 +84,6 @@ class Ostatus_source extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return array('notice_id' => 'K'); diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index 7187c1f3e9..905ece2ca5 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -106,7 +106,8 @@ class Discovery } } - throw new Exception('Unable to find services for '. $id); + // TRANS: Exception. + throw new Exception(sprintf(_m('Unable to find services for %s.'),$id)); } public static function getService($links, $service) { @@ -160,7 +161,7 @@ class Discovery_LRDD_Host_Meta implements Discovery_LRDD } else { $domain = parse_url($uri, PHP_URL_HOST); } - + $url = 'http://'. $domain .'/.well-known/host-meta'; $xrd = Discovery::fetchXrd($url); diff --git a/plugins/OStatus/lib/discoveryhints.php b/plugins/OStatus/lib/discoveryhints.php index fa2ead7320..a98f4a6d67 100644 --- a/plugins/OStatus/lib/discoveryhints.php +++ b/plugins/OStatus/lib/discoveryhints.php @@ -20,7 +20,6 @@ */ class DiscoveryHints { - static function fromXRD($xrd) { $hints = array(); diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index 8a166a0be5..d978cc6745 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -22,7 +22,9 @@ * @maintainer Brion Vibber <brion@status.net> */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} class FeedSubBadURLException extends FeedSubException { diff --git a/plugins/OStatus/lib/hubconfqueuehandler.php b/plugins/OStatus/lib/hubconfqueuehandler.php index c8e0b72fee..d26c45be04 100644 --- a/plugins/OStatus/lib/hubconfqueuehandler.php +++ b/plugins/OStatus/lib/hubconfqueuehandler.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * Send a PuSH subscription verification from our internal hub. * @package Hub @@ -51,4 +55,3 @@ class HubConfQueueHandler extends QueueHandler return true; } } - diff --git a/plugins/OStatus/lib/huboutqueuehandler.php b/plugins/OStatus/lib/huboutqueuehandler.php index 3ad94646e6..67a9d9e36b 100644 --- a/plugins/OStatus/lib/huboutqueuehandler.php +++ b/plugins/OStatus/lib/huboutqueuehandler.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * Send a raw PuSH atom update from our internal hub. * @package Hub diff --git a/plugins/OStatus/lib/hubprepqueuehandler.php b/plugins/OStatus/lib/hubprepqueuehandler.php index 0d585938f4..0ed6a3ec57 100644 --- a/plugins/OStatus/lib/hubprepqueuehandler.php +++ b/plugins/OStatus/lib/hubprepqueuehandler.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * When we have a large batch of PuSH consumers, we break the data set * into smaller chunks. Enqueue final destinations... diff --git a/plugins/OStatus/lib/linkheader.php b/plugins/OStatus/lib/linkheader.php index cd78d31cef..efa3f65ff3 100644 --- a/plugins/OStatus/lib/linkheader.php +++ b/plugins/OStatus/lib/linkheader.php @@ -1,4 +1,7 @@ <?php +/** + * @todo Add file header and documentation. + */ class LinkHeader { diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index 967e5f6d17..03e6f7c665 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -32,7 +32,7 @@ class MagicEnvelope const ENCODING = 'base64url'; const NS = 'http://salmon-protocol.org/ns/magic-env'; - + private function normalizeUser($user_id) { if (substr($user_id, 0, 5) == 'http:' || @@ -70,13 +70,14 @@ class MagicEnvelope $keypair = $parts[1]; } } - + if ($keypair) { return $keypair; } } } - throw new Exception('Unable to locate signer public key'); + // TRANS: Exception. + throw new Exception(_m('Unable to locate signer public key.')); } @@ -92,8 +93,6 @@ class MagicEnvelope 'sig' => $signature_alg->sign($armored_text), 'alg' => $signature_alg->getName() ); - - } public function toXML($env) { @@ -105,13 +104,12 @@ class MagicEnvelope $xs->element('me:alg', null, $env['alg']); $xs->element('me:sig', null, $env['sig']); $xs->elementEnd('me:env'); - + $string = $xs->getString(); common_debug($string); return $string; } - public function unfold($env) { $dom = new DOMDocument(); @@ -137,7 +135,7 @@ class MagicEnvelope return $dom->saveXML(); } - + public function getAuthor($text) { $doc = new DOMDocument(); if (!$doc->loadXML($text)) { @@ -154,12 +152,12 @@ class MagicEnvelope } } } - + public function checkAuthor($text, $signer_uri) { return ($this->getAuthor($text) == $signer_uri); } - + public function verify($env) { if ($env['alg'] != 'RSA-SHA256') { @@ -181,14 +179,14 @@ class MagicEnvelope common_log(LOG_DEBUG, "Salmon error: ".$e->getMessage()); return false; } - + $verifier = Magicsig::fromString($keypair); if (!$verifier) { common_log(LOG_DEBUG, "Salmon error: unable to parse keypair"); return false; } - + return $verifier->verify($env['data'], $env['sig']); } @@ -219,5 +217,4 @@ class MagicEnvelope 'sig' => preg_replace('/\s/', '', $sig_element->nodeValue), ); } - } diff --git a/plugins/OStatus/lib/ostatusqueuehandler.php b/plugins/OStatus/lib/ostatusqueuehandler.php index 8905d2e210..d5ee0c5041 100644 --- a/plugins/OStatus/lib/ostatusqueuehandler.php +++ b/plugins/OStatus/lib/ostatusqueuehandler.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * Prepare PuSH and Salmon distributions for an outgoing message. * @@ -67,6 +71,17 @@ class OStatusQueueHandler extends QueueHandler } } + if (!empty($this->notice->reply_to)) { + $replyTo = Notice::staticGet('id', $this->notice->reply_to); + if (!empty($replyTo)) { + foreach($replyTo->getReplies() as $profile_id) { + $oprofile = Ostatus_profile::staticGet('profile_id', $profile_id); + if ($oprofile) { + $this->pingReply($oprofile); + } + } + } + } return true; } @@ -161,7 +176,7 @@ class OStatusQueueHandler extends QueueHandler * Queue up direct feed update pushes to subscribers on our internal hub. * If there are a large number of subscriber sites, intermediate bulk * distribution triggers may be queued. - * + * * @param string $atom update feed, containing only new/changed items * @param HubSub $sub open query of subscribers */ @@ -210,6 +225,4 @@ class OStatusQueueHandler extends QueueHandler return $feed; } - } - diff --git a/plugins/OStatus/lib/pushinqueuehandler.php b/plugins/OStatus/lib/pushinqueuehandler.php index 1fd29ae301..ec1911653a 100644 --- a/plugins/OStatus/lib/pushinqueuehandler.php +++ b/plugins/OStatus/lib/pushinqueuehandler.php @@ -17,12 +17,15 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * Process a feed distribution POST from a PuSH hub. * @package FeedSub * @author Brion Vibber <brion@status.net> */ - class PushInQueueHandler extends QueueHandler { function transport() diff --git a/plugins/OStatus/lib/salmon.php b/plugins/OStatus/lib/salmon.php index ef7719a40c..963da65084 100644 --- a/plugins/OStatus/lib/salmon.php +++ b/plugins/OStatus/lib/salmon.php @@ -31,10 +31,10 @@ class Salmon const REL_SALMON = 'salmon'; const REL_MENTIONED = 'mentioned'; - // XXX: these are deprecated + // XXX: these are deprecated const NS_REPLIES = "http://salmon-protocol.org/ns/salmon-replies"; const NS_MENTIONS = "http://salmon-protocol.org/ns/salmon-mention"; - + /** * Sign and post the given Atom entry as a Salmon message. * @@ -87,9 +87,10 @@ class Salmon // No keypair yet, let's generate one. $magickey = new Magicsig(); $magickey->generate($user->id); - } + } } else { - throw new Exception("Salmon invalid actor for signing"); + // TRANS: Exception. + throw new Exception(_m('Salmon invalid actor for signing.')); } try { @@ -100,11 +101,10 @@ class Salmon return $magic_env->toXML($env); } - public function verifyMagicEnv($text) { $magic_env = new MagicEnvelope(); - + $env = $magic_env->parse($text); return $magic_env->verify($env); diff --git a/plugins/OStatus/lib/salmonaction.php b/plugins/OStatus/lib/salmonaction.php index 9d6c6b269a..41bdb48928 100644 --- a/plugins/OStatus/lib/salmonaction.php +++ b/plugins/OStatus/lib/salmonaction.php @@ -38,11 +38,13 @@ class SalmonAction extends Action parent::prepare($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error. POST is a HTTP command. It should not be translated. $this->clientError(_m('This method requires a POST.')); } if (empty($_SERVER['CONTENT_TYPE']) || $_SERVER['CONTENT_TYPE'] != 'application/magic-envelope+xml') { - $this->clientError(_m('Salmon requires application/magic-envelope+xml')); + // TRANS: Client error. Do not translate "application/magic-envelope+xml" + $this->clientError(_m('Salmon requires "application/magic-envelope+xml".')); } $xml = file_get_contents('php://input'); @@ -51,6 +53,7 @@ class SalmonAction extends Action $salmon = new Salmon; if (!$salmon->verifyMagicEnv($xml)) { common_log(LOG_DEBUG, "Salmon signature verification failed."); + // TRANS: Client error. $this->clientError(_m('Salmon signature verification failed.')); } else { $magic_env = new MagicEnvelope(); @@ -62,6 +65,7 @@ class SalmonAction extends Action if ($dom->documentElement->namespaceURI != Activity::ATOM || $dom->documentElement->localName != 'entry') { common_log(LOG_DEBUG, "Got invalid Salmon post: $xml"); + // TRANS: Client error. $this->clientError(_m('Salmon post must be an Atom entry.')); } @@ -110,6 +114,7 @@ class SalmonAction extends Action $this->handleUpdateProfile(); break; default: + // TRANS: Client exception. throw new ClientException(_m("Unrecognized activity type.")); } Event::handle('EndHandleSalmon', array($this->activity)); @@ -118,41 +123,49 @@ class SalmonAction extends Action function handlePost() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand posts.")); } function handleFollow() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand follows.")); } function handleUnfollow() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand unfollows.")); } function handleFavorite() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand favorites.")); } function handleUnfavorite() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand unfavorites.")); } function handleShare() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand share events.")); } function handleJoin() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand joins.")); } function handleLeave() { + // TRANS: Client exception. throw new ClientException(_m("This target doesn't understand leave events.")); } @@ -180,7 +193,8 @@ class SalmonAction extends Action if (empty($actor->id)) { common_log(LOG_ERR, "broken actor: " . var_export($actor, true)); common_log(LOG_ERR, "activity with no actor: " . var_export($this->activity, true)); - throw new Exception("Received a salmon slap from unidentified actor."); + // TRANS: Exception. + throw new Exception(_m('Received a salmon slap from unidentified actor.')); } return Ostatus_profile::ensureActivityObjectProfile($actor); diff --git a/plugins/OStatus/lib/salmonqueuehandler.php b/plugins/OStatus/lib/salmonqueuehandler.php index 7eeb5f8e9c..e70d5ff521 100644 --- a/plugins/OStatus/lib/salmonqueuehandler.php +++ b/plugins/OStatus/lib/salmonqueuehandler.php @@ -17,6 +17,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET')) { + exit(1); +} + /** * Send a Salmon notification in the background. * @package OStatusPlugin @@ -36,7 +40,7 @@ class SalmonQueueHandler extends QueueHandler assert(is_string($data['entry'])); $actor = Profile::staticGet($data['actor']); - + $salmon = new Salmon(); $salmon->post($data['salmonuri'], $data['entry'], $actor); diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php deleted file mode 100644 index d8cf648d6d..0000000000 --- a/plugins/OStatus/lib/xrdaction.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php -/* - * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. - */ - -/** - * @package OStatusPlugin - * @maintainer James Walker <james@status.net> - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -class XrdAction extends Action -{ - - public $uri; - - public $user; - - public $xrd; - - function handle() - { - $nick = $this->user->nickname; - - if (empty($this->xrd)) { - $xrd = new XRD(); - } else { - $xrd = $this->xrd; - } - - if (empty($xrd->subject)) { - $xrd->subject = Discovery::normalize($this->uri); - } - $xrd->alias[] = $this->user->uri; - $xrd->links[] = array('rel' => Discovery::PROFILEPAGE, - 'type' => 'text/html', - 'href' => $this->user->uri); - - $xrd->links[] = array('rel' => Discovery::UPDATESFROM, - 'href' => common_local_url('ApiTimelineUser', - array('id' => $this->user->id, - 'format' => 'atom')), - 'type' => 'application/atom+xml'); - - // hCard - $xrd->links[] = array('rel' => Discovery::HCARD, - 'type' => 'text/html', - 'href' => common_local_url('hcard', array('nickname' => $nick))); - - // XFN - $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11', - 'type' => 'text/html', - 'href' => $this->user->uri); - // FOAF - $xrd->links[] = array('rel' => 'describedby', - 'type' => 'application/rdf+xml', - 'href' => common_local_url('foaf', - array('nickname' => $nick))); - - // Salmon - $salmon_url = common_local_url('usersalmon', - array('id' => $this->user->id)); - - $xrd->links[] = array('rel' => Salmon::REL_SALMON, - 'href' => $salmon_url); - // XXX : Deprecated - to be removed. - $xrd->links[] = array('rel' => Salmon::NS_REPLIES, - 'href' => $salmon_url); - - $xrd->links[] = array('rel' => Salmon::NS_MENTIONS, - 'href' => $salmon_url); - - // Get this user's keypair - $magickey = Magicsig::staticGet('user_id', $this->user->id); - if (!$magickey) { - // No keypair yet, let's generate one. - $magickey = new Magicsig(); - $magickey->generate($this->user->id); - } - - $xrd->links[] = array('rel' => Magicsig::PUBLICKEYREL, - 'href' => 'data:application/magic-public-key,'. $magickey->toString(false)); - - // TODO - finalize where the redirect should go on the publisher - $url = common_local_url('ostatussub') . '?profile={uri}'; - $xrd->links[] = array('rel' => 'http://ostatus.org/schema/1.0/subscribe', - 'template' => $url ); - - header('Content-type: application/xrd+xml'); - print $xrd->toXML(); - } - -} diff --git a/plugins/OStatus/locale/OStatus.pot b/plugins/OStatus/locale/OStatus.pot index 97d593eadd..212bb7a327 100644 --- a/plugins/OStatus/locale/OStatus.pot +++ b/plugins/OStatus/locale/OStatus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,316 +16,736 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: OStatusPlugin.php:210 OStatusPlugin.php:913 actions/ostatusinit.php:99 +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 msgid "Subscribe" msgstr "" -#: OStatusPlugin.php:228 OStatusPlugin.php:635 actions/ostatussub.php:105 -#: actions/ostatusinit.php:96 +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 msgid "Join" msgstr "" -#: OStatusPlugin.php:451 +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 #, php-format msgid "Sent from %s via OStatus" msgstr "" -#: OStatusPlugin.php:503 +#. TRANS: Exception. +#: OStatusPlugin.php:529 msgid "Could not set up remote subscription." msgstr "" -#: OStatusPlugin.php:619 +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "" + +#: OStatusPlugin.php:634 msgid "Could not set up remote group membership." msgstr "" -#: OStatusPlugin.php:636 +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 #, php-format -msgid "%s has joined group %s." +msgid "%1$s has joined group %2$s." msgstr "" -#: OStatusPlugin.php:644 +#. TRANS: Exception. +#: OStatusPlugin.php:665 msgid "Failed joining remote group." msgstr "" -#: OStatusPlugin.php:684 +#: OStatusPlugin.php:705 msgid "Leave" msgstr "" -#: OStatusPlugin.php:685 +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 #, php-format -msgid "%s has left group %s." +msgid "%1$s has left group %2$s." msgstr "" -#: OStatusPlugin.php:844 +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "" + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 msgid "Remote" msgstr "" -#: OStatusPlugin.php:883 +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 msgid "Profile update" msgstr "" -#: OStatusPlugin.php:884 +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 #, php-format msgid "%s has updated their profile page." msgstr "" -#: OStatusPlugin.php:928 +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 msgid "" "Follow people across social networks that implement <a href=\"http://ostatus." "org/\">OStatus</a>." msgstr "" -#: classes/Ostatus_profile.php:566 +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "" + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "" + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "" + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 msgid "Show more" msgstr "" -#: classes/Ostatus_profile.php:1004 +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 #, php-format -msgid "Invalid avatar URL %s" +msgid "Could not reach profile page %s." msgstr "" -#: classes/Ostatus_profile.php:1014 +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 #, php-format -msgid "Tried to update avatar for unsaved remote profile %s" +msgid "Could not find a feed URL for profile page %s." msgstr "" -#: classes/Ostatus_profile.php:1022 -#, php-format -msgid "Unable to fetch avatar from %s" +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." msgstr "" -#: lib/salmonaction.php:41 +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 msgid "This method requires a POST." msgstr "" -#: lib/salmonaction.php:45 -msgid "Salmon requires application/magic-envelope+xml" +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." msgstr "" -#: lib/salmonaction.php:55 +#. TRANS: Client error. +#: lib/salmonaction.php:57 msgid "Salmon signature verification failed." msgstr "" -#: lib/salmonaction.php:67 +#. TRANS: Client error. +#: lib/salmonaction.php:69 msgid "Salmon post must be an Atom entry." msgstr "" -#: lib/salmonaction.php:115 +#. TRANS: Client exception. +#: lib/salmonaction.php:118 msgid "Unrecognized activity type." msgstr "" -#: lib/salmonaction.php:123 +#. TRANS: Client exception. +#: lib/salmonaction.php:127 msgid "This target doesn't understand posts." msgstr "" -#: lib/salmonaction.php:128 +#. TRANS: Client exception. +#: lib/salmonaction.php:133 msgid "This target doesn't understand follows." msgstr "" -#: lib/salmonaction.php:133 +#. TRANS: Client exception. +#: lib/salmonaction.php:139 msgid "This target doesn't understand unfollows." msgstr "" -#: lib/salmonaction.php:138 +#. TRANS: Client exception. +#: lib/salmonaction.php:145 msgid "This target doesn't understand favorites." msgstr "" -#: lib/salmonaction.php:143 +#. TRANS: Client exception. +#: lib/salmonaction.php:151 msgid "This target doesn't understand unfavorites." msgstr "" -#: lib/salmonaction.php:148 +#. TRANS: Client exception. +#: lib/salmonaction.php:157 msgid "This target doesn't understand share events." msgstr "" -#: lib/salmonaction.php:153 +#. TRANS: Client exception. +#: lib/salmonaction.php:163 msgid "This target doesn't understand joins." msgstr "" -#: lib/salmonaction.php:158 +#. TRANS: Client exception. +#: lib/salmonaction.php:169 msgid "This target doesn't understand leave events." msgstr "" +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "" + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "" + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "" + #: tests/gettext-speedtest.php:57 msgid "Feeds" msgstr "" -#: actions/ostatusgroup.php:75 +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "" + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "" + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "" + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "" + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 msgid "Join group" msgstr "" -#: actions/ostatusgroup.php:77 -msgid "OStatus group's address, like http://example.net/group/nickname" +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." msgstr "" -#: actions/ostatusgroup.php:81 actions/ostatussub.php:71 +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" msgid "Continue" msgstr "" -#: actions/ostatusgroup.php:100 +#: actions/ostatusgroup.php:105 msgid "You are already a member of this group." msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:135 +#: actions/ostatusgroup.php:140 msgid "Already a member!" msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:146 +#: actions/ostatusgroup.php:151 msgid "Remote group join failed!" msgstr "" #. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:150 +#: actions/ostatusgroup.php:155 msgid "Remote group join aborted!" msgstr "" #. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:163 +#: actions/ostatusgroup.php:167 msgid "Confirm joining remote group" msgstr "" -#: actions/ostatusgroup.php:174 +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 msgid "" "You can subscribe to groups from other supported sites. Paste the group's " "profile URI below:" msgstr "" -#: actions/groupsalmon.php:51 +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 msgid "Can't accept remote posts for a remote group." msgstr "" -#: actions/groupsalmon.php:124 +#. TRANS: Client error. +#: actions/groupsalmon.php:127 msgid "Can't read profile to set up group membership." msgstr "" -#: actions/groupsalmon.php:127 actions/groupsalmon.php:170 +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 msgid "Groups can't join groups." msgstr "" -#: actions/groupsalmon.php:154 +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 #, php-format msgid "Could not join remote user %1$s to group %2$s." msgstr "" -#: actions/groupsalmon.php:167 +#: actions/groupsalmon.php:171 msgid "Can't read profile to cancel group membership." msgstr "" -#: actions/groupsalmon.php:183 +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 #, php-format msgid "Could not remove remote user %1$s from group %2$s." msgstr "" -#: actions/ostatussub.php:65 +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "" -#: actions/ostatussub.php:67 +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" msgstr "" -#: actions/ostatussub.php:106 +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" msgid "Join this group" msgstr "" -#. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:108 actions/ostatussub.php:400 +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" msgid "Confirm" msgstr "" -#: actions/ostatussub.php:109 +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "" -#: actions/ostatussub.php:130 +#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "" -#: actions/ostatussub.php:247 actions/ostatussub.php:253 -#: actions/ostatussub.php:272 -msgid "" -"Sorry, we could not reach that address. Please make sure that the OStatus " -"address is like nickname@example.com or http://example.net/nickname" +#: actions/ostatussub.php:167 +msgid "Photo" msgstr "" -#: actions/ostatussub.php:256 actions/ostatussub.php:259 -#: actions/ostatussub.php:262 actions/ostatussub.php:265 -#: actions/ostatussub.php:268 +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." msgstr "" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:301 +#: actions/ostatussub.php:317 msgid "Already subscribed!" msgstr "" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:306 +#: actions/ostatussub.php:322 msgid "Remote subscription failed!" msgstr "" -#: actions/ostatussub.php:380 actions/ostatusinit.php:81 +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "" -#: actions/ostatussub.php:411 +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" msgstr "" -#: actions/ostatusinit.php:41 +#. TRANS: Client error. +#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "" -#: actions/ostatusinit.php:63 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: actions/ostatusinit.php:95 +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "" -#: actions/ostatusinit.php:98 +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "" -#: actions/ostatusinit.php:111 +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 msgid "User nickname" msgstr "" -#: actions/ostatusinit.php:112 -msgid "Nickname of the user you want to follow" +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." msgstr "" -#: actions/ostatusinit.php:116 +#. TRANS: Field label. +#: actions/ostatusinit.php:124 msgid "Profile Account" msgstr "" -#: actions/ostatusinit.php:117 -msgid "Your account id (i.e. user@identi.ca)" +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." msgstr "" -#: actions/ostatusinit.php:138 +#. TRANS: Client error. +#: actions/ostatusinit.php:148 msgid "Must provide a remote profile." msgstr "" -#: actions/ostatusinit.php:149 +#. TRANS: Client error. +#: actions/ostatusinit.php:160 msgid "Couldn't look up OStatus account profile." msgstr "" -#: actions/ostatusinit.php:161 +#. TRANS: Client error. +#: actions/ostatusinit.php:173 msgid "Couldn't confirm remote profile address." msgstr "" -#: actions/ostatusinit.php:202 +#. TRANS: Page title. +#: actions/ostatusinit.php:218 msgid "OStatus Connect" msgstr "" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "" diff --git a/plugins/OStatus/locale/br/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/br/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..4f41ba1371 --- /dev/null +++ b/plugins/OStatus/locale/br/LC_MESSAGES/OStatus.po @@ -0,0 +1,756 @@ +# Translation of StatusNet - OStatus to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:44+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Koumanantiñ" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Stagañ" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Kaset adalek %s dre OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "" + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Chom hep heuliañ" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "" + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s a zo bet er strollad %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "" + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Kuitaat" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "" + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "" + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "" + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "" + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "" + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "" + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Diskouez muioc'h" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "" + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "" + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "" + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "" + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "" + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "" + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "" + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "" + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "" + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Lanvioù" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "" + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "" + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "N'eus ket eus an implijer-se." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "ID ebet" + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "" + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Mont er strollad" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Kenderc'hel" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "Ezel oc'h dija !" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "N'eus ket eus ar strollad-se." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "" + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "" + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Koumanantiñ da" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Mont er strollad-se" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Kadarnaat" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "En em goumanantiñ d'an implijer-mañ" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Koumanantet oc'h dija d'an implijerien-mañ." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Skeudenn" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Lesanv" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Lec'hiadur" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Notenn" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Koumanantet dija !" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "En em goumanantiñ d'un implijer" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Kadarnaat" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Mont er strollad %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Stagañ" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Koumanantiñ da %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Koumanantiñ" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Lesanv an implijer" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Lesanv an implijer ho peus c'hoant heuliañ." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Kont profil" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "" + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "Kevreadenn OStatus" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "" diff --git a/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..2cc4f73728 --- /dev/null +++ b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po @@ -0,0 +1,809 @@ +# Translation of StatusNet - OStatus to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:44+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "S'abonner" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Rejoindre" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Envoyé depuis %s via OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "Impossible de mettre en place l’abonnement distant." + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Ne plus suivre" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "%1$s a cessé de suivre %2$s." + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "Impossible de mettre en place l’appartenance au groupe distant." + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s a rejoint le groupe %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "Échec lors de l’adhésion au groupe distant." + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Sortir" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "%1$s a quitté le groupe %2$s." + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "Retirer des favoris" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "%1$s a retiré l’avis %2$s de ses favoris." + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "À distance" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Mise à jour du profil" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "%s a mis à jour sa page de profil." + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" +"Suivez les personnes à travers les réseaux sociaux mettant en œuvre <a href=" +"\"http://ostatus.org/\">OStatus</a> ." + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Tente de démarrer l’inscription PuSH à un flux d’information sans " +"concentrateur." + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Tente d’arrêter l’inscription PuSH à un flux d’information sans " +"concentrateur." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"État invalide du profil OStatus : identifiants à la fois de groupe et de " +"profil définis pour « %s »." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"État invalide du profil OStatus : identifiants à la fois de groupe et de " +"profil non renseignés pour « %s »." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Type d’acteur invalide passé à la méthode « %1$s » : « %2$s »." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Type invalide passé à la méthode « Ostatus_profile::notify ». Ce doit être " +"une chaîne XML ou une entrée « Activity »." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "Format de flux d’information inconnu." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "Flux RSS sans canal." + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "Impossible de gérer cette sorte de publication." + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "Aucun contenu dans l’avis « %s »." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Voir davantage" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "Impossible d’atteindre la page de profil « %s »." + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "" +"Impossible de trouver une adresse URL de flux d’information pour la page de " +"profil « %s »." + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Impossible de trouver assez d’informations de profil pour créer un flux " +"d’information." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Adresse URL d’avatar « %s » invalide." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Tente de mettre à jour l’avatar associé au profil distant non sauvegardé « %s " +"»." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Impossible de récupérer l’avatar depuis « %s »." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "L’utilisateur local ne peut être référencé comme distant." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "Le groupe local ne peut être référencé comme distant." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "Impossible de sauvegarder le profil local." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "Impossible de sauvegarder le profil OStatus." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "Ce n’est pas une adresse « webfinger » valide." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Impossible de sauvegarder le profil pour « %s »." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Impossible d’enregistrer le profil OStatus pour « %s »." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Impossible de trouver un profil valide pour « %s »." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" +"Impossible de stocker le contenu HTML d’une longue publication en un fichier." + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" +"La vérification d’abonné sur le concentrateur a retourné le statut HTTP « %s " +"»." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "La routine de rappel a retourné le statut « %1$s ». Corps : %2$s" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "Cette méthode nécessite une commande HTTP « POST »." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon exige le type « application/magic-envelope+xml »." + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "La vérification de signature Salmon a échoué." + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "Une publication Salmon doit être une entrée « Atom »." + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "Type d’activité non reconnu." + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "Cette cible ne reconnaît pas les publications." + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "Cette cible ne reconnaît pas les indications de début de suivi." + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "Cette cible ne reconnaît pas les indications de fin de suivi." + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "Cette cible ne reconnaît pas les indications de mise en favoris." + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "Cette cible ne reconnaît pas les indications de retrait des favoris." + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "Cette cible ne reconnaît pas les évènements partagés." + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "Cette cible ne reconnaît pas les indications d’adhésion." + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "Cette cible ne reconnaît pas les indications de retrait d’évènements." + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "Réception d’une giffle Salmon d’un acteur non identifié." + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "Impossible de trouver des services pour « %s »." + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "Impossible de trouver la clé publique du signataire." + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "Acteur Salmon invalide pour la signature." + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Flux d’informations" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "La publication des flux externes n’est pas supportée." + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "Mode « %s » non reconnu." + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" +"Le sujet de concentrateur « %s » n’est pas supporté. Ce concentrateur ne sert " +"que les flux Atom d’utilisateurs et groupes locaux." + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" +"La vérification de concentrateur « %s » est invalide. Ce doit être « sync » ou " +"« async »." + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" +"Le bail de concentrateur « %s » est invalide. Ce doit être vide ou un entier " +"positif." + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" +"Le secret de concentrateur « %s » est invalide. Il doit faire moins de 200 " +"octets." + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" +"Le sujet de concentrateur « %s » est invalide. L’utilisateur n’existe pas." + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "Le sujet de concentrateur « %s » est invalide. Le groupe n’existe pas." + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "URL invalide passée à la méthode « %1$s » : « %2$s »" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "Utilisateur inexistant." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "Aucun identifiant." + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "En réponse à l’avis inconnu." + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"En réponse à un avis non émis par cet utilisateur et ne mentionnant pas cet " +"utilisateur." + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "Impossible de sauvegarder le nouveau favori." + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "Impossible de mettre en favoris ou retirer des favoris sans un objet." + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Impossible de gérer ce genre d’objet parmi les sujets appréciés ou favoris." + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Avis d’identifiant « %s » inconnu." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Avis d’identifiant « %1$s » non publié par %2$s." + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Rejoindre le groupe" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Une adresse de groupe OStatus telle que « http://example.net/group/pseudonyme " +"»." + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuer" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "Vous êtes déjà membre de ce groupe." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "Déjà membre !" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "L’adhésion au groupe distant a échoué !" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "L’adhésion au groupe distant a été avortée !" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "Confirmer l’adhésion au groupe distant" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Vous pouvez souscrire aux groupes d’autres sites supportés. Collez l’adresse " +"URI du profil du groupe ci-dessous :" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "Groupe inexistant." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "" +"Impossible d’accepter des envois distants de messages pour un groupe distant." + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "" +"Impossible de lire le profil pour mettre en place l’adhésion à un groupe." + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "Les groupes ne peuvent pas adhérer à des groupes." + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "Vous avez été bloqué de ce groupe par l’administrateur." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Impossible d’inscrire l’utilisateur distant %1$s au groupe %2$s." + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "Impossible de lire le profil pour annuler l’adhésion à un groupe." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Impossible de retirer l’utilisateur distant %1$s du groupe %2$s." + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "S’abonner à" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" +"Adresse d’un utilisateur OStatus ou de sa page de profil, telle que " +"pseudonyme@example.com ou http://example.net/pseudonyme" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Rejoindre ce groupe" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Confirmer" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "S’abonner à cet utilisateur" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Vous êtes déjà abonné à cet utilisateur." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Photo" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Pseudonyme" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Emplacement" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "Adresse URL" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Note" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" +"Désolé, nous n’avons pas pu atteindre cette adresse. Veuillez vous assurer " +"que l’adresse OStatus de l’utilisateur ou de sa page de profil est de la " +"forme pseudonyme@example.com ou http://example.net/pseudonyme." + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" +"Désolé, nous n’avons pas pu atteindre ce flux. Veuillez réessayer plus tard " +"cette adresse OStatus." + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Déjà abonné !" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "Ĺ’abonnement distant a échoué !" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "S’abonner à un utilisateur" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Confirmer" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" +"Vous pouvez vous abonner aux utilisateurs d’autres sites pris en charge. " +"Collez leur adresse ou l’URI de leur profil ci-dessous :" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "Vous pouvez utiliser l’abonnement local !" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Rejoindre le groupe « %s »" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Rejoindre" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "S’abonner à « %s »" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "S’abonner" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Pseudonyme de l’utilisateur" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Pseudonyme de l’utilisateur que vous voulez suivre." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Compte de profil" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "Votre identifiant de compte (utilisateur@identi.ca, par exemple)." + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "Vous devez fournir un profil distant." + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "Impossible de consulter le profil de compte OStatus." + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "Impossible de confirmer l’adresse de profil distant." + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "Connexion OStatus" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "Identifiant de flux vide ou invalide." + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Identifiant de flux PuSH inconnu : « %s »" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Flux de sujet de concentrateur incorrect : « %s »" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" +"Jeton de vérification de concentrateur incorrect « %1$s » pour le sujet « %2$s " +"»." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Demande d’abonnement inattendue pour le sujet invalide « %s »." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Demande de désabonnement inattendue pour le sujet invalide « %s »." diff --git a/plugins/OStatus/locale/gl/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/gl/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..4c3376e94a --- /dev/null +++ b/plugins/OStatus/locale/gl/LC_MESSAGES/OStatus.po @@ -0,0 +1,756 @@ +# Translation of StatusNet - OStatus to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:44+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Subscribirse" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Unirse" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "" + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "" + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "" + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "" + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "" + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Deixar" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "" + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "" + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Actualización do perfil" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "" + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "" + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "" + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "" + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Mostrar máis" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "" + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "" + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "" + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "" + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "" + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "" + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "" + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "" + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "" + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "" + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "" + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Fontes de novas" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "" + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "" + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "" + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "" + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Unirse ao grupo" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "" + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "" + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Subscribirse a" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Unirse a este grupo" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Confirmar" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "Subscribirse a este usuario" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Xa está subscrito a este usuario." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Foto" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Alcume" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Localización" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Nota" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Xa está subscrito!" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "Houbo un erro co seu pase. Inténteo de novo." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "Subscribirse ao usuario" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Confirmar" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "Pode usar a subscrición local!" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Unirse ao grupo \"%s\"" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Unirse" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Subscribirse a %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Subscribirse" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Alcume do usuario" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Alcume do usuario ao que quere seguir." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Conta de perfil" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "" + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "" diff --git a/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..a0cf61fc57 --- /dev/null +++ b/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po @@ -0,0 +1,780 @@ +# Translation of StatusNet - OStatus to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:44+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Subscriber" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Inscriber" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Inviate de %s via OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "Non poteva configurar le subscription remote." + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Non plus sequer" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "%1$s cessava de sequer %2$s." + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "Non poteva configurar le membrato del gruppo remote." + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s se ha jungite al gruppo %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "Falleva de facer se membro del gruppo remote." + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Quitar" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "%1$s ha quitate le gruppo %2$s." + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "Disfavorir" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "%1$s marcava le nota %2$s como non plus favorite." + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "Remote" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Actualisation de profilo" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "%s ha actualisate su pagina de profilo." + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" +"Sequer personas trans retes social que implementa <a href=\"http://ostatus." +"org/\">OStatus</a>." + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "Tentativa de comenciar subscription PuSH pro syndication sin centro." + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "Tentativa de terminar subscription PuSH pro syndication sin centro." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Stato ostatus_profile invalide: IDs e de gruppo e de profilo definite pro %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Stato ostatus_profile invalide: IDs e de gruppo e de profilo vacue pro %s." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Actor invalide passate a %1$s: %2$s." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Typo invalide passate a Ostatos_profile::notify. Illo debe esser catena XML " +"o entrata Activity." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "Formato de syndication incognite." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "Syndication RSS sin canal." + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "Non pote tractar iste typo de message." + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "Nulle contento pro nota %s." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Monstrar plus" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "Non poteva attinger pagina de profilo %s." + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Non poteva trovar un URL de syndication pro pagina de profilo %s." + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Non pote trovar satis de information de profilo pro facer un syndication." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL de avatar %s invalide." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "Tentava actualisar avatar pro profilo remote non salveguardate %s." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Incapace de obtener avatar ab %s." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "Usator local non pote esser referentiate como remote." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "Gruppo local non pote esser referentiate como remote." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "Non pote salveguardar profilo local." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "Non pote salveguardar profilo OStatus." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "Adresse webfinger invalide." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Non poteva salveguardar profilo pro \"%s\"." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Non poteva salveguardar osatus_profile pro %s." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Non poteva trovar un profilo valide pro \"%s\"." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "Non poteva immagazinar contento HTML de longe message como file." + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Verification de subscriptor de centro retornava HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Appello de retorno retornava stato: %1$s. Corpore: %2$s" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "Iste methodo require un POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon require \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "Verification de signatura Salmon falleva." + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "Message Salmon debe esser un entrata Atom." + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "Typo de activitate non recognoscite." + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "Iste destination non comprende messages." + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "Iste destination non comprende sequimentos." + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "Iste destination non comprende cessationes de sequimento." + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "Iste destination non comprende le addition de favorites." + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "Iste destination non comprende le remotion de favorites." + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "Iste destination non comprende eventos commun." + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "Iste destination non comprende indicationes de adhesion." + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "Iste destination non comprende eventos de partita." + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "Recipeva un claffo de salmon de un actor non identificate." + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "Incapace de trovar servicios pro %s." + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "Incapace de localisar le clave public del signator." + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "Salmon: actor invalide pro signar." + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Syndicationes" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "Le publication de syndicationes externe non es supportate." + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "Modo \"%s\" non recognoscite." + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" +"Le topico de centro %s non es supportate. Iste centro servi solmente le " +"syndicationes Atom de usatores e gruppos local." + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "Invalide hub.verify \"%s\". Debe esser sync o async." + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" +"Invalide hub.lease \"%s\". Debe esser vacue o un numero integre positive." + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "Invalide hub.secret \"%s\". Debe pesar minus de 200 bytes." + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "Invalide hub.topic \"%s\". Usator non existe." + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "Invalide hub.topic \"%s\". Gruppo non existe." + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "Invalide URL passate pro %1$s: \"%2$s\"" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "Iste usator non existe." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "Nulle ID." + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "In responsa a un nota incognite." + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"In responsa a un nota non scribite per iste usator e que non mentiona iste " +"usator." + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "Non poteva salveguardar le nove favorite." + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "Non pote favorir/disfavorir sin objecto." + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "Non pote manear iste typo de objecto pro appreciar/favorir." + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Nota con ID %s incognite." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Nota con ID %1$s non publicate per %2$s." + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Adherer al gruppo" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Un adresse de gruppo OStatus, como http://example.net/group/pseudonymo." + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuar" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "Tu es ja membro de iste gruppo." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "Ja membro!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "Le adhesion al gruppo remote ha fallite!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "Le adhesion al gruppo remote ha essite abortate!" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "Confirmar adhesion a gruppo remote" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Tu pote subscriber a gruppos de altere sitos supportate. Colla le URI del " +"profilo del gruppo hic infra:" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "Gruppo non existe." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "Non pote acceptar messages remote pro un gruppo remote." + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "Non pote leger profilo pro establir membrato de gruppo." + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "Gruppos non pote adherer a gruppos." + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "Le administrator te ha blocate de iste gruppo." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Non poteva inscriber le usator remote %1$s in le gruppo %2$s." + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "Non pote leger profilo pro cancellar membrato de gruppo." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Non poteva remover le usator remote %1$s del gruppo %2$s." + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Subscriber a" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" +"Le adresse de un usator OStatus, como pseudonymo@example.com o http://" +"example.net/pseudonymo" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Adherer a iste gruppo" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Confirmar" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "Subscriber a iste usator" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Tu es ja subscribite a iste usator." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Photo" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Pseudonymo" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Loco" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Nota" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" +"Regrettabilemente, nos non poteva attinger iste adresse. Per favor assecura " +"te que le adresse OStatus es como pseudonymo@example.com o http://example." +"net/pseudonymo." + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" +"Regrettabilemente, nos non poteva attinger iste syndication. Per favor " +"reproba iste adresse OStatus plus tarde." + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Ja subscribite!" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "Subscription remote fallite!" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "Subscriber a usator" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Confirmar" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" +"Tu pote subscriber a usatores de altere sitos supportate. Colla su adresse o " +"URI de profilo hic infra:" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "Tu pote usar le subscription local!" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Adherer al gruppo %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Inscriber" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Subscriber a %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Subscriber" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Pseudonymo del usator" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Le pseudonymo del usator que tu vole sequer." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Conto de profilo" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "Le ID de tu conto (p.ex. usator@identi.ca)." + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "Debe fornir un profilo remote." + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "Non poteva cercar le profilo del conto OStatus." + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "Non poteva confirmar le adresse del profilo remote." + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "Connexion OStatus" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "ID de syndication vacue o invalide." + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "ID de syndication PuSH %s incognite" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Syndication hub.topic \"%s\" incorrecte." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Incorrecte hub.verify_token %1$s pro %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Requesta de subscription inexpectate pro %s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Requesta de cancellation de subscription inexpectate pro %s." diff --git a/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..7cf9f06ca8 --- /dev/null +++ b/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po @@ -0,0 +1,783 @@ +# Translation of StatusNet - OStatus to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Претплати се" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Зачлени се" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Испратено од %s преку OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "Не можев да ја поставам далечинската претплата." + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Престани со следење" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "%1$s престана да го/ја следи %2$s." + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "Не можев да го поставам членството во далечинската група." + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s се зачлени во групата %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "Не успеав да Ве зачленам во далечинската група." + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Напушти" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "%1$s ја напушти групата %2$s." + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "Откажи бендисана" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "%1$s повеќе не ја бендисува забелешката %2$s." + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "Далечински" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Поднова на профил" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "%s ја поднови својата профилна страница." + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" +"Следете луѓе низ разни друштвени мрежи што го применуваат <a href=\"http://" +"ostatus.org/\">OStatus</a>." + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "Се обидов да ја започнам PuSH-претплатата за канал без средиште." + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Се обидувам да ставам крај на PuSH-претплатата за емитување без средиште." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Неважечка ostatus_profile-состојба: назнаките (ID) на групата и профилот се " +"наместени за %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Неважечка ostatus_profile-состојба: назнаките (ID) за групата и профилот се " +"празни за %s." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "На %1$s е пренесен неважечки учесник: %2$s." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"На Ostatus_profile::notify е пренесен неважечки тип. Мора да биде XML-низа " +"или ставка во Activity." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "Непознат формат на каналско емитување." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "RSS-емитување без канал." + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "Не можам да работам со таква објава." + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "Нема содржина за забелешката %s." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Повеќе" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "Не можев да ја добијам профилната страница %s." + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Не можев да пронајдам каналска URL-адреса за профилната страница %s." + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "Не можев да најдам доволно профилни податоци за да направам канал." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Неважечка URL-адреса за аватарот: %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Се обидов да го подновам аватарот за незачуваниот далечински профил %s." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Не можам да го добијам аватарот од %s." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "Локалниот корисник не може да се наведе како далечински." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "Локалната група не може да се наведе како далечинска." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "Не можам да го зачувам локалниот профил." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "Не можам да го зачувам профилот од OStatus." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "Ова не е важечка Webfinger-адреса" + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Не можам да го зачувам профилот за „%s“." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Не можам да го зачувам ostatus_profile за „%s“." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Не можев да пронајдам важечки профил за „%s“." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" +"Не можам да ја складирам HTML-содржината на долгата објава како податотека." + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Потврдата на претплатникот на средиштето даде HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Повратниот повик даде статус: %1$s. Содржина: %2$s" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "Овој метод бара POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon бара „програм/magic-envelope+xml“." + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "Salmon-овото потврдување на потпис не успеа." + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "Salmon-овата објава мора да биде Atom-ова ставка." + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "Непризнаен вид на активност." + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "Оваа цел не разбира објави." + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "Оваа цел не разбира следења." + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "Оваа цел не разбира прекини на следења." + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "Оваа цел не разбира бендисување на забелешки." + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "Оваа цел не разбира одбендисување на забелешки." + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "Оваа цел не разбира споделување на настани." + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "Оваа цел не разбира придружувања." + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "Оваа цел не разбира напуштање на настани." + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "Примив Salmon-шамар од непознат учесник." + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "Не можев да најдам служби за %s." + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "Не можам да го пронајдам јавниот клуч на потписникот." + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "Ова е неважечки учесник во потпишувањето според Salmon." + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Канали" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "Објавувањето вон каналите не е поддржано." + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "Непрепознат режим „%s“." + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" +"Неподдржан hub.topic %s - ова средиште служи само за само Atom-емитувања од " +"локални корисници и групи." + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "Неважечки hub.verify „%s“. Мора да биде sync или async." + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "Неважечки hub.lease „%s“. Мора да биде празно или позитивен цел број." + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "Неважечки hub.secret „%s“. Мора да биде под 200 бајти." + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "Неважеки hub.topic „%s“. Корисникот не постои." + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "Неважечки hub.topic „%s“. Групата не постои." + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "Добив неважечка URL-адреса за %1$s: „%2$s“" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "Нема таков корисник." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "Нема ID." + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "Како одговор на непозната забелешка." + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"Како одговор на забелешка која не е од овој корисник и не го споменува." + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "Не можам да го зачувам новобендисаното." + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "Не можам да означам како бендисано или да тргнам бендисано без објект." + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Не можам да работам со таков објект за ставање врски/означување бендисани." + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Не ја распознавам забелешката со ID %s." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Забелешката со ID %1$s не е објавена од %2$s." + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Зачлени се во групата" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Адреса на групата на OStatus, како на пр. http://primer.net/group/prekar." + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продолжи" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "Веќе членувате во групава." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "Веќе членувате!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "Придружувањето на далечинската група не успеа!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "Придружувањето на далечинската група е откажано!" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "Потврди придружување кон далечинска група." + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Можете да се претплаќате на групи од други поддржани мреж. места. Подолу " +"залепете го URI-то на профилот на групата." + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "Нема таква група." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "Не можам да прифаќам далечински објави од далечинска група." + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "" +"Не можев да го прочитам профилот за да го поставам членството во групата." + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "Во групите не можат да се зачленуваат групи." + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "Блокирани сте на таа група од администратор." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Не можев да го зачленам далечинскиот корисник %1$s во групата %2$s." + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "Не можам да го прочитам профилот за откажам членство во групата." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Не можев да го отстранам далечинскиот корисник %1$s од групата %2$s." + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Претплати се" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" +"Адреса на корисникот на OStatus, како на пр. prekar@primer.com or http://" +"primer.net/prekar" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Зачлени се во групава" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Потврди" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "Претплати се на корисников" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Веќе сте претплатени на овој корисник." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Слика" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Прекар" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Место" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL-адереса" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Белешка" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" +"Нажалост, не можевме да ја добиеме таа адреса. Проверете дали адресата од " +"OStatus е од типот prekar@primer.com или http://primer.net/prekar." + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" +"Нажалост, не можевме да го добиеме тој канал. Обидете се со таа OStatus-" +"адреса подоцна." + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Веќе сте претплатени!" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "Далечинската претплата не успеа!" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "Претплати се на корисник" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Потврди" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" +"Можете да се претплатите на корисници од други поддржани мрежни места. " +"Ископирајте ја нивната адреса или профилно URI подолу:" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "Можете да ја користите локалната претплата!" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Зачлени се во групата %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Зачлени се" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Претплати се на %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Претплати се" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Прекар на корисникот" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Прекарот на корисникот што сакате да го следите." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Профилна сметка" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "Вашата назнака (ID) на сметката (на пр. korisnik@identi.ca)." + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "Мора да наведете далечински профил." + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "Не можев да го проверам профилот на OStatus-сметката." + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "Не можев да ја потврдам адресата на далечинскиот профил." + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "OStatus - Поврзување" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "Празен или неважечки ID за канал" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Непознат ID %s за PuSH-канал" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Лош hub.topic-канал „%s“." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Лош hub.verify_token %1$s за %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Неочекувано барање за претплата за %s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Неочекувано барање за отпишување од претплата за %s." diff --git a/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..8a6e3a8a79 --- /dev/null +++ b/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po @@ -0,0 +1,812 @@ +# Translation of StatusNet - OStatus to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Abonneren" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Toetreden" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Verzonden vanaf %s via OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "" +"Het was niet mogelijk het abonnement via een andere dienst in te stellen." + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Niet langer volgen" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "%1$s volgt %2$s niet langer." + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "" +"Het was niet mogelijk het groepslidmaatschap via een andere dienst in te " +"stellen." + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s is lid geworden van de groep %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "" +"Het was niet mogelijk toe te streden to de groep van een andere dienst." + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Verlaten" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "%1$s heeft de groep %2$s verlaten" + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "Uit favorieten verwijderen" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "%1$s heeft de mededeling %2$s als favoriet verwijderd." + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "Via andere dienst" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Profielupdate" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "Het profiel van %s is bijgewerkt." + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" +"Mensen volgen over sociale netwerken die gebruik maken van <a href=\"http://" +"ostatus.org/\">OStatus</a>." + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Aan het proberen een PuSH-abonnement te krijgen op een feed zonder hub." + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Aan het proberen een PuSH-abonnement te verwijderen voor een feed zonder hub." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " +"voor %s is ingesteld." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " +"voor %s is leeg." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Ongeldige actor doorgegeven aan %1$s: %2$s." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Ongeldig type doorgegeven aan Ostatus_profile::notify. Het moet een XML-" +"string of Activity zijn." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "Onbekend feedformaat" + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "RSS-feed zonder kanaal." + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "Dat type post kan niet verwerkt worden." + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "Geen inhoud voor mededeling %s." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Meer weergeven" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "Het was niet mogelijk de profielpagina %s te bereiken." + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Het was niet mogelijk de feed-URL voor de profielpagina %s te vinden." + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Het was niet mogelijk voldoende profielinformatie te vinden om een feed te " +"maken." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Ongeldige avatar-URL %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Geprobeerd om een avatar bij te werken voor het niet opgeslagen profiel %s." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Het was niet mogelijk de avatar op te halen van %s." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "" +"Naar een lokale gebruiker kan niet verwezen worden alsof die zich bij een " +"andere dienst bevindt." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "" +"Naar een lokale groep kan niet verwezen worden alsof die zich bij een andere " +"dienst bevindt." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "Het was niet mogelijk het lokale profiel op te slaan." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "Het was niet mogelijk het Ostatusprofiel op te slaan." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "Geen geldig webfingeradres." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Het was niet mogelijk het profiel voor \"%s\" op te slaan." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Het was niet mogelijk het ostatus_profile voor \"%s\" op te slaan." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Er is geen geldig profiel voor \"%s\" gevonden." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "" +"Het was niet mogelijk de HTML-inhoud van het lange bericht als bestand op te " +"slaan." + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "De controle voor de hubabonnee heeft een HTTP %s teruggegeven." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "De callback heeft de status %1$s teruggegeven. Inhoud: %2$s." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "Deze methode vereist een POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon vereist \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "De controle voor Salmon is mislukt." + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "Een Salmonbericht moet in Atomopmaak gemaakt zijn." + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "Onbekend activiteitentype." + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "Deze bestemming begrijpt berichten niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "Deze bestemming begrijpt volgen niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "Deze bestemming begrijpt niet langer volgen niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "Deze bestemming begrijpt favorieten niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "Deze bestemming begrijpt favorieten verwijderen niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "Deze bestemming begrijpt gebeurtenissen delen niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "Deze bestemming begrijpt lid worden niet." + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "Deze bestemming begrijpt uitschrijven van gebeurtenissen niet." + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "Er is een Salmonslap ontvangen van een niet-geïdentificeerde actor." + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "Het was niet mogelijk diensten te vinden voor %s." + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" +"Het was niet mogelijk de publieke sleutel van de ondertekenaar te vinden." + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "Ongeldige actor voor het ondertekenen van Salmon." + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Feeds" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "Publiceren buiten feeds om wordt niet ondersteund." + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "Niet herkende modus \"%s\"." + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" +"Niet ondersteund hub.topic \"%s\". Deze hub serveert alleen Atom feeds van " +"lokale gebruikers en groepen." + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" +"Ongeldige waarde voor hub.verify \"%s\". Het moet \"sync\" of \"async\" zijn." + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" +"Ongeldige waarde voor hub.lease \"%s\". Deze waarde moet leeg zijn of een " +"positief geheel getal." + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" +"Ongeldig hub.secret \"%s\". Het moet minder dan tweehonderd bytes bevatten." + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "Ongeldig hub.topic \"%s\". De gebruiker bestaat niet." + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "Ongeldig hub.topic \"%s\". De groep bestaat niet." + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "Er is een ongeldige URL doorgegeven voor %1$s: \"%2$s\"" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "Onbekende gebruiker." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "Geen ID." + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "In antwoord op een onbekende mededeling." + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"In antwoord op een mededeling niet door deze gebruiker en niet over of aan " +"deze gebruiker." + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "Het was niet mogelijk de nieuwe favoriet op te slaan." + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" +"Het is niet mogelijk (niet langer) als favoriet te markeren zonder object." + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Dat object is niet beschikbaar voor (niet langer) als favoriet aanmerken." + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "De mededeling met ID %s is onbekend." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "De mededeling met ID %1$s is niet geplaatst foor %2$s." + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Lid worden van groep" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Het adres voor de OStatusgroep. Bijvoorbeeld; http://example.net/group/" +"nickname." + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Doorgaan" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "U bent al lid van deze groep." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "U bent al lid!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "Het verlaten van de groep bij een andere dienst is mislukt." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "Het lid worden van de groep bij een andere dienst is afgebroken." + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "Lid worden van groep bij andere dienst" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"U kunt abonneren op groepen van andere ondersteunde sites. Plak hieronder de " +"URI van het groepsprofiel:" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "De opgegeven groep bestaat niet." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "" +"Berichten van andere diensten voor groepen bij andere diensten worden niet " +"geaccepteerd." + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "Het profiel om lid te worden van een groep kon niet gelezen worden." + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "Groepen kunnen geen lid worden van groepen." + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" +"De gebruiker %1$s van een andere dienst kon niet lid worden van de groep %2" +"$s." + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "" +"Het profiel om groepslidmaatschap te annuleren kon niet gelezen worden." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "" +"Het was niet mogelijk gebruiker %1$s van een andere dienst uit de groep %2$s " +"te verwijderen." + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Abonneren op" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" +"Het OStatusadres van de gebruiker. Bijvoorbeeld nickname@example.com of " +"http://example.net/nickname" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Lid worden van deze groep" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Bevestigen" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "Abonneren op deze gebruiker" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "U bent al geabonneerd op deze gebruiker." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Foto" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Gebruikersnaam" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Locatie" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Opmerking" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" +"Dat adres is helaas niet te bereiken. Zorg dat het OStatusadres de voor heft " +"van gebruiker@example.com of http://example.net/gebruiker." + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" +"Die feed was niet te bereiken. Probeer dat OStatusadres later nog een keer." + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "U bent al gebonneerd!" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "Abonneren via een andere dienst is mislukt!" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "Abonneren op gebruiker" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Bevestigen" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" +"U kunt abonneren op gebruikers van andere ondersteunde sites. Plak hun adres " +"of profiel-URI hieronder:" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "U kunt het lokale abonnement gebruiken!" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Lid worden van de groep %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Toetreden" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Abonneren op %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Abonneren" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Gebruikersnaam" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Gebruikersnaam van de gebruiker waarop u wilt abonneren." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Gebruikersprofiel" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "Uw gebruikers-ID (bv. gebruiker@identi.ca)." + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "Er moet een profiel bij een andere dienst opgegeven worden." + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "Het was niet mogelijk het OStatusgebruikersprofiel te vinden." + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "" +"Het was niet mogelijk het profieladres bij de andere dienst te bevestigen." + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "OStatuskoppeling" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "Het feed-ID is leeg of ongeldig." + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Het PuSH feed-ID %s is onbekend" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Ongeldige hub.topic feed \"%s\"." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Ongeldig hub.verify_token %1$s voor %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Onverwacht abonneringsverzoek voor %s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Onverwacht verzoek om abonnement op te hebben voor %s." diff --git a/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po new file mode 100644 index 0000000000..fbd2207c46 --- /dev/null +++ b/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po @@ -0,0 +1,794 @@ +# Translation of StatusNet - OStatus to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OStatus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-ostatus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Link description for link to subscribe to a remote user. +#. TRANS: Link text for a user to subscribe to an OStatus user. +#: OStatusPlugin.php:225 OStatusPlugin.php:935 +msgid "Subscribe" +msgstr "Підписатись" + +#. TRANS: Link description for link to join a remote group. +#: OStatusPlugin.php:244 OStatusPlugin.php:653 actions/ostatussub.php:109 +msgid "Join" +msgstr "Приєднатися" + +#. TRANSLATE: %s is a domain. +#: OStatusPlugin.php:457 +#, php-format +msgid "Sent from %s via OStatus" +msgstr "Надіслано з %s через OStatus" + +#. TRANS: Exception. +#: OStatusPlugin.php:529 +msgid "Could not set up remote subscription." +msgstr "Не вдалося створити віддалену підписку." + +#: OStatusPlugin.php:603 +msgid "Unfollow" +msgstr "Не читати" + +#. TRANS: Success message for unsubscribe from user attempt through OStatus. +#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. +#: OStatusPlugin.php:606 +#, php-format +msgid "%1$s stopped following %2$s." +msgstr "%1$s припинив читати ваші дописи %2$s." + +#: OStatusPlugin.php:634 +msgid "Could not set up remote group membership." +msgstr "Не вдалося приєднатися до віддаленої спільноти." + +#. TRANS: Success message for subscribe to group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the subscribed group's name. +#: OStatusPlugin.php:656 +#, php-format +msgid "%1$s has joined group %2$s." +msgstr "%1$s приєднався до спільноти %2$s." + +#. TRANS: Exception. +#: OStatusPlugin.php:665 +msgid "Failed joining remote group." +msgstr "Помилка приєднання до віддаленої спільноти." + +#: OStatusPlugin.php:705 +msgid "Leave" +msgstr "Залишити" + +#. TRANS: Success message for unsubscribe from group attempt through OStatus. +#. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. +#: OStatusPlugin.php:708 +#, php-format +msgid "%1$s has left group %2$s." +msgstr "%1$s залишив спільноту %2$s." + +#: OStatusPlugin.php:783 +msgid "Disfavor" +msgstr "Не обраний" + +#. TRANS: Success message for remove a favorite notice through OStatus. +#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. +#: OStatusPlugin.php:786 +#, php-format +msgid "%1$s marked notice %2$s as no longer a favorite." +msgstr "%1$s позначив допис %2$s, як такий, що більше не є обраним." + +#. TRANS: Link text for link to remote subscribe. +#: OStatusPlugin.php:862 +msgid "Remote" +msgstr "Віддалено" + +#. TRANS: Title for activity. +#: OStatusPlugin.php:902 +msgid "Profile update" +msgstr "Оновлення профілю" + +#. TRANS: Ping text for remote profile update through OStatus. +#. TRANS: %s is user that updated their profile. +#: OStatusPlugin.php:905 +#, php-format +msgid "%s has updated their profile page." +msgstr "%s оновив сторінку свого профілю." + +#. TRANS: Plugin description. +#: OStatusPlugin.php:950 +msgid "" +"Follow people across social networks that implement <a href=\"http://ostatus." +"org/\">OStatus</a>." +msgstr "" +"Додає можливість слідкувати за дописами людей з інших мереж, які підтримують " +"протокол <a href=\"http://ostatus.org/\">OStatus</a>." + +#: classes/FeedSub.php:252 +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Спроба підписатися за допомогою PuSH до веб-стрічки, котра не має вузла." + +#: classes/FeedSub.php:282 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Спроба скасувати підписку за допомогою PuSH до веб-стрічки, котра не має " +"вузла." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:192 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Невірний стан параметру ostatus_profile: як групові, так і персональні " +"ідентифікатори встановлено для %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:195 +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Невірний стан параметру ostatus_profile: як групові, так і персональні " +"ідентифікатори порожні для %s." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#: classes/Ostatus_profile.php:285 +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "До %1$s передано невірний об’єкт: %2$s." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:378 +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"До параметру Ostatus_profile::notify передано невірний тип. Це має бути або " +"рядок у форматі XML, або запис активності." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:409 +msgid "Unknown feed format." +msgstr "Невідомий формат веб-стрічки." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:433 +msgid "RSS feed without a channel." +msgstr "RSS-стрічка не має каналу." + +#. TRANS: Client exception. +#: classes/Ostatus_profile.php:478 +msgid "Can't handle that kind of post." +msgstr "Не вдається обробити такий тип допису." + +#. TRANS: Client exception. %s is a source URI. +#: classes/Ostatus_profile.php:561 +#, php-format +msgid "No content for notice %s." +msgstr "Допис %s не має змісту." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +#: classes/Ostatus_profile.php:596 +msgid "Show more" +msgstr "Розгорнути" + +#. TRANS: Exception. %s is a profile URL. +#: classes/Ostatus_profile.php:789 +#, php-format +msgid "Could not reach profile page %s." +msgstr "Не вдалося досягти сторінки профілю %s." + +#. TRANS: Exception. %s is a URL. +#: classes/Ostatus_profile.php:847 +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Не вдалося знайти URL веб-стрічки для сторінки профілю %s." + +#. TRANS: Feed sub exception. +#: classes/Ostatus_profile.php:985 +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Не можу знайти достатньо інформації про профіль, аби сформувати веб-стрічку." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1045 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Невірна URL-адреса аватари %s." + +#. TRANS: Server exception. %s is a URI. +#: classes/Ostatus_profile.php:1056 +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "Намагаюся оновити аватару для не збереженого віддаленого профілю %s." + +#. TRANS: Server exception. %s is a URL. +#: classes/Ostatus_profile.php:1066 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Неможливо завантажити аватару з %s." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1292 +msgid "Local user can't be referenced as remote." +msgstr "Місцевий користувач не може бути зазначеним у якості віддаленого." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1297 +msgid "Local group can't be referenced as remote." +msgstr "Локальну спільноту не можна зазначити у якості віддаленої." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1349 classes/Ostatus_profile.php:1360 +msgid "Can't save local profile." +msgstr "Не вдається зберегти місцевий профіль." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1368 +msgid "Can't save OStatus profile." +msgstr "Не вдається зберегти профіль OStatus." + +#. TRANS: Exception. +#: classes/Ostatus_profile.php:1632 classes/Ostatus_profile.php:1660 +msgid "Not a valid webfinger address." +msgstr "Це недійсна адреса для протоколу WebFinger." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1742 +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Не можу зберегти профіль для «%s»." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1761 +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Не можу зберегти профіль OStatus для «%s»." + +#. TRANS: Exception. %s is a webfinger address. +#: classes/Ostatus_profile.php:1769 +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "не можу знайти відповідний й профіль для «%s»." + +#. TRANS: Server exception. +#: classes/Ostatus_profile.php:1812 +msgid "Could not store HTML content of long post as file." +msgstr "Не можу зберегти HTML місткого допису у якості файлу." + +#. TRANS: Client exception. %s is a HTTP status code. +#: classes/HubSub.php:212 +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Перевірка вузла підписки завершилася зі статусом HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#: classes/HubSub.php:359 +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Зворотній виклик повернуто зі статусом: %1$s. Зміст: %2$s" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +#: lib/salmonaction.php:42 +msgid "This method requires a POST." +msgstr "Цей метод вимагає команди POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +#: lib/salmonaction.php:47 +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Протокол Salmon вимагає \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +#: lib/salmonaction.php:57 +msgid "Salmon signature verification failed." +msgstr "Перевірка підпису протоколу Salmon не вдалася." + +#. TRANS: Client error. +#: lib/salmonaction.php:69 +msgid "Salmon post must be an Atom entry." +msgstr "Дописи за протоколом Salmon мають бути у форматі Atom." + +#. TRANS: Client exception. +#: lib/salmonaction.php:118 +msgid "Unrecognized activity type." +msgstr "Невідомий тип діяльності." + +#. TRANS: Client exception. +#: lib/salmonaction.php:127 +msgid "This target doesn't understand posts." +msgstr "Ціль не розуміє, що таке «дописи»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:133 +msgid "This target doesn't understand follows." +msgstr "Ціль не розуміє, що таке «слідувати»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:139 +msgid "This target doesn't understand unfollows." +msgstr "Ціль не розуміє, що таке «не слідувати»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:145 +msgid "This target doesn't understand favorites." +msgstr "Ціль не розуміє, що таке «додати до обраних»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:151 +msgid "This target doesn't understand unfavorites." +msgstr "Ціль не розуміє, що таке «вилучити з обраних»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:157 +msgid "This target doesn't understand share events." +msgstr "Ціль не розуміє, що таке «поділитися подією»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:163 +msgid "This target doesn't understand joins." +msgstr "Ціль не розуміє, що таке «приєднатися»." + +#. TRANS: Client exception. +#: lib/salmonaction.php:169 +msgid "This target doesn't understand leave events." +msgstr "Ціль не розуміє, що таке «залишати подію»." + +#. TRANS: Exception. +#: lib/salmonaction.php:197 +msgid "Received a salmon slap from unidentified actor." +msgstr "Отримано ляпаса від невизначеного учасника за протоколом Salmon." + +#. TRANS: Exception. +#: lib/discovery.php:110 +#, php-format +msgid "Unable to find services for %s." +msgstr "Не вдається знайти сервіси для %s." + +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "Не вдалося знайти публічного ключа підписанта." + +#. TRANS: Exception. +#: lib/salmon.php:93 +msgid "Salmon invalid actor for signing." +msgstr "Недійсний учасник подій за протоколом Salmon для підписання." + +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "Веб-стрічки" + +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "Публікація змісту зовнішніх веб-стрічок не підтримується." + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "Невизначений режим «%s»." + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" +"hub.topic %s не підтримується. Цей вузол використовується лише тутешніми " +"користувачами та групою веб-стрічок у форматі Atom." + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "hub.verify «%s» невірний. Він має бути синхронним або ж асинхронним." + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" +"hub.lease «%s» невірний. Він має бути порожнім або містити ціле позитивне " +"число." + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "hub.secret «%s» невірний. 200 байтів — не більше." + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "hub.topic «%s» невірний. Користувача не існує." + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "hub.topic «%s» невірний. Спільноти не існує." + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "Для %1$s передано невірний URL: «%2$s»" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "Такого користувача немає." + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "Немає ідентифікатора." + +#. TRANS: Client exception. +#: actions/usersalmon.php:81 +msgid "In reply to unknown notice." +msgstr "У відповідь на невідомий допис." + +#. TRANS: Client exception. +#: actions/usersalmon.php:86 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"У відповідь на допис іншого користувача, а даний користувач у ньому навіть " +"не згадується." + +#. TRANS: Client exception. +#: actions/usersalmon.php:163 +msgid "Could not save new favorite." +msgstr "Не вдалося зберегти як новий обраний допис." + +#. TRANS: Client exception. +#: actions/usersalmon.php:195 +msgid "Can't favorite/unfavorite without an object." +msgstr "" +"Неможливо додати до обраних або видалити зі списку обраних, якщо немає " +"об’єкта." + +#. TRANS: Client exception. +#: actions/usersalmon.php:207 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Не вдається обробити подібний об’єкт для додавання його до списку обраних." + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:214 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Допис з ідентифікатором %s є невідомим." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:219 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Допис з ідентифікатором %1$s було надіслано не %2$s." + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "Долучитися до спільноти" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Адреса спільноти згідно протоколу OStatus, наприклад http://example.net/" +"group/nickname." + +#. TRANS: Button text. +#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продовжити" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "Ви вже є учасником цієї спільноти." + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "Ви вже учасник!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "Приєднатися до віддаленої спільноти не вдалося!" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "Приєднання до віддаленої спільноти перервано!" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "Підтвердження приєднання до віддаленої спільноти" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Ви можете долучатися до спільнот на аналогічних сайтах. Просто вставте URI " +"профілю спільноти тут:" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "Такої спільноти немає." + +#. TRANS: Client error. +#: actions/groupsalmon.php:53 +msgid "Can't accept remote posts for a remote group." +msgstr "Не можу узгодити віддалену пересилку дописів до віддаленої спільноти." + +#. TRANS: Client error. +#: actions/groupsalmon.php:127 +msgid "Can't read profile to set up group membership." +msgstr "Не можу прочитати профіль, аби долучитися до спільноти." + +#. TRANS: Client error. +#: actions/groupsalmon.php:131 actions/groupsalmon.php:174 +msgid "Groups can't join groups." +msgstr "Спільноти ніяк не можуть приєднуватися до спільнот." + +#: actions/groupsalmon.php:144 +msgid "You have been blocked from that group by the admin." +msgstr "Адміністратор спільноти заблокував ваш профіль." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:159 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" +"Віддаленому користувачеві %1$s не вдалося долучитися до спільноти %2$s." + +#: actions/groupsalmon.php:171 +msgid "Can't read profile to cancel group membership." +msgstr "" +"Не вдається прочитати профіль користувача, щоб скасувати його перебування у " +"спільноті." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:188 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Не вдалось видалити віддаленого користувача %1$s зі спільноти %2$s." + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "Підписатися" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" +"Адреса користувача згідно протоколу OStatus, щось на зразок nickname@example." +"com або http://example.net/nickname" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "Приєднатися до спільноти" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "Підтвердити" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "Підписатись до цього користувача" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "Ви вже підписані до цього користувача." + +#: actions/ostatussub.php:167 +msgid "Photo" +msgstr "Фото" + +#: actions/ostatussub.php:178 +msgid "Nickname" +msgstr "Псевдонім" + +#: actions/ostatussub.php:199 +msgid "Location" +msgstr "Розташування" + +#: actions/ostatussub.php:208 +msgid "URL" +msgstr "URL-адреса" + +#: actions/ostatussub.php:220 +msgid "Note" +msgstr "Примітка" + +#. TRANS: Error text. +#: actions/ostatussub.php:256 actions/ostatussub.php:263 +#: actions/ostatussub.php:288 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" +"Вибачайте, але ми в змозі розшукати дану адресу. Будь ласка, переконайтеся, " +"що адресу зазначено згідно правил протоколу OStatus, щось на зразок " +"nickname@example.com або ж http://example.net/nickname." + +#. TRANS: Error text. +#: actions/ostatussub.php:267 actions/ostatussub.php:271 +#: actions/ostatussub.php:275 actions/ostatussub.php:279 +#: actions/ostatussub.php:283 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" +"Вибачайте, але ми не в змозі досягти цієї веб-стрічки. Будь ласка, спробуйте " +"дану адресу ще раз пізніше." + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:317 +msgid "Already subscribed!" +msgstr "Вже підписаний!" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:322 +msgid "Remote subscription failed!" +msgstr "Підписатися віддалено не вдалося!" + +#: actions/ostatussub.php:369 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +#. TRANS: Form title. +#: actions/ostatussub.php:397 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "Підписатися до користувача" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:417 +msgid "Confirm" +msgstr "Підтвердити" + +#. TRANS: Instructions. +#: actions/ostatussub.php:429 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" +"Ви маєте можливість підписуватись до користувачів на аналогічних сайтах. " +"Просто вставте їхні адреси або URI профілів тут:" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "Ви можете користуватись локальними підписками!" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "Приєднатися до спільноти %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "Приєднатися" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "Підписатися до %s" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "Підписатись" + +#. TRANS: Field label. +#: actions/ostatusinit.php:118 +msgid "User nickname" +msgstr "Ім’я користувача" + +#: actions/ostatusinit.php:119 +msgid "Nickname of the user you want to follow." +msgstr "Ім’я користувача, дописи якого ви хотіли б читати." + +#. TRANS: Field label. +#: actions/ostatusinit.php:124 +msgid "Profile Account" +msgstr "Профіль акаунту" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:126 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "Ідентифікатор вашого акаунту (щось на зразок user@identi.ca)" + +#. TRANS: Client error. +#: actions/ostatusinit.php:148 +msgid "Must provide a remote profile." +msgstr "Мусите зазначити віддалений профіль." + +#. TRANS: Client error. +#: actions/ostatusinit.php:160 +msgid "Couldn't look up OStatus account profile." +msgstr "Не вдалося знайти профіль акаунту за протоколом OStatus." + +#. TRANS: Client error. +#: actions/ostatusinit.php:173 +msgid "Couldn't confirm remote profile address." +msgstr "Не вдалося підтвердити адресу віддаленого профілю." + +#. TRANS: Page title. +#: actions/ostatusinit.php:218 +msgid "OStatus Connect" +msgstr "З’єднання OStatus" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "Порожній або недійсний ідентифікатор веб-стрічки." + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Веб-стрічка за протоколом PuSH має невідомий ідентифікатор %s" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "hub.topic веб-стрічки «%s» неправильний." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "hub.verify_token %1$s для %2$s неправильний." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Несподіваний запит підписки для %s." + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Несподіваний запит щодо скасування підписки для %s." diff --git a/plugins/OStatus/scripts/fixup-shadow.php b/plugins/OStatus/scripts/fixup-shadow.php index 6522ca240a..18df2995fb 100644 --- a/plugins/OStatus/scripts/fixup-shadow.php +++ b/plugins/OStatus/scripts/fixup-shadow.php @@ -35,6 +35,102 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; $dry = have_option('dry-run'); +// Look for user.uri matches... These may not match up with the current +// URL schema if the site has changed names. +echo "Checking for bogus ostatus_profile entries matching user.uri...\n"; + +$user = new User(); +$oprofile = new Ostatus_profile(); +$user->joinAdd($oprofile, 'INNER', 'oprofile', 'uri'); +$user->find(); +$count = $user->N; +echo "Found $count...\n"; + +while ($user->fetch()) { + $uri = $user->uri; + echo "user $user->id ($user->nickname) hidden by $uri"; + if ($dry) { + echo " - skipping\n"; + } else { + echo " - removing bogus ostatus_profile entry..."; + $evil = Ostatus_profile::staticGet('uri', $uri); + $evil->delete(); + echo " ok\n"; + } +} +echo "\n"; + +// Also try user_group.uri matches for local groups. +// Not all group entries will have this filled out, though, as it's new! +echo "Checking for bogus ostatus_profile entries matching local user_group.uri...\n"; +$group = new User_group(); +$group->joinAdd(array('uri', 'ostatus_profile:uri')); +$group->joinAdd(array('id', 'local_group:group_id')); +$group->find(); +$count = $group->N; +echo "Found $count...\n"; + +while ($group->fetch()) { + $uri = $group->uri; + echo "group $group->id ($group->nickname) hidden by $uri"; + if ($dry) { + echo " - skipping\n"; + } else { + echo " - removing bogus ostatus_profile entry..."; + $evil = Ostatus_profile::staticGet('uri', $uri); + $evil->delete(); + echo " ok\n"; + } +} +echo "\n"; + +// And there may be user_group entries remaining where we've already killed +// the ostatus_profile. These were "harmless" until our lookup started actually +// using the uri field, at which point we can clearly see it breaks stuff. +echo "Checking for leftover bogus user_group.uri entries obscuring local_group entries...\n"; + +$group = new User_group(); +$group->joinAdd(array('id', 'local_group:group_id'), 'LEFT'); +$group->whereAdd('group_id IS NULL'); + + +$marker = mt_rand(31337, 31337000); +$groupTemplate = common_local_url('groupbyid', array('id' => $marker)); +$encGroup = $group->escape($groupTemplate, true); +$encGroup = str_replace($marker, '%', $encGroup); +echo " LIKE '$encGroup'\n"; +$group->whereAdd("uri LIKE '$encGroup'"); + +$group->find(); +$count = $group->N; +echo "Found $count...\n"; + +while ($group->fetch()) { + $uri = $group->uri; + if (preg_match('!/group/(\d+)/id!', $uri, $matches)) { + $id = intval($matches[1]); + $local = Local_group::staticGet('group_id', $id); + if ($local) { + $nick = $local->nickname; + } else { + $nick = '<deleted>'; + } + echo "local group $id ($local->nickname) hidden by $uri (bogus group id $group->id)"; + if ($dry) { + echo " - skipping\n"; + } else { + echo " - removing bogus user_group entry..."; + $evil = User_group::staticGet('id', $group->id); + $evil->delete(); + echo " ok\n"; + } + } +} +echo "\n"; + + +// Fallback? +echo "Checking for bogus profiles blocking local users/groups by URI pattern match...\n"; $oprofile = new Ostatus_profile(); $marker = mt_rand(31337, 31337000); @@ -42,16 +138,18 @@ $marker = mt_rand(31337, 31337000); $profileTemplate = common_local_url('userbyid', array('id' => $marker)); $encProfile = $oprofile->escape($profileTemplate, true); $encProfile = str_replace($marker, '%', $encProfile); +echo " LIKE '$encProfile'\n"; $groupTemplate = common_local_url('groupbyid', array('id' => $marker)); $encGroup = $oprofile->escape($groupTemplate, true); $encGroup = str_replace($marker, '%', $encGroup); +echo " LIKE '$encGroup'\n"; $sql = "SELECT * FROM ostatus_profile WHERE uri LIKE '%s' OR uri LIKE '%s'"; $oprofile->query(sprintf($sql, $encProfile, $encGroup)); $count = $oprofile->N; -echo "Found $count bogus ostatus_profile entries shadowing local users and groups:\n"; +echo "Found $count...\n"; while ($oprofile->fetch()) { $uri = $oprofile->uri; @@ -77,7 +175,7 @@ while ($oprofile->fetch()) { echo "$uri matched query, but we don't recognize it.\n"; continue; } - + if ($dry) { echo " - skipping\n"; } else { @@ -93,4 +191,3 @@ if ($count && $dry) { } else { echo "done.\n"; } - diff --git a/plugins/OStatus/scripts/resub-feed.php b/plugins/OStatus/scripts/resub-feed.php index 121d12109a..8803c0118b 100644 --- a/plugins/OStatus/scripts/resub-feed.php +++ b/plugins/OStatus/scripts/resub-feed.php @@ -38,7 +38,7 @@ if (empty($args[0]) || !Validate::uri($args[0])) { $feedurl = $args[0]; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); @@ -57,7 +57,7 @@ if ($ok) { print "Could not confirm.\n"; } -$sub2 = FeedSub::staticGet('topic', $feedurl); +$sub2 = FeedSub::staticGet('uri', $feedurl); print "\n"; print "New state:\n"; diff --git a/plugins/OStatus/scripts/testfeed.php b/plugins/OStatus/scripts/testfeed.php index 5e3ccd433a..149bcc343f 100644 --- a/plugins/OStatus/scripts/testfeed.php +++ b/plugins/OStatus/scripts/testfeed.php @@ -45,7 +45,7 @@ $skip = have_option('skip') ? intval(get_option_value('skip')) : 0; $count = have_option('count') ? intval(get_option_value('count')) : 0; -$sub = FeedSub::staticGet('topic', $feedurl); +$sub = FeedSub::staticGet('uri', $feedurl); if (!$sub) { print "Feed $feedurl is not subscribed.\n"; exit(1); @@ -86,4 +86,3 @@ if ($skip || $count) { } Event::handle('StartFeedSubReceive', array($sub, $feed)); - diff --git a/plugins/OStatus/scripts/updateostatus.php b/plugins/OStatus/scripts/updateostatus.php index 622ded56ab..052cca1467 100644 --- a/plugins/OStatus/scripts/updateostatus.php +++ b/plugins/OStatus/scripts/updateostatus.php @@ -44,14 +44,14 @@ try { if (empty($user)) { throw new Exception("Can't find user with id '$id'."); } - updateProfileURL($user); + updateOStatus($user); } else if (have_option('n', 'nickname')) { $nickname = get_option_value('n', 'nickname'); $user = User::staticGet('nickname', $nickname); if (empty($user)) { - throw new Exception("Can't find user with nickname '$nickname'"); + throw new Exception("Can't find user with nickname '$nickname'."); } - updateProfileURL($user); + updateOStatus($user); } else if (have_option('a', 'all')) { $user = new User(); if ($user->find()) { diff --git a/plugins/OStatus/tests/FeedDiscoveryTest.php b/plugins/OStatus/tests/FeedDiscoveryTest.php index 0e6354a867..ef17efe7cf 100644 --- a/plugins/OStatus/tests/FeedDiscoveryTest.php +++ b/plugins/OStatus/tests/FeedDiscoveryTest.php @@ -53,7 +53,7 @@ class FeedDiscoveryTest extends PHPUnit_Framework_TestCase </style> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://leuksman.com/log/xmlrpc.php?rsd" /> -<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://leuksman.com/log/wp-includes/wlwmanifest.xml" /> +<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://leuksman.com/log/wp-includes/wlwmanifest.xml" /> <link rel='index' title='leŭksman' href='http://leuksman.com/log' /> <meta name="generator" content="WordPress 2.8.6" /> </head> @@ -75,9 +75,10 @@ END; '<body><pre><LINK rel=alternate hRef=http://example.com/feed/rss type=application/rss+xml><fnork', 'http://example.com/feed/rss'), // 'rel' attribute must be lowercase, alone per http://www.rssboard.org/rss-autodiscovery + // but we're going to be liberal in what we receive. array('http://example.com/tagsoup2', '<body><pre><LINK rel=" feeders alternate 467" hRef=http://example.com/feed/rss type=application/rss+xml><fnork', - false), + 'http://example.com/feed/rss'), array('http://example.com/tagsoup3', '<body><pre><LINK rel=ALTERNATE hRef=http://example.com/feed/rss type=application/rss+xml><fnork', false), @@ -87,18 +88,20 @@ END; array('http://example.com/relative/link2', '<html><link rel="alternate" href="../feed/rss" type="application/rss+xml">', 'http://example.com/feed/rss'), + // This one can't resolve correctly; relative link is bogus. array('http://example.com/relative/link3', '<html><link rel="alternate" href="http:/feed/rss" type="application/rss+xml">', - 'http://example.com/feed/rss'), + 'http:/feed/rss'), array('http://example.com/base/link1', '<html><link rel="alternate" href="/feed/rss" type="application/rss+xml"><base href="http://target.example.com/">', 'http://target.example.com/feed/rss'), array('http://example.com/base/link2', '<html><link rel="alternate" href="feed/rss" type="application/rss+xml"><base href="http://target.example.com/">', 'http://target.example.com/feed/rss'), + // This one can't resolve; relative link is bogus. array('http://example.com/base/link3', '<html><link rel="alternate" href="http:/feed/rss" type="application/rss+xml"><base href="http://target.example.com/">', - 'http://target.example.com/feed/rss'), + 'http:/feed/rss'), // Trick question! There's a <base> but no href on it array('http://example.com/relative/fauxbase', '<html><link rel="alternate" href="../feed/rss" type="application/rss+xml"><base target="top">', diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php index 24b4b1660a..7888ec7c5d 100644 --- a/plugins/OStatus/tests/remote-tests.php +++ b/plugins/OStatus/tests/remote-tests.php @@ -4,6 +4,8 @@ if (php_sapi_name() != 'cli') { die('not for web'); } +define('HTTP_TIMEOUT', 60); // ssslllloowwwww salmon if queues are off + define('INSTALLDIR', dirname(dirname(dirname(dirname(__FILE__))))); set_include_path(INSTALLDIR . '/extlib' . PATH_SEPARATOR . get_include_path()); @@ -61,14 +63,15 @@ class OStatusTester extends TestBase /** * @param string $a base URL of test site A (eg http://localhost/mublog) * @param string $b base URL of test site B (eg http://localhost/mublog2) + * @param int $timeout HTTP timeout value (needs to be long if Salmon is slow) */ - function __construct($a, $b) { + function __construct($a, $b, $timeout=60) { $this->a = $a; $this->b = $b; $base = 'test' . mt_rand(1, 1000000); - $this->pub = new SNTestClient($this->a, 'pub' . $base, 'pw-' . mt_rand(1, 1000000)); - $this->sub = new SNTestClient($this->b, 'sub' . $base, 'pw-' . mt_rand(1, 1000000)); + $this->pub = new SNTestClient($this->a, 'pub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout); + $this->sub = new SNTestClient($this->b, 'sub' . $base, 'pw-' . mt_rand(1, 1000000), $timeout); } function run() @@ -164,11 +167,12 @@ class OStatusTester extends TestBase class SNTestClient extends TestBase { - function __construct($base, $username, $password) + function __construct($base, $username, $password, $timeout=60) { $this->basepath = $base; $this->username = $username; $this->password = $password; + $this->timeout = $timeout; $this->fullname = ucfirst($username) . ' Smith'; $this->homepage = 'http://example.org/' . $username; @@ -188,7 +192,7 @@ class SNTestClient extends TestBase { $url = $this->basepath . '/' . $path; - $http = new HTTP_Request2($url, 'POST'); + $http = new HTTP_Request2($url, 'POST', array('timeout' => $this->timeout)); if ($auth) { $http->setAuth($this->username, $this->password, HTTP_Request2::AUTH_BASIC); } @@ -215,7 +219,7 @@ class SNTestClient extends TestBase protected function web($path, $form, $params=array()) { $url = $this->basepath . '/' . $path; - $http = new HTTP_Request2($url, 'GET'); + $http = new HTTP_Request2($url, 'GET', array('timeout' => $this->timeout)); $response = $http->send(); $dom = $this->checkWeb($url, 'GET', $response); @@ -500,7 +504,7 @@ class SNTestClient extends TestBase $me = $this->getProfileUri(); return $this->checkSubscription($profile_uri, $me); } - + protected function checkSubscription($subscriber, $subscribed) { // Using FOAF as the API methods for checking the social graph @@ -532,10 +536,29 @@ class SNTestClient extends TestBase } -$args = array_slice($_SERVER['argv'], 1); +// @fixme switch to commandline.inc? +$timeout = HTTP_TIMEOUT; + +$args = array(); +$options = array(); +foreach (array_slice($_SERVER['argv'], 1) as $arg) { + if (substr($arg, 0, 2) == '--') { + $bits = explode('=', substr($arg, 2), 2); + if (count($bits == 2)) { + list($key, $val) = $bits; + $options[$key] = $val; + } else { + list($key) = $bits; + $options[$key] = true; + } + } else { + $args[] = $arg; + } +} if (count($args) < 2) { print <<<END_HELP -remote-tests.php <url1> <url2> +remote-tests.php [options] <url1> <url2> + --timeout=## change HTTP timeout from default {$timeout}s url1: base URL of a StatusNet instance url2: base URL of another StatusNet instance @@ -549,7 +572,9 @@ exit(1); $a = $args[0]; $b = $args[1]; +if (isset($options['timeout'])) { + $timeout = intval($options['timeout']); +} -$tester = new OStatusTester($a, $b); +$tester = new OStatusTester($a, $b, $timeout); $tester->run(); - diff --git a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php index 6756f19930..f0f6144e01 100644 --- a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php +++ b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class OpenExternalLinkTargetPlugin extends Plugin { function onEndShowScripts($action) @@ -57,8 +56,7 @@ class OpenExternalLinkTargetPlugin extends Plugin 'author' => 'Sarven Capadisli', 'homepage' => 'http://status.net/wiki/Plugin:OpenExternalLinkTarget', 'rawdescription' => - _m('Opens external links (i.e., with rel=external) on a new window or tab')); + _m('Opens external links (i.e. with rel=external) on a new window or tab.')); return true; } } - diff --git a/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot b/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot index f9bd4af10e..af5df45d1e 100644 --- a/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot +++ b/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,6 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: OpenExternalLinkTargetPlugin.php:60 -msgid "Opens external links (i.e., with rel=external) on a new window or tab" +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" diff --git a/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..3552d3649a --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - OpenExternalLinkTarget to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Öffnet externe Links (mit rel=external) in einem neuen Fenster oder Tab." diff --git a/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..103f2ffabb --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Abre enlaces externos (por ejemplo, con rel=external) en una nueva ventana o " +"pestaña." diff --git a/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..0e6e55df42 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - OpenExternalLinkTarget to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Ouvre les liens externes (p. ex., avec rel=external) dans une nouvelle " +"fenêtre ou un nouvel onglet." diff --git a/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..d08b7630e9 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "פתיחת קישורים חיצוניים (לדוגמה עם rel=external) בחלון או לשונית חדשים." diff --git a/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..54c40345fa --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Aperi ligamines externe (i.e. con rel=external) in un nove fenestra o scheda." diff --git a/plugins/OpenExternalLinkTarget/locale/id/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/id/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..380daec18b --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/id/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-18 18:35+0000\n" +"PO-Revision-Date: 2010-10-18 18:43:21+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-09 14:36:34+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74952); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: OpenExternalLinkTargetPlugin.php:59 +#, fuzzy +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Membuka pranala luar (misal dengan rel=external) di jendela atau tab baru." diff --git a/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..f6e390b3cf --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Отвора надворешни врски (т.е. со rel=external) во нов прозорец или јазиче." diff --git a/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..1147980f26 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Åpner eksterne lenker (f.eks. med rel=external) i ett nytt vindu eller en ny " +"fane." diff --git a/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..975ee3593a --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Opent externe verwijzingen (met \"rel=external\") in een nieuw venster of " +"tabblad." diff --git a/plugins/OpenExternalLinkTarget/locale/pt_BR/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/pt_BR/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..ad5dd3f5a6 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/pt_BR/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-18 18:35+0000\n" +"PO-Revision-Date: 2010-10-18 18:43:21+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-09 14:36:34+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74952); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +#, fuzzy +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Abre links externos (por exemplo, com rel=external) em uma nova janela ou " +"aba." diff --git a/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..cef89ed7a3 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Открывать внешние ссылки (например, rel=external) в новом окне или вкладке." diff --git a/plugins/OpenExternalLinkTarget/locale/tl/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/tl/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..9d8546f250 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/tl/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-18 18:35+0000\n" +"PO-Revision-Date: 2010-10-18 18:43:21+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-09 14:36:34+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74952); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: OpenExternalLinkTargetPlugin.php:59 +#, fuzzy +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Nagbubukas ng panlabasa na mga kawing (iyon ay may rel=external) sa isang " +"bagong bintana o panglaylay." diff --git a/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..3f51284e53 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:21+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:22+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: OpenExternalLinkTargetPlugin.php:59 +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"Відкривати зовнішні посилання (тобто з rel=external) у новому вікні або " +"вкладці." diff --git a/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..70074ee5db --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-10-18 18:35+0000\n" +"PO-Revision-Date: 2010-10-18 18:43:22+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-09 14:36:34+0000\n" +"X-Generator: MediaWiki 1.17alpha (r74952); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: OpenExternalLinkTargetPlugin.php:59 +#, fuzzy +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "在新窗口或标签打开外部链接(如使用 rel=external)。" diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index 7d6a5dc000..d1a6786fa8 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * @link http://status.net/ * @link http://openid.net/ */ - class OpenIDPlugin extends Plugin { // Plugin parameter: set true to disallow non-OpenID logins @@ -60,7 +59,6 @@ class OpenIDPlugin extends Plugin global $config; $config['site']['openidonly'] = (bool)$this->openidOnly; } - } /** @@ -72,7 +70,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onStartInitializeRouter($m) { $m->connect('main/openid', array('action' => 'openidlogin')); @@ -98,13 +95,17 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onStartConnectPath(&$path, &$defaults, &$rules, &$result) { if (common_config('site', 'openidonly')) { - static $block = array('main/login', - 'main/register', - 'main/recoverpassword', + // Note that we should not remove the login and register + // actions. Lots of auth-related things link to them, + // such as when visiting a private site without a session + // or revalidating a remembered login for admin work. + // + // We take those two over with redirects to ourselves + // over in onArgsInitialize(). + static $block = array('main/recoverpassword', 'settings/password'); if (in_array($path, $block)) { @@ -122,7 +123,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onArgsInitialize($args) { if (common_config('site', 'openidonly')) { @@ -153,7 +153,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onEndPublicXRDS($action, &$xrdsOutputter) { $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', @@ -184,7 +183,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onEndUserXRDS($action, &$xrdsOutputter) { $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', @@ -213,7 +211,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onStartPrimaryNav($action) { if (common_config('site', 'openidonly') && !common_logged_in()) { @@ -255,7 +252,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onStartLoginGroupNav(&$action) { if (common_config('site', 'openidonly')) { @@ -276,7 +272,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onEndLoginGroupNav(&$action) { $this->showOpenIDLoginTab($action); @@ -291,7 +286,6 @@ class OpenIDPlugin extends Plugin * * @return void */ - function showOpenIDLoginTab($action) { $action_name = $action->trimmed('action'); @@ -314,7 +308,6 @@ class OpenIDPlugin extends Plugin * * @return void */ - function onStartAccountSettingsPasswordMenuItem($menu, &$unused) { if (common_config('site', 'openidonly')) { return false; @@ -329,7 +322,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onEndAccountSettingsNav(&$action) { $action_name = $action->trimmed('action'); @@ -353,7 +345,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onAutoload($cls) { switch ($cls) @@ -395,7 +386,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onSensitiveAction($action, &$ssl) { switch ($action) @@ -419,7 +409,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook return */ - function onLoginAction($action, &$login) { switch ($action) @@ -442,7 +431,6 @@ class OpenIDPlugin extends Plugin * * @return void */ - function onEndShowHeadElements($action) { if ($action instanceof ShowstreamAction) { @@ -466,7 +454,6 @@ class OpenIDPlugin extends Plugin * * @return boolean whether to continue */ - function onRedirectToLogin($action, $user) { if (common_config('site', 'openid_only') || (!empty($user) && User_openid::hasOpenID($user->id))) { @@ -483,7 +470,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onEndShowPageNotice($action) { $name = $action->trimmed('action'); @@ -522,7 +508,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onStartLoadDoc(&$title, &$output) { if ($title == 'openid') { @@ -544,7 +529,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onEndLoadDoc($title, &$output) { if ($title == 'help') { @@ -563,7 +547,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onCheckSchema() { $schema = Schema::get(); @@ -596,7 +579,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onUserDeleteRelated($user, &$tables) { $tables[] = 'User_openid'; @@ -611,7 +593,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onEndAdminPanelNav($nav) { if (AdminPanelAction::canAdmin('openid')) { @@ -620,7 +601,9 @@ class OpenIDPlugin extends Plugin $nav->out->menuItem( common_local_url('openidadminpanel'), - _m('OpenID'), + // TRANS: OpenID configuration menu item. + _m('MENU','OpenID'), + // TRANS: Tooltip for OpenID configuration menu item. _m('OpenID configuration'), $action_name == 'openidadminpanel', 'nav_openid_admin_panel' @@ -630,6 +613,28 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Add OpenID information to the Account Management Control Document + * Event supplied by the Account Manager plugin + * + * @param array &$amcd Array that expresses the AMCD + * + * @return boolean hook value + */ + + function onEndAccountManagementControlDocument(&$amcd) + { + $amcd['auth-methods']['openid'] = array( + 'connect' => array( + 'method' => 'POST', + 'path' => common_local_url('openidlogin'), + 'params' => array( + 'identity' => 'openid_url' + ) + ) + ); + } + /** * Add our version information to output * @@ -637,7 +642,6 @@ class OpenIDPlugin extends Plugin * * @return boolean hook value */ - function onPluginVersion(&$versions) { $versions[] = array('name' => 'OpenID', @@ -649,4 +653,133 @@ class OpenIDPlugin extends Plugin _m('Use <a href="http://openid.net/">OpenID</a> to login to the site.')); return true; } + + function onStartOAuthLoginForm($action, &$button) + { + if (common_config('site', 'openidonly')) { + // Cancel the regular password login form, we won't need it. + $this->showOAuthLoginForm($action); + // TRANS: button label for OAuth authorization page when needing OpenID authentication first. + $button = _m('BUTTON', 'Continue'); + return false; + } else { + // Leave the regular password login form in place. + // We'll add an OpenID link at bottom...? + return true; + } + } + + /** + * @fixme merge with common code for main OpenID login form + * @param HTMLOutputter $action + */ + protected function showOAuthLoginForm($action) + { + $action->elementStart('fieldset'); + // TRANS: OpenID plugin logon form legend. + $action->element('legend', null, _m('OpenID login')); + + $action->elementStart('ul', 'form_data'); + $action->elementStart('li'); + $provider = common_config('openid', 'trusted_provider'); + $appendUsername = common_config('openid', 'append_username'); + if ($provider) { + // TRANS: Field label. + $action->element('label', array(), _m('OpenID provider')); + $action->element('span', array(), $provider); + if ($appendUsername) { + $action->element('input', array('id' => 'openid_username', + 'name' => 'openid_username', + 'style' => 'float: none')); + } + $action->element('p', 'form_guide', + // TRANS: Form guide. + ($appendUsername ? _m('Enter your username.') . ' ' : '') . + // TRANS: Form guide. + _m('You will be sent to the provider\'s site for authentication.')); + $action->hidden('openid_url', $provider); + } else { + // TRANS: OpenID plugin logon form field label. + $action->input('openid_url', _m('OpenID URL'), + '', + // TRANS: OpenID plugin logon form field instructions. + _m('Your OpenID URL')); + } + $action->elementEnd('li'); + $action->elementEnd('ul'); + + $action->elementEnd('fieldset'); + } + + /** + * Handle a POST user credential check in apioauthauthorization. + * If given an OpenID URL, we'll pass us over to the regular things + * and then redirect back here on completion. + * + * @fixme merge with common code for main OpenID login form + * @param HTMLOutputter $action + */ + function onStartOAuthLoginCheck($action, &$user) + { + $provider = common_config('openid', 'trusted_provider'); + if ($provider) { + $openid_url = $provider; + if (common_config('openid', 'append_username')) { + $openid_url .= $action->trimmed('openid_username'); + } + } else { + $openid_url = $action->trimmed('openid_url'); + } + + if ($openid_url) { + require_once dirname(__FILE__) . '/openid.php'; + oid_assert_allowed($openid_url); + + $returnto = common_local_url( + 'ApiOauthAuthorize', + array(), + array( + 'oauth_token' => $action->arg('oauth_token'), + 'mode' => $action->arg('mode') + ) + ); + common_set_returnto($returnto); + + // This will redirect if functional... + $result = oid_authenticate($openid_url, + 'finishopenidlogin'); + if (is_string($result)) { # error message + throw new ServerException($result); + } else { + exit(0); + } + } + + return true; + } + + /** + * Add link in user's XRD file to allow OpenID login. + * + * This link in the XRD should let users log in with their + * Webfinger identity to services that support it. See + * http://webfinger.org/login for an example. + * + * @param XRD &$xrd Currently-displaying XRD object + * @param User $user The user that it's for + * + * @return boolean hook value (always true) + */ + + function onEndXrdActionLinks(&$xrd, $user) + { + $profile = $user->getProfile(); + + if (!empty($profile)) { + $xrd->links[] = array('rel' => 'http://specs.openid.net/auth/2.0/provider', + 'href' => $profile->profileurl); + } + + return true; + } } diff --git a/plugins/OpenID/User_openid.php b/plugins/OpenID/User_openid.php index 1beff9ea30..e34cf21f2c 100644 --- a/plugins/OpenID/User_openid.php +++ b/plugins/OpenID/User_openid.php @@ -2,7 +2,10 @@ /** * Table Definition for user_openid */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +if (!defined('STATUSNET')) { + exit(1); +} class User_openid extends Memcached_DataObject { diff --git a/plugins/OpenID/User_openid_trustroot.php b/plugins/OpenID/User_openid_trustroot.php index 17c03afb02..69e0a3f3e0 100644 --- a/plugins/OpenID/User_openid_trustroot.php +++ b/plugins/OpenID/User_openid_trustroot.php @@ -2,7 +2,10 @@ /** * Table Definition for user_openid_trustroot */ -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +if (!defined('STATUSNET')) { + exit(1); +} class User_openid_trustroot extends Memcached_DataObject { diff --git a/plugins/OpenID/finishaddopenid.php b/plugins/OpenID/finishaddopenid.php index 47b3f7fb16..6eb2f2d206 100644 --- a/plugins/OpenID/finishaddopenid.php +++ b/plugins/OpenID/finishaddopenid.php @@ -27,7 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } diff --git a/plugins/OpenID/finishopenidlogin.php b/plugins/OpenID/finishopenidlogin.php index 0c03b5c4db..0053a7f1d2 100644 --- a/plugins/OpenID/finishopenidlogin.php +++ b/plugins/OpenID/finishopenidlogin.php @@ -17,7 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} require_once INSTALLDIR.'/plugins/OpenID/openid.php'; @@ -98,8 +100,15 @@ class FinishopenidloginAction extends Action return; } + // We don't recognize this OpenID, so we're going to give the user + // two options, each in its own mini-form. + // + // First, they can create a new account using their OpenID auth + // info. The profile will be pre-populated with whatever name, + // email, and location we can get from the OpenID provider, so + // all we ask for is the license confirmation. $this->elementStart('form', array('method' => 'post', - 'id' => 'account_connect', + 'id' => 'account_create', 'class' => 'form_settings', 'action' => common_local_url('finishopenidlogin'))); $this->hidden('token', common_session_token()); @@ -139,7 +148,15 @@ class FinishopenidloginAction extends Action // TRANS: Button label in form in which to create a new user on the site for an OpenID. $this->submit('create', _m('BUTTON', 'Create')); $this->elementEnd('fieldset'); + $this->elementEnd('form'); + // The second option is to attach this OpenID to an existing account + // on the local system, which they need to provide a password for. + $this->elementStart('form', array('method' => 'post', + 'id' => 'account_connect', + 'class' => 'form_settings', + 'action' => common_local_url('finishopenidlogin'))); + $this->hidden('token', common_session_token()); $this->elementStart('fieldset', array('id' => 'form_openid_createaccount')); $this->element('legend', null, // TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. @@ -270,13 +287,10 @@ class FinishopenidloginAction extends Action } } - $nickname = $this->trimmed('newname'); - - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - // TRANS: OpenID plugin message. The entered new user name did not conform to the requirements. - $this->showForm(_m('Nickname must have only lowercase letters and numbers and no spaces.')); + try { + $nickname = Nickname::normalize($this->trimmed('newname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); return; } @@ -461,9 +475,7 @@ class FinishopenidloginAction extends Action function isNewNickname($str) { - if (!Validate::string($str, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { + if (!Nickname::isValid($str)) { return false; } if (!User::allowed_nickname($str)) { diff --git a/plugins/OpenID/locale/OpenID.pot b/plugins/OpenID/locale/OpenID.pot index 70908422e5..bc49dd91e4 100644 --- a/plugins/OpenID/locale/OpenID.pot +++ b/plugins/OpenID/locale/OpenID.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,215 +16,355 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: openidsettings.php:59 +#: openidsettings.php:58 openidadminpanel.php:65 msgid "OpenID settings" msgstr "" -#: openidsettings.php:70 +#: openidsettings.php:69 #, php-format msgid "" "[OpenID](%%doc.openid%%) lets you log into many sites with the same user " "account. Manage your associated OpenIDs from here." msgstr "" -#: openidsettings.php:99 +#: openidsettings.php:100 msgid "Add OpenID" msgstr "" -#: openidsettings.php:102 +#: openidsettings.php:103 msgid "" "If you want to add an OpenID to your account, enter it in the box below and " "click \"Add\"." msgstr "" -#: openidsettings.php:107 openidlogin.php:119 +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 msgid "OpenID URL" msgstr "" -#: openidsettings.php:117 +#: openidsettings.php:118 msgid "Add" msgstr "" -#: openidsettings.php:129 +#: openidsettings.php:130 msgid "Remove OpenID" msgstr "" -#: openidsettings.php:134 +#: openidsettings.php:135 msgid "" "Removing your only OpenID would make it impossible to log in! If you need to " "remove it, add another OpenID first." msgstr "" -#: openidsettings.php:149 +#: openidsettings.php:150 msgid "" "You can remove an OpenID from your account by clicking the button marked " "\"Remove\"." msgstr "" -#: openidsettings.php:172 openidsettings.php:213 +#: openidsettings.php:173 openidsettings.php:214 msgid "Remove" msgstr "" -#: openidsettings.php:186 +#: openidsettings.php:187 msgid "OpenID Trusted Sites" msgstr "" -#: openidsettings.php:189 +#: openidsettings.php:190 msgid "" "The following sites are allowed to access your identity and log you in. You " "can remove a site from this list to deny it access to your OpenID." msgstr "" -#: openidsettings.php:231 finishopenidlogin.php:38 openidlogin.php:39 +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: openidsettings.php:247 finishopenidlogin.php:51 +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 msgid "Something weird happened." msgstr "" -#: openidsettings.php:271 +#: openidsettings.php:276 msgid "No such OpenID trustroot." msgstr "" -#: openidsettings.php:275 +#: openidsettings.php:280 msgid "Trustroots removed" msgstr "" -#: openidsettings.php:298 +#: openidsettings.php:303 msgid "No such OpenID." msgstr "" -#: openidsettings.php:303 +#: openidsettings.php:308 msgid "That OpenID does not belong to you." msgstr "" -#: openidsettings.php:307 +#: openidsettings.php:312 msgid "OpenID removed." msgstr "" -#: openid.php:137 +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 msgid "Cannot instantiate OpenID consumer object." msgstr "" -#: openid.php:147 +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 msgid "Not a valid OpenID." msgstr "" -#: openid.php:149 +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 #, php-format msgid "OpenID failure: %s" msgstr "" -#: openid.php:176 +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 #, php-format msgid "Could not redirect to server: %s" msgstr "" -#: openid.php:194 -#, php-format -msgid "Could not create OpenID form: %s" -msgstr "" - -#: openid.php:210 +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 msgid "" "This form should automatically submit itself. If not, click the submit " "button to go to your OpenID provider." msgstr "" -#: openid.php:242 +#. TRANS: OpenID plugin server error. +#: openid.php:280 msgid "Error saving the profile." msgstr "" -#: openid.php:253 +#. TRANS: OpenID plugin server error. +#: openid.php:292 msgid "Error saving the user." msgstr "" -#: openid.php:282 +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 msgid "Unauthorized URL used for OpenID login." msgstr "" -#: openid.php:302 +#. TRANS: Title +#: openid.php:370 msgid "OpenID Login Submission" msgstr "" -#: openid.php:312 +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 msgid "Requesting authorization from your login provider..." msgstr "" -#: openid.php:315 +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 msgid "" "If you are not redirected to your login provider in a few seconds, try " "pushing the button below." msgstr "" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:204 +#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: OpenIDPlugin.php:207 +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:212 +#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "" -#: OpenIDPlugin.php:215 +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:221 +#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: OpenIDPlugin.php:224 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "" -#: OpenIDPlugin.php:283 OpenIDPlugin.php:319 +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" msgid "OpenID" msgstr "" -#: OpenIDPlugin.php:284 +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "" -#: OpenIDPlugin.php:320 +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "" -#: OpenIDPlugin.php:595 +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." msgstr "" -#: openidserver.php:106 +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 #, php-format msgid "You are not authorized to use the identity %s." msgstr "" -#: openidserver.php:126 +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 msgid "Just an OpenID provider. Nothing to see here, move along..." msgstr "" -#: finishopenidlogin.php:34 openidlogin.php:30 +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "" -#: finishopenidlogin.php:43 +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "" -#: finishopenidlogin.php:65 +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -232,173 +372,204 @@ msgid "" "your existing account, if you have one." msgstr "" -#: finishopenidlogin.php:71 +#. TRANS: Title +#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "" -#: finishopenidlogin.php:101 +#: finishopenidlogin.php:117 msgid "Create new account" msgstr "" -#: finishopenidlogin.php:103 +#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "" -#: finishopenidlogin.php:106 +#: finishopenidlogin.php:122 msgid "New nickname" msgstr "" -#: finishopenidlogin.php:108 +#: finishopenidlogin.php:124 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" -#: finishopenidlogin.php:130 +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" msgid "Create" msgstr "" -#: finishopenidlogin.php:135 +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 msgid "Connect existing account" msgstr "" -#: finishopenidlogin.php:137 +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." msgstr "" -#: finishopenidlogin.php:140 +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 msgid "Existing nickname" msgstr "" -#: finishopenidlogin.php:143 +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 msgid "Password" msgstr "" -#: finishopenidlogin.php:146 +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" msgid "Connect" msgstr "" -#: finishopenidlogin.php:158 finishaddopenid.php:88 +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "" -#: finishopenidlogin.php:162 finishaddopenid.php:92 +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "" -#: finishopenidlogin.php:227 finishopenidlogin.php:236 +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 msgid "Registration not allowed." msgstr "" -#: finishopenidlogin.php:243 +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 msgid "Not a valid invitation code." msgstr "" -#: finishopenidlogin.php:253 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: finishopenidlogin.php:258 +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 msgid "Nickname not allowed." msgstr "" -#: finishopenidlogin.php:263 +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 msgid "Nickname already in use. Try another one." msgstr "" -#: finishopenidlogin.php:270 finishopenidlogin.php:350 +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 msgid "Stored OpenID not found." msgstr "" -#: finishopenidlogin.php:279 +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 msgid "Creating new account for OpenID that already has a user." msgstr "" -#: finishopenidlogin.php:339 +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 msgid "Invalid username or password." msgstr "" -#: finishopenidlogin.php:357 +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 msgid "Error connecting user to OpenID." msgstr "" -#: openidlogin.php:68 +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " "before changing your settings." msgstr "" -#: openidlogin.php:72 +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "" -#: openidlogin.php:97 finishaddopenid.php:170 +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 msgid "OpenID Login" msgstr "" -#: openidlogin.php:114 -msgid "OpenID login" -msgstr "" - -#: openidlogin.php:121 -msgid "Your OpenID URL" -msgstr "" - -#: openidlogin.php:124 +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 msgid "Remember me" msgstr "" -#: openidlogin.php:125 +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 msgid "Automatically login in the future; not for shared computers!" msgstr "" -#: openidlogin.php:129 +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" msgid "Login" msgstr "" -#: openidtrust.php:51 +#: openidtrust.php:52 msgid "OpenID Identity Verification" msgstr "" -#: openidtrust.php:69 +#: openidtrust.php:70 msgid "" "This page should only be reached during OpenID processing, not directly." msgstr "" -#: openidtrust.php:117 +#: openidtrust.php:118 #, php-format msgid "" "%s has asked to verify your identity. Click Continue to verify your " "identity and login without creating a new password." msgstr "" -#: openidtrust.php:135 +#: openidtrust.php:136 msgid "Continue" msgstr "" -#: openidtrust.php:136 +#: openidtrust.php:137 msgid "Cancel" msgstr "" -#: finishaddopenid.php:67 +#. TRANS: Client error message +#: finishaddopenid.php:68 msgid "Not logged in." msgstr "" -#: finishaddopenid.php:112 +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 msgid "You already have this OpenID!" msgstr "" -#: finishaddopenid.php:114 +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 msgid "Someone else already has this OpenID." msgstr "" -#: finishaddopenid.php:126 +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 msgid "Error connecting user." msgstr "" -#: finishaddopenid.php:131 +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 msgid "Error updating profile" msgstr "" diff --git a/plugins/OpenID/locale/ar/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/ar/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..86c42ba286 --- /dev/null +++ b/plugins/OpenID/locale/ar/LC_MESSAGES/OpenID.po @@ -0,0 +1,589 @@ +# Translation of StatusNet - OpenID to Arabic (العربية) +# Expored from translatewiki.net +# +# Author: OsamaK +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:28+0000\n" +"Language-Team: Arabic <http://translatewiki.net/wiki/Portal:ar>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ar\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == " +"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " +"99) ? 4 : 5 ) ) ) );\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "إعدادات الهوية المفتوحة" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"تمكنك [الهوية المفتوحة](%%doc.openid%%) من الولوج إلى مواقع كثيرة بنفس حساب " +"المستخدم. أدر هوياتك المفتوحة هنا." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "أضف هوية مفتوحة" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"إذا أردت إضافة هوية مفتوحة إلى حسابك، أدخلها إلى الصندوق أدناه وانقر \"أضف\"." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "مسار الهوية المفتوحة" + +#: openidsettings.php:118 +msgid "Add" +msgstr "أضف" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "أزل الهوية المفتوحة" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"إن حذف هويتك المفتوحة الوحيدة سيجعل من المستحيل الولوج! إذا أردت إضافة هذه " +"فأضف هوية مفتوحة أخرى أولا." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "يمكنك إزالة هوية مفتوحة من حسابك بنفر الزر المُعلّم \"أزل\"." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "أزل" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "مواقع الهوية المفتوحة الموثوقة" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"يسمح للمواقع التالية بالوصول إلى هويتك والولوج بها. يمكنك إزالة موقع من " +"القائمة لمنعه من الوصول إلى هويتك المفتوحة." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "لا هوية مفتوحة كهذه." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "تلك الهوية المفتوحة ليست لك." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "أزيلت الهوية المفتوحة." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "الهوية المفتوحة" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "مسار المزود غير صالح. أقصى طول 255 حرف." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "اسم فريق غير صالح. أقصى طول 255 حرف." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "مزود موثوق" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "ساعدني!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "استمر" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "أدخل اسم مستخدمك." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "أنشئ حسابًا جديدًا" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "" + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "كلمة السر" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "" + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "" + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "" + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "تذكرني" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "استمر" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "ألغِ" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "لست والجًا." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..b4b7424a14 --- /dev/null +++ b/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po @@ -0,0 +1,582 @@ +# Translation of StatusNet - OpenID to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:28+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Arventenn OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Ouzhpennañ OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Ouzhpennañ" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Dilemel OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Dilemel" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Dibosupl eo ouzhpennañ pourvezerien nevez." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "N'eus ket eus ar gont OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "Kont OpenID dilamet." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Skipailh ret" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Dibarzhioù" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Ur fazi 'zo bet pa veze enrollet ar profil." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Ur fazi 'zo bet pa veze enrollet an implijer." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Kevreañ d'al lec'hienn" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Kevreañ" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Sikour din !" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Skoazell" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Klask tud pe un tamm testenn" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Klask" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Kefluniadur OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Kenderc'hel" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Ebarzhit hoc'h anv implijer" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" +"Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " +"gont." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Ur gudenn dizanv a zo bet." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Krouiñ ur gont nevez" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Krouiñ un implijer nevez gant al lesanv-se." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Lesanv nevez" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Krouiñ" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Lesanv a zo dioutañ" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Ger-tremen" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Kevreañ" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "N'eo ket aotreet krouiñ kontoù." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "N'eo ket reizh ar c'hod pedadenn." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Lesanv nann-aotreet." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "" + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Kevreañ gant ur gont [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Derc'hel soñj ac'hanon" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Kevreañ" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Kenderc'hel" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Nullañ" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Nann-kevreet." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Kevreet oc'h dija gant an OpenID-se !" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..12b2de53cc --- /dev/null +++ b/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po @@ -0,0 +1,602 @@ +# Translation of StatusNet - OpenID to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:28+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Paràmetres de l'OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) us permet iniciar una sessió a molts llocs amb un " +"mateix compte d'usuari. Gestioneu les vostres connexions OpenID associades " +"des d'aquí." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Afegeix una connexió OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si voleu afegir una connexió OpenID al vostre compte, introduïu-la en la " +"caixa a continuació i feu clic a «Afegeix»." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL de la connexió OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Afegeix" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Suprimeix la connexió OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Si suprimiu la vostra única connexió OpenID, serà impossible que hi inicieu " +"cap sessió. Si cal que la suprimiu, primer afegiu-ne una altra." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Podeu suprimir una connexió OpenID del vostre compte si feu clic al botó " +"marcat amb «Suprimeix»." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Suprimeix" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Llocs de confiança de l'OpenID" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "" + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "S'ha suprimit l'OpenID." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Opcions" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Ajuda'm!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Ajuda" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Cerca" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Inici de sessió o registre amb OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Afegeix o suprimeix connexions OpenID" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Configuració de l'OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Fa servir <a href=\"http://openid.net/\">OpenID</a> per connectar-se al lloc." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continua" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Inici de sessió amb OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "Proveïdor d'OpenID" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Introduïu el vostre nom d'usuari." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Se us portarà al lloc del proveïdor perquè us hi autentiqueu." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "L'URL del vostre OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "No esteu autoritzar a utilitzar la identitat %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Només un proveïdor OpenID. Res per veure aquí, movem-nos-en…" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Ja heu iniciat una sessió." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "No podeu registrar-vos-hi si no accepteu la llicència." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "S'ha produït un error desconegut." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Aquesta és la primera vegada que inicieu una sessió a %s; per tant, hem de " +"connectar el vostre OpenID al compte local. Podeu crear un compte nou, o bé " +"connectar-vos-hi amb un compte ja existent si en teniu un." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Configuració del compte OpenID" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Crea un compte nou" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Crea un usuari nou amb aquest sobrenom." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Nou sobrenom" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crea" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Contrasenya" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connecta-hi" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "No es permet el registre." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "No és un codi d'invitació vàlid." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "No es permet el sobrenom." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "El sobrenom ja és en ús. Proveu-ne un altre." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "No s'ha trobat la connexió OpenID emmagatzemada." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" +"S'està creant un compte nou per a una connexió OpenID que ja té un usuari." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "El nom d'usuari o la contrasenya no són vàlids." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "S'ha produït un error en connectar l'usuari amb la connexió OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Per motius de seguretat, torneu a iniciar una sessió amb [OpenID](%%doc." +"openid%%) abans de canviar els paràmetres." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Inicia una sessió amb un compte [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "Inici de sessió amb OpenID" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Recorda'm" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Inicia una sessió automàticament en el futur; no recomanable en ordinadors " +"compartits!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Inicia una sessió" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "Verificació de la identitat d'OpenID" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Hauria d'arribar-se a aquesta pàgina només durant el processament de " +"l'OpenID, no directament." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s us ha demanat verificar la identitat. Feu clic a Continuar per verificar " +"la vostra identitat i iniciar una sessió sense crear cap contrasenya nova." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Continua" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Cancel·la" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "No s'ha iniciat una sessió." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Ja teniu aquest OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Algú altre ja té aquest OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "S'ha produït un error en connectar l'usuari" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "S'ha produït un error en actualitzar el perfil" diff --git a/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..e9143aeb07 --- /dev/null +++ b/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po @@ -0,0 +1,622 @@ +# Translation of StatusNet - OpenID to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:29+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "OpenID-Einstellungen" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) erlaubt die, dich auf vielen Seiten mit dem selben " +"Benutzerkonto anzumelden. Verwalte deine verknüpften OpenIDs von hier aus." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "OpenID hinzufügen" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Falls du eine OpenID zu deinem Konto hinzufügen willst, trage sie in dem " +"nachfolgenden Feld ein und klicke auf „Hinzufügen“." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "OpenID-URL" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Hinzufügen" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Entfernen der OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Das Entfernen der einzigen OpenID würde das Einloggen unmöglich machen! " +"Falls du sie entfernen musst, füge zuerst eine andere hinzu." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Du kannst eine OpenID von deinem Konto entfernen, indem du auf den Button " +"„Entfernen“ klickst." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Entfernen" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Vertrauenswürdige OpenID-Seiten" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Den folgenden Seiten ist es erlaubt, deine Identität abzufragen und dich " +"damit anzumelden. Du kannst eine Website aus dieser Liste entfernen, um ihr " +"den Zugriff auf deine OpenID zu verweigern." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Kann keine neuen Provider hinzufügen" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "Etwas Seltsames ist passiert." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Keine solche OpenID trustroot." + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "Trustroots entfernt" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Keine solche OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Diese OpenID gehört dir nicht." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "OpenID entfernt." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Ungültige Provider-URL. Maximale Länge beträgt 255 Zeichen." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "Ungültiger Teamnamen. Maximale Länge beträgt 255 Zeichen." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Vertrauenswürdiger Provider" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Standardmäßig dürfen sich Benutzer mit jedem OpenID-Provider " +"authentifizieren. Wenn du deinen eigenen OpenID-Servide benutzt, kannst du " +"hier den Zugang auf deine eigenen Benutzer beschränken." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "Provider-URL" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Alle OpenID-Anmeldungen werden an diese URL gesendet; andere Provider können " +"nicht verwendet werden." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Einen Benutzernamen an die Basis-URL anfügen" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Die Anmelde-Form wird eine Basis-URL anzeigen und um einen Benutzernamen am " +"Ende bitten. Benutzer dass, wenn die OpenID-Provider-URL die Profilseite " +"individueller Benutzer sein sollte." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Erforderliche Mannschaft" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Nur Anmeldungen von Benutzern aus der gegebenen Mannschaft erlauben " +"(Launchpad-Erweiterung)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Optionen" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Nur-OpenID-Modus aktivieren" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Von allen Benutzern OpenID-Anmeldung verlangen. Warnung: deaktiviert " +"Passwort-Authentifizierung aller Benutzer!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "OpenId-Einstellungen speichern" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Keine gültige OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "OpenId-Fehler: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Konnte keine Verbindung zum Server erstellen: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Fehler beim Speichern des Profils." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Fehler beim Speichern des Benutzers." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "Unauthorisierte URL für OpenID-Anmeldung benutzt." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "Authorisierung von deinem Login-Provider wird angefragt …" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Wenn du nicht in wenigen Sekunden zu deinem Login-Provider weitergeleitet " +"wirst, versuche den Button unten zu klicken." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Auf der Seite anmelden" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Anmelden" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Hilf mir!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Hilfe" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Suche nach Leuten oder Text" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Suche" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Anmelden oder Registrieren per OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Hinzufügen oder Entfernen von OpenIDs" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "OpenId-Konfiguration" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Benutzung der <a href=\"http://openid.net/\">OpenID</a> zur Anmeldung auf " +"der Seite" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Weiter" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Gib deinen Benutzernamen ein." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "Ihre OpenID URL" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Du bist nicht berechtigt, die Identität %s zu benutzen." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Nur ein OpenID-Provider. Hier gibt es nichts zu sehen …" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Bereits angemeldet." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" +"Du kannst dich nicht registrieren, wenn du die Lizenz nicht akzeptierst." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Ein unbekannter Fehler ist aufgetreten." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Dies ist das erste Mal, dass du dich auf %s anmeldest, sodass wir deine " +"OpenID mit einem lokalen Benutzerkonto verbinden müssen. Du kannst entweder " +"ein neues Benutzerkonto erstellen oder dich mit deinem existierendem " +"Benutzerkonto verbinden." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Neues Benutzerkonto erstellen" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Neues Benutzerkonto mit diesem Benutzernamen erstellen." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Neuer Benutzername" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Erstellen" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Bestehendes Benutzerkonto verbinden" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Wenn du bereits ein Benutzerkonto hast, melde dich mit deinem Benutzernamen " +"und Passwort an, um ihn mit deiner OpenID zu verbinden." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Bestehender Benutzername" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Passwort" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Verbinden" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "OpenID-Authentifizierung abgebrochen." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "OpenID-Authentifizierung gescheitert: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"OpenID-Authentifizierung abgebrochen: du darfst dich nicht auf dieser Seite " +"anmelden." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Registrierung nicht erlaubt." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Kein gültiger Einladungscode." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Benutzername nicht erlaubt." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Benutzername wird bereits verwendet. Suche dir einen anderen aus." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Benutzername oder Passwort falsch." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Bitte melde dich aus Sicherheitsgründen noch einmal mit deiner [OpenID](%%" +"doc.openid%%), bevor du deine Einstellungen änderst." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Mit einem [OpenID](%%doc.openid%%)-Benutzerkonto anmelden." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Anmeldedaten merken" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "Automatisch anmelden; nicht bei gemeinsam genutzten PCs einsetzen!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Anmelden" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s hat dich gebeten, deine Identität zu bestätigen. Klicke auf „Weiter“, um " +"deine Identität zu bestätigen und dich anzumelden ohne ein neues Passwort zu " +"erstellen." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Weiter" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Abbrechen" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Nicht angemeldet." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Du hast bereits diese OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Jemand anders hat bereits diese Open-ID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..a0a2d5d6e5 --- /dev/null +++ b/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po @@ -0,0 +1,636 @@ +# Translation of StatusNet - OpenID to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:29+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Paramètres OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) vous permet de vous connecter à de nombreux sites " +"avec le même compte utilisateur. Gérez à partir d’ici les identifiants " +"OpenID associés à votre compte ici." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Ajouter OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si vous souhaitez ajouter un compte OpenID à votre compte, entrez-le dans la " +"case ci-dessous et cliquez sur « Ajouter »." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "Adresse URL OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Ajouter" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Retirer OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Le retrait de votre unique compte OpenID ne vous permettrait plus de vous " +"connecter ! Si vous avez besoin de l’enlever, ajouter d’abord un autre " +"compte OpenID." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Vous pouvez retirer un compte OpenID de votre compte en cliquant le bouton « " +"Retirer »" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Enlever" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Sites de confiance OpenID" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Les sites suivants sont autorisés à accéder à votre identité et à vous " +"connecter. Vous pouvez retirer un site de cette liste pour l’empêcher " +"d’accéder à votre compte OpenID." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Impossible d’ajouter de nouveaux fournisseurs." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "Quelque chose de bizarre s’est passé." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Racine de confiance OpenID inexistante." + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "Racines de confiance retirées" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Compte OpenID inexistant." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Ce compte OpenID ne vous appartient pas." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "Compte OpenID retiré." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" +"Adresse URL du fournisseur invalide. La taille maximale est de 255 " +"caractères." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "Nom d’équipe invalide. La taille maximale est de 255 caractères." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Fournisseur de confiance" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Par défaut, les utilisateurs sont autorisés à s’authentifier auprès de " +"n’importe quel fournisseur OpenID. Si vous utilisez votre propre service " +"OpenID pour l’inscription partagée, vous pouvez restreindre l’accès à vos " +"seuls propres utilisateurs ici." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "Adresse URL du fournisseur" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Toutes les connexions OpenID seront envoyées à cette adresse ; les autres " +"fournisseurs ne peuvent être utilisés." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Ajouter un nom d’utilisateur à l’adresse URL de base" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Le formulaire de connexion affichera l’adresse URL de base et demandera un " +"nom d’utilisateur à ajouter à la fin. Utilisez cette option quand l’adresse " +"URL du fournisseur OpenID devrait être la page de profil des utilisateurs " +"individuels." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Équipe exigée" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Autoriser uniquement les connexions des utilisateurs membres de l’équipe " +"donnée (extension Launchpad)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Options" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Activer le mode OpenID seul" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Exiger que tous les utilisateurs se connectent via OpenID. Avertissement : " +"cela désactive l’authentification par mot de passe pour tous les " +"utilisateurs !" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "Sauvegarder les paramètres OpenID" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "Impossible d’instancier l’objet client OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Ce n’est pas un identifiant OpenID valide." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "Échec d’OpenID : %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Impossible de rediriger vers le serveur : %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ce formulaire devrait se soumettre automatiquement lui-même. Si ce n’est pas " +"le cas, cliquez le bouton « Soumettre » en bas pour aller vers la page de " +"votre fournisseur OpenID." + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Erreur lors de la sauvegarde du profil." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Erreur lors de la sauvegarde de l’utilisateur." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "Adresse URL non autorisée utilisée pour la connexion OpenID." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "Soumission de la connexion OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "Demande d’autorisation auprès de votre fournisseur de connexion..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Si vous n’êtes pas redirigé vers votre fournisseur de connexion dans " +"quelques secondes, essayez en cliquant le bouton ci-dessous." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Connexion au site" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Connexion" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Aidez-moi !" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Aide" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Rechercher des personnes ou du texte" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Rechercher" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Se connecter ou s’inscrire avec OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Ajouter ou retirer des identifiants OpenID" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Configuration d’OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Utiliser <a href=\"http://openid.net/\">OpenID</a> pour se connecter au site." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuer" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Connexion OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "Fournisseur OpenID" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Entrez votre nom d’utilisateur." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Vous serez envoyé sur le site du fournisseur pour l’authentification." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "Votre URL OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Vous n’êtes pas autorisé à utiliser l’identité « %s »." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Juste un fournisseur OpenID. Rien à voir ici, passez votre chemin..." + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Déjà connecté." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Une erreur inconnue s’est produite." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"C’est la première fois que vous êtes connecté à %s via OpenID, il nous faut " +"donc lier votre compte OpenID à un compte local. Vous pouvez soit créer un " +"nouveau compte, soit vous connecter avec votre compte local existant si vous " +"en avez un." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Configuration du compte OpenID" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Créer un nouveau compte" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Créer un nouvel utilisateur avec ce pseudonyme." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Nouveau pseudonyme" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Créer" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Se connecter à un compte existant" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Si vous avez déjà un compte ici, connectez-vous avec votre nom d’utilisateur " +"et mot de passe pour l’associer à votre compte OpenID." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Pseudonyme existant" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Mot de passe" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connexion" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "Authentification OpenID annulée." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "L’authentification OpenID a échoué : %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"L’authentification OpenID a été abandonnée : vous n'êtes pas autorisé à vous " +"connecter à ce site." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Inscription non autorisée." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Le code d’invitation n’est pas valide." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Pseudonyme non autorisé." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "OpenID stocké non trouvé." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "Créer un nouveau compte pour OpenID qui a déjà un utilisateur." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "Erreur de connexion de l’utilisateur à OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Pour des raisons de sécurité, veuillez vous reconnecter avec votre [OpenID](%" +"%doc.openid%%) avant de changer toute préférence liée à votre profil." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Connexion avec un compte [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "Connexion OpenID" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Se souvenir de moi" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Me connecter automatiquement à l’avenir ; déconseillé sur les ordinateurs " +"publics ou partagés !" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Connexion" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "Vérification d’identité OpenID" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Cette page ne devrait être atteinte que durant un traitement OpenID, pas " +"directement." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s a demandé la vérification de votre identité. Veuillez cliquer sur « " +"Continuer » pour vérifier votre identité et connectez-vous sans créer un " +"nouveau mot de passe." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Continuer" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Annuler" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Non connecté." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Vous êtes déjà connecté avec cet OpenID !" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Quelqu’un d’autre a déjà cet OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Erreur lors de la connexion de l’utilisateur à OpenID." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Erreur lors de la mise à jour du profil utilisateur" diff --git a/plugins/OpenID/locale/gl/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/gl/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..9a424d50b5 --- /dev/null +++ b/plugins/OpenID/locale/gl/LC_MESSAGES/OpenID.po @@ -0,0 +1,582 @@ +# Translation of StatusNet - OpenID to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:29+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Engadir" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Eliminar" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "" + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "" + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Opcións" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Identificarse no sitio" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Rexistro" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Axuda!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Axuda" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Buscar persoas ou palabras" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Procurar" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Configuración do OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Xa se identificou." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Crear unha conta nova" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Crear un novo usuario con este alcume." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Novo alcume" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"Entre 1 e 64 letras minúsculas ou números, sen signos de puntuación, " +"espazos, tiles ou eñes" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Contrasinal" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Conectarse" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "" + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "O nome de usuario ou contrasinal non son correctos." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "" + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Lembrádeme" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Acceder ao sistema" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Continuar" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Cancelar" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Non iniciou sesión." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..3ca10002c8 --- /dev/null +++ b/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po @@ -0,0 +1,625 @@ +# Translation of StatusNet - OpenID to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:29+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Configuration OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) permitte authenticar te a multe sitos con le mesme " +"conto de usator. Tu pote gerer hic tu OpenIDs associate." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Adder OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si tu vole adder un OpenID a tu conto, entra lo in le quadro hic infra e " +"clicca \"Adder\"." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Adder" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Remover OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Le remotion de tu sol OpenID renderea le apertura de session impossibile! Si " +"tu debe remover lo, adde primo un altere OpenID." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Tu pote remover un OpenID de tu conto per cliccar le button \"Remover\"." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Remover" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Sitos OpenID de confidentia" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Le sequente sitos ha le permission de acceder a tu identitate e de " +"authenticar te. Tu pote remover un sito de iste lista pro negar a illo le " +"accesso a tu OpenID." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Non pote adder nove fornitores." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "Qualcosa de bizarre occurreva." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Iste \"trustroot\" de OpenID non existe." + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "\"Trustroots\" removite" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Iste OpenID non existe." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Iste OpenID non appertine a te." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "OpenID removite." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "URL de fornitor invalide. Longitude maximal es 255 characteres." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "Nomine de equipa invalide. Longitude maximal es 255 characteres." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Fornitor de confidentia" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Per predefinition, le usatores ha le permission de authenitcar se con omne " +"fornitor de OpenID. Si tu usa tu proprie servicio OpenID pro le " +"authentication in commun, tu pote hic restringer le accesso a solmente tu " +"proprie usatores." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "URL del fornitor" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Tote le authenticationes de OpenID essera inviate a iste URL; altere " +"fornitores non pote esser usate." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Adjunger un nomine de usator al URL de base" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Le formulario de authentication monstrara le URL de base e demandara un " +"nomine de usator a adder al fin. Usa isto si le URL de un fornitor de OpenID " +"debe esser le pagina de profilo pro usatores individual." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Equipa requirite" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Permitter solmente le apertura de session ab usatores in le equipa " +"specificate (extension de Launchpad)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Optiones" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Activar modo OpenID sol" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Requirer que tote le usatores aperi session via OpenID. Aviso: disactiva le " +"authentication per contrasigno pro tote le usatores!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "Salveguardar configurationes de OpenID" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "Non pote instantiar un objecto de consumitor OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Non es un OpenID valide." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "Fallimento de OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Non poteva rediriger al servitor: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Iste formulario deberea submitter se automaticamente. Si non, clicca super " +"le button Submitter pro vader a tu fornitor de OpenID." + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Error durante le salveguarda del profilo." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Error durante le salveguarda del usator." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" +"Un URL non autorisate ha essite usate pro le authentication via OpenID." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "Apertura de session via OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "Requesta autorisation de tu fornitor de authentication..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Si tu non es redirigite a tu fornitor de authentication post pauc secundas, " +"tenta pulsar le button hic infra." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Authenticar te a iste sito" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Aperir session" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Adjuta me!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Adjuta" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Cercar personas o texto" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Cercar" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Aperir session o crear conto via OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Adder o remover OpenIDs" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Configuration de OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Usar <a href=\"http://openid.net/\">OpenID</a> pro aperir session al sito." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuar" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Apertura de session via OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "Fornitor de OpenID" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Entra tu nomine de usator." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Tu essera inviate al sito del fornitor pro authentication." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "Tu URL de OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Tu non es autorisate a usar le identitate %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Solmente un fornitor de OpenID. Nihil a vider hic, per favor continua..." + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Tu non pote crear un conto si tu non accepta le licentia." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Un error incognite ha occurrite." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Isto es le prime vice que tu ha aperite un session in %s; dunque, nos debe " +"connecter tu OpenID a un conto local. Tu pote crear un nove conto, o " +"connecter con tu conto existente, si tu ha un." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Configuration de conto OpenID" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Crear nove conto" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Crear un nove usator con iste pseudonymo." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Nove pseudonymo" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Crear" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Connecter conto existente" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " +"pro connecter lo a tu OpenID." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Pseudonymo existente" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Contrasigno" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Connecter" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "Authentication OpenID cancellate." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "Le authentication OpenID ha fallite: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"Authentication OpenID abortate: tu non ha le permission de aperir session in " +"iste sito." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Creation de conto non permittite." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Le codice de invitation es invalide." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Pseudonymo non permittite." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "Le OpenID immagazinate non esseva trovate." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "Tentativa de crear un nove conto pro un OpenID que ha jam un usator." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Nomine de usator o contrasigno invalide." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "Error durante le connexion del usator a OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Pro motivos de securitate, per favor re-aperi session con tu [OpenID](%%doc." +"openid%%) ante de cambiar tu configurationes." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Aperir session con un conto [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "Apertura de session via OpenID" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Memorar me" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Aperir session automaticamente in le futuro; non pro computatores usate in " +"commun!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Aperir session" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "Verification de identitate via OpenID" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Iste pagina debe esser attingite solmente durante le tractamento de un " +"OpenID, non directemente." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s ha demandate de verificar tu identitate. Clicca super Continuar pro " +"verificar tu identitate e aperir session sin crear un nove contrasigno." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Continuar" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Cancellar" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Tu non ha aperite un session." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Tu jam ha iste OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Un altere persona jam ha iste OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Error durante le connexion del usator." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Error durante le actualisation del profilo" diff --git a/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..bbdee40b9f --- /dev/null +++ b/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po @@ -0,0 +1,620 @@ +# Translation of StatusNet - OpenID to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:30+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Нагодувања за OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) Ви дава можност да се најавувате на многубројни " +"мреж. места со една иста сметка. Од ова место можете да раководите со Вашите " +"OpenID-ја." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Додај OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Доколку не сакате да приложите OpenID кон Вашата сметка, тогаш внесете ја во " +"полето подолу и кликнете на „Додај“." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL на OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Додај" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Отстрани OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Ако го отстраните Вашиот единствен OpenID, тогаш нема да можете да се " +"најавите! Ако треба да го отстраните, тогаш најпрвин додадете друг OpenID." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "Отстранувањето на OpenID од сметката се врши преку копчето „Отстрани“." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Отстрани" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Мреж. места од доверба на OpenID" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Следниве мреж. места имаат дозволен пристап до Вашиот идентитет и дозвола за " +"да Ве најават. Ако сакате некое мрежно место да нема пристап до Вашиот " +"OpenID, тогаш отстранете го од списоков." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Не можам да додадам нови услужители." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "Се случи нешто чудно." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Нема таков довербен извор (trustroot) за OpenID" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "Довербените извори (trustroots) се отстранети" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Нема таков OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Тој OpenID не Ви припаѓа Вам." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "OpenID е отстранет." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Неважечка URL-адреса за услужителот. Дозволени се највеќе 255 знаци." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "Неважечко екипно име. Дозволени се највеќе 255 знаци." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Услужник од доверба" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Корисниците по основно можат да се потврдат со било кој OpenID-услужник. " +"Доколку користите сопствена OpenID-сужба за заедничка најава, тука можете да " +"им доделите право на пристап само на Вашите корисници." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "URL-адреса на услужникот" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Сите OpenID-најави ќе бидат испратени на следнава URL-адреса. Нема да можат " +"да се користат други услужници." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Приложи корисничко име кон основната URL-адреса" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Образецот за најава ќе ја прикаже основната URL-адреса и ќе Ви побара на " +"крајот да додадете корисничко име. Користете го ова кога URL-адресата на " +"OpenID-услужникот треба да биде профилната страница за поединечни корисници." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Потребна екипа" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Дозволувај само најави на корисници од дадената екипа (додаток „Launchpad“)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Нагодувања" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Вклучи режим „само OpenID“" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Барај од сите корисници да се најавуваат преку OpenID. ПРЕДУПРЕДУВАЊЕ: ова " +"ја оневозможува потврдата на лозинка за сите корисници!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "Зачувај нагодувања за OpenID" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "Не можам да го повикам потрошувачкиот објект за OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Ова не е важечки OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "OpenID не успеа: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Не можев да пренасочам кон опслужувачот: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Овој образец би требало да се поднесе самиот. Ако тоа не се случи, кликнете " +"на копчето „Поднеси“ за да дојдете до Вашиот OpenID-услужник." + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Грешка при зачувувањето на профилот." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Грешка при зачувувањето на корисникот." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "Употребена е неовластена URL-адреса за најавата со OpenID." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "Поднесување на најава со OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "Барам овластување од Вашиот услужител за најава..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Ако не бидете префрлени на Вашиот услужител за најава за неколку секунди, " +"тогаш пристиснете го копчето подолу." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Најава на мреж. место" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Најава" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Напомош!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Помош" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Пребарување на луѓе или текст" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Пребарај" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Најава или регистрација со OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Додај или отстрани OpenID-ја" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Поставки за OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "Користете <a href=\"http://openid.net/\">OpenID</a> за најава." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продолжи" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Најава со OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "Услужител за OpenID" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Внесете го Вашето корисничко име." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Ќе бидете префрлени на мреж. место на услужникот за потврда." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "URL-адреса на Вашиот OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Не сте овластени да го користите идентитетот %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Ова е просто услужник за OpenID. Нема ништо интересно, продолжете понатаму..." + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Веќе сте најавени." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Се појави непозната грешка." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Ова е прв пат како се најавувате на %s, па затоа мораме да го поврземе " +"Вашиот OpenID со локална сметка. Можете да создадете нова сметка, или пак да " +"се поврзете со Вашата постоечка сметка (ако ја имате)." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Поставување на OpenID-сметка" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Создај нова сметка" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Создај нов корисник со овој прекар." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Нов прекар" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Создај" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Поврзи постоечка сметка" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"ко веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " +"поврзете со Вашиот OpenID." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Постоечки прекар" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Лозинка" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Поврзи се" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "Потврдувањето на OpenID е откажано." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "Потврдувањето на OpenID не успеа: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"Потврдата за OpenID е откажана: не Ви е дозволено да се најавите на ова " +"мреж. место." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Регистрацијата не е дозволена." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Ова не е важечки код за покана." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Прекарот не е дозволен." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Прекарот е зафатен. Одберете друг." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "Складираниот OpenID не е пронајден." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "Создавање на сметка за OpenID што веќе има корисник." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Неважечко корисничко име или лозинка." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "Грешка при поврзувањето на корисникот со OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Пред да ги измените Вашите нагодувања ќе треба повторно да се најавите со " +"Вашиот [OpenID](%%doc.openid%%) од безбедносни причини." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Најава со сметка на [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "OpenID-Најава" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Запомни ме" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Отсега врши автоматска најава. Не треба да се користи за јавни сметачи!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Најава" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "OpenID - потврда на идентитет" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"До оваа страница треба да се доаѓа само во текот на постапката на OpenID, а " +"не директно." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s побара да го потврдите Вашиот идентитет. Кликнете на „Продолжи“ за да " +"потврдите и да се најавите без да треба да ставате нова лозинка." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Продолжи" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Откажи" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Не сте најавени." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Веќе го имате овој OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Некој друг веќе го зафатил ова OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Грешка при поврзувањето на корисникот." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Грешка при подновувањето на профилот" diff --git a/plugins/OpenID/locale/nb/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/nb/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..038e5f42a7 --- /dev/null +++ b/plugins/OpenID/locale/nb/LC_MESSAGES/OpenID.po @@ -0,0 +1,580 @@ +# Translation of StatusNet - OpenID to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:30+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Legg til OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "OpenID-adresse" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Legg til" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Fjern OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Fjern" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Ingen slik OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "OpenID fjernet." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Hjelp meg." + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Hjelp" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Søk etter personer eller tekst" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Søk" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Skriv inn brukernavnet ditt." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Allerede innlogget." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Opprett ny konto" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Opprett en ny bruker med dette kallenavnet." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Nytt kallenavn" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 små bokstaver eller tall, ingen punktum eller mellomrom" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Opprett" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Passord" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Koble til" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "" + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "" + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "" + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Husk meg" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Fortsett" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Avbryt" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po index 5cda9b129a..c83d6a5def 100644 --- a/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po @@ -1,395 +1,627 @@ -# Translation of StatusNet plugin OpenID to Dutch +# Translation of StatusNet - OpenID to Dutch (Nederlands) +# Expored from translatewiki.net # -# Author@translatewiki.net: Siebrand +# Author: McDutchie +# Author: Siebrand # -- # This file is distributed under the same license as the StatusNet package. # msgid "" msgstr "" -"Project-Id-Version: StatusNet\n" +"Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" -"PO-Revision-Date: 2010-04-30 02:16+0100\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:30+0000\n" "Last-Translator: Siebrand Mazeland <s.mazeland@xs4all.nl>\n" -"Language-Team: Dutch\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" -#: openidsettings.php:59 +#: openidsettings.php:58 openidadminpanel.php:65 msgid "OpenID settings" msgstr "OpenID-instellingen" -#: openidsettings.php:70 +#: openidsettings.php:69 #, php-format -msgid "[OpenID](%%doc.openid%%) lets you log into many sites with the same user account. Manage your associated OpenIDs from here." -msgstr "Met [OpenID](%%doc.openid%%) kunt u aanmelden bij veel websites met dezelfde gebruiker. U kunt hier uw gekoppelde OpenID's beheren." +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"Met [OpenID](%%doc.openid%%) kunt u aanmelden bij veel websites met dezelfde " +"gebruiker. U kunt hier uw gekoppelde OpenID's beheren." -#: openidsettings.php:99 +#: openidsettings.php:100 msgid "Add OpenID" msgstr "OpenID toevoegen" -#: openidsettings.php:102 -msgid "If you want to add an OpenID to your account, enter it in the box below and click \"Add\"." -msgstr "Als u een OpenID aan uw gebruiker wilt toevoegen, voer deze dan hieronder in en klik op \"Toevoegen\"." +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Als u een OpenID aan uw gebruiker wilt toevoegen, voer deze dan hieronder in " +"en klik op \"Toevoegen\"." -#: openidsettings.php:107 -#: openidlogin.php:119 +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 msgid "OpenID URL" msgstr "OpenID-URL" -#: openidsettings.php:117 +#: openidsettings.php:118 msgid "Add" msgstr "Toevoegen" -#: openidsettings.php:129 +#: openidsettings.php:130 msgid "Remove OpenID" msgstr "OpenID verwijderen" -#: openidsettings.php:134 -msgid "Removing your only OpenID would make it impossible to log in! If you need to remove it, add another OpenID first." -msgstr "Door uw enige OpenID te verwijderen zou het niet meer mogelijk zijn om aan te melden. Als u het wilt verwijderen, voeg dan eerst een andere OpenID toe." +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Door uw enige OpenID te verwijderen zou het niet meer mogelijk zijn om aan " +"te melden. Als u het wilt verwijderen, voeg dan eerst een andere OpenID toe." -#: openidsettings.php:149 -msgid "You can remove an OpenID from your account by clicking the button marked \"Remove\"." -msgstr "U kunt een OpenID van uw gebruiker verwijderen door te klikken op de knop \"Verwijderen\"." +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"U kunt een OpenID van uw gebruiker verwijderen door te klikken op de knop " +"\"Verwijderen\"." -#: openidsettings.php:172 -#: openidsettings.php:213 +#: openidsettings.php:173 openidsettings.php:214 msgid "Remove" msgstr "Verwijderen" -#: openidsettings.php:186 +#: openidsettings.php:187 msgid "OpenID Trusted Sites" msgstr "Vertrouwde OpenID-sites" -#: openidsettings.php:189 -msgid "The following sites are allowed to access your identity and log you in. You can remove a site from this list to deny it access to your OpenID." -msgstr "De volgende sites hebben toegang tot uw indentiteit en kunnen u aanmelden. U kunt een site verwijderen uit deze lijst zodat deze niet langer toegang heeft tot uw OpenID." +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"De volgende sites hebben toegang tot uw indentiteit en kunnen u aanmelden. U " +"kunt een site verwijderen uit deze lijst zodat deze niet langer toegang " +"heeft tot uw OpenID." -#: openidsettings.php:231 -#: finishopenidlogin.php:38 -#: openidlogin.php:39 +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 msgid "There was a problem with your session token. Try again, please." msgstr "Er was een probleem met uw sessietoken. Probeer het opnieuw." -#: openidsettings.php:247 -#: finishopenidlogin.php:51 +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Het niet is mogelijk nieuwe providers toe te voegen." + +#: openidsettings.php:252 msgid "Something weird happened." msgstr "Er is iets vreemds gebeurd." -#: openidsettings.php:271 +#: openidsettings.php:276 msgid "No such OpenID trustroot." msgstr "Die OpenID trustroot bestaat niet." -#: openidsettings.php:275 +#: openidsettings.php:280 msgid "Trustroots removed" msgstr "De trustroots zijn verwijderd" -#: openidsettings.php:298 +#: openidsettings.php:303 msgid "No such OpenID." msgstr "De OpenID bestaat niet." -#: openidsettings.php:303 +#: openidsettings.php:308 msgid "That OpenID does not belong to you." msgstr "Die OpenID is niet van u." -#: openidsettings.php:307 +#: openidsettings.php:312 msgid "OpenID removed." msgstr "OpenID verwijderd." -#: openid.php:137 +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "De URL voor de provider is ongeldig. De maximale lengte is 255 tekens." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "De teamnaam is ongeldig. De maximale lengte is 255 tekens." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Vertrouwde provider" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Gebruikers is het standaard toegestaan aan te melden via alle OpenID-" +"providers. Als u uw eigen OpenID-dienst gebruikt voor gedeeld aanmelden, dan " +"kunt u hier de toegang beperken tot alleen uw eigen gebruikers." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "URL van provider" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Alle aanmeldpogingen voor OpenID worden naar deze URL gezonden. Andere " +"providers kunnen niet gebruikt worden." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Gebruikersnaam aan basis-URL toevoegen" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Het aanmeldformulier geeft de basis-URL weer en vraag om achteraan een " +"gebruikersnaam toe te voegen. Gebruik deze instelling als de URL van een " +"OpenID-provider de profielpagina van individuele gebruikers moet zijn." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Vereist team" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Alleen leden van een bepaald team toestaan aan te melden (uitbreiding van " +"Launchpad)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Opties" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Alleen OpenID inschakelen" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Alle gebruikers verplichten aan te melden via OpenID. Waarschuwing: als deze " +"instelling wordt gebruikt, kan geen enkele gebruiker met een wachtwoord " +"aanmelden!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "OpenID-instellingen opslaan" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 msgid "Cannot instantiate OpenID consumer object." msgstr "Het was niet mogelijk een OpenID-object aan te maken." -#: openid.php:147 +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 msgid "Not a valid OpenID." msgstr "Geen geldige OpenID." -#: openid.php:149 +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 #, php-format msgid "OpenID failure: %s" msgstr "OpenID-fout: %s" -#: openid.php:176 +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 #, php-format msgid "Could not redirect to server: %s" msgstr "Het was niet mogelijk door te verwijzen naar de server: %s" -#: openid.php:194 -#, php-format -msgid "Could not create OpenID form: %s" -msgstr "Het was niet mogelijk het OpenID-formulier aan te maken: %s" +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Dit formulier hoort zichzelf automatisch op te slaan. Als dat niet gebeurt, " +"klik dan op de knop \"Aanmelden\" om naar uw OpenID-provider te gaan." -#: openid.php:210 -msgid "This form should automatically submit itself. If not, click the submit button to go to your OpenID provider." -msgstr "Dit formulier hoort zichzelf automatisch op te slaan. Als dat niet gebeurt, klik dan op de knop \"Aanmelden\" om naar uw OpenID-provider te gaan." - -#: openid.php:242 +#. TRANS: OpenID plugin server error. +#: openid.php:280 msgid "Error saving the profile." msgstr "Fout bij het opslaan van het profiel." -#: openid.php:253 +#. TRANS: OpenID plugin server error. +#: openid.php:292 msgid "Error saving the user." msgstr "Fout bij het opslaan van de gebruiker." -#: openid.php:282 +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 msgid "Unauthorized URL used for OpenID login." msgstr "Ongeautoriseerde URL gebruikt voor aanmelden via OpenID" -#: openid.php:302 -#, fuzzy +#. TRANS: Title +#: openid.php:370 msgid "OpenID Login Submission" msgstr "Aanmelden via OpenID" -#: openid.php:312 +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 msgid "Requesting authorization from your login provider..." msgstr "Bezig met het vragen van autorisatie van uw aanmeldprovider..." -#: openid.php:315 -msgid "If you are not redirected to your login provider in a few seconds, try pushing the button below." -msgstr "Als u binnen een aantal seconden niet wordt doorverwezen naar uw aanmeldprovider, klik dan op de onderstaande knop." +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Als u binnen een aantal seconden niet wordt doorverwezen naar uw " +"aanmeldprovider, klik dan op de onderstaande knop." #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:204 +#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Aanmelden bij de site" -#: OpenIDPlugin.php:207 -#, fuzzy +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Aanmelden" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:212 +#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me" -#: OpenIDPlugin.php:215 +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Hulp" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:221 +#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Zoeken naar mensen of tekst" -#: OpenIDPlugin.php:224 +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Zoeken" -#: OpenIDPlugin.php:283 -#: OpenIDPlugin.php:319 +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" msgid "OpenID" msgstr "OpenID" -#: OpenIDPlugin.php:284 +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Aanmelden of registreren met OpenID" -#: OpenIDPlugin.php:320 +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "OpenID's toevoegen of verwijderen" -#: OpenIDPlugin.php:595 -msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." -msgstr "Gebruik <a href=\"http://openid.net/\">OpenID</a> om aan te melden bij de site." +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "OpenID-instellingen" -#: openidserver.php:106 +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Gebruik <a href=\"http://openid.net/\">OpenID</a> om aan te melden bij de " +"site." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continue" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Aanmelden via OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "OpenID-provider" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Voer uw gebruikersnaam in" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "U wordt naar de site van de provider omgeleid om aan te melden." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "Uw OpenID-URL" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 #, php-format msgid "You are not authorized to use the identity %s." msgstr "U mag de identiteit %s niet gebruiken." -#: openidserver.php:126 +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 msgid "Just an OpenID provider. Nothing to see here, move along..." msgstr "Gewoon een OpenID-provider. Niets te zien hier..." -#: finishopenidlogin.php:34 -#: openidlogin.php:30 +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "U bent al aangemeld." -#: finishopenidlogin.php:43 +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "U kunt niet registreren als u niet akkoord gaat met de licentie." -#: finishopenidlogin.php:65 -#, php-format -msgid "This is the first time you've logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one." -msgstr "Dit is de eerste keer dat u aameldt bij %s en uw OpenID moet gekoppeld worden aan uw lokale gebruiker. U kunt een nieuwe gebruiker aanmaken of koppelen met uw bestaande gebruiker als u die al hebt." +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Er is een onbekende fout opgetreden." -#: finishopenidlogin.php:71 +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Dit is de eerste keer dat u aameldt bij %s en uw OpenID moet gekoppeld " +"worden aan uw lokale gebruiker. U kunt een nieuwe gebruiker aanmaken of " +"koppelen met uw bestaande gebruiker als u die al hebt." + +#. TRANS: Title +#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Instellingen OpenID" -#: finishopenidlogin.php:101 +#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Nieuwe gebruiker aanmaken" -#: finishopenidlogin.php:103 +#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Nieuwe gebruiker met deze naam aanmaken." -#: finishopenidlogin.php:106 +#: finishopenidlogin.php:122 msgid "New nickname" msgstr "Nieuwe gebruiker" -#: finishopenidlogin.php:108 +#: finishopenidlogin.php:124 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 kleine letters of getallen; geen leestekens of spaties" -#: finishopenidlogin.php:130 +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" msgid "Create" msgstr "Aanmaken" -#: finishopenidlogin.php:135 +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 msgid "Connect existing account" msgstr "Koppelen met bestaande gebruiker" -#: finishopenidlogin.php:137 -msgid "If you already have an account, login with your username and password to connect it to your OpenID." -msgstr "Als u al een gebruiker hebt, meld u dan aan met uw gebruikersnaam en wachtwoord om de gebruiker te koppelen met uw OpenID." +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Als u al een gebruiker hebt, meld u dan aan met uw gebruikersnaam en " +"wachtwoord om de gebruiker te koppelen met uw OpenID." -#: finishopenidlogin.php:140 +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 msgid "Existing nickname" msgstr "Bestaande gebruiker" -#: finishopenidlogin.php:143 +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 msgid "Password" msgstr "Wachtwoord" -#: finishopenidlogin.php:146 +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" msgid "Connect" msgstr "Koppelen" -#: finishopenidlogin.php:158 -#: finishaddopenid.php:88 +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "De authenticatie via OpenID is afgebroken." -#: finishopenidlogin.php:162 -#: finishaddopenid.php:92 +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "De authenticatie via OpenID is mislukt: %s" -#: finishopenidlogin.php:227 -#: finishopenidlogin.php:236 +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"Het aanmelden via OpenID is afgebroken. U mag niet aanmelden bij deze site." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 msgid "Registration not allowed." msgstr "Registreren is niet mogelijk." -#: finishopenidlogin.php:243 +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 msgid "Not a valid invitation code." msgstr "De uitnodigingscode is niet geldig." -#: finishopenidlogin.php:253 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "De gebruikersnaam mag alleen uit kleine letters en cijfers bestaan, en geen spaties bevatten." - -#: finishopenidlogin.php:258 +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 msgid "Nickname not allowed." msgstr "Deze gebruikersnaam is niet toegestaan." -#: finishopenidlogin.php:263 +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 msgid "Nickname already in use. Try another one." msgstr "Deze gebruikersnaam wordt al gebruikt. Kies een andere." -#: finishopenidlogin.php:270 -#: finishopenidlogin.php:350 +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 msgid "Stored OpenID not found." msgstr "Het opgeslagen OpenID is niet aangetroffen." -#: finishopenidlogin.php:279 +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 msgid "Creating new account for OpenID that already has a user." -msgstr "Bezig met het aanmaken van een gebruiker voor OpenID die al een gebruiker heeft." +msgstr "Poging tot aanmaken van een OpenID-account dat al een gebruiker heeft." -#: finishopenidlogin.php:339 +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 msgid "Invalid username or password." msgstr "Ongeldige gebruikersnaam of wachtwoord." -#: finishopenidlogin.php:357 +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 msgid "Error connecting user to OpenID." msgstr "Fout bij het koppelen met OpenID." -#: openidlogin.php:68 +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 #, php-format -msgid "For security reasons, please re-login with your [OpenID](%%doc.openid%%) before changing your settings." -msgstr "Om veiligheidsreden moet u opnieuw aanmelden met uw [OpenID](%%doc.openid%%) voordat u uw instellingen kunt wijzigen." +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Om veiligheidsreden moet u opnieuw aanmelden met uw [OpenID](%%doc.openid%%) " +"voordat u uw instellingen kunt wijzigen." -#: openidlogin.php:72 +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Aanmelden met een [OpenID](%%doc.openid%%)-gebruiker." -#: openidlogin.php:97 -#: finishaddopenid.php:170 +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 msgid "OpenID Login" msgstr "Aanmelden via OpenID" -#: openidlogin.php:114 -msgid "OpenID login" -msgstr "Aanmelden via OpenID" - -#: openidlogin.php:121 -msgid "Your OpenID URL" -msgstr "Uw OpenID-URL" - -#: openidlogin.php:124 +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 msgid "Remember me" msgstr "Aanmeldgegevens onthouden" -#: openidlogin.php:125 +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 msgid "Automatically login in the future; not for shared computers!" -msgstr "In het vervolg automatisch aanmelden. Niet gebruiken op gedeelde computers!" +msgstr "" +"In het vervolg automatisch aanmelden. Niet gebruiken op gedeelde computers!" -#: openidlogin.php:129 +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" msgid "Login" msgstr "Aanmelden" -#: openidtrust.php:51 +#: openidtrust.php:52 msgid "OpenID Identity Verification" msgstr "OpenID-identiteitscontrole" -#: openidtrust.php:69 -msgid "This page should only be reached during OpenID processing, not directly." -msgstr "Deze pagina hoort alleen bezocht te worden tijdens het verwerken van een OpenID, en niet direct." +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Deze pagina hoort alleen bezocht te worden tijdens het verwerken van een " +"OpenID, en niet direct." -#: openidtrust.php:117 +#: openidtrust.php:118 #, php-format -msgid "%s has asked to verify your identity. Click Continue to verify your identity and login without creating a new password." -msgstr "%s heeft gevraagd uw identiteit te bevestigen. Klik op \"Doorgaan\" om uw indentiteit te controleren en aan te melden zonder een wachtwoord te hoeven invoeren." +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s heeft gevraagd uw identiteit te bevestigen. Klik op \"Doorgaan\" om uw " +"indentiteit te controleren en aan te melden zonder een wachtwoord te hoeven " +"invoeren." -#: openidtrust.php:135 +#: openidtrust.php:136 msgid "Continue" msgstr "Doorgaan" -#: openidtrust.php:136 +#: openidtrust.php:137 msgid "Cancel" msgstr "Annuleren" -#: finishaddopenid.php:67 +#. TRANS: Client error message +#: finishaddopenid.php:68 msgid "Not logged in." msgstr "Niet aangemeld." -#: finishaddopenid.php:112 +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 msgid "You already have this OpenID!" msgstr "U hebt deze OpenID al!" -#: finishaddopenid.php:114 +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 msgid "Someone else already has this OpenID." msgstr "Iemand anders gebruikt deze OpenID al." -#: finishaddopenid.php:126 +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 msgid "Error connecting user." msgstr "Fout bij het verbinden met de gebruiker." -#: finishaddopenid.php:131 +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 msgid "Error updating profile" msgstr "Fout bij het bijwerken van het profiel." diff --git a/plugins/OpenID/locale/pt_BR/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/pt_BR/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..f0f2fc2ae3 --- /dev/null +++ b/plugins/OpenID/locale/pt_BR/LC_MESSAGES/OpenID.po @@ -0,0 +1,581 @@ +# Translation of StatusNet - OpenID to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Luckas Blade +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:30+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Adicionar" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Remover" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "" + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "" + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Opções" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Não foi possível redirecionar para o servidor: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Erro ao salvar o perfil." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Erro ao salvar o usuário." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Entrar" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Ajuda" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Pesquisar" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Adicionar ou remover OpenIDs" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Introduza seu nome de usuário." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Você não pode se registrar se não aceitar a licença." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Ocorreu um erro desconhecido." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Criar nova conta" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "" + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Novo nome" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Criar" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Senha" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "" + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "" + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "O código de convite é inválido." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Nome não permitido." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Este nome já está em uso. Tente outro." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Nome de usuário e/ou senha inválido(s)." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "" + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Lembrar-me" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Entrar" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Continuar" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Cancelar" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "" diff --git a/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..a9df86fcea --- /dev/null +++ b/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po @@ -0,0 +1,639 @@ +# Translation of StatusNet - OpenID to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:30+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Mga katakdaan ng OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"Nagpapahintulot ang [OpenID](%%doc.openid%%) na makalagda ka sa maraming mga " +"sityong may katulad na akawnt ng tagagamit. Pamahalaan ang iyong kaugnay na " +"mga OpenID mula rito." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Idagdag ang OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Kung nais mong magdagdag ng isang OpenID sa akawnt mo, ipasok ito sa kahong " +"nasa ibaba at pindutin ang \"Idagdag\"." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL ng OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Idagdag" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Tanggalin ang OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Ang pagtatanggal ng iyong OpenID lamang ay makasasanhi ng imposibleng " +"paglagda! Kung kailangan mong tanggalin ito, magdagdag ng ibang OpenID muna." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Matatanggap mo ang isang OpenID mula sa akawnt mo sa pamamagitan ng " +"pagpindot sa pindutang may tatak na \"Tanggalin\"." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Tanggalin" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Pinagkakatiwalaang mga Sityo ng OpenID" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Ang sumusunod na mga sityo ay pinapahintulutang makapunta sa iyong katauhan " +"at makalagda kang papasok. Matatanggal mo ang isang sityo mula sa talaang " +"ito upang tanggihan ang pagpunta nito sa iyong OpenID." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "May suliranin sa iyong token na pangsesyon. Paki subukan uli." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Hindi makapagdaragdag ng bagong mga tagapagbigay." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "May nangyaring kakaiba." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Walng ganyang pinagkakatiwalaang ugat ng OpenID." + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "Tinanggal ang mga pinagkakatiwalaang ugat" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Walang ganyang OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Hindi mo pag-aari ang OpenID na iyan." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "Tinanggal ang OpenID." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" +"Hindi tanggap na URL ng tagapagbigay. Ang pinakamataas na haba ay 255 mga " +"panitik." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" +"Hindi tanggap ng pangalan ng pangkat. Pinakamataas na haba ay 255 mga " +"panitik." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Pinagkakatiwalaang tagapagbigay" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Bilang likas na pagtatakda, ang mga tagagamit ay hindi pinapahintulutang " +"magpatunay sa pamamagitan ng anumang tagapagbigay ng OpenID. Kung ginagamit " +"mo ang sarili mong palingkuran ng OpenID para sa pinagsasaluhang paglagdang " +"papasok, malilimitahan mo ang pagpunta sa iyong mga tagagamit lamang dito." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "URL ng tagapagbigay" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Ang lahat ng mga paglalagda sa OpenID ay ipapadala sa URL na ito; hindi " +"maaaring gamitin ang ibang mga tagapagbigay." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Ikabit ang isang pangalan ng tagagamit sa punong URL" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Ang pormularyo ng paglagda ay magpapakita ng batayang URL at gagawa ng isang " +"pangalan ng tagagamit na idaragdag sa huli. Gamitin kapag ang URL ng " +"tagapagbigay ng OpenID ay ang dapat na maging pahina ng balangkas para sa " +"indibiduwal na mga tagagamit." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Kailangang pangkat" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Payagan lamang ang mga paglagda mula sa mga tagagamit na nasa loob ng " +"ibinigay na pangkat (karugtong ng Launchpad)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Mga pagpipilian" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Paganahin ang gawi na OpenID lamang" + +#: openidadminpanel.php:260 +#, fuzzy +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Igiit sa lahat ng mga tagagamit na lumagda sa pamamagitan ng OpenID. " +"BABALA: hindi pinagagana ang pagpapatunay ng hudyat para sa lahat ng mga " +"tagagamit!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "Sagipin ang mga katakdaan ng OpenID" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "Hindi mapanimulan ang bagay na pangtagapagtangkilik ng OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Hindi isang tanggap na OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "Kabiguan ng OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Hindi mabago upang papuntahin sa tagapaghain: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ang pormularyong ito ay dapat na kusang magpapasa ng kanyang sarili. Kung " +"hindi, pindutin ang pindutang pampasa upang pumunta sa iyong tagapagbigay ng " +"OpenID." + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Kamalian sa pagsagip ng balangkas." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Kamalian sa pagsagip ng tagagamit." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "Hindi pinahintulutang URL na ginamit para sa paglagda ng OpenID." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "Pagpapasa ng Paglagda ng OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" +"Humihiling ng pahintulot mula sa iyong tagapagbigay ng paglagdang papasok..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Kapag hindi ka itinurong papunta sa iyong tagapagbigay ng paglagda sa loob " +"ng ilang mga segundo, subukang pindutin ang pindutang nasa ibaba." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Lumagda sa sityo" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Lumagda" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Saklolohan ako!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Saklolo" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Maghanap ng mga tao o teksto" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Maghanap" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Lumagda o magpatala na may OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Idagdag o alisin ang mga OpenID" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Pagkakaayos ng OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Gamitin ang <a href=\"http://openid.net/\">OpenID</a> upang lumagda sa sityo." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +#, fuzzy +msgctxt "BUTTON" +msgid "Continue" +msgstr "Magpatuloy" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Panglagdang OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "Tagapagbigay ng OpenID" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Ipasok ang iyong pangalan ng tagagamit." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Ipapadala ka sa sityo ng tagapagbigay para sa pagpapatunay." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "Ang iyong URL ng OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Wala kang pahintulot na gamitin ang katauhang %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Isa lamang na tagapagbigay ng OpenID. Walang makikita rito, magpatuloy..." + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Nakalagda na." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Hindi ka makakapagpatala kung hindi ka sasang-ayon sa lisensiya." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Naganap ang isang hindi nalalamang kamalian." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Ito ang iyong unang pagkakataon ng paglagda sa %s kaya't kailangan naming " +"umugnay sa iyong OpenID papunta sa isang katutubong akawnt. Maaari kang " +"lumikha ng isang bagong akawnt, o umugnay sa pamamagitan ng umiiral mong " +"akawnt, kung mayroon ka." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Pagkakaayos ng Akawnt na OpenID" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Likhain ang bagong akawnt" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Lumikha ng isang bagong tagagamit na may ganitong palayaw." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Bagong palayaw" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1 hanggang 64 maliliit na mga titik o mga bilang, walang bantas o mga patlang" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Likhain" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Iugnay ang umiiral na akawnt" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Kung mayroon ka nang akawnt, lumagda sa pamamagitan ng iyong pangalan ng " +"tagagamit at hudyat upang iugnay ito sa iyong OpenID." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Umiiral na palayaw" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Hudyat" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Umugnay" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "Kinansela ang pagpapatunay ng OpenID." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "Nabigo ang pagpapatunay ng OpenID: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"Hindi itinuloy ang pagpapatunay ng OpenID: hindi ka pinahintulutang lumagda " +"sa sityong ito." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Hindi pinayagan ang pagpapatala." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Hindi isang tanggap na kodigo ng paanyaya." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Hindi pinayagan ang palayaw." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Ginagamit na ang palayaw. Sumubok ng iba." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "Hindi natagpuan ang nakalagak na OpenID." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" +"Nililikha ang bagong akawnt para sa OpenID na mayroon nang isang tagagamit." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Hindi tanggap na pangalan ng tagagamit o hudyat." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "May kamalian sa pag-ugnay ng tagagamit sa OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Para sa dahilang pangkaligtasan, mangyaring muling lumagda sa pamamagitan ng " +"iyong [OpenID](%%doc.openid%%) bago baguhin ang iyong mga pagtatakda." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Lumagda sa pamamagitan ng isang akawnt ng [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "Panglagdang OpenID" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Tandaan ako" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Kusang lumagda sa hinaharap; hindi para sa pinagsasaluhang mga kompyuter!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Lumagda" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "Pagpapatunay sa Katauhan ng OpenID" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Ang pahinang ito ay dapat lamang na maabot habang pinoproseso ang OpenID, " +"hindi tuwiran." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"Hiniling ng/ni %s na patunayan ang iyong katauhan. Pindutin ang Magpatuloy " +"upang tiyakin ang iyong katauhan at lumagdang hindi lumilikha ng isang " +"bagong hudyat." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Magpatuloy" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Huwag ituloy" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Hindi nakalagda." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Mayroon ka na ng ganitong OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Mayroon nang ibang tao na may ganitong OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Kamalian sa pag-ugnay ng tagagamit." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Kamalian sa pagsasapanahon ng balangkas" diff --git a/plugins/OpenID/locale/tr/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/tr/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..d5ede7d445 --- /dev/null +++ b/plugins/OpenID/locale/tr/LC_MESSAGES/OpenID.po @@ -0,0 +1,589 @@ +# Translation of StatusNet - OpenID to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:31+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "" + +#: openidsettings.php:118 +msgid "Add" +msgstr "" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "" + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "" + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "" + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "" + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "OpenID Hesap Kurulumu" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Yeni hesap oluştur" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Bu kullanıcı adıyla yeni bir kullanıcı oluştur." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Yeni kullanıcı adı" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Oluştur" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Varolan hesaba bağlan" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Halihazırda bir hesabınız varsa, OpenID'nizle bağlantı kurmak için kullanıcı " +"adı ve parolanızla giriş yapın." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Varolan kullanıcı adı" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Parola" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Bağlan" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "OpenID kimlik doğrulaması iptal edildi." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "OpenID kimlik doğrulaması başarısız oldu: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "" +"OpenID kimlik doğrulaması durduruldu: bu siteye giriş yapmaya izinli " +"değilsiniz." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Kayıt yapılmasına izin verilmiyor." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Geçerli bir davet kodu değil." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Bu kullanıcı adına izin verilmiyor." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Kullanıcı adı halihazırda kullanılıyor. Başka bir tane deneyin." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "Kayıtlı OpenID bulunamadı." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Geçersiz kullanıcı adı veya parola." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "OpenID ile kullanıcı bağlanırken hata oluştu." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"Güvenlik nedeniyle, lütfen ayarlarınızı değiştirmeden önce [OpenID](%%doc." +"openid%%) ile yeniden giriş yapınız." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Bir [OpenID](%%doc.openid%%) hesabı ile giriş yapın." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "OpenID Giriş" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Beni hatırla" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Gelecekte otomatik olarak giriş yap; paylaşılan bilgisayarlar için değildir!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Giriş" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "OpenID Kimlik Doğrulama" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "Bu sayfa sadece OpenID işleme sırasında ulaşılmalıdır, doğrudan değil." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Devam" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "İptal" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Giriş yapılmadı." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "Zaten bu OpenID'ye sahipsiniz!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Başka biri bu OpenID'ye sahip." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Kullanıcı bağlama hatası." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Profil güncelleme hatası" diff --git a/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po new file mode 100644 index 0000000000..8eb976a4de --- /dev/null +++ b/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po @@ -0,0 +1,627 @@ +# Translation of StatusNet - OpenID to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# Author: Тест +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenID\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:31+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:49+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-openid\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: openidsettings.php:58 openidadminpanel.php:65 +msgid "OpenID settings" +msgstr "Налаштування OpenID" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) дозволяє входити до багатьох веб-сторінок " +"використовуючи той самий лоґін і пароль. Тут можна впорядкувати ваші OpenID-" +"акаунти." + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "Додати OpenID" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Якщо ви бажаєте додати OpenID до вашого акаунту, введіть його у полі нижче і " +"натисніть «Додати»." + +#. TRANS: OpenID plugin logon form field label. +#: openidsettings.php:108 OpenIDPlugin.php:681 openidlogin.php:161 +msgid "OpenID URL" +msgstr "URL-адреса OpenID" + +#: openidsettings.php:118 +msgid "Add" +msgstr "Додати" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "Видалити OpenID" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Якщо для входу ви використовуєте лише OpenID, то його видалення унеможливить " +"вхід у майбутньому! Якщо вам потрібно видалити ваш єдиний OpenID, то спершу " +"додайте інший." + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "Ви можете видалити ваш OpenID просто натиснувши кнопку «Видалити»." + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "Видалити" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "Довірені сайти OpenID" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"У списку наведено OpenID-адреси, які ідентифіковані як ваші і їм дозволено " +"вхід до сайту. Ви можете вилучити якийсь з них, тим самим скасувавши дозвіл " +"на вхід." + +#. TRANS: Message given when there is a problem with the user's session token. +#: openidsettings.php:232 finishopenidlogin.php:42 openidlogin.php:51 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Виникли певні проблеми з токеном поточної сесії. Спробуйте знов, будь ласка." + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "Не вдається додати нового OpenID-провайдера." + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "Сталося щось незрозуміле." + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "Серед довірених такого OpenID немає." + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "Довірені OpenID видалено" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "Немає такого OpenID." + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "Даний OpenID належить не вам." + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "OpenID видалено." + +#: openidadminpanel.php:54 +msgid "OpenID" +msgstr "OpenID" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Невірний URL OpenID-провайдера. Максимальна довжина — 255 символів." + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "Невірна назва спільноти. Максимальна довжина — 255 символів." + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "Довірений OpenID-провайдер" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"За замовчуванням, відвідувачам дозволено користуватись послугами будь-якого " +"OpenID-провайдера. Якщо ви користуєтесь своїм власним OpenID для загального " +"входу на веб-сторінки, то ви вільні обмежити доступ лише колом ваших власних " +"користувачів." + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "URL провайдера" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Всі сесії входу через OpenID будуть спрямовуватись на цю URL-адресу; інших " +"OpenID-провайдерів використовувати не можна." + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "Додати ім’я користувача до базового URL" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"У формі входу на сайт буде представлено базовий URL і запит щодо імені " +"користувача у кінці. В такому випадку, URL OpenID-провайдера — це сторінка " +"профілю окремих користувачів." + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "Необхідна група" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Дозволяється вхід лише користувачам у вказаній групі (розширення для " +"Launchpad)." + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "Параметри" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "Увімкнути режим входу лише за OpenID" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Вимагає, щоб всі користувачі входили лише за допомогою OpenID. Увага: ця " +"опція вимикає автентифікацію за паролем для всіх користувачів!" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" +msgstr "Зберегти налаштування OpenID" + +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "Не можу створити примірник об’єкта споживача OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "Це недійсний OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 +#, php-format +msgid "OpenID failure: %s" +msgstr "Неуспіх OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Не можу переадресувати на сервер: %s" + +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ця форма має автоматичне себе представити. Якщо ні, натисніть відповідну " +"кнопку, щоб перейти до сторінки вашого OpenID-провайдера." + +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "Помилка при збереженні профілю." + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "Помилка при збереженні користувача." + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "Для входу за OpenID використовується неавторизований URL." + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "Представлення входу за OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "Запитуємо дозвіл у вашого OpenID-провайдера..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Якщо за кілька секунд вас не буде перенаправлено на сторінку входу вашого " +"OpenID-провайдера, просто натисніть кнопку внизу." + +#. TRANS: Tooltip for main menu option "Login" +#: OpenIDPlugin.php:218 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "Вхід на сайт" + +#. TRANS: Main menu option when not logged in to log in +#: OpenIDPlugin.php:221 +msgctxt "MENU" +msgid "Login" +msgstr "Увійти" + +#. TRANS: Tooltip for main menu option "Help" +#: OpenIDPlugin.php:226 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "Допоможіть!" + +#. TRANS: Main menu option for help on the StatusNet site +#: OpenIDPlugin.php:229 +msgctxt "MENU" +msgid "Help" +msgstr "Довідка" + +#. TRANS: Tooltip for main menu option "Search" +#: OpenIDPlugin.php:235 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "Пошук людей або текстів" + +#. TRANS: Main menu option when logged in or when the StatusNet instance is not private +#: OpenIDPlugin.php:238 +msgctxt "MENU" +msgid "Search" +msgstr "Пошук" + +#. TRANS: OpenID plugin menu item on site logon page. +#. TRANS: OpenID plugin menu item on user settings page. +#. TRANS: OpenID configuration menu item. +#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 +msgctxt "MENU" +msgid "OpenID" +msgstr "OpenID" + +#. TRANS: OpenID plugin tooltip for logon menu item. +#: OpenIDPlugin.php:297 +msgid "Login or register with OpenID" +msgstr "Увійти або зареєструватися за допомогою OpenID" + +#. TRANS: OpenID plugin tooltip for user settings menu item. +#: OpenIDPlugin.php:333 +msgid "Add or remove OpenIDs" +msgstr "Додати або видалити OpenID" + +#. TRANS: Tooltip for OpenID configuration menu item. +#: OpenIDPlugin.php:607 +msgid "OpenID configuration" +msgstr "Конфігурація OpenID" + +#. TRANS: OpenID plugin description. +#: OpenIDPlugin.php:631 +msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site." +msgstr "" +"Використання <a href=\"http://openid.net/\">OpenID</a> для входу на сайт." + +#. TRANS: button label for OAuth authorization page when needing OpenID authentication first. +#: OpenIDPlugin.php:641 +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продовжити" + +#. TRANS: OpenID plugin logon form legend. +#: OpenIDPlugin.php:658 openidlogin.php:140 +msgid "OpenID login" +msgstr "Вхід з OpenID" + +#. TRANS: Field label. +#: OpenIDPlugin.php:666 openidlogin.php:148 +msgid "OpenID provider" +msgstr "OpenID-провайдер" + +#. TRANS: Form guide. +#: OpenIDPlugin.php:675 openidlogin.php:156 +msgid "Enter your username." +msgstr "Введіть ім’я користувача." + +#. TRANS: Form guide. +#: OpenIDPlugin.php:677 openidlogin.php:157 +msgid "You will be sent to the provider's site for authentication." +msgstr "Вас буде перенаправлено на веб-сторінку провайдера для автентифікації." + +#. TRANS: OpenID plugin logon form field instructions. +#: OpenIDPlugin.php:684 openidlogin.php:164 +msgid "Your OpenID URL" +msgstr "URL вашого OpenID" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" +"Ви не авторизовані, для того щоб мати можливість пройти перевірку " +"ідентичності на %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Просто OpenID-провайдер. Нічого належного чомусь не видно..." + +#. TRANS: Client error message trying to log on with OpenID while already logged on. +#: finishopenidlogin.php:37 openidlogin.php:33 +msgid "Already logged in." +msgstr "Тепер ви увійшли." + +#. TRANS: Message given if user does not agree with the site's license. +#: finishopenidlogin.php:48 +msgid "You can't register if you don't agree to the license." +msgstr "Ви не зможете зареєструватися, якщо не погодитесь з умовами ліцензії." + +#. TRANS: Messag given on an unknown error. +#: finishopenidlogin.php:57 +msgid "An unknown error has occured." +msgstr "Виникла якась незрозуміла помилка." + +#. TRANS: Instructions given after a first successful logon using OpenID. +#. TRANS: %s is the site name. +#: finishopenidlogin.php:73 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." +msgstr "" +"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш OpenID до " +"акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " +"використати такий, що вже існує." + +#. TRANS: Title +#: finishopenidlogin.php:80 +msgid "OpenID Account Setup" +msgstr "Створення акаунту OpenID" + +#: finishopenidlogin.php:117 +msgid "Create new account" +msgstr "Створити новий акаунт" + +#: finishopenidlogin.php:119 +msgid "Create a new user with this nickname." +msgstr "Створити нового користувача з цим нікнеймом." + +#: finishopenidlogin.php:122 +msgid "New nickname" +msgstr "Новий нікнейм" + +#: finishopenidlogin.php:124 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + +#. TRANS: Button label in form in which to create a new user on the site for an OpenID. +#: finishopenidlogin.php:149 +msgctxt "BUTTON" +msgid "Create" +msgstr "Створити" + +#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:163 +msgid "Connect existing account" +msgstr "Приєднати акаунт, який вже існує" + +#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:166 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." +msgstr "" +"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " +"приєднати їх до вашого OpenID." + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:170 +msgid "Existing nickname" +msgstr "Нікнейм, який вже існує" + +#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:174 +msgid "Password" +msgstr "Пароль" + +#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. +#: finishopenidlogin.php:178 +msgctxt "BUTTON" +msgid "Connect" +msgstr "Під’єднати" + +#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. +#: finishopenidlogin.php:191 finishaddopenid.php:90 +msgid "OpenID authentication cancelled." +msgstr "Автентифікацію за OpenID скасовано." + +#. TRANS: OpenID authentication failed; display the error message. %s is the error message. +#. TRANS: OpenID authentication failed; display the error message. +#. TRANS: %s is the error message. +#: finishopenidlogin.php:195 finishaddopenid.php:95 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "Автентифікуватись за OpenID не вдалося: %s" + +#: finishopenidlogin.php:215 finishaddopenid.php:111 +msgid "" +"OpenID authentication aborted: you are not allowed to login to this site." +msgstr "Автентифікацію за OpenID перервано: ви не можете увійти на цей сайт." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site. +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. +#: finishopenidlogin.php:267 finishopenidlogin.php:277 +msgid "Registration not allowed." +msgstr "Реєстрацію не дозволено." + +#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. +#: finishopenidlogin.php:285 +msgid "Not a valid invitation code." +msgstr "Це не дійсний код запрошення." + +#. TRANS: OpenID plugin message. The entered new user name is blacklisted. +#: finishopenidlogin.php:299 +msgid "Nickname not allowed." +msgstr "Нікнейм не допускається." + +#. TRANS: OpenID plugin message. The entered new user name is already used. +#: finishopenidlogin.php:305 +msgid "Nickname already in use. Try another one." +msgstr "Цей нікнейм вже використовується. Спробуйте інший." + +#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. +#. TRANS: OpenID plugin server error. A stored OpenID cannot be found. +#: finishopenidlogin.php:313 finishopenidlogin.php:400 +msgid "Stored OpenID not found." +msgstr "Збережений OpenID не знайдено." + +#. TRANS: OpenID plugin server error. +#: finishopenidlogin.php:323 +msgid "Creating new account for OpenID that already has a user." +msgstr "Створення нового акаунту для OpenID користувачем, який вже існує." + +#. TRANS: OpenID plugin message. +#: finishopenidlogin.php:388 +msgid "Invalid username or password." +msgstr "Невірне ім’я або пароль." + +#. TRANS: OpenID plugin server error. The user or user profile could not be saved. +#: finishopenidlogin.php:408 +msgid "Error connecting user to OpenID." +msgstr "Помилка при підключенні користувача до OpenID." + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:82 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" +"З міркувань безпеки, будь ласка, увійдіть знов з [OpenID](%%doc.openid%%), " +"перед тим як змінювати налаштування." + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:88 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "Увійти з [OpenID](%%doc.openid%%)." + +#. TRANS: OpenID plugin message. Title. +#. TRANS: Title after getting the status of the OpenID authorisation request. +#: openidlogin.php:122 finishaddopenid.php:187 +msgid "OpenID Login" +msgstr "Вхід з OpenID" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:169 +msgid "Remember me" +msgstr "Пам’ятати мене" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:171 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Автоматично входити у майбутньому; не для комп’ютерів загального " +"користування!" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:176 +msgctxt "BUTTON" +msgid "Login" +msgstr "Увійти" + +#: openidtrust.php:52 +msgid "OpenID Identity Verification" +msgstr "Перевірка ідентичності OpenID" + +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Ви потрапляєте на цю сторінку лише при обробці запитів OpenID, не напряму." + +#: openidtrust.php:118 +#, php-format +msgid "" +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." +msgstr "" +"%s запрошує вас пройти перевірку на ідентичність. Натисніть «Продовжити», щоб " +"перевірити вашу особу та увійти, не створюючи нового паролю." + +#: openidtrust.php:136 +msgid "Continue" +msgstr "Продовжити" + +#: openidtrust.php:137 +msgid "Cancel" +msgstr "Скасувати" + +#. TRANS: Client error message +#: finishaddopenid.php:68 +msgid "Not logged in." +msgstr "Ви не увійшли до системи." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +#: finishaddopenid.php:122 +msgid "You already have this OpenID!" +msgstr "У вас вже є цей OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +#: finishaddopenid.php:125 +msgid "Someone else already has this OpenID." +msgstr "Хтось інший вже приєднав цей OpenID до свого акаунту." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +#: finishaddopenid.php:138 +msgid "Error connecting user." +msgstr "Помилка при підключенні користувача." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +#: finishaddopenid.php:145 +msgid "Error updating profile" +msgstr "Помилка при оновленні профілю" diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 4ce350f773..ad251aa2cd 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -17,9 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -require_once(INSTALLDIR.'/plugins/OpenID/User_openid.php'); +if (!defined('STATUSNET')) { + exit(1); +} require_once('Auth/OpenID.php'); require_once('Auth/OpenID/Consumer.php'); @@ -182,7 +182,19 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $trust_root = common_root_url(true); $process_url = common_local_url($returnto); - if ($auth_request->shouldSendRedirect()) { + // Net::OpenID::Server as used on LiveJournal appears to incorrectly + // reject POST requests for data submissions that OpenID 1.1 specs + // as GET, although 2.0 allows them: + // https://rt.cpan.org/Public/Bug/Display.html?id=42202 + // + // Our OpenID libraries would have switched in the redirect automatically + // if it were detecting 1.1 compatibility mode, however the server is + // advertising itself as 2.0-compatible, so we got switched to the POST. + // + // Since the GET should always work anyway, we'll just take out the + // autosubmitter for now. + // + //if ($auth_request->shouldSendRedirect()) { $redirect_url = $auth_request->redirectURL($trust_root, $process_url, $immediate); @@ -194,6 +206,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) } else { common_redirect($redirect_url, 303); } + /* } else { // Generate form markup and render it. $form_id = 'openid_message'; @@ -219,6 +232,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $action->handle(array('action' => 'autosubmit')); } } + */ } # Half-assed attempt at a module-private function diff --git a/plugins/OpenID/openidadminpanel.php b/plugins/OpenID/openidadminpanel.php index ce4806cc89..38df183fef 100644 --- a/plugins/OpenID/openidadminpanel.php +++ b/plugins/OpenID/openidadminpanel.php @@ -257,7 +257,7 @@ class OpenIDAdminPanelForm extends AdminForm $this->out->checkbox( 'openidonly', _m('Enable OpenID-only mode'), (bool) $this->value('openidonly', 'site'), - _m('Require all users to login via OpenID. WARNING: disables password authentication for all users!'), + _m('Require all users to login via OpenID. Warning: disables password authentication for all users!'), 'true' ); $this->unli(); diff --git a/plugins/OpenID/openidlogin.php b/plugins/OpenID/openidlogin.php index 20d6e070cd..8d25a2e9ac 100644 --- a/plugins/OpenID/openidlogin.php +++ b/plugins/OpenID/openidlogin.php @@ -17,7 +17,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} require_once INSTALLDIR.'/plugins/OpenID/openid.php'; @@ -42,14 +44,6 @@ class OpenidloginAction extends Action oid_assert_allowed($openid_url); - # CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - // TRANS: Message given when there is a problem with the user's session token. - $this->showForm(_m('There was a problem with your session token. Try again, please.'), $openid_url); - return; - } - $rememberme = $this->boolean('rememberme'); common_ensure_session(); @@ -136,7 +130,6 @@ class OpenidloginAction extends Action $this->elementStart('fieldset'); // TRANS: OpenID plugin logon form legend. $this->element('legend', null, _m('OpenID login')); - $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); diff --git a/plugins/OpenID/openidserver.php b/plugins/OpenID/openidserver.php index b2cf1f8ac3..ed9db4fd28 100644 --- a/plugins/OpenID/openidserver.php +++ b/plugins/OpenID/openidserver.php @@ -28,13 +28,11 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } -require_once INSTALLDIR.'/lib/action.php'; require_once INSTALLDIR.'/plugins/OpenID/openid.php'; -require_once(INSTALLDIR.'/plugins/OpenID/User_openid_trustroot.php'); /** * Settings for OpenID diff --git a/plugins/OpenID/openidsettings.php b/plugins/OpenID/openidsettings.php index 505e7d0ee3..b7d5bd084d 100644 --- a/plugins/OpenID/openidsettings.php +++ b/plugins/OpenID/openidsettings.php @@ -27,11 +27,10 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } -require_once INSTALLDIR.'/lib/accountsettingsaction.php'; require_once INSTALLDIR.'/plugins/OpenID/openid.php'; /** diff --git a/plugins/OpenID/openidtrust.php b/plugins/OpenID/openidtrust.php index ed6ca73a47..89f3150f63 100644 --- a/plugins/OpenID/openidtrust.php +++ b/plugins/OpenID/openidtrust.php @@ -17,10 +17,11 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET')) { + exit(1); +} require_once INSTALLDIR.'/plugins/OpenID/openid.php'; -require_once(INSTALLDIR.'/plugins/OpenID/User_openid_trustroot.php'); class OpenidtrustAction extends Action { diff --git a/plugins/OpenX/OpenXPlugin.php b/plugins/OpenX/OpenXPlugin.php index 59485f25d8..5d3bb2306c 100644 --- a/plugins/OpenX/OpenXPlugin.php +++ b/plugins/OpenX/OpenXPlugin.php @@ -75,11 +75,26 @@ if (!defined('STATUSNET')) { * * @seeAlso UAPPlugin */ - class OpenXPlugin extends UAPPlugin { public $adScript = null; + function initialize() + { + parent::initialize(); + + // A little bit of chicanery so we avoid overwriting values that + // are passed in with the constructor + foreach (array('mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper', 'adScript') as $setting) { + $value = common_config('openx', $setting); + if (!empty($value)) { // not found + $this->$setting = $value; + } + } + + return true; + } + /** * Show a medium rectangle 'ad' * @@ -87,7 +102,6 @@ class OpenXPlugin extends UAPPlugin * * @return void */ - protected function showMediumRectangle($action) { $this->showAd($action, $this->mediumRectangle); @@ -100,7 +114,6 @@ class OpenXPlugin extends UAPPlugin * * @return void */ - protected function showRectangle($action) { $this->showAd($action, $this->rectangle); @@ -113,7 +126,6 @@ class OpenXPlugin extends UAPPlugin * * @return void */ - protected function showWideSkyscraper($action) { $this->showAd($action, $this->wideSkyscraper); @@ -126,7 +138,6 @@ class OpenXPlugin extends UAPPlugin * * @return void */ - protected function showLeaderboard($action) { $this->showAd($action, $this->leaderboard); @@ -140,7 +151,6 @@ class OpenXPlugin extends UAPPlugin * * @return void */ - protected function showAd($action, $zone) { $scr = <<<ENDOFSCRIPT @@ -162,4 +172,56 @@ ENDOFSCRIPT; $action->inlineScript(sprintf($scr, $this->adScript, $zone)); return true; } -} \ No newline at end of file + + function onRouterInitialized($m) + { + $m->connect('admin/openx', + array('action' => 'openxadminpanel')); + + return true; + } + + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'OpenxadminpanelAction': + require_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + default: + return true; + } + } + + function onEndAdminPanelNav($menu) { + if (AdminPanelAction::canAdmin('openx')) { + // TRANS: Menu item title/tooltip + $menu_title = _m('OpenX configuration'); + // TRANS: Menu item for site administration + $menu->out->menuItem(common_local_url('openxadminpanel'), _m('OpenX'), + $menu_title, $action_name == 'openxadminpanel', 'nav_openx_admin_panel'); + } + return true; + } + + /** + * Add our version information to output + * + * @param array &$versions Array of version-data arrays + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'OpenX', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:OpenX', + 'rawdescription' => + // TRANS: Plugin description. + _m('Plugin for <a href="http://www.openx.org/">OpenX Ad Server</a>.')); + return true; + } +} diff --git a/plugins/OpenX/locale/OpenX.pot b/plugins/OpenX/locale/OpenX.pot new file mode 100644 index 0000000000..f009b94b63 --- /dev/null +++ b/plugins/OpenX/locale/OpenX.pot @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "" diff --git a/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..79c92a0429 --- /dev/null +++ b/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - OpenX to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "Kefluniadur OpenX" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" +"Plugin evit ar <a href=\"http://www.openx.org/\">servijer bruderezh OpenX</" +"a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Arventennoù OpenX evit al lec'hienn StatusNet-mañ." + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "URL ar skript kemenn" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Skouergornek" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Giton a-serzh" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Enrollañ" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "Enrollañ arventennoù OpenX" diff --git a/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..d4db619c8c --- /dev/null +++ b/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po @@ -0,0 +1,109 @@ +# Translation of StatusNet - OpenX to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "OpenX-Konfiguration" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "Plugin für <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Openx-Einstellungen dieser StatusNet-Website" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "Skript-URL" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "Skript-URL" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Speichern" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "OpenX-Einstellungen speichern" diff --git a/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..5331127566 --- /dev/null +++ b/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - OpenX to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "Configuration d’OpenX" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" +"Module complémentaire pour le <a href=\"http://www.openx.org/\">serveur de " +"publicité OpenX</a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Paramètres OpenX pour ce site StatusNet" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "Adresse URL du script d’annonce" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "Adresse URL du script" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "Rectangle moyen" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "Zone rectangulaire de taille moyenne" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Rectangle" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "Zone de forme rectangulaire" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "Panneau de commande" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "Zone de format tableau de bord" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Bannière verticale" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "Zone de format vertical large" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Sauvegarder" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "Sauvegarder les paramètres OpenX" diff --git a/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..628e882ecb --- /dev/null +++ b/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - OpenX to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "Configuration de OpenX" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" +"Plug-in pro le <a href=\"http://www.openx.org/\">servitor de annuncios " +"OpenX</a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Configuration de OpenX pro iste sito StatusNet" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "URL del script de publicitate" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "URL del script" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "Rectangulo medie" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "Zona del rectangulo medie" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Rectangulo" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "Zona del rectangulo" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "Bandiera large" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "Zona del bandiera large" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Grattacelo" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "Zona del grattacelo large" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "Salveguardar configurationes de OpenX" diff --git a/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..a3e4575398 --- /dev/null +++ b/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - OpenX to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "Поставки за OpenX" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" +"Додаток за <a href=\"http://www.openx.org/\">Рекламен опслужувач за OpenX</" +"a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Поставки за OpenX на ова StatusNet-мрежно место" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "URL-адреса на рекламната скрипта" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "URL-адреса на скриптата" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "Среден правоаголник" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "Зона на среден правоаголник" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Правоаголник" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "Зона на правоаголник" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "Предводници" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "Зона за Предводници" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Облакодер" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "Зона на широк облакодер" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "Зачувај поставки за" diff --git a/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..1db37009d3 --- /dev/null +++ b/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po @@ -0,0 +1,109 @@ +# Translation of StatusNet - OpenX to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "OpenX-instellingen" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "Plug-in voor <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "OpenX-instellingen voor deze StatusNet-website" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "URL voor advertentiescript" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "Script-URL" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "Middelgrote rechthoek" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "Middelgrote rechthoekzone" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Rechthoek" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "Rechthoekzone" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "Breedbeeldbanner" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "Breedbeeldbannerzone" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Skyscraper" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "Brede skyscraperzone" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "OpenX-instellingen opslaan" diff --git a/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po new file mode 100644 index 0000000000..3cf99f5e61 --- /dev/null +++ b/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - OpenX to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenX\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:32+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:24+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-openx\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Menu item title/tooltip +#: OpenXPlugin.php:201 +msgid "OpenX configuration" +msgstr "Конфігурація OpenX" + +#. TRANS: Menu item for site administration +#: OpenXPlugin.php:203 +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Plugin description. +#: OpenXPlugin.php:224 +msgid "Plugin for <a href=\"http://www.openx.org/\">OpenX Ad Server</a>." +msgstr "" +"Додаток для <a href=\"http://www.openx.org/\">рекламного сервера OpenX</a>." + +#. TRANS: Page title for OpenX admin panel. +#: openxadminpanel.php:53 +msgctxt "TITLE" +msgid "OpenX" +msgstr "OpenX" + +#. TRANS: Instructions for OpenX admin panel. +#: openxadminpanel.php:64 +msgid "OpenX settings for this StatusNet site" +msgstr "Налаштування OpenX для даного сайту StatusNet" + +#. TRANS: Form label in OpenX admin panel. +#: openxadminpanel.php:167 +msgid "Ad script URL" +msgstr "URL-адреса рекламного скрипту" + +#. TRANS: Tooltip for form label in OpenX admin panel. +#: openxadminpanel.php:169 +msgid "Script URL" +msgstr "URL-адреса скрипту" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:175 +msgid "Medium rectangle" +msgstr "Середній прямокутник" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:177 +msgid "Medium rectangle zone" +msgstr "Зона середнього прямокутника" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:183 +msgid "Rectangle" +msgstr "Прямокутник" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:185 +msgid "Rectangle zone" +msgstr "Зона прямокутника" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:191 +msgid "Leaderboard" +msgstr "Банер" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:193 +msgid "Leaderboard zone" +msgstr "Зона банеру" + +#. TRANS: Form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:199 +msgid "Skyscraper" +msgstr "Хмарочос" + +#. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. +#: openxadminpanel.php:201 +msgid "Wide skyscraper zone" +msgstr "Зона широкого хмарочосу" + +#. TRANS: Submit button text in OpenX admin panel. +#: openxadminpanel.php:216 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: Submit button title in OpenX admin panel. +#: openxadminpanel.php:220 +msgid "Save OpenX settings" +msgstr "Зберегти налаштування OpenX" diff --git a/plugins/OpenX/openxadminpanel.php b/plugins/OpenX/openxadminpanel.php new file mode 100644 index 0000000000..0bd09c70a4 --- /dev/null +++ b/plugins/OpenX/openxadminpanel.php @@ -0,0 +1,222 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * OpenX administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category OpenX + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @copyright 2010 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); +} + +/** + * Administer openx settings + * + * @category OpenX + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class OpenXadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + function title() + { + // TRANS: Page title for OpenX admin panel. + return _m('TITLE', 'OpenX'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + function getInstructions() + { + // TRANS: Instructions for OpenX admin panel. + return _m('OpenX settings for this StatusNet site'); + } + + /** + * Show the site admin panel form + * + * @return void + */ + function showForm() + { + $form = new OpenXAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + function saveSettings() + { + static $settings = array('openx' => array('adScript', 'mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper')); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] = $this->trimmed($setting); + } + } + + // This throws an exception on validation errors + $this->validate($values); + + // assert(all values are valid); + $config = new Config(); + + $config->query('BEGIN'); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + function validate(&$values) + { + } +} + +/** + * Form for the openx admin panel + */ +class OpenXAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + function id() + { + return 'form_openx_admin_panel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + return 'form_openx'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('openxadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $this->out->elementStart('fieldset', array('id' => 'openx_admin')); + $this->out->elementStart('ul', 'form_data'); + $this->li(); + $this->input('adScript', + // TRANS: Form label in OpenX admin panel. + _m('Ad script URL'), + // TRANS: Tooltip for form label in OpenX admin panel. + _m('Script URL'), + 'openx'); + $this->unli(); + $this->li(); + $this->input('mediumRectangle', + // TRANS: Form label in OpenX admin panel. Refers to advertisement format. + _m('Medium rectangle'), + // TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. + _m('Medium rectangle zone'), + 'openx'); + $this->unli(); + $this->li(); + $this->input('rectangle', + // TRANS: Form label in OpenX admin panel. Refers to advertisement format. + _m('Rectangle'), + // TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. + _m('Rectangle zone'), + 'openx'); + $this->unli(); + $this->li(); + $this->input('leaderboard', + // TRANS: Form label in OpenX admin panel. Refers to advertisement format. + _m('Leaderboard'), + // TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. + _m('Leaderboard zone'), + 'openx'); + $this->unli(); + $this->li(); + $this->input('wideSkyscraper', + // TRANS: Form label in OpenX admin panel. Refers to advertisement format. + _m('Skyscraper'), + // TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. + _m('Wide skyscraper zone'), + 'openx'); + $this->unli(); + $this->out->elementEnd('ul'); + } + + /** + * Action elements + * + * @return void + */ + function formActions() + { + $this->out->submit('submit', + // TRANS: Submit button text in OpenX admin panel. + _m('BUTTON','Save'), + 'submit', + null, + // TRANS: Submit button title in OpenX admin panel. + _m('Save OpenX settings')); + } +} diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php similarity index 77% rename from plugins/PiwikAnalyticsPlugin.php rename to plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php index b353d72552..8a730113e6 100644 --- a/plugins/PiwikAnalyticsPlugin.php +++ b/plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php @@ -49,7 +49,6 @@ if (!defined('STATUSNET')) { * analytics setup - for example '8'. * */ - class PiwikAnalyticsPlugin extends Plugin { /** the base of your Piwik installation */ @@ -63,7 +62,6 @@ class PiwikAnalyticsPlugin extends Plugin * @param string $root Piwik root URL * @param string $id Piwik ID of this app */ - function __construct($root=null, $id=null) { $this->piwikroot = $root; @@ -78,23 +76,30 @@ class PiwikAnalyticsPlugin extends Plugin * * @return boolean ignored */ - function onEndShowScripts($action) { - $piwikCode1 = <<<ENDOFPIWIK -var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$this->piwikroot}" : "http://{$this->piwikroot}"); -document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); -ENDOFPIWIK; - $piwikCode2 = <<<ENDOFPIWIK + // Slight modification to the default code. + // Loading the piwik.js file from a <script> created in a document.write + // meant that the browser had no way to preload it, ensuring that its + // loading will be synchronous, blocking further page rendering. + // + // User-agents understand protocol-relative links, so instead of the + // URL produced in JS we can just give a universal one. Since it's + // sitting there in the DOM ready to go, the browser can preload the + // file for us and we're less likely to have to wait for it. + $piwikUrl = '//' . $this->piwikroot . 'piwik.js'; + $piwikCode = <<<ENDOFPIWIK try { +var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$this->piwikroot}" : "http://{$this->piwikroot}"); var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {$this->piwikId}); piwikTracker.trackPageView(); piwikTracker.enableLinkTracking(); } catch( err ) {} ENDOFPIWIK; - $action->inlineScript($piwikCode1); - $action->inlineScript($piwikCode2); + // Don't use $action->script() here; it'll try to preface the URL. + $action->element('script', array('type' => 'text/javascript', 'src' => $piwikUrl), ' '); + $action->inlineScript($piwikCode); return true; } @@ -105,8 +110,7 @@ ENDOFPIWIK; 'author' => 'Tobias Diekershoff, Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:Piwik', 'rawdescription' => - _m('Use <a href="http://piwik.org/">Piwik</a> Open Source Web analytics software.')); + _m('Use <a href="http://piwik.org/">Piwik</a> Open Source web analytics software.')); return true; } - } diff --git a/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot b/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot new file mode 100644 index 0000000000..a3e5f54cbe --- /dev/null +++ b/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" diff --git a/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..c73407ae89 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Benutzung der <a href=\"http://piwik.org/\">Piwik</a>-Open-Source-Web-" +"Analyse-Software." diff --git a/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..8969a3ca49 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Utiliza el software de análisis de sitios Web de fuente abierta <a href=" +"\"http://piwik.org/\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..1d0eac8831 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Utiliser le logiciel d’analyse Web en source ouvert <a href=\"http://piwik." +"org/\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..91b1c100ad --- /dev/null +++ b/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PiwikAnalytics to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"שימוש בתכנית לניתוח הרשת בקוד פתוח <a href=\"http://piwik.org/\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..421a47fcdd --- /dev/null +++ b/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Usar le software open source de analyse web <a href=\"http://piwik.org/" +"\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..d0f05868d6 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:45+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Menggunakan perangkat lunak analisis web terbuka <a href=\"http://piwik.org/" +"\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..4eda923b9e --- /dev/null +++ b/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Користи <a href=\"http://piwik.org/\">Piwik</a> - програм за мрежна " +"аналитика со отворен код." diff --git a/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..f5573748dd --- /dev/null +++ b/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Bruk <a href=\"http://piwik.org/\">Piwik</a>, en nettanalyseprogramvare med " +"åpen kildekode." diff --git a/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..fc932b2a1e --- /dev/null +++ b/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"<a href=\"http://piwik.org/\">Piwik</a> Open Source webanalysesoftware " +"gebruiken." diff --git a/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..27ca358c33 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - PiwikAnalytics to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Utiliza o software de análise web de código aberto <a href=\"http://piwik." +"org/\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..2de2d9079c --- /dev/null +++ b/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - PiwikAnalytics to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Использование Open Source программного обеспечения для веб-аналитики: <a " +"href=\"http://piwik.org/\">Piwik</a>." diff --git a/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..72ba73df8f --- /dev/null +++ b/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - PiwikAnalytics to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Gamitin ang analatikong pangweb na sopwer na <a href=\"http://piwik.org/" +"\">Piwik</a> na may Bukas na Pinagmulan." diff --git a/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po new file mode 100644 index 0000000000..b42bdefc73 --- /dev/null +++ b/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - PiwikAnalytics to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PiwikAnalytics\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:27+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PiwikAnalyticsPlugin.php:113 +msgid "" +"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics " +"software." +msgstr "" +"Використання програмного забезпечення з відкритим кодом <a href=\"http://" +"piwik.org/\">Piwik</a> для аналізу веб-потоків." diff --git a/plugins/PostDebug/locale/PostDebug.pot b/plugins/PostDebug/locale/PostDebug.pot index b7107d4c17..0605ce1e22 100644 --- a/plugins/PostDebug/locale/PostDebug.pot +++ b/plugins/PostDebug/locale/PostDebug.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..eb06ad8820 --- /dev/null +++ b/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Debugging-Werkzeug zur Aufnahme von POST-Anfragedetails." diff --git a/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..574366a891 --- /dev/null +++ b/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PostDebug to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "" +"Herramienta de depuración para registrar detalles de solicitud en POST." diff --git a/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..ab1fceb744 --- /dev/null +++ b/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Virheenjäljitystyökalu joka tallentaa POST-pyyntöjen tiedot" diff --git a/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..a76e57a216 --- /dev/null +++ b/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Outil de débogage pour enregistrer les requêtes détaillées de POST." diff --git a/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..c849269dda --- /dev/null +++ b/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "כלי ניפוי שגיאות לרישום כל פרטי בקשות ה־POST." diff --git a/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..d257149b60 --- /dev/null +++ b/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PostDebug to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "" +"Instrumento pro eliminar defectos que registra le detalios del requestas " +"POST." diff --git a/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..d96a36835f --- /dev/null +++ b/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Peralatan debugging untuk mencatat detail permintaan di POST." diff --git a/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..bc99bba497 --- /dev/null +++ b/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "POSTリクエストの詳細を記録するデバッグツール" diff --git a/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..4fac0f3df4 --- /dev/null +++ b/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Алатка за отстранување на грешки за евидентирање на податоци за POST." diff --git a/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..0429c6f179 --- /dev/null +++ b/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Feilsøkingsverktøy for å registrere forspørselsdetaljer om POST." diff --git a/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..151c432919 --- /dev/null +++ b/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - PostDebug to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Hulpprogramma voor debuggen om verzoekdetails van POST op te slaan." diff --git a/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..1a653d793e --- /dev/null +++ b/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PostDebug to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "" +"Ferramenta de depuração para registrar detalhes de solicitação em POST." diff --git a/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..0def7ae175 --- /dev/null +++ b/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PostDebug to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Инструмент отладки для записи подробностей POST-запросов." diff --git a/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..ee127f500a --- /dev/null +++ b/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PostDebug to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "" +"Kasangkapang pantanggal ng depekto upang itala ang mga detalye ng paghiling " +"sa POST." diff --git a/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po new file mode 100644 index 0000000000..e26741ecd6 --- /dev/null +++ b/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PostDebug to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PostDebug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:46+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-postdebug\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PostDebugPlugin.php:58 +msgid "Debugging tool to record request details on POST." +msgstr "Інструмент правки для запису деталей запитів щодо POST." diff --git a/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php b/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php index fb4eff7389..f2e2fcbafe 100644 --- a/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php +++ b/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php @@ -47,6 +47,7 @@ class PoweredByStatusNetPlugin extends Plugin { $action->text(' '); $action->elementStart('span', 'poweredby'); + // TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. $action->raw(sprintf(_m('powered by %s'), sprintf('<a href="http://status.net/">%s</a>', _m('StatusNet')))); @@ -62,7 +63,7 @@ class PoweredByStatusNetPlugin extends Plugin 'author' => 'Sarven Capadisli', 'homepage' => 'http://status.net/wiki/Plugin:PoweredByStatusNet', 'rawdescription' => - _m('Outputs powered by <a href="http://status.net/">StatusNet</a> after site name.')); + _m('Outputs "powered by <a href="http://status.net/">StatusNet</a>" after site name.')); return true; } } diff --git a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot index bc0e814f2c..b63fae65e6 100644 --- a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot +++ b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,17 +16,18 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: PoweredByStatusNetPlugin.php:50 +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "" -#: PoweredByStatusNetPlugin.php:52 +#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "" -#: PoweredByStatusNetPlugin.php:65 +#: PoweredByStatusNetPlugin.php:66 msgid "" -"Outputs powered by <a href=\"http://status.net/\">StatusNet</a> after site " -"name." +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." msgstr "" diff --git a/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..484232e105 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "enlusket gant %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Diskwel \"enlusket gant <a href=\"http://status.net/\">StatusNet</a>\" goude " +"anv al lec'hienn." diff --git a/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..2061d4dcd6 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "bereitgestellt von %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Fügt „bereitgestellt von <a href=\"http://status.net/\">StatusNet</a>“ " +"hinter dem Seitennamen ein." diff --git a/plugins/PoweredByStatusNet/locale/es/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/es/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..c3e5b09b56 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/es/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - PoweredByStatusNet to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" diff --git a/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..f77732355d --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - PoweredByStatusNet to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "propulsé par %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Affiche « propulsé par <a href=\"http://status.net/\">StatusNet</a> » après " +"le nom du site." diff --git a/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..52355f6d16 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "desenvolvido por %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Produce un \"desenvolvido por <a href=\"http://status.net/\">StatusNet</a>\" " +"despois do nome do sitio." diff --git a/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..82bf7f843a --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "actionate per %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Affixa \"actionate per <a href=\"http://status.net/\">StatusNet</a>\" post " +"le nomine del sito." diff --git a/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..a3e112ae7e --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "овозможено од %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Дава „со поддршка од <a href=\"http://status.net/\">StatusNet</a>“ по името " +"на мреж. место." diff --git a/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..b792395c0e --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "Powered by %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Voegt de tekst \"Powered by <a href=\"http://status.net/\">StatusNet</a>\" " +"toe na de sitenaam." diff --git a/plugins/PoweredByStatusNet/locale/pl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/pl/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..b4087c7ba4 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/pl/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - PoweredByStatusNet to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" diff --git a/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..6d54c5a0b8 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Waldir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "Potenciado por %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Produz o texto \"potenciado por <a href=\"http://status.net/\">StatusNet</a>" +"\" a seguir ao nome do site." diff --git a/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..ee7920d542 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - PoweredByStatusNet to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, fuzzy, php-format +msgid "powered by %s" +msgstr "при поддержке $1" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Выводит «при поддержке <a href=\"http://status.net/\">StatusNet</a>» после " +"названия сайта." diff --git a/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..de02d367b8 --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - PoweredByStatusNet to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "pinapatakbo ng %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Ang mga paglalabas ay \"pinapatakbo ng <a href=\"http://status.net/" +"\">StatusNet</a>\" pagkaraan ng pangalan ng sityo." diff --git a/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po new file mode 100644 index 0000000000..60bdaa7b3b --- /dev/null +++ b/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - PoweredByStatusNet to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PoweredByStatusNet\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. +#: PoweredByStatusNetPlugin.php:51 +#, php-format +msgid "powered by %s" +msgstr "працює на %s" + +#: PoweredByStatusNetPlugin.php:53 +msgid "StatusNet" +msgstr "StatusNet" + +#: PoweredByStatusNetPlugin.php:66 +msgid "" +"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after " +"site name." +msgstr "" +"Даний додаток виводить припис «працює на <a href=\"http://status.net/" +"\">StatusNet</a>» після назви сайту." diff --git a/plugins/PtitUrl/locale/PtitUrl.pot b/plugins/PtitUrl/locale/PtitUrl.pot index a888f80e4a..879c9013b8 100644 --- a/plugins/PtitUrl/locale/PtitUrl.pot +++ b/plugins/PtitUrl/locale/PtitUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..ac61652791 --- /dev/null +++ b/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PtitUrl to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Ober a ra gant ar servij krennañ URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..c75ec0f47c --- /dev/null +++ b/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PtitUrl to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Benutzung des <a href=\"http://%1$s/\">%1$s</a>-URL-Kürzungsdienstes." diff --git a/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..ffa13df1fa --- /dev/null +++ b/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PtitUrl to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza el servicio de acortamiento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..74c20085dd --- /dev/null +++ b/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utilise le service de raccourcissement d’URL <a href=\"http://%1$s/\">%1$s</" +"a>." diff --git a/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..1e1ff41c17 --- /dev/null +++ b/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PtitUrl to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "שימוש בשירות קיצור הכתובות <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..31ff74fbb4 --- /dev/null +++ b/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PtitUrl to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Usa le servicio de accurtamento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..9a75756410 --- /dev/null +++ b/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PtitUrl to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "<a href=\"http://%1$s/\">%1$s</a>をURL短縮サービスとして利用する。" diff --git a/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..d4fbd22a8b --- /dev/null +++ b/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Користи <a href=\"http://%1$s/\">%1$s</a> - служба за скратување на URL-" +"адреси." diff --git a/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..d28ce29a74 --- /dev/null +++ b/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PtitUrl to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Bruker URL-forkortertjenesten <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..e59887b2dd --- /dev/null +++ b/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gebruikt de dienst <a href=\"http://%1$s/\">%1$s</a> om URL's korter te " +"maken." diff --git a/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..e3a1753c93 --- /dev/null +++ b/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - PtitUrl to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:47+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Usa o serviço de abreviação de URLs <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..afeab5f1ce --- /dev/null +++ b/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza o serviço de encurtamento de URL <a href=\"http://%1$s/\">%1$s</a>" diff --git a/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..0398301001 --- /dev/null +++ b/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - PtitUrl to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Использование службы сокращения URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..f3977faeb4 --- /dev/null +++ b/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gumagamit ng palingkurang pampaigsi ng URL na <a href=\"http://%1$s/\">%1$s</" +"a>." diff --git a/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po new file mode 100644 index 0000000000..81251a8442 --- /dev/null +++ b/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - PtitUrl to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - PtitUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-ptiturl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: PtitUrlPlugin.php:67 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Використання <a href=\"http://%1$s/\">%1$s</a> для скорочення URL-адрес." diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php index e37eed16a3..c7d7a40e3b 100644 --- a/plugins/RSSCloud/LoggingAggregator.php +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -47,7 +47,6 @@ if (!defined('STATUSNET')) { **/ class LoggingAggregatorAction extends Action { - var $challenge = null; var $url = null; @@ -58,7 +57,6 @@ class LoggingAggregatorAction extends Action * * @return boolean false if user doesn't exist */ - function prepare($args) { parent::prepare($args); @@ -79,22 +77,20 @@ class LoggingAggregatorAction extends Action * * @return void */ - function handle($args) { parent::handle($args); if (empty($this->url)) { - $this->showError('Hey, you have to provide a url parameter.'); + $this->showError(_('A URL parameter is required.')); return; } if (!empty($this->challenge)) { // must be a GET - if ($_SERVER['REQUEST_METHOD'] != 'GET') { - $this->showError('This resource requires an HTTP GET.'); + $this->showError(_m('This resource requires an HTTP GET.')); return; } @@ -104,9 +100,8 @@ class LoggingAggregatorAction extends Action } else { // must be a POST - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->showError('This resource requires an HTTP POST.'); + $this->showError(_m('This resource requires an HTTP POST.')); return; } @@ -128,7 +123,6 @@ class LoggingAggregatorAction extends Action * * @return void */ - function showError($msg) { header('HTTP/1.1 400 Bad Request'); @@ -136,5 +130,4 @@ class LoggingAggregatorAction extends Action echo "<?xml version='1.0'?>\n"; echo "<notifyResult success='false' msg='$msg' />\n"; } - -} \ No newline at end of file +} diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index 9e7b536803..1f0eab47e8 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -235,6 +235,4 @@ class RSSCloudNotifier } } } - } - diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index c1951cdbf8..7d9c39a67d 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -209,19 +209,16 @@ class RSSCloudPlugin extends Plugin { $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, null, 0), - new ColumnDef('created', 'datetime', - null, false), - new ColumnDef('modified', 'timestamp', - null, false, null, - 'CURRENT_TIMESTAMP', - 'on update CURRENT_TIMESTAMP') - )); + array( + 'fields' => array( + 'subscribed' => array('type' => 'int', 'not null' => true), + 'url' => array('type' => 'varchar', 'length' => '255', 'not null' => true), + 'failures' => array('type' => 'int', 'not null' => true, 'default' => 0), + 'created' => array('type' => 'datetime', 'not null' => true), + 'modified' => array('type' => 'timestamp', 'not null' => true), + ), + 'primary key' => array('subscribed', 'url'), + )); return true; } @@ -247,10 +244,9 @@ class RSSCloudPlugin extends Plugin 'rawdescription' => _m('The RSSCloud plugin enables your StatusNet instance to publish ' . 'real-time updates for profile RSS feeds using the ' . - '<a href="http://rsscloud.org/">RSSCloud protocol</a>".')); + '<a href="http://rsscloud.org/">RSSCloud protocol</a>.')); return true; } } - diff --git a/plugins/RSSCloud/RSSCloudQueueHandler.php b/plugins/RSSCloud/RSSCloudQueueHandler.php index 295c261895..8a09977489 100644 --- a/plugins/RSSCloud/RSSCloudQueueHandler.php +++ b/plugins/RSSCloud/RSSCloudQueueHandler.php @@ -28,9 +28,13 @@ class RSSCloudQueueHandler extends QueueHandler function handle($notice) { - $profile = $notice->getProfile(); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + common_log(LOG_ERR, "Dropping RSSCloud item for notice with bogus profile: " . $e->getMessage()); + return true; + } $notifier = new RSSCloudNotifier(); return $notifier->notify($profile); } } - diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 0305295348..e9c0eab5f8 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -41,7 +41,6 @@ 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 RSSCloudRequestNotifyAction extends Action { /** @@ -51,7 +50,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean false if user doesn't exist */ - function prepare($args) { parent::prepare($args); @@ -84,13 +82,12 @@ class RSSCloudRequestNotifyAction extends Action * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->showResult(false, 'Request must be POST.'); + $this->showResult(false, _m('Request must be POST.')); return; } @@ -107,7 +104,7 @@ 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.'; + $msg = _m('Only http-post notifications are supported at this time.'); $this->showResult(false, $msg); return; } @@ -117,15 +114,15 @@ class RSSCloudRequestNotifyAction extends Action } if (!empty($missing)) { - $msg = 'The following parameters were missing from the request body: ' . - implode(', ', $missing) . '.'; + // TRANS: %s is a comma separated list of parameters. + $msg = sprintf(_m('The following parameters were missing from the request body: %s.'),implode(', ', $missing)); $this->showResult(false, $msg); return; } if (empty($this->feeds)) { - $msg = 'You must provide at least one valid profile feed url ' . - '(url1, url2, url3 ... urlN).'; + $msg = _m('You must provide at least one valid profile feed url ' . + '(url1, url2, url3 ... urlN).'); $this->showResult(false, $msg); return; } @@ -133,7 +130,6 @@ class RSSCloudRequestNotifyAction extends Action // 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) { if (!$this->validateFeed($feed)) { @@ -142,18 +138,17 @@ class RSSCloudRequestNotifyAction extends Action common_log(LOG_WARNING, "RSSCloud plugin - $nh tried to subscribe to invalid feed: $feed"); - $msg = 'Feed subscription failed - Not a valid feed.'; + $msg = _m('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.'; + $msg = _m('Feed subscription failed - ' . + 'notification handler doesn\'t respond correctly.'); $this->showResult(false, $msg); return; } - } foreach ($this->feeds as $feed) { @@ -163,9 +158,8 @@ class RSSCloudRequestNotifyAction extends Action // XXX: What to do about deleting stale subscriptions? // 25 hours seems harsh. WordPress doesn't ever remove // subscriptions. - - $msg = 'Thanks for the subscription. ' . - 'When the feed(s) update(s) we\'ll notify you.'; + $msg = _m('Thanks for the subscription. ' . + 'When the feed(s) update(s), you will be notified.'); $this->showResult(true, $msg); } @@ -178,7 +172,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return void */ - function validateFeed($feed) { $user = $this->userFromFeed($feed); @@ -196,7 +189,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return array $feeds the list of feeds */ - function getFeeds() { $feeds = array(); @@ -218,7 +210,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean success result */ - function testNotificationHandler($feed) { $notifyUrl = $this->getNotifyUrl(); @@ -226,9 +217,7 @@ class RSSCloudRequestNotifyAction extends Action $notifier = new RSSCloudNotifier(); if (isset($this->domain)) { - // 'domain' param set, so we have to use GET and send a challenge - common_log(LOG_INFO, 'RSSCloud plugin - Testing notification handler with challenge: ' . $notifyUrl); @@ -248,7 +237,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return string notification handler url */ - function getNotifyUrl() { if (isset($this->domain)) { @@ -267,12 +255,10 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean success */ - function userFromFeed($feed) { // We only do canonical RSS2 profile feeds (specified by ID), e.g.: // http://www.example.com/api/statuses/user_timeline/2.rss - $path = common_path('api/statuses/user_timeline/'); $valid = '%^' . $path . '(?<id>.*)\.rss$%'; @@ -293,7 +279,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean success result */ - function saveSubscription($feed) { $user = $this->userFromFeed($feed); @@ -334,7 +319,6 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean success result */ - function showResult($success, $msg) { $this->startXML(); @@ -343,6 +327,4 @@ class RSSCloudRequestNotifyAction extends Action 'msg' => $msg)); $this->endXML(); } - } - diff --git a/plugins/RSSCloud/RSSCloudSubscription.php b/plugins/RSSCloud/RSSCloudSubscription.php index 396c604e71..595af88446 100644 --- a/plugins/RSSCloud/RSSCloudSubscription.php +++ b/plugins/RSSCloud/RSSCloudSubscription.php @@ -75,5 +75,4 @@ class RSSCloudSubscription extends Memcached_DataObject { return false; } - } diff --git a/plugins/RSSCloud/locale/RSSCloud.pot b/plugins/RSSCloud/locale/RSSCloud.pot index 4078cc749d..637f35bf16 100644 --- a/plugins/RSSCloud/locale/RSSCloud.pot +++ b/plugins/RSSCloud/locale/RSSCloud.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,9 +16,52 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: RSSCloudPlugin.php:260 +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "" + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "" + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "" + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "" + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "" + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "" + +#: RSSCloudPlugin.php:248 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" -"\">RSSCloud protocol</a>\"." +"\">RSSCloud protocol</a>." msgstr "" diff --git a/plugins/RSSCloud/locale/fr/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/fr/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..621efb7a4c --- /dev/null +++ b/plugins/RSSCloud/locale/fr/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,85 @@ +# Translation of StatusNet - RSSCloud to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "La requête HTTP au nuage RSS doit être de type POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "" +"Seules les notifications HTTP-POST sont prises en charge en ce moment sur le " +"nuage RSS." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "" +"Les paramètres suivants étaient absents du corps de la requête au nuage " +"RSS : %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"Vous devez fournir au moins une adresse URL de flux de profil valide (url1, " +"url2, url3 ... urlN)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "L’abonnement au flux a échoué : ce n’est pas un flux RSS valide." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"L’abonnement au flux RSS a échoué : le gestionnaire de notifications ne " +"répond pas correctement." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Merci pour l’abonnement. Vous serez informé lors des mises à jour de ce(s) " +"flux." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Cette ressource nécessite une requête HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Cette ressource nécessite une requête HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"L’extension RSSCloud permet à votre instance StatusNet de publier des mises " +"à jour en temps réel sur des flux RSS en utilisant le protocole <a href=" +"\"http://rsscloud.org/\">RSSCloud</a>." diff --git a/plugins/RSSCloud/locale/ia/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/ia/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..8c389e03fc --- /dev/null +++ b/plugins/RSSCloud/locale/ia/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - RSSCloud to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Requesta debe esser POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "Solmente le notificationes http-post es presentemente supportate." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "Le sequente parametros mancava del corpore del requesta: %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"Tu debe fornir al minus un URL de syndication de profilo valide (url1, url2, " +"url3 ... urlN)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "Le subscription al syndication ha fallite: Non un syndication valide." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"Le subscription al syndication ha fallite - le gestor de notification non " +"responde correctemente." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Gratias pro le subscription. Quando le syndication(es) se actualisa, tu " +"recipera notification." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Iste ressource require un HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Iste ressource require un HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"Le plug-in RSSCloud permitte que tu installation de SatusNet publica " +"actualisationes in directo de syndicationes RSS de profilos usante le <a " +"href=\"http://rsscloud.org/\">protocollo RSSCloud</a>." diff --git a/plugins/RSSCloud/locale/mk/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/mk/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..25355f70ad --- /dev/null +++ b/plugins/RSSCloud/locale/mk/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - RSSCloud to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Барањето мора да биде POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "Моментално се поддржани само известувања од типот http-post." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "Следниве параметри недостасуваа од содржината на барањето: %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"Мора да наведете барем едеа важечка URL-адреса за профилен канал (url1, " +"url2, url3 ... urlN)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "Претплаќањето на каналот не успеа: Не е важечки канал." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"Претплаќањето на каналот не успеа - ракувачот со известувања не одговара " +"правилно." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Ви благодариме шт осе претплативте. Ќе бидете известени за сите подновувања " +"на каналот/ите." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Овој ресурс бара HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Овој ресурс бара HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"Приклучокот RSSCloud овозможува Вашиот примерок на StatusNet да објавува " +"поднови во живо за профилни RSS-емитувања користејќи го протоколот <a href=" +"\"http://rsscloud.org/\">RSSCloud</a>." diff --git a/plugins/RSSCloud/locale/nb/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/nb/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..f40a89985b --- /dev/null +++ b/plugins/RSSCloud/locale/nb/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,72 @@ +# Translation of StatusNet - RSSCloud to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Forespørsel må være POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "" + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "" + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "" + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Denne ressursen krever en HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Denne ressursen krever en HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" diff --git a/plugins/RSSCloud/locale/nl/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/nl/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..e98c3e0acf --- /dev/null +++ b/plugins/RSSCloud/locale/nl/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - RSSCloud to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Het verzoek moet POST zijn." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "Op dit moment worden alle mededelingen via HTTP POST ondersteund." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "De volgende parameters missen in de verzoekinhoud: %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"U moet tenminste een geldige URL voor een profielfeed opgeven ( url1, url2, " +"url3, ..., urlN)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "Abonneren op de feed is mislukt: geen geldige feed." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"Abonneren op de feed is mislukt: het verwerkingsproces heeft niet juist " +"geantwoord." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Dank u wel voor het abonneren. Als de feed of feeds bijgewerkt worden, wordt " +"u op de hoogte gesteld." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Deze bron heeft een HTTP GET nodig." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Deze bron heeft een HTTP POST nodig." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"De plug-in RSSCloud laat StatusNet real-time updates publiceren voor de RSS-" +"feeds van profielen met het protocol <a href=\"http://rsscloud.org/" +"\">RSSCloud</a>." diff --git a/plugins/RSSCloud/locale/tl/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/tl/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..e6536a5d64 --- /dev/null +++ b/plugins/RSSCloud/locale/tl/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,82 @@ +# Translation of StatusNet - RSSCloud to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Ang hiling ay dapat na POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "Tanging mga pabatid na http-post lang ang tinatangkilik sa ngayon." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "Nawawala ang sumusunod na mga parametro mula sa katawan ng hiling: %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"Dapat kang magbigay ng kahit na isang url ng pakain ng tanggap na talaksan " +"(url1, url2, url3 ... urlN)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "Nabigo ang pagtanggap ng pakain: Hindi isang tanggap na pakain." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"Nabigo ang pagtanggap ng pakain - hindi tama ang pagtugon ng tagapaghawak ng " +"pabatid." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Salamat sa pagtatanggap. Kapag nagsapanahon ang (mga) pakain, pababatiran " +"ka." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Ang pinagkunang ito ay nangangailangan ng HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Ang pinagkukunang ito ay nangangailangan ng HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"Ang pamasak ng RSSCloud ay nagpapahintulot sa iyong pagkakataon ng StatusNet " +"na maglathala ng mga pagsasapanahong pangtunay na oras para sa mga balangkas " +"ng mga pakain ng RSS na gumagamit ng <a href=\"http://rsscloud.org/" +"\">protokolo ng RSSCloud</a>." diff --git a/plugins/RSSCloud/locale/uk/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/uk/LC_MESSAGES/RSSCloud.po new file mode 100644 index 0000000000..898f6d3f77 --- /dev/null +++ b/plugins/RSSCloud/locale/uk/LC_MESSAGES/RSSCloud.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - RSSCloud to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RSSCloud\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:52+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-rsscloud\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RSSCloudRequestNotify.php:90 +msgid "Request must be POST." +msgstr "Запит вимагає форми POST." + +#: RSSCloudRequestNotify.php:107 +msgid "Only http-post notifications are supported at this time." +msgstr "На даний момент підтримуються лише сповіщення форми http-post." + +#. TRANS: %s is a comma separated list of parameters. +#: RSSCloudRequestNotify.php:118 +#, php-format +msgid "The following parameters were missing from the request body: %s." +msgstr "У формі запиту відсутні наступні параметри: %s." + +#: RSSCloudRequestNotify.php:124 +msgid "" +"You must provide at least one valid profile feed url (url1, url2, url3 ... " +"urlN)." +msgstr "" +"Ви повинні зазначити щонайменше один дійсний профіль для URL-адреси веб-" +"стрічки (URL-адреси через кому та пробіл)." + +#: RSSCloudRequestNotify.php:141 +msgid "Feed subscription failed: Not a valid feed." +msgstr "Підписатися до веб-стрічки не вдалося: ця веб-стрічка не є дійсною." + +#: RSSCloudRequestNotify.php:147 +msgid "" +"Feed subscription failed - notification handler doesn't respond correctly." +msgstr "" +"Підписатися до веб-стрічки не вдалося: обробник сповіщень відреагував " +"неправильно." + +#: RSSCloudRequestNotify.php:161 +msgid "" +"Thanks for the subscription. When the feed(s) update(s), you will be " +"notified." +msgstr "" +"Дякуємо за підписку. Коли веб-стрічки оновляться, вас буде поінформовано." + +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "Цей ресурс вимагає форми HTTP GET." + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "Цей ресурс вимагає форми HTTP POST." + +#: RSSCloudPlugin.php:248 +msgid "" +"The RSSCloud plugin enables your StatusNet instance to publish real-time " +"updates for profile RSS feeds using the <a href=\"http://rsscloud.org/" +"\">RSSCloud protocol</a>." +msgstr "" +"Додаток RSSCloud дозволяє вашому StatusNet-сумісному сайту публікувати " +"оновлення з веб-стрічок у реальному часі, використовуючи протокол <a href=" +"\"http://rsscloud.org/\">RSSCloud</a>." diff --git a/plugins/Realtime/README b/plugins/Realtime/README index 99c79cfab5..9b36d87f37 100644 --- a/plugins/Realtime/README +++ b/plugins/Realtime/README @@ -5,6 +5,6 @@ * Pause ~ retain up to 50-100 most recent notices * Add geo data * Make it work for Conversation page (perhaps a little tricky) -* IE is updating the counter in document title all the time (Not sure if this is still an issue) +* IE is updating the counter in document title all the time (Not sure if this + is still an issue) * Reconsider the timestamp approach - diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index 352afcf785..113187e1e3 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -43,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class RealtimePlugin extends Plugin { protected $replyurl = null; @@ -323,7 +322,33 @@ class RealtimePlugin extends Plugin function _getScripts() { - return array('plugins/Realtime/realtimeupdate.js'); + return array('plugins/Realtime/realtimeupdate.min.js'); + } + + /** + * Export any i18n messages that need to be loaded at runtime... + * + * @param Action $action + * @param array $messages + * + * @return boolean hook return value + */ + function onEndScriptMessages($action, &$messages) + { + // TRANS: Text label for realtime view "play" button, usually replaced by an icon. + $messages['realtime_play'] = _m('BUTTON', 'Play'); + // TRANS: Tooltip for realtime view "play" button. + $messages['realtime_play_tooltip'] = _m('TOOLTIP', 'Play'); + // TRANS: Text label for realtime view "pause" button + $messages['realtime_pause'] = _m('BUTTON', 'Pause'); + // TRANS: Tooltip for realtime view "pause" button + $messages['realtime_pause_tooltip'] = _m('TOOLTIP', 'Pause'); + // TRANS: Text label for realtime view "popup" button, usually replaced by an icon. + $messages['realtime_popup'] = _m('BUTTON', 'Pop up'); + // TRANS: Tooltip for realtime view "popup" button. + $messages['realtime_popup_tooltip'] = _m('TOOLTIP', 'Pop up in a window'); + + return true; } function _updateInitialize($timeline, $user_id) diff --git a/plugins/Realtime/locale/Realtime.pot b/plugins/Realtime/locale/Realtime.pot new file mode 100644 index 0000000000..755f2f3556 --- /dev/null +++ b/plugins/Realtime/locale/Realtime.pot @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "" diff --git a/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..ecec7872da --- /dev/null +++ b/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Afrikaans (Afrikaans) +# Expored from translatewiki.net +# +# Author: Naudefj +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Afrikaans <http://translatewiki.net/wiki/Portal:af>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: af\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Speel" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Speel" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Wag" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Wag" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Pop-up" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "Wys in 'n venstertjie" diff --git a/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..61ccd8f1a8 --- /dev/null +++ b/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Lenn" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Lenn" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Ehan" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Ehan" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "" diff --git a/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..8af47e749a --- /dev/null +++ b/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Jouer" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Jouer" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Pause" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Pause" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Nouvelle fenêtre" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "Afficher dans une nouvelle fenêtre" diff --git a/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..977e63e1b8 --- /dev/null +++ b/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Reproducer" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Reproducer" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Pausar" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Pausar" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Fenestra" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "Aperir le reproductor in un nove fenestra" diff --git a/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..72d9ee54e2 --- /dev/null +++ b/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:48+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Пушти" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Пушти" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Паузирај" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Паузирај" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Прозорче" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "Прикажи во прозорче" diff --git a/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..e9ceda9ce9 --- /dev/null +++ b/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Nepali (नेपाली) +# Expored from translatewiki.net +# +# Author: Bhawani Gautam Rhk +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Nepali <http://translatewiki.net/wiki/Portal:ne>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ne\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "बजाउ" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "बजाउ" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "बिसाउ" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "बिसाउ" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "चम्काउ" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "चम्क विन्डोमा" diff --git a/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..4f07eeffe2 --- /dev/null +++ b/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Afspelen" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Afspelen" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Pauzeren" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Pauzeren" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Pop-up" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "In nieuw venstertje weergeven" diff --git a/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..acfe42813a --- /dev/null +++ b/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po @@ -0,0 +1,58 @@ +# Translation of StatusNet - Realtime to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Oynat" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Oynat" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Duraklat" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Duraklat" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "" diff --git a/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po new file mode 100644 index 0000000000..92b6342d16 --- /dev/null +++ b/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po @@ -0,0 +1,59 @@ +# Translation of StatusNet - Realtime to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Realtime\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-realtime\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Text label for realtime view "play" button, usually replaced by an icon. +#: RealtimePlugin.php:339 +msgctxt "BUTTON" +msgid "Play" +msgstr "Оновлювати" + +#. TRANS: Tooltip for realtime view "play" button. +#: RealtimePlugin.php:341 +msgctxt "TOOLTIP" +msgid "Play" +msgstr "Оновлювати" + +#. TRANS: Text label for realtime view "pause" button +#: RealtimePlugin.php:343 +msgctxt "BUTTON" +msgid "Pause" +msgstr "Пауза" + +#. TRANS: Tooltip for realtime view "pause" button +#: RealtimePlugin.php:345 +msgctxt "TOOLTIP" +msgid "Pause" +msgstr "Пауза" + +#. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. +#: RealtimePlugin.php:347 +msgctxt "BUTTON" +msgid "Pop up" +msgstr "Окреме вікно" + +#. TRANS: Tooltip for realtime view "popup" button. +#: RealtimePlugin.php:349 +msgctxt "TOOLTIP" +msgid "Pop up in a window" +msgstr "Стрічка окремим вікном" diff --git a/plugins/Realtime/realtimeupdate.css b/plugins/Realtime/realtimeupdate.css index f43c97de52..b277b30a14 100644 --- a/plugins/Realtime/realtimeupdate.css +++ b/plugins/Realtime/realtimeupdate.css @@ -35,7 +35,6 @@ width:70%; margin-left:1%; } - #notices_primary { position:relative; } @@ -75,4 +74,3 @@ line-height:1.2; #showstream #notices_primary { margin-top: 18px; } - diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 25dc12d584..21938ee1d2 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -26,8 +26,22 @@ * @link http://status.net/ */ -// TODO: i18n - +/** + * This is the UI portion of the Realtime plugin base class, handling + * queueing up and displaying of notices that have been received through + * other code in one of the subclassed plugin implementations such as + * Meteor or Orbited. + * + * Notices are passed in as JSON objects formatted per the Twitter-compatible + * API. + * + * @todo Currently we duplicate a lot of formatting and layout code from + * the PHP side of StatusNet, which makes it very difficult to maintain + * this package. Internationalization as well as newer features such + * as location data, customized source links for OStatus profiles, + * and image thumbnails are not yet supported in Realtime yet because + * they have not been implemented here. + */ RealtimeUpdate = { _userid: 0, _replyurl: '', @@ -41,6 +55,25 @@ RealtimeUpdate = { _paused:false, _queuedNotices:[], + /** + * Initialize the Realtime plugin UI on a page with a timeline view. + * + * This function is called from a JS fragment inserted by the PHP side + * of the Realtime plugin, and provides us with base information + * needed to build a near-replica of StatusNet's NoticeListItem output. + * + * Once the UI is initialized, a plugin subclass will need to actually + * feed data into the RealtimeUpdate object! + * + * @param {int} userid: local profile ID of the currently logged-in user + * @param {String} replyurl: URL for newnotice action, used when generating reply buttons + * @param {String} favorurl: URL for favor action, used when generating fave buttons + * @param {String} repeaturl: URL for repeat action, used when generating repeat buttons + * @param {String} deleteurl: URL template for deletenotice action, used when generating delete buttons. + * This URL contains a stub value of 0000000000 which will be replaced with the notice ID. + * + * @access public + */ init: function(userid, replyurl, favorurl, repeaturl, deleteurl) { RealtimeUpdate._userid = userid; @@ -51,23 +84,51 @@ RealtimeUpdate = { RealtimeUpdate._documenttitle = document.title; - $(window).bind('focus', function(){ RealtimeUpdate._windowhasfocus = true; }); + $(window).bind('focus', function() { + RealtimeUpdate._windowhasfocus = true; + + // Clear the counter on the window title when we focus in. + RealtimeUpdate._updatecounter = 0; + RealtimeUpdate.removeWindowCounter(); + }); $(window).bind('blur', function() { $('#notices_primary .notice').removeClass('mark-top'); $('#notices_primary .notice:first').addClass('mark-top'); - RealtimeUpdate._updatecounter = 0; - document.title = RealtimeUpdate._documenttitle; + // While we're in the background, received messages will increment + // a counter that we put on the window title. This will cause some + // browsers to also flash or mark the tab or window title bar until + // you seek attention (eg Firefox 4 pinned app tabs). RealtimeUpdate._windowhasfocus = false; return false; }); }, + /** + * Accept a notice in a Twitter-API JSON style and either show it + * or queue it up, depending on whether the realtime display is + * active. + * + * The meat of a Realtime plugin subclass is to provide a substrate + * transport to receive data and shove it into this function. :) + * + * Note that the JSON data is extended from the standard API return + * with additional fields added by RealtimePlugin's PHP code. + * + * @param {Object} data: extended JSON API-formatted notice + * + * @access public + */ receive: function(data) { + if (RealtimeUpdate.isNoticeVisible(data.id)) { + // Probably posted by the user in this window, and so already + // shown by the AJAX form handler. Ignore it. + return; + } if (RealtimeUpdate._paused === false) { RealtimeUpdate.purgeLastNoticeItem(); @@ -82,9 +143,23 @@ RealtimeUpdate = { RealtimeUpdate.updateWindowCounter(); }, + /** + * Add a visible representation of the given notice at the top of + * the current timeline. + * + * If the notice is already in the timeline, nothing will be added. + * + * @param {Object} data: extended JSON API-formatted notice + * + * @fixme while core UI JS code is used to activate the AJAX UI controls, + * the actual production of HTML (in makeNoticeItem and its subs) + * duplicates core code without plugin hook points or i18n support. + * + * @access private + */ insertNoticeItem: function(data) { // Don't add it if it already exists - if ($("#notice-"+data.id).length > 0) { + if (RealtimeUpdate.isNoticeVisible(data.id)) { return; } @@ -99,12 +174,41 @@ RealtimeUpdate = { SN.U.NoticeWithAttachment($('#'+noticeItemID)); }, + /** + * Check if the given notice is visible in the timeline currently. + * Used to avoid duplicate processing of notices that have been + * displayed by other means. + * + * @param {number} id: notice ID to check + * + * @return boolean + * + * @access private + */ + isNoticeVisible: function(id) { + return ($("#notice-"+id).length > 0); + }, + + /** + * Trims a notice off the end of the timeline if we have more than the + * maximum number of notices visible. + * + * @access private + */ purgeLastNoticeItem: function() { if ($('#notices_primary .notice').length > RealtimeUpdate._maxnotices) { $("#notices_primary .notice:last").remove(); } }, + /** + * If the window/tab is in background, increment the counter of newly + * received notices and append it onto the window title. + * + * Has no effect if the window is in foreground. + * + * @access private + */ updateWindowCounter: function() { if (RealtimeUpdate._windowhasfocus === false) { RealtimeUpdate._updatecounter += 1; @@ -112,6 +216,30 @@ RealtimeUpdate = { } }, + /** + * Clear the background update counter from the window title. + * + * @access private + * + * @fixme could interfere with anything else trying similar tricks + */ + removeWindowCounter: function() { + document.title = RealtimeUpdate._documenttitle; + }, + + /** + * Builds a notice HTML block from JSON API-style data. + * + * @param {Object} data: extended JSON API-formatted notice + * @return {String} HTML fragment + * + * @fixme this replicates core StatusNet code, making maintenance harder + * @fixme sloppy HTML building (raw concat without escaping) + * @fixme no i18n support + * @fixme local variables pollute global namespace + * + * @access private + */ makeNoticeItem: function(data) { if (data.hasOwnProperty('retweeted_status')) { @@ -182,6 +310,19 @@ RealtimeUpdate = { return ni; }, + /** + * Creates a favorite button. + * + * @param {number} id: notice ID to work with + * @param {String} session_key: session token for form CSRF protection + * @return {String} HTML fragment + * + * @fixme this replicates core StatusNet code, making maintenance harder + * @fixme sloppy HTML building (raw concat without escaping) + * @fixme no i18n support + * + * @access private + */ makeFavoriteForm: function(id, session_key) { var ff; @@ -197,6 +338,19 @@ RealtimeUpdate = { return ff; }, + /** + * Creates a reply button. + * + * @param {number} id: notice ID to work with + * @param {String} nickname: nick of the user to whom we are replying + * @return {String} HTML fragment + * + * @fixme this replicates core StatusNet code, making maintenance harder + * @fixme sloppy HTML building (raw concat without escaping) + * @fixme no i18n support + * + * @access private + */ makeReplyLink: function(id, nickname) { var rl; @@ -204,6 +358,19 @@ RealtimeUpdate = { return rl; }, + /** + * Creates a repeat button. + * + * @param {number} id: notice ID to work with + * @param {String} session_key: session token for form CSRF protection + * @return {String} HTML fragment + * + * @fixme this replicates core StatusNet code, making maintenance harder + * @fixme sloppy HTML building (raw concat without escaping) + * @fixme no i18n support + * + * @access private + */ makeRepeatForm: function(id, session_key) { var rf; @@ -219,6 +386,18 @@ RealtimeUpdate = { return rf; }, + /** + * Creates a delete button. + * + * @param {number} id: notice ID to create a delete link for + * @return {String} HTML fragment + * + * @fixme this replicates core StatusNet code, making maintenance harder + * @fixme sloppy HTML building (raw concat without escaping) + * @fixme no i18n support + * + * @access private + */ makeDeleteLink: function(id) { var dl, delurl; @@ -229,6 +408,19 @@ RealtimeUpdate = { return dl; }, + /** + * Adds a control widget at the top of the timeline view, containing + * pause/play and popup buttons. + * + * @param {String} url: full URL to the popup window variant of this timeline page + * @param {String} timeline: string key for the timeline (eg 'public' or 'evan-all') + * @param {String} path: URL to the base directory containing the Realtime plugin, + * used to fetch resources if needed. + * + * @todo timeline and path parameters are unused and probably should be removed. + * + * @access private + */ initActions: function(url, timeline, path) { $('#notices_primary').prepend('<ul id="realtime_actions"><li id="realtime_playpause"></li><li id="realtime_timeline"></li></ul>'); @@ -239,6 +431,14 @@ RealtimeUpdate = { RealtimeUpdate.initAddPopup(url, timeline, RealtimeUpdate._pluginPath); }, + /** + * Initialize the state of the play/pause controls. + * + * If the browser supports the localStorage interface, we'll attempt + * to retrieve a pause state from there; otherwise we default to paused. + * + * @access private + */ initPlayPause: function() { if (typeof(localStorage) == 'undefined') { @@ -254,6 +454,15 @@ RealtimeUpdate = { } }, + /** + * Switch the realtime UI into paused state. + * Uses SN.msg i18n system for the button label and tooltip. + * + * State will be saved and re-used next time if the browser supports + * the localStorage interface (via setPause). + * + * @access private + */ showPause: function() { RealtimeUpdate.setPause(false); @@ -261,27 +470,49 @@ RealtimeUpdate = { RealtimeUpdate.addNoticesHover(); $('#realtime_playpause').remove(); - $('#realtime_actions').prepend('<li id="realtime_playpause"><button id="realtime_pause" class="pause" title="Pause">Pause</button></li>'); - - $('#realtime_pause').bind('click', function() { + $('#realtime_actions').prepend('<li id="realtime_playpause"><button id="realtime_pause" class="pause"></button></li>'); + $('#realtime_pause').text(SN.msg('realtime_pause')) + .attr('title', SN.msg('realtime_pause_tooltip')) + .bind('click', function() { RealtimeUpdate.removeNoticesHover(); RealtimeUpdate.showPlay(); return false; }); }, + /** + * Switch the realtime UI into play state. + * Uses SN.msg i18n system for the button label and tooltip. + * + * State will be saved and re-used next time if the browser supports + * the localStorage interface (via setPause). + * + * @access private + */ showPlay: function() { RealtimeUpdate.setPause(true); $('#realtime_playpause').remove(); - $('#realtime_actions').prepend('<li id="realtime_playpause"><span id="queued_counter"></span> <button id="realtime_play" class="play" title="Play">Play</button></li>'); - - $('#realtime_play').bind('click', function() { + $('#realtime_actions').prepend('<li id="realtime_playpause"><span id="queued_counter"></span> <button id="realtime_play" class="play"></button></li>'); + $('#realtime_play').text(SN.msg('realtime_play')) + .attr('title', SN.msg('realtime_play_tooltip')) + .bind('click', function() { RealtimeUpdate.showPause(); return false; }); }, + /** + * Update the internal pause/play state. + * Do not call directly; use showPause() and showPlay(). + * + * State will be saved and re-used next time if the browser supports + * the localStorage interface. + * + * @param {boolean} state: true = paused, false = not paused + * + * @access private + */ setPause: function(state) { RealtimeUpdate._paused = state; @@ -290,6 +521,14 @@ RealtimeUpdate = { } }, + /** + * Go through notices we have previously received while paused, + * dumping them into the timeline view. + * + * @fixme long timelines are not trimmed here as they are for things received while not paused + * + * @access private + */ showQueuedNotices: function() { $.each(RealtimeUpdate._queuedNotices, function(i, n) { @@ -301,16 +540,35 @@ RealtimeUpdate = { RealtimeUpdate.removeQueuedCounter(); }, + /** + * Update the Realtime widget control's counter of queued notices to show + * the current count. This will be called after receiving and queueing + * a notice while paused. + * + * @access private + */ updateQueuedCounter: function() { $('#realtime_playpause #queued_counter').html('('+RealtimeUpdate._queuedNotices.length+')'); }, + /** + * Clear the Realtime widget control's counter of queued notices. + * + * @access private + */ removeQueuedCounter: function() { $('#realtime_playpause #queued_counter').empty(); }, + /** + * Set up event handlers on the timeline view to automatically pause + * when the mouse is over the timeline, as this indicates the user's + * desire to interact with the UI. (Which is hard to do when it's moving!) + * + * @access private + */ addNoticesHover: function() { $('#notices_primary .notices').hover( @@ -327,17 +585,45 @@ RealtimeUpdate = { ); }, + /** + * Tear down event handlers on the timeline view to automatically pause + * when the mouse is over the timeline. + * + * @fixme this appears to remove *ALL* event handlers from the timeline, + * which assumes that nobody else is adding any event handlers. + * Sloppy -- we should only remove the ones we add. + * + * @access private + */ removeNoticesHover: function() { $('#notices_primary .notices').unbind(); }, + /** + * UI initialization, to be called from Realtime plugin code on regular + * timeline pages. + * + * Adds a button to the control widget at the top of the timeline view, + * allowing creation of a popup window with a more compact real-time + * view of the current timeline. + * + * @param {String} url: full URL to the popup window variant of this timeline page + * @param {String} timeline: string key for the timeline (eg 'public' or 'evan-all') + * @param {String} path: URL to the base directory containing the Realtime plugin, + * used to fetch resources if needed. + * + * @todo timeline and path parameters are unused and probably should be removed. + * + * @access public + */ initAddPopup: function(url, timeline, path) { - $('#realtime_timeline').append('<button id="realtime_popup" title="Pop up in a window">Pop up</button>'); - - $('#realtime_popup').bind('click', function() { - window.open(url, + $('#realtime_timeline').append('<button id="realtime_popup"></button>'); + $('#realtime_popup').text(SN.msg('realtime_popup')) + .attr('title', SN.msg('realtime_popup_tooltip')) + .bind('click', function() { + window.open(url, '', 'toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550'); @@ -345,6 +631,17 @@ RealtimeUpdate = { }); }, + /** + * UI initialization, to be called from Realtime plugin code on popup + * compact timeline pages. + * + * Sets up links in notices to open in a new window. + * + * @fixme fails to do the same for UI links like context view which will + * look bad in the tiny chromeless window. + * + * @access public + */ initPopupWindow: function() { $('.notices .entry-title a, .notices .entry-content a').bind('click', function() { diff --git a/plugins/Realtime/realtimeupdate.min.js b/plugins/Realtime/realtimeupdate.min.js new file mode 100644 index 0000000000..60a4b446e8 --- /dev/null +++ b/plugins/Realtime/realtimeupdate.min.js @@ -0,0 +1 @@ +RealtimeUpdate={_userid:0,_replyurl:"",_favorurl:"",_repeaturl:"",_deleteurl:"",_updatecounter:0,_maxnotices:50,_windowhasfocus:true,_documenttitle:"",_paused:false,_queuedNotices:[],init:function(c,b,d,e,a){RealtimeUpdate._userid=c;RealtimeUpdate._replyurl=b;RealtimeUpdate._favorurl=d;RealtimeUpdate._repeaturl=e;RealtimeUpdate._deleteurl=a;RealtimeUpdate._documenttitle=document.title;$(window).bind("focus",function(){RealtimeUpdate._windowhasfocus=true;RealtimeUpdate._updatecounter=0;RealtimeUpdate.removeWindowCounter()});$(window).bind("blur",function(){$("#notices_primary .notice").removeClass("mark-top");$("#notices_primary .notice:first").addClass("mark-top");RealtimeUpdate._windowhasfocus=false;return false})},receive:function(a){if(RealtimeUpdate.isNoticeVisible(a.id)){return}if(RealtimeUpdate._paused===false){RealtimeUpdate.purgeLastNoticeItem();RealtimeUpdate.insertNoticeItem(a)}else{RealtimeUpdate._queuedNotices.push(a);RealtimeUpdate.updateQueuedCounter()}RealtimeUpdate.updateWindowCounter()},insertNoticeItem:function(a){if(RealtimeUpdate.isNoticeVisible(a.id)){return}var b=RealtimeUpdate.makeNoticeItem(a);var c=$(b).attr("id");$("#notices_primary .notices").prepend(b);$("#notices_primary .notice:first").css({display:"none"});$("#notices_primary .notice:first").fadeIn(1000);SN.U.NoticeReplyTo($("#"+c));SN.U.NoticeWithAttachment($("#"+c))},isNoticeVisible:function(a){return($("#notice-"+a).length>0)},purgeLastNoticeItem:function(){if($("#notices_primary .notice").length>RealtimeUpdate._maxnotices){$("#notices_primary .notice:last").remove()}},updateWindowCounter:function(){if(RealtimeUpdate._windowhasfocus===false){RealtimeUpdate._updatecounter+=1;document.title="("+RealtimeUpdate._updatecounter+") "+RealtimeUpdate._documenttitle}},removeWindowCounter:function(){document.title=RealtimeUpdate._documenttitle},makeNoticeItem:function(c){if(c.hasOwnProperty("retweeted_status")){original=c.retweeted_status;repeat=c;c=original;unique=repeat.id;responsible=repeat.user}else{original=null;repeat=null;unique=c.id;responsible=c.user}user=c.user;html=c.html.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&");source=c.source.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&");ni='<li class="hentry notice" id="notice-'+unique+'"><div class="entry-title"><span class="vcard author"><a href="'+user.profile_url+'" class="url" title="'+user.name+'"><img src="'+user.profile_image_url+'" class="avatar photo" width="48" height="48" alt="'+user.screen_name+'"/><span class="nickname fn">'+user.screen_name+'</span></a></span><p class="entry-content">'+html+'</p></div><div class="entry-content"><a class="timestamp" rel="bookmark" href="'+c.url+'" ><abbr class="published" title="'+c.created_at+'">a few seconds ago</abbr></a> <span class="source">from <span class="device">'+source+"</span></span>";if(c.conversation_url){ni=ni+' <a class="response" href="'+c.conversation_url+'">in context</a>'}if(repeat){ru=repeat.user;ni=ni+'<span class="repeat vcard">Repeated by <a href="'+ru.profile_url+'" class="url"><span class="nickname">'+ru.screen_name+"</span></a></span>"}ni=ni+"</div>";ni=ni+'<div class="notice-options">';if(RealtimeUpdate._userid!=0){var a=$("form#form_notice fieldset input#token");var b=a.val();ni=ni+RealtimeUpdate.makeFavoriteForm(c.id,b);ni=ni+RealtimeUpdate.makeReplyLink(c.id,c.user["screen_name"]);if(RealtimeUpdate._userid==responsible.id){ni=ni+RealtimeUpdate.makeDeleteLink(c.id)}else{if(RealtimeUpdate._userid!=user.id){ni=ni+RealtimeUpdate.makeRepeatForm(c.id,b)}}}ni=ni+"</div>";ni=ni+"</li>";return ni},makeFavoriteForm:function(c,b){var a;a='<form id="favor-'+c+'" class="form_favor" method="post" action="'+RealtimeUpdate._favorurl+'"><fieldset><legend>Favor this notice</legend><input name="token-'+c+'" type="hidden" id="token-'+c+'" value="'+b+'"/><input name="notice" type="hidden" id="notice-n'+c+'" value="'+c+'"/><input type="submit" id="favor-submit-'+c+'" name="favor-submit-'+c+'" class="submit" value="Favor" title="Favor this notice"/></fieldset></form>';return a},makeReplyLink:function(c,a){var b;b='<a class="notice_reply" href="'+RealtimeUpdate._replyurl+"?replyto="+a+'" title="Reply to this notice">Reply <span class="notice_id">'+c+"</span></a>";return b},makeRepeatForm:function(c,b){var a;a='<form id="repeat-'+c+'" class="form_repeat" method="post" action="'+RealtimeUpdate._repeaturl+'"><fieldset><legend>Repeat this notice?</legend><input name="token-'+c+'" type="hidden" id="token-'+c+'" value="'+b+'"/><input name="notice" type="hidden" id="notice-'+c+'" value="'+c+'"/><input type="submit" id="repeat-submit-'+c+'" name="repeat-submit-'+c+'" class="submit" value="Yes" title="Repeat this notice"/></fieldset></form>';return a},makeDeleteLink:function(c){var b,a;a=RealtimeUpdate._deleteurl.replace("0000000000",c);b='<a class="notice_delete" href="'+a+'" title="Delete this notice">Delete</a>';return b},initActions:function(a,b,c){$("#notices_primary").prepend('<ul id="realtime_actions"><li id="realtime_playpause"></li><li id="realtime_timeline"></li></ul>');RealtimeUpdate._pluginPath=c;RealtimeUpdate.initPlayPause();RealtimeUpdate.initAddPopup(a,b,RealtimeUpdate._pluginPath)},initPlayPause:function(){if(typeof(localStorage)=="undefined"){RealtimeUpdate.showPause()}else{if(localStorage.getItem("RealtimeUpdate_paused")==="true"){RealtimeUpdate.showPlay()}else{RealtimeUpdate.showPause()}}},showPause:function(){RealtimeUpdate.setPause(false);RealtimeUpdate.showQueuedNotices();RealtimeUpdate.addNoticesHover();$("#realtime_playpause").remove();$("#realtime_actions").prepend('<li id="realtime_playpause"><button id="realtime_pause" class="pause"></button></li>');$("#realtime_pause").text(SN.msg("realtime_pause")).attr("title",SN.msg("realtime_pause_tooltip")).bind("click",function(){RealtimeUpdate.removeNoticesHover();RealtimeUpdate.showPlay();return false})},showPlay:function(){RealtimeUpdate.setPause(true);$("#realtime_playpause").remove();$("#realtime_actions").prepend('<li id="realtime_playpause"><span id="queued_counter"></span> <button id="realtime_play" class="play"></button></li>');$("#realtime_play").text(SN.msg("realtime_play")).attr("title",SN.msg("realtime_play_tooltip")).bind("click",function(){RealtimeUpdate.showPause();return false})},setPause:function(a){RealtimeUpdate._paused=a;if(typeof(localStorage)!="undefined"){localStorage.setItem("RealtimeUpdate_paused",RealtimeUpdate._paused)}},showQueuedNotices:function(){$.each(RealtimeUpdate._queuedNotices,function(a,b){RealtimeUpdate.insertNoticeItem(b)});RealtimeUpdate._queuedNotices=[];RealtimeUpdate.removeQueuedCounter()},updateQueuedCounter:function(){$("#realtime_playpause #queued_counter").html("("+RealtimeUpdate._queuedNotices.length+")")},removeQueuedCounter:function(){$("#realtime_playpause #queued_counter").empty()},addNoticesHover:function(){$("#notices_primary .notices").hover(function(){if(RealtimeUpdate._paused===false){RealtimeUpdate.showPlay()}},function(){if(RealtimeUpdate._paused===true){RealtimeUpdate.showPause()}})},removeNoticesHover:function(){$("#notices_primary .notices").unbind()},initAddPopup:function(a,b,c){$("#realtime_timeline").append('<button id="realtime_popup"></button>');$("#realtime_popup").text(SN.msg("realtime_popup")).attr("title",SN.msg("realtime_popup_tooltip")).bind("click",function(){window.open(a,"","toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550");return false})},initPopupWindow:function(){$(".notices .entry-title a, .notices .entry-content a").bind("click",function(){window.open(this.href,"");return false});$("#showstream .entity_profile").css({width:"69%"})}}; \ No newline at end of file diff --git a/plugins/Recaptcha/RecaptchaPlugin.php b/plugins/Recaptcha/RecaptchaPlugin.php index b7a0e92c7f..5a33e7132e 100644 --- a/plugins/Recaptcha/RecaptchaPlugin.php +++ b/plugins/Recaptcha/RecaptchaPlugin.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Plugin to show reCaptcha when a user registers + * Plugin to show reCaptcha when a user registers * * PHP version 5 * @@ -51,26 +51,17 @@ class RecaptchaPlugin extends Plugin } } - function checkssl() - { - if(common_config('site', 'ssl') === 'sometimes' || common_config('site', 'ssl') === 'always') { - return true; - } - return false; - } - - function onEndRegistrationFormData($action) { $action->elementStart('li'); - $action->raw('<label for="recaptcha">Captcha</label>'); + $action->raw('<label for="recaptcha">'._m('Captcha').'</label>'); // AJAX API will fill this div out. // We're calling that instead of the regular one so we stay compatible // with application/xml+xhtml output as for mobile. $action->element('div', array('id' => 'recaptcha')); $action->elementEnd('li'); - + $action->recaptchaPluginNeedsOutput = true; return true; } @@ -79,13 +70,13 @@ class RecaptchaPlugin extends Plugin { if (isset($action->recaptchaPluginNeedsOutput) && $action->recaptchaPluginNeedsOutput) { // Load the AJAX API - if ($this->checkssl()) { + if (StatusNet::isHTTPS()) { $url = "https://api-secure.recaptcha.net/js/recaptcha_ajax.js"; } else { $url = "http://api.recaptcha.net/js/recaptcha_ajax.js"; } $action->script($url); - + // And when we're ready, fill out the captcha! $key = json_encode($this->public_key); $action->inlinescript("\$(function(){Recaptcha.create($key, 'recaptcha');});"); @@ -102,7 +93,7 @@ class RecaptchaPlugin extends Plugin if (!$resp->is_valid) { if($this->display_errors) { - $action->showForm ("(reCAPTCHA error: " . $resp->error . ")"); + $action->showForm(sprintf(_("(reCAPTCHA error: %s)", $resp->error))); } $action->showForm(_m("Captcha does not match!")); return false; @@ -120,4 +111,4 @@ class RecaptchaPlugin extends Plugin 'captcha to the registration page.')); return true; } -} \ No newline at end of file +} diff --git a/plugins/Recaptcha/locale/Recaptcha.pot b/plugins/Recaptcha/locale/Recaptcha.pot index 6611ff604a..9494f54996 100644 --- a/plugins/Recaptcha/locale/Recaptcha.pot +++ b/plugins/Recaptcha/locale/Recaptcha.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,7 +16,15 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: RecaptchaPlugin.php:97 +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "" + +#: RecaptchaPlugin.php:117 msgid "" "Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..e176dcb6c2 --- /dev/null +++ b/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - Recaptcha to German (Deutsch) +# Expored from translatewiki.net +# +# Author: Apmon +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Captcha stimmt nicht mit Text überein!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Verwendet <a href=\"http://recaptcha.org/\">Recaptcha</a> um ein CAPTCHA zur " +"Registrierung hinzuzufügen." diff --git a/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..2e3aacc7dd --- /dev/null +++ b/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - Recaptcha to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Vérificateur anti-robot Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Le Captcha ne correspond pas !" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Utilise le service <a href=\"http://recaptcha.org/\">Recaptcha</a> pour " +"ajouter un captcha à la page d’enregistrement." diff --git a/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..2a3c95dde3 --- /dev/null +++ b/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Captcha non corresponde!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Usa le servicio <a href=\"http://recaptcha.org/\">Recaptcha</a> pro adder " +"un captcha al pagina de registration." diff --git a/plugins/Recaptcha/locale/ja/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/ja/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..096c935a45 --- /dev/null +++ b/plugins/Recaptcha/locale/ja/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"登録ページにキャプチャとして<a href=\"http://recaptcha.org/\">Recaptcha</a>" +"サービスを利用する。" diff --git a/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..d5f4601bc9 --- /dev/null +++ b/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Captcha не се совпаѓа!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Ја користи слкубата <a href=\"http://recaptcha.org/\">Recaptcha</a> за " +"додавање на captcha во страницата за регистрација." diff --git a/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..942a57d6ea --- /dev/null +++ b/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Captcha stemmer ikke." + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Bruker <a href=\"http://recaptcha.org/\">Recaptcha</a>-tjenesten for å legge " +"en captcha til registreringssiden." diff --git a/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..60548b537a --- /dev/null +++ b/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Captcha komt niet overeen!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Gebruikt de dienst <a href=\"http://recaptcha.org/\">Recaptcha</a> om een " +"captcha toe te voegen aan de registratiepagina." diff --git a/plugins/Recaptcha/locale/pl/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/pl/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..7aad4cff03 --- /dev/null +++ b/plugins/Recaptcha/locale/pl/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,37 @@ +# Translation of StatusNet - Recaptcha to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" diff --git a/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..1f259b1cab --- /dev/null +++ b/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Imagem de verificação" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "A imagem de verificação não corresponde!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Usa o serviço <a href=\"http://recaptcha.org/\">Recaptcha</a> para adicionar " +"uma imagem de verificação à página de registo." diff --git a/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..8fcd9bac00 --- /dev/null +++ b/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - Recaptcha to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:49+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Капча" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Код проверки не совпадает!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Добавляет на страницу регистрации каптчу с использованием <a href=\"http://" +"recaptcha.org/\">Recaptcha</a>." diff --git a/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..d8490c1331 --- /dev/null +++ b/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - Recaptcha to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Hindi tugma ang Captcha!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Gumagamit ng palingkurang <a href=\"http://recaptcha.org/\">Recaptcha</a> " +"upang magdagdag ng isang captcha sa pahina ng pagpapatala." diff --git a/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po new file mode 100644 index 0000000000..4c7cfda688 --- /dev/null +++ b/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - Recaptcha to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Recaptcha\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-recaptcha\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RecaptchaPlugin.php:64 +msgid "Captcha" +msgstr "Captcha" + +#: RecaptchaPlugin.php:105 +msgid "Captcha does not match!" +msgstr "Коди перевірки не збігаються!" + +#: RecaptchaPlugin.php:117 +msgid "" +"Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a " +"captcha to the registration page." +msgstr "" +"Використання <a href=\"http://recaptcha.org/\">Recaptcha</a> у якості " +"інструменту для перевірки на «людяність» на сторінці реєстрації." diff --git a/plugins/RegisterThrottle/RegisterThrottlePlugin.php b/plugins/RegisterThrottle/RegisterThrottlePlugin.php index 05709b7807..0078d3c600 100644 --- a/plugins/RegisterThrottle/RegisterThrottlePlugin.php +++ b/plugins/RegisterThrottle/RegisterThrottlePlugin.php @@ -57,6 +57,19 @@ class RegisterThrottlePlugin extends Plugin 86400 => 5, // per day 3600 => 3); // per hour + /** + * Disallow registration if a silenced user has registered from + * this IP address. + */ + + public $silenced = true; + + /** + * Whether we're enabled; prevents recursion. + */ + + static private $enabled = true; + /** * Database schema setup * @@ -113,7 +126,6 @@ class RegisterThrottlePlugin extends Plugin * @return boolean hook value * */ - function onStartRegistrationTry($action) { $ipaddress = $this->_getIpAddress(); @@ -134,7 +146,19 @@ class RegisterThrottlePlugin extends Plugin $now = time(); $this->debug("Comparing {$regtime} to {$now}"); if ($now - $regtime < $seconds) { - throw new Exception(_("Too many registrations. Take a break and try again later.")); + throw new Exception(_m("Too many registrations. Take a break and try again later.")); + } + } + } + + // Check for silenced users + + if ($this->silenced) { + $ids = Registration_ip::usersByIP($ipaddress); + foreach ($ids as $id) { + $profile = Profile::staticGet('id', $id); + if ($profile && $profile->isSilenced()) { + throw new Exception(_m("A banned user has registered from this address.")); } } } @@ -197,7 +221,7 @@ class RegisterThrottlePlugin extends Plugin 'author' => 'Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:RegisterThrottle', 'description' => - _m('Throttles excessive registration from a single IP.')); + _m('Throttles excessive registration from a single IP address.')); return true; } @@ -246,4 +270,59 @@ class RegisterThrottlePlugin extends Plugin return null; } } + + /** + * When silencing a user, silence all other users registered from that IP + * address. + * + * @param Profile $profile Person getting a new role + * @param string $role Role being assigned like 'moderator' or 'silenced' + * + * @return boolean hook value + */ + + function onEndGrantRole($profile, $role) + { + if (!self::$enabled) { + return true; + } + + if ($role != Profile_role::SILENCED) { + return true; + } + + if (!$this->silenced) { + return true; + } + + $ri = Registration_ip::staticGet('user_id', $profile->id); + + if (empty($ri)) { + return true; + } + + $ids = Registration_ip::usersByIP($ri->ipaddress); + + foreach ($ids as $id) { + + if ($id == $profile->id) { + continue; + } + + $other = Profile::staticGet('id', $id); + + if (empty($other)) { + continue; + } + + if ($other->isSilenced()) { + continue; + } + + $old = self::$enabled; + self::$enabled = false; + $other->silence(); + self::$enabled = $old; + } + } } diff --git a/plugins/RegisterThrottle/Registration_ip.php b/plugins/RegisterThrottle/Registration_ip.php index 7e61d089e7..2486e36b46 100644 --- a/plugins/RegisterThrottle/Registration_ip.php +++ b/plugins/RegisterThrottle/Registration_ip.php @@ -42,7 +42,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class Registration_ip extends Memcached_DataObject { public $__table = 'registration_ip'; // table name @@ -59,7 +58,6 @@ class Registration_ip extends Memcached_DataObject * @return User_greeting_count object found, or null for no hits * */ - function staticGet($k, $v=null) { return Memcached_DataObject::staticGet('Registration_ip', $k, $v); @@ -70,7 +68,6 @@ class Registration_ip extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -86,7 +83,6 @@ class Registration_ip extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array('user_id' => 'K'); @@ -100,7 +96,6 @@ class Registration_ip extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return $this->keys(); @@ -121,4 +116,28 @@ class Registration_ip extends Memcached_DataObject { return array(false, false, false); } + + /** + * Get the users who've registered with this ip address. + * + * @param Array $ipaddress IP address to check for + * + * @return Array IDs of users who registered with this address. + */ + + static function usersByIP($ipaddress) + { + $ids = array(); + + $ri = new Registration_ip(); + $ri->ipaddress = $ipaddress; + + if ($ri->find()) { + while ($ri->fetch()) { + $ids[] = $ri->user_id; + } + } + + return $ids; + } } diff --git a/plugins/RegisterThrottle/locale/RegisterThrottle.pot b/plugins/RegisterThrottle/locale/RegisterThrottle.pot index 834f5fd4ad..3cb4394b1e 100644 --- a/plugins/RegisterThrottle/locale/RegisterThrottle.pot +++ b/plugins/RegisterThrottle/locale/RegisterThrottle.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,14 +16,22 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: RegisterThrottlePlugin.php:122 RegisterThrottlePlugin.php:161 +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 msgid "Cannot find IP address." msgstr "" -#: RegisterThrottlePlugin.php:167 +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "" + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "" + +#: RegisterThrottlePlugin.php:191 msgid "Cannot find user after successful registration." msgstr "" -#: RegisterThrottlePlugin.php:200 -msgid "Throttles excessive registration from a single IP." +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." msgstr "" diff --git a/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..75a4e57cf5 --- /dev/null +++ b/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - RegisterThrottle to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Kann IP-Addresse nicht finden." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "" +"Zu viele Registrierungen. Mach eine Pause and versuche es später noch einmal." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Ein gesperrter Benutzer hat sich von dieser Adresse registriert." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Kann Benutzer nach erfolgreicher Registrierung nicht finden." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Drosselt exzessive Registrierungen einer einzelnen IP-Adresse." diff --git a/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..b6992d1c35 --- /dev/null +++ b/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,45 @@ +# Translation of StatusNet - RegisterThrottle to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Impossible de trouver l’adresse IP." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "" +"Inscriptions trop nombreuses. Faites une pause et essayez à nouveau plus " +"tard." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Un utilisateur banni s’est inscrit depuis cette adresse." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Impossible de trouver l’utilisateur après un enregistrement réussi." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Évite les inscriptions excessives depuis une même adresse IP." diff --git a/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..2ca1bbf8ef --- /dev/null +++ b/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - RegisterThrottle to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Non pote trovar adresse IP." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "Troppo de registrationes. Face un pausa e reproba plus tarde." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Un usator bannite se ha registrate ab iste adresse." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Non pote trovar usator post registration succedite." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Inhibi le creation de contos excessive ab un sol adresse IP." diff --git a/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..25f2400af2 --- /dev/null +++ b/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,42 @@ +# Translation of StatusNet - RegisterThrottle to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Не можам да ја пронајдам IP-адресата." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "Премногу регистрации. Направете пауза и обидете се подоцна." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Од оваа адреса се регистрирал забранет корисник." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Не можам да го пронајдам корисникот по успешната регистрација." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Истиснува прекумерни регистрации од една IP-адреса." diff --git a/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..8a6c3d10d8 --- /dev/null +++ b/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - RegisterThrottle to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Het IP-adres kon niet gevonden worden." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "Te veel registraties. Wacht even en probeer het later opnieuw." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Er is een geblokkeerde gebruiker die vanaf dit adres is geregistreerd." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Het was niet mogelijk de gebruiker te vinden na registratie." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Beperkt excessieve aantallen registraties vanaf één IP-adres." diff --git a/plugins/RegisterThrottle/locale/ru/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/ru/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..63c4e518c6 --- /dev/null +++ b/plugins/RegisterThrottle/locale/ru/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,43 @@ +# Translation of StatusNet - RegisterThrottle to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "IP-адрес не найден." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "" + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "" + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "" + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "" diff --git a/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..24128e8ba4 --- /dev/null +++ b/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,44 @@ +# Translation of StatusNet - RegisterThrottle to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Hindi matagpuan ang tirahan ng IP." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "Napakaraming mga pagpapatala. Magpahinga muna at subukan uli mamaya." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "" + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Hindi matagpuan ang tagagamit pagkatapos ng matagumpay na pagpapatala." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "" +"Naglilipat-lipat ng labis na pagpapatala mula sa isang nag-iisang tirahan ng " +"IP." diff --git a/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po new file mode 100644 index 0000000000..2abe652fe1 --- /dev/null +++ b/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po @@ -0,0 +1,44 @@ +# Translation of StatusNet - RegisterThrottle to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# Author: Тест +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RegisterThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:50+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:52+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-registerthrottle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RegisterThrottlePlugin.php:134 RegisterThrottlePlugin.php:185 +msgid "Cannot find IP address." +msgstr "Не вдається знайти IP-адресу." + +#: RegisterThrottlePlugin.php:149 +msgid "Too many registrations. Take a break and try again later." +msgstr "Забагато реєстрацій. Випийте поки що кави і повертайтесь пізніше." + +#: RegisterThrottlePlugin.php:161 +msgid "A banned user has registered from this address." +msgstr "Заблокований користувач був зареєстрований з цієї адреси." + +#: RegisterThrottlePlugin.php:191 +msgid "Cannot find user after successful registration." +msgstr "Не вдається знайти користувача після успішної реєстрації." + +#: RegisterThrottlePlugin.php:224 +msgid "Throttles excessive registration from a single IP address." +msgstr "Цей додаток обмежує кількість реєстрацій з певної IP-адреси." diff --git a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php index af75b96e0b..6c0ef37d51 100644 --- a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php +++ b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php @@ -2,7 +2,8 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Plugin that requires the user to have a validated email address before they can post notices + * Plugin that requires the user to have a validated email address before they + * can post notices * * PHP version 5 * @@ -32,44 +33,64 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +/** + * Plugin for requiring a validated email before posting. + * + * Enable this plugin using addPlugin('RequireValidatedEmail'); + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @author Brion Vibber <brion@status.net> + * @author Evan Prodromou <evan@status.net> + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @copyright 2009-2010 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 RequireValidatedEmailPlugin extends Plugin { - // Users created before this time will be grandfathered in - // without the validation requirement. - public $grandfatherCutoff=null; + /** + * Users created before this time will be grandfathered in + * without the validation requirement. + */ - // If OpenID plugin is installed, users with a verified OpenID - // association whose provider URL matches one of these regexes - // will be considered to be sufficiently valid for our needs. - // - // For example, to trust WikiHow and Wikipedia OpenID users: - // - // addPlugin('RequireValidatedEmailPlugin', array( - // 'trustedOpenIDs' => array( - // '!^http://\w+\.wikihow\.com/!', - // '!^http://\w+\.wikipedia\.org/!', - // ), - // )); - public $trustedOpenIDs=array(); + public $grandfatherCutoff = null; - function __construct() - { - parent::__construct(); - } + /** + * If OpenID plugin is installed, users with a verified OpenID + * association whose provider URL matches one of these regexes + * will be considered to be sufficiently valid for our needs. + * + * For example, to trust WikiHow and Wikipedia OpenID users: + * + * addPlugin('RequireValidatedEmailPlugin', array( + * 'trustedOpenIDs' => array( + * '!^http://\w+\.wikihow\.com/!', + * '!^http://\w+\.wikipedia\.org/!', + * ), + * )); + */ + + public $trustedOpenIDs = array(); /** * Event handler for notice saves; rejects the notice * if user's address isn't validated. * - * @param Notice $notice + * @param Notice $notice The notice being saved + * * @return bool hook result code */ + function onStartNoticeSave($notice) { $user = User::staticGet('id', $notice->profile_id); if (!empty($user)) { // it's a remote notice if (!$this->validated($user)) { - throw new ClientException(_m("You must validate your email address before posting.")); + $msg = _m("You must validate your email address before posting."); + throw new ClientException($msg); } } return true; @@ -79,7 +100,8 @@ class RequireValidatedEmailPlugin extends Plugin * Event handler for registration attempts; rejects the registration * if email field is missing. * - * @param RegisterAction $action + * @param Action $action Action being executed + * * @return bool hook result code */ function onStartRegistrationTry($action) @@ -100,7 +122,8 @@ class RequireValidatedEmailPlugin extends Plugin * Check if a user has a validated email address or has been * otherwise grandfathered in. * - * @param User $user + * @param User $user User to valide + * * @return bool */ protected function validated($user) @@ -108,12 +131,16 @@ class RequireValidatedEmailPlugin extends Plugin // The email field is only stored after validation... // Until then you'll find them in confirm_address. $knownGood = !empty($user->email) || - $this->grandfathered($user) || - $this->hasTrustedOpenID($user); + $this->grandfathered($user) || + $this->hasTrustedOpenID($user); // Give other plugins a chance to override, if they can validate // that somebody's ok despite a non-validated email. - Event::handle('RequireValidatedEmailPlugin_Override', array($user, &$knownGood)); + + // FIXME: This isn't how to do it! Use Start*/End* instead + + Event::handle('RequireValidatedEmailPlugin_Override', + array($user, &$knownGood)); return $knownGood; } @@ -122,14 +149,15 @@ class RequireValidatedEmailPlugin extends Plugin * Check if a user was created before the grandfathering cutoff. * If so, we won't need to check for validation. * - * @param User $user - * @return bool + * @param User $user User to check + * + * @return bool true if user is grandfathered */ protected function grandfathered($user) { if ($this->grandfatherCutoff) { $created = strtotime($user->created . " GMT"); - $cutoff = strtotime($this->grandfatherCutoff); + $cutoff = strtotime($this->grandfatherCutoff); if ($created < $cutoff) { return true; } @@ -141,13 +169,20 @@ class RequireValidatedEmailPlugin extends Plugin * Override for RequireValidatedEmail plugin. If we have a user who's * not validated an e-mail, but did come from a trusted provider, * we'll consider them ok. + * + * @param User $user User to check + * + * @return bool true if user has a trusted OpenID. */ + function hasTrustedOpenID($user) { if ($this->trustedOpenIDs && class_exists('User_openid')) { foreach ($this->trustedOpenIDs as $regex) { $oid = new User_openid(); + $oid->user_id = $user->id; + $oid->find(); while ($oid->fetch()) { if (preg_match($regex, $oid->canonical)) { @@ -159,15 +194,45 @@ class RequireValidatedEmailPlugin extends Plugin return false; } + /** + * Add version information for this plugin. + * + * @param array &$versions Array of associative arrays of version data + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) { - $versions[] = array('name' => 'Require Validated Email', - 'version' => STATUSNET_VERSION, - 'author' => 'Craig Andrews, Evan Prodromou, Brion Vibber', - 'homepage' => 'http://status.net/wiki/Plugin:RequireValidatedEmail', - 'rawdescription' => - _m('The Require Validated Email plugin disables posting for accounts that do not have a validated email address.')); + $versions[] = + array('name' => 'Require Validated Email', + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews, '. + 'Evan Prodromou, '. + 'Brion Vibber', + 'homepage' => + 'http://status.net/wiki/Plugin:RequireValidatedEmail', + 'rawdescription' => + _m('Disables posting without a validated email address.')); + return true; + } + + /** + * Hide the notice form if the user isn't able to post. + * + * @param Action $action action being shown + * + * @return boolean hook value + */ + + function onStartShowNoticeForm($action) + { + $user = common_current_user(); + if (!empty($user)) { // it's a remote notice + if (!$this->validated($user)) { + return false; + } + } return true; } } - diff --git a/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot index c8953a1fa3..54f14322b2 100644 --- a/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot +++ b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,16 +16,14 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: RequireValidatedEmailPlugin.php:57 +#: RequireValidatedEmailPlugin.php:92 msgid "You must validate your email address before posting." msgstr "" -#: RequireValidatedEmailPlugin.php:75 +#: RequireValidatedEmailPlugin.php:112 msgid "You must provide an email address to register." msgstr "" -#: RequireValidatedEmailPlugin.php:128 -msgid "" -"The Require Validated Email plugin disables posting for accounts that do not " -"have a validated email address." +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." msgstr "" diff --git a/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..8c7717224f --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - RequireValidatedEmail to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "Du musst deine E-Mail-Adresse validieren, bevor du beitragen kannst." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "Du musst eine E-Mail-Adresse angeben, um dich zu registrieren." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "Deaktiviert Posten ohne gültige E-Mail-Adresse." diff --git a/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..5ae5ddba34 --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - RequireValidatedEmail to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "Vous devez valider votre adresse électronique avant de poster." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "Vous devez fournir une adresse électronique avant de vous enregistrer." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "" +"Désactive le postage pour ceux qui n’ont pas d’adresse électronique valide." diff --git a/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..5a9b6e2370 --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - RequireValidatedEmail to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "Tu debe validar tu adresse de e-mail ante de publicar." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "Tu debe fornir un adresse de e-mail pro poter crear un conto." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "Disactiva le publication de messages sin adresse de e-mail validate." diff --git a/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..23a621e504 --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - RequireValidatedEmail to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "" +"Пред да почнете да објавувате ќе мора да ја потврдите Вашата е-поштенска " +"адреса." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "За да се регистрирате, ќе мора да наведете е-поштенска адреса." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "Оневозможува објавување без потврдена е-пошта." diff --git a/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..3d2a0a8a1c --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - RequireValidatedEmail to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "U moet uw e-mailadres bevestigen voordat u berichten kunt plaatsen." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "U moet een e-mailadres opgeven om te kunnen registreren." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "Schakelt berichten plaatsen zonder gevalideerd e-mailadres uit." diff --git a/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..307ab477df --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - RequireValidatedEmail to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "Kailangan patunayan mo ang iyong tirahan ng e-liham bago magpaskil." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "Dapat kang magbigay ng isang tirahan ng e-liham upang makapagpatala." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "" diff --git a/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po new file mode 100644 index 0000000000..e169b5c3ef --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po @@ -0,0 +1,39 @@ +# Translation of StatusNet - RequireValidatedEmail to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - RequireValidatedEmail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:44:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: RequireValidatedEmailPlugin.php:92 +msgid "You must validate your email address before posting." +msgstr "" +"Ви повинні підтвердити свою адресу електронної пошти до того, як почнете " +"надсилати дописи поштою." + +#: RequireValidatedEmailPlugin.php:112 +msgid "You must provide an email address to register." +msgstr "Ви повинні зазначити свою адресу електронної пошти для реєстрації." + +#: RequireValidatedEmailPlugin.php:216 +msgid "Disables posting without a validated email address." +msgstr "" +"Забороняє надсилання дописів, якщо користувач не має підтвердженої " +"електронної адреси." diff --git a/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot b/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot index 6fa18c464c..e7910f367c 100644 --- a/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot +++ b/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..6fa649a7cb --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"L’extension Reverse Username Authentication permet à StatusNet de gérer " +"l’identification en vérifiant si le mot de passe fourni est identique à " +"l’inverse du nom d’utilisateur." diff --git a/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..ffd96f3b76 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"התוסף לאימות הפוך באמצעות שם משתמש מאפשר ל־StatusNet לטפל באימות על ידי " +"בדיקה האם הססמה שסופקה היא זהה להיפוך של שם המשתמש." diff --git a/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..632e54e456 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Le plug-in \"Reverse Username Authentication\" permitte que StatusNet manea " +"le authentication per verificar si le contrasigno fornite es identic al " +"inverso del nomine de usator." diff --git a/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..30f06eec86 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Pengaya Reverse Username Authentication memungkinkan StatusNet untuk " +"menangani otentikasi dengan mengecek bila sandi yang diberikan sama seperti " +"nama pengguna jika dibaca terbalik." diff --git a/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..68eab95e90 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"反転ユーザー名認証プラグインは、StatusNetに、パスワードをユーザー名を反転させ" +"たものと同じものを利用しているかどうか確認させ、認証を処理させることができま" +"す。" diff --git a/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..f792c87bf0 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Приклучокот за Потврда на обратно корисничко име му овозможува на StatusNet " +"да работи со потврди проверувајќи дали наведената лозинка е иста што и " +"обратното од корисничкото име." diff --git a/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..b469abf7f7 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Utvidelsen Reverse Username Authentication gjør det mulig for StatusNet å " +"håndtere autentisering ved å sjekke om det oppgitte passordet er det samme " +"som brukernavnet baklengs." diff --git a/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..db5dbed349 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"De plug-in Reverse Username Authentication laat StatusNet authenticeren door " +"te controleren of het opgegeven wachtwoord het omgekeerde van de " +"gebruikersnaam is." diff --git a/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..ce95f05f9e --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Плагин аутентификации по обратному имени пользователя позволяет StatusNet " +"проводить проверку указанного пароля на соответствие обратному написанию " +"имени пользователя." diff --git a/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..c0413eb770 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Ang pamasak na Pabaligtad na Pagpapatunay ng Pangalan ng Tagagamit ay " +"nagpapahintulot sa StatusNet na panghawakan ang pagpapatunay sa pamamagitan " +"ng pagsusuri kung ang ibinigay na hudyat ay katulad ng kabaligtara ng " +"pangalan ng tagagamit." diff --git a/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po new file mode 100644 index 0000000000..7eb5d47b41 --- /dev/null +++ b/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - ReverseUsernameAuthentication to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:51+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:00+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: ReverseUsernameAuthenticationPlugin.php:67 +msgid "" +"The Reverse Username Authentication plugin allows for StatusNet to handle " +"authentication by checking if the provided password is the same as the " +"reverse of the username." +msgstr "" +"Додаток Reverse Username Authentication дозволяє сайту StatusNet перевіряти " +"запити автентифікації на предмет того, чи не збігається зазначений пароль із " +"ім’ям користувача, якби його було написано у зворотньому напрямку." diff --git a/plugins/SQLProfile/SQLProfilePlugin.php b/plugins/SQLProfile/SQLProfilePlugin.php new file mode 100644 index 0000000000..1e49d9005e --- /dev/null +++ b/plugins/SQLProfile/SQLProfilePlugin.php @@ -0,0 +1,66 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Check DB queries for filesorts and such and log em. + * + * @package SQLProfilePlugin + * @maintainer Brion Vibber <brion@status.net> + */ +class SQLProfilePlugin extends Plugin +{ + private $recursionGuard = false; + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'SQLProfile', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:SQLProfile', + 'rawdescription' => + _m('Debug tool to watch for poorly indexed DB queries')); + + return true; + } + + function onStartDBQuery($obj, $query, &$result) + { + if (!$this->recursionGuard && preg_match('/\bselect\b/i', $query)) { + $this->recursionGuard = true; + $xobj = clone($obj); + $explain = $xobj->query('EXPLAIN ' . $query); + $this->recursionGuard = false; + + while ($xobj->fetch()) { + $extra = $xobj->Extra; + $evil = (strpos($extra, 'Using filesort') !== false) || + (strpos($extra, 'Using temporary') !== false); + if ($evil) { + $xquery = $xobj->sanitizeQuery($query); + common_log(LOG_DEBUG, "$extra | $xquery"); + } + } + } + return true; + } +} diff --git a/plugins/Sample/SamplePlugin.php b/plugins/Sample/SamplePlugin.php index 913741226b..a0d1140f37 100644 --- a/plugins/Sample/SamplePlugin.php +++ b/plugins/Sample/SamplePlugin.php @@ -101,7 +101,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class SamplePlugin extends Plugin { /** @@ -129,7 +128,6 @@ class SamplePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function initialize() { return true; @@ -143,7 +141,6 @@ class SamplePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function cleanup() { return true; @@ -168,7 +165,6 @@ class SamplePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onCheckSchema() { $schema = Schema::get(); @@ -176,9 +172,20 @@ class SamplePlugin extends Plugin // 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'))); + array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true), + 'greeting_count' => array('type' => 'int'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + // Not all databases will support foreign keys, but even + // when not enforced it's helpful to include these definitions + // as documentation. + 'user_greeting_count_user_id_fkey' => array('user', array('user_id' => 'id')), + ), + ) + ); return true; } @@ -201,7 +208,6 @@ class SamplePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onAutoload($cls) { $dir = dirname(__FILE__); @@ -231,7 +237,6 @@ class SamplePlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onRouterInitialized($m) { $m->connect('main/hello', @@ -256,7 +261,6 @@ class SamplePlugin extends Plugin * * @see Action */ - function onEndPrimaryNav($action) { // common_local_url() gets the correct URL for the action name @@ -278,4 +282,3 @@ class SamplePlugin extends Plugin return true; } } - diff --git a/plugins/Sample/User_greeting_count.php b/plugins/Sample/User_greeting_count.php index fc0cbd28ff..38d68c91ed 100644 --- a/plugins/Sample/User_greeting_count.php +++ b/plugins/Sample/User_greeting_count.php @@ -70,7 +70,6 @@ class User_greeting_count extends Memcached_DataObject * @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); @@ -84,7 +83,6 @@ class User_greeting_count extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -100,7 +98,6 @@ class User_greeting_count extends Memcached_DataObject * * @return array list of key field names */ - function keys() { return array_keys($this->keyTypes()); @@ -118,7 +115,6 @@ class User_greeting_count extends Memcached_DataObject * 'K' for primary key: for compound keys, add an entry for each component; * 'U' for unique keys: compound keys are not well supported here. */ - function keyTypes() { return array('user_id' => 'K'); @@ -134,7 +130,6 @@ class User_greeting_count extends Memcached_DataObject * * @return array magic three-false array that stops auto-incrementing. */ - function sequenceKey() { return array(false, false, false); @@ -150,7 +145,6 @@ class User_greeting_count extends Memcached_DataObject * * @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); @@ -165,12 +159,12 @@ class User_greeting_count extends Memcached_DataObject $result = $gc->insert(); if (!$result) { - throw Exception(sprintf(_m("Could not save new greeting count for %d"), + // TRANS: Exception thrown when the user greeting count could not be saved in the database. + // TRANS: %d is a user ID (number). + throw Exception(sprintf(_m("Could not save new greeting count for %d."), $user_id)); } - } else { - $orig = clone($gc); $gc->greeting_count++; @@ -178,7 +172,9 @@ class User_greeting_count extends Memcached_DataObject $result = $gc->update($orig); if (!$result) { - throw Exception(sprintf(_m("Could not increment greeting count for %d"), + // TRANS: Exception thrown when the user greeting count could not be saved in the database. + // TRANS: %d is a user ID (number). + throw Exception(sprintf(_m("Could not increment greeting count for %d."), $user_id)); } } diff --git a/plugins/Sample/hello.php b/plugins/Sample/hello.php index dfbd0ad4f2..a793ac6de2 100644 --- a/plugins/Sample/hello.php +++ b/plugins/Sample/hello.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class HelloAction extends Action { var $user = null; @@ -67,7 +66,6 @@ class HelloAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -93,7 +91,6 @@ class HelloAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -108,13 +105,12 @@ class HelloAction extends Action * * @return string Title of the page */ - function title() { if (empty($this->user)) { return _m('Hello'); } else { - return sprintf(_m('Hello, %s'), $this->user->nickname); + return sprintf(_m('Hello, %s!'), $this->user->nickname); } } @@ -130,7 +126,6 @@ class HelloAction extends Action * * @return void */ - function showContent() { if (empty($this->user)) { @@ -162,7 +157,6 @@ class HelloAction extends Action * * @return boolean is read only action? */ - function isReadOnly($args) { return false; diff --git a/plugins/Sample/locale/Sample.pot b/plugins/Sample/locale/Sample.pot index bd21dd3c4c..752c6be903 100644 --- a/plugins/Sample/locale/Sample.pot +++ b/plugins/Sample/locale/Sample.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,38 +17,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: User_greeting_count.php:163 +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 #, php-format -msgid "Could not save new greeting count for %d" +msgid "Could not save new greeting count for %d." msgstr "" -#: User_greeting_count.php:176 +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 #, php-format -msgid "Could not increment greeting count for %d" +msgid "Could not increment greeting count for %d." msgstr "" -#: SamplePlugin.php:266 hello.php:115 +#: SamplePlugin.php:259 hello.php:111 msgid "Hello" msgstr "" -#: SamplePlugin.php:266 +#: SamplePlugin.php:259 msgid "A warm greeting" msgstr "" -#: SamplePlugin.php:277 +#: SamplePlugin.php:270 msgid "A sample plugin to show basics of development for new hackers." msgstr "" -#: hello.php:117 hello.php:141 +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "" + +#: hello.php:136 #, php-format msgid "Hello, %s" msgstr "" #: hello.php:138 -msgid "Hello, stranger!" -msgstr "" - -#: hello.php:143 #, php-format msgid "I have greeted you %d time." msgid_plural "I have greeted you %d times." diff --git a/plugins/Sample/locale/br/LC_MESSAGES/Sample.po b/plugins/Sample/locale/br/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..c151776a2f --- /dev/null +++ b/plugins/Sample/locale/br/LC_MESSAGES/Sample.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - Sample to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Dibosupl eo enrollañ ar gont degemer nevez evit an implijer %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Dibosupl eo inkremantañ ar gont degemer nevez evit an implijer %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Demat" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Un degemer tomm" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Ur skouer a lugant evit diskouez an diazezoù diorren evit ar c'hoderien " +"nevez." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Demat, %s !" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Demat, estrañjour!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Demat, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "ur" +msgstr[1] "%d" diff --git a/plugins/Sample/locale/de/LC_MESSAGES/Sample.po b/plugins/Sample/locale/de/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..23d0dd2a4a --- /dev/null +++ b/plugins/Sample/locale/de/LC_MESSAGES/Sample.po @@ -0,0 +1,69 @@ +# Translation of StatusNet - Sample to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Konnte neuen Grüßungszähler von %d nicht speichern." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Konnte Grüßungszähler von %d nicht erhöhen." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Hallo" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Ein herzlicher Gruß" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "Ein Beispiel-Plugin, um die Entwicklungsbasis neuen Hackern zu zeigen." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Hallo %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Hallo Fremder!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Hallo %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ich habe dich einmal begrüßt. " +msgstr[1] "Ich habe dich %d-mal begrüßt. " diff --git a/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po b/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..db71535751 --- /dev/null +++ b/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po @@ -0,0 +1,72 @@ +# Translation of StatusNet - Sample to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "" +"Impossible de sauvegarder le nouveau compte de vœux pour l’utilisateur %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Impossible d’incrémenter le compte de vœux pour l’utilisateur %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Bonjour" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Un accueil chaleureux" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Un exemple de greffon pour montrer les bases de développement pour les " +"nouveaux codeurs." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Bonjour, %s !" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Bonjour, étranger !" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Bonjour, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "une" +msgstr[1] "%d" diff --git a/plugins/Sample/locale/gl/LC_MESSAGES/Sample.po b/plugins/Sample/locale/gl/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..4e7b02053d --- /dev/null +++ b/plugins/Sample/locale/gl/LC_MESSAGES/Sample.po @@ -0,0 +1,69 @@ +# Translation of StatusNet - Sample to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "" + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Ola" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Ola, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "" +msgstr[1] "" diff --git a/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po b/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..d5610e981b --- /dev/null +++ b/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - Sample to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Non poteva salveguardar le numero de nove salutationes pro %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Non poteva incrementar le numero de salutationes pro %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Salute" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Un calide salutation" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Un plug-in de exemplo pro demonstrar le principios de disveloppamento pro " +"nove programmatores." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Salute %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Salute estraniero!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Salute %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Io te ha salutate %d vice." +msgstr[1] "Io te ha salutate %d vices." diff --git a/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po b/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..5729117fbb --- /dev/null +++ b/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po @@ -0,0 +1,69 @@ +# Translation of StatusNet - Sample to Luxembourgish (Lëtzebuergesch) +# Expored from translatewiki.net +# +# Author: Robby +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Luxembourgish <http://translatewiki.net/wiki/Portal:lb>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: lb\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "" + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Salut" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "E schéine Bonjour" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Salut %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Salut, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "" +msgstr[1] "" diff --git a/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po b/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..d7f0b0c946 --- /dev/null +++ b/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po @@ -0,0 +1,70 @@ +# Translation of StatusNet - Sample to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Не можев да го зачувам бројот на поздрави за %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Не можев да го дополнам бројот на поздрави за %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Здраво" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Срдечен поздрав" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Приклучок-пример за основите на развојното програмирање за нови хакери." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Здраво, %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Здрво, незнајнику!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Здраво, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ве поздравив еднаш." +msgstr[1] "Ве поздравив %d пати." diff --git a/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po b/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..5aa4ae182b --- /dev/null +++ b/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po @@ -0,0 +1,70 @@ +# Translation of StatusNet - Sample to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Het was niet mogelijk het aantal begroetingen op te slaan voor %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Het was niet mogelijk het aantal begroetingen op te hogen voor %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Hallo" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Een warme begroeting" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Een voorbeeldplug-in als basis voor ontwikkelingen door nieuwe hackers." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Hallo, %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Hallo vreemdeling!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Hallo, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ik heb u voor de eerste keer gegroet." +msgstr[1] "Ik heb u %d keer gegroet." diff --git a/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po b/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..5becd1eee7 --- /dev/null +++ b/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po @@ -0,0 +1,72 @@ +# Translation of StatusNet - Sample to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Не удалось сохранить новое приветствие для %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "" + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Привет" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Здравствуйте, %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Привет, незнакомец!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Здравствуйте,%s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Я вас попривестствовал %d раз." +msgstr[1] "Я вас поприветствовал %d раза." +msgstr[2] "Я вас попривестствовал %d раз." diff --git a/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po b/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..83184c3289 --- /dev/null +++ b/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - Sample to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Hindi masagip ang bagong bilang ng pagbati para sa %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Hindi masudlungan ang bilang ng pagbati para sa %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Kumusta" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Isang mainit-init na pagbati" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Isang halimbawang pampasak upang ipakita ang mga saligan ng kaunlaran para " +"sa bagong mga mangunguha." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Kumusta, %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Kumusta, dayuhan!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Kumusta, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Binati kita ng %d ulit." +msgstr[1] "Binati kita ng %d mga ulit." diff --git a/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po b/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..ba0e49251b --- /dev/null +++ b/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po @@ -0,0 +1,71 @@ +# Translation of StatusNet - Sample to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Не вдалося зберегти новий лічильник привітань для %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Не вдалося перерахувати лічильник привітань для %d." + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "Привіт" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "Щирі вітання" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "Приклад додатку для демонстрації основ розробки новим гакерам." + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "Привіт, %s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "Привіт, чужинцю!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "Привіт, %s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Я привітав вас %d раз." +msgstr[1] "Я привітав вас %d разів." +msgstr[2] "Я привітав вас %d разів." diff --git a/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po b/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po new file mode 100644 index 0000000000..36a32f080f --- /dev/null +++ b/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po @@ -0,0 +1,69 @@ +# Translation of StatusNet - Sample to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sample\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:53+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-sample\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "无法保存%d新的问候计数。" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "无法增加%d的问候计数。" + +#: SamplePlugin.php:259 hello.php:111 +msgid "Hello" +msgstr "你好" + +#: SamplePlugin.php:259 +msgid "A warm greeting" +msgstr "一个热情的问候" + +#: SamplePlugin.php:270 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "一个为新的 hackers 显示基础开发的示例插件。" + +#: hello.php:113 +#, php-format +msgid "Hello, %s!" +msgstr "你好,%s!" + +#: hello.php:133 +msgid "Hello, stranger!" +msgstr "你好,陌生人!" + +#: hello.php:136 +#, php-format +msgid "Hello, %s" +msgstr "你好,%s" + +#: hello.php:138 +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "" diff --git a/plugins/ShareNotice/ShareNoticePlugin.php b/plugins/ShareNotice/ShareNoticePlugin.php new file mode 100644 index 0000000000..8b94f83c8f --- /dev/null +++ b/plugins/ShareNotice/ShareNoticePlugin.php @@ -0,0 +1,223 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package ShareNoticePlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { exit(1); } + +class ShareNoticePlugin extends Plugin +{ + public $targets = array( + array('Twitter'), + array('Facebook'), + array('StatusNet', array('baseurl' => 'http://identi.ca')) + ); + + function onEndShowStatusNetStyles($action) { + $action->cssLink('plugins/ShareNotice/css/sharenotice.css'); + return true; + } + + function onStartShowNoticeItem($item) + { + $notice = $item->notice; + $out = $item->out; + + $out->elementStart('ul', array('class' => 'notice-share')); + foreach ($this->targets as $data) { + $type = $data[0]; + $args = (count($data) > 1) ? $data[1] : array(); + $target = $this->getShareTarget($type, $notice, $args); + $this->showShareTarget($out, $target); + } + $out->elementEnd('ul'); + } + + private function getShareTarget($type, $notice, $args) + { + $class = ucfirst($type) . 'ShareTarget'; + + return new $class($notice, $args); + } + + private function showShareTarget(HTMLOutputter $out, NoticeShareTarget $target) + { + $class = $target->getClass(); + $text = $target->getText(); + $url = $target->targetUrl(); + + $out->elementStart('li', array('class' => 'notice-share-' . $class)); + $out->elementStart('a', array( + 'href' => $url, + 'title' => $text, + 'target' => '_blank' + )); + $out->element('span', array(), $text); + $out->elementEnd('a'); + $out->elementEnd('li'); + } +} + +abstract class NoticeShareTarget +{ + protected $notice; + + public function __construct($notice) + { + $this->notice = $notice; + } + + public abstract function getClass(); + + public abstract function getText(); + + public abstract function targetUrl(); +} + +abstract class GenericNoticeShareTarget extends NoticeShareTarget +{ + protected function maxLength() + { + return 140; // typical + } + + protected function statusText() + { + // TRANS: Leave this message unchanged. + $pattern = _m('"%s"'); + $url = $this->notice->bestUrl(); + $suffix = ' ' . $url; + $room = $this->maxLength() - mb_strlen($suffix) - (mb_strlen($pattern) - mb_strlen('%s')); + + $content = $this->notice->content; + if (mb_strlen($content) > $room) { + $content = mb_substr($content, 0, $room - 1) . '…'; + } + + return sprintf($pattern, $content) . $suffix; + } +} + +class TwitterShareTarget extends GenericNoticeShareTarget +{ + public function getClass() + { + return 'twitter'; + } + + public function getText() + { + // TRANS: Tooltip for image to share a notice on Twitter. + return _m('Share on Twitter'); + } + + public function targetUrl() + { + $args = array( + 'status' => $this->statusText() + ); + return 'http://twitter.com/home?' . + http_build_query($args, null, '&'); + } +} + +class StatusNetShareTarget extends GenericNoticeShareTarget +{ + protected $baseurl; + + public function __construct($notice, $args) + { + parent::__construct($notice); + $this->baseurl = $args['baseurl']; + } + + public function getClass() + { + return 'statusnet'; + } + + public function getText() + { + $host = parse_url($this->baseurl, PHP_URL_HOST); + // TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). + // TRANS: %s is a host name. + return sprintf(_m('Share on %s'), $host); + } + + public function targetUrl() + { + $args = array( + 'status_textarea' => $this->statusText() + ); + return $this->baseurl . '/notice/new?' . + http_build_query($args, null, '&'); + } +} + +class FacebookShareTarget extends NoticeShareTarget +{ + public function getClass() + { + return 'facebook'; + } + + public function getText() + { + // TRANS: Tooltip for image to share a notice on Facebook. + return _m('Share on Facebook'); + } + + public function targetUrl() + { + $args = array( + 'u' => $this->notice->bestUrl(), + // TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. + 't' => sprintf(_m('"%s"'), $this->notice->content), + ); + return 'http://www.facebook.com/sharer.php?' . + http_build_query($args, null, '&'); + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:ShareNotice'; + + $versions[] = array('name' => 'ShareNotice', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('This plugin allows sharing of notices to Twitter, Facebook and other platforms.')); + + return true; + } +} diff --git a/plugins/ShareNotice/css/README b/plugins/ShareNotice/css/README new file mode 100644 index 0000000000..a3f4661973 --- /dev/null +++ b/plugins/ShareNotice/css/README @@ -0,0 +1,9 @@ +icon-sharing.png is from http://www.openshareicons.com/ + +Shareaholic has made the Open Share Icon freely available for use by others under the +Creative Commons Attribution-Share Alike 3.0 Unported License. + + +icon-twitter.png is from http://twitter.com/favicon.ico and distributed under fair use +icon-facebook.png is from http://facebook.com/favicon.ico and distributed under fair use +icon-statusnet.png is from http://status.net/favicon.ico and distributed under fair use diff --git a/plugins/ShareNotice/css/icon-facebook.png b/plugins/ShareNotice/css/icon-facebook.png new file mode 100644 index 0000000000..3105e30696 Binary files /dev/null and b/plugins/ShareNotice/css/icon-facebook.png differ diff --git a/plugins/ShareNotice/css/icon-share.png b/plugins/ShareNotice/css/icon-share.png new file mode 100644 index 0000000000..5be2b46c8a Binary files /dev/null and b/plugins/ShareNotice/css/icon-share.png differ diff --git a/plugins/ShareNotice/css/icon-statusnet.png b/plugins/ShareNotice/css/icon-statusnet.png new file mode 100644 index 0000000000..a7b39090d0 Binary files /dev/null and b/plugins/ShareNotice/css/icon-statusnet.png differ diff --git a/plugins/ShareNotice/css/icon-twitter.png b/plugins/ShareNotice/css/icon-twitter.png new file mode 100644 index 0000000000..f9e778d9a6 Binary files /dev/null and b/plugins/ShareNotice/css/icon-twitter.png differ diff --git a/plugins/ShareNotice/css/sharenotice.css b/plugins/ShareNotice/css/sharenotice.css new file mode 100644 index 0000000000..f4f847e66c --- /dev/null +++ b/plugins/ShareNotice/css/sharenotice.css @@ -0,0 +1,23 @@ +.notice-share { + width: 24px; + float: right; +} + +.notice-share li a { + display: block; + width: 16px; + height: 16px; + background: url(icon-share.png) no-repeat; +} +.notice-share li.notice-share-twitter a { + background-image: url(icon-twitter.png); +} +.notice-share li.notice-share-facebook a { + background-image: url(icon-facebook.png); +} +.notice-share li.notice-share-statusnet a { + background-image: url(icon-statusnet.png); +} +.notice-share li a span { + display: none; +} diff --git a/plugins/ShareNotice/locale/ShareNotice.pot b/plugins/ShareNotice/locale/ShareNotice.pot new file mode 100644 index 0000000000..81a93100a9 --- /dev/null +++ b/plugins/ShareNotice/locale/ShareNotice.pot @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" diff --git a/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..d93572bae7 --- /dev/null +++ b/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - ShareNotice to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Rannañ war Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Rannañ war %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Rannañ war Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" diff --git a/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..a1ba2a5901 --- /dev/null +++ b/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ShareNotice to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "„%s“" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Auf Twitter teilen" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Auf %s teilen" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Auf Facebook teilen" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Dieses Plugin erlaubt das Teilen von Nachrichten auf Twitter, Facebook und " +"anderen Plattformen." diff --git a/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..c0c5cf6010 --- /dev/null +++ b/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ShareNotice to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "« %s »" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Partager sur Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Partager sur %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Partager sur Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Cette extension permet de partager des avis sur Twitter, Facebook et " +"d’autres plate-formes." diff --git a/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..80d08dcd4e --- /dev/null +++ b/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ShareNotice to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Condivider in Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Condivider in %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Condivider in Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Iste plug-in permitte condivider notas in Twitter, Facebook e altere " +"platteformas." diff --git a/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..71aa5bd83b --- /dev/null +++ b/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ShareNotice to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "„%s“" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Сподели на Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Сподели на %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Сподели на Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Приклучокот Ви овозможува да споделувате забелешки на Twitter, Facebook и " +"други подлоги." diff --git a/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..4926ee81f4 --- /dev/null +++ b/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,56 @@ +# Translation of StatusNet - ShareNotice to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: SPQRobin +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Delen op Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Delen op %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Delen op Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Deze plug-in maakt het mogelijk mededelingen te delen op Twitter, Facebook " +"en andere platformen." diff --git a/plugins/ShareNotice/locale/pl/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/pl/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..3e3390171d --- /dev/null +++ b/plugins/ShareNotice/locale/pl/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,54 @@ +# Translation of StatusNet - ShareNotice to Polish (Polski) +# Expored from translatewiki.net +# +# Author: Raven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pl\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " +"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" diff --git a/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..779d511c03 --- /dev/null +++ b/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,53 @@ +# Translation of StatusNet - ShareNotice to Telugu (తెలుగు) +# Expored from translatewiki.net +# +# Author: Veeven +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: te\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" diff --git a/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..8d723e36f9 --- /dev/null +++ b/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,55 @@ +# Translation of StatusNet - ShareNotice to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Ibahagi sa Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Ibahagi sa %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Ibahagi sa Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Ang pampasak na ito ay nagpapahintulot na pagpapamahagi ng mga pabatid sa " +"Twitter, Facebook at ibang mga plataporma." diff --git a/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po new file mode 100644 index 0000000000..35b43b6a54 --- /dev/null +++ b/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po @@ -0,0 +1,56 @@ +# Translation of StatusNet - ShareNotice to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ShareNotice\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-sharenotice\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Leave this message unchanged. +#. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. +#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 +#, php-format +msgid "\"%s\"" +msgstr "«%s»" + +#. TRANS: Tooltip for image to share a notice on Twitter. +#: ShareNoticePlugin.php:130 +msgid "Share on Twitter" +msgstr "Розмістити в Twitter" + +#. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). +#. TRANS: %s is a host name. +#: ShareNoticePlugin.php:163 +#, php-format +msgid "Share on %s" +msgstr "Розмістити в %s" + +#. TRANS: Tooltip for image to share a notice on Facebook. +#: ShareNoticePlugin.php:186 +msgid "Share on Facebook" +msgstr "Розмістити в Facebook" + +#. TRANS: Plugin description. +#: ShareNoticePlugin.php:219 +msgid "" +"This plugin allows sharing of notices to Twitter, Facebook and other " +"platforms." +msgstr "" +"Цей додаток дозволяє ділитися дописами в Twitter, Facebook та інших " +"сервісах, розміщуючи їх там." diff --git a/plugins/SimpleUrl/locale/SimpleUrl.pot b/plugins/SimpleUrl/locale/SimpleUrl.pot index e3c241d538..fdd4fb1c80 100644 --- a/plugins/SimpleUrl/locale/SimpleUrl.pot +++ b/plugins/SimpleUrl/locale/SimpleUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..d8d2819c5d --- /dev/null +++ b/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - SimpleUrl to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Ober a ra gant ar servij krennañ URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..e5e6135a67 --- /dev/null +++ b/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Benutzung des <a href=\"http://%1$s/\">%1$s</a>-URL-Kürzungsdienstes." diff --git a/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..30473ed3d8 --- /dev/null +++ b/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - SimpleUrl to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Usa el servicio de acortamiento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..1be855769b --- /dev/null +++ b/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - SimpleUrl to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utilise le service de raccourcissement d’URL <a href=\"http://%1$s/\">%1$s</" +"a>." diff --git a/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..ce42da3f35 --- /dev/null +++ b/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "שימוש בשירות קיצור הכתובות <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..262d91fc26 --- /dev/null +++ b/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - SimpleUrl to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Usa le servicio de accurtamento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..1bce757856 --- /dev/null +++ b/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Menggunakan layanan pemendek URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..2bf68a2fd3 --- /dev/null +++ b/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "<a href=\"http://%1$s/\">%1$s</a>をURL短縮サービスとして利用する。" diff --git a/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..c37e49bf4c --- /dev/null +++ b/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - SimpleUrl to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Користи <a href=\"http://%1$s/\">%1$s</a> - служба за скратување на URL-" +"адреси." diff --git a/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..bd6f379142 --- /dev/null +++ b/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Bruker URL-forkortertjenesten <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..c8999b3903 --- /dev/null +++ b/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - SimpleUrl to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gebruikt de dienst <a href=\"http://%1$s/\">%1$s</a> om URL's korter te " +"maken." diff --git a/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..2e89715823 --- /dev/null +++ b/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SimpleUrl to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Usa o serviço de abreviação de URLs <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..23fbf23744 --- /dev/null +++ b/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - SimpleUrl to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Использование службы сокращения URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..83ee3e13eb --- /dev/null +++ b/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - SimpleUrl to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gumagamit ng <a href=\"http://%1$s/\">%1$s</a> na palingkuran ng pampaiksi " +"ng URL." diff --git a/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..51dbeecbe9 --- /dev/null +++ b/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - SimpleUrl to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:55+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:17+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: SimpleUrlPlugin.php:58 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Використання <a href=\"http://%1$s/\">%1$s</a> для скорочення URL-адрес." diff --git a/plugins/Sitemap/SitemapPlugin.php b/plugins/Sitemap/SitemapPlugin.php index b6d3b1ad33..6a77f81231 100644 --- a/plugins/Sitemap/SitemapPlugin.php +++ b/plugins/Sitemap/SitemapPlugin.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class SitemapPlugin extends Plugin { const USERS_PER_MAP = 50000; @@ -57,7 +56,6 @@ class SitemapPlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onAutoload($cls) { $dir = dirname(__FILE__); @@ -89,7 +87,6 @@ class SitemapPlugin extends Plugin * * @return boolean hook value. */ - function onEndRobotsTxt($action) { $url = common_local_url('sitemapindex'); @@ -106,7 +103,6 @@ class SitemapPlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onRouterInitialized($m) { $m->connect('sitemapindex.xml', @@ -142,7 +138,6 @@ class SitemapPlugin extends Plugin * * @return boolean hook value. */ - function onStartShowHeadElements($action) { $actionName = $action->trimmed('action'); @@ -181,7 +176,6 @@ class SitemapPlugin extends Plugin * * @return boolean hook value; true means continue processing, false means stop. */ - function onCheckSchema() { $schema = Schema::get(); @@ -214,11 +208,35 @@ class SitemapPlugin extends Plugin function onEndAdminPanelNav($menu) { if (AdminPanelAction::canAdmin('sitemap')) { // TRANS: Menu item title/tooltip - $menu_title = _('Sitemap configuration'); + $menu_title = _m('Sitemap configuration'); // TRANS: Menu item for site administration - $menu->out->menuItem(common_local_url('sitemapadminpanel'), _('Sitemap'), + $menu->out->menuItem(common_local_url('sitemapadminpanel'), _m('MENU','Sitemap'), $menu_title, $action_name == 'sitemapadminpanel', 'nav_sitemap_admin_panel'); } return true; } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:Sitemap'; + + $versions[] = array('name' => 'Sitemap', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('This plugin allows creation of sitemaps for Bing, Yahoo! and Google.')); + + return true; + } } diff --git a/plugins/Sitemap/Sitemap_notice_count.php b/plugins/Sitemap/Sitemap_notice_count.php index 6e0061e97b..2238ff5218 100644 --- a/plugins/Sitemap/Sitemap_notice_count.php +++ b/plugins/Sitemap/Sitemap_notice_count.php @@ -51,7 +51,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * * @see DB_DataObject */ - class Sitemap_notice_count extends Memcached_DataObject { public $__table = 'sitemap_notice_count'; // table name @@ -72,7 +71,6 @@ class Sitemap_notice_count extends Memcached_DataObject * @return Sitemap_notice_count object found, or null for no hits * */ - function staticGet($k, $v=null) { return Memcached_DataObject::staticGet('Sitemap_notice_count', $k, $v); @@ -86,7 +84,6 @@ class Sitemap_notice_count extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('notice_date' => DB_DATAOBJECT_DATE + DB_DATAOBJECT_NOTNULL, @@ -103,7 +100,6 @@ class Sitemap_notice_count extends Memcached_DataObject * * @return array key definitions */ - function keys() { return array('notice_date' => 'K'); @@ -117,7 +113,6 @@ class Sitemap_notice_count extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return $this->keys(); @@ -128,7 +123,6 @@ class Sitemap_notice_count extends Memcached_DataObject $noticeCounts = self::cacheGet('sitemap:notice:counts'); if ($noticeCounts === false) { - $snc = new Sitemap_notice_count(); $snc->orderBy('notice_date DESC'); @@ -236,7 +230,8 @@ class Sitemap_notice_count extends Memcached_DataObject $snc = Sitemap_notice_count::staticGet('notice_date', DB_DataObject_Cast::date($d)); if (empty($snc)) { - throw new Exception("No such registration date: $d"); + // TRANS: Exception + throw new Exception(_m("No such registration date: $d.")); } $orig = clone($snc); diff --git a/plugins/Sitemap/Sitemap_user_count.php b/plugins/Sitemap/Sitemap_user_count.php index 98dd05bfed..0b45021bf5 100644 --- a/plugins/Sitemap/Sitemap_user_count.php +++ b/plugins/Sitemap/Sitemap_user_count.php @@ -47,7 +47,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * * @see DB_DataObject */ - class Sitemap_user_count extends Memcached_DataObject { public $__table = 'sitemap_user_count'; // table name @@ -68,7 +67,6 @@ class Sitemap_user_count extends Memcached_DataObject * @return Sitemap_user_count object found, or null for no hits * */ - function staticGet($k, $v=null) { return Memcached_DataObject::staticGet('Sitemap_user_count', $k, $v); @@ -82,7 +80,6 @@ class Sitemap_user_count extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array('registration_date' => DB_DATAOBJECT_DATE + DB_DATAOBJECT_NOTNULL, @@ -118,7 +115,6 @@ class Sitemap_user_count extends Memcached_DataObject * * @return array key definitions */ - function keyTypes() { return $this->keys(); @@ -235,7 +231,8 @@ class Sitemap_user_count extends Memcached_DataObject $suc = Sitemap_user_count::staticGet('registration_date', DB_DataObject_Cast::date($d)); if (empty($suc)) { - throw new Exception("No such registration date: $d"); + // TRANS: Exception thrown when a registration date cannot be found. + throw new Exception(_m("No such registration date: $d.")); } $orig = clone($suc); diff --git a/plugins/Sitemap/locale/Sitemap.pot b/plugins/Sitemap/locale/Sitemap.pot new file mode 100644 index 0000000000..7cbb8a938d --- /dev/null +++ b/plugins/Sitemap/locale/Sitemap.pot @@ -0,0 +1,84 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "" + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "" + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" diff --git a/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..89b154d086 --- /dev/null +++ b/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po @@ -0,0 +1,92 @@ +# Translation of StatusNet - Sitemap to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Tres al lec'hienn" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Alc'hwez Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Alc'hwez Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "" + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Alc'hwez Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "" + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Enrollañ" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Enrollañ arventennoù tres al lec'hienn" + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Kefluniadur tres al lec'hienn" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Tres al lec'hienn" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Gant an astenn-mañ e c'haller sevel tresoù lec'hiennoù evit Bing, Yahoo! ha " +"Google." diff --git a/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..8c871c531d --- /dev/null +++ b/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Plan du site" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Paramètres de plan du site pour ce site StatusNet" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Clé Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Clé de vérification pour les outils Google Webmaster." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Clé Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Clé de vérification pour l’explorateur de site Yahoo!" + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Clé Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Clé de vérification pour les outils Bing Webmaster." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Sauvegarder" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Sauvegarder les paramètres de plan du site." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Configuration du plan du site" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Plan du site" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Cette extension permet de créer des plans du site pour Bing, Yahoo! et " +"Google." diff --git a/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..b2a2dddf1e --- /dev/null +++ b/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Mappa de sito" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Configuration de mappa de sito pro iste sito StatusNet" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Clave Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Clave de verification de Google Webmaster Tools." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Clave Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Clave de verification de Yahoo Site Explorer." + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Clave Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Clave de verification de Bing Webmaster Tools." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Salveguardar configuration de mappa de sito." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Configuration de mappa de sito" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Mappa de sito" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Iste plug-in permitte le creation de mappas de sito pro Bing, Yahoo! e " +"Google." diff --git a/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..6823695840 --- /dev/null +++ b/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "План на мреж. место" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Нагодувања за планот на ова StatusNet-мрежно место" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Google-клуч" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Потврден клуч за Управните алатки на Google." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Yahoo-клуч" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Потврден клуч за Yahoo! Site Explorer." + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Bing-клуч" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Потврден клуч за Управните алатки на Bing." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Зачувај нагодувања за план." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Поставки за план" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "План на мреж. место" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Овој приклучок овозможува создавање на планови на мреж. места на Bing, " +"Yahoo! и Google." diff --git a/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..7970f9baa2 --- /dev/null +++ b/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Sitemap" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Sitemapinstellingen voor deze StatusNetwebsite" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Googlesleutel" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Verificatiesleutel voor Google Webmaster Tools." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Yahoosleutel" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Verificatiesleutel voor Yahoo! Site Explorer." + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Bingsleutel" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Verificatiesleutel voor Bing Webmaster Tools." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Instellingen voor sitemap opslaan." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Instellingen voor sitemap" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Sitemap" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Deze plugin maakt het mogelijk sitemaps aan te maken voor Bing, Yahoo! en " +"Google." diff --git a/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..4b409e3f30 --- /dev/null +++ b/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po @@ -0,0 +1,90 @@ +# Translation of StatusNet - Sitemap to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Карта сайта" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Настройки карты этого сайта на движке StatusNet" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Ключ Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Ключ для подтверждения в инструментах вебмастера Google." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Ключ Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Ключ для подтверждения в Yahoo! Site Explorer." + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Ключ Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Ключ для подтверждения в инструментах вебмастера Bing." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Сохранить" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Сохранить настройки карты сайта." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Настройки карты сайта" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Карта сайта" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "Этот плагин позволяет создавать карты сайта для Bing, Yahoo! и Google." diff --git a/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..6d4e2788a3 --- /dev/null +++ b/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Mapa ng sityo" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Mga katakdaan ng mapa ng sityo para sa sityong ito ng StatusNet" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Susi ng Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Susing pantiyak ng mga Kasangkapan ng Maestro ng Web ng Google." + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Susi ng Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Susing pantiyak ng Panggalugad ng Sityo ng Yahoo!" + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Susi ng Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Susing pantiyak ng mga Kasangkapan ng Maestro ng Web ng Bing." + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Sagipin" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Sagipin ang mga katakdaan ng mapa ng sityo." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Pagkakaayos ng mapa ng sityo" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Mapa ng sityo" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Nagpapahintulot ang pampasak na ito ng paglikha ng mga mapa ng sityo para sa " +"Bing, Yahoo! at Google." diff --git a/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po new file mode 100644 index 0000000000..5ec8df8431 --- /dev/null +++ b/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - Sitemap to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Sitemap\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:56+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:21:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-sitemap\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Title for sitemap. +#: sitemapadminpanel.php:53 +msgid "Sitemap" +msgstr "Карта сайту" + +#. TRANS: Instructions for sitemap. +#: sitemapadminpanel.php:64 +msgid "Sitemap settings for this StatusNet site" +msgstr "Налаштування карти сайту на даному сайті StatusNet" + +#. TRANS: Field label. +#: sitemapadminpanel.php:167 +msgid "Google key" +msgstr "Ключ Google" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:169 +msgid "Google Webmaster Tools verification key." +msgstr "Ключ підтвердження Google Webmaster Tools" + +#. TRANS: Field label. +#: sitemapadminpanel.php:175 +msgid "Yahoo key" +msgstr "Ключ Yahoo" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:177 +msgid "Yahoo! Site Explorer verification key." +msgstr "Ключ підтвердження Yahoo! Site Explorer" + +#. TRANS: Field label. +#: sitemapadminpanel.php:183 +msgid "Bing key" +msgstr "Ключ Bing" + +#. TRANS: Title for field label. +#: sitemapadminpanel.php:185 +msgid "Bing Webmaster Tools verification key." +msgstr "Ключ підтвердження Bing Webmaster Tools" + +#. TRANS: Submit button text to save sitemap settings. +#: sitemapadminpanel.php:200 +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: Submit button title to save sitemap settings. +#: sitemapadminpanel.php:204 +msgid "Save sitemap settings." +msgstr "Зберегти налаштування карти сайту." + +#. TRANS: Menu item title/tooltip +#: SitemapPlugin.php:211 +msgid "Sitemap configuration" +msgstr "Конфігурація карти сайту" + +#. TRANS: Menu item for site administration +#: SitemapPlugin.php:213 +msgctxt "MENU" +msgid "Sitemap" +msgstr "Карта сайту" + +#. TRANS: Plugin description. +#: SitemapPlugin.php:238 +msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." +msgstr "" +"Цей додаток дозволяє створювати карти сайту для Bing, Yahoo! та Google." diff --git a/plugins/Sitemap/noticesitemap.php b/plugins/Sitemap/noticesitemap.php index 7d9d2e5d68..efa23b9401 100644 --- a/plugins/Sitemap/noticesitemap.php +++ b/plugins/Sitemap/noticesitemap.php @@ -40,7 +40,6 @@ 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 NoticesitemapAction extends SitemapAction { var $notices = null; diff --git a/plugins/Sitemap/sitemapaction.php b/plugins/Sitemap/sitemapaction.php index 73b9248a38..ef77645c31 100644 --- a/plugins/Sitemap/sitemapaction.php +++ b/plugins/Sitemap/sitemapaction.php @@ -40,7 +40,6 @@ 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 SitemapAction extends Action { /** @@ -50,7 +49,6 @@ class SitemapAction extends Action * * @return void */ - function handle($args) { parent::handle($args); diff --git a/plugins/Sitemap/sitemapadminpanel.php b/plugins/Sitemap/sitemapadminpanel.php index 3c295b08e0..3304cfd011 100644 --- a/plugins/Sitemap/sitemapadminpanel.php +++ b/plugins/Sitemap/sitemapadminpanel.php @@ -40,7 +40,6 @@ 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 SitemapadminpanelAction extends AdminPanelAction { /** @@ -48,10 +47,10 @@ class SitemapadminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { - return _('Sitemap'); + // TRANS: Title for sitemap. + return _m('Sitemap'); } /** @@ -59,10 +58,10 @@ class SitemapadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { - return _('Sitemap settings for this StatusNet site'); + // TRANS: Instructions for sitemap. + return _m('Sitemap settings for this StatusNet site'); } /** @@ -70,7 +69,6 @@ class SitemapadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new SitemapAdminPanelForm($this); @@ -83,7 +81,6 @@ class SitemapadminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array('sitemap' => array('googlekey', 'yahookey', 'bingkey')); @@ -97,7 +94,6 @@ class SitemapadminpanelAction extends AdminPanelAction } // This throws an exception on validation errors - $this->validate($values); // assert(all values are valid); @@ -125,7 +121,6 @@ class SitemapadminpanelAction extends AdminPanelAction /** * Form for the sitemap admin panel */ - class SitemapAdminPanelForm extends AdminForm { /** @@ -133,7 +128,6 @@ class SitemapAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'form_sitemap_admin_panel'; @@ -144,7 +138,6 @@ class SitemapAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_sitemap'; @@ -155,7 +148,6 @@ class SitemapAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('sitemapadminpanel'); @@ -166,27 +158,31 @@ class SitemapAdminPanelForm extends AdminForm * * @return void */ - function formData() { - $this->out->elementStart('fieldset', array('id' => 'sitemap_admin')); $this->out->elementStart('ul', 'form_data'); $this->li(); $this->input('googlekey', - _('Google key'), - _('Google Webmaster Tools verification key'), + // TRANS: Field label. + _m('Google key'), + // TRANS: Title for field label. + _m('Google Webmaster Tools verification key.'), 'sitemap'); $this->unli(); $this->li(); $this->input('yahookey', - _('Yahoo key'), - _('Yahoo! Site Explorer verification key'), + // TRANS: Field label. + _m('Yahoo key'), + // TRANS: Title for field label. + _m('Yahoo! Site Explorer verification key.'), 'sitemap'); $this->unli(); $this->li(); $this->input('bingkey', - _('Bing key'), - _('Bing Webmaster Tools verification key'), + // TRANS: Field label. + _m('Bing key'), + // TRANS: Title for field label. + _m('Bing Webmaster Tools verification key.'), 'sitemap'); $this->unli(); $this->out->elementEnd('ul'); @@ -197,9 +193,14 @@ class SitemapAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save sitemap settings')); + $this->out->submit('submit', + // TRANS: Submit button text to save sitemap settings. + _m('BUTTON','Save'), + 'submit', + null, + // TRANS: Submit button title to save sitemap settings. + _m('Save sitemap settings.')); } } diff --git a/plugins/Sitemap/sitemapindex.php b/plugins/Sitemap/sitemapindex.php index 169e3031ce..ab89c2156c 100644 --- a/plugins/Sitemap/sitemapindex.php +++ b/plugins/Sitemap/sitemapindex.php @@ -40,7 +40,6 @@ 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 SitemapindexAction extends Action { /** @@ -50,7 +49,6 @@ class SitemapindexAction extends Action * * @return void */ - function handle($args) { header('Content-Type: text/xml; charset=UTF-8'); diff --git a/plugins/Sitemap/usersitemap.php b/plugins/Sitemap/usersitemap.php index de12007157..c39165d0ed 100644 --- a/plugins/Sitemap/usersitemap.php +++ b/plugins/Sitemap/usersitemap.php @@ -40,7 +40,6 @@ 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 UsersitemapAction extends SitemapAction { var $users = null; diff --git a/plugins/SlicedFavorites/SlicedFavoritesPlugin.php b/plugins/SlicedFavorites/SlicedFavoritesPlugin.php new file mode 100644 index 0000000000..d2407484da --- /dev/null +++ b/plugins/SlicedFavorites/SlicedFavoritesPlugin.php @@ -0,0 +1,133 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package SlicedFavoritesPlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { exit(1); } + +class SlicedFavoritesPlugin extends Plugin +{ + /** + * Example: + * + * addPlugin('SlicedFavorites', array( + * 'slices' => array( + * // show only pop's notices on /favorited + * 'default' => array('include' => array('pop')), + * + * // show only son's notices on /favorited/blog + * 'blog' => array('include' => array('son')), + * + * // show all favorited notices except pop's and son's on /favorited/submitted + * 'submitted' => array('exclude' => array('pop', 'son')), + * + * // show all favorited notices on /favorited/everybody + * 'everybody' => array(), + * ) + * )); + * + * @var array + */ + public $slices = array(); + + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m path-to-action mapper + * @return boolean hook return + */ + function onRouterInitialized($m) + { + $m->connect('favorited/:slice', + array('action' => 'favoritedslice'), + array('slice' => '[a-zA-Z0-9]+')); + + return true; + } + + // Take over the default... :D + function onArgsInitialize($args) + { + if (array_key_exists('action', $args)) { + $action = trim($args['action']); + if ($action == 'favorited') { + common_redirect(common_local_url('favoritedslice', array('slice' => 'default'))); + exit(0); + } + } + return true; + } + + /** + * Automatically load the actions and libraries used by the plugin + * + * @param Class $cls the class + * + * @return boolean hook return + * + */ + function onAutoload($cls) + { + $base = dirname(__FILE__); + $lower = strtolower($cls); + switch ($lower) { + case 'favoritedsliceaction': + require_once "$base/$lower.php"; + return false; + default: + return true; + } + } + + function onSlicedFavoritesGetSettings($slice, &$data) + { + if (isset($this->slices[$slice])) { + $data = $this->slices[$slice]; + return false; + } + return true; + } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:SlicedFavorites'; + + $versions[] = array('name' => 'SlicedFavorites', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('Shows timelines of popular notices for defined subsets of users.')); + + return true; + } +} diff --git a/plugins/SlicedFavorites/favoritedsliceaction.php b/plugins/SlicedFavorites/favoritedsliceaction.php new file mode 100644 index 0000000000..9c8a9f53fb --- /dev/null +++ b/plugins/SlicedFavorites/favoritedsliceaction.php @@ -0,0 +1,153 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * List of popular notices + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Public + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @author Evan Prodromou <evan@status.net> + * @copyright 2008-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); +} + +class FavoritedSliceAction extends FavoritedAction +{ + private $includeUsers = array(), $excludeUsers = array(); + + /** + * Take arguments for running + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + * + * @todo move queries from showContent() to here + */ + function prepare($args) + { + parent::prepare($args); + + $this->slice = $this->arg('slice', 'default'); + $data = array(); + if (Event::handle('SlicedFavoritesGetSettings', array($this->slice, &$data))) { + // TRANS: Client exception. + throw new ClientException(_m('Unknown favorites slice.')); + } + if (isset($data['include'])) { + $this->includeUsers = $data['include']; + } + if (isset($data['exclude'])) { + $this->excludeUsers = $data['exclude']; + } + + return true; + } + + /** + * Content area + * + * Shows the list of popular notices + * + * @return void + */ + function showContent() + { + $slice = $this->sliceWhereClause(); + if (!$slice) { + return parent::showContent(); + } + + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); + $cutoff = sprintf("fave.modified > '%s'", + common_sql_date(time() - common_config('popular', 'cutoff'))); + + $qry = 'SELECT notice.*, '. + $weightexpr . ' as weight ' . + 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . + "WHERE $cutoff AND $slice " . + 'GROUP BY id,profile_id,uri,content,rendered,url,created,notice.modified,reply_to,is_local,source,notice.conversation ' . + 'ORDER BY weight DESC'; + + $offset = ($this->page - 1) * NOTICES_PER_PAGE; + $limit = NOTICES_PER_PAGE + 1; + + if (common_config('db', 'type') == 'pgsql') { + $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; + } else { + $qry .= ' LIMIT ' . $offset . ', ' . $limit; + } + + $notice = Memcached_DataObject::cachedQuery('Notice', + $qry, + 600); + + $nl = new NoticeList($notice, $this); + + $cnt = $nl->show(); + + if ($cnt == 0) { + $this->showEmptyList(); + } + + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, + $this->page, 'favorited'); + } + + private function sliceWhereClause() + { + $include = $this->nicknamesToIds($this->includeUsers); + $exclude = $this->nicknamesToIds($this->excludeUsers); + + if (count($include) == 1) { + return "profile_id = " . intval($include[0]); + } else if (count($include) > 1) { + return "profile_id IN (" . implode(',', $include) . ")"; + } else if (count($exclude) == 1) { + return "profile_id != " . intval($exclude[0]); + } else if (count($exclude) > 1) { + return "profile_id NOT IN (" . implode(',', $exclude) . ")"; + } else { + return false; + } + } + + /** + * + * @param array $nicks array of user nicknames + * @return array of profile/user IDs + */ + private function nicknamesToIds($nicks) + { + $ids = array(); + foreach ($nicks as $nick) { + // not the most efficient way for a big list! + $user = User::staticGet('nickname', $nick); + if ($user) { + $ids[] = intval($user->id); + } + } + return $ids; + } +} diff --git a/plugins/SlicedFavorites/locale/SlicedFavorites.pot b/plugins/SlicedFavorites/locale/SlicedFavorites.pot new file mode 100644 index 0000000000..e10bd78e13 --- /dev/null +++ b/plugins/SlicedFavorites/locale/SlicedFavorites.pot @@ -0,0 +1,27 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "" diff --git a/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..b08df82462 --- /dev/null +++ b/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - SlicedFavorites to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Affiche des listes d’avis populaires pour des sous-ensembles définis " +"d’utilisateurs." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Tranche préférée inconnue." diff --git a/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..c46e46b88b --- /dev/null +++ b/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - SlicedFavorites to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "הצגת צירי זמן של התרעות נפוצות לקבוצות מסוימות של משתמשים." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "נתח מועדפים בלתי ידוע." diff --git a/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..839b9f74c1 --- /dev/null +++ b/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - SlicedFavorites to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "Monstra chronologias de notas popular pro certe gruppos de usatores." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Section de favorites incognite." diff --git a/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..e905d925a6 --- /dev/null +++ b/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - SlicedFavorites to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Menampilkan garis waktu pemberitahuan populer untuk sekumpulan pengguna yang " +"ditentukan." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Pembagian favorit tidak diketahui." diff --git a/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..b3ac6f9e73 --- /dev/null +++ b/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - SlicedFavorites to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Прикажува хронологии на популарни забелешки за определени подмножества " +"корисници." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Непознато парче од бендисаните." diff --git a/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..d990e0790a --- /dev/null +++ b/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - SlicedFavorites to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Geeft de tijdlijnen van populaire mededelingen weer voor ingestelde groepen " +"gebruikers." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Onbekende favorietengebruikersgroep." diff --git a/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..648b53ab7f --- /dev/null +++ b/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - SlicedFavorites to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Показывает хронологию популярных уведомлений для определенных подмножеств " +"пользователей." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Неизвестный срез избранного." diff --git a/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..dee536d91c --- /dev/null +++ b/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,34 @@ +# Translation of StatusNet - SlicedFavorites to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "" +"Nagpapakita ng mga guhit ng panahon ng tanyag na mga pabatid para sa " +"inilarawang mga kabahaging pangkat ng mga tagagamit." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Hindi nalalamang hiwa ng mga paborito." diff --git a/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po new file mode 100644 index 0000000000..fcdd21897c --- /dev/null +++ b/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - SlicedFavorites to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SlicedFavorites\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:05+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Plugin description. +#: SlicedFavoritesPlugin.php:129 +msgid "Shows timelines of popular notices for defined subsets of users." +msgstr "Показує стрічки популярних дописів для певних підмножин користувачів." + +#. TRANS: Client exception. +#: favoritedsliceaction.php:56 +msgid "Unknown favorites slice." +msgstr "Невідома вибірка обраних повідомлень." diff --git a/plugins/SphinxSearch/SphinxSearchPlugin.php b/plugins/SphinxSearch/SphinxSearchPlugin.php index 7a27a4c042..ad34a7cc15 100644 --- a/plugins/SphinxSearch/SphinxSearchPlugin.php +++ b/plugins/SphinxSearch/SphinxSearchPlugin.php @@ -41,8 +41,6 @@ foreach($sphinxDefaults as $key => $val) { } } - - /** * Plugin for Sphinx search backend. * @@ -53,7 +51,6 @@ foreach($sphinxDefaults as $key => $val) { * @link http://laconi.ca/ * @link http://twitter.com/ */ - class SphinxSearchPlugin extends Plugin { /** @@ -86,7 +83,8 @@ class SphinxSearchPlugin extends Plugin { if (common_config('sphinx', 'enabled')) { if (!class_exists('SphinxClient')) { - throw new ServerException('Sphinx PHP extension must be installed.'); + // TRANS: Server exception. + throw new ServerException(_m('Sphinx PHP extension must be installed.')); } $engine = new SphinxSearch($target, $table); if ($engine->is_connected()) { @@ -97,4 +95,28 @@ class SphinxSearchPlugin extends Plugin // Sphinx disabled or disconnected return true; } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:SphinxSearch'; + + $versions[] = array('name' => 'SphinxSearch', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('Plugin for Sphinx search backend.')); + + return true; + } } diff --git a/plugins/SphinxSearch/locale/SphinxSearch.pot b/plugins/SphinxSearch/locale/SphinxSearch.pot new file mode 100644 index 0000000000..2d603cb40f --- /dev/null +++ b/plugins/SphinxSearch/locale/SphinxSearch.pot @@ -0,0 +1,32 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "" + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "" + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "" diff --git a/plugins/SphinxSearch/locale/br/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/br/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..9f70945bd1 --- /dev/null +++ b/plugins/SphinxSearch/locale/br/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,37 @@ +# Translation of StatusNet - SphinxSearch to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Rekis eo d'an astenn Sphinx PHP bezañ staliet." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "" + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "" diff --git a/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..fea79e3bc4 --- /dev/null +++ b/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - SphinxSearch to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "L’extension PHP Sphinx doit être installée." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Extension pour le moteur de recherche Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "" +"La recherche Sphinx n’a pas pu identifier le nom de la base de données." diff --git a/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..99d14e52d4 --- /dev/null +++ b/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,37 @@ +# Translation of StatusNet - SphinxSearch to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Le extension PHP Sphinx debe esser installate." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Plug-in pro back-end de recerca Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "Le recerca Sphinx non poteva identificar le nomine del base de datos." diff --git a/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..17efaab96f --- /dev/null +++ b/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,37 @@ +# Translation of StatusNet - SphinxSearch to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Мора да се инсталира PHP-додатокот Sphinx" + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Приклучок за пребарување со Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "Пребарувањето со Sphinx не можеше да го утврди името на базата." diff --git a/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..9ddb37b19c --- /dev/null +++ b/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - SphinxSearch to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "De PHP-extensie Sphinx moet geïnstalleerd. zijn." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Plug-in voor een Sphinxbackend." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "" +"Het was voor Sphinx search niet mogelijk een database te identificeren." diff --git a/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..67af7f623c --- /dev/null +++ b/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - SphinxSearch to Russian (Русский) +# Expored from translatewiki.net +# +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Необходимо установить расширение Sphinx для PHP." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Плагин для поискового движка Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "Поиск Sphinx не смог определить название базы данных." diff --git a/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..589aec9c82 --- /dev/null +++ b/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - SphinxSearch to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Dapat na iluklok ang dugtong na PHP ng Sphinx." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Pamasak para sa wakas ng likuran ng panghanap ng Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "" +"Hindi makilala ng panghanap ng Sphinx ang pangalan ng kalipunan ng dato." diff --git a/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po new file mode 100644 index 0000000000..3ba96c98df --- /dev/null +++ b/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po @@ -0,0 +1,38 @@ +# Translation of StatusNet - SphinxSearch to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SphinxSearch\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:57+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:54+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Server exception. +#: SphinxSearchPlugin.php:87 +msgid "Sphinx PHP extension must be installed." +msgstr "Розширення Sphinx PHP повинно бути встановлено." + +#. TRANS: Plugin description. +#: SphinxSearchPlugin.php:118 +msgid "Plugin for Sphinx search backend." +msgstr "Додаток для пошуку за допомогою Sphinx." + +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:96 +msgid "Sphinx search could not identify database name." +msgstr "Пошук Sphinx не може визначити ім’я бази даних." diff --git a/plugins/SphinxSearch/scripts/gen_config.php b/plugins/SphinxSearch/scripts/gen_config.php index d5a00b6b6b..e7f3977478 100755 --- a/plugins/SphinxSearch/scripts/gen_config.php +++ b/plugins/SphinxSearch/scripts/gen_config.php @@ -70,8 +70,6 @@ searchd END; - - /** * Build config entries for a single site * @fixme we only seem to have master DB currently available... diff --git a/plugins/SphinxSearch/scripts/index_update.php b/plugins/SphinxSearch/scripts/index_update.php index 23c60ced76..abac5434f7 100755 --- a/plugins/SphinxSearch/scripts/index_update.php +++ b/plugins/SphinxSearch/scripts/index_update.php @@ -42,20 +42,20 @@ sphinx_iterate_sites('sphinx_index_update'); function sphinx_index_update($sn) { $base = sphinx_base(); - + $baseIndexes = array('notice', 'profile'); $params = array(); - + if (have_option('rotate')) { $params[] = '--rotate'; } foreach ($baseIndexes as $index) { $params[] = "{$sn->dbname}_{$index}"; } - + $params = implode(' ', $params); $cmd = "$base/bin/indexer --config $base/etc/sphinx.conf $params"; - + print "$cmd\n"; system($cmd); } diff --git a/plugins/SphinxSearch/scripts/sphinx-utils.php b/plugins/SphinxSearch/scripts/sphinx-utils.php index 7bbc252702..22d70fb8d1 100644 --- a/plugins/SphinxSearch/scripts/sphinx-utils.php +++ b/plugins/SphinxSearch/scripts/sphinx-utils.php @@ -60,4 +60,3 @@ function sphinx_iterate_sites($callback) } } } - diff --git a/plugins/SphinxSearch/sphinxsearch.php b/plugins/SphinxSearch/sphinxsearch.php index 654b9c9d5b..1ce9bfd72d 100644 --- a/plugins/SphinxSearch/sphinxsearch.php +++ b/plugins/SphinxSearch/sphinxsearch.php @@ -91,6 +91,8 @@ class SphinxSearch extends SearchEngine if (preg_match('!^.*?://.*?:.*?@.*?/(.*?)$!', common_config('db', 'database'), $matches)) { return $matches[1]; } - throw new ServerException("Sphinx search could not identify database name"); + + // TRANS: Server exception thrown when a database name cannot be identified. + throw new ServerException(_m("Sphinx search could not identify database name.")); } } diff --git a/plugins/SpotifyPlugin.php b/plugins/Spotify/SpotifyPlugin.php similarity index 100% rename from plugins/SpotifyPlugin.php rename to plugins/Spotify/SpotifyPlugin.php diff --git a/plugins/StrictTransportSecurity/README b/plugins/StrictTransportSecurity/README new file mode 100644 index 0000000000..66f03e95ea --- /dev/null +++ b/plugins/StrictTransportSecurity/README @@ -0,0 +1,21 @@ +The Strict Transport Security plugin implements the Strict Transport Security header, improving the security of HTTPS only sites. +See http://lists.w3.org/Archives/Public/www-archive/2009Sep/att-0051/draft-hodges-strict-transport-sec-05.plain.html for the specification. + +Installation +============ +add "addPlugin('strictTransportSecurity');" +to the bottom of your config.php + +The plugin will not do anything unless: +$config['site']['ssl'] is set to 'always' +$config['site']['path'] is either not set, empty, or '/' + +Settings +======== +max_age (15552000): sets how long to remember the forced HTTPS (seconds) (15552000 seconds is 180 days) +includeSubDomains (false): if set, then STS will apply to all the sub-domains too. + +Example +======= +addPlugin('strictTransportSecurity'); + diff --git a/plugins/StrictTransportSecurity/StrictTransportSecurityPlugin.php b/plugins/StrictTransportSecurity/StrictTransportSecurityPlugin.php new file mode 100644 index 0000000000..004a627929 --- /dev/null +++ b/plugins/StrictTransportSecurity/StrictTransportSecurityPlugin.php @@ -0,0 +1,62 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Plugin to enable Single Sign On via CAS (Central Authentication Service) + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews <candrews@integralblue.com> + * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org + * @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); +} + +class StrictTransportSecurityPlugin extends Plugin +{ + public $max_age = 15552000; + public $includeSubDomains = false; + + function __construct() + { + parent::__construct(); + } + + function onArgsInitialize($args) + { + $path = common_config('site', 'path'); + if(common_config('site', 'ssl') == 'always' && ($path == '/' || ! $path )) { + header('Strict-Transport-Security: max-age=' . $this->max_age . + ($this->includeSubDomains?'; includeSubDomains':'')); + } + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'StrictTransportSecurity', + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:StrictTransportSecurity', + 'rawdescription' => + _m('The Strict Transport Security plugin implements the Strict Transport Security header, improving the security of HTTPS only sites.')); + return true; + } +} diff --git a/plugins/SubMirror/SubMirrorPlugin.php b/plugins/SubMirror/SubMirrorPlugin.php index 80c6c5a88f..578ef6607c 100644 --- a/plugins/SubMirror/SubMirrorPlugin.php +++ b/plugins/SubMirror/SubMirrorPlugin.php @@ -17,14 +17,12 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + /** * @package SubMirrorPlugin * @maintainer Brion Vibber <brion@status.net> */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - - class SubMirrorPlugin extends Plugin { /** diff --git a/plugins/SubMirror/actions/addmirror.php b/plugins/SubMirror/actions/addmirror.php index 5acdf1dfe4..8c3a9740f3 100644 --- a/plugins/SubMirror/actions/addmirror.php +++ b/plugins/SubMirror/actions/addmirror.php @@ -45,7 +45,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class AddMirrorAction extends BaseMirrorAction { var $feedurl; @@ -57,7 +56,6 @@ class AddMirrorAction extends BaseMirrorAction * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); diff --git a/plugins/SubMirror/actions/basemirror.php b/plugins/SubMirror/actions/basemirror.php index be6942efa7..3e3431103f 100644 --- a/plugins/SubMirror/actions/basemirror.php +++ b/plugins/SubMirror/actions/basemirror.php @@ -45,7 +45,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - abstract class BaseMirrorAction extends Action { var $user; @@ -58,7 +57,6 @@ abstract class BaseMirrorAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -107,24 +105,22 @@ abstract class BaseMirrorAction extends Action } /** - * @fixme none of this belongs in end classes + * @todo FIXME: none of this belongs in end classes * this stuff belongs in shared code! */ function sharedBoilerplate() { // Only allow POST requests - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->clientError(_('This action only accepts POST requests.')); + $this->clientError(_m('This action only accepts POST requests.')); return false; } // CSRF protection - $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $this->clientError(_('There was a problem with your session token.'. + $this->clientError(_m('There was a problem with your session token.'. ' Try again, please.')); return false; } @@ -134,7 +130,7 @@ abstract class BaseMirrorAction extends Action $this->user = common_current_user(); if (empty($this->user)) { - $this->clientError(_('Not logged in.')); + $this->clientError(_m('Not logged in.')); return false; } return true; @@ -149,7 +145,6 @@ abstract class BaseMirrorAction extends Action * * @return void */ - function handle($args) { // Throws exception on error @@ -158,7 +153,7 @@ abstract class BaseMirrorAction extends Action if ($this->boolean('ajax')) { $this->startHTML('text/xml;charset=utf-8'); $this->elementStart('head'); - $this->element('title', null, _('Subscribed')); + $this->element('title', null, _m('Subscribed')); $this->elementEnd('head'); $this->elementStart('body'); $unsubscribe = new EditMirrorForm($this, $this->profile); diff --git a/plugins/SubMirror/actions/editmirror.php b/plugins/SubMirror/actions/editmirror.php index c7fdab0d67..0f8b037325 100644 --- a/plugins/SubMirror/actions/editmirror.php +++ b/plugins/SubMirror/actions/editmirror.php @@ -45,7 +45,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class EditMirrorAction extends BaseMirrorAction { @@ -56,7 +55,6 @@ class EditMirrorAction extends BaseMirrorAction * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -93,7 +91,8 @@ class EditMirrorAction extends BaseMirrorAction { $mirror = SubMirror::getMirror($this->user, $this->profile); if (!$mirror) { - $this->clientError(_m('Requested edit of missing mirror')); + // TRANS: Client error thrown when a mirror request is made and no result is retrieved. + $this->clientError(_m('Requested edit of missing mirror.')); } if ($this->delete) { diff --git a/plugins/SubMirror/actions/mirrorsettings.php b/plugins/SubMirror/actions/mirrorsettings.php index 5463a8dc0c..a828b26feb 100644 --- a/plugins/SubMirror/actions/mirrorsettings.php +++ b/plugins/SubMirror/actions/mirrorsettings.php @@ -36,9 +36,9 @@ class MirrorSettingsAction extends AccountSettingsAction * * @return string Page title */ - function title() { + // TRANS: Title. return _m('Feed mirror settings'); } @@ -50,6 +50,7 @@ class MirrorSettingsAction extends AccountSettingsAction function getInstructions() { + // TRANS: Instructions. return _m('You can mirror updates from many RSS and Atom feeds ' . 'into your StatusNet timeline!'); } @@ -61,13 +62,12 @@ class MirrorSettingsAction extends AccountSettingsAction * * @return void */ - function showContent() { $user = common_current_user(); $this->showAddFeedForm(); - + $mirror = new SubMirror(); $mirror->subscriber = $user->id; if ($mirror->find()) { @@ -99,7 +99,6 @@ class MirrorSettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { } diff --git a/plugins/SubMirror/classes/SubMirror.php b/plugins/SubMirror/classes/SubMirror.php index bd8fc80a5f..b39af918d5 100644 --- a/plugins/SubMirror/classes/SubMirror.php +++ b/plugins/SubMirror/classes/SubMirror.php @@ -79,7 +79,7 @@ class SubMirror extends Memcached_DataObject /** * Temporary hack to set up the compound index, since we can't do * it yet through regular Schema interface. (Coming for 1.0...) - * + * * @param Schema $schema * @return void */ @@ -145,7 +145,7 @@ class SubMirror extends Memcached_DataObject $mirror->created = common_sql_now(); $mirror->modified = common_sql_now(); $mirror->insert(); - + return $mirror; } @@ -173,7 +173,7 @@ class SubMirror extends Memcached_DataObject * This retains attribution within the site, and other nice things, * but currently ends up looking like 'RT @foobar bla bla' when * bridged out over OStatus or TwitterBridge. - * + * * @param Notice $notice * @return mixed Notice on successful repeat, true if already repeated, false on failure */ @@ -192,7 +192,7 @@ class SubMirror extends Memcached_DataObject * Mirror a notice by emitting a new notice with the same contents. * Kind of dirty, but if pulling an external data feed into an account * that may be what you want. - * + * * @param Notice $notice * @return mixed Notice on successful repeat, true if already repeated, false on failure */ @@ -216,7 +216,7 @@ class SubMirror extends Memcached_DataObject /** * Get the mirroring setting for a pair of profiles, if existing. - * + * * @param Profile $subscriber * @param Profile $subscribed * @return mixed Profile or empty diff --git a/plugins/SubMirror/lib/addmirrorform.php b/plugins/SubMirror/lib/addmirrorform.php index 0a798c9eaf..e1d50c272c 100644 --- a/plugins/SubMirror/lib/addmirrorform.php +++ b/plugins/SubMirror/lib/addmirrorform.php @@ -28,7 +28,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { class AddMirrorForm extends Form { - /** * Name of the form * @@ -36,7 +35,6 @@ class AddMirrorForm extends Form * * @return void */ - function formLegend() { } @@ -49,7 +47,6 @@ class AddMirrorForm extends Form * * @return void */ - function formData() { $this->out->elementStart('fieldset'); @@ -64,7 +61,7 @@ class AddMirrorForm extends Form $this->unli(); $this->li(); - $this->out->submit('addmirror-save', _m('Add feed')); + $this->out->submit('addmirror-save', _m('BUTTON','Add feed')); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); @@ -94,7 +91,6 @@ class AddMirrorForm extends Form * * @return void */ - function formActions() { } @@ -107,7 +103,6 @@ class AddMirrorForm extends Form * * @return string ID of the form */ - function id() { return 'add-mirror-form'; @@ -121,7 +116,6 @@ class AddMirrorForm extends Form * * @return string URL to post to */ - function action() { return common_local_url('addmirror'); @@ -132,10 +126,8 @@ class AddMirrorForm extends Form * * @return string the form's class */ - function formClass() { return 'form_settings'; } - } diff --git a/plugins/SubMirror/lib/editmirrorform.php b/plugins/SubMirror/lib/editmirrorform.php index 8236da3896..c1f60f9c2c 100644 --- a/plugins/SubMirror/lib/editmirrorform.php +++ b/plugins/SubMirror/lib/editmirrorform.php @@ -45,7 +45,6 @@ class EditMirrorForm extends Form * * @return void */ - function formLegend() { } @@ -58,7 +57,6 @@ class EditMirrorForm extends Form * * @return void */ - function formData() { $this->out->elementStart('fieldset'); @@ -81,6 +79,7 @@ class EditMirrorForm extends Form $this->out->elementEnd('div'); $this->out->elementStart('div'); if ($feed) { + // XXX: Why the hard coded space? $this->out->text(_m('LABEL', 'Remote feed:') . ' '); //$this->out->element('a', array('href' => $feed), $feed); $this->out->element('input', array('value' => $feed, 'readonly' => 'readonly', 'style' => 'width: 100%')); @@ -111,7 +110,7 @@ class EditMirrorForm extends Form } $this->out->elementEnd('fieldset'); - + $this->out->elementStart('div'); $this->out->submit($this->id() . '-save', _m('Save')); $this->out->element('input', array('type' => 'submit', @@ -155,7 +154,6 @@ class EditMirrorForm extends Form * * @return string ID of the form */ - function id() { return 'edit-mirror-form-' . $this->profile->id; @@ -169,7 +167,6 @@ class EditMirrorForm extends Form * * @return string URL to post to */ - function action() { return common_local_url('editmirror'); @@ -180,10 +177,8 @@ class EditMirrorForm extends Form * * @return string the form's class */ - function formClass() { return 'form_settings'; } - } diff --git a/plugins/SubMirror/lib/mirrorqueuehandler.php b/plugins/SubMirror/lib/mirrorqueuehandler.php index 92b36b5ebf..550986b444 100644 --- a/plugins/SubMirror/lib/mirrorqueuehandler.php +++ b/plugins/SubMirror/lib/mirrorqueuehandler.php @@ -23,7 +23,6 @@ * @package SubMirror * @author Brion Vibber <brion@status.net> */ - class MirrorQueueHandler extends QueueHandler { function transport() @@ -37,7 +36,13 @@ class MirrorQueueHandler extends QueueHandler $mirror->subscribed = $notice->profile_id; if ($mirror->find()) { while ($mirror->fetch()) { - $mirror->mirrorNotice($notice); + try { + $mirror->mirrorNotice($notice); + } catch (Exception $e) { + common_log(LOG_ERR, "Exception trying to mirror notice $notice->id " . + "for subscriber $mirror->subscriber ($mirror->style): " . + $e->getMessage()); + } } } return true; diff --git a/plugins/SubMirror/locale/SubMirror.pot b/plugins/SubMirror/locale/SubMirror.pot new file mode 100644 index 0000000000..7635095721 --- /dev/null +++ b/plugins/SubMirror/locale/SubMirror.pot @@ -0,0 +1,130 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "" + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "" + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "" + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "" + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "" + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "" + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "" + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "" + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "" + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" diff --git a/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..05c1930b3f --- /dev/null +++ b/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po @@ -0,0 +1,141 @@ +# Translation of StatusNet - SubMirror to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Importez des flux d’information dans votre agenda !" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Mise en miroir" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Configurer la mise en miroir de messages provenant d’autres flux" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Flux distant :" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Utilisateur local" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Style de mise en miroir" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Répéter : référence le message de l’auteur d’origine (montré parfois comme « " +"RT @blabla »)" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "Reposter le contenu sous mon compte" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Sauvegarder" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Arrêter le miroir" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "Adresse URL de la page Web ou du flux :" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Ajouter le flux" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "Adresse URL de flux invalide." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Profil invalide pour la mise en miroir." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "Impossible de mettre en miroir un groupe StatusNet actuellement." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Cette action n’accepte que les requêtes de type POST." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Non connecté." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Abonné" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Profil invalide demandé à modifier." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Données de formulaire erronées." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Miroir inexistant demandé à modifier." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Impossible de vous abonner au flux." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Paramètres de miroir de flux" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"Vous pouvez mettre en miroir dans votre agenda StatusNet les mises à jour de " +"nombreux flux RSS et Atom !" diff --git a/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..50cc3d8038 --- /dev/null +++ b/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po @@ -0,0 +1,139 @@ +# Translation of StatusNet - SubMirror to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Importar syndicationes in tu chronologia!" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Republication" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Configurar le republication de messages de altere syndicationes" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Syndication remote:" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Usator local" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Stilo de republication" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Repeter: referer al message del usator original (monstrate a vices como 'RT " +"@pseudonymo')" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "Republicar le contento sub mi conto" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Salveguardar" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Cessar le republication" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "URL de pagina web o syndication:" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Adder syndication" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "URL de syndication invalide." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Profilo invalide pro republication." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "Al presente il es impossibile republicar un gruppo StatusNet." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Iste action accepta solmente le requestas de typo POST." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Tu non ha aperite un session." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Subscribite" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Requestava un profilo invalide a modificar." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Mal datos de formulario." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Requestava le modification de un speculo mancante." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Non poteva subscriber al syndication." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Configuration de speculo de syndication" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"Tu pote republicar actualisationes de multe syndicationes RSS e Atom in tu " +"chronologia de StatusNet!" diff --git a/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..2bcc38f26f --- /dev/null +++ b/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po @@ -0,0 +1,139 @@ +# Translation of StatusNet - SubMirror to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Повлекувајте каналски емитувања во Вашата хронологија!" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Отсликување" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Нагодување на отсликувањето на објавите од други канали" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Далечински канал:" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Локален корисник" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Стил на отсликување" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Повторување: наведете ја објавата на изворниот корисник (понекогаш се " +"прикажува како „RT @blah“)" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "Објави ја содржината под мојата сметка" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Зачувај" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Престани со отсликување" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "Мреж. страница или URL на каналот:" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Додај канал" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "Неважечка URL-адреса за каналот." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Неважечки профил за отсликување." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "Моментално не можам да отсликам група од StatusNet." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Оваа постапка прифаќа само POST-барања." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Не сте најавени." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Претплатено" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Побаран е неважечки профил за уредување." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Неисправни податоци за образецот." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Побаравте уредување на отсликување што недостасува." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Не можев да Ве претплатам на каналот." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Нагодувања на каналското отсликување" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"Можете да отсликувате поднови од многу RSS- и Atom-канали во Вашата " +"хронологија на StatusNet!" diff --git a/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..0a86484919 --- /dev/null +++ b/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po @@ -0,0 +1,141 @@ +# Translation of StatusNet - SubMirror to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Neem feeds op in uw tijdlijn!" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Spiegelen" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Spiegelen instellen voor berichten van andere feeds" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Bronfeed:" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Lokale gebruiker" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Spiegelstijl" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Herhalen: refereer aan het bericht van de originele gebruiker (wordt soms " +"weergegeven als \"RT @blah ...\")" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "De inhoud herhalen alsof die van mij komt" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Opslaan" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Spiegelen beëindigen" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "URL van webpagina of feed:" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Feed toevoegen" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "Ongeldige URL voor feed." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Ongeldig profiel om te spiegelen." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "Het is niet mogelijk om een StatusNet-groep te spiegelen." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Deze handeling accepteert alleen POST-verzoeken." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Niet aangemeld." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Geabonneerd" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Er is een ongeldig profiel opgevraagd om te bewerken." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Onjuiste formuliergegevens." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Er is een missende spiegel opgevraagd om te bewerken." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Het abonneren op de feed is mislukt." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Instellingen voor spiegelfeed" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"U kunt statusupdates vanuit veel RSS- en Atomfeeds spiegelen in uit " +"StatusNet-tijdlijn." diff --git a/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..fc0b2c4a45 --- /dev/null +++ b/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po @@ -0,0 +1,139 @@ +# Translation of StatusNet - SubMirror to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Hilahin ang mga pakain papasok sa iyong guhit ng panahon!" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Sinasalamin" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Iayos ang pagsasalamin ng mga pagpapaskil mula sa ibang mga pakain" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Pakaing malayo:" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Katutubong tagagamit" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Estilo ng pagsasalamin" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Ulitin: sangguniin ang orihinal na pagpapaskil ng tagagamit (minsang " +"ipinapakita bilang 'RT @blah')" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "Muling ipaskil ang nilalaman sa ilalim ng aking akawnt" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Sagipin" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Ihinto ang pagsasalamin" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "URL ng pahina sa web o pakain:" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Idagdag ang pakain" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "Hindi tanggap na URL ng pakain." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Hindi tanggap na balangkas para sa pagsasalamin." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "Hindi maisalamin sa ngayon ang isang pangkat ng StatusNet." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Ang galaw na ito ay tumatanggap lamang ng mga kahilingang POST." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "May isang suliranin sa iyong token ng sesyon. Pakisubukan uli." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Hindi nakalagda." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Tumanggap ng sipi" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Hiniling na pamamatnugutang hindi tanggap na balangkas." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Datong may masamang anyo." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Hiniling na pagpatnugot ng nawawalang salamin." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Hindi magawang makatanggap ng pakain." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Mga katakdaan ng salamin ng pakain" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"Maisasalamin mo ang mga pagsasapanahon mula sa maraming mga pakain ng RSS at " +"Atom sa iyong guhit ng panahon ng StatusNet!" diff --git a/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po new file mode 100644 index 0000000000..0529c6667e --- /dev/null +++ b/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po @@ -0,0 +1,140 @@ +# Translation of StatusNet - SubMirror to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubMirror\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:12:59+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-submirror\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: SubMirrorPlugin.php:90 +msgid "Pull feeds into your timeline!" +msgstr "Стягування веб-каналів до вашої стрічки повідомлень!" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: SubMirrorPlugin.php:109 +msgctxt "MENU" +msgid "Mirroring" +msgstr "Дзеркала" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: SubMirrorPlugin.php:111 +msgid "Configure mirroring of posts from other feeds" +msgstr "Конфігурація віддзеркалення дописів з інших веб-стрічок" + +#: lib/editmirrorform.php:83 +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Віддалена веб-стрічка:" + +#: lib/editmirrorform.php:87 +msgctxt "LABEL" +msgid "Local user" +msgstr "Тутешній користувач" + +#: lib/editmirrorform.php:93 +msgid "Mirroring style" +msgstr "Форма віддзеркалення" + +#: lib/editmirrorform.php:95 +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Повторення: посилання до оригінального допису користувача (щось на зразок «RT " +"@pupkin»)" + +#: lib/editmirrorform.php:96 +msgid "Repost the content under my account" +msgstr "Повторення змісту під моїм акаунтом" + +#: lib/editmirrorform.php:115 +msgid "Save" +msgstr "Зберегти" + +#: lib/editmirrorform.php:117 +msgid "Stop mirroring" +msgstr "Зупинити віддзеркалення" + +#: lib/addmirrorform.php:59 +msgid "Web page or feed URL:" +msgstr "Веб-сторінка або ж URL-адреса стрічки:" + +#: lib/addmirrorform.php:64 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Додати веб-стрічку" + +#: actions/basemirror.php:71 +msgid "Invalid feed URL." +msgstr "Помилкова URL-адреса веб-стрічки." + +#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:83 +msgid "Invalid profile for mirroring." +msgstr "Помилковий профіль для віддзеркалення." + +#: actions/basemirror.php:101 +msgid "Can't mirror a StatusNet group at this time." +msgstr "На даний момент не можу віддзеркалювати спільноту на сайті StatusNet." + +#: actions/basemirror.php:115 +msgid "This action only accepts POST requests." +msgstr "Ця дія приймає запити лише за формою POST." + +#: actions/basemirror.php:123 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +#: actions/basemirror.php:133 +msgid "Not logged in." +msgstr "Ви не увійшли до системи." + +#: actions/basemirror.php:156 +msgid "Subscribed" +msgstr "Підписані" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "Було запитано невірний профіль для редагування." + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "Невірні дані форми." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "Запитано редагування зниклого дзеркала." + +#: actions/addmirror.php:72 +msgid "Could not subscribe to feed." +msgstr "Не можу підписатися до веб-стрічки." + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "Налаштування дзеркала веб-стрічки" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" +"Ви маєте можливість віддзеркалювати оновлення багатьох веб-стрічок формату " +"RSS або Atom одразу до стрічки своїх дописів на сайті StatusNet!" diff --git a/plugins/SubscriptionThrottlePlugin.php b/plugins/SubscriptionThrottle/SubscriptionThrottlePlugin.php similarity index 100% rename from plugins/SubscriptionThrottlePlugin.php rename to plugins/SubscriptionThrottle/SubscriptionThrottlePlugin.php diff --git a/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot b/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot new file mode 100644 index 0000000000..4ab4414ad2 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "" diff --git a/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..8370877760 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Konfigurierbare Limits für Abonnements und Gruppenmitgliedschaften." diff --git a/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..6b5b43f1ec --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SubscriptionThrottle to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "" +"Límites configurables para las suscripciones y adhesiones a los grupos." diff --git a/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..335867a733 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Limites configurables pour les abonnements et adhésions aux groupes." diff --git a/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..42cfcfdb5f --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "הגבלות מינוי וחברות בקבוצות הניתנות להגדרה." diff --git a/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..f4cd22d802 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Limites configurabile pro subscriptiones e membrato de gruppos." diff --git a/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..e0e6fbce09 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SubscriptionThrottle to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "" +"Batasan yang dapat disesuaikan untuk langganan dan keanggotaan kelompok." diff --git a/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..1ba7e3328d --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Прилагодливи ограничувања за претплата и членства во групи." diff --git a/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..9a2c8594d5 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Konfigurerbare grenser for abonnement og gruppemedlemsskap." diff --git a/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..4dcd28b4ef --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SubscriptionThrottle to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "In te stellen limieten voor abonnementen en groepslidmaatschappen." diff --git a/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..65a40d0682 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - SubscriptionThrottle to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "Настраиваемые ограничения на подписки и членство в группах." diff --git a/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..17d69556f7 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - SubscriptionThrottle to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:00+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "" +"Maisasaayos na mga hangganan para sa mga pagtatanggap at mga kasapian sa " +"pangkat." diff --git a/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po new file mode 100644 index 0000000000..f6c080df33 --- /dev/null +++ b/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - SubscriptionThrottle to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SubscriptionThrottle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:01+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:07+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: SubscriptionThrottlePlugin.php:171 +msgid "Configurable limits for subscriptions and group memberships." +msgstr "" +"З допомогою цього додатку можна обмежувати кількість можливих підписок для " +"певного користувача, а також зазначати можливу кількість спільнот, до яких " +"користувач має право долучитися." diff --git a/plugins/TabFocus/TabFocusPlugin.php b/plugins/TabFocus/TabFocusPlugin.php index 46e329d8a4..dd8a972767 100644 --- a/plugins/TabFocus/TabFocusPlugin.php +++ b/plugins/TabFocus/TabFocusPlugin.php @@ -51,7 +51,7 @@ class TabFocusPlugin extends Plugin 'author' => 'Craig Andrews and Paul Irish', 'homepage' => 'http://status.net/wiki/Plugin:TabFocus', 'rawdescription' => - _m('TabFocus changes the notice form behavior so that, while in the text area, pressing the tab key focuses the "Send" button, matching the behavor of Twitter.')); + _m('TabFocus changes the notice form behavior so that, while in the text area, pressing the tab key focuses the "Send" button, matching the behavior of Twitter.')); return true; } } diff --git a/plugins/TabFocus/locale/TabFocus.pot b/plugins/TabFocus/locale/TabFocus.pot index 3b0e3c261b..019adbc866 100644 --- a/plugins/TabFocus/locale/TabFocus.pot +++ b/plugins/TabFocus/locale/TabFocus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -19,6 +19,6 @@ msgstr "" #: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " -"pressing the tab key focuses the \"Send\" button, matching the behavor of " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " "Twitter." msgstr "" diff --git a/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..36cf6726b5 --- /dev/null +++ b/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:01+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus a gemm emzalc'h ar furmskrid kemennoù evit ma vefe kaset ar fokus " +"war ar bouton \"Kas\" pa bouezer war a stokell taolennata adalek ar zonenn " +"testenn, ar pezh a glot gant emzalc'h Twitter." diff --git a/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..6979a26513 --- /dev/null +++ b/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:01+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus Cambia el comportamiento del formulario del aviso de modo que, al " +"estar en el área de texto, pulsar la tecla de tabulación se enfoque en el " +"botón \"Enviar\", al igual que en el comportamiento de Twitter." diff --git a/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..a61b6413ba --- /dev/null +++ b/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus change le comportement du formulaire d’avis afin que l’appui sur la " +"touche tabulation depuis la zone de texte envoie le focus sur le bouton « " +"Envoyer », ce qui correspond au comportement de Twitter." diff --git a/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..0dd7dc9f64 --- /dev/null +++ b/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus cambia o comportamento do formulario de notas de modo que, estando " +"na zona de texto, ao premer a tecla de tabulación se enfoca o botón \"Enviar" +"\", do mesmo xeito que o Twitter." diff --git a/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..320e68aad6 --- /dev/null +++ b/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - TabFocus to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"התוסף TabFocus משנה את צורת התנהגות ההתרעה כך שבכל זמן שישנה פעילות באזור " +"טקסט לחיצה על לחצן ה־tab מתמקדת על הלחצן \"שליחה\", בדומה להתנהגות ב־Twitter." diff --git a/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..21d4232e5f --- /dev/null +++ b/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus modifica le comportamento del formulario de notas de sorta que " +"premer le clave Tab desde le area de texto mitte le puncto focal sur le " +"button \"Inviar\", lo que corresponde al comportamento de Twitter." diff --git a/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..46aa191ea6 --- /dev/null +++ b/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus mengubah kelakuan bentuk pemberitahuan sehingga ketika berada dalam " +"area teks, menekan tombol tab akan memunculkan tombol \"Kirim\", menyerupai " +"kelakuan Twitter." diff --git a/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..3c674d107d --- /dev/null +++ b/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus го менува поведението на образецот за забелешки: со пристискање на " +"копчето Tab во местото за текст се означува копчето „Прати“, така " +"поситоветувајќи се со поведението на Twitter." diff --git a/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..a6f6dd5da9 --- /dev/null +++ b/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus endrer notisskjemaets oppførsel slik at når man er tekstområdet vil " +"et trykk på tab-knappen fokusere på «Send»-knappen, samsvarende med " +"oppførselen til Twitter." diff --git a/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..95387ecc63 --- /dev/null +++ b/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - TabFocus to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: McDutchie +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus wijzigt het gedrag van het mededelingenformulier zodat, wanneer u " +"vanuit het tekstvak op de Tab-toets drukt, de focus op de knop \"Verzenden\" " +"wordt gericht, net als in Twitter." diff --git a/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..0383e29177 --- /dev/null +++ b/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - TabFocus to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus изменяет поведение формы уведомлений таким образом что, если в " +"текстовом поле нажать клавишу табуляции, то фокус переключится кнопку " +"«Отправить», повторяя поведение интерфейса Twitter." diff --git a/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..c91e3ba786 --- /dev/null +++ b/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po @@ -0,0 +1,32 @@ +# Translation of StatusNet - TabFocus to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:02+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"Binabago ng TabFocus ang ugali ng anyo ng pabatid upang, habang nasa loob ng " +"lugar ng teksto, ang pagpindot sa susi ng panglaylay ay tumutuon sa " +"pindutang \"Ipadala\", na tumutugma sa ugali ng Twitter." diff --git a/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po new file mode 100644 index 0000000000..beda21dbbc --- /dev/null +++ b/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - TabFocus to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TabFocus\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:35:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-tabfocus\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TabFocusPlugin.php:54 +msgid "" +"TabFocus changes the notice form behavior so that, while in the text area, " +"pressing the tab key focuses the \"Send\" button, matching the behavior of " +"Twitter." +msgstr "" +"TabFocus змінює поведінку форми надсилання дописів таким чином, що натиснута " +"у вікні вводу повідомлення клавіша «Tab» перебирає на себе функцію кнопки " +"«Надіслати» («Так»), що імітує інтерфейс Твіттера." diff --git a/plugins/TemplatePlugin.php b/plugins/Template/TemplatePlugin.php similarity index 100% rename from plugins/TemplatePlugin.php rename to plugins/Template/TemplatePlugin.php diff --git a/plugins/TightUrl/locale/TightUrl.pot b/plugins/TightUrl/locale/TightUrl.pot index 10f59a1e86..83e156af5b 100644 --- a/plugins/TightUrl/locale/TightUrl.pot +++ b/plugins/TightUrl/locale/TightUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..59f394824a --- /dev/null +++ b/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TightUrl to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Benutzung des <a href=\"http://%1$s/\">%1$s</a>-URL-Kürzungsdienstes." diff --git a/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..bbadb535ad --- /dev/null +++ b/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TightUrl to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza el servicio de acortamiento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..09e6e50693 --- /dev/null +++ b/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utilise le service de raccourcissement d’URL <a href=\"http://%1$s/\">%1$s</" +"a>." diff --git a/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..25bbc4d156 --- /dev/null +++ b/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TightUrl to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "שימוש בשירות קיצור הכתובות <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..2b26c31633 --- /dev/null +++ b/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TightUrl to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Usa le servicio de accurtamento de URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..1c7f1f4a3b --- /dev/null +++ b/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TightUrl to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Menggunakan layanan pemendek URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..dc5bd24411 --- /dev/null +++ b/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TightUrl to Japanese (日本語) +# Expored from translatewiki.net +# +# Author: 青子守歌 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ja\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "<a href=\"http://%1$s/\">%1$s</a>をURL短縮サービスとして利用する。" diff --git a/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..e8604d451d --- /dev/null +++ b/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Користи <a href=\"http://%1$s/\">%1$s</a> - служба за скратување на URL-" +"адреси." diff --git a/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..efb1a31d77 --- /dev/null +++ b/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TightUrl to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Bruker URL-forkortertjenesten <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..c6760c2a23 --- /dev/null +++ b/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:03+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gebruikt de dienst <a href=\"http://%1$s/\">%1$s</a> om URL's korter te " +"maken." diff --git a/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..950d7965f7 --- /dev/null +++ b/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Utiliza o serviço de encurtamento de URL <a href=\"http://%1$s/\">%1$s</a>" diff --git a/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..f8df97c6b2 --- /dev/null +++ b/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TightUrl to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "Использование службы сокращения URL <a href=\"http://%1$s/\">%1$s</a>." diff --git a/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..9c333ba912 --- /dev/null +++ b/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Gumagamit ng palingkurang pampaiksi ng URL na <a href=\"http://%1$s/\">%1$s</" +"a>" diff --git a/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po new file mode 100644 index 0000000000..b9d70ef9a5 --- /dev/null +++ b/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TightUrl to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TightUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:18+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-tighturl\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TightUrlPlugin.php:68 +#, php-format +msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service." +msgstr "" +"Використання <a href=\"http://%1$s/\">%1$s</a> для скорочення URL-адрес." diff --git a/plugins/TinyMCE/TinyMCEPlugin.php b/plugins/TinyMCE/TinyMCEPlugin.php index ca16f60591..e0640ebdf3 100644 --- a/plugins/TinyMCE/TinyMCEPlugin.php +++ b/plugins/TinyMCE/TinyMCEPlugin.php @@ -48,12 +48,16 @@ if (!defined('STATUSNET')) { */ class TinyMCEPlugin extends Plugin { - var $html; + // By default, TinyMCE editor will be available to all users. + // With restricted on, only users who have been granted the + // "richedit" role get it. + public $restricted = false; + function onEndShowScripts($action) { - if (common_logged_in ()) { + if (common_logged_in() && $this->isAllowedRichEdit()) { $action->script(common_path('plugins/TinyMCE/js/jquery.tinymce.js')); $action->inlineScript($this->_inlineScript()); } @@ -63,7 +67,9 @@ class TinyMCEPlugin extends Plugin function onEndShowStyles($action) { - $action->style('span#notice_data-text_container, span#notice_data-text_parent { float: left }'); + if ($this->isAllowedRichEdit()) { + $action->style('span#notice_data-text_container, span#notice_data-text_parent { float: left }'); + } return true; } @@ -74,7 +80,7 @@ class TinyMCEPlugin extends Plugin 'author' => 'Evan Prodromou', 'homepage' => 'http://status.net/wiki/Plugin:TinyMCE', 'rawdescription' => - _m('Use TinyMCE library to allow rich text editing in the browser')); + _m('Use TinyMCE library to allow rich text editing in the browser.')); return true; } @@ -108,7 +114,7 @@ class TinyMCEPlugin extends Plugin /** * Hook for new-notice form processing to take our HTML goodies; * won't affect API posting etc. - * + * * @param NewNoticeAction $action * @param User $user * @param string $content @@ -117,7 +123,7 @@ class TinyMCEPlugin extends Plugin */ function onStartSaveNewNoticeWeb($action, $user, &$content, &$options) { - if ($action->arg('richedit')) { + if ($action->arg('richedit') && $this->isAllowedRichEdit()) { $html = $this->sanitizeHtml($content); $options['rendered'] = $html; $content = $this->stripHtml($html); @@ -136,7 +142,7 @@ class TinyMCEPlugin extends Plugin */ function onStartSaveNewNoticeAppendAttachment($action, $media, &$content, &$options) { - if ($action->arg('richedit')) { + if ($action->arg('richedit') && $this->isAllowedRichEdit()) { // See if we've got a placeholder inline image; if so, fill it! $dom = new DOMDocument(); @@ -159,9 +165,9 @@ class TinyMCEPlugin extends Plugin /** * Format the attachment placeholder img with the final version. - * + * * @param DOMElement $img - * @param MediaFile $media + * @param MediaFile $media */ private function formatAttachment($img, $media) { @@ -322,4 +328,22 @@ END_OF_SCRIPT; return $scr; } + /** + * Does the current user have permission to use the rich-text editor? + * Always true unless the plugin's "restricted" setting is on, in which + * case it's limited to users with the "richedit" role. + * + * @fixme make that more sanely configurable :) + * + * @return boolean + */ + private function isAllowedRichEdit() + { + if ($this->restricted) { + $user = common_current_user(); + return !empty($user) && $user->hasRole('richedit'); + } else { + return true; + } + } } diff --git a/plugins/TinyMCE/locale/TinyMCE.pot b/plugins/TinyMCE/locale/TinyMCE.pot new file mode 100644 index 0000000000..725dc0675a --- /dev/null +++ b/plugins/TinyMCE/locale/TinyMCE.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" diff --git a/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..ec74749a3c --- /dev/null +++ b/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Esperanto (Esperanto) +# Expored from translatewiki.net +# +# Author: Eliovir +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Esperanto <http://translatewiki.net/wiki/Portal:eo>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: eo\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Uzas la bibliotekon TinyMCE por ebligi redakton de riĉigita teksto en la " +"retumilo." diff --git a/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..1e783df8b6 --- /dev/null +++ b/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Utiliza la biblioteca TinyMCE para permitir la edición de texto enriquecido " +"en el navegador." diff --git a/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..38fdbfd5a7 --- /dev/null +++ b/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Utiliser la bibliothèque TinyMCE pour permettre la modification de texte " +"enrichi dans le navigateur." diff --git a/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..0dc5ce731f --- /dev/null +++ b/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - TinyMCE to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "שימוש בספרייה TinyMCE כדי לאפשר עריכת טקסט עשיר באמצעות הדפדפן." diff --git a/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..252f41a71a --- /dev/null +++ b/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Usar le bibliotheca TinyMCE pro permitter le modification de texto " +"inricchite in le navigator." diff --git a/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..9f71ef3bca --- /dev/null +++ b/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Gunakan pustaka TinyMCE untuk memungkinkan penyuntingan teks kaya pada " +"peramban." diff --git a/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..71f5f3d056 --- /dev/null +++ b/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Користи ја библиотеката TinyMCE за уредување со збогатен текст во " +"прелистувачот." diff --git a/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..767061d80b --- /dev/null +++ b/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - TinyMCE to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Bruk TinyMCE-biblioteket for å tillate rik tekstredigering i nettleseren." diff --git a/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..d4c927e53f --- /dev/null +++ b/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - TinyMCE to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "TinyMCE gebruiken om WYSIWYG-bewerken in de browser mogelijk te maken." diff --git a/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..6cfb5d75f7 --- /dev/null +++ b/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Utilizar a biblioteca TinyMCE para permitir edição em rich text no navegador." diff --git a/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..0bb7b575a9 --- /dev/null +++ b/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:04+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Использование библиотеки TinyMCE, для редактирования текста в браузере." diff --git a/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..5ecf01f339 --- /dev/null +++ b/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - TinyMCE to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:05+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Gamitin ang aklatan ng TinyMCE upang pahintulutan ang pamamatnugot ng " +"mayamang teksto sa pantingin-tingin." diff --git a/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po new file mode 100644 index 0000000000..b564f27e96 --- /dev/null +++ b/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - TinyMCE to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TinyMCE\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:05+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-tinymce\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: TinyMCEPlugin.php:83 +msgid "Use TinyMCE library to allow rich text editing in the browser." +msgstr "" +"Використання бібліотеки TinyMCE для простого форматування тексту у вікні " +"браузера." diff --git a/plugins/TwitterBridge/Notice_to_status.php b/plugins/TwitterBridge/Notice_to_status.php new file mode 100644 index 0000000000..3b8f816cfc --- /dev/null +++ b/plugins/TwitterBridge/Notice_to_status.php @@ -0,0 +1,187 @@ +<?php +/** + * Data class for remembering notice-to-status mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for mapping notices to statuses + * + * Notices flow back and forth between Twitter and StatusNet. We use this + * table to remember which StatusNet notice corresponds to which Twitter + * status. + * + * Note that notice_id is unique only within a single database; if you + * want to share this data for some reason, get the notice's URI and use + * that instead, since it's universally unique. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Notice_to_status extends Memcached_DataObject +{ + public $__table = 'notice_to_status'; // table name + public $notice_id; // int(4) primary_key not_null + public $status_id; // int(4) + public $created; // datetime + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Notice_to_status object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Notice_to_status', $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('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'status_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('notice_id' => 'K', 'status_id' => 'U'); + } + + /** + * 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); + } + + /** + * Save a mapping between a notice and a status + * Warning: status_id values may not fit in 32-bit integers. + * + * @param integer $notice_id ID of the notice in StatusNet + * @param integer $status_id ID of the status in Twitter + * + * @return Notice_to_status new object for this value + */ + + static function saveNew($notice_id, $status_id) + { + if (empty($notice_id)) { + throw new Exception("Invalid notice_id $notice_id"); + } + $n2s = Notice_to_status::staticGet('notice_id', $notice_id); + + if (!empty($n2s)) { + return $n2s; + } + + if (empty($status_id)) { + throw new Exception("Invalid status_id $status_id"); + } + $n2s = Notice_to_status::staticGet('status_id', $status_id); + + if (!empty($n2s)) { + return $n2s; + } + + common_debug("Mapping notice {$notice_id} to Twitter status {$status_id}"); + + $n2s = new Notice_to_status(); + + $n2s->notice_id = $notice_id; + $n2s->status_id = $status_id; + $n2s->created = common_sql_now(); + + $n2s->insert(); + + return $n2s; + } +} diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index d7dfe20de5..10ea35b2b6 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -62,6 +62,14 @@ unless you configure it with a consumer key and secret.) $config['twitter']['global_consumer_key'] = 'YOUR_CONSUMER_KEY'; $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET'; +Upgrade +------- + +If you've used the Twitter bridge plugin prior to version 0.9.5, +you'll need to run the new scripts/initialize_notice_to_status.php +script to initialize the new notice-to-status mapping file, which +greatly improves the integration between StatusNet and Twitter. + Administration panel -------------------- diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 0505a328fb..b2dce6f1c0 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -45,17 +45,14 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; * @link http://status.net/ * @link http://twitter.com/ */ - class TwitterBridgePlugin extends Plugin { - const VERSION = STATUSNET_VERSION; public $adminImportControl = false; // Should the 'import' checkbox be exposed in the admin panel? /** * Initializer for the plugin. */ - function initialize() { // Allow the key and secret to be passed in @@ -86,7 +83,6 @@ class TwitterBridgePlugin extends Plugin * * @return boolean result */ - static function hasKeys() { $ckey = common_config('twitter', 'consumer_key'); @@ -113,7 +109,6 @@ class TwitterBridgePlugin extends Plugin * * @return boolean hook return */ - function onRouterInitialized($m) { $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); @@ -194,18 +189,29 @@ class TwitterBridgePlugin extends Plugin */ function onAutoload($cls) { + $dir = dirname(__FILE__); + switch ($cls) { case 'TwittersettingsAction': case 'TwitterauthorizationAction': case 'TwitterloginAction': case 'TwitteradminpanelAction': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower(mb_substr($cls, 0, -6)) . '.php'; + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; case 'TwitterOAuthClient': case 'TwitterQueueHandler': - include_once INSTALLDIR . '/plugins/TwitterBridge/' . - strtolower($cls) . '.php'; + case 'TwitterImport': + case 'JsonStreamReader': + case 'TwitterStreamReader': + include_once $dir . '/' . strtolower($cls) . '.php'; + return false; + case 'TwitterSiteStream': + case 'TwitterUserStream': + include_once $dir . '/twitterstreamreader.php'; + return false; + case 'Notice_to_status': + case 'Twitter_synch_status': + include_once $dir . '/' . $cls . '.php'; return false; default: return true; @@ -268,7 +274,11 @@ class TwitterBridgePlugin extends Plugin function onEndInitializeQueueManager($manager) { if (self::hasKeys()) { + // Outgoing notices -> twitter $manager->connect('twitter', 'TwitterQueueHandler'); + + // Incoming statuses <- twitter + $manager->connect('tweetin', 'TweetInQueueHandler'); } return true; } @@ -306,7 +316,6 @@ class TwitterBridgePlugin extends Plugin * * @return boolean hook value */ - function onPluginVersion(&$versions) { $versions[] = array( @@ -315,8 +324,8 @@ class TwitterBridgePlugin extends Plugin 'author' => 'Zach Copley, Julien C', 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', 'rawdescription' => _m( - 'The Twitter "bridge" plugin allows you to integrate ' . - 'your StatusNet instance with ' . + 'The Twitter "bridge" plugin allows integration ' . + 'of a StatusNet instance with ' . '<a href="http://twitter.com/">Twitter</a>.' ) ); @@ -335,5 +344,190 @@ class TwitterBridgePlugin extends Plugin return (bool)$this->adminImportControl; } -} + /** + * When the site is set to ssl=sometimes mode, we should make sure our + * various auth-related pages are on SSL to keep things looking happy. + * Although we're not submitting passwords directly, we do link out to + * an authentication source and it's a lot happier if we've got some + * protection against MitM. + * + * @param string $action name + * @param boolean $ssl outval to force SSL + * @return mixed hook return value + */ + function onSensitiveAction($action, &$ssl) + { + $sensitive = array('twitteradminpanel', + 'twittersettings', + 'twitterauthorization', + 'twitterlogin'); + if (in_array($action, $sensitive)) { + $ssl = true; + return false; + } else { + return true; + } + } + /** + * Database schema setup + * + * We maintain a table mapping StatusNet notices to Twitter statuses + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + + // For saving the last-synched status of various timelines + // home_timeline, messages (in), messages (out), ... + + $schema->ensureTable('twitter_synch_status', + array(new ColumnDef('foreign_id', 'bigint', null, + false, 'PRI'), + new ColumnDef('timeline', 'varchar', 255, + false, 'PRI'), + new ColumnDef('last_id', 'bigint', null, // XXX: check for PostgreSQL + false), + new ColumnDef('created', 'datetime', null, + false), + new ColumnDef('modified', 'datetime', null, + false))); + + // For storing user-submitted flags on profiles + + $schema->ensureTable('notice_to_status', + array(new ColumnDef('notice_id', 'integer', null, + false, 'PRI'), + new ColumnDef('status_id', 'bigint', null, // XXX: check for PostgreSQL + false, 'UNI'), + new ColumnDef('created', 'datetime', null, + false))); + + return true; + } + + /** + * If a notice gets deleted, remove the Notice_to_status mapping and + * delete the status on Twitter. + * + * @param User $user The user doing the deleting + * @param Notice $notice The notice getting deleted + * + * @return boolean hook value + */ + function onStartDeleteOwnNotice(User $user, Notice $notice) + { + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + + if (!empty($n2s)) { + + $flink = Foreign_link::getByUserID($notice->profile_id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping deleting notice for {$notice->id} since link is not OAuth."); + return true; + } + + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->statusesDestroy($n2s->status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to delete bridged notice from Twitter: " . $e->getMessage()); + } + + $n2s->delete(); + } + return true; + } + + /** + * Notify remote users when their notices get favorited. + * + * @param Profile or User $profile of local user doing the faving + * @param Notice $notice being favored + * @return hook return value + */ + function onEndFavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesCreate($status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to favorite bridged notice on Twitter: " . $e->getMessage()); + } + + return true; + } + + /** + * Notify remote users when their notices get de-favorited. + * + * @param Profile $profile Profile person doing the de-faving + * @param Notice $notice Notice being favored + * + * @return hook return value + */ + function onEndDisfavorNotice(Profile $profile, Notice $notice) + { + $flink = Foreign_link::getByUserID($profile->id, + TWITTER_SERVICE); // twitter service + + if (empty($flink)) { + return true; + } + + if (!TwitterOAuthClient::isPackedToken($flink->credentials)) { + $this->log(LOG_INFO, "Skipping fave processing for {$profile->id} since link is not OAuth."); + return true; + } + + $status_id = twitter_status_id($notice); + + if (empty($status_id)) { + return true; + } + + try { + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $client->favoritesDestroy($status_id); + } catch (Exception $e) { + common_log(LOG_ERR, "Error attempting to unfavorite bridged notice on Twitter: " . $e->getMessage()); + } + + return true; + } +} diff --git a/plugins/TwitterBridge/Twitter_synch_status.php b/plugins/TwitterBridge/Twitter_synch_status.php new file mode 100644 index 0000000000..a8337862c8 --- /dev/null +++ b/plugins/TwitterBridge/Twitter_synch_status.php @@ -0,0 +1,192 @@ +<?php +/** + * Store last-touched ID for various timelines + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Store various timeline data + * + * We don't want to keep re-fetching the same statuses and direct messages from Twitter. + * So, we store the last ID we see from a timeline, and store it. Next time + * around, we use that ID in the since_id parameter. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou <evan@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ +class Twitter_synch_status extends Memcached_DataObject +{ + public $__table = 'twitter_synch_status'; // table name + public $foreign_id; // int(4) primary_key not_null + public $timeline; // varchar(255) primary_key not_null + public $last_id; // bigint not_null + public $created; // datetime not_null + public $modified; // datetime not_null + + /** + * Get an instance by key + * + * @param string $k Key to use to lookup (usually 'foreign_id' for this class) + * @param mixed $v Value to lookup + * + * @return Twitter_synch_status object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + throw new Exception("Use pkeyGet() for this class."); + } + + /** + * Get an instance by compound primary key + * + * @param array $kv key-value pair array + * + * @return Twitter_synch_status object found, or null for no hits + * + */ + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Twitter_synch_status', $kv); + } + + /** + * 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('foreign_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'timeline' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'last_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, + 'modified' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL + ); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + function keyTypes() + { + return array('foreign_id' => 'K', + 'timeline' => '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); + } + + static function getLastId($foreign_id, $timeline) + { + $tss = self::pkeyGet(array('foreign_id' => $foreign_id, + 'timeline' => $timeline)); + + if (empty($tss)) { + return null; + } else { + return $tss->last_id; + } + } + + static function setLastId($foreign_id, $timeline, $last_id) + { + $tss = self::pkeyGet(array('foreign_id' => $foreign_id, + 'timeline' => $timeline)); + + if (empty($tss)) { + $tss = new Twitter_synch_status(); + + $tss->foreign_id = $foreign_id; + $tss->timeline = $timeline; + $tss->last_id = $last_id; + $tss->created = common_sql_now(); + $tss->modified = $tss->created; + + $tss->insert(); + + return true; + } else { + $orig = clone($tss); + + $tss->last_id = $last_id; + $tss->modified = common_sql_now(); + + $tss->update(); + + return true; + } + } +} diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index df7da0943d..38a8b89ebb 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -33,7 +33,6 @@ END_OF_TRIM_HELP; require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/parallelizingdaemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** @@ -46,7 +45,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class SyncTwitterFriendsDaemon extends ParallelizingDaemon { /** @@ -60,7 +58,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon * @return void * **/ - function __construct($id = null, $interval = 60, $max_children = 2, $debug = null) { @@ -72,7 +69,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon * * @return string Name of the daemon. */ - function name() { return ('synctwitterfriends.' . $this->_id); @@ -111,12 +107,10 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon } function childTask($flink) { - // Each child ps needs its own DB connection // Note: DataObject::getDatabaseConnection() creates // a new connection if there isn't one already - $conn = &$flink->getDatabaseConnection(); $this->subscribeTwitterFriends($flink); @@ -128,7 +122,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon // XXX: Couldn't find a less brutal way to blow // away a cached connection - global $_DB_DATAOBJECT; unset($_DB_DATAOBJECT['CONNECTIONS']); } @@ -144,8 +137,8 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . '- Grabbing friends IDs with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . '- Grabbing friends IDs with basic auth.'); + common_debug("Skipping Twitter friends for {$flink->user_id} since not OAuth."); + return $friends; } try { @@ -278,4 +271,3 @@ if (have_option('d') || have_option('debug')) { $syncer = new SyncTwitterFriendsDaemon($id, 60, 2, $debug); $syncer->runOnce(); - diff --git a/plugins/TwitterBridge/daemons/twitterdaemon.php b/plugins/TwitterBridge/daemons/twitterdaemon.php new file mode 100644 index 0000000000..d313d2de96 --- /dev/null +++ b/plugins/TwitterBridge/daemons/twitterdaemon.php @@ -0,0 +1,314 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008-2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$shortoptions = 'fi::a'; +$longoptions = array('id::', 'foreground', 'all'); + +$helptext = <<<END_OF_XMPP_HELP +Daemon script for receiving new notices from Twitter users. + + -i --id Identity (default none) + -a --all Handle Twitter for all local sites + (requires Stomp queue handler, status_network setup) + -f --foreground Stay in the foreground (default background) + +END_OF_XMPP_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +require_once INSTALLDIR . '/lib/jabber.php'; + +class TwitterDaemon extends SpawningDaemon +{ + protected $allsites = false; + + function __construct($id=null, $daemonize=true, $threads=1, $allsites=false) + { + if ($threads != 1) { + // This should never happen. :) + throw new Exception("TwitterDaemon must run single-threaded"); + } + parent::__construct($id, $daemonize, $threads); + $this->allsites = $allsites; + } + + function runThread() + { + common_log(LOG_INFO, 'Waiting to listen to Twitter and queues'); + + $master = new TwitterMaster($this->get_id(), $this->processManager()); + $master->init($this->allsites); + $master->service(); + + common_log(LOG_INFO, 'terminating normally'); + + return $master->respawn ? self::EXIT_RESTART : self::EXIT_SHUTDOWN; + } + +} + +class TwitterMaster extends IoMaster +{ + protected $processManager; + + function __construct($id, $processManager) + { + parent::__construct($id); + $this->processManager = $processManager; + } + + /** + * Initialize IoManagers for the currently configured site + * which are appropriate to this instance. + */ + function initManagers() + { + $qm = QueueManager::get(); + $qm->setActiveGroup('twitter'); + $this->instantiate($qm); + $this->instantiate(new TwitterManager()); + $this->instantiate($this->processManager); + } +} + + +class TwitterManager extends IoManager +{ + // Recommended resource limits from http://dev.twitter.com/pages/site_streams + const MAX_STREAMS = 1000; + const USERS_PER_STREAM = 100; + const STREAMS_PER_SECOND = 20; + + protected $streams; + protected $users; + + /** + * Pull the site's active Twitter-importing users and start spawning + * some data streams for them! + * + * @fixme check their last-id and check whether we'll need to do a manual pull. + * @fixme abstract out the fetching so we can work over multiple sites. + */ + protected function initStreams() + { + common_log(LOG_INFO, 'init...'); + // Pull Twitter user IDs for all users we want to pull data for + $flink = new Foreign_link(); + $flink->service = TWITTER_SERVICE; + // @fixme probably should do the bitfield check in a whereAdd but it's ugly :D + $flink->find(); + + $userIds = array(); + while ($flink->fetch()) { + if (($flink->noticesync & FOREIGN_NOTICE_RECV) == + FOREIGN_NOTICE_RECV) { + $userIds[] = $flink->foreign_id; + + if (count($userIds) >= self::USERS_PER_STREAM) { + $this->spawnStream($userIds); + $userIds = array(); + } + } + } + + if (count($userIds)) { + $this->spawnStream($userIds); + } + } + + /** + * Prepare a Site Stream connection for the given chunk of users. + * The actual connection will be opened later. + * + * @param $userIds array of Twitter-side user IDs + */ + protected function spawnStream($userIds) + { + $stream = $this->initSiteStream(); + $stream->followUsers($userIds); + + // Slip the stream reader into our list of active streams. + // We'll manage its actual connection on the next go-around. + $this->streams[] = $stream; + + // Record the user->stream mappings; this makes it easier for us to know + // later if we need to kill something. + foreach ($userIds as $id) { + $this->users[$id] = $stream; + } + } + + /** + * Initialize a generic site streams connection object. + * All our connections will look like this, then we'll add users to them. + * + * @return TwitterStreamReader + */ + protected function initSiteStream() + { + $auth = $this->siteStreamAuth(); + $stream = new TwitterSiteStream($auth); + + // Add our event handler callbacks. Whee! + $this->setupEvents($stream); + return $stream; + } + + /** + * Fetch the Twitter OAuth credentials to use to connect to the Site Streams API. + * + * This will use the locally-stored credentials for the applictation's owner account + * from the site configuration. These should be configured through the administration + * panels or manually in the config file. + * + * Will throw an exception if no credentials can be found -- but beware that invalid + * credentials won't cause breakage until later. + * + * @return TwitterOAuthClient + */ + protected function siteStreamAuth() + { + $token = common_config('twitter', 'stream_token'); + $secret = common_config('twitter', 'stream_secret'); + if (empty($token) || empty($secret)) { + throw new ServerException('Twitter site streams have not been correctly configured. Configure the app owner account via the admin panel.'); + } + return new TwitterOAuthClient($token, $secret); + } + + /** + * Collect the sockets for all active connections for i/o monitoring. + * + * @return array of resources + */ + public function getSockets() + { + $sockets = array(); + foreach ($this->streams as $stream) { + foreach ($stream->getSockets() as $socket) { + $sockets[] = $socket; + } + } + return $sockets; + } + + /** + * We're ready to process input from one of our data sources! Woooooo! + * @fixme is there an easier way to map from socket back to owning module? :( + * + * @param resource $socket + * @return boolean success + */ + public function handleInput($socket) + { + foreach ($this->streams as $stream) { + foreach ($stream->getSockets() as $aSocket) { + if ($socket === $aSocket) { + $stream->handleInput($socket); + } + } + } + return true; + } + + /** + * Start the i/o system up! Prepare our connections and start opening them. + * + * @fixme do some rate-limiting on the stream setup + * @fixme do some sensible backoff on failure etc + */ + public function start() + { + $this->initStreams(); + foreach ($this->streams as $stream) { + $stream->connect(); + } + return true; + } + + /** + * Close down our connections when the daemon wraps up for business. + */ + public function finish() + { + foreach ($this->streams as $index => $stream) { + $stream->close(); + unset($this->streams[$index]); + } + return true; + } + + public static function get() + { + throw new Exception('not a singleton'); + } + + /** + * Set up event handlers on the streaming interface. + * + * @fixme add more event types as we add handling for them + */ + protected function setupEvents(TwitterStreamReader $stream) + { + $handlers = array( + 'status', + ); + foreach ($handlers as $event) { + $stream->hookEvent($event, array($this, 'onTwitter' . ucfirst($event))); + } + } + + /** + * Event callback notifying that a user has a new message in their home timeline. + * We store the incoming message into the queues for processing, keeping our own + * daemon running as shiny-fast as possible. + * + * @param object $status JSON data: Twitter status update + * @fixme in all-sites mode we may need to route queue items into another site's + * destination queues, or multiple sites. + */ + protected function onTwitterStatus($status, $context) + { + $data = array( + 'status' => $status, + 'for_user' => $context->for_user, + ); + $qm = QueueManager::get(); + $qm->enqueue($data, 'tweetin'); + } +} + + +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'); +$all = have_option('a') || have_option('--all'); + +$daemon = new TwitterDaemon($id, !$foreground, 1, $all); + +$daemon->runOnce(); diff --git a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php index 03a4bd3f34..06ce430371 100755 --- a/plugins/TwitterBridge/daemons/twitterstatusfetcher.php +++ b/plugins/TwitterBridge/daemons/twitterstatusfetcher.php @@ -40,7 +40,6 @@ require_once INSTALLDIR . '/scripts/commandline.inc'; require_once INSTALLDIR . '/lib/common.php'; require_once INSTALLDIR . '/lib/daemon.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; /** @@ -63,7 +62,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class TwitterStatusFetcher extends ParallelizingDaemon { /** @@ -88,7 +86,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon * * @return string Name of the daemon. */ - function name() { return ('twitterstatusfetcher.'.$this->_id); @@ -100,11 +97,9 @@ class TwitterStatusFetcher extends ParallelizingDaemon * * @return array flinks an array of Foreign_link objects */ - function getObjects() { global $_DB_DATAOBJECT; - $flink = new Foreign_link(); $conn = &$flink->getDatabaseConnection(); @@ -135,12 +130,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon } function childTask($flink) { - // Each child ps needs its own DB connection // Note: DataObject::getDatabaseConnection() creates // a new connection if there isn't one already - $conn = &$flink->getDatabaseConnection(); $this->getTimeline($flink); @@ -152,7 +145,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon // XXX: Couldn't find a less brutal way to blow // away a cached connection - global $_DB_DATAOBJECT; unset($_DB_DATAOBJECT['CONNECTIONS']); } @@ -168,10 +160,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon common_debug($this->name() . ' - Trying to get timeline for Twitter user ' . $flink->foreign_id); - // XXX: Biggest remaining issue - How do we know at which status - // to start importing? How many statuses? Right now I'm going - // with the default last 20. - $client = null; if (TwitterOAuthClient::isPackedToken($flink->credentials)) { @@ -179,14 +167,17 @@ class TwitterStatusFetcher extends ParallelizingDaemon $client = new TwitterOAuthClient($token->key, $token->secret); common_debug($this->name() . ' - Grabbing friends timeline with OAuth.'); } else { - $client = new TwitterBasicAuthClient($flink); - common_debug($this->name() . ' - Grabbing friends timeline with basic auth.'); + common_debug("Skipping friends timeline for $flink->foreign_id since not OAuth."); } $timeline = null; + $lastId = Twitter_synch_status::getLastId($flink->foreign_id, 'home_timeline'); + + common_debug("Got lastId value '{$lastId}' for foreign id '{$flink->foreign_id}' and timeline 'home_timeline'"); + try { - $timeline = $client->statusesHomeTimeline(); + $timeline = $client->statusesHomeTimeline($lastId); } catch (Exception $e) { common_log(LOG_WARNING, $this->name() . ' - Twitter client unable to get friends timeline for user ' . @@ -201,436 +192,28 @@ class TwitterStatusFetcher extends ParallelizingDaemon common_debug(LOG_INFO, $this->name() . ' - Retrieved ' . sizeof($timeline) . ' statuses from Twitter.'); + $importer = new TwitterImport(); + // Reverse to preserve order foreach (array_reverse($timeline) as $status) { + $notice = $importer->importStatus($status); - // Hacktastic: filter out stuff coming from this StatusNet - - $source = mb_strtolower(common_config('integration', 'source')); - - if (preg_match("/$source/", mb_strtolower($status->source))) { - common_debug($this->name() . ' - Skipping import of status ' . - $status->id . ' with source ' . $source); - continue; + if (!empty($notice)) { + Inbox::insertNotice($flink->user_id, $notice->id); } + } - $this->saveStatus($status, $flink); + if (!empty($timeline)) { + $lastId = twitter_id($timeline[0]); + Twitter_synch_status::setLastId($flink->foreign_id, 'home_timeline', $lastId); + common_debug("Set lastId value '$lastId' for foreign id '{$flink->foreign_id}' and timeline 'home_timeline'"); } // Okay, record the time we synced with Twitter for posterity - $flink->last_noticesync = common_sql_now(); $flink->update(); } - - function saveStatus($status, $flink) - { - $profile = $this->ensureProfile($status->user); - - if (empty($profile)) { - common_log(LOG_ERR, $this->name() . - ' - Problem saving notice. No associated Profile.'); - return; - } - - $statusUri = 'http://twitter.com/' - . $status->user->screen_name - . '/status/' - . $status->id; - - // check to see if we've already imported the status - - $dupe = $this->checkDupe($profile, $statusUri); - - if (!empty($dupe)) { - common_log( - LOG_INFO, - $this->name() . - " - Ignoring duplicate import: $statusUri" - ); - return; - } - - $notice = new Notice(); - - $notice->profile_id = $profile->id; - $notice->uri = $statusUri; - $notice->url = $statusUri; - $notice->created = strftime( - '%Y-%m-%d %H:%M:%S', - strtotime($status->created_at) - ); - - $notice->source = 'twitter'; - $notice->reply_to = null; - $notice->is_local = Notice::GATEWAY; - - $notice->content = common_shorten_links($status->text); - $notice->rendered = common_render_content( - $notice->content, - $notice - ); - - if (Event::handle('StartNoticeSave', array(&$notice))) { - - $id = $notice->insert(); - - if (!$id) { - common_log_db_error($notice, 'INSERT', __FILE__); - common_log(LOG_ERR, $this->name() . - ' - Problem saving notice.'); - } - - Event::handle('EndNoticeSave', array($notice)); - } - - $orig = clone($notice); - $conv = Conversation::create(); - - $notice->conversation = $conv->id; - - if (!$notice->update($orig)) { - common_log_db_error($notice, 'UPDATE', __FILE__); - common_log(LOG_ERR, $this->name() . - ' - Problem saving notice.'); - } - - Inbox::insertNotice($flink->user_id, $notice->id); - $notice->blowOnInsert(); - - return $notice; - } - - /** - * Look up a Profile by profileurl field. Profile::staticGet() was - * not working consistently. - * - * @param string $nickname local nickname of the Twitter user - * @param string $profileurl the profile url - * - * @return mixed value the first Profile with that url, or null - */ - - function getProfileByUrl($nickname, $profileurl) - { - $profile = new Profile(); - $profile->nickname = $nickname; - $profile->profileurl = $profileurl; - $profile->limit(1); - - if ($profile->find()) { - $profile->fetch(); - return $profile; - } - - return null; - } - - /** - * Check to see if this Twitter status has already been imported - * - * @param Profile $profile Twitter user's local profile - * @param string $statusUri URI of the status on Twitter - * - * @return mixed value a matching Notice or null - */ - - function checkDupe($profile, $statusUri) - { - $notice = new Notice(); - $notice->uri = $statusUri; - $notice->profile_id = $profile->id; - $notice->limit(1); - - if ($notice->find()) { - $notice->fetch(); - return $notice; - } - - return null; - } - - function ensureProfile($user) - { - // check to see if there's already a profile for this user - - $profileurl = 'http://twitter.com/' . $user->screen_name; - $profile = $this->getProfileByUrl($user->screen_name, $profileurl); - - if (!empty($profile)) { - common_debug($this->name() . - " - Profile for $profile->nickname found."); - - // Check to see if the user's Avatar has changed - - $this->checkAvatar($user, $profile); - return $profile; - - } else { - - common_debug($this->name() . ' - Adding profile and remote profile ' . - "for Twitter user: $profileurl."); - - $profile = new Profile(); - $profile->query("BEGIN"); - - $profile->nickname = $user->screen_name; - $profile->fullname = $user->name; - $profile->homepage = $user->url; - $profile->bio = $user->description; - $profile->location = $user->location; - $profile->profileurl = $profileurl; - $profile->created = common_sql_now(); - - try { - $id = $profile->insert(); - } catch(Exception $e) { - common_log(LOG_WARNING, $this->name . ' Couldn\'t insert profile - ' . $e->getMessage()); - } - - if (empty($id)) { - common_log_db_error($profile, 'INSERT', __FILE__); - $profile->query("ROLLBACK"); - return false; - } - - // check for remote profile - - $remote_pro = Remote_profile::staticGet('uri', $profileurl); - - if (empty($remote_pro)) { - - $remote_pro = new Remote_profile(); - - $remote_pro->id = $id; - $remote_pro->uri = $profileurl; - $remote_pro->created = common_sql_now(); - - try { - $rid = $remote_pro->insert(); - } catch (Exception $e) { - common_log(LOG_WARNING, $this->name() . ' Couldn\'t save remote profile - ' . $e->getMessage()); - } - - if (empty($rid)) { - common_log_db_error($profile, 'INSERT', __FILE__); - $profile->query("ROLLBACK"); - return false; - } - } - - $profile->query("COMMIT"); - - $this->saveAvatars($user, $id); - - return $profile; - } - } - - function checkAvatar($twitter_user, $profile) - { - global $config; - - $path_parts = pathinfo($twitter_user->profile_image_url); - - $newname = 'Twitter_' . $twitter_user->id . '_' . - $path_parts['basename']; - - $oldname = $profile->getAvatar(48)->filename; - - if ($newname != $oldname) { - common_debug($this->name() . ' - Avatar for Twitter user ' . - "$profile->nickname has changed."); - common_debug($this->name() . " - old: $oldname new: $newname"); - - $this->updateAvatars($twitter_user, $profile); - } - - if ($this->missingAvatarFile($profile)) { - common_debug($this->name() . ' - Twitter user ' . - $profile->nickname . - ' is missing one or more local avatars.'); - common_debug($this->name() ." - old: $oldname new: $newname"); - - $this->updateAvatars($twitter_user, $profile); - } - } - - function updateAvatars($twitter_user, $profile) { - - global $config; - - $path_parts = pathinfo($twitter_user->profile_image_url); - - $img_root = substr($path_parts['basename'], 0, -11); - $ext = $path_parts['extension']; - $mediatype = $this->getMediatype($ext); - - foreach (array('mini', 'normal', 'bigger') as $size) { - $url = $path_parts['dirname'] . '/' . - $img_root . '_' . $size . ".$ext"; - $filename = 'Twitter_' . $twitter_user->id . '_' . - $img_root . "_$size.$ext"; - - $this->updateAvatar($profile->id, $size, $mediatype, $filename); - $this->fetchAvatar($url, $filename); - } - } - - function missingAvatarFile($profile) { - foreach (array(24, 48, 73) as $size) { - $filename = $profile->getAvatar($size)->filename; - $avatarpath = Avatar::path($filename); - if (file_exists($avatarpath) == FALSE) { - return true; - } - } - return false; - } - - function getMediatype($ext) - { - $mediatype = null; - - switch (strtolower($ext)) { - case 'jpg': - $mediatype = 'image/jpg'; - break; - case 'gif': - $mediatype = 'image/gif'; - break; - default: - $mediatype = 'image/png'; - } - - return $mediatype; - } - - function saveAvatars($user, $id) - { - global $config; - - $path_parts = pathinfo($user->profile_image_url); - $ext = $path_parts['extension']; - $end = strlen('_normal' . $ext); - $img_root = substr($path_parts['basename'], 0, -($end+1)); - $mediatype = $this->getMediatype($ext); - - foreach (array('mini', 'normal', 'bigger') as $size) { - $url = $path_parts['dirname'] . '/' . - $img_root . '_' . $size . ".$ext"; - $filename = 'Twitter_' . $user->id . '_' . - $img_root . "_$size.$ext"; - - if ($this->fetchAvatar($url, $filename)) { - $this->newAvatar($id, $size, $mediatype, $filename); - } else { - common_log(LOG_WARNING, $id() . - " - Problem fetching Avatar: $url"); - } - } - } - - function updateAvatar($profile_id, $size, $mediatype, $filename) { - - common_debug($this->name() . " - Updating avatar: $size"); - - $profile = Profile::staticGet($profile_id); - - if (empty($profile)) { - common_debug($this->name() . " - Couldn't get profile: $profile_id!"); - return; - } - - $sizes = array('mini' => 24, 'normal' => 48, 'bigger' => 73); - $avatar = $profile->getAvatar($sizes[$size]); - - // Delete the avatar, if present - - if ($avatar) { - $avatar->delete(); - } - - $this->newAvatar($profile->id, $size, $mediatype, $filename); - } - - function newAvatar($profile_id, $size, $mediatype, $filename) - { - global $config; - - $avatar = new Avatar(); - $avatar->profile_id = $profile_id; - - switch($size) { - case 'mini': - $avatar->width = 24; - $avatar->height = 24; - break; - case 'normal': - $avatar->width = 48; - $avatar->height = 48; - break; - default: - - // Note: Twitter's big avatars are a different size than - // StatusNet's (StatusNet's = 96) - - $avatar->width = 73; - $avatar->height = 73; - } - - $avatar->original = 0; // we don't have the original - $avatar->mediatype = $mediatype; - $avatar->filename = $filename; - $avatar->url = Avatar::url($filename); - - $avatar->created = common_sql_now(); - - try { - $id = $avatar->insert(); - } catch (Exception $e) { - common_log(LOG_WARNING, $this->name() . ' Couldn\'t insert avatar - ' . $e->getMessage()); - } - - if (empty($id)) { - common_log_db_error($avatar, 'INSERT', __FILE__); - return null; - } - - common_debug($this->name() . - " - Saved new $size avatar for $profile_id."); - - return $id; - } - - /** - * Fetch a remote avatar image and save to local storage. - * - * @param string $url avatar source URL - * @param string $filename bare local filename for download - * @return bool true on success, false on failure - */ - function fetchAvatar($url, $filename) - { - common_debug($this->name() . " - Fetching Twitter avatar: $url"); - - $request = HTTPClient::start(); - $response = $request->get($url); - if ($response->isOk()) { - $avatarfile = Avatar::path($filename); - $ok = file_put_contents($avatarfile, $response->getBody()); - if (!$ok) { - common_log(LOG_WARNING, $this->name() . - " - Couldn't open file $filename"); - return false; - } - } else { - return false; - } - - return true; - } } $id = null; @@ -652,4 +235,3 @@ if (have_option('d') || have_option('debug')) { $fetcher = new TwitterStatusFetcher($id, 60, 2, $debug); $fetcher->runOnce(); - diff --git a/plugins/TwitterBridge/jsonstreamreader.php b/plugins/TwitterBridge/jsonstreamreader.php new file mode 100644 index 0000000000..f6572c9eef --- /dev/null +++ b/plugins/TwitterBridge/jsonstreamreader.php @@ -0,0 +1,265 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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 OAuthData +{ + public $consumer_key, $consumer_secret, $token, $token_secret; +} + +/** + * + */ +abstract class JsonStreamReader +{ + const CRLF = "\r\n"; + + public $id; + protected $socket = null; + protected $state = 'init'; // 'init', 'connecting', 'waiting', 'headers', 'active' + + public function __construct() + { + $this->id = get_class($this) . '.' . substr(md5(mt_rand()), 0, 8); + } + + /** + * Starts asynchronous connect operation... + * + * @fixme Can we do the open-socket fully async to? (need write select infrastructure) + * + * @param string $url + */ + public function connect($url) + { + common_log(LOG_DEBUG, "$this->id opening connection to $url"); + + $scheme = parse_url($url, PHP_URL_SCHEME); + if ($scheme == 'http') { + $rawScheme = 'tcp'; + } else if ($scheme == 'https') { + $rawScheme = 'ssl'; + } else { + throw new ServerException('Invalid URL scheme for HTTP stream reader'); + } + + $host = parse_url($url, PHP_URL_HOST); + $port = parse_url($url, PHP_URL_PORT); + if (!$port) { + if ($scheme == 'https') { + $port = 443; + } else { + $port = 80; + } + } + + $path = parse_url($url, PHP_URL_PATH); + $query = parse_url($url, PHP_URL_QUERY); + if ($query) { + $path .= '?' . $query; + } + + $errno = $errstr = null; + $timeout = 5; + //$flags = STREAM_CLIENT_CONNECT | STREAM_CLIENT_ASYNC_CONNECT; + $flags = STREAM_CLIENT_CONNECT; + // @fixme add SSL params + $this->socket = stream_socket_client("$rawScheme://$host:$port", $errno, $errstr, $timeout, $flags); + + $this->send($this->httpOpen($host, $path)); + + stream_set_blocking($this->socket, false); + $this->state = 'waiting'; + } + + /** + * Send some fun data off to the server. + * + * @param string $buffer + */ + function send($buffer) + { + fwrite($this->socket, $buffer); + } + + /** + * Read next packet of data from the socket. + * + * @return string + */ + function read() + { + $buffer = fread($this->socket, 65536); + return $buffer; + } + + /** + * Build HTTP request headers. + * + * @param string $host + * @param string $path + * @return string + */ + protected function httpOpen($host, $path) + { + $lines = array( + "GET $path HTTP/1.1", + "Host: $host", + "User-Agent: StatusNet/" . STATUSNET_VERSION . " (TwitterBridgePlugin)", + "Connection: close", + "", + "" + ); + return implode(self::CRLF, $lines); + } + + /** + * Close the current connection, if open. + */ + public function close() + { + if ($this->isConnected()) { + common_log(LOG_DEBUG, "$this->id closing connection."); + fclose($this->socket); + $this->socket = null; + } + } + + /** + * Are we currently connected? + * + * @return boolean + */ + public function isConnected() + { + return $this->socket !== null; + } + + /** + * Send any sockets we're listening on to the IO manager + * to wait for input. + * + * @return array of resources + */ + public function getSockets() + { + if ($this->isConnected()) { + return array($this->socket); + } + return array(); + } + + /** + * Take a chunk of input over the horn and go go go! :D + * + * @param string $buffer + */ + public function handleInput($socket) + { + if ($this->socket !== $socket) { + throw new Exception('Got input from unexpected socket!'); + } + + try { + $buffer = $this->read(); + $lines = explode(self::CRLF, $buffer); + foreach ($lines as $line) { + $this->handleLine($line); + } + } catch (Exception $e) { + common_log(LOG_ERR, "$this->id aborting connection due to error: " . $e->getMessage()); + fclose($this->socket); + throw $e; + } + } + + protected function handleLine($line) + { + switch ($this->state) + { + case 'waiting': + $this->handleLineWaiting($line); + break; + case 'headers': + $this->handleLineHeaders($line); + break; + case 'active': + $this->handleLineActive($line); + break; + default: + throw new Exception('Invalid state in handleLine: ' . $this->state); + } + } + + /** + * + * @param <type> $line + */ + protected function handleLineWaiting($line) + { + $bits = explode(' ', $line, 3); + if (count($bits) != 3) { + throw new Exception("Invalid HTTP response line: $line"); + } + + list($http, $status, $text) = $bits; + if (substr($http, 0, 5) != 'HTTP/') { + throw new Exception("Invalid HTTP response line chunk '$http': $line"); + } + if ($status != '200') { + throw new Exception("Bad HTTP response code $status: $line"); + } + common_log(LOG_DEBUG, "$this->id $line"); + $this->state = 'headers'; + } + + protected function handleLineHeaders($line) + { + if ($line == '') { + $this->state = 'active'; + common_log(LOG_DEBUG, "$this->id connection is active!"); + } else { + common_log(LOG_DEBUG, "$this->id read HTTP header: $line"); + $this->responseHeaders[] = $line; + } + } + + protected function handleLineActive($line) + { + if ($line == "") { + // Server sends empty lines as keepalive. + return; + } + $data = json_decode($line); + if ($data) { + $this->handleJson($data); + } else { + common_log(LOG_ERR, "$this->id received bogus JSON data: " . var_export($line, true)); + } + } + + abstract protected function handleJson(stdClass $data); +} diff --git a/plugins/TwitterBridge/locale/TwitterBridge.pot b/plugins/TwitterBridge/locale/TwitterBridge.pot index c7ac8053ca..e684baae0e 100644 --- a/plugins/TwitterBridge/locale/TwitterBridge.pot +++ b/plugins/TwitterBridge/locale/TwitterBridge.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-04-29 23:39+0000\n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,16 +16,23 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: twitter.php:342 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#: twitter.php:407 msgid "Your Twitter bridge has been disabled." msgstr "" -#: twitter.php:346 +#: twitter.php:411 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " "disabled. We no longer seem to have permission to update your Twitter " -"status. (Did you revoke %3$s's access?)\n" +"status. Did you maybe revoke %3$s's access?\n" "\n" "You can re-enable your Twitter bridge by visiting your Twitter settings " "page:\n" @@ -33,93 +40,136 @@ msgid "" "\t%2$s\n" "\n" "Regards,\n" -"%3$s\n" +"%3$s" msgstr "" -#: TwitterBridgePlugin.php:155 TwitterBridgePlugin.php:178 -#: TwitterBridgePlugin.php:291 twitteradminpanel.php:54 +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 msgid "Twitter" msgstr "" -#: TwitterBridgePlugin.php:156 +#: TwitterBridgePlugin.php:152 msgid "Login or register using Twitter" msgstr "" -#: TwitterBridgePlugin.php:179 +#: TwitterBridgePlugin.php:175 msgid "Twitter integration options" msgstr "" -#: TwitterBridgePlugin.php:292 +#: TwitterBridgePlugin.php:303 msgid "Twitter bridge configuration" msgstr "" -#: TwitterBridgePlugin.php:317 +#: TwitterBridgePlugin.php:327 msgid "" -"The Twitter \"bridge\" plugin allows you to integrate your StatusNet " -"instance with <a href=\"http://twitter.com/\">Twitter</a>." +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." msgstr "" -#: twitteradminpanel.php:65 +#: twitteradminpanel.php:62 msgid "Twitter bridge settings" msgstr "" -#: twitteradminpanel.php:148 +#: twitteradminpanel.php:150 msgid "Invalid consumer key. Max length is 255 characters." msgstr "" -#: twitteradminpanel.php:154 +#: twitteradminpanel.php:156 msgid "Invalid consumer secret. Max length is 255 characters." msgstr "" -#: twitteradminpanel.php:207 +#: twitteradminpanel.php:212 msgid "Twitter application settings" msgstr "" -#: twitteradminpanel.php:213 +#: twitteradminpanel.php:218 msgid "Consumer key" msgstr "" -#: twitteradminpanel.php:214 +#: twitteradminpanel.php:219 msgid "Consumer key assigned by Twitter" msgstr "" -#: twitteradminpanel.php:222 +#: twitteradminpanel.php:227 msgid "Consumer secret" msgstr "" -#: twitteradminpanel.php:223 +#: twitteradminpanel.php:228 msgid "Consumer secret assigned by Twitter" msgstr "" -#: twitteradminpanel.php:240 +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 msgid "Integration source" msgstr "" -#: twitteradminpanel.php:241 +#: twitteradminpanel.php:246 msgid "Name of your Twitter application" msgstr "" -#: twitteradminpanel.php:253 +#: twitteradminpanel.php:258 msgid "Options" msgstr "" -#: twitteradminpanel.php:260 +#: twitteradminpanel.php:265 msgid "Enable \"Sign-in with Twitter\"" msgstr "" -#: twitteradminpanel.php:262 +#: twitteradminpanel.php:267 msgid "Allow users to login with their Twitter credentials" msgstr "" -#: twitteradminpanel.php:268 +#: twitteradminpanel.php:274 msgid "Enable Twitter import" msgstr "" -#: twitteradminpanel.php:270 -msgid "Allow users to import their Twitter friends' timelines" +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "" + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: twitterauthorization.php:135 +msgid "Something weird happened." msgstr "" #: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 msgid "Couldn't link your Twitter account." msgstr "" @@ -127,99 +177,190 @@ msgstr "" msgid "Couldn't link your Twitter account: oauth_token mismatch." msgstr "" -#: twittersettings.php:59 +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "" + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "" + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "" + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "" + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "" + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "" + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "" + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "" + +#: twittersettings.php:58 msgid "Twitter settings" msgstr "" -#: twittersettings.php:70 +#: twittersettings.php:69 msgid "" "Connect your Twitter account to share your updates with your Twitter friends " "and vice-versa." msgstr "" -#: twittersettings.php:118 +#: twittersettings.php:116 msgid "Twitter account" msgstr "" -#: twittersettings.php:123 +#: twittersettings.php:121 msgid "Connected Twitter account" msgstr "" -#: twittersettings.php:128 +#: twittersettings.php:126 msgid "Disconnect my account from Twitter" msgstr "" -#: twittersettings.php:133 +#: twittersettings.php:132 msgid "Disconnecting your Twitter could make it impossible to log in! Please " msgstr "" -#: twittersettings.php:137 +#: twittersettings.php:136 msgid "set a password" msgstr "" -#: twittersettings.php:139 +#: twittersettings.php:138 msgid " first." msgstr "" -#: twittersettings.php:143 +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 #, php-format msgid "" "Keep your %1$s account but disconnect from Twitter. You can use your %1$s " "password to log in." msgstr "" -#: twittersettings.php:151 +#: twittersettings.php:150 msgid "Disconnect" msgstr "" -#: twittersettings.php:158 +#: twittersettings.php:157 msgid "Preferences" msgstr "" -#: twittersettings.php:162 +#: twittersettings.php:161 msgid "Automatically send my notices to Twitter." msgstr "" -#: twittersettings.php:169 +#: twittersettings.php:168 msgid "Send local \"@\" replies to Twitter." msgstr "" -#: twittersettings.php:176 +#: twittersettings.php:175 msgid "Subscribe to my Twitter friends here." msgstr "" -#: twittersettings.php:185 -msgid "Import my Friends Timeline." +#: twittersettings.php:184 +msgid "Import my friends timeline." msgstr "" -#: twittersettings.php:201 -msgid "Save" -msgstr "" - -#: twittersettings.php:203 +#: twittersettings.php:202 msgid "Add" msgstr "" -#: twittersettings.php:228 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: twittersettings.php:238 +#: twittersettings.php:236 msgid "Unexpected form submission." msgstr "" -#: twittersettings.php:257 +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "" + +#: twittersettings.php:259 msgid "Couldn't remove Twitter user." msgstr "" -#: twittersettings.php:261 +#: twittersettings.php:263 msgid "Twitter account disconnected." msgstr "" -#: twittersettings.php:282 twittersettings.php:292 +#: twittersettings.php:283 twittersettings.php:294 msgid "Couldn't save Twitter preferences." msgstr "" -#: twittersettings.php:296 +#: twittersettings.php:302 msgid "Twitter preferences saved." msgstr "" diff --git a/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..c31fb16ab7 --- /dev/null +++ b/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,371 @@ +# Translation of StatusNet - TwitterBridge to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:10+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "" + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Dibarzhioù" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Enrollañ" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Enrollañ arventennoù Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Keveadenn Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Kevreadenn gant ho kont Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Kevreañ gant Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "" + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "" + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Dibarzhioù kevreañ" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Krouiñ ur gont nevez" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Krouiñ un implijer nevez gant al lesanv-se." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Lesanv nevez" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Krouiñ" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Kevreañ d'ur gont a zo dioutañ" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Lesanv a zo dioutañ" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Ger-tremen" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Kevreañ" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "N'eo ket aotreet krouiñ kontoù." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "" + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Lesanv nann-aotreet." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "" + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "" + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Arventennoù Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Kont Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Digevreañ ma c'hont deus Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:136 +msgid "set a password" +msgstr "Termeniñ ur ger-tremen" + +#: twittersettings.php:138 +msgid " first." +msgstr "da gentañ." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Digevreet" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Penndibaboù" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "" + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "" + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "" + +#: twittersettings.php:202 +msgid "Add" +msgstr "Ouzhpennañ" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "" + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "" + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "" + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "" + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "" + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "" diff --git a/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..f282f82b80 --- /dev/null +++ b/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,405 @@ +# Translation of StatusNet - TwitterBridge to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:10+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "S'ha inhabilitat el vostre pont del Twitter." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Hola, %1$s. Lamentem informar-vos que s'ha inhabilitat el vostre enllaç al " +"Twitter. Sembla que ja no tenim permisos per actualitzar el vostre estat al " +"Twitter. N'heu revocat potser l'accés a %3$s?\n" +"\n" +"Podeu tornar a habilitar el pont al Twitter visitant la pàgina de " +"configuració:\n" +"\n" +"\t%2$s\n" +"\n" +"Atentament,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Inicieu una sessió o registreu-vos fent servir el Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Opcions d'integració del Twitter" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Configuració del pont del Twitter" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"El connector del pont del Twitter permet integrar una instància de " +"l'StatusNet amb el <a href=\"http://twitter.com/\">Twitter</a>." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Paràmetres del pont del Twitter" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clau de consumidor no vàlida. La llargada màxima és 255 caràcters." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" +"Clau secreta de consumidor no vàlida. La llargada màxima és 255 caràcters." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Paràmetres de l'aplicació del Twitter" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Clau de consumidor" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Clau de consumidor assignada pel Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Clau secreta de consumidor" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Clau secreta de consumidor assignada pel Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Nota: es defineixen una clau pública i secreta de consumidor." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Font d'integració" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Nom de la vostra aplicació del Twitter" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Opcions" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Habilita l'inici de sessió amb el Twitter" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "Permet als usuaris iniciar una sessió amb les credencials del Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Habilita la importació del Twitter" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permet als usuaris importar les línies temporals dels amics al Twitter. Cal " +"que es configurin els dimonis manualment." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Desa" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Desa els paràmetres del Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Ja heu iniciat una sessió." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Inici de sessió del Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Inicieu una sessió amb el vostre compte del Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Inici de sessió amb el Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"S'ha produït un problema amb el vostre testimoni de sessió. Torneu-ho a " +"provar." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "No podeu registrar-vos-hi si no accepteu la llicència." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Ha passat quelcom estrany." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "No s'ha pogut enllaçar amb el compte del Twitter." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"No s'ha pogut enllaçar amb el vostre compte del Twitter: no coincidència de " +"l'oath_token." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Aquesta és la primera vegada que inicieu una sessió a %s, per tant hem de " +"connectar el vostre compte del Twitter al vostre compte local. Podeu crear " +"un compte nou, o bé connectar-vos amb un compte ja existent si en teniu un." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Configuració del compte del Twitter" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Opcions de connexió" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"El meu text i fitxers es troben disponibles sots %s excepte pel que fa a les " +"dades privades: contrasenya, adreça de correu electrònic i MI, i número de " +"telèfon." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Crea un compte nou" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Crea un usuari nom amb aquest sobrenom." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Nou sobrenom" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 lletres en minúscules o nombres, sense puntuació o espais" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Crea" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Connecta un compte ja existent" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si ja teniu un compte, inicieu una sessió amb el vostre usuari i contrasenya " +"per connectar-lo al vostre compte del Twitter." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Sobrenom ja existent" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Contrasenya" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Connecta" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "No es permet el registre." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "No és un codi d'invitació vàlid." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "El sobrenom no és permès." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "El sobrenom ja és en ús. Proveu-ne un altre." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Error en registrar l'usuari." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Error en connectar l'usuari al Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Nom d'usuari o contrasenya no vàlida." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Paràmetres del Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connecteu el vostre compte del Twitter per compartir les vostres " +"actualitzacions amb els vostres amics del Twitter i viceversa." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Compte del Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Compte del Twitter connectat" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Desconnecta el meu compte del Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"En desconnectar el vostre Twitter podeu impossibilitar que torneu a iniciar " +"una sessió! " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "Definiu una contrasenya" + +#: twittersettings.php:138 +msgid " first." +msgstr " primer." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Mantingueu el vostre compte %1$s, però desconnecteu-lo del Twitter. Podeu " +"emprar la vostra contrasenya %1$s per iniciar una sessió." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Desconnecta" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Preferències" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Envia automàticament els meus avisos al Twitter." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Envia les respostes locals «@» al Twitter." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "Subscriu els meus amics del Twitter aquí." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Importa la línia temporal d'amics." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Afegeix" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Enviament de formulari inesperat." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "No hi ha cap connexió del Twitter a suprimir." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "No s'ha pogut suprimir l'usuari del Twitter." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "S'ha desconnectat el compte del Twitter." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "No s'han pogut desar les preferències del Twitter." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "S'han desat les preferències del Twitter." diff --git a/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..4755b93413 --- /dev/null +++ b/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,371 @@ +# Translation of StatusNet - TwitterBridge to Persian (فارسی) +# Expored from translatewiki.net +# +# Author: Mjbmr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:10+0000\n" +"Language-Team: Persian <http://translatewiki.net/wiki/Portal:fa>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fa\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "پل توییتر شما غیر فعال شده است." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "توییتر" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "برای استفاده از توییتر، وارد شوید یا ثبت نام کنید" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "تنظیمات پیوسته توییتر" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "پیکربندی پل توییتر" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "تنظیمات پل توییتر" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "تنظیمات" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "ذخیره" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "ذخیره تنظیمات توییتر" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "در حال حاضر وارد شده‌اید." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "ورود به توییتر" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "با حساب کاربری توییتر وارد شوید" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "" + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "" + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "تنظیم حساب کاربری توییتر" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "تنظیمات اتصال" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "ایجاد حساب کاربری جدید" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "ایجاد یک کاربر جدید با این نام مستعار." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "نام مستعار جدید" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "ایجاد" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "اتصال به حساب کاربری موجود" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "نام مستعار موجود" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "رمز عبور" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "اتصال" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "اجازهٔ ثبت‌نام داده نشده است." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "کد دعوت نامعتبر است." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "نام مستعار مجاز نیست." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "این نام مستعار در حال حاضر مورد استفاده است. یکی دیگر را بیازمایید." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "خطا در ثبت نام کاربر." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "خطا در اتصال کاربر به توییتر." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "نام کاربری یا رمز عبور اشتباه است." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "تنظیمات توییتر" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "حساب کاربری توییتر" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "حساب کاربری توییتر متصل شد" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "قطع ارتباط حساب کاربری من از توییتر" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:136 +msgid "set a password" +msgstr "تنظیم رمز عبور" + +#: twittersettings.php:138 +msgid " first." +msgstr " ابتدا." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "قطع اتصال" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "ترجیحات" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "" + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "" + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "" + +#: twittersettings.php:202 +msgid "Add" +msgstr "افزودن" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "" + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "هیچ ارتباط توییتری برای حذف وجود ندارد." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "نمی‌توان کاربر توییتر را حذف کرد." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "حساب توییتر قطع شده است." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "نمی‌توان ترجیحات توییتر را ذخیره کرد." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "تنظیمات توییتر ذخیره شد." diff --git a/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..67da0e339b --- /dev/null +++ b/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,409 @@ +# Translation of StatusNet - TwitterBridge to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "Votre passerelle Twitter a été désactivée." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Salut, %1$s. Nous sommes désolés de vous informer que votre liaison avec " +"Twitter a été désactivée. Il semble que nous ne soyons plus autorisé à " +"mettre à jour votre statut Twitter. Peut-être avez-vous révoqué l’accès de %3" +"$s ?\n" +"\n" +"Vous pouvez réactiver votre passerelle Twitter en visitant la page des " +"paramètres de votre compte Twitter :\n" +"\n" +"%2$s\n" +"\n" +"Cordialement,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Se connecter ou s’inscrire via Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Options d’intégration de Twitter" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Configuration de la passerelle Twitter" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"Le greffon de « passerelle » Twitter permet l’intégration d’une instance de " +"StatusNet avec <a href=\"http://twitter.com/\">Twitter</a>." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Paramètres de la passerelle Twitter" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clé de client invalide. La longueur maximum est de 255 caractères." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" +"Code secret du client invalide. La longueur maximum est de 255 caractères." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Paramètres de l’application Twitter" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Clé du client" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Clé du client assignée par Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Code secret du client" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Code secret du client assigné par Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Note : une clé et un code secret de client global sont définis." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Source d’intégration" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Nom de votre application Twitter" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Options" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Activer « S’inscrire avec Twitter »" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Permet aux utilisateurs de se connecter avec leurs identifiants Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Activer l’importation Twitter" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permettre aux utilisateurs d’importer les agendas de leurs amis Twitter. " +"Exige que les démons soient configurés manuellement." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Sauvegarder" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Sauvegarder les paramètres Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Déjà connecté." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Connexion Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Connexion avec votre compte Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "S’inscrire avec Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Quelque chose de bizarre s’est passé." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "Impossible de lier votre compte Twitter." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Impossible de lier votre compte Twitter : le jeton d’authentification ne " +"correspond pas." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"C’est la première fois que vous êtes connecté à %s via Twitter, il nous faut " +"donc lier votre compte Twitter à un compte local. Vous pouvez soit créer un " +"nouveau compte, soit vous connecter avec votre compte local existant si vous " +"en avez un." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Configuration du compte Twitter" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Options de connexion" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mon texte et mes fichiers sont disponibles sous licence %s, à l’exception " +"des données privées suivantes : mot de passe, adresse courriel, adresse de " +"messagerie instantanée et numéro de téléphone." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Créer un nouveau compte" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Créer un nouvel utilisateur avec ce pseudonyme." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Nouveau pseudonyme" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Créer" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Se connecter à un compte existant" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si vous avez déjà un compte ici, connectez-vous avec votre nom d’utilisateur " +"et mot de passe pour l’associer à votre compte Twitter." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Pseudonyme existant" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Mot de passe" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Connexion" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Inscription non autorisée." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "Le code d’invitation n’est pas valide." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Pseudonyme non autorisé." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Erreur lors de l’inscription de l’utilisateur." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Erreur de connexion de l’utilisateur à Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Paramètres Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connectez votre compte Twitter pour partager vos mises à jour avec vos amis " +"Twitter et vice-versa." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Compte Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Compte Twitter connecté" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Déconnecter mon compte de Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"La déconnexion de votre compte Twitter ne vous permettrait plus de vous " +"connecter ! S’il vous plaît " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "définissez un mot de passe" + +#: twittersettings.php:138 +msgid " first." +msgstr " tout d’abord." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Gardez votre compte %1$s, mais déconnectez-vous de Twitter. Vous pouvez " +"utiliser votre mot de passe %1$s pour vous connecter." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Déconnecter" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Préférences" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Envoyer automatiquement mes avis sur Twitter." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Envoyer des réponses \"@\" locales à Twitter." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "S’abonner à mes amis Twitter ici." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Importer l’agenda de mes amis." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Ajouter" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Soumission de formulaire inattendue." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "Aucune connexion Twitter à retirer." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Impossible de supprimer l’utilisateur Twitter." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "Compte Twitter déconnecté." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Impossible de sauvegarder les préférences Twitter." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "Préférences Twitter enregistrées." diff --git a/plugins/TwitterBridge/locale/gl/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/gl/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..afd3dc8ffd --- /dev/null +++ b/plugins/TwitterBridge/locale/gl/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,371 @@ +# Translation of StatusNet - TwitterBridge to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "" + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Clave do consumidor" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Clave do consumidor asignada polo Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Pregunta secreta do consumidor" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Pregunta secreta do consumidor asignada polo Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Fonte de integración" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Opcións" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Gardar" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "" + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "" + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "" + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "" + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Crear" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Contrasinal" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Conectar" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "" + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "" + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "" + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "" + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "" + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "" + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "" + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Configuración do Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Conta do Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:136 +msgid "set a password" +msgstr "" + +#: twittersettings.php:138 +msgid " first." +msgstr " primeiro." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Desconectarse" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Preferencias" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "" + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "" + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "" + +#: twittersettings.php:202 +msgid "Add" +msgstr "Engadir" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "" + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "" + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "" + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "" + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "" + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "" diff --git a/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..67b68729df --- /dev/null +++ b/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,400 @@ +# Translation of StatusNet - TwitterBridge to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "Tu ponte a Twitter ha essite disactivate." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Salute, %1$s. Nos regretta informar te que tu ligamine a Twitter ha essite " +"disactivate. Il pare que nos non ha plus le permission de actualisar tu " +"stato de Twitter. Esque tu forsan revocava le accesso de %3$s?\n" +"\n" +"Tu pote reactivar tu ponte a Twitter per visitar tu pagina de configuration " +"de Twitter:\n" +"\n" +"\t%2$s\n" +"\n" +"Cordialmente,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Aperir session o crear conto usante Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Optiones de integration de Twitter" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Configuration del ponte a Twitter" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"Le plug-in de \"ponte\" a Twitter permitte le integration de un installation " +"de StatusNet con <a href=\"http://twitter.com/\">Twitter</a>." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Configuration del ponte a Twitter" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clave de consumitor invalide. Longitude maximal es 255 characteres." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Secreto de consumitor invalide. Longitude maximal es 255 characteres." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Configuration del application Twitter" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Clave de consumitor" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Clave de consumitor assignate per Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Secreto de consumitor" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Secreto de consumitor assignate per Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Nota: un clave e un secreto de consumitor global es definite." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Fonte de integration" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Nomine de tu application Twitter" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Optiones" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Activar \"Aperir session con Twitter\"" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "Permitte que usatores aperi session con lor conto de Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Activar le importation de Twitter" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permitte que usatores importa le chronologias de lor amicos de Twitter. " +"Require que le demones sia configurate manualmente." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Salveguardar" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Salveguardar configurationes de Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Apertura de session con Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Aperir session con tu conto de Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Aperir session con Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "Tu non pote crear un conto si tu non accepta le licentia." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Qualcosa de bizarre occurreva." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "Non poteva ligar a tu conto de Twitter." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "Non poteva ligar a tu conto de Twitter: oauth_token non corresponde." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Isto es le prime vice que tu ha aperite un session in %s; dunque, nos debe " +"connecter tu conto de Twitter a un conto local. Tu pote crear un nove conto, " +"o connecter con tu conto existente, si tu ha un." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Configuration del conto de Twitter" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Optiones de connexion" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mi texto e files es disponibile sub %s excepte iste datos private: " +"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " +"telephono." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Crear nove conto" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Crear un nove usator con iste pseudonymo." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Nove pseudonymo" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Crear" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Connecter conto existente" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " +"pro connecter lo a tu conto de Twitter." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Pseudonymo existente" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Contrasigno" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Connecter" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Creation de conto non permittite." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "Le codice de invitation es invalide." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Pseudonymo non permittite." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Error durante le registration del usator." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Error durante le connexion del usator a Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Nomine de usator o contrasigno invalide." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Configuration de Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connecte tu conto de Twitter pro condivider tu actualisationes con tu amicos " +"de Twitter e vice versa." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Conto de Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Conto de Twitter connectite" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Disconnecter mi conto ab Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Le disconnexion de tu conto de Twitter renderea le authentication " +"impossibile! Per favor " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "defini un contrasigno" + +#: twittersettings.php:138 +msgid " first." +msgstr " primo." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Retene tu conto de %1$s ma disconnecte ab Twitter. Tu pote usar tu " +"contrasigno de %1$s pro aperir session." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Disconnecter" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Preferentias" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Automaticamente inviar mi notas a Twitter." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Inviar responsas \"@\" local a Twitter." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "Subscriber hic a mi amicos de Twitter." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Importar le chronologia de mi amicos." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Adder" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Submission de formulario inexpectate." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "Nulle connexion Twitter a remover." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Non poteva remover le usator de Twitter." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "Conto de Twitter disconnectite." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Non poteva salveguardar le preferentias de Twitter." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "Preferentias de Twitter salveguardate." diff --git a/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..889f4766ab --- /dev/null +++ b/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,402 @@ +# Translation of StatusNet - TwitterBridge to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "Вашиот мост до Twitter е оневозможен." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Здраво, %1$s. Нажалост Вашата врска до Twitter е оневозможена. Се чини дека " +"веќе немаме дозвола за менување на Вашиот статус на Twitter. Дали можеби го " +"имате одземено правото на пристап на %3$s?\n" +"\n" +"Можете повторно да го овозможите Вашиот мост до Twitter на страницата за " +"нагодувања на Twitter:\n" +"\n" +"%2$s\n" +"\n" +"Поздрав,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Најава или регистрација со Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Нагодувања за обединување со Twitter" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Нагодувања за мостот до Twitter" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"Приклучокот за „мост“ до Twitter овозможува соединување на примерок на " +"StatusNet со <a href=\"http://twitter.com/\">Twitter</a>." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Поставки за мостот до Twitter" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Неважечки потрошувачки клуч. Дозволени се највеќе 255 знаци." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Неважечка потрошувачка тајна. Дозволени се највеќе 255 знаци." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Нагодувања на програмчето за Twitter" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Потрошувачки клуч" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Потрошувачкиот клуч доделен од Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Потрошувачка тајна" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Потрошувачката тајна доделена од Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Напомена: поставени се глобални потрошувачки клуч и тајна." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Извор на соединување" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Име на Вашето програмче за Twitter" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Поставки" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Овозможи „најава со Twitter“" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Им овозможува на корисниците да се најавуваат со нивните податоци од Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Овозможу увоз од Twitter" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Им овозможува на корисниците да ги увезуваат хронологиите на нивните " +"пријатели на Twitter. Бара рачно нагодување на демоните." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Зачувај" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Зачувај нагодувања на Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Веќе сте најавени." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Најава со Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Најава со Вашата сметка од Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Најава со Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Се случи нешто чудно." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "Не можам да ја поврзам Вашата сметка на Twitter." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Не можев да ја поврзам Вашата сметка на Twitter: несогласување со " +"oauth_token." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ова е прв пат како се најавувате на %s, па затоа мораме да ја поврземе " +"Вашата сметка на Twitter со локална сметка. Можете да создадете нова сметка, " +"или пак да се поврзете со Вашата постоечка сметка (ако ја имате)." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Поставки за сметката на Twitter" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Нагодувања за врска" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мојот текст и податотеки се достапни под %s, освен следниве приватни " +"податоци: лозинка, е-пошта, IM-адреса и телефонски број." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Создај нова сметка" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Создај нов корисник со овој прекар." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Нов прекар" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Создај" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Поврзи постоечка сметка" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " +"поврзете со профилот на Twitter." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Постоечки прекар" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Лозинка" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Поврзи се" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Регистрацијата не е дозволена." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "Ова не е важечки код за покана." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Прекарот не е дозволен." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Прекарот е зафатен. Одберете друг." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Грешка при регистрирање на корисникот." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Грешка при поврзувањето на корисникот со Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Неважечко корисничко име или лозинка." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Нагодувања за Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Поврзете ја Вашата сметка на Twitter за да ги споделувате подновувањата со " +"Вашите пријатели на Twitter и обратно." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Сметка на Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Поврзана сметка на Twitter" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Прекини ја врската со сметката на Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Ако ја прекинете врската со сметката на Twitter, нема да можете да се " +"најавите! Затоа " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "поставете лозинка" + +#: twittersettings.php:138 +msgid " first." +msgstr "пред да продолжите." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Задржете си ја сметката на %1$s, но прекинете ја врската со Twitter. За " +"најава, користете ја Вашата лозинка на %1$s." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Прекини" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Нагодувања" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Автоматски испраќај ми ги забелешките на Twitter." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Испраќај локални „@“ одговори на Twitter." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "Претплатете се на пријателите од Twitter тука." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Увези ја хронологијата на моите пријатели." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Додај" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Неочекувано поднесување на образец." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "Нема врска со Twitter за отстранување." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Не можев да го отстранам корисникот на Twitter." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "Врската со сметката на Twitter е прекината." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Не можев да ги зачувам нагодувањата за Twitter." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "Нагодувањата за Twitter се зачувани." diff --git a/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..41d2eb3138 --- /dev/null +++ b/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,408 @@ +# Translation of StatusNet - TwitterBridge to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "Uw koppeling naar Twitter is uitgeschakeld." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Hallo, %1$s.\n" +"\n" +"Het spijt ons u te moeten meedelen dat uw koppeling met Twitter is " +"uitgeschakeld. De site heeft niet langer het recht om uw Twitterstatus bij " +"te werken. Hebt u wellicht de rechten voor %3$s ingetrokken?\n" +"\n" +"U kunt uw koppeling met Twitter opnieuw inschakelen via de pagina met " +"Twitterinstellingen:\n" +"\n" +"\t%2$s\n" +"\n" +"Met vriendelijke groet,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Aanmelden of registreren via Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Opties voor Twitterintegratie" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Instellingen voor Twitterkoppeling" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"De plugin Twitter Brigde maakt het mogelijk en StatusNetinstallatie te " +"integreren met <a href=\"http://twitter.com/\">Twitter</a>." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Instellingen Twitterkoppeling" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Ongeldige gebruikerssleutel. De maximale lengte is 255 tekens." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Ongeldig gebruikersgeheim. De maximale lengte is 255 tekens." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Instellingen Twitterapplicatie" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Gebruikerssleutel" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Gebruikerssleutel uitgegeven door Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Gebruikersgeheim" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Gebruikersgeheim uitgegeven door Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Let op: er zijn een gebruikerssleutel en gebruikersgeheim ingesteld." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Integratiebron" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Naam van uw Twitterapplicatie" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Opties" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "\"Aanmelden via Twitter\" inschakelen" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Gebruikers toestaan aan te melden met hun gebruikersnaam en wachtwoord van " +"Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Twitterimport inschakelen" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Gebruikers toestaan de tijdlijnen van hun Twittervrienden te importeren. " +"Vereist handmatig te configureren daemons." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Opslaan" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Twitterinstellingen opslaan" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "U bent al aangemeld." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Aanmelden via Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Aanmelden met uw Twittergebruiker" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Aanmelden met Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Er is iets vreemds gebeurd." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "Het was niet mogelijk uw Twittergebruiker te koppelen." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Het was niet mogelijk uw Twittergebruiker te koppelen: het oauth_token kwam " +"niet overeen." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Dit is de eerste keer dat u aanmeldt bij %s en dan moeten we uw " +"Twittergebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe " +"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Instellingen Twittergebruiker" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Koppelingsinstellingen" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " +"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Nieuwe gebruiker aanmaken" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Nieuwe gebruikersnaam" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Aanmaken" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Verbinden met een bestaande gebruiker" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en " +"wachtwoord om deze daarna te koppelen met uw Twittergebruiker." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Bestaande gebruikersnaam" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Wachtwoord" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Koppelen" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Registratie is niet toegestaan." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "De uitnodigingscode is ongeldig." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Gebruikersnaam niet toegestaan." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "" +"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Fout bij het registreren van de gebruiker." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Fout bij het verbinden van de gebruiker met Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Ongeldige gebruikersnaam of wachtwoord." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Twitterinstellingen" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Koppel uw Twittergebruiker om uw berichten te delen met uw Twittervrienden " +"en vice versa." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Twittergebruiker" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Gekoppelde Twittergebruiker" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Mijn gebruiker loskoppelen van Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Loskoppelen van uw Twittergebruiker zou ervoor zorgen dat u niet langer kunt " +"aanmelden. U moet eerst " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "een wachtwoord instellen" + +#: twittersettings.php:138 +msgid " first." +msgstr " voordat u verder kunt met deze handeling." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Uw gebruiker bij %1$s behouden maar deze loskoppelen van Twitter. U kunt uw " +"wachtwoord van %1$s gebruiken om aan te melden." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Loskoppelen" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Voorkeuren" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Mijn berichten automatisch naar Twitter verzenden" + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Lokale antwoorden met \"2\" naar Twitter verzenden." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "Hier op mijn Twittervrienden abonneren." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Tijdlijn van mijn vrienden importeren." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Toevoegen" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Het formulier is onverwacht ingezonden." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "Er is geen Twitterkoppeling om te verwijderen." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Het was niet mogelijk de Twittergebruiker te verwijderen." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "De Twittergebruiker is ontkoppeld." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Het was niet mogelijk de Twittervoorkeuren op te slaan." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "De Twitterinstellingen zijn opgeslagen." diff --git a/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..253ee5e8cc --- /dev/null +++ b/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,382 @@ +# Translation of StatusNet - TwitterBridge to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "" + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Twitter entegrasyon seçenekleri" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Twitter köprü yapılandırması" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Twitter köprü ayarları" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Kullanıcı anahtarı" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Twitter tarafından atanan kullanıcı anahtarı" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Entegrasyon kaynağı" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Twitter uygulamanızın ismi" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Seçenekler" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Kaydet" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Twitter ayarlarını kaydet" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Zaten giriş yapılmış." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Twitter Giriş" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Twitter hesabınızla giriş yapın" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Garip bir şeyler oldu." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "" + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"İlk defa %s'ye giriş yaptınız, Twitter hesabınızı yerel bir hesapla " +"bağlamamız gerekiyor. Yeni bir hesap oluşturabilir ya da varolan bir " +"hesabınızı kullanabilirsiniz." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Twitter Hesap Kurulumu" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Bağlantı seçenekleri" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Parola, e-posta adresi, anlık mesajlaşma adresi ve telefon numarası gibi " +"özel verilerim dışındaki tüm yazı ve dosyalarım %s dahilinde kullanılabilir." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Yeni hesap oluştur" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Bu kullanıcı adıyla yeni bir kullanıcı oluştur." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Yeni kullanıcı adı" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 tane küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Oluştur" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Varolan hesaba bağlan" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Halihazırda bir hesabınız varsa, Twitter hesabınızla bağlantı kurmak için " +"kullanıcı adı ve parolanızla giriş yapın." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Varolan kullanıcı adı" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Parola" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Bağlan" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Kayıt yapılmasına izin verilmiyor." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "Geçerli bir davet kodu değil." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Bu kullanıcı adına izin verilmiyor." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Kullanıcı adı halihazırda kullanılıyor. Başka bir tane deneyin." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Kullanıcı kayıt hatası." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Twitter'a kullanıcı bağlama hatası." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Geçersiz kullanıcı adı veya parola." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Twitter ayarları" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Güncellemelerinizi Twitter arkadaşlarınızla paylaşmak ve onların sizi takip " +"edebilmesi için Twitter hesabınızla bağlantı kurun." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Twitter hesabı" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Bağlı Twitter hesabı" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Hesabımın Twitter bağlantısını kes." + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:136 +msgid "set a password" +msgstr "bir parola ayarla" + +#: twittersettings.php:138 +msgid " first." +msgstr " ilk." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Bağlantıyı Kes" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Tercihler" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Durum mesajlarımı otomatik olarak Twitter'a gönder." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "" + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Arkadaşlarımın zaman çizelgesini içeri aktar." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Ekle" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Beklenmedik form gönderimi." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "" + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Twitter kullanıcısı silinemedi." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "Twitter hesabı bağlantısı kesildi." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Twitter tercihleri kaydedilemedi." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "Twitter tercihleriniz kaydedildi." diff --git a/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..3e775b11e9 --- /dev/null +++ b/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,404 @@ +# Translation of StatusNet - TwitterBridge to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "Ваш місток до Twitter було відключено." + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Вітаємо, %1$s. Нам дуже прикро про це повідомляти, але з’єднання вашого " +"акаунту StatusNet з Twitter було відключено. Здається, ми більше не маємо " +"дозволу оновлювати ваші статуси в Twitter. Можливо, це саме ви скасували " +"дозвіл %3$s?\n" +"\n" +"Ви маєте можливість перезапустити додаток для автоматичного імпорту ваших " +"статусів до Twitter, завітавши до сторінки ваших налаштувань:\n" +"\n" +"%2$s\n" +"\n" +"З повагою,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "Увійти або зареєструватись з Twitter" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Параметри інтеграції з Twitter" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Налаштування містка з Twitter" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"Додаток TwitterBridge дозволяє інтегрувати StatusNet-сумісний сайт з <a href=" +"\"http://twitter.com/\">Twitter</a>, встановлюючи так званий «місток»." + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Налаштування містка з Twitter" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Невірний ключ споживача. Максимальна довжина — 255 символів." + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Невірний секретний код споживача. Максимальна довжина — 255 символів." + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Налаштування додатку для Twitter" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Ключ споживача" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Ключ споживача, що він був наданий сервісом Twitter" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Секретний код споживача" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Секретний код споживача, що він був наданий сервісом Twitter" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "Примітка: глобальний ключ споживача та секретний код встановлено." + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "Джерело об’єднання" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "Назва вашого додатку для Twitter" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "Параметри" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Увімкнути «Увійти з допомогою Twitter»" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Дозволити користувачам входити на сайт, використовуючи повноваження Twitter" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "Увімкнути імпорт з Twitter" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Дозволити користувачам імпортувати їхні стрічки дописів з Twitter. Це " +"вимагає ручної настройки процесів типу «daemon»." + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "Зберегти" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "Зберегти налаштування Twitter" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "Тепер ви увійшли." + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Вхід Twitter" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "Увійти за допомогою акаунту Twitter" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "Увійти з акаунтом Twitter" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "Сталося щось незрозуміле." + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "Не вдається підключити ваш акаунт Twitter." + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Не вдається підключити ваш акаунт Twitter: невідповідність oauth_token." + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Twitter " +"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " +"використати такий, що вже існує, якщо він у вас є." + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Створення акаунту за допомогою Twitter" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "Опції з’єднання" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " +"електронна адреса, адреса IM, телефонний номер." + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "Створити новий акаунт" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "Створити нового користувача з цим нікнеймом." + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "Новий нікнейм" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "Створити" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "Приєднати акаунт, який вже існує" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " +"приєднати їх до Twitter." + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "Нікнейм, який вже існує" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "Пароль" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "Під’єднати" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "Реєстрацію не дозволено." + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "Це не дійсний код запрошення." + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "Нікнейм не допускається." + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "Цей нікнейм вже використовується. Спробуйте інший." + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "Помилка при реєстрації користувача." + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "Помилка при підключенні користувача до Twitter." + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "Недійсне ім’я або пароль." + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Налаштування Twitter" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Підключіть ваш акаунт Twitter, щоб ділитися новими дописами з друзями в " +"Twitter і навпаки." + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Акаунт Twitter" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "Під’єднаний акаунт Twitter" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "Від’єднати мій акаунт від Twitter" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Якщо ви від’єднаєте свій Twitter, то це унеможливить вхід до системи у " +"майбутньому! Будь ласка, " + +#: twittersettings.php:136 +msgid "set a password" +msgstr "встановіть пароль" + +#: twittersettings.php:138 +msgid " first." +msgstr " спочатку." + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Зберегти ваш акаунт %1$s, але від’єднати його від Twitter. Ви можете " +"використовувати пароль від %1$s для входу на сайт." + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "Від’єднати" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "Налаштування" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "Автоматично пересилати мої дописи на Twitter." + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "Надіслати локальні «@» відповіді на Twitter." + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "Підписатись до моїх друзів з Twitter тут." + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "Імпортувати стрічку дописів моїх друзів." + +#: twittersettings.php:202 +msgid "Add" +msgstr "Додати" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "Несподіване представлення форми." + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "Не виявлено з’єднань з Twitter для видалення." + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "Не вдається видалити користувача Twitter." + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "Акаунт Twitter від’єднано." + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "Не можу зберегти налаштування Twitter." + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "Налаштування Twitter збережено." diff --git a/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po new file mode 100644 index 0000000000..b852a58257 --- /dev/null +++ b/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po @@ -0,0 +1,389 @@ +# Translation of StatusNet - TwitterBridge to Simplified Chinese (‪中文(简体)‬) +# Expored from translatewiki.net +# +# Author: PhiLiP +# Author: ZhengYiFeng +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TwitterBridge\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:11+0000\n" +"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-" +"hans>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-30 20:43:58+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: zh-hans\n" +"X-Message-Group: #out-statusnet-plugin-twitterbridge\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: twitter.php:407 +msgid "Your Twitter bridge has been disabled." +msgstr "你的 Twitter bridge 已被禁用。" + +#: twitter.php:411 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" +msgstr "" +"Hi, %1$s。我们很抱歉通知你,你与 Twitter 的连接已被禁用了。我们似乎没有更新" +"你 Twitter 消息的权限了。或许你之前取消了 %3$ 的访问权限?\n" +"\n" +"你可以通过更新你的 Twitter 设置重新恢复你的 Twitter 连接:\n" +"\n" +"%2$s\n" +"\n" +"祝好,\n" +"%3$s" + +#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 +#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 +msgid "Twitter" +msgstr "Twitter" + +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" +msgstr "使用 Twitter 登录或注册" + +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" +msgstr "Twitter 整合选项" + +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" +msgstr "Twitter bridge 设置" + +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with <a href=\"http://twitter.com/\">Twitter</a>." +msgstr "" +"Twitter \"bridge\" 是个可以让 StatusNet 账户与 <a href=\"http://twitter.com/" +"\">Twitter</a> 整合的插件。" + +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "Twitter bridge 设置" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "无效的 consumer key。最大长度为 255 字符。" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "无效的 consumer secret。最大长度为 255 字符。" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "Twitter 应用设置" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "Consumer key" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "Twitter 分配的 consumer key" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "Consumer secret" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "Twitter 分配的 consumer secret" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "注意:已设置了一个全局的 consumer key 和 secret。" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "整合来源" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "你的 Twitter 应用名称" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "选项" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "启用 “使用 Twitter 登录”" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "允许用户使用他们的 Twitter 帐号登录。" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "启用 Twitter 导入" + +#: twitteradminpanel.php:276 +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "允许用户导入他们 Twitter 好友的时间线。需要手动设置后台进程。" + +#: twitteradminpanel.php:293 twittersettings.php:200 +msgid "Save" +msgstr "保存" + +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" +msgstr "保存 Twitter 设置" + +#: twitterlogin.php:56 +msgid "Already logged in." +msgstr "已登录。" + +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "Twitter 登录" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "使用你的 Twitter 帐号登录" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "使用 Twitter 登录" + +#: twitterauthorization.php:120 twittersettings.php:226 +msgid "There was a problem with your session token. Try again, please." +msgstr "你的 session token 出现了一个问题,请重试。" + +#: twitterauthorization.php:126 +msgid "You can't register if you don't agree to the license." +msgstr "你必须同意许可协议才能注册。" + +#: twitterauthorization.php:135 +msgid "Something weird happened." +msgstr "发生了很诡异的事情。" + +#: twitterauthorization.php:181 twitterauthorization.php:229 +#: twitterauthorization.php:300 +msgid "Couldn't link your Twitter account." +msgstr "无法连接你的 Twitter 帐号。" + +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "无法连接你的 Twitter 帐号:oauth_token 不符。" + +#: twitterauthorization.php:312 +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"这是你第一次登录到 %s,我们需要将你的 Twitter 帐号与一个本地的帐号关联。你可" +"以新建一个帐号,或者使用你在本站已有的帐号。" + +#: twitterauthorization.php:318 +msgid "Twitter Account Setup" +msgstr "Twitter 帐号设置" + +#: twitterauthorization.php:351 +msgid "Connection options" +msgstr "连接选项" + +#: twitterauthorization.php:360 +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"我的文字和文件在%s下提供,除了如下隐私内容:密码、电子邮件地址、IM 地址和电话" +"号码。" + +#: twitterauthorization.php:381 +msgid "Create new account" +msgstr "创建新帐户" + +#: twitterauthorization.php:383 +msgid "Create a new user with this nickname." +msgstr "以此昵称创建新帐户" + +#: twitterauthorization.php:386 +msgid "New nickname" +msgstr "新昵称" + +#: twitterauthorization.php:388 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 到 64 个小写字母或数字,不包含标点或空格" + +#: twitterauthorization.php:391 +msgid "Create" +msgstr "创建" + +#: twitterauthorization.php:396 +msgid "Connect existing account" +msgstr "关联现有账号" + +#: twitterauthorization.php:398 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "如果你已有帐号,请输入用户名和密码登录并将其与你的 Twitter 账号关联。" + +#: twitterauthorization.php:401 +msgid "Existing nickname" +msgstr "已存在的昵称" + +#: twitterauthorization.php:404 +msgid "Password" +msgstr "密码" + +#: twitterauthorization.php:407 +msgid "Connect" +msgstr "关联" + +#: twitterauthorization.php:423 twitterauthorization.php:432 +msgid "Registration not allowed." +msgstr "不允许注册。" + +#: twitterauthorization.php:439 +msgid "Not a valid invitation code." +msgstr "无效的邀请码。" + +#: twitterauthorization.php:452 +msgid "Nickname not allowed." +msgstr "昵称不被允许。" + +#: twitterauthorization.php:457 +msgid "Nickname already in use. Try another one." +msgstr "昵称已被使用,换一个吧。" + +#: twitterauthorization.php:472 +msgid "Error registering user." +msgstr "注册用户出错。" + +#: twitterauthorization.php:483 twitterauthorization.php:521 +#: twitterauthorization.php:541 +msgid "Error connecting user to Twitter." +msgstr "关联用户到 Twitter 出错。" + +#: twitterauthorization.php:503 +msgid "Invalid username or password." +msgstr "用户名或密码不正确。" + +#: twittersettings.php:58 +msgid "Twitter settings" +msgstr "Twitter 设置" + +#: twittersettings.php:69 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"关联你的 Twitter 帐号并与你的 Twitter 好友分享你的更新和查看好友的更新。" + +#: twittersettings.php:116 +msgid "Twitter account" +msgstr "Twitter 帐号" + +#: twittersettings.php:121 +msgid "Connected Twitter account" +msgstr "已关联的 Twitter 帐号" + +#: twittersettings.php:126 +msgid "Disconnect my account from Twitter" +msgstr "取消我的帐号与 Twitter 的关联" + +#: twittersettings.php:132 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "取消关联你的 Twitter 帐号和能会导致无法登录!请" + +#: twittersettings.php:136 +msgid "set a password" +msgstr "设置一个密码" + +#: twittersettings.php:138 +msgid " first." +msgstr "先。" + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:142 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "保留你的 %1$s 帐号并取消关联 Twitter。你可以使用你的 %1$s 密码来登录。" + +#: twittersettings.php:150 +msgid "Disconnect" +msgstr "取消关联" + +#: twittersettings.php:157 +msgid "Preferences" +msgstr "参数设置" + +#: twittersettings.php:161 +msgid "Automatically send my notices to Twitter." +msgstr "自动将我的消息发送到 Twitter。" + +#: twittersettings.php:168 +msgid "Send local \"@\" replies to Twitter." +msgstr "将本地的“@”回复发送到 Twitter。" + +#: twittersettings.php:175 +msgid "Subscribe to my Twitter friends here." +msgstr "关注我在这里的 Twitter 好友。" + +#: twittersettings.php:184 +msgid "Import my friends timeline." +msgstr "导入我好友的时间线。" + +#: twittersettings.php:202 +msgid "Add" +msgstr "添加" + +#: twittersettings.php:236 +msgid "Unexpected form submission." +msgstr "未预料的表单提交。" + +#: twittersettings.php:251 +msgid "No Twitter connection to remove." +msgstr "没有可以移除的Twitter连接。" + +#: twittersettings.php:259 +msgid "Couldn't remove Twitter user." +msgstr "无法删除 Twitter 用户。" + +#: twittersettings.php:263 +msgid "Twitter account disconnected." +msgstr "已取消 Twitter 帐号关联。" + +#: twittersettings.php:283 twittersettings.php:294 +msgid "Couldn't save Twitter preferences." +msgstr "无法保存 Twitter 参数设置。" + +#: twittersettings.php:302 +msgid "Twitter preferences saved." +msgstr "已保存 Twitter 参数设置。" diff --git a/plugins/TwitterBridge/scripts/fakestream.php b/plugins/TwitterBridge/scripts/fakestream.php new file mode 100644 index 0000000000..3696888162 --- /dev/null +++ b/plugins/TwitterBridge/scripts/fakestream.php @@ -0,0 +1,147 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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/ + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$shortoptions = 'n:'; +$longoptions = array('nick=','import','all'); + +$helptext = <<<ENDOFHELP +USAGE: fakestream.php -n <username> + + -n --nick=<username> Local user whose Twitter timeline to watch + --import Experimental: run incoming messages through import + --all Experimental: run multiuser; requires nick be the app owner + +Attempts a User Stream connection to Twitter as the given user, dumping +data as it comes. + +ENDOFHELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (have_option('n')) { + $nickname = get_option_value('n'); +} else if (have_option('nick')) { + $nickname = get_option_value('nickname'); +} else if (have_option('all')) { + $nickname = null; +} else { + show_help($helptext); + exit(0); +} + +/** + * + * @param User $user + * @return TwitterOAuthClient + */ +function twitterAuthForUser(User $user) +{ + $flink = Foreign_link::getByUserID($user->id, + TWITTER_SERVICE); + if (!$flink) { + throw new ServerException("No Twitter config for this user."); + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + if (!$token) { + throw new ServerException("No Twitter OAuth credentials for this user."); + } + + return new TwitterOAuthClient($token->key, $token->secret); +} + +/** + * Emulate the line-by-line output... + * + * @param Foreign_link $flink + * @param mixed $data + */ +function dumpMessage($flink, $data) +{ + $msg = prepMessage($flink, $data); + print json_encode($msg) . "\r\n"; +} + +function prepMessage($flink, $data) +{ + $msg->for_user = $flink->foreign_id; + $msg->message = $data; + return $msg; +} + +if (have_option('all')) { + $users = array(); + + $flink = new Foreign_link(); + $flink->service = TWITTER_SERVICE; + $flink->find(); + + while ($flink->fetch()) { + if (($flink->noticesync & FOREIGN_NOTICE_RECV) == + FOREIGN_NOTICE_RECV) { + $users[] = $flink->user_id; + } + } +} else { + $user = User::staticGet('nickname', $nickname); + $users = array($user->id); +} + +$output = array(); +foreach ($users as $id) { + $user = User::staticGet('id', $id); + if (!$user) { + throw new Exception("No user for id $id"); + } + $auth = twitterAuthForUser($user); + $flink = Foreign_link::getByUserID($user->id, + TWITTER_SERVICE); + + $friends->friends = $auth->friendsIds(); + dumpMessage($flink, $friends); + + $timeline = $auth->statusesHomeTimeline(); + foreach ($timeline as $status) { + $output[] = prepMessage($flink, $status); + } +} + +usort($output, function($a, $b) { + if ($a->message->id < $b->message->id) { + return -1; + } else if ($a->message->id == $b->message->id) { + return 0; + } else { + return 1; + } +}); + +foreach ($output as $msg) { + print json_encode($msg) . "\r\n"; +} diff --git a/plugins/TwitterBridge/scripts/initialize_notice_to_status.php b/plugins/TwitterBridge/scripts/initialize_notice_to_status.php new file mode 100644 index 0000000000..f4a60c479d --- /dev/null +++ b/plugins/TwitterBridge/scripts/initialize_notice_to_status.php @@ -0,0 +1,51 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$helptext = <<<ENDOFHELP +USAGE: initialize_notice_to_status.php + +Initializes the notice_to_status table with existing Twitter synch +data. Only necessary if you've had the Twitter bridge enabled before +version 0.9.5. + +ENDOFHELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +// We update any notices that may have come in from +// Twitter that we don't have a status_id for. Note that +// this won't catch notices that originated at this StatusNet site. + +$n = new Notice(); + +$n->query('SELECT notice.id, notice.uri ' . + 'FROM notice LEFT JOIN notice_to_status ' . + 'ON notice.id = notice_to_status.notice_id ' . + 'WHERE notice.source = "twitter"' . + 'AND notice_to_status.status_id IS NULL'); + +while ($n->fetch()) { + if (preg_match('/^http://twitter.com(/#!)?/[\w_.]+/status/(\d+)$/', $n->uri, $match)) { + $status_id = $match[1]; + Notice_to_status::saveNew($n->id, $status_id); + } +} diff --git a/plugins/TwitterBridge/scripts/streamtest.php b/plugins/TwitterBridge/scripts/streamtest.php new file mode 100644 index 0000000000..aad15fdeab --- /dev/null +++ b/plugins/TwitterBridge/scripts/streamtest.php @@ -0,0 +1,244 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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/ + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$shortoptions = 'n:'; +$longoptions = array('nick=','import','all','apiroot='); + +$helptext = <<<ENDOFHELP +USAGE: streamtest.php -n <username> + + -n --nick=<username> Local user whose Twitter timeline to watch + --import Experimental: run incoming messages through import + --all Experimental: run multiuser; requires nick be the app owner + --apiroot=<url> Provide alternate streaming API root URL + +Attempts a User Stream connection to Twitter as the given user, dumping +data as it comes. + +ENDOFHELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; +require_once dirname(dirname(__FILE__)) . '/jsonstreamreader.php'; +require_once dirname(dirname(__FILE__)) . '/twitterstreamreader.php'; + +if (have_option('n')) { + $nickname = get_option_value('n'); +} else if (have_option('nick')) { + $nickname = get_option_value('nickname'); +} else { + show_help($helptext); + exit(0); +} + +/** + * + * @param User $user + * @return TwitterOAuthClient + */ +function twitterAuthForUser(User $user) +{ + $flink = Foreign_link::getByUserID($user->id, + TWITTER_SERVICE); + if (!$flink) { + throw new ServerException("No Twitter config for this user."); + } + + $token = TwitterOAuthClient::unpackToken($flink->credentials); + if (!$token) { + throw new ServerException("No Twitter OAuth credentials for this user."); + } + + return new TwitterOAuthClient($token->key, $token->secret); +} + +function homeStreamForUser(User $user) +{ + $auth = twitterAuthForUser($user); + return new TwitterUserStream($auth); +} + +function siteStreamForOwner(User $user) +{ + // The user we auth as must be the owner of the application. + $auth = twitterAuthForUser($user); + + if (have_option('apiroot')) { + $stream = new TwitterSiteStream($auth, get_option_value('apiroot')); + } else { + $stream = new TwitterSiteStream($auth); + } + + // Pull Twitter user IDs for all users we want to pull data for + $userIds = array(); + + $flink = new Foreign_link(); + $flink->service = TWITTER_SERVICE; + $flink->find(); + + while ($flink->fetch()) { + if (($flink->noticesync & FOREIGN_NOTICE_RECV) == + FOREIGN_NOTICE_RECV) { + $userIds[] = $flink->foreign_id; + } + } + + $stream->followUsers($userIds); + return $stream; +} + + +$user = User::staticGet('nickname', $nickname); +global $myuser; +$myuser = $user; + +if (have_option('all')) { + $stream = siteStreamForOwner($user); +} else { + $stream = homeStreamForUser($user); +} + + +$stream->hookEvent('raw', function($data, $context) { + common_log(LOG_INFO, json_encode($data) . ' for ' . json_encode($context)); +}); +$stream->hookEvent('friends', function($data, $context) { + printf("Friend list: %s\n", implode(', ', $data->friends)); +}); +$stream->hookEvent('favorite', function($data, $context) { + printf("%s favorited %s's notice: %s\n", + $data->source->screen_name, + $data->target->screen_name, + $data->target_object->text); +}); +$stream->hookEvent('unfavorite', function($data, $context) { + printf("%s unfavorited %s's notice: %s\n", + $data->source->screen_name, + $data->target->screen_name, + $data->target_object->text); +}); +$stream->hookEvent('follow', function($data, $context) { + printf("%s friended %s\n", + $data->source->screen_name, + $data->target->screen_name); +}); +$stream->hookEvent('unfollow', function($data, $context) { + printf("%s unfriended %s\n", + $data->source->screen_name, + $data->target->screen_name); +}); +$stream->hookEvent('delete', function($data, $context) { + printf("Deleted status notification: %s\n", + $data->status->id); +}); +$stream->hookEvent('scrub_geo', function($data, $context) { + printf("Req to scrub geo data for user id %s up to status ID %s\n", + $data->user_id, + $data->up_to_status_id); +}); +$stream->hookEvent('status', function($data, $context) { + printf("Received status update from %s: %s\n", + $data->user->screen_name, + $data->text); + + if (have_option('import')) { + $importer = new TwitterImport(); + printf("\timporting..."); + $notice = $importer->importStatus($data); + if ($notice) { + global $myuser; + Inbox::insertNotice($myuser->id, $notice->id); + printf(" %s\n", $notice->id); + } else { + printf(" FAIL\n"); + } + } +}); +$stream->hookEvent('direct_message', function($data) { + printf("Direct message from %s to %s: %s\n", + $data->sender->screen_name, + $data->recipient->screen_name, + $data->text); +}); + +class TwitterManager extends IoManager +{ + function __construct(TwitterStreamReader $stream) + { + $this->stream = $stream; + } + + function getSockets() + { + return $this->stream->getSockets(); + } + + function handleInput($data) + { + $this->stream->handleInput($data); + return true; + } + + function start() + { + $this->stream->connect(); + return true; + } + + function finish() + { + $this->stream->close(); + return true; + } + + public static function get() + { + throw new Exception('not a singleton'); + } +} + +class TwitterStreamMaster extends IoMaster +{ + function __construct($id, $ioManager) + { + parent::__construct($id); + $this->ioManager = $ioManager; + } + + /** + * Initialize IoManagers which are appropriate to this instance. + */ + function initManagers() + { + $this->instantiate($this->ioManager); + } +} + +$master = new TwitterStreamMaster('TwitterStream', new TwitterManager($stream)); +$master->init(); +$master->service(); diff --git a/plugins/TwitterBridge/tweetctlqueuehandler.php b/plugins/TwitterBridge/tweetctlqueuehandler.php new file mode 100644 index 0000000000..4c8bef463e --- /dev/null +++ b/plugins/TwitterBridge/tweetctlqueuehandler.php @@ -0,0 +1,59 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; + +/** + * Queue handler to deal with incoming Twitter status updates, as retrieved by + * TwitterDaemon (twitterdaemon.php). + * + * The queue handler passes the status through TwitterImporter for import into the + * local database (if necessary), then adds the imported notice to the local inbox + * of the attached Twitter user. + * + * Warning: the way we do inbox distribution manually means that realtime, XMPP, etc + * don't work on Twitter-borne messages. When TwitterImporter is changed to handle + * that correctly, we'll only need to do this once...? + */ +class TweetCtlQueueHandler extends QueueHandler +{ + function transport() + { + return 'tweetctl'; + } + + function handle($data) + { + // A user has activated or deactivated their Twitter bridge + // import status. + $action = $data['action']; + $userId = $data['for_user']; + + $tm = TwitterManager::get(); + if ($action == 'start') { + $tm->startTwitterUser($userId); + } else if ($action == 'stop') { + $tm->stopTwitterUser($userId); + } + + return true; + } +} diff --git a/plugins/TwitterBridge/tweetinqueuehandler.php b/plugins/TwitterBridge/tweetinqueuehandler.php new file mode 100644 index 0000000000..ff6b2cc861 --- /dev/null +++ b/plugins/TwitterBridge/tweetinqueuehandler.php @@ -0,0 +1,63 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; + +/** + * Queue handler to deal with incoming Twitter status updates, as retrieved by + * TwitterDaemon (twitterdaemon.php). + * + * The queue handler passes the status through TwitterImporter for import into the + * local database (if necessary), then adds the imported notice to the local inbox + * of the attached Twitter user. + * + * Warning: the way we do inbox distribution manually means that realtime, XMPP, etc + * don't work on Twitter-borne messages. When TwitterImporter is changed to handle + * that correctly, we'll only need to do this once...? + */ +class TweetInQueueHandler extends QueueHandler +{ + function transport() + { + return 'tweetin'; + } + + function handle($data) + { + // JSON object with Twitter data + $status = $data['status']; + + // Twitter user ID this incoming data belongs to. + $receiver = $data['for_user']; + + $importer = new TwitterImport(); + $notice = $importer->importStatus($status); + if ($notice) { + $flink = Foreign_link::getByForeignID(TWITTER_SERVICE, $receiver); + if ($flink) { + // @fixme this should go through more regular channels? + Inbox::insertNotice($flink->user_id, $notice->id); + } + } + + return true; + } +} diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 306ba2442a..a993f8ff8f 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -23,7 +23,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { define('TWITTER_SERVICE', 1); // Twitter is foreign_service ID 1 -require_once INSTALLDIR . '/plugins/TwitterBridge/twitterbasicauthclient.php'; require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php'; function add_twitter_user($twitter_id, $screen_name) @@ -31,7 +30,6 @@ function add_twitter_user($twitter_id, $screen_name) // Clear out any bad old foreign_users with the new user's legit URL // This can happen when users move around or fakester accounts get // repoed, and things like that. - $luser = Foreign_user::getForeignUser($twitter_id, TWITTER_SERVICE); if (!empty($luser)) { @@ -47,7 +45,7 @@ function add_twitter_user($twitter_id, $screen_name) $fuser = new Foreign_user(); $fuser->nickname = $screen_name; - $fuser->uri = 'http://twitter.com/' . $screen_name; + $fuser->uri = 'http://twitter.com/#!/' . $screen_name; $fuser->id = $twitter_id; $fuser->service = TWITTER_SERVICE; $fuser->created = common_sql_now(); @@ -70,7 +68,6 @@ function save_twitter_user($twitter_id, $screen_name) { // Check to see whether the Twitter user is already in the system, // and update its screen name and uri if so. - $fuser = Foreign_user::getForeignUser($twitter_id, TWITTER_SERVICE); if (!empty($fuser)) { @@ -88,9 +85,7 @@ function save_twitter_user($twitter_id, $screen_name) } } else { - // Kill any old, invalid records for this screen name - $fuser = Foreign_user::getByNickname($screen_name, TWITTER_SERVICE); if (!empty($fuser)) { @@ -111,13 +106,14 @@ function save_twitter_user($twitter_id, $screen_name) } function is_twitter_bound($notice, $flink) { - // Check to see if notice should go to Twitter if (!empty($flink) && ($flink->noticesync & FOREIGN_NOTICE_SEND)) { - // If it's not a Twitter-style reply, or if the user WANTS to send replies. + // If it's not a Twitter-style reply, or if the user WANTS to send replies, + // or if it's in reply to a twitter notice if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) || - ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) { + ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) || + is_twitter_notice($notice->reply_to)) { return true; } } @@ -125,22 +121,121 @@ function is_twitter_bound($notice, $flink) { return false; } +function is_twitter_notice($id) +{ + $n2s = Notice_to_status::staticGet('notice_id', $id); + + return (!empty($n2s)); +} + +/** + * Pull the formatted status ID number from a Twitter status object + * returned via JSON from Twitter API. + * + * Encapsulates checking for the id_str attribute, which is required + * to read 64-bit "Snowflake" ID numbers on a 32-bit system -- the + * integer id attribute gets corrupted into a double-precision float, + * losing a few digits of precision. + * + * Warning: avoid performing arithmetic or direct comparisons with + * this number, as it may get coerced back to a double on 32-bit. + * + * @param object $status + * @param string $field base field name if not 'id' + * @return mixed id number as int or string + */ +function twitter_id($status, $field='id') +{ + $field_str = "{$field}_str"; + if (isset($status->$field_str)) { + // String version of the id -- required on 32-bit systems + // since the 64-bit numbers get corrupted as ints. + return $status->$field_str; + } else { + return $status->$field; + } +} + +/** + * Check if we need to broadcast a notice over the Twitter bridge, and + * do so if necessary. Will determine whether to do a straight post or + * a repeat/retweet + * + * This function is meant to be called directly from TwitterQueueHandler. + * + * @param Notice $notice + * @return boolean true if complete or successful, false if we should retry + */ function broadcast_twitter($notice) { $flink = Foreign_link::getByUserID($notice->profile_id, TWITTER_SERVICE); - if (is_twitter_bound($notice, $flink)) { - if (TwitterOAuthClient::isPackedToken($flink->credentials)) { + // Don't bother with basic auth, since it's no longer allowed + if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) { + if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) { + $retweet = retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of)); + if (is_object($retweet)) { + Notice_to_status::saveNew($notice->id, twitter_id($retweet)); + return true; + } else { + // Our error processing will have decided if we need to requeue + // this or can discard safely. + return $retweet; + } + } else if (is_twitter_bound($notice, $flink)) { return broadcast_oauth($notice, $flink); - } else { - return broadcast_basicauth($notice, $flink); } } return true; } +/** + * Send a retweet to Twitter for a notice that has been previously bridged + * in or out. + * + * Warning: the return value is not guaranteed to be an object; some error + * conditions will return a 'true' which should be passed on to a calling + * queue handler. + * + * No local information about the resulting retweet is saved: it's up to + * caller to save new mappings etc if appropriate. + * + * @param Foreign_link $flink + * @param Notice $notice + * @return mixed object with resulting Twitter status data on success, or true/false/null on error conditions. + */ +function retweet_notice($flink, $notice) +{ + $token = TwitterOAuthClient::unpackToken($flink->credentials); + $client = new TwitterOAuthClient($token->key, $token->secret); + + $id = twitter_status_id($notice); + + if (empty($id)) { + common_log(LOG_WARNING, "Trying to retweet notice {$notice->id} with no known status id."); + return null; + } + + try { + $status = $client->statusesRetweet($id); + return $status; + } catch (OAuthClientException $e) { + return process_error($e, $flink, $notice); + } +} + +function twitter_status_id($notice) +{ + $n2s = Notice_to_status::staticGet('notice_id', $notice->id); + if (empty($n2s)) { + return null; + } else { + return $n2s->status_id; + } +} + /** * Pull any extra information from a notice that we should transfer over * to Twitter beyond the notice text itself. @@ -156,10 +251,13 @@ function twitter_update_params($notice) $params['lat'] = $notice->lat; $params['long'] = $notice->lon; } + if (!empty($notice->reply_to) && is_twitter_notice($notice->reply_to)) { + $reply = Notice::staticGet('id', $notice->reply_to); + $params['in_reply_to_status_id'] = twitter_status_id($reply); + } return $params; } - function broadcast_oauth($notice, $flink) { $user = $flink->getUser(); $statustxt = format_status($notice); @@ -171,6 +269,9 @@ function broadcast_oauth($notice, $flink) { try { $status = $client->statusesUpdate($statustxt, $params); + if (!empty($status)) { + Notice_to_status::saveNew($notice->id, twitter_id($status)); + } } catch (OAuthClientException $e) { return process_error($e, $flink, $notice); } @@ -179,7 +280,6 @@ function broadcast_oauth($notice, $flink) { // This could represent a failure posting, // or the Twitter API might just be behaving flakey. - $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' . 'trying to post notice %d for User %s (user id %d).', $notice->id, @@ -192,7 +292,6 @@ function broadcast_oauth($notice, $flink) { } // Notice crossed the great divide - $msg = sprintf('Twitter bridge - posted notice %d to Twitter using ' . 'OAuth for User %s (user id %d).', $notice->id, @@ -204,52 +303,6 @@ function broadcast_oauth($notice, $flink) { return true; } -function broadcast_basicauth($notice, $flink) -{ - $user = $flink->getUser(); - - $statustxt = format_status($notice); - $params = twitter_update_params($notice); - - $client = new TwitterBasicAuthClient($flink); - $status = null; - - try { - $status = $client->statusesUpdate($statustxt, $params); - } catch (BasicAuthException $e) { - return process_error($e, $flink, $notice); - } - - if (empty($status)) { - - $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_WARNING, $errmsg); - - $errmsg = sprintf('No data returned by Twitter API when ' . - 'trying to post notice %d for %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - common_log(LOG_WARNING, $errmsg); - return false; - } - - $msg = sprintf('Twitter bridge - posted notice %d to Twitter using ' . - 'HTTP basic auth for User %s (user id %d).', - $notice->id, - $user->nickname, - $user->id); - - common_log(LOG_INFO, $msg); - - return true; -} - function process_error($e, $flink, $notice) { $user = $flink->getUser(); @@ -287,15 +340,14 @@ function process_error($e, $flink, $notice) function format_status($notice) { - // XXX: Hack to get around PHP cURL's use of @ being a a meta character - $statustxt = preg_replace('/^@/', ' @', $notice->content); + // Start with the plaintext source of this notice... + $statustxt = $notice->content; // Convert !groups to #hashes - // XXX: Make this an optional setting? - $statustxt = preg_replace('/(^|\s)!([A-Za-z0-9]{1,64})/', "\\1#\\2", $statustxt); + // Twitter still has a 140-char hardcoded max. if (mb_strlen($statustxt) > 140) { $noticeUrl = common_shorten_url($notice->uri); $urlLen = mb_strlen($noticeUrl); @@ -323,11 +375,9 @@ function remove_twitter_link($flink) // Notify the user that her Twitter bridge is down if (isset($user->email)) { - $result = mail_twitter_bridge_removed($user); if (!$result) { - $msg = 'Unable to send email to notify ' . "$user->nickname (user id: $user->id) " . 'that their Twitter bridge link was ' . @@ -336,7 +386,6 @@ function remove_twitter_link($flink) common_log(LOG_WARNING, $msg); } } - } /** @@ -349,7 +398,6 @@ function remove_twitter_link($flink) * * @return boolean success flag */ - function mail_twitter_bridge_removed($user) { $profile = $user->getProfile(); @@ -362,11 +410,11 @@ function mail_twitter_bridge_removed($user) $body = sprintf(_m('Hi, %1$s. We\'re sorry to inform you that your ' . 'link to Twitter has been disabled. We no longer seem to have ' . - 'permission to update your Twitter status. (Did you revoke ' . - '%3$s\'s access?)' . "\n\n" . + 'permission to update your Twitter status. Did you maybe revoke ' . + '%3$s\'s access?' . "\n\n" . 'You can re-enable your Twitter bridge by visiting your ' . "Twitter settings page:\n\n\t%2\$s\n\n" . - "Regards,\n%3\$s\n"), + "Regards,\n%3\$s"), $profile->getBestName(), common_local_url('twittersettings'), common_config('site', 'name')); @@ -374,4 +422,3 @@ function mail_twitter_bridge_removed($user) common_switch_locale(); return mail_to_user($user, $subject, $body); } - diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php index 69f8da078a..1a83b47d56 100644 --- a/plugins/TwitterBridge/twitteradminpanel.php +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -40,7 +40,6 @@ 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 TwitteradminpanelAction extends AdminPanelAction { /** @@ -48,7 +47,6 @@ class TwitteradminpanelAction extends AdminPanelAction * * @return string page title */ - function title() { return _m('Twitter'); @@ -59,7 +57,6 @@ class TwitteradminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { return _m('Twitter bridge settings'); @@ -70,7 +67,6 @@ class TwitteradminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $form = new TwitterAdminPanelForm($this); @@ -83,7 +79,6 @@ class TwitteradminpanelAction extends AdminPanelAction * * @return void */ - function saveSettings() { static $settings = array( @@ -138,6 +133,11 @@ class TwitteradminpanelAction extends AdminPanelAction $config->query('COMMIT'); + // Flush the router cache: we may have enabled/disabled bridging, + // which will add or remove some actions. + $cache = Cache::instance(); + $cache->delete(Router::cacheKey()); + return; } @@ -173,7 +173,6 @@ class TwitterAdminPanelForm extends AdminForm * * @return int ID of the form */ - function id() { return 'twitteradminpanel'; @@ -184,7 +183,6 @@ class TwitterAdminPanelForm extends AdminForm * * @return string class of the form */ - function formClass() { return 'form_settings'; @@ -195,7 +193,6 @@ class TwitterAdminPanelForm extends AdminForm * * @return string URL of the action */ - function action() { return common_local_url('twitteradminpanel'); @@ -206,7 +203,6 @@ class TwitterAdminPanelForm extends AdminForm * * @return void */ - function formData() { $this->out->elementStart( @@ -239,7 +235,7 @@ class TwitterAdminPanelForm extends AdminForm if (!empty($globalConsumerKey) && !empty($globalConsumerSec)) { $this->li(); - $this->out->element('p', 'form_guide', _('Note: a global consumer key and secret are set.')); + $this->out->element('p', 'form_guide', _m('Note: a global consumer key and secret are set.')); $this->unli(); } @@ -292,9 +288,8 @@ class TwitterAdminPanelForm extends AdminForm * * @return void */ - function formActions() { - $this->out->submit('submit', _('Save'), 'submit', null, _('Save Twitter settings')); + $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Twitter settings')); } } diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index 7a896e1687..bbe41bd438 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -117,13 +117,13 @@ class TwitterauthorizationAction extends Action $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { - $this->showForm(_('There was a problem with your session token. Try again, please.')); + $this->showForm(_m('There was a problem with your session token. Try again, please.')); return; } if ($this->arg('create')) { if (!$this->boolean('license')) { - $this->showForm(_('You can\'t register if you don\'t agree to the license.'), + $this->showForm(_m('You can\'t register if you don\'t agree to the license.'), $this->trimmed('newname')); return; } @@ -132,7 +132,7 @@ class TwitterauthorizationAction extends Action $this->connectNewUser(); } else { common_debug('Twitter bridge - ' . print_r($this->args, true)); - $this->showForm(_('Something weird happened.'), + $this->showForm(_m('Something weird happened.'), $this->trimmed('newname')); } } else { @@ -231,7 +231,6 @@ class TwitterauthorizationAction extends Action } if (common_logged_in()) { - // Save the access token and Twitter user info $user = common_current_user(); @@ -298,7 +297,7 @@ class TwitterauthorizationAction extends Action if (empty($flink_id)) { common_log_db_error($flink, 'INSERT', __FILE__); - $this->serverError(_('Couldn\'t link your Twitter account.')); + $this->serverError(_m('Couldn\'t link your Twitter account.')); } return $flink_id; @@ -310,13 +309,13 @@ class TwitterauthorizationAction extends Action $this->element('div', array('class' => 'error'), $this->error); } else { $this->element('div', 'instructions', - sprintf(_('This is the first time you\'ve logged into %s so we must connect your Twitter account to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name'))); + sprintf(_m('This is the first time you\'ve logged into %s so we must connect your Twitter account to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name'))); } } function title() { - return _('Twitter Account Setup'); + return _m('Twitter Account Setup'); } function showForm($error=null, $username=null) @@ -349,7 +348,7 @@ class TwitterauthorizationAction extends Action 'class' => 'form_settings', 'action' => common_local_url('twitterauthorization'))); $this->elementStart('fieldset', array('id' => 'settings_twitter_connect_options')); - $this->element('legend', null, _('Connection options')); + $this->element('legend', null, _m('Connection options')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->element('input', array('type' => 'checkbox', @@ -358,7 +357,7 @@ class TwitterauthorizationAction extends Action 'name' => 'license', 'value' => 'true')); $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license')); - $message = _('My text and files are available under %s ' . + $message = _m('My text and files are available under %s ' . 'except this private data: password, ' . 'email address, IM address, and phone number.'); $link = '<a href="' . @@ -379,33 +378,33 @@ class TwitterauthorizationAction extends Action $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); $this->element('legend', null, - _('Create new account')); + _m('Create new account')); $this->element('p', null, - _('Create a new user with this nickname.')); + _m('Create a new user with this nickname.')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); - $this->input('newname', _('New nickname'), + $this->input('newname', _m('New nickname'), ($this->username) ? $this->username : '', - _('1-64 lowercase letters or numbers, no punctuation or spaces')); + _m('1-64 lowercase letters or numbers, no punctuation or spaces')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('create', _('Create')); + $this->submit('create', _m('Create')); $this->elementEnd('fieldset'); $this->elementStart('fieldset'); $this->element('legend', null, - _('Connect existing account')); + _m('Connect existing account')); $this->element('p', null, - _('If you already have an account, login with your username and password to connect it to your Twitter account.')); + _m('If you already have an account, login with your username and password to connect it to your Twitter account.')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); - $this->input('nickname', _('Existing nickname')); + $this->input('nickname', _m('Existing nickname')); $this->elementEnd('li'); $this->elementStart('li'); - $this->password('password', _('Password')); + $this->password('password', _m('Password')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('connect', _('Connect')); + $this->submit('connect', _m('Connect')); $this->elementEnd('fieldset'); $this->elementEnd('fieldset'); @@ -421,7 +420,7 @@ class TwitterauthorizationAction extends Action function createNewUser() { if (common_config('site', 'closed')) { - $this->clientError(_('Registration not allowed.')); + $this->clientError(_m('Registration not allowed.')); return; } @@ -430,34 +429,32 @@ class TwitterauthorizationAction extends Action if (common_config('site', 'inviteonly')) { $code = $_SESSION['invitecode']; if (empty($code)) { - $this->clientError(_('Registration not allowed.')); + $this->clientError(_m('Registration not allowed.')); return; } $invite = Invitation::staticGet($code); if (empty($invite)) { - $this->clientError(_('Not a valid invitation code.')); + $this->clientError(_m('Not a valid invitation code.')); return; } } - $nickname = $this->trimmed('newname'); - - if (!Validate::string($nickname, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { - $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.')); + try { + $nickname = Nickname::normalize($this->trimmed('newname')); + } catch (NicknameException $e) { + $this->showForm($e->getMessage()); return; } if (!User::allowed_nickname($nickname)) { - $this->showForm(_('Nickname not allowed.')); + $this->showForm(_m('Nickname not allowed.')); return; } if (User::staticGet('nickname', $nickname)) { - $this->showForm(_('Nickname already in use. Try another one.')); + $this->showForm(_m('Nickname already in use. Try another one.')); return; } @@ -472,7 +469,7 @@ class TwitterauthorizationAction extends Action $user = User::register($args); if (empty($user)) { - $this->serverError(_('Error registering user.')); + $this->serverError(_m('Error registering user.')); return; } @@ -483,7 +480,7 @@ class TwitterauthorizationAction extends Action save_twitter_user($this->twuid, $this->tw_fields['screen_name']); if (!$result) { - $this->serverError(_('Error connecting user to Twitter.')); + $this->serverError(_m('Error connecting user to Twitter.')); return; } @@ -503,7 +500,7 @@ class TwitterauthorizationAction extends Action $password = $this->trimmed('password'); if (!common_check_user($nickname, $password)) { - $this->showForm(_('Invalid username or password.')); + $this->showForm(_m('Invalid username or password.')); return; } @@ -521,7 +518,7 @@ class TwitterauthorizationAction extends Action save_twitter_user($this->twuid, $this->tw_fields['screen_name']); if (!$result) { - $this->serverError(_('Error connecting user to Twitter.')); + $this->serverError(_m('Error connecting user to Twitter.')); return; } @@ -541,7 +538,7 @@ class TwitterauthorizationAction extends Action $result = $this->flinkUser($user->id, $this->twuid); if (empty($result)) { - $this->serverError(_('Error connecting user to Twitter.')); + $this->serverError(_m('Error connecting user to Twitter.')); return; } @@ -620,9 +617,7 @@ class TwitterauthorizationAction extends Action function isNewNickname($str) { - if (!Validate::string($str, array('min_length' => 1, - 'max_length' => 64, - 'format' => NICKNAME_FMT))) { + if (!Nickname::isValid($str)) { return false; } if (!User::allowed_nickname($str)) { diff --git a/plugins/TwitterBridge/twitterbasicauthclient.php b/plugins/TwitterBridge/twitterbasicauthclient.php deleted file mode 100644 index 23828ed4a3..0000000000 --- a/plugins/TwitterBridge/twitterbasicauthclient.php +++ /dev/null @@ -1,258 +0,0 @@ -<?php -/** - * StatusNet, the distributed open-source microblogging tool - * - * Class for doing HTTP basic auth calls against Twitter - * - * PHP version 5 - * - * LICENCE: 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 <http://www.gnu.org/licenses/>. - * - * @category Integration - * @package StatusNet - * @author Zach Copley <zach@status.net> - * @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); -} - -/** - * General Exception wrapper for HTTP basic auth errors - * - * @category Integration - * @package StatusNet - * @author Zach Copley <zach@status.net> - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - * - */ -class BasicAuthException extends Exception -{ -} - -/** - * Class for talking to the Twitter API with HTTP Basic Auth. - * - * @category Integration - * @package StatusNet - * @author Zach Copley <zach@status.net> - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - * - */ -class TwitterBasicAuthClient -{ - var $screen_name = null; - var $password = null; - - /** - * constructor - * - * @param Foreign_link $flink a Foreign_link storing the - * Twitter user's password, etc. - */ - function __construct($flink) - { - $fuser = $flink->getForeignUser(); - $this->screen_name = $fuser->nickname; - $this->password = $flink->credentials; - } - - /** - * Calls Twitter's /statuses/update API method - * - * @param string $status text of the status - * @param mixed $params optional other parameters to pass to Twitter, - * as defined. For back-compatibility, if an int - * is passed we'll consider it a reply-to ID. - * - * @return mixed the status - */ - function statusesUpdate($status, $in_reply_to_status_id = null) - { - $url = 'https://twitter.com/statuses/update.json'; - if (is_numeric($params)) { - $params = array('in_reply_to_status_id' => intval($params)); - } - $params['status'] = $status; - $params['source'] = common_config('integration', 'source'); - $response = $this->httpRequest($url, $params); - $status = json_decode($response); - return $status; - } - - /** - * Calls Twitter's /statuses/friends_timeline API method - * - * @param int $since_id show statuses after this id - * @param int $max_id show statuses before this id - * @param int $cnt number of statuses to show - * @param int $page page number - * - * @return mixed an array of statuses - */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) - { - $url = 'https://twitter.com/statuses/friends_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $statuses = json_decode($response); - return $statuses; - } - - /** - * Calls Twitter's /statuses/home_timeline API method - * - * @param int $since_id show statuses after this id - * @param int $max_id show statuses before this id - * @param int $cnt number of statuses to show - * @param int $page page number - * - * @return mixed an array of statuses similar to friends timeline but including retweets - */ - function statusesHomeTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) - { - $url = 'https://twitter.com/statuses/home_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $statuses = json_decode($response); - return $statuses; - } - - /** - * Calls Twitter's /statuses/friends API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed an array of twitter users and their latest status - */ - function statusesFriends($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/statuses/friends.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $friends = json_decode($response); - return $friends; - } - - /** - * Calls Twitter's /statuses/friends/ids API method - * - * @param int $id id of the user whom you wish to see friends of - * @param int $user_id numerical user id - * @param int $screen_name screen name - * @param int $page page number - * - * @return mixed a list of ids, 100 per page - */ - function friendsIds($id = null, $user_id = null, $screen_name = null, - $page = null) - { - $url = "https://twitter.com/friends/ids.json"; - - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->httpRequest($url); - $ids = json_decode($response); - return $ids; - } - - /** - * Make an HTTP request - * - * @param string $url Where to make the request - * @param array $params post parameters - * - * @return mixed the request - * @throws BasicAuthException - */ - function httpRequest($url, $params = null, $auth = true) - { - $request = HTTPClient::start(); - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - if ($auth) { - $request->setAuth($this->screen_name, $this->password); - } - - if (isset($params)) { - // Twitter is strict about accepting invalid "Expect" headers - $headers = array('Expect:'); - $response = $request->post($url, $headers, $params); - } else { - $response = $request->get($url); - } - - $code = $response->getStatus(); - - if ($code < 200 || $code >= 400) { - throw new BasicAuthException($response->getBody(), $code); - } - - return $response->getBody(); - } - -} diff --git a/plugins/TwitterBridge/twitterimport.php b/plugins/TwitterBridge/twitterimport.php new file mode 100644 index 0000000000..3a4c0c43c0 --- /dev/null +++ b/plugins/TwitterBridge/twitterimport.php @@ -0,0 +1,673 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @author Julien C <chaumond@gmail.com> + * @author Brion Vibber <brion@status.net> + * @copyright 2009-2010 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 . '/plugins/TwitterBridge/twitter.php'; + +/** + * Encapsulation of the Twitter status -> notice incoming bridge import. + * Is used by both the polling twitterstatusfetcher.php daemon, and the + * in-progress streaming import. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @author Julien C <chaumond@gmail.com> + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * @link http://twitter.com/ + */ +class TwitterImport +{ + public function importStatus($status) + { + // Hacktastic: filter out stuff coming from this StatusNet + $source = mb_strtolower(common_config('integration', 'source')); + + if (preg_match("/$source/", mb_strtolower($status->source))) { + common_debug($this->name() . ' - Skipping import of status ' . + twitter_id($status) . ' with source ' . $source); + return null; + } + + // Don't save it if the user is protected + // FIXME: save it but treat it as private + if ($status->user->protected) { + return null; + } + + $notice = $this->saveStatus($status); + + return $notice; + } + + function name() + { + return get_class($this); + } + + function saveStatus($status) + { + $profile = $this->ensureProfile($status->user); + + if (empty($profile)) { + common_log(LOG_ERR, $this->name() . + ' - Problem saving notice. No associated Profile.'); + return null; + } + + $statusId = twitter_id($status); + $statusUri = $this->makeStatusURI($status->user->screen_name, $statusId); + + // check to see if we've already imported the status + $n2s = Notice_to_status::staticGet('status_id', $statusId); + + if (!empty($n2s)) { + common_log( + LOG_INFO, + $this->name() . + " - Ignoring duplicate import: {$statusId}" + ); + return Notice::staticGet('id', $n2s->notice_id); + } + + // If it's a retweet, save it as a repeat! + if (!empty($status->retweeted_status)) { + common_log(LOG_INFO, "Status {$statusId} is a retweet of " . twitter_id($status->retweeted_status) . "."); + $original = $this->saveStatus($status->retweeted_status); + if (empty($original)) { + return null; + } else { + $author = $original->getProfile(); + // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. + // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. + $content = sprintf(_m('RT @%1$s %2$s'), + $author->nickname, + $original->content); + + if (Notice::contentTooLong($content)) { + $contentlimit = Notice::maxContent(); + $content = mb_substr($content, 0, $contentlimit - 4) . ' ...'; + } + + $repeat = Notice::saveNew($profile->id, + $content, + 'twitter', + array('repeat_of' => $original->id, + 'uri' => $statusUri, + 'is_local' => Notice::GATEWAY)); + common_log(LOG_INFO, "Saved {$repeat->id} as a repeat of {$original->id}"); + Notice_to_status::saveNew($repeat->id, $statusId); + return $repeat; + } + } + + $notice = new Notice(); + + $notice->profile_id = $profile->id; + $notice->uri = $statusUri; + $notice->url = $statusUri; + $notice->created = strftime( + '%Y-%m-%d %H:%M:%S', + strtotime($status->created_at) + ); + + $notice->source = 'twitter'; + + $notice->reply_to = null; + + $replyTo = twitter_id($status, 'in_reply_to_status_id'); + if (!empty($replyTo)) { + common_log(LOG_INFO, "Status {$statusId} is a reply to status {$replyTo}"); + $n2s = Notice_to_status::staticGet('status_id', $replyTo); + if (empty($n2s)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$replyTo}"); + } else { + $reply = Notice::staticGet('id', $n2s->notice_id); + if (empty($reply)) { + common_log(LOG_INFO, "Couldn't find local notice for status {$replyTo}"); + } else { + common_log(LOG_INFO, "Found local notice {$reply->id} for status {$replyTo}"); + $notice->reply_to = $reply->id; + $notice->conversation = $reply->conversation; + } + } + } + + if (empty($notice->conversation)) { + $conv = Conversation::create(); + $notice->conversation = $conv->id; + common_log(LOG_INFO, "No known conversation for status {$statusId} so making a new one {$conv->id}."); + } + + $notice->is_local = Notice::GATEWAY; + + $notice->content = html_entity_decode($status->text, ENT_QUOTES, 'UTF-8'); + $notice->rendered = $this->linkify($status); + + if (Event::handle('StartNoticeSave', array(&$notice))) { + + $id = $notice->insert(); + + if (!$id) { + common_log_db_error($notice, 'INSERT', __FILE__); + common_log(LOG_ERR, $this->name() . + ' - Problem saving notice.'); + } + + Event::handle('EndNoticeSave', array($notice)); + } + + Notice_to_status::saveNew($notice->id, $statusId); + + $this->saveStatusMentions($notice, $status); + $this->saveStatusAttachments($notice, $status); + + $notice->blowOnInsert(); + + return $notice; + } + + /** + * Make an URI for a status. + * + * @param object $status status object + * + * @return string URI + */ + function makeStatusURI($username, $id) + { + return 'http://twitter.com/#!/' + . $username + . '/status/' + . $id; + } + + + /** + * Look up a Profile by profileurl field. Profile::staticGet() was + * not working consistently. + * + * @param string $nickname local nickname of the Twitter user + * @param string $profileurl the profile url + * + * @return mixed value the first Profile with that url, or null + */ + function getProfileByUrl($nickname, $profileurl) + { + $profile = new Profile(); + $profile->nickname = $nickname; + $profile->profileurl = $profileurl; + $profile->limit(1); + + if ($profile->find()) { + $profile->fetch(); + return $profile; + } + + return null; + } + + /** + * Check to see if this Twitter status has already been imported + * + * @param Profile $profile Twitter user's local profile + * @param string $statusUri URI of the status on Twitter + * + * @return mixed value a matching Notice or null + */ + function checkDupe($profile, $statusUri) + { + $notice = new Notice(); + $notice->uri = $statusUri; + $notice->profile_id = $profile->id; + $notice->limit(1); + + if ($notice->find()) { + $notice->fetch(); + return $notice; + } + + return null; + } + + function ensureProfile($user) + { + // check to see if there's already a profile for this user + $profileurl = 'http://twitter.com/#!/' . $user->screen_name; + $profile = $this->getProfileByUrl($user->screen_name, $profileurl); + + if (!empty($profile)) { + common_debug($this->name() . + " - Profile for $profile->nickname found."); + + // Check to see if the user's Avatar has changed + + $this->checkAvatar($user, $profile); + return $profile; + + } else { + common_debug($this->name() . ' - Adding profile and remote profile ' . + "for Twitter user: $profileurl."); + + $profile = new Profile(); + $profile->query("BEGIN"); + + $profile->nickname = $user->screen_name; + $profile->fullname = $user->name; + $profile->homepage = $user->url; + $profile->bio = $user->description; + $profile->location = $user->location; + $profile->profileurl = $profileurl; + $profile->created = common_sql_now(); + + try { + $id = $profile->insert(); + } catch(Exception $e) { + common_log(LOG_WARNING, $this->name() . ' Couldn\'t insert profile - ' . $e->getMessage()); + } + + if (empty($id)) { + common_log_db_error($profile, 'INSERT', __FILE__); + $profile->query("ROLLBACK"); + return false; + } + + // check for remote profile + + $remote_pro = Remote_profile::staticGet('uri', $profileurl); + + if (empty($remote_pro)) { + $remote_pro = new Remote_profile(); + + $remote_pro->id = $id; + $remote_pro->uri = $profileurl; + $remote_pro->created = common_sql_now(); + + try { + $rid = $remote_pro->insert(); + } catch (Exception $e) { + common_log(LOG_WARNING, $this->name() . ' Couldn\'t save remote profile - ' . $e->getMessage()); + } + + if (empty($rid)) { + common_log_db_error($profile, 'INSERT', __FILE__); + $profile->query("ROLLBACK"); + return false; + } + } + + $profile->query("COMMIT"); + + $this->saveAvatars($user, $id); + + return $profile; + } + } + + function checkAvatar($twitter_user, $profile) + { + global $config; + + $path_parts = pathinfo($twitter_user->profile_image_url); + + $newname = 'Twitter_' . $twitter_user->id . '_' . + $path_parts['basename']; + + $oldname = $profile->getAvatar(48)->filename; + + if ($newname != $oldname) { + common_debug($this->name() . ' - Avatar for Twitter user ' . + "$profile->nickname has changed."); + common_debug($this->name() . " - old: $oldname new: $newname"); + + $this->updateAvatars($twitter_user, $profile); + } + + if ($this->missingAvatarFile($profile)) { + common_debug($this->name() . ' - Twitter user ' . + $profile->nickname . + ' is missing one or more local avatars.'); + common_debug($this->name() ." - old: $oldname new: $newname"); + + $this->updateAvatars($twitter_user, $profile); + } + } + + function updateAvatars($twitter_user, $profile) { + + global $config; + + $path_parts = pathinfo($twitter_user->profile_image_url); + + $img_root = substr($path_parts['basename'], 0, -11); + $ext = $path_parts['extension']; + $mediatype = $this->getMediatype($ext); + + foreach (array('mini', 'normal', 'bigger') as $size) { + $url = $path_parts['dirname'] . '/' . + $img_root . '_' . $size . ".$ext"; + $filename = 'Twitter_' . $twitter_user->id . '_' . + $img_root . "_$size.$ext"; + + $this->updateAvatar($profile->id, $size, $mediatype, $filename); + $this->fetchAvatar($url, $filename); + } + } + + function missingAvatarFile($profile) { + foreach (array(24, 48, 73) as $size) { + $filename = $profile->getAvatar($size)->filename; + $avatarpath = Avatar::path($filename); + if (file_exists($avatarpath) == FALSE) { + return true; + } + } + return false; + } + + function getMediatype($ext) + { + $mediatype = null; + + switch (strtolower($ext)) { + case 'jpg': + $mediatype = 'image/jpg'; + break; + case 'gif': + $mediatype = 'image/gif'; + break; + default: + $mediatype = 'image/png'; + } + + return $mediatype; + } + + function saveAvatars($user, $id) + { + global $config; + + $path_parts = pathinfo($user->profile_image_url); + $ext = $path_parts['extension']; + $end = strlen('_normal' . $ext); + $img_root = substr($path_parts['basename'], 0, -($end+1)); + $mediatype = $this->getMediatype($ext); + + foreach (array('mini', 'normal', 'bigger') as $size) { + $url = $path_parts['dirname'] . '/' . + $img_root . '_' . $size . ".$ext"; + $filename = 'Twitter_' . $user->id . '_' . + $img_root . "_$size.$ext"; + + if ($this->fetchAvatar($url, $filename)) { + $this->newAvatar($id, $size, $mediatype, $filename); + } else { + common_log(LOG_WARNING, $id() . + " - Problem fetching Avatar: $url"); + } + } + } + + function updateAvatar($profile_id, $size, $mediatype, $filename) { + + common_debug($this->name() . " - Updating avatar: $size"); + + $profile = Profile::staticGet($profile_id); + + if (empty($profile)) { + common_debug($this->name() . " - Couldn't get profile: $profile_id!"); + return; + } + + $sizes = array('mini' => 24, 'normal' => 48, 'bigger' => 73); + $avatar = $profile->getAvatar($sizes[$size]); + + // Delete the avatar, if present + if ($avatar) { + $avatar->delete(); + } + + $this->newAvatar($profile->id, $size, $mediatype, $filename); + } + + function newAvatar($profile_id, $size, $mediatype, $filename) + { + global $config; + + $avatar = new Avatar(); + $avatar->profile_id = $profile_id; + + switch($size) { + case 'mini': + $avatar->width = 24; + $avatar->height = 24; + break; + case 'normal': + $avatar->width = 48; + $avatar->height = 48; + break; + default: + // Note: Twitter's big avatars are a different size than + // StatusNet's (StatusNet's = 96) + $avatar->width = 73; + $avatar->height = 73; + } + + $avatar->original = 0; // we don't have the original + $avatar->mediatype = $mediatype; + $avatar->filename = $filename; + $avatar->url = Avatar::url($filename); + + $avatar->created = common_sql_now(); + + try { + $id = $avatar->insert(); + } catch (Exception $e) { + common_log(LOG_WARNING, $this->name() . ' Couldn\'t insert avatar - ' . $e->getMessage()); + } + + if (empty($id)) { + common_log_db_error($avatar, 'INSERT', __FILE__); + return null; + } + + common_debug($this->name() . + " - Saved new $size avatar for $profile_id."); + + return $id; + } + + /** + * Fetch a remote avatar image and save to local storage. + * + * @param string $url avatar source URL + * @param string $filename bare local filename for download + * @return bool true on success, false on failure + */ + function fetchAvatar($url, $filename) + { + common_debug($this->name() . " - Fetching Twitter avatar: $url"); + + $request = HTTPClient::start(); + $response = $request->get($url); + if ($response->isOk()) { + $avatarfile = Avatar::path($filename); + $ok = file_put_contents($avatarfile, $response->getBody()); + if (!$ok) { + common_log(LOG_WARNING, $this->name() . + " - Couldn't open file $filename"); + return false; + } + } else { + return false; + } + + return true; + } + + const URL = 1; + const HASHTAG = 2; + const MENTION = 3; + + function linkify($status) + { + $text = $status->text; + + if (empty($status->entities)) { + $statusId = twitter_id($status); + common_log(LOG_WARNING, "No entities data for {$statusId}; trying to fake up links ourselves."); + $text = common_replace_urls_callback($text, 'common_linkify'); + $text = preg_replace('/(^|\"\;|\'|\(|\[|\{|\s+)#([\pL\pN_\-\.]{1,64})/e', "'\\1#'.TwitterStatusFetcher::tagLink('\\2')", $text); + $text = preg_replace('/(^|\s+)@([a-z0-9A-Z_]{1,64})/e', "'\\1@'.TwitterStatusFetcher::atLink('\\2')", $text); + return $text; + } + + // Move all the entities into order so we can + // replace them in reverse order and thus + // not mess up their indices + + $toReplace = array(); + + if (!empty($status->entities->urls)) { + foreach ($status->entities->urls as $url) { + $toReplace[$url->indices[0]] = array(self::URL, $url); + } + } + + if (!empty($status->entities->hashtags)) { + foreach ($status->entities->hashtags as $hashtag) { + $toReplace[$hashtag->indices[0]] = array(self::HASHTAG, $hashtag); + } + } + + if (!empty($status->entities->user_mentions)) { + foreach ($status->entities->user_mentions as $mention) { + $toReplace[$mention->indices[0]] = array(self::MENTION, $mention); + } + } + + // sort in reverse order by key + + krsort($toReplace); + + foreach ($toReplace as $part) { + list($type, $object) = $part; + switch($type) { + case self::URL: + $linkText = $this->makeUrlLink($object); + break; + case self::HASHTAG: + $linkText = $this->makeHashtagLink($object); + break; + case self::MENTION: + $linkText = $this->makeMentionLink($object); + break; + default: + continue; + } + $text = mb_substr($text, 0, $object->indices[0]) . $linkText . mb_substr($text, $object->indices[1]); + } + return $text; + } + + function makeUrlLink($object) + { + return "<a href='{$object->url}' class='extlink'>{$object->url}</a>"; + } + + function makeHashtagLink($object) + { + return "#" . self::tagLink($object->text); + } + + function makeMentionLink($object) + { + return "@".self::atLink($object->screen_name, $object->name); + } + + static function tagLink($tag) + { + return "<a href='https://search.twitter.com/search?q=%23{$tag}' class='hashtag'>{$tag}</a>"; + } + + static function atLink($screenName, $fullName=null) + { + if (!empty($fullName)) { + return "<a href='http://twitter.com/#!/{$screenName}' title='{$fullName}'>{$screenName}</a>"; + } else { + return "<a href='http://twitter.com/#!/{$screenName}'>{$screenName}</a>"; + } + } + + function saveStatusMentions($notice, $status) + { + $mentions = array(); + + if (empty($status->entities) || empty($status->entities->user_mentions)) { + return; + } + + foreach ($status->entities->user_mentions as $mention) { + $flink = Foreign_link::getByForeignID($mention->id, TWITTER_SERVICE); + if (!empty($flink)) { + $user = User::staticGet('id', $flink->user_id); + if (!empty($user)) { + $reply = new Reply(); + $reply->notice_id = $notice->id; + $reply->profile_id = $user->id; + common_log(LOG_INFO, __METHOD__ . ": saving reply: notice {$notice->id} to profile {$user->id}"); + $id = $reply->insert(); + } + } + } + } + + /** + * Record URL links from the notice. Needed to get thumbnail records + * for referenced photo and video posts, etc. + * + * @param Notice $notice + * @param object $status + */ + function saveStatusAttachments($notice, $status) + { + if (common_config('attachments', 'process_links')) { + if (!empty($status->entities) && !empty($status->entities->urls)) { + foreach ($status->entities->urls as $url) { + File::processNew($url->url, $notice->id); + } + } + } + } +} \ No newline at end of file diff --git a/plugins/TwitterBridge/twitterlogin.php b/plugins/TwitterBridge/twitterlogin.php index 79421fb27d..5b5bfae191 100644 --- a/plugins/TwitterBridge/twitterlogin.php +++ b/plugins/TwitterBridge/twitterlogin.php @@ -46,7 +46,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; * * @see SettingsAction */ - class TwitterloginAction extends Action { function handle($args) @@ -54,7 +53,7 @@ class TwitterloginAction extends Action parent::handle($args); if (common_is_real_login()) { - $this->clientError(_('Already logged in.')); + $this->clientError(_m('Already logged in.')); } $this->showPage(); @@ -62,12 +61,12 @@ class TwitterloginAction extends Action function title() { - return _('Twitter Login'); + return _m('Twitter Login'); } function getInstructions() { - return _('Login with your Twitter account'); + return _m('Login with your Twitter account'); } function showPageNotice() @@ -85,7 +84,7 @@ class TwitterloginAction extends Action null, array('signin' => true)))); $this->element('img', array('src' => common_path('plugins/TwitterBridge/Sign-in-with-Twitter-lighter.png'), - 'alt' => 'Sign in with Twitter')); + 'alt' => _m('Sign in with Twitter'))); $this->elementEnd('a'); } diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index f6ef786752..a17911b03e 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -43,10 +43,10 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { */ class TwitterOAuthClient extends OAuthClient { - public static $requestTokenURL = 'https://twitter.com/oauth/request_token'; - public static $authorizeURL = 'https://twitter.com/oauth/authorize'; - public static $signinUrl = 'https://twitter.com/oauth/authenticate'; - public static $accessTokenURL = 'https://twitter.com/oauth/access_token'; + public static $requestTokenURL = 'https://api.twitter.com/oauth/request_token'; + public static $authorizeURL = 'https://api.twitter.com/oauth/authorize'; + public static $signinUrl = 'https://api.twitter.com/oauth/authenticate'; + public static $accessTokenURL = 'https://api.twitter.com/oauth/access_token'; /** * Constructor @@ -157,7 +157,7 @@ class TwitterOAuthClient extends OAuthClient */ function verifyCredentials() { - $url = 'https://twitter.com/account/verify_credentials.json'; + $url = 'https://api.twitter.com/1/account/verify_credentials.json'; $response = $this->oAuthGet($url); $twitter_user = json_decode($response); return $twitter_user; @@ -175,7 +175,7 @@ class TwitterOAuthClient extends OAuthClient */ function statusesUpdate($status, $params=array()) { - $url = 'https://twitter.com/statuses/update.json'; + $url = 'https://api.twitter.com/1/statuses/update.json'; if (is_numeric($params)) { $params = array('in_reply_to_status_id' => intval($params)); } @@ -188,7 +188,7 @@ class TwitterOAuthClient extends OAuthClient } /** - * Calls Twitter's /statuses/friends_timeline API method + * Calls Twitter's /statuses/home_timeline API method * * @param int $since_id show statuses after this id * @param int $max_id show statuses before this id @@ -197,52 +197,27 @@ class TwitterOAuthClient extends OAuthClient * * @return mixed an array of statuses */ - function statusesFriendsTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) - { - - $url = 'https://twitter.com/statuses/friends_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); - - if (!empty($qry)) { - $url .= "?$qry"; - } - - $response = $this->oAuthGet($url); - $statuses = json_decode($response); - return $statuses; - } - - /** - * Calls Twitter's /statuses/home_timeline API method - * - * @param int $since_id show statuses after this id - * @param int $max_id show statuses before this id - * @param int $cnt number of statuses to show - * @param int $page page number - * - * @return mixed an array of statuses, similar to friends_timeline but including retweets - */ function statusesHomeTimeline($since_id = null, $max_id = null, - $cnt = null, $page = null) + $cnt = null, $page = null) { + $url = 'https://api.twitter.com/1/statuses/home_timeline.json'; - $url = 'https://twitter.com/statuses/home_timeline.json'; - $params = array('since_id' => $since_id, - 'max_id' => $max_id, - 'count' => $cnt, - 'page' => $page); - $qry = http_build_query($params); + $params = array('include_entities' => 'true'); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($since_id)) { + $params['since_id'] = $since_id; + } + if (!empty($max_id)) { + $params['max_id'] = $max_id; + } + if (!empty($cnt)) { + $params['count'] = $cnt; + } + if (!empty($page)) { + $params['page'] = $page; } - $response = $this->oAuthGet($url); + $response = $this->oAuthGet($url, $params); $statuses = json_decode($response); return $statuses; } @@ -260,19 +235,27 @@ class TwitterOAuthClient extends OAuthClient function statusesFriends($id = null, $user_id = null, $screen_name = null, $page = null) { - $url = "https://twitter.com/statuses/friends.json"; + $url = "https://api.twitter.com/1/statuses/friends.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $friends = json_decode($response); return $friends; } @@ -290,21 +273,92 @@ class TwitterOAuthClient extends OAuthClient function friendsIds($id = null, $user_id = null, $screen_name = null, $page = null) { - $url = "https://twitter.com/friends/ids.json"; + $url = "https://api.twitter.com/1/friends/ids.json"; - $params = array('id' => $id, - 'user_id' => $user_id, - 'screen_name' => $screen_name, - 'page' => $page); - $qry = http_build_query($params); + $params = array(); - if (!empty($qry)) { - $url .= "?$qry"; + if (!empty($id)) { + $params['id'] = $id; } - $response = $this->oAuthGet($url); + if (!empty($user_id)) { + $params['user_id'] = $user_id; + } + + if (!empty($screen_name)) { + $params['screen_name'] = $screen_name; + } + + if (!empty($page)) { + $params['page'] = $page; + } + + $response = $this->oAuthGet($url, $params); $ids = json_decode($response); return $ids; } + /** + * Calls Twitter's /statuses/retweet/id.json API method + * + * @param int $id id of the notice to retweet + * + * @return retweeted status + */ + + function statusesRetweet($id) + { + $url = "http://api.twitter.com/1/statuses/retweet/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } + + /** + * Calls Twitter's /favorites/create API method + * + * @param int $id ID of the status to favorite + * + * @return object faved status + */ + + function favoritesCreate($id) + { + $url = "http://api.twitter.com/1/favorites/create/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } + + /** + * Calls Twitter's /favorites/destroy API method + * + * @param int $id ID of the status to unfavorite + * + * @return object unfaved status + */ + + function favoritesDestroy($id) + { + $url = "http://api.twitter.com/1/favorites/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } + + /** + * Calls Twitter's /statuses/destroy API method + * + * @param int $id ID of the status to destroy + * + * @return object destroyed + */ + + function statusesDestroy($id) + { + $url = "http://api.twitter.com/1/statuses/destroy/$id.json"; + $response = $this->oAuthPost($url); + $status = json_decode($response); + return $status; + } } diff --git a/plugins/TwitterBridge/twitterqueuehandler.php b/plugins/TwitterBridge/twitterqueuehandler.php index b5a624e83d..644ce17871 100644 --- a/plugins/TwitterBridge/twitterqueuehandler.php +++ b/plugins/TwitterBridge/twitterqueuehandler.php @@ -30,6 +30,7 @@ class TwitterQueueHandler extends QueueHandler function handle($notice) { - return broadcast_twitter($notice); + $ok = broadcast_twitter($notice); + return $ok || common_config('twitter', 'ignore_errors'); } } diff --git a/plugins/TwitterBridge/twittersettings.php b/plugins/TwitterBridge/twittersettings.php index 631b29f52a..c169172b00 100644 --- a/plugins/TwitterBridge/twittersettings.php +++ b/plugins/TwitterBridge/twittersettings.php @@ -45,7 +45,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; * * @see SettingsAction */ - class TwittersettingsAction extends ConnectSettingsAction { /** @@ -79,7 +78,6 @@ class TwittersettingsAction extends ConnectSettingsAction * * @return void */ - function showContent() { @@ -130,6 +128,7 @@ class TwittersettingsAction extends ConnectSettingsAction if (!$user->password) { $this->elementStart('p', array('class' => 'form_guide')); + // @todo FIXME: Bad i18n (patchwork in three parts). $this->text(_m('Disconnecting your Twitter ' . 'could make it impossible to log in! Please ')); $this->element('a', @@ -139,7 +138,7 @@ class TwittersettingsAction extends ConnectSettingsAction $this->text(_m(' first.')); $this->elementEnd('p'); } else { - + // TRANS: %1$s is the current website name. $note = _m('Keep your %1$s account but disconnect from Twitter. ' . 'You can use your %1$s password to log in.'); @@ -182,7 +181,7 @@ class TwittersettingsAction extends ConnectSettingsAction if (common_config('twitterimport','enabled')) { $this->elementStart('li'); $this->checkbox('noticerecv', - _m('Import my Friends Timeline.'), + _m('Import my friends timeline.'), ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_RECV) : false); @@ -219,7 +218,6 @@ class TwittersettingsAction extends ConnectSettingsAction * * @return void */ - function handlePost() { // CSRF protection @@ -244,12 +242,16 @@ class TwittersettingsAction extends ConnectSettingsAction * * @return void */ - function removeTwitterAccount() { $user = common_current_user(); $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); + if (empty($flink)) { + $this->clientError(_m('No Twitter connection to remove.')); + return; + } + $result = $flink->safeDelete(); if (empty($result)) { @@ -266,7 +268,6 @@ class TwittersettingsAction extends ConnectSettingsAction * * @return void */ - function savePreferences() { $noticesend = $this->boolean('noticesend'); @@ -284,6 +285,7 @@ class TwittersettingsAction extends ConnectSettingsAction } $original = clone($flink); + $wasReceiving = (bool)($original->noticesync & FOREIGN_NOTICE_RECV); $flink->set_flags($noticesend, $noticerecv, $replysync, $friendsync); $result = $flink->update($original); @@ -293,7 +295,19 @@ class TwittersettingsAction extends ConnectSettingsAction return; } + if ($wasReceiving xor $noticerecv) { + $this->notifyDaemon($flink->foreign_id, $noticerecv); + } + $this->showForm(_m('Twitter preferences saved.'), true); } + /** + * Tell the import daemon that we've updated a user's receive status. + */ + function notifyDaemon($twitterUserId, $receiving) + { + // todo... should use control signals rather than queues + } + } diff --git a/plugins/TwitterBridge/twitterstreamreader.php b/plugins/TwitterBridge/twitterstreamreader.php new file mode 100644 index 0000000000..5b0613bc40 --- /dev/null +++ b/plugins/TwitterBridge/twitterstreamreader.php @@ -0,0 +1,285 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Plugin + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @copyright 2010 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/ + */ + +/** + * Base class for reading Twitter's User Streams and Site Streams + * real-time streaming APIs. + * + * Caller can hook event callbacks for various types of messages; + * the data from the stream and some context info will be passed + * on to the callbacks. + */ +abstract class TwitterStreamReader extends JsonStreamReader +{ + protected $callbacks = array(); + + function __construct(TwitterOAuthClient $auth, $baseUrl) + { + $this->baseUrl = $baseUrl; + $this->oauth = $auth; + } + + public function connect($method, $params=array()) + { + $url = $this->oAuthUrl($this->baseUrl . '/' . $method, $params); + return parent::connect($url); + } + + /** + * Sign our target URL with OAuth auth stuff. + * + * @param string $url + * @param array $params + * @return string + */ + protected function oAuthUrl($url, $params=array()) + { + // In an ideal world this would be better encapsulated. :) + $request = OAuthRequest::from_consumer_and_token($this->oauth->consumer, + $this->oauth->token, 'GET', $url, $params); + $request->sign_request($this->oauth->sha1_method, + $this->oauth->consumer, $this->oauth->token); + + return $request->to_url(); + } + + /** + * Add an event callback to receive notifications when things come in + * over the wire. + * + * Callbacks should be in the form: function(object $data, array $context) + * where $context may list additional data on some streams, such as the + * user to whom the message should be routed. + * + * Available events: + * + * Messaging: + * + * 'status': $data contains a status update in standard Twitter JSON format. + * $data->user: sending user in standard Twitter JSON format. + * $data->text... etc + * + * 'direct_message': $data contains a direct message in standard Twitter JSON format. + * $data->sender: sending user in standard Twitter JSON format. + * $data->recipient: receiving user in standard Twitter JSON format. + * $data->text... etc + * + * + * Out of band events: + * + * 'follow': User has either started following someone, or is being followed. + * $data->source: following user in standard Twitter JSON format. + * $data->target: followed user in standard Twitter JSON format. + * + * 'favorite': Someone has favorited a status update. + * $data->source: user doing the favoriting, in standard Twitter JSON format. + * $data->target: user whose status was favorited, in standard Twitter JSON format. + * $data->target_object: the favorited status update in standard Twitter JSON format. + * + * 'unfavorite': Someone has unfavorited a status update. + * $data->source: user doing the unfavoriting, in standard Twitter JSON format. + * $data->target: user whose status was unfavorited, in standard Twitter JSON format. + * $data->target_object: the unfavorited status update in standard Twitter JSON format. + * + * + * Meta information: + * + * 'friends': + * $data->friends: array of user IDs of the current user's friends. + * + * 'delete': Advisory that a Twitter status has been deleted; nice clients + * should follow suit. + * $data->id: ID of status being deleted + * $data->user_id: ID of its owning user + * + * 'scrub_geo': Advisory that a user is clearing geo data from their status + * stream; nice clients should follow suit. + * $data->user_id: ID of user + * $data->up_to_status_id: any notice older than this should be scrubbed. + * + * 'limit': Advisory that tracking has hit a resource limit. + * $data->track + * + * 'raw': receives the full JSON data for all message types. + * + * @param string $event + * @param callable $callback + */ + public function hookEvent($event, $callback) + { + $this->callbacks[$event][] = $callback; + } + + /** + * Call event handler callbacks for the given event. + * + * @param string $event + * @param mixed $arg1 ... one or more params to pass on + */ + protected function fireEvent($event, $arg1) + { + if (array_key_exists($event, $this->callbacks)) { + $args = array_slice(func_get_args(), 1); + foreach ($this->callbacks[$event] as $callback) { + call_user_func_array($callback, $args); + } + } + } + + protected function handleJson(stdClass $data) + { + $this->routeMessage($data); + } + + abstract protected function routeMessage(stdClass $data); + + /** + * Send the decoded JSON object out to any event listeners. + * + * @param array $data + * @param array $context optional additional context data to pass on + */ + protected function handleMessage(stdClass $data, array $context=array()) + { + $this->fireEvent('raw', $data, $context); + + if (isset($data->text)) { + $this->fireEvent('status', $data, $context); + return; + } + if (isset($data->event)) { + $this->fireEvent($data->event, $data, $context); + return; + } + if (isset($data->friends)) { + $this->fireEvent('friends', $data, $context); + } + + $knownMeta = array('delete', 'scrub_geo', 'limit', 'direct_message'); + foreach ($knownMeta as $key) { + if (isset($data->$key)) { + $this->fireEvent($key, $data->$key, $context); + return; + } + } + } +} + +/** + * Multiuser stream listener for Twitter Site Streams API + * http://dev.twitter.com/pages/site_streams + * + * The site streams API allows listening to updates for multiple users. + * Pass in the user IDs to listen to in via followUser() -- note they + * must each have a valid OAuth token for the application ID we're + * connecting as. + * + * You'll need to be connecting with the auth keys for the user who + * owns the application registration. + * + * The user each message is destined for will be passed to event handlers + * in $context['for_user_id']. + */ +class TwitterSiteStream extends TwitterStreamReader +{ + protected $userIds; + + public function __construct(TwitterOAuthClient $auth, $baseUrl='http://betastream.twitter.com') + { + parent::__construct($auth, $baseUrl); + } + + public function connect($method='2b/site.json') + { + $params = array(); + if ($this->userIds) { + $params['follow'] = implode(',', $this->userIds); + } + return parent::connect($method, $params); + } + + /** + * Set the users whose home streams should be pulled. + * They all must have valid oauth tokens for this application. + * + * Must be called before connect(). + * + * @param array $userIds + */ + function followUsers($userIds) + { + $this->userIds = $userIds; + } + + /** + * Each message in the site stream tells us which user ID it should be + * routed to; we'll need that to let the caller know what to do. + * + * @param array $data + */ + function routeMessage(stdClass $data) + { + $context = array( + 'source' => 'sitestream', + 'for_user' => $data->for_user + ); + parent::handleMessage($data->message, $context); + } +} + +/** + * Stream listener for Twitter User Streams API + * http://dev.twitter.com/pages/user_streams + * + * This will pull the home stream and additional events just for the user + * we've authenticated as. + */ +class TwitterUserStream extends TwitterStreamReader +{ + public function __construct(TwitterOAuthClient $auth, $baseUrl='https://userstream.twitter.com') + { + parent::__construct($auth, $baseUrl); + } + + public function connect($method='2/user.json') + { + return parent::connect($method); + } + + /** + * Each message in the user stream is just ready to go. + * + * @param array $data + */ + function routeMessage(stdClass $data) + { + $context = array( + 'source' => 'userstream' + ); + parent::handleMessage($data, $context); + } +} diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index ae3dfe0365..fc7698841e 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -40,7 +40,6 @@ 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 UserFlagPlugin extends Plugin { const REVIEWFLAGS = 'UserFlagPlugin::reviewflags'; @@ -56,7 +55,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook return */ - function onCheckSchema() { $schema = Schema::get(); @@ -83,7 +81,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook return */ - function onRouterInitialized($m) { $m->connect('main/flag/profile', array('action' => 'flagprofile')); @@ -99,7 +96,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook return */ - function onAutoload($cls) { switch (strtolower($cls)) @@ -130,26 +126,11 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onEndProfilePageActionsElements(&$action, $profile) { - $user = common_current_user(); - - if (!empty($user) && ($user->id != $profile->id)) { - - $action->elementStart('li', 'entity_flag'); - - if (User_flag_profile::exists($profile->id, $user->id)) { - $action->element('p', 'flagged', _('Flagged')); - } else { - $form = new FlagProfileForm($action, $profile, - array('action' => 'showstream', - 'nickname' => $profile->nickname)); - $form->show(); - } - - $action->elementEnd('li'); - } + $this->showFlagButton($action, $profile, + array('action' => 'showstream', + 'nickname' => $profile->nickname)); return true; } @@ -161,25 +142,42 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onEndProfileListItemActionElements($item) + { + list($action, $args) = $item->action->returnToArgs(); + $args['action'] = $action; + $this->showFlagButton($item->action, $item->profile, $args); + + return true; + } + + /** + * Actually output a flag button. If the target profile has already been + * flagged by the current user, a null-action faux button is shown. + * + * @param Action $action + * @param Profile $profile + * @param array $returnToArgs + */ + protected function showFlagButton($action, $profile, $returnToArgs) { $user = common_current_user(); - if (!empty($user)) { + if (!empty($user) && ($user->id != $profile->id)) { - list($action, $args) = $item->action->returnToArgs(); + $action->elementStart('li', 'entity_flag'); - $args['action'] = $action; + if (User_flag_profile::exists($profile->id, $user->id)) { + // @todo FIXME: Add a title explaining what 'flagged' means? + // TRANS: Message added to a profile if it has been flagged for review. + $action->element('p', 'flagged', _m('Flagged')); + } else { + $form = new FlagProfileForm($action, $profile, $returnToArgs); + $form->show(); + } - $form = new FlagProfileForm($item->action, $item->profile, $args); - - $item->action->elementStart('li', 'entity_flag'); - $form->show(); - $item->action->elementEnd('li'); + $action->elementEnd('li'); } - - return true; } /** @@ -189,7 +187,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onEndShowScripts($action) { $action->inlineScript('if ($(".form_entity_flag").length > 0) { '. @@ -210,7 +207,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onUserRightsCheck($user, $right, &$result) { switch ($right) { @@ -233,7 +229,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onEndBlockProfile($user, $profile) { if ($this->flagOnBlock && !User_flag_profile::exists($profile->id, @@ -255,7 +250,6 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onProfileDeleteRelated($profile, &$related) { $related[] = 'user_flag_profile'; @@ -272,10 +266,33 @@ class UserFlagPlugin extends Plugin * * @return boolean hook result */ - function onUserDeleteRelated($user, &$related) { $related[] = 'user_flag_profile'; return true; } + + /** + * Provide plugin version information. + * + * This data is used when showing the version page. + * + * @param array &$versions array of version data arrays; see EVENTS.txt + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) + { + $url = 'http://status.net/wiki/Plugin:UserFlag'; + + $versions[] = array('name' => 'UserFlag', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => $url, + 'rawdescription' => + // TRANS: Plugin description. + _m('This plugin allows flagging of profiles for review and reviewing flagged profiles.')); + + return true; + } } diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index 86b39160bf..f4e9844dfc 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class User_flag_profile extends Memcached_DataObject { ###START_AUTOCODE @@ -67,7 +66,6 @@ class User_flag_profile extends Memcached_DataObject * * @return array array of column definitions */ - function table() { return array( @@ -81,23 +79,36 @@ class User_flag_profile extends Memcached_DataObject /** * return key definitions for DB_DataObject * - * @return array key definitions + * @return array of key names */ - function keys() { - return array('profile_id' => 'K', 'user_id' => 'K'); + return array_keys($this->keyTypes()); } /** * return key definitions for DB_DataObject * - * @return array key definitions + * @return array map of key definitions */ - function keyTypes() { - return $this->keys(); + return array('profile_id' => 'K', '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); } /** @@ -107,7 +118,6 @@ class User_flag_profile extends Memcached_DataObject * * @return User_flag_profile found object or null */ - function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('User_flag_profile', $kv); @@ -121,7 +131,6 @@ class User_flag_profile extends Memcached_DataObject * * @return boolean true if exists, else false */ - static function exists($profile_id, $user_id) { $ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id, @@ -138,7 +147,6 @@ class User_flag_profile extends Memcached_DataObject * * @return boolean success flag */ - static function create($user_id, $profile_id) { $ufp = new User_flag_profile(); @@ -148,7 +156,8 @@ class User_flag_profile extends Memcached_DataObject $ufp->created = common_sql_now(); if (!$ufp->insert()) { - $msg = sprintf(_("Couldn't flag profile '%d' for review."), + // TRANS: Server exception. + $msg = sprintf(_m('Couldn\'t flag profile "%d" for review.'), $profile_id); throw new ServerException($msg); } diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php index 17374927b3..df0450f66a 100644 --- a/plugins/UserFlag/adminprofileflag.php +++ b/plugins/UserFlag/adminprofileflag.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class AdminprofileflagAction extends Action { var $page = null; @@ -53,7 +52,6 @@ class AdminprofileflagAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -109,7 +107,6 @@ class AdminprofileflagAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -122,10 +119,10 @@ class AdminprofileflagAction extends Action * * @return string Title of the page */ - function title() { - return _('Flagged profiles'); + // TRANS: Title for page with a list of profiles that were flagged for review. + return _m('Flagged profiles'); } /** @@ -133,7 +130,6 @@ class AdminprofileflagAction extends Action * * @return void */ - function showContent() { $pl = new FlaggedProfileList($this->profiles, $this); @@ -149,7 +145,6 @@ class AdminprofileflagAction extends Action * * @return Profile $profile Profile query results */ - function getProfiles() { $ufp = new User_flag_profile(); @@ -196,7 +191,6 @@ class AdminprofileflagAction extends Action * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class FlaggedProfileList extends ProfileList { /** @@ -206,7 +200,6 @@ class FlaggedProfileList extends ProfileList * * @return ProfileListItem newly-created item */ - function newListItem($profile) { return new FlaggedProfileListItem($this->profile, $this->action); @@ -222,7 +215,6 @@ class FlaggedProfileList extends ProfileList * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class FlaggedProfileListItem extends ProfileListItem { const MAX_FLAGGERS = 5; @@ -235,7 +227,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showActions() { $this->user = common_current_user(); @@ -247,7 +238,8 @@ class FlaggedProfileListItem extends ProfileListItem $this->startActions(); if (Event::handle('StartProfileListItemActionElements', array($this))) { $this->out->elementStart('li', 'entity_moderation'); - $this->out->element('p', null, _('Moderate')); + // TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). + $this->out->element('p', null, _m('Moderate')); $this->out->elementStart('ul'); $this->showSandboxButton(); $this->showSilenceButton(); @@ -265,7 +257,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showSandboxButton() { if ($this->user->hasRight(Right::SANDBOXUSER)) { @@ -286,7 +277,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showSilenceButton() { if ($this->user->hasRight(Right::SILENCEUSER)) { @@ -307,7 +297,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showDeleteButton() { @@ -324,7 +313,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showClearButton() { if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) { @@ -340,7 +328,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function endProfile() { $this->showFlaggersList(); @@ -352,7 +339,6 @@ class FlaggedProfileListItem extends ProfileListItem * * @return void */ - function showFlaggersList() { $flaggers = array(); @@ -394,12 +380,16 @@ class FlaggedProfileListItem extends ProfileListItem } if ($cnt > 0) { - $text = _('Flagged by '); - - $text .= implode(', ', $lnks); - if ($others > 0) { - $text .= sprintf(_(' and %d others'), $others); + $flagging_users = implode(', ', $lnks); + // TRANS: Message displayed on a profile if it has been flagged. + // TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. + // TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. + $text .= sprintf(_m('Flagged by %1$s and %2$d other', 'Flagged by %1$s and %2$d others', $others), $flagging_users, $others); + } else { + // TRANS: Message displayed on a profile if it has been flagged. + // TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. + $text .= sprintf(_m('Flagged by %s'), $flagging_users); } $this->out->elementStart('p', array('class' => 'flaggers')); diff --git a/plugins/UserFlag/clearflag.php b/plugins/UserFlag/clearflag.php index f032527ed6..feda29f1b7 100644 --- a/plugins/UserFlag/clearflag.php +++ b/plugins/UserFlag/clearflag.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ClearflagAction extends ProfileFormAction { /** @@ -75,7 +74,6 @@ class ClearflagAction extends ProfileFormAction * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -93,7 +91,6 @@ class ClearflagAction extends ProfileFormAction * * @return void */ - function handlePost() { $ufp = new User_flag_profile(); @@ -104,7 +101,8 @@ class ClearflagAction extends ProfileFormAction 'AND profile_id = ' . $this->profile->id); if ($result == false) { - $msg = sprintf(_("Couldn't clear flags for profile '%s'."), + // TRANS: Server exception given when flags could not be cleared. + $msg = sprintf(_m('Couldn\'t clear flags for profile "%s".'), $this->profile->nickname); throw new ServerException($msg); } @@ -121,17 +119,18 @@ class ClearflagAction extends ProfileFormAction * * @return void */ - 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')); + // TRANS: Title for AJAX form to indicated that flags were removed. + $this->element('title', null, _m('Flags cleared')); $this->elementEnd('head'); $this->elementStart('body'); - $this->element('p', 'cleared', _('Cleared')); + // TRANS: Body element for "flags cleared" form. + $this->element('p', 'cleared', _m('Cleared')); $this->elementEnd('body'); $this->elementEnd('html'); } diff --git a/plugins/UserFlag/clearflagform.php b/plugins/UserFlag/clearflagform.php index eefd15c368..26a8848758 100644 --- a/plugins/UserFlag/clearflagform.php +++ b/plugins/UserFlag/clearflagform.php @@ -42,7 +42,6 @@ require_once INSTALLDIR.'/lib/form.php'; * @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 { /** @@ -51,7 +50,6 @@ class ClearFlagForm extends ProfileActionForm * * @return string class of the form */ - function formClass() { return 'form_user_clearflag'; @@ -62,7 +60,6 @@ class ClearFlagForm extends ProfileActionForm * * @return string Name of the action, lowercased. */ - function target() { return 'clearflag'; @@ -73,10 +70,10 @@ class ClearFlagForm extends ProfileActionForm * * @return string Title of the form, internationalized */ - function title() { - return _('Clear'); + // TRANS: Form title for action on a profile. + return _m('Clear'); } /** @@ -87,6 +84,7 @@ class ClearFlagForm extends ProfileActionForm function description() { - return _('Clear all flags'); + // Form description for clearing flags from a profile. + return _m('Clear all flags'); } } diff --git a/plugins/UserFlag/flagprofile.php b/plugins/UserFlag/flagprofile.php index 018c1e8ac9..7096d3748e 100644 --- a/plugins/UserFlag/flagprofile.php +++ b/plugins/UserFlag/flagprofile.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class FlagprofileAction extends ProfileFormAction { /** @@ -50,7 +49,6 @@ class FlagprofileAction extends ProfileFormAction * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { @@ -62,12 +60,6 @@ class FlagprofileAction extends ProfileFormAction assert(!empty($user)); // checked above assert(!empty($this->profile)); // checked above - if (User_flag_profile::exists($this->profile->id, - $user->id)) { - $this->clientError(_('Flag already exists.')); - return false; - } - return true; } @@ -81,7 +73,6 @@ class FlagprofileAction extends ProfileFormAction * * @return void */ - function handle($args) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { @@ -97,7 +88,6 @@ class FlagprofileAction extends ProfileFormAction * * @return void */ - function handlePost() { $user = common_current_user(); @@ -107,7 +97,13 @@ class FlagprofileAction extends ProfileFormAction // throws an exception on error - User_flag_profile::create($user->id, $this->profile->id); + if (User_flag_profile::exists($this->profile->id, + $user->id)) { + // We'll return to the profile page (or return the updated AJAX form) + // showing the current state, so no harm done. + } else { + User_flag_profile::create($user->id, $this->profile->id); + } if ($this->boolean('ajax')) { $this->ajaxResults(); @@ -119,19 +115,19 @@ class FlagprofileAction extends ProfileFormAction * * @return void */ - 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, _('Flagged for review')); + // TRANS: AJAX form title for a flagged profile. + $this->element('title', null, _m('Flagged for review')); $this->elementEnd('head'); $this->elementStart('body'); - $this->element('p', 'flagged', _('Flagged')); + // TRANS: Body text for AJAX form when a profile has been flagged for review. + $this->element('p', 'flagged', _m('Flagged')); $this->elementEnd('body'); $this->elementEnd('html'); } } - diff --git a/plugins/UserFlag/flagprofileform.php b/plugins/UserFlag/flagprofileform.php index c20929a20c..045c9de852 100644 --- a/plugins/UserFlag/flagprofileform.php +++ b/plugins/UserFlag/flagprofileform.php @@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/form.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class FlagProfileForm extends ProfileActionForm { /** @@ -53,7 +52,6 @@ class FlagProfileForm extends ProfileActionForm * * @return string class of the form */ - function formClass() { return 'form_entity_flag'; @@ -64,7 +62,6 @@ class FlagProfileForm extends ProfileActionForm * * @return string Name of the action, lowercased. */ - function target() { return 'flagprofile'; @@ -75,10 +72,10 @@ class FlagProfileForm extends ProfileActionForm * * @return string Title of the form, internationalized */ - function title() { - return _('Flag'); + // TRANS: Form title for flagging a profile for review. + return _m('Flag'); } /** @@ -86,9 +83,9 @@ class FlagProfileForm extends ProfileActionForm * * @return string description of the form, internationalized */ - function description() { - return _('Flag profile for review'); + // TRANS: Form description. + return _m('Flag profile for review.'); } } diff --git a/plugins/UserFlag/locale/UserFlag.pot b/plugins/UserFlag/locale/UserFlag.pot new file mode 100644 index 0000000000..7251033c4b --- /dev/null +++ b/plugins/UserFlag/locale/UserFlag.pot @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "" + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "" + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "" + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "" diff --git a/plugins/UserFlag/locale/br/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/br/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..da9cb869bf --- /dev/null +++ b/plugins/UserFlag/locale/br/LC_MESSAGES/UserFlag.po @@ -0,0 +1,108 @@ +# Translation of StatusNet - UserFlag to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Merañ" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "" +msgstr[1] "" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "" + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Diverket" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Merkañ" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "" + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "" + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Riñsañ" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "" diff --git a/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..53f88671d7 --- /dev/null +++ b/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po @@ -0,0 +1,110 @@ +# Translation of StatusNet - UserFlag to Catalan (Català) +# Expored from translatewiki.net +# +# Author: Toniher +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ca\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Perfils senyalats" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Modera" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Senyalat per %1$s i %2$d altre" +msgstr[1] "Senyalat per %1$s i %2$d altres" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Senyalat per %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Senyalat per revisar" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Senyalat" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Aquest connector permet senyalar perfils per revisar i revisar els perfils " +"senyalats." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "No s'han pogut esborrar els senyals del perfil «%s»." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "S'han esborrat els senyals" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "S'ha esborrat" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Senyala" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Senyala el perfil per revisar." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "No s'ha pogut senyalar el perfil «%d» per revisar." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Esborra" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Esborra tots els senyals" diff --git a/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..2c81d5008d --- /dev/null +++ b/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po @@ -0,0 +1,110 @@ +# Translation of StatusNet - UserFlag to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Profils marqués" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Modérer" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Marqué par %1$s et %2$d autre" +msgstr[1] "Marqué par %1$s et %2$d autres" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Marqué par %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Marqué pour vérification" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Marqué" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Cette extension permet de marquer des profils pour vérification et de " +"vérifier des profils marqués." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Impossible de supprimer les marquages pour le profil « %s »." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Marquages supprimés" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Effacé" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Marquer" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Marquer le profil pour vérification." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Impossible de marquer le profil « %d » pour vérification." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Effacer" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Effacer tous les marquages" diff --git a/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..fd68957ee8 --- /dev/null +++ b/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po @@ -0,0 +1,109 @@ +# Translation of StatusNet - UserFlag to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Profilos marcate" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Moderar" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Marcate per %1$s e %2$d altere" +msgstr[1] "Marcate per %1$s e %2$d alteres" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Marcate per %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Marcate pro revision" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Marcate" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Iste plugin permitte marcar profilos pro revision e revider profilos marcate." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Non poteva rader marcas pro profilo \"%s\"." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Marcas radite" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Radite" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Rader tote le marcas" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Marcar profilo pro revision." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Non poteva marcar profilo \"%d\" pro revision." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Rader" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Rader tote le marcas" diff --git a/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..bc8727a51d --- /dev/null +++ b/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po @@ -0,0 +1,110 @@ +# Translation of StatusNet - UserFlag to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Означени профили" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Модерирај" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Означено од %1$s и уште %2$d друг" +msgstr[1] "Означено од %1$s и уште %2$d други" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Означено од %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Означено за преглед" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Означено" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Овој приклучок овозможува означување на профили за преглед и прегледување на " +"означени профили." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Не можев да ги отстранам ознаките за профилот „%s“." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Ознаките се отстранети" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Отстрането" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Означи" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Означи профил за преглед." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Не можев да го означам профилот „%d“ за преглед." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Отстрани" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Отстрани ги сите ознаки" diff --git a/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..fefbd582d8 --- /dev/null +++ b/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po @@ -0,0 +1,111 @@ +# Translation of StatusNet - UserFlag to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:12+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Gemarkeerde profielen" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Modereren" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Gemarkeerd door %1$s en %2$d andere" +msgstr[1] "Gemarkeerd door %1$s en %2$d anderen" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Gemarkeerd door %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Gemarkeerd voor controle" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Gemarkeerd" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Deze plugin maakt het markeren van profielen voor controle mogelijk en de " +"controle van gemarkeerde profielen." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "" +"Het was niet mogelijk de markeringen van het profiel \"%s\" te verwijderen." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Markeringen verwijderd" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Verwijderd" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Markeren" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Profiel voor controle markeren" + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Het was niet mogelijk het profiel \"%d\" voor controle te markeren." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Wissen" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Alle markeringen wissen" diff --git a/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..04e63babb0 --- /dev/null +++ b/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po @@ -0,0 +1,110 @@ +# Translation of StatusNet - UserFlag to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: GTNS +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Perfis sinalizados" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Moderar" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Sinalizado por %1$s e mais %2$d pessoa" +msgstr[1] "Sinalizado por %1$s e mais %2$d pessoas" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Sinalizado por %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Sinalizado para análise" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Sinalizado" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Este plugin permite sinalizar perfis para análise e analisar perfis " +"sinalizados." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Não foi possível limpar as sinalizações do perfil \"%s\"." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Sinalizações limpas" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Limpas" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Sinalização" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Sinalizar perfil para análise." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Não foi possível sinalizar o perfil \"%d\" para análise." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Limpar" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Limpar todas as sinalizações" diff --git a/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..3dff4ec9e9 --- /dev/null +++ b/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po @@ -0,0 +1,112 @@ +# Translation of StatusNet - UserFlag to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-07 21:20:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +#: adminprofileflag.php:125 +msgid "Flagged profiles" +msgstr "Відмічені профілі" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +#: adminprofileflag.php:242 +msgid "Moderate" +msgstr "Модерувати" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#: adminprofileflag.php:388 +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Відмічено %1$s та ще %2$d користувачем" +msgstr[1] "Відмічено %1$s та ще %2$d користувачами" +msgstr[2] "Відмічено %1$s та ще %2$d користувачами" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#: adminprofileflag.php:392 +#, php-format +msgid "Flagged by %s" +msgstr "Відмічено %s" + +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "Відмічені для розгляду" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "Відмічені" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:294 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Цей додаток дозволяє відмічати профілі користувачів для подальшого розгляду " +"та аналізу відмічених профілів." + +#. TRANS: Server exception given when flags could not be cleared. +#: clearflag.php:105 +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Не можу зняти позначки для профілю «%s»." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +#: clearflag.php:129 +msgid "Flags cleared" +msgstr "Позначки знято" + +#. TRANS: Body element for "flags cleared" form. +#: clearflag.php:133 +msgid "Cleared" +msgstr "Знято" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "Відмітити" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "Відмітити профіль для розгляду." + +#. TRANS: Server exception. +#: User_flag_profile.php:160 +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "Не вдалося відмітити профіль «%d» для розгляду." + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "Зняти" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "Зняти всі позначки" diff --git a/plugins/UserLimitPlugin.php b/plugins/UserLimit/UserLimitPlugin.php similarity index 100% rename from plugins/UserLimitPlugin.php rename to plugins/UserLimit/UserLimitPlugin.php diff --git a/plugins/UserLimit/locale/UserLimit.pot b/plugins/UserLimit/locale/UserLimit.pot new file mode 100644 index 0000000000..f4c14ae02d --- /dev/null +++ b/plugins/UserLimit/locale/UserLimit.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "" diff --git a/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..2fe548d71d --- /dev/null +++ b/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Bevenniñ an niver a implijerien a c'hall en em enskrivañ" diff --git a/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..58164146e0 --- /dev/null +++ b/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Beschränkung der Anzahl von Benutzern, die sich registrieren können." diff --git a/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..e93f4629ee --- /dev/null +++ b/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Translationista +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limitarla cantidad de usuarios que pueden registrarse." diff --git a/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..0704fa0600 --- /dev/null +++ b/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Centerlink +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Rajoita niiden käyttäjien lukumäärää, jotka voivat rekisteröityä." diff --git a/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..18545c5b43 --- /dev/null +++ b/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limiter le nombre d’utilisateurs qui peuvent s’inscrire." diff --git a/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..a422577f9c --- /dev/null +++ b/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limitar o número de usuarios que se poden rexistrar." diff --git a/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..458af68000 --- /dev/null +++ b/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "הגבלת מספר המשתמשים שיכולים להירשם." diff --git a/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..c54e449806 --- /dev/null +++ b/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limitar le numero de usatores que pote registrar se." diff --git a/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..c1485c2a95 --- /dev/null +++ b/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Batasi jumlah pengguna yang boleh mendaftar." diff --git a/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..17af3b888a --- /dev/null +++ b/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Luxembourgish (Lëtzebuergesch) +# Expored from translatewiki.net +# +# Author: Robby +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Luxembourgish <http://translatewiki.net/wiki/Portal:lb>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: lb\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "D'Zuel vun de Benotzer, déi sech registréiere kënnen, limitéieren." diff --git a/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..4a36c5e2e8 --- /dev/null +++ b/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - UserLimit to Latvian (Latviešu) +# Expored from translatewiki.net +# +# Author: Geimeris +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Latvian <http://translatewiki.net/wiki/Portal:lv>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: lv\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n != " +"0) ? 1 : 2 );\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Ierobežotais lietotāju skaits, kuri var reģistrēties." diff --git a/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..7352e26498 --- /dev/null +++ b/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Ограничување на бројот на корисници што можат да се регистрираат." diff --git a/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..a543fb95b1 --- /dev/null +++ b/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Begrens antallet brukere som kan registrere seg." diff --git a/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..b4c6950383 --- /dev/null +++ b/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limiteert het aantal gebruikers dat kan registreren." diff --git a/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..11fc2d128d --- /dev/null +++ b/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Portuguese (Português) +# Expored from translatewiki.net +# +# Author: Hamilton Abreu +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limitar o número de utilizadores que se podem registar." diff --git a/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..8bc0a6d028 --- /dev/null +++ b/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - UserLimit to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Limitar o número de usuários que podem se registrar." diff --git a/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..39afac67c9 --- /dev/null +++ b/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - UserLimit to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "" +"Ограничение количества пользователей, которые могут зарегистрироваться." diff --git a/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..0e489edd78 --- /dev/null +++ b/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Hangganan ng bilang ng mga tagagamit na makakapagpatala." diff --git a/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..5f433de628 --- /dev/null +++ b/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - UserLimit to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:13+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Kayıt olabilecek kullanıcı sayısını sınırla." diff --git a/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..9af2d0314b --- /dev/null +++ b/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - UserLimit to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:19+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: UserLimitPlugin.php:89 +msgid "Limit the number of users who can register." +msgstr "Обмеження кількості користувачів, котрі можуть зареєструватися." diff --git a/plugins/WikiHashtagsPlugin.php b/plugins/WikiHashtags/WikiHashtagsPlugin.php similarity index 100% rename from plugins/WikiHashtagsPlugin.php rename to plugins/WikiHashtags/WikiHashtagsPlugin.php diff --git a/plugins/WikiHashtags/locale/WikiHashtags.pot b/plugins/WikiHashtags/locale/WikiHashtags.pot new file mode 100644 index 0000000000..755db28a01 --- /dev/null +++ b/plugins/WikiHashtags/locale/WikiHashtags.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" diff --git a/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..5d13f3e7c7 --- /dev/null +++ b/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Tapout a ra deskrivadurioù hashtag adalek <a href=\"http://hashtags.wikia." +"com/\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..076502a504 --- /dev/null +++ b/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to German (Deutsch) +# Expored from translatewiki.net +# +# Author: The Evil IP address +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Holt Hashtag-Beschreibungen aus <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..542158e7da --- /dev/null +++ b/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Obtient les descriptions de hashtags depuis <a href=\"http://hashtags.wikia." +"com/\">WikiHashtags</a> ." diff --git a/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..2516266b7b --- /dev/null +++ b/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"קבלת תיאורי תגיות סולמית מ־<a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..b2a0c6ed3e --- /dev/null +++ b/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Obtene descriptiones de hashtags ab <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..998252845b --- /dev/null +++ b/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Memperoleh deskripsi tagar dari <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..b605cae786 --- /dev/null +++ b/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Презема описи на тарабни ознаки од <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..a1b349a4ef --- /dev/null +++ b/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Henter hashtag-beskrivelser fra <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..911706d2a9 --- /dev/null +++ b/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Haalt hashtagbeschrijvingen op van <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..894f064d2d --- /dev/null +++ b/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - WikiHashtags to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Obter as descrições de hashtags a partir de <a href=\"http://hashtags.wikia." +"com/\">WikiHashtags</a> ." diff --git a/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..e553a044ec --- /dev/null +++ b/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - WikiHashtags to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Получает описания хештегов из <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..e07b9e004b --- /dev/null +++ b/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Kumukuha ng mga paglalarawan ng tatak ng giling mula sa <a href=\"http://" +"hashtags.wikia.com/\">WikiHashtags</a>." diff --git a/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..b96a704dd8 --- /dev/null +++ b/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - WikiHashtags to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Kareetiket tanımlarını <a href=\"http://hashtags.wikia.com/\">WikiHashtags</" +"a>'tan al." diff --git a/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po new file mode 100644 index 0000000000..cb71cc0abf --- /dev/null +++ b/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - WikiHashtags to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHashtags\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:14+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-wikihashtags\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: WikiHashtagsPlugin.php:110 +msgid "" +"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." +msgstr "" +"Отримувати описи теґів з <a href=\"http://hashtags.wikia.com/" +"\">WikiHashtags</a>." diff --git a/plugins/WikiHowProfile/WikiHowProfilePlugin.php b/plugins/WikiHowProfile/WikiHowProfilePlugin.php index b72bd55d6d..753dff5a37 100644 --- a/plugins/WikiHowProfile/WikiHowProfilePlugin.php +++ b/plugins/WikiHowProfile/WikiHowProfilePlugin.php @@ -47,7 +47,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ - class WikiHowProfilePlugin extends Plugin { function onPluginVersion(&$versions) @@ -57,7 +56,7 @@ class WikiHowProfilePlugin extends Plugin 'author' => 'Brion Vibber', 'homepage' => 'http://status.net/wiki/Plugin:Sample', 'rawdescription' => - _m('Fetches avatar and other profile info for WikiHow users when setting up an account via OpenID.')); + _m('Fetches avatar and other profile information for WikiHow users when setting up an account via OpenID.')); return true; } @@ -107,14 +106,14 @@ class WikiHowProfilePlugin extends Plugin /** * Given a user's WikiHow profile URL, find their avatar. - * + * * @param string $profileUrl user page on the wiki - * + * * @return array of data; possible members: * 'avatar' => full URL to avatar image - * + * * @throws Exception on various low-level failures - * + * * @todo pull location, web site, and about sections -- they aren't currently marked up cleanly. */ private function fetchProfile($profileUrl) @@ -169,28 +168,31 @@ class WikiHowProfilePlugin extends Plugin private function saveAvatar($user, $url) { if (!common_valid_http_url($url)) { - throw new ServerException(sprintf(_m("Invalid avatar URL %s"), $url)); + throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url)); } // @fixme this should be better encapsulated // ripped from OStatus via oauthstore.php (for old OMB client) $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar'); - if (!copy($url, $temp_filename)) { - throw new ServerException(sprintf(_m("Unable to fetch avatar from %s"), $url)); + try { + if (!copy($url, $temp_filename)) { + throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url)); + } + + $profile = $user->getProfile(); + $id = $profile->id; + // @fixme should we be using different ids? + + $imagefile = new ImageFile($id, $temp_filename); + $filename = Avatar::filename($id, + image_type_to_extension($imagefile->type), + null, + common_timestamp()); + rename($temp_filename, Avatar::path($filename)); + } catch (Exception $e) { + unlink($temp_filename); + throw $e; } - - $profile = $user->getProfile(); - $id = $profile->id; - // @fixme should we be using different ids? - - $imagefile = new ImageFile($id, $temp_filename); - $filename = Avatar::filename($id, - image_type_to_extension($imagefile->type), - null, - common_timestamp()); - rename($temp_filename, Avatar::path($filename)); $profile->setOriginal($filename); } - } - diff --git a/plugins/WikiHowProfile/locale/WikiHowProfile.pot b/plugins/WikiHowProfile/locale/WikiHowProfile.pot new file mode 100644 index 0000000000..132c458180 --- /dev/null +++ b/plugins/WikiHowProfile/locale/WikiHowProfile.pot @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" diff --git a/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..9d6f739976 --- /dev/null +++ b/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Récupère l’avatar et les autres informations de profil des utilisateurs " +"WikiHow lorsqu’ils créent un compte via OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Adresse URL d’avatar « %s » invalide." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Impossible de récupérer l’avatar depuis « %s »." diff --git a/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..36e6bdfcbf --- /dev/null +++ b/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Obtene le avatar e altere informationes de profilo pro usatores de WikiHow " +"durante le creation de un conto via OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL de avatar %s invalide." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Incapace de obtener avatar ab %s." diff --git a/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..4b7a85357b --- /dev/null +++ b/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Презема аватар и други профилни податоци за корисници на WikiHow при " +"создавање на сметка преку OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Неважечка URL-адреса на аватарот: %s." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Не можев да го преземам аватарот од %s." diff --git a/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..8549ca968e --- /dev/null +++ b/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Haalt avatar- en andere informatie op voor WikiHow-gebruikers die een " +"gebruiker aanmaken via OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Ongeldige avatar-URL %s." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Het was niet mogelijk om de avatar op te halen van %s." diff --git a/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..d44df8df91 --- /dev/null +++ b/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - WikiHowProfile to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Lockal +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Запрашивает аватару и прочую информацию из профиля пользователя WikiHow при " +"создании учётной записи с помощью OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Неверный URL-адрес аватары %s" + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Не удаётся получить аватару из %s." diff --git a/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..90b1c79a4f --- /dev/null +++ b/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Dumarampot ng abatar at ibang kabatiran ng balangkas para sa mga tagagamit " +"ng WikiHow kapag nagtatalaga ng isang akawnt sa pamamagitan ng OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Hindi tanggap na URL ng abatar ang %s." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Hindi nagawang damputin ang abatar mula sa %s." diff --git a/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..12d0a041c6 --- /dev/null +++ b/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,40 @@ +# Translation of StatusNet - WikiHowProfile to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"OpenID aracılığıyla hesap oluşturan WikiHow kullanıcıları için kullanıcı " +"resimlerini ve diğer profil bilgilerini alır." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Geçersiz kullanıcı resmi bağlantısı %s." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "%s'ten kullanıcı resmi alınamıyor." diff --git a/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po new file mode 100644 index 0000000000..f9836afeb1 --- /dev/null +++ b/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po @@ -0,0 +1,41 @@ +# Translation of StatusNet - WikiHowProfile to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - WikiHowProfile\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-29 16:14:15+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: WikiHowProfilePlugin.php:59 +msgid "" +"Fetches avatar and other profile information for WikiHow users when setting " +"up an account via OpenID." +msgstr "" +"Запитує аватар та іншу супутню інформацію з WikiHow для користувачів, котрі " +"створюють акаунти через OpenID." + +#: WikiHowProfilePlugin.php:171 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Невірна URL-адреса аватари %s." + +#: WikiHowProfilePlugin.php:179 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Неможливо завантажити аватару з %s." diff --git a/plugins/XCachePlugin.php b/plugins/XCache/XCachePlugin.php similarity index 100% rename from plugins/XCachePlugin.php rename to plugins/XCache/XCachePlugin.php diff --git a/plugins/XCache/locale/XCache.pot b/plugins/XCache/locale/XCache.pot new file mode 100644 index 0000000000..074606f00e --- /dev/null +++ b/plugins/XCache/locale/XCache.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" diff --git a/plugins/XCache/locale/br/LC_MESSAGES/XCache.po b/plugins/XCache/locale/br/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..d302b397d6 --- /dev/null +++ b/plugins/XCache/locale/br/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:15+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Ober gant ar grubuilh hegemm <a href=\"http://xcache.lighttpd.net/\">XCache</" +"a> da grubuilhañ disoc'hoù ar rekedoù." diff --git a/plugins/XCache/locale/es/LC_MESSAGES/XCache.po b/plugins/XCache/locale/es/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..26e00b9c14 --- /dev/null +++ b/plugins/XCache/locale/es/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Spanish (Español) +# Expored from translatewiki.net +# +# Author: Locos epraix +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:16+0000\n" +"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: es\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Utilice la caché variable <a href=\"http://xcache.lighttpd.net/\">XCache</a> " +"para guardar los resultados de consultas." diff --git a/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po b/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..f215b85221 --- /dev/null +++ b/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Finnish (Suomi) +# Expored from translatewiki.net +# +# Author: Centerlink +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:16+0000\n" +"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Käytä <a href=\"http://xcache.lighttpd.net/\">XCache</a>-muuttujavälimuistia " +"kyselyn tulosten tallentamiseksi välimuistiin." diff --git a/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po b/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..7ff7e557a1 --- /dev/null +++ b/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to French (Français) +# Expored from translatewiki.net +# +# Author: Verdy p +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:19+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Utilisez le cache variable <a href=\"http://xcache.lighttpd.net/\">XCache</" +"a> pour mettre en cache les résultats de requêtes." diff --git a/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..eb18a667a8 --- /dev/null +++ b/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:19+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Usar a caché variable <a href=\"http://xcache.lighttpd.net/\">XCache</a> " +"para gardar os resultados das pescudas na memoria caché." diff --git a/plugins/XCache/locale/he/LC_MESSAGES/XCache.po b/plugins/XCache/locale/he/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..f4963bd7d4 --- /dev/null +++ b/plugins/XCache/locale/he/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Hebrew (עברית) +# Expored from translatewiki.net +# +# Author: YaronSh +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: he\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"שימוש במשתנה <a href=\"http://xcache.lighttpd.net/\">XCache</a> לשמירת " +"תוצאות השאילתות במטמון." diff --git a/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po b/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..ee38159fe0 --- /dev/null +++ b/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Usar le cache de variabiles <a href=\"http://xcache.lighttpd.net/\">XCache</" +"a> pro immagazinar le resultatos de consultas." diff --git a/plugins/XCache/locale/id/LC_MESSAGES/XCache.po b/plugins/XCache/locale/id/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..ca4cafa696 --- /dev/null +++ b/plugins/XCache/locale/id/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Indonesian (Bahasa Indonesia) +# Expored from translatewiki.net +# +# Author: Farras +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: id\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Gunakan tembolok variabel <a href=\"http://xcache.lighttpd.net/\">XCache</a> " +"untuk menembolokkan hasil pencarian." diff --git a/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po b/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..89e874e715 --- /dev/null +++ b/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Користи променлив кеш <a href=\"http://xcache.lighttpd.net/\">XCache</a> за " +"кеширање на резултати од барања." diff --git a/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po b/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..4ba4011105 --- /dev/null +++ b/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) +# Expored from translatewiki.net +# +# Author: Nghtwlkr +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: no\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Bruk <a href=\"http://xcache.lighttpd.net/\">XCache</a>-" +"variabelhurtiglageret til å hurtiglagre søkeresultat." diff --git a/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..e03ff1b145 --- /dev/null +++ b/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"<a href=\"http://xcache.lighttpd.net/\">XCache</a> cache gebruiken voor het " +"cachen van zoekopdrachtresultaten." diff --git a/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po b/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..2a5d75ca2d --- /dev/null +++ b/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - XCache to Brazilian Portuguese (Português do Brasil) +# Expored from translatewiki.net +# +# Author: Giro720 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-" +"br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt-br\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Utilizar o cache variável <a href=\"http://xcache.lighttpd.net/\">XCache</a> " +"para guardar os resultados de consultas." diff --git a/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po b/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..5aba7773df --- /dev/null +++ b/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - XCache to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Александр Сигачёв +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Использование <a href=\"http://xcache.lighttpd.net/\">XCache</a> для " +"кеширования результатов запросов." diff --git a/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..d0d4ce40a1 --- /dev/null +++ b/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Tagalog (Tagalog) +# Expored from translatewiki.net +# +# Author: AnakngAraw +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tl\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Gamitin ang nababagong taguan na <a href=\"http://xcache.lighttpd.net/" +"\">XCache</a> upang ikubli ang mga kinalabasan ng pagtatanong." diff --git a/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po b/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..ce461a81d3 --- /dev/null +++ b/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - XCache to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Sorgulama sonuçlarını saklamak için <a href=\"http://xcache.lighttpd.net/" +"\">XCache</a> değişken önbelleğini kullan." diff --git a/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po b/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po new file mode 100644 index 0000000000..8161ea2d7d --- /dev/null +++ b/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - XCache to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - XCache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:20+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-10-30 23:43:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-xcache\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: XCachePlugin.php:120 +msgid "" +"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to " +"cache query results." +msgstr "" +"Використання <a href=\"http://xcache.lighttpd.net/\">XCache</a> для " +"різноманітних запитів щодо кешу." diff --git a/plugins/Xmpp/Queued_XMPP.php b/plugins/Xmpp/Queued_XMPP.php index 73eff22467..24f542805b 100644 --- a/plugins/Xmpp/Queued_XMPP.php +++ b/plugins/Xmpp/Queued_XMPP.php @@ -79,7 +79,7 @@ class Queued_XMPP extends XMPPHP_XMPP */ public function send($msg, $timeout=NULL) { - $this->plugin->enqueue_outgoing_raw($msg); + $this->plugin->enqueueOutgoingRaw($msg); } //@{ diff --git a/plugins/Xmpp/XmppPlugin.php b/plugins/Xmpp/XmppPlugin.php index 66468b5f25..2002541782 100644 --- a/plugins/Xmpp/XmppPlugin.php +++ b/plugins/Xmpp/XmppPlugin.php @@ -254,7 +254,7 @@ class XmppPlugin extends ImPlugin return false; } - function daemon_screenname() + function daemonScreenname() { $ret = $this->user . '@' . $this->server; if($this->resource) @@ -311,14 +311,14 @@ class XmppPlugin extends ImPlugin return 'xmpp:' . $screenname; } - function send_message($screenname, $body) + function sendMessage($screenname, $body) { $this->queuedConnection()->message($screenname, $body, 'chat'); } - function send_notice($screenname, $notice) + function sendNotice($screenname, $notice) { - $msg = $this->format_notice($notice); + $msg = $this->formatNotice($notice); $entry = $this->format_entry($notice); $this->queuedConnection()->message($screenname, $msg, 'chat', null, $entry); @@ -364,7 +364,7 @@ class XmppPlugin extends ImPlugin return $html . ' ' . $entry; } - function receive_raw_message($pl) + function receiveRawMessage($pl) { $from = $this->normalize($pl['from']); @@ -378,7 +378,7 @@ class XmppPlugin extends ImPlugin return; } - $this->handle_incoming($from, $pl['body']); + $this->handleIncoming($from, $pl['body']); return true; } diff --git a/plugins/Xmpp/xmppmanager.php b/plugins/Xmpp/xmppmanager.php index 87d8186684..1a4e9546d8 100644 --- a/plugins/Xmpp/xmppmanager.php +++ b/plugins/Xmpp/xmppmanager.php @@ -184,14 +184,14 @@ class XmppManager extends ImManager } common_log(LOG_DEBUG, "Sending ping #{$this->pingid}"); - $this->conn->send("<iq from='{" . $this->plugin->daemon_screenname() . "}' to='{$this->plugin->server}' id='ping_{$this->pingid}' type='get'><ping xmlns='urn:xmpp:ping'/></iq>"); + $this->conn->send("<iq from='{" . $this->plugin->daemonScreenname() . "}' to='{$this->plugin->server}' id='ping_{$this->pingid}' type='get'><ping xmlns='urn:xmpp:ping'/></iq>"); $this->lastping = $now; return true; } function handle_xmpp_message(&$pl) { - $this->plugin->enqueue_incoming_raw($pl); + $this->plugin->enqueueIncomingRaw($pl); return true; } diff --git a/plugins/YammerImport/README b/plugins/YammerImport/README new file mode 100644 index 0000000000..975faa2132 --- /dev/null +++ b/plugins/YammerImport/README @@ -0,0 +1,182 @@ +Yammer Import Plugin +==================== + +This plugin allows a one-time import pulling user accounts, groups, and +public messages from an existing Yammer instance, using Yammer's public API. + +Requirements +------------ + +* An account on the Yammer network you wish to import from +* An administrator account on the target StatusNet instance, or + command-line administrative access +* This YammerImport plugin enabled on your StatusNet instance + + +Limitations +----------- + +Yammer API key registrations only work for your own network unless you make +arrangements for a 'trusted app' key, so for now users will need to register +the app themselves. There is a helper in the admin panel for this. + +In theory any number of users, groups, and messages should be supported, but +it hasn't been fully tested on non-trivial-sized sites. + +No provision has yet been made for dealing with conflicting usernames or +group names, or names which are not considered valid by StatusNet. Errors +are possible. + +Running via the web admin interface requires having queueing enabled, and is +fairly likely to have problems with the application key registration step in +a small installation at this time. + + +Web setup +--------- + +The import process is runnable through an administration panel on your +StatusNet site. The user interface is still a bit flaky, however, and if +errors occur during import the process may stop with no way to restart it +visible. + +The admin interface will probably kinda blow up if JS/AJAX isn't working. + +You'll be prompted to register the application and authenticate into Yammer, +after which a progress screen will display. + +Two big warnings: +* The progress display does not currently auto-refresh. +* If anything fails once actual import has begun, it'll just keep showing + the current state. You won't see an error message, and there's no way + to reset or restart from the web UI yet. + +You can continue or reset the import state using the command-line script. + + +CLI setup +--------- + +You'll need to register an application consumer key to allow the importer +to connect to your Yammer network; this requires logging into Yammer: + + https://www.yammer.com/client_applications/new + +Check all the 'read' options; no 'write' options are required, but Yammer +seems to end up setting them anyway. + +You can set the resulting keys directly in config.php: + + $config['yammer']['consumer_key'] = '#####'; + $config['yammer']['consumer_secret'] = '##########'; + +Initiate authentication by starting up the importer script: + + php plugins/YammerImport/scripts/yammer-import.php + +Since you haven't yet authenticated, this will request an auth token and +give you a URL to open in your web browser. Once logged in and authorized +there, you'll be given a confirmation code. Pass this back: + + php plugins/YammerImport/scripts/yammer-import.php --verify=#### + +If all is well, the import process will begin and run through the end. + +In case of error or manual abort, you should be able to continue the +import from where you left off by running the script again: + + php plugins/YammerImport/scripts/yammer-import.php + +To reset the Yammer import state -- without removing any of the items +that have already been imported -- you can pass the --reset option: + + php plugins/YammerImport/scripts/yammer-import.php --reset + +This'll let you start over from the requesting-authentication stage. +Any users, groups, or notices that have already been imported will be +retained. + + +Subscriptions and group memberships +----------------------------------- + +Yammer's API does not expose user/tag subscriptions or group memberships +except for the authenticating user. As a result, users will need to re-join +groups and re-follow their fellow users after the import. + +(This limitation may be lifted in future for sites on the Silver or Gold +plans where the import is done by a verified admin, as it should be possible +to fetch the information for each user via the admin account.) + + +Authentication +-------------- + +Account passwords cannot be retrieved, but the primary e-mail address is +retained so users can reset their passwords by mail if you're not using a +custom authentication system like LDAP. + + +Private messages and groups +--------------------------- + +At this time, only public messages are imported; private direct and group +messages are ignored. (This may change with Silver and Gold plans in future.) + +Yammer groups may be either public or private. Groups in StatusNet currently +have no privacy option, so any private groups will become public groups in the +imported site. + + +Attachments +----------- + +Attached image and document files will be copied in as if they had been +uploaded to the StatusNet site. Currently images do not display inline like +they do on Yammer; they will be linked instead. + +File type and size limitations on attachments will be applied, so beware some +attachments may not make it through. + + + + +Code structure +============== + +Standalone classes +------------------ + +YammerRunner: encapsulates the iterative process of retrieving the various users, + groups, and messages via SN_YammerClient and saving them locally + via YammerImporter. + +SN_YammerClient: encapsulates HTTP+OAuth interface to Yammer API, returns data + as straight decoded JSON object trees. + +YammerImporter: encapsulates logic to pull information from the returned API data + and convert them to native StatusNet users, groups, and messages. + +Web UI actions +------------- + +YammeradminpanelAction: web panel for site administrator to initiate and monitor + the import process. + +Command-line scripts +-------------------- + +yammer-import.php: CLI script to start a Yammer import run in one go. + +Database objects +---------------- + +Yammer_state: data object storing YammerRunner's state between iterations. + +Yammer_notice_stub: data object for temporary storage of fetched Yammer messages + between fetching them (reverse chron order) and saving them + to local messages (forward chron order). +Yammer_user, +Yammer_group, +Yammer_notice: data objects mapping original Yammer item IDs to their local copies. + diff --git a/plugins/YammerImport/YammerImportPlugin.php b/plugins/YammerImport/YammerImportPlugin.php new file mode 100644 index 0000000000..2ce5af21b0 --- /dev/null +++ b/plugins/YammerImport/YammerImportPlugin.php @@ -0,0 +1,146 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * @package YammerImportPlugin + * @maintainer Brion Vibber <brion@status.net> + */ + +if (!defined('STATUSNET')) { exit(1); } + +class YammerImportPlugin extends Plugin +{ + /** + * Hook for RouterInitialized event. + * + * @param Net_URL_Mapper $m path-to-action mapper + * @return boolean hook return + */ + function onRouterInitialized($m) + { + $m->connect('admin/yammer', + array('action' => 'yammeradminpanel')); + $m->connect('admin/yammer/auth', + array('action' => 'yammerauth')); + return true; + } + + /** + * Set up queue handlers for import processing + * @param QueueManager $qm + * @return boolean hook return + */ + function onEndInitializeQueueManager(QueueManager $qm) + { + $qm->connect('yammer', 'YammerQueueHandler'); + + return true; + } + + /** + * Set up all our tables... + */ + function onCheckSchema() + { + $schema = Schema::get(); + + $tables = array('Yammer_state', + 'Yammer_user', + 'Yammer_group', + 'Yammer_notice', + 'Yammer_notice_stub'); + foreach ($tables as $table) { + $schemaDef = call_user_func(array($table, 'schemaDef')); + $schema->ensureTable(strtolower($table), $schemaDef); + } + + return true; + } + + /** + * If the plugin's installed, this should be accessible to admins. + */ + function onAdminPanelCheck($name, &$isOK) + { + if ($name == 'yammer') { + $isOK = true; + return false; + } + + return true; + } + + /** + * Add the Yammer admin panel to the list... + */ + function onEndAdminPanelNav($nav) + { + if (AdminPanelAction::canAdmin('yammer')) { + $action_name = $nav->action->trimmed('action'); + + $nav->out->menuItem(common_local_url('yammeradminpanel'), + _m('Yammer'), + _m('Yammer import'), + $action_name == 'yammeradminpanel', + 'nav_yammer_admin_panel'); + } + + return true; + } + + /** + * Automatically load the actions and libraries used by the plugin + * + * @param Class $cls the class + * + * @return boolean hook return + * + */ + function onAutoload($cls) + { + $base = dirname(__FILE__); + $lower = strtolower($cls); + switch ($lower) { + case 'sn_yammerclient': + case 'yammerimporter': + case 'yammerrunner': + case 'yammerapikeyform': + case 'yammerauthinitform': + case 'yammerauthverifyform': + case 'yammerprogressform': + case 'yammerqueuehandler': + require_once "$base/lib/$lower.php"; + return false; + case 'yammeradminpanelaction': + $crop = substr($lower, 0, strlen($lower) - strlen('action')); + require_once "$base/actions/$crop.php"; + return false; + case 'yammer_state': + case 'yammer_notice_stub': + case 'yammer_common': + case 'yammer_user': + case 'yammer_group': + case 'yammer_notice': + require_once "$base/classes/$cls.php"; + return false; + default: + return true; + } + } +} diff --git a/plugins/YammerImport/actions/yammeradminpanel.php b/plugins/YammerImport/actions/yammeradminpanel.php new file mode 100644 index 0000000000..3faf390ac1 --- /dev/null +++ b/plugins/YammerImport/actions/yammeradminpanel.php @@ -0,0 +1,187 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Yammer import administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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 YammeradminpanelAction extends AdminPanelAction +{ + private $runner; + + /** + * Returns the page title + * + * @return string page title + */ + function title() + { + return _m('Yammer Import'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + function getInstructions() + { + return _m('This Yammer import tool is still undergoing testing, ' . + 'and is incomplete in some areas. ' . + 'Currently user subscriptions and group memberships are not ' . + 'transferred; in the future this may be supported for ' . + 'imports done by verified administrators on the Yammer side.'); + } + + function prepare($args) + { + $ok = parent::prepare($args); + + $this->subaction = $this->trimmed('subaction'); + $this->runner = YammerRunner::init(); + + return $ok; + } + + function handle($args) + { + // @fixme move this to saveSettings and friends? + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + StatusNet::setApi(true); // short error pages :P + $this->checkSessionToken(); + if ($this->subaction == 'change-apikey') { + $form = new YammerApiKeyForm($this); + } else if ($this->subaction == 'apikey') { + if ($this->saveKeys()) { + $form = new YammerAuthInitForm($this, $this->runner); + } else { + $form = new YammerApiKeyForm($this); + } + } else if ($this->subaction == 'authinit') { + // hack + if ($this->arg('change-apikey')) { + $form = new YammerApiKeyForm($this); + } else { + $url = $this->runner->requestAuth(); + $form = new YammerAuthVerifyForm($this, $this->runner); + } + } else if ($this->subaction == 'authverify') { + $this->runner->saveAuthToken($this->trimmed('verify_token')); + + // Haho! Now we can make THE FUN HAPPEN + $this->runner->startBackgroundImport(); + + $form = new YammerProgressForm($this, $this->runner); + } else if ($this->subaction == 'pause-import') { + $this->runner->recordError(_m('Paused from admin panel.')); + $form = $this->statusForm(); + } else if ($this->subaction == 'continue-import') { + $this->runner->clearError(); + $this->runner->startBackgroundImport(); + $form = $this->statusForm(); + } else if ($this->subaction == 'abort-import') { + $this->runner->reset(); + $form = $this->statusForm(); + } else if ($this->subaction == 'progress') { + $form = $this->statusForm(); + } else { + throw new ClientException('Invalid POST'); + } + return $this->showAjaxForm($form); + } + return parent::handle($args); + } + + function saveKeys() + { + $key = $this->trimmed('consumer_key'); + $secret = $this->trimmed('consumer_secret'); + Config::save('yammer', 'consumer_key', $key); + Config::save('yammer', 'consumer_secret', $secret); + + return !empty($key) && !empty($secret); + } + + function showAjaxForm($form) + { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + $this->element('title', null, _m('Yammer import')); + $this->elementEnd('head'); + $this->elementStart('body'); + $form->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } + + /** + * Fetch the appropriate form for our current state. + * @return Form + */ + function statusForm() + { + if (!(common_config('yammer', 'consumer_key')) + || !(common_config('yammer', 'consumer_secret'))) { + return new YammerApiKeyForm($this); + } + switch($this->runner->state()) + { + case 'init': + return new YammerAuthInitForm($this, $this->runner); + case 'requesting-auth': + return new YammerAuthVerifyForm($this, $this->runner); + default: + return new YammerProgressForm($this, $this->runner); + } + } + + /** + * Show the Yammer admin panel form + * + * @return void + */ + function showForm() + { + $this->elementStart('fieldset'); + $this->statusForm()->show(); + $this->elementEnd('fieldset'); + } + + function showStylesheets() + { + parent::showStylesheets(); + $this->cssLink('plugins/YammerImport/css/admin.css', null, 'screen, projection, tv'); + } + + function showScripts() + { + parent::showScripts(); + $this->script('plugins/YammerImport/js/yammer-admin.js'); + } +} diff --git a/plugins/YammerImport/actions/yammerauth.php b/plugins/YammerImport/actions/yammerauth.php new file mode 100644 index 0000000000..d0d4b40c71 --- /dev/null +++ b/plugins/YammerImport/actions/yammerauth.php @@ -0,0 +1,79 @@ +<?php +/** + * StatusNet, the distributed open-source microblogging tool + * + * Yammer import administration panel + * + * PHP version 5 + * + * LICENCE: 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 <http://www.gnu.org/licenses/>. + * + * @category Settings + * @package StatusNet + * @author Zach Copley <zach@status.net> + * @copyright 2010 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 YammerauthAction extends AdminPanelAction +{ + + /** + * Show the Yammer admin panel form + * + * @return void + */ + function prepare($args) + { + parent::prepare($args); + + $this->verify_token = $this->trim('verify_token'); + } + + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + + function handle($args) + { + if ($this->verify_token) { + $runner->saveAuthToken($this->verify_token); + $form = new YammerAuthProgressForm(); + } else { + $url = $runner->requestAuth(); + $form = new YammerAuthVerifyForm($this, $url); + } + + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + $this->element('title', null, _m('Connect to Yammer')); + $this->elementEnd('head'); + $this->elementStart('body'); + $form->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } +} + diff --git a/plugins/YammerImport/classes/Yammer_common.php b/plugins/YammerImport/classes/Yammer_common.php new file mode 100644 index 0000000000..6ec6fc9041 --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_common.php @@ -0,0 +1,165 @@ +<?php +/** + * Data class for remembering Yammer import mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Common base class for the Yammer import mappings for users, groups, and notices. + * + * Child classes must override these static methods, since we need to run + * on PHP 5.2.x which has no late static binding: + * - staticGet (as our other classes) + * - schemaDef (call self::doSchemaDef) + * - record (call self::doRecord) + */ + +class Yammer_common extends Memcached_DataObject +{ + public $__table = 'yammer_XXXX'; // table name + public $__field = 'XXXX_id'; // field name to save into + public $id; // int primary_key not_null + public $user_id; // int(4) + public $created; // datetime + + /** + * @fixme add a 'references' thing for the foreign key when we support that + */ + protected static function doSchemaDef($field) + { + return array(new ColumnDef('id', 'bigint', null, + false, 'PRI'), + new ColumnDef($field, 'integer', null, + false, 'UNI'), + new ColumnDef('created', 'datetime', null, + false)); + } + + /** + * 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, + $this->__field => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('id' => 'K', $this->__field => 'U'); + } + + /** + * 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); + } + + /** + * Save a mapping between a remote Yammer and local imported user. + * + * @param integer $user_id ID of the status in StatusNet + * @param integer $orig_id ID of the notice in Yammer + * + * @return Yammer_common new object for this value + */ + + protected static function doRecord($class, $field, $orig_id, $local_id) + { + $map = parent::staticGet($class, 'id', $orig_id); + + if (!empty($map)) { + return $map; + } + + $map = parent::staticGet($class, $field, $local_id); + + if (!empty($map)) { + return $map; + } + + common_debug("Mapping Yammer $field {$orig_id} to local $field {$local_id}"); + + $map = new $class(); + + $map->id = $orig_id; + $map->$field = $local_id; + $map->created = common_sql_now(); + + $map->insert(); + + return $map; + } +} diff --git a/plugins/YammerImport/classes/Yammer_group.php b/plugins/YammerImport/classes/Yammer_group.php new file mode 100644 index 0000000000..4e7a6ebd03 --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_group.php @@ -0,0 +1,79 @@ +<?php +/** + * Data class for remembering Yammer import mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class Yammer_group extends Yammer_common +{ + public $__table = 'yammer_group'; // table name + public $__field = 'group_id'; // field to map to + public $group_id; // int + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Yammer_group object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Yammer_group', $k, $v); + } + + /** + * Return schema definition to set this table up in onCheckSchema + */ + + static function schemaDef() + { + return self::doSchemaDef('group_id'); + } + + /** + * Save a mapping between a remote Yammer and local imported group. + * + * @param integer $orig_id ID of the notice in Yammer + * @param integer $group_id ID of the status in StatusNet + * + * @return Yammer_group new object for this value + */ + + static function record($orig_id, $group_id) + { + return self::doRecord('Yammer_group', 'group_id', $orig_id, $group_id); + } +} diff --git a/plugins/YammerImport/classes/Yammer_notice.php b/plugins/YammerImport/classes/Yammer_notice.php new file mode 100644 index 0000000000..0f63db6303 --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_notice.php @@ -0,0 +1,79 @@ +<?php +/** + * Data class for remembering Yammer import mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class Yammer_notice extends Yammer_common +{ + public $__table = 'yammer_notice'; // table name + public $__field = 'notice_id'; // field to map to + public $notice_id; // int + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Yammer_notice object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Yammer_notice', $k, $v); + } + + /** + * Return schema definition to set this table up in onCheckSchema + */ + + static function schemaDef() + { + return self::doSchemaDef('notice_id'); + } + + /** + * Save a mapping between a remote Yammer and local imported notice. + * + * @param integer $orig_id ID of the notice in Yammer + * @param integer $notice_id ID of the status in StatusNet + * + * @return Yammer_notice new object for this value + */ + + static function record($orig_id, $notice_id) + { + return self::doRecord('Yammer_notice', 'notice_id', $orig_id, $notice_id); + } +} diff --git a/plugins/YammerImport/classes/Yammer_notice_stub.php b/plugins/YammerImport/classes/Yammer_notice_stub.php new file mode 100644 index 0000000000..e10300c4c7 --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_notice_stub.php @@ -0,0 +1,183 @@ +<?php +/** + * Data class for remembering Yammer import mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Temporary storage for imported Yammer messages between fetching and saving + * as local notices. + * + * The Yammer API only allows us to page down from the most recent items; in + * order to start saving the oldest notices first, we have to pull them all + * down in reverse chronological order, then go back over them from oldest to + * newest and actually save them into our notice table. + */ + +class Yammer_notice_stub extends Memcached_DataObject +{ + public $__table = 'yammer_notice_stub'; // table name + public $id; // int primary_key not_null + public $json_data; // text + public $created; // datetime + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Yammer_notice_stub object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Yammer_notice_stub', $k, $v); + } + + /** + * Return schema definition to set this table up in onCheckSchema + */ + static function schemaDef() + { + return array(new ColumnDef('id', 'bigint', null, + false, 'PRI'), + new ColumnDef('json_data', 'text', null, + false), + new ColumnDef('created', 'datetime', null, + false)); + } + + /** + * 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, + 'json_data' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('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); + } + + /** + * Decode the stored data structure. + * + * @return mixed + */ + public function getData() + { + return json_decode($this->json_data, true); + } + + /** + * Save the native Yammer API representation of a message for the pending + * import. Since they come in in reverse chronological order, we need to + * record them all as stubs and then go through from the beginning and + * save them as native notices, or we'll lose ordering and threading + * data. + * + * @param integer $orig_id ID of the notice on Yammer + * @param array $data the message record fetched out of Yammer API returnd data + * + * @return Yammer_notice_stub new object for this value + */ + + static function record($orig_id, $data) + { + common_debug("Recording Yammer message stub {$orig_id} for pending import..."); + + $stub = new Yammer_notice_stub(); + + $stub->id = $orig_id; + $stub->json_data = json_encode($data); + $stub->created = common_sql_now(); + + $stub->insert(); + + return $stub; + } +} diff --git a/plugins/YammerImport/classes/Yammer_state.php b/plugins/YammerImport/classes/Yammer_state.php new file mode 100644 index 0000000000..88bd693bfd --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_state.php @@ -0,0 +1,156 @@ +<?php +/** + * Data class for remembering Yammer import state + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class Yammer_state extends Memcached_DataObject +{ + public $__table = 'yammer_state'; // table name + public $id; // int primary_key not_null + public $state; // import state key + public $last_error; // text of last-encountered error, if any + public $oauth_token; // actual oauth token! clear when import is done? + public $oauth_secret; // actual oauth secret! clear when import is done? + public $users_page; // last page of users we've fetched + public $groups_page; // last page of groups we've fetched + public $messages_oldest; // oldest message ID we've fetched + public $messages_newest; // newest message ID we've imported + public $created; // datetime + public $modified; // datetime + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Yammer_state object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Yammer_state', $k, $v); + } + + /** + * Return schema definition to set this table up in onCheckSchema + */ + static function schemaDef() + { + return array(new ColumnDef('id', 'int', null, + false, 'PRI'), + new ColumnDef('state', 'text'), + new ColumnDef('last_error', 'text'), + new ColumnDef('oauth_token', 'text'), + new ColumnDef('oauth_secret', 'text'), + new ColumnDef('users_page', 'int'), + new ColumnDef('groups_page', 'int'), + new ColumnDef('messages_oldest', 'bigint'), + new ColumnDef('messages_newest', 'bigint'), + new ColumnDef('created', 'datetime'), + new ColumnDef('modified', 'datetime')); + } + + /** + * 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, + 'state' => DB_DATAOBJECT_STR, + 'last_error' => DB_DATAOBJECT_STR, + 'oauth_token' => DB_DATAOBJECT_STR, + 'oauth_secret' => DB_DATAOBJECT_STR, + 'users_page' => DB_DATAOBJECT_INT, + 'groups_page' => DB_DATAOBJECT_INT, + 'messages_oldest' => DB_DATAOBJECT_INT, + 'messages_newest' => DB_DATAOBJECT_INT, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has, since it + * won't appear in StatusNet's own keys list. In most cases, this will + * simply reference your keyTypes() function. + * + * @return array list of key field names + */ + + function keys() + { + return array_keys($this->keyTypes()); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. This key information is used to store and clear + * cached data, so be sure to list any key that will be used for static + * lookups. + * + * @return array associative array of key definitions, field name to type: + * 'K' for primary key: for compound keys, add an entry for each component; + * 'U' for unique keys: compound keys are not well supported here. + */ + + function keyTypes() + { + return array('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); + } +} diff --git a/plugins/YammerImport/classes/Yammer_user.php b/plugins/YammerImport/classes/Yammer_user.php new file mode 100644 index 0000000000..f6fcd6c3cb --- /dev/null +++ b/plugins/YammerImport/classes/Yammer_user.php @@ -0,0 +1,79 @@ +<?php +/** + * Data class for remembering Yammer import mappings + * + * PHP version 5 + * + * @category Data + * @package StatusNet + * @author Brion Vibber <brion@status.net> + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class Yammer_user extends Yammer_common +{ + public $__table = 'yammer_user'; // table name + public $__field = 'user_id'; // field to map to + public $user_id; // int + + /** + * 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 + * @param mixed $v Value to lookup + * + * @return Yammer_user object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Yammer_user', $k, $v); + } + + /** + * Return schema definition to set this table up in onCheckSchema + */ + + static function schemaDef() + { + return self::doSchemaDef('user_id'); + } + + /** + * Save a mapping between a remote Yammer and local imported user. + * + * @param integer $orig_id ID of the notice in Yammer + * @param integer $user_id ID of the status in StatusNet + * + * @return Yammer_user new object for this value + */ + + static function record($orig_id, $user_id) + { + return self::doRecord('Yammer_user', 'user_id', $orig_id, $user_id); + } +} diff --git a/plugins/YammerImport/css/admin.css b/plugins/YammerImport/css/admin.css new file mode 100644 index 0000000000..80e0e038a2 --- /dev/null +++ b/plugins/YammerImport/css/admin.css @@ -0,0 +1,61 @@ +.yammer-import { + padding: 16px; +} + +.import-step { + padding: 8px; +} +.import-label { + font-weight: bold; +} +.import-status { + margin-left: 20px; + padding-left: 20px; +} + + +.waiting { + color: #888; +} + +.progress { + background-color: white; + border: solid 1px blue; + border-radius: 8px; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + -opera-border-radius: 8px; +} + +.progress .import-label { + color: blue; +} + +.progress .import-status { + background-image: url(icon_processing.gif); + background-repeat: no-repeat; +} + +.complete { + color: black; +} + +.complete .import-status { + background-image: url(done.png); + background-repeat: no-repeat; +} + +.import-step-done .import-status { + /* override */ + background: none !important; +} + +.magiclink { + margin-left: 40px; +} + +fieldset.import-error { + margin-top: 12px; + margin-bottom: 0px !important; + background-color: #fee !important; +} diff --git a/plugins/YammerImport/css/done.png b/plugins/YammerImport/css/done.png new file mode 100644 index 0000000000..1f3f411501 Binary files /dev/null and b/plugins/YammerImport/css/done.png differ diff --git a/plugins/YammerImport/css/icon_processing.gif b/plugins/YammerImport/css/icon_processing.gif new file mode 100644 index 0000000000..d0bce15423 Binary files /dev/null and b/plugins/YammerImport/css/icon_processing.gif differ diff --git a/plugins/YammerImport/lib/sn_yammerclient.php b/plugins/YammerImport/lib/sn_yammerclient.php new file mode 100644 index 0000000000..5da1cc5e7e --- /dev/null +++ b/plugins/YammerImport/lib/sn_yammerclient.php @@ -0,0 +1,246 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * Basic client class for Yammer's OAuth/JSON API. + * + * @package YammerImportPlugin + * @author Brion Vibber <brion@status.net> + */ +class SN_YammerClient +{ + protected $apiBase = "https://www.yammer.com"; + protected $consumerKey, $consumerSecret; + protected $token, $tokenSecret, $verifier; + + public function __construct($consumerKey, $consumerSecret, $token=null, $tokenSecret=null) + { + $this->consumerKey = $consumerKey; + $this->consumerSecret = $consumerSecret; + $this->token = $token; + $this->tokenSecret = $tokenSecret; + } + + /** + * Make an HTTP GET request with OAuth headers and return an HTTPResponse + * with the returned body and codes. + * + * @param string $url + * @return HTTPResponse + * + * @throws Exception on low-level network error + */ + protected function httpGet($url) + { + $headers = array('Authorization: ' . $this->authHeader()); + + $client = HTTPClient::start(); + return $client->get($url, $headers); + } + + /** + * Make an HTTP GET request with OAuth headers and return the response body + * on success. + * + * @param string $url + * @return string + * + * @throws Exception on low-level network or HTTP error + */ + public function fetchUrl($url) + { + $response = $this->httpGet($url); + if ($response->isOk()) { + return $response->getBody(); + } else { + throw new Exception("Yammer API returned HTTP code " . $response->getStatus() . ': ' . $response->getBody()); + } + } + + /** + * Make an HTTP hit with OAuth headers and return the response body on success. + * + * @param string $path URL chunk for the API method + * @param array $params + * @return string + * + * @throws Exception on low-level network or HTTP error + */ + protected function fetchApi($path, $params=array()) + { + $url = $this->apiBase . '/' . $path; + if ($params) { + $url .= '?' . http_build_query($params, null, '&'); + } + return $this->fetchUrl($url); + } + + /** + * Hit the main Yammer API point and decode returned JSON data. + * + * @param string $method + * @param array $params + * @return array from JSON data + * + * @throws Exception for HTTP error or bad JSON return + */ + public function api($method, $params=array()) + { + $body = $this->fetchApi("api/v1/$method.json", $params); + $data = json_decode($body, true); + if ($data === null) { + common_log(LOG_ERR, "Invalid JSON response from Yammer API: " . $body); + throw new Exception("Invalid JSON response from Yammer API"); + } + return $data; + } + + /** + * Build an Authorization header value from the keys we have available. + */ + protected function authHeader() + { + // token + // token_secret + $params = array('realm' => '', + 'oauth_consumer_key' => $this->consumerKey, + 'oauth_signature_method' => 'PLAINTEXT', + 'oauth_timestamp' => time(), + 'oauth_nonce' => time(), + 'oauth_version' => '1.0'); + if ($this->token) { + $params['oauth_token'] = $this->token; + } + if ($this->tokenSecret) { + $params['oauth_signature'] = $this->consumerSecret . '&' . $this->tokenSecret; + } else { + $params['oauth_signature'] = $this->consumerSecret . '&'; + } + if ($this->verifier) { + $params['oauth_verifier'] = $this->verifier; + } + $parts = array_map(array($this, 'authHeaderChunk'), array_keys($params), array_values($params)); + return 'OAuth ' . implode(', ', $parts); + } + + /** + * Encode a key-value pair for use in an authentication header. + * + * @param string $key + * @param string $val + * @return string + */ + protected function authHeaderChunk($key, $val) + { + return urlencode($key) . '="' . urlencode($val) . '"'; + } + + /** + * Ask the Yammer server for a request token, which can be passed on + * to authorizeUrl() for the user to start the authentication process. + * + * @return array of oauth return data; should contain nice things + */ + public function requestToken() + { + if ($this->token || $this->tokenSecret) { + throw new Exception("Requesting a token, but already set up with a token"); + } + $data = $this->fetchApi('oauth/request_token'); + $arr = array(); + parse_str($data, $arr); + return $arr; + } + + /** + * Get a final access token from the verifier/PIN code provided to + * the user from Yammer's auth pages. + * + * @return array of oauth return data; should contain nice things + */ + public function accessToken($verifier) + { + $this->verifier = $verifier; + $data = $this->fetchApi('oauth/access_token'); + $this->verifier = null; + $arr = array(); + parse_str($data, $arr); + return $arr; + } + + /** + * Give the URL to send users to to authorize a new app setup. + * + * @param string $token as returned from accessToken() + * @return string URL + */ + public function authorizeUrl($token) + { + return $this->apiBase . '/oauth/authorize?oauth_token=' . urlencode($token); + } + + /** + * High-level API hit: fetch all messages in the network (up to 20 at a time). + * Return data is the full JSON array returned, including meta and references + * sections. + * + * The matching messages themselves will be in the 'messages' item within. + * + * @param array $options optional set of additional params for the request. + * @return array + * + * @throws Exception on low-level or HTTP error + */ + public function messages($params=array()) + { + return $this->api('messages', $params); + } + + /** + * High-level API hit: fetch all users in the network (up to 50 at a time). + * Return data is the full JSON array returned, listing user items. + * + * The matching messages themselves will be in the 'users' item within. + * + * @param array $options optional set of additional params for the request. + * @return array of JSON-sourced user data arrays + * + * @throws Exception on low-level or HTTP error + */ + public function users($params=array()) + { + return $this->api('users', $params); + } + + /** + * High-level API hit: fetch all groups in the network (up to 20 at a time). + * Return data is the full JSON array returned, listing user items. + * + * The matching messages themselves will be in the 'users' item within. + * + * @param array $options optional set of additional params for the request. + * @return array of JSON-sourced user data arrays + * + * @throws Exception on low-level or HTTP error + */ + public function groups($params=array()) + { + return $this->api('groups', $params); + } +} diff --git a/plugins/YammerImport/lib/yammerapikeyform.php b/plugins/YammerImport/lib/yammerapikeyform.php new file mode 100644 index 0000000000..b2acec4ede --- /dev/null +++ b/plugins/YammerImport/lib/yammerapikeyform.php @@ -0,0 +1,112 @@ +<?php + +class YammerApikeyForm extends Form +{ + private $runner; + + function __construct($out) + { + parent::__construct($out); + $this->runner = $runner; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'yammer-apikey-form'; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_yammer_apikey form_settings'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('yammeradminpanel'); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Yammer API registration')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->hidden('subaction', 'apikey'); + + $this->out->elementStart('fieldset'); + + $this->out->elementStart('p'); + $this->out->text(_m('Before we can connect to your Yammer network, ' . + 'you will need to register the importer as an ' . + 'application authorized to pull data on your behalf. ' . + 'This registration will work only for your own network. ' . + 'Follow this link to register the app at Yammer; ' . + 'you will be prompted to log in if necessary:')); + $this->out->elementEnd('p'); + + $this->out->elementStart('p', array('class' => 'magiclink')); + $this->out->element('a', + array('href' => 'https://www.yammer.com/client_applications/new', + 'target' => '_blank'), + _m('Open Yammer application registration form')); + $this->out->elementEnd('p'); + + $this->out->element('p', array(), _m('Copy the consumer key and secret you are given into the form below:')); + + $this->out->elementStart('ul', array('class' => 'form_data')); + $this->out->elementStart('li'); + $this->out->input('consumer_key', _m('Consumer key:'), common_config('yammer', 'consumer_key')); + $this->out->elementEnd('li'); + $this->out->elementStart('li'); + $this->out->input('consumer_secret', _m('Consumer secret:'), common_config('yammer', 'consumer_secret')); + $this->out->elementEnd('li'); + $this->out->elementEnd('ul'); + + $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save these consumer keys')); + + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + } +} diff --git a/plugins/YammerImport/lib/yammerauthinitform.php b/plugins/YammerImport/lib/yammerauthinitform.php new file mode 100644 index 0000000000..9f48fd82a5 --- /dev/null +++ b/plugins/YammerImport/lib/yammerauthinitform.php @@ -0,0 +1,76 @@ +<?php + +class YammerAuthInitForm extends Form +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'yammer-auth-init-form'; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_yammer_auth_init form_settings'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('yammeradminpanel'); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Connect to Yammer')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->hidden('subaction', 'authinit'); + + $this->out->elementStart('fieldset'); + $this->out->submit('submit', _m('Start authentication'), 'submit', null, _m('Request authorization to connect to Yammer account')); + $this->out->submit('change-apikey', _m('Change API key')); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + } +} diff --git a/plugins/YammerImport/lib/yammerauthverifyform.php b/plugins/YammerImport/lib/yammerauthverifyform.php new file mode 100644 index 0000000000..e119be96f7 --- /dev/null +++ b/plugins/YammerImport/lib/yammerauthverifyform.php @@ -0,0 +1,111 @@ +<?php + +class YammerAuthVerifyForm extends Form +{ + private $runner; + + function __construct($out, YammerRunner $runner) + { + parent::__construct($out); + $this->runner = $runner; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'yammer-auth-verify-form'; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_yammer_auth_verify form_settings'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('yammeradminpanel'); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Connect to Yammer')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->hidden('subaction', 'authverify'); + + $this->out->elementStart('fieldset'); + + $this->out->elementStart('p'); + $this->out->text(_m('Follow this link to confirm authorization at Yammer; you will be prompted to log in if necessary:')); + $this->out->elementEnd('p'); + + // iframe would be nice to avoid leaving -- since they don't seem to have callback url O_O + /* + $this->out->element('iframe', array('id' => 'yammer-oauth', + 'src' => $this->runner->getAuthUrl())); + */ + // yeah, it ignores the callback_url + // soo... crappy link. :( + + $this->out->elementStart('p', array('class' => 'magiclink')); + $this->out->element('a', + array('href' => $this->runner->getAuthUrl(), + 'target' => '_blank'), + _m('Open Yammer authentication window')); + $this->out->elementEnd('p'); + + $this->out->element('p', array(), _m('Copy the verification code you are given below:')); + + $this->out->elementStart('ul', array('class' => 'form_data')); + $this->out->elementStart('li'); + $this->out->input('verify_token', _m('Verification code:')); + $this->out->elementEnd('li'); + $this->out->elementEnd('ul'); + + $this->out->submit('submit', _m('Continue'), 'submit', null, _m('Save code and begin import')); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + } +} diff --git a/plugins/YammerImport/lib/yammerimporter.php b/plugins/YammerImport/lib/yammerimporter.php new file mode 100644 index 0000000000..93bc96d529 --- /dev/null +++ b/plugins/YammerImport/lib/yammerimporter.php @@ -0,0 +1,496 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +/** + * Basic client class for Yammer's OAuth/JSON API. + * + * @package YammerImportPlugin + * @author Brion Vibber <brion@status.net> + */ +class YammerImporter +{ + protected $client; + + function __construct(SN_YammerClient $client) + { + $this->client = $client; + } + + /** + * Load or create an imported profile from Yammer data. + * + * @param object $item loaded JSON data for Yammer importer + * @return Profile + */ + function importUser($item) + { + $data = $this->prepUser($item); + $nickname = $data['options']['nickname']; + + $profileId = $this->findImportedUser($data['orig_id']); + if ($profileId) { + return Profile::staticGet('id', $profileId); + } else { + $user = User::staticGet('nickname', $nickname); + if ($user) { + common_log(LOG_WARN, "Copying Yammer profile info onto existing user $nickname"); + $profile = $user->getProfile(); + $this->savePropertiesOn($profile, $data['options'], + array('fullname', 'homepage', 'bio', 'location')); + } else { + $user = User::register($data['options']); + $profile = $user->getProfile(); + } + if ($data['avatar']) { + try { + $this->saveAvatar($data['avatar'], $profile); + } catch (Exception $e) { + common_log(LOG_ERR, "Error importing Yammer avatar: " . $e->getMessage()); + } + } + $this->recordImportedUser($data['orig_id'], $profile->id); + return $profile; + } + } + + /** + * Load or create an imported group from Yammer data. + * + * @param object $item loaded JSON data for Yammer importer + * @return User_group + */ + function importGroup($item) + { + $data = $this->prepGroup($item); + $nickname = $data['options']['nickname']; + + $groupId = $this->findImportedGroup($data['orig_id']); + if ($groupId) { + return User_group::staticGet('id', $groupId); + } else { + $local = Local_group::staticGet('nickname', $nickname); + if ($local) { + common_log(LOG_WARN, "Copying Yammer group info onto existing group $nickname"); + $group = User_group::staticGet('id', $local->group_id); + $this->savePropertiesOn($group, $data['options'], + array('fullname', 'description')); + } else { + $group = User_group::register($data['options']); + } + if ($data['avatar']) { + try { + $this->saveAvatar($data['avatar'], $group); + } catch (Exception $e) { + common_log(LOG_ERR, "Error importing Yammer avatar: " . $e->getMessage()); + } + } + $this->recordImportedGroup($data['orig_id'], $group->id); + return $group; + } + } + + private function savePropertiesOn($target, $options, $propList) + { + $changed = 0; + $orig = clone($target); + foreach ($propList as $prop) { + if (!empty($options[$prop]) && $target->$prop != $options[$prop]) { + $target->$prop = $options[$prop]; + $changed++; + } + } + $target->update($orig); + } + + /** + * Load or create an imported notice from Yammer data. + * + * @param object $item loaded JSON data for Yammer importer + * @return Notice + */ + function importNotice($item) + { + $data = $this->prepNotice($item); + + $noticeId = $this->findImportedNotice($data['orig_id']); + if ($noticeId) { + return Notice::staticGet('id', $noticeId); + } else { + $notice = Notice::staticGet('uri', $data['options']['uri']); + $content = $data['content']; + $user = User::staticGet($data['profile']); + + // Fetch file attachments and add the URLs... + $uploads = array(); + foreach ($data['attachments'] as $url) { + try { + $upload = $this->saveAttachment($url, $user); + $content .= ' ' . $upload->shortUrl(); + $uploads[] = $upload; + } catch (Exception $e) { + common_log(LOG_ERR, "Error importing Yammer attachment: " . $e->getMessage()); + } + } + + // Here's the meat! Actually save the dang ol' notice. + $notice = Notice::saveNew($user->id, + $content, + $data['source'], + $data['options']); + + // Save "likes" as favorites... + foreach ($data['faves'] as $nickname) { + $user = User::staticGet('nickname', $nickname); + if ($user) { + Fave::addNew($user->getProfile(), $notice); + } + } + + // And finally attach the upload records... + foreach ($uploads as $upload) { + $upload->attachToNotice($notice); + } + $this->recordImportedNotice($data['orig_id'], $notice->id); + return $notice; + } + } + + /** + * Pull relevant info out of a Yammer data record for a user import. + * + * @param array $item + * @return array + */ + function prepUser($item) + { + if ($item['type'] != 'user') { + throw new Exception('Wrong item type sent to Yammer user import processing.'); + } + + $origId = $item['id']; + $origUrl = $item['url']; + + // @fixme check username rules? + + $options['nickname'] = $item['name']; + $options['fullname'] = trim($item['full_name']); + + // Avatar... this will be the "_small" variant. + // Remove that (pre-extension) suffix to get the orig-size image. + $avatar = $item['mugshot_url']; + + // The following info is only available in full data, not in the reference version. + + // There can be extensive contact info, but for now we'll only pull the primary email. + if (isset($item['contact'])) { + foreach ($item['contact']['email_addresses'] as $addr) { + if ($addr['type'] == 'primary') { + $options['email'] = $addr['address']; + $options['email_confirmed'] = true; + break; + } + } + } + + // There can be multiple external URLs; for now pull the first one as home page. + if (isset($item['external_urls'])) { + foreach ($item['external_urls'] as $url) { + if (common_valid_http_url($url)) { + $options['homepage'] = $url; + break; + } + } + } + + // Combine a few bits into the bio... + $bio = array(); + if (!empty($item['job_title'])) { + $bio[] = $item['job_title']; + } + if (!empty($item['summary'])) { + $bio[] = $item['summary']; + } + if (!empty($item['expertise'])) { + $bio[] = _m('Expertise:') . ' ' . $item['expertise']; + } + $options['bio'] = implode("\n\n", $bio); + + // Pull raw location string, may be lookupable + if (!empty($item['location'])) { + $options['location'] = $item['location']; + } + + // Timezone is in format like 'Pacific Time (US & Canada)' + // We need to convert that to a zone id. :P + // @fixme timezone not yet supported at registration time :) + if (!empty($item['timezone'])) { + $tz = $this->timezone($item['timezone']); + if ($tz) { + $options['timezone'] = $tz; + } + } + + return array('orig_id' => $origId, + 'orig_url' => $origUrl, + 'avatar' => $avatar, + 'options' => $options); + + } + + /** + * Pull relevant info out of a Yammer data record for a group import. + * + * @param array $item + * @return array + */ + function prepGroup($item) + { + if ($item['type'] != 'group') { + throw new Exception('Wrong item type sent to Yammer group import processing.'); + } + + $origId = $item['id']; + $origUrl = $item['url']; + + $privacy = $item['privacy']; // Warning! only public groups in SN so far + + $options['nickname'] = $item['name']; + $options['fullname'] = $item['full_name']; + $options['description'] = $item['description']; + $options['created'] = $this->timestamp($item['created_at']); + + $avatar = $item['mugshot_url']; // as with user profiles... + + + $options['mainpage'] = common_local_url('showgroup', + array('nickname' => $options['nickname'])); + + // Set some default vals or User_group::register will whine + $options['homepage'] = ''; + $options['location'] = ''; + $options['aliases'] = array(); + // @fixme what about admin user for the group? + + $options['local'] = true; + return array('orig_id' => $origId, + 'orig_url' => $origUrl, + 'options' => $options, + 'avatar' => $avatar); + } + + /** + * Pull relevant info out of a Yammer data record for a notice import. + * + * @param array $item + * @return array + */ + function prepNotice($item) + { + if (isset($item['type']) && $item['type'] != 'message') { + throw new Exception('Wrong item type sent to Yammer message import processing.'); + } + + $origId = $item['id']; + $origUrl = $item['url']; + + $profile = $this->findImportedUser($item['sender_id']); + $content = $item['body']['plain']; + $source = 'yammer'; + $options = array(); + + if ($item['replied_to_id']) { + $replyTo = $this->findImportedNotice($item['replied_to_id']); + if ($replyTo) { + $options['reply_to'] = $replyTo; + } + } + $options['created'] = $this->timestamp($item['created_at']); + + if (!empty($item['group_id'])) { + $groupId = $this->findImportedGroup($item['group_id']); + if ($groupId) { + $options['groups'] = array($groupId); + + // @fixme if we see a group link inline, don't add this? + $group = User_group::staticGet('id', $groupId); + if ($group) { + $content .= ' !' . $group->nickname; + } + } + } + + $faves = array(); + foreach ($item['liked_by']['names'] as $liker) { + // "permalink" is the username. wtf? + $faves[] = $liker['permalink']; + } + + $attachments = array(); + foreach ($item['attachments'] as $attach) { + if ($attach['type'] == 'image' || $attach['type'] == 'file') { + $attachments[] = $attach[$attach['type']]['url']; + } else { + common_log(LOG_WARNING, "Unrecognized Yammer attachment type: " . $attach['type']); + } + } + + return array('orig_id' => $origId, + 'orig_url' => $origUrl, + 'profile' => $profile, + 'content' => $content, + 'source' => $source, + 'options' => $options, + 'faves' => $faves, + 'attachments' => $attachments); + } + + private function findImportedUser($origId) + { + $map = Yammer_user::staticGet('id', $origId); + return $map ? $map->user_id : null; + } + + private function findImportedGroup($origId) + { + $map = Yammer_group::staticGet('id', $origId); + return $map ? $map->group_id : null; + } + + private function findImportedNotice($origId) + { + $map = Yammer_notice::staticGet('id', $origId); + return $map ? $map->notice_id : null; + } + + private function recordImportedUser($origId, $userId) + { + Yammer_user::record($origId, $userId); + } + + private function recordImportedGroup($origId, $groupId) + { + Yammer_group::record($origId, $groupId); + } + + private function recordImportedNotice($origId, $noticeId) + { + Yammer_notice::record($origId, $noticeId); + } + + /** + * Normalize timestamp format. + * @param string $ts + * @return string + */ + private function timestamp($ts) + { + return common_sql_date(strtotime($ts)); + } + + private function timezone($tz) + { + // Blaaaaaarf! + $known = array('Pacific Time (US & Canada)' => 'America/Los_Angeles', + 'Eastern Time (US & Canada)' => 'America/New_York'); + if (array_key_exists($tz, $known)) { + return $known[$tz]; + } else { + return false; + } + } + + /** + * Download and update given avatar image + * + * @param string $url + * @param mixed $dest either a Profile or User_group object + * @throws Exception in various failure cases + */ + private function saveAvatar($url, $dest) + { + // Yammer API data mostly gives us the small variant. + // Try hitting the source image if we can! + // @fixme no guarantee of this URL scheme I think. + $url = preg_replace('/_small(\..*?)$/', '$1', $url); + + if (!common_valid_http_url($url)) { + throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url)); + } + + // @fixme this should be better encapsulated + // ripped from oauthstore.php (for old OMB client) + $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar'); + try { + if (!copy($url, $temp_filename)) { + throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url)); + } + + $id = $dest->id; + // @fixme should we be using different ids? + $imagefile = new ImageFile($id, $temp_filename); + $filename = Avatar::filename($id, + image_type_to_extension($imagefile->type), + null, + common_timestamp()); + rename($temp_filename, Avatar::path($filename)); + } catch (Exception $e) { + unlink($temp_filename); + throw $e; + } + // @fixme hardcoded chmod is lame, but seems to be necessary to + // keep from accidentally saving images from command-line (queues) + // that can't be read from web server, which causes hard-to-notice + // problems later on: + // + // http://status.net/open-source/issues/2663 + chmod(Avatar::path($filename), 0644); + + $dest->setOriginal($filename); + } + + /** + * Fetch an attachment from Yammer and save it into our system. + * Unlike avatars, the attachment URLs are guarded by authentication, + * so we need to run the HTTP hit through our OAuth API client. + * + * @param string $url + * @param User $user + * @return MediaFile + * + * @throws Exception on low-level network or HTTP error + */ + private function saveAttachment($url, User $user) + { + // Fetch the attachment... + // WARNING: file must fit in memory here :( + $body = $this->client->fetchUrl($url); + + // Save to a temporary file and shove it into our file-attachment space... + $temp = tmpfile(); + fwrite($temp, $body); + try { + $upload = MediaFile::fromFileHandle($temp, $user); + fclose($temp); + return $upload; + } catch (Exception $e) { + fclose($temp); + throw $e; + } + } +} diff --git a/plugins/YammerImport/lib/yammerprogressform.php b/plugins/YammerImport/lib/yammerprogressform.php new file mode 100644 index 0000000000..9bf8332261 --- /dev/null +++ b/plugins/YammerImport/lib/yammerprogressform.php @@ -0,0 +1,168 @@ +<?php + +class YammerProgressForm extends Form +{ + /** + * ID of the form + * + * @return string ID of the form + */ + function id() + { + return 'yammer-progress-form'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + $classes = array('form_settings'); + $runner = YammerRunner::init(); + if ($runner->lastError()) { + $classes[] = 'import-error'; + } else if ($runner->state() == 'done') { + $classes[] = 'import-done'; + } else { + $classes[] = 'import-progress'; + } + return implode(' ', $classes); + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('yammeradminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $this->out->hidden('subaction', 'progress'); + + $runner = YammerRunner::init(); + + $error = $runner->lastError(); + $userCount = $runner->countUsers(); + $groupCount = $runner->countGroups(); + $fetchedCount = $runner->countFetchedNotices(); + $savedCount = $runner->countSavedNotices(); + + $labels = array( + 'init' => array( + 'label' => _m("Initialize"), + 'progress' => _m('No import running'), + 'complete' => _m('Initiated Yammer server connection...'), + ), + 'requesting-auth' => array( + 'label' => _m('Connect to Yammer'), + 'progress' => _m('Awaiting authorization...'), + 'complete' => _m('Connected.'), + ), + 'import-users' => array( + 'label' => _m('Import user accounts'), + 'progress' => sprintf(_m("Importing %d user...", "Importing %d users...", $userCount), $userCount), + 'complete' => sprintf(_m("Imported %d user.", "Imported %d users.", $userCount), $userCount), + ), + 'import-groups' => array( + 'label' => _m('Import user groups'), + 'progress' => sprintf(_m("Importing %d group...", "Importing %d groups...", $groupCount), $groupCount), + 'complete' => sprintf(_m("Imported %d group.", "Imported %d groups.", $groupCount), $groupCount), + ), + 'fetch-messages' => array( + 'label' => _m('Prepare public notices for import'), + 'progress' => sprintf(_m("Preparing %d notice...", "Preparing %d notices...", $fetchedCount), $fetchedCount), + 'complete' => sprintf(_m("Prepared %d notice.", "Prepared %d notices.", $fetchedCount), $fetchedCount), + ), + 'save-messages' => array( + 'label' => _m('Import public notices'), + 'progress' => sprintf(_m("Importing %d notice...", "Importing %d notices...", $savedCount), $savedCount), + 'complete' => sprintf(_m("Imported %d notice.", "Imported %d notices.", $savedCount), $savedCount), + ), + 'done' => array( + 'label' => _m('Done'), + 'progress' => sprintf(_m("Import is complete!")), + 'complete' => sprintf(_m("Import is complete!")), + ) + ); + $steps = array_keys($labels); + $currentStep = array_search($runner->state(), $steps); + + $classes = array('yammer-import'); + if ($error) { + $classes[] = 'yammer-error'; + } else { + $classes[] = 'yammer-running'; + } + $this->out->elementStart('fieldset', array('class' => implode(' ', $classes))); + $this->out->element('legend', array(), _m('Import status')); + foreach ($steps as $step => $state) { + if ($state == 'init') { + // Don't show 'init', it's boring. + continue; + } + if ($step < $currentStep) { + // This step is done + $this->progressBar($state, + 'complete', + $labels[$state]['label'], + $labels[$state]['complete']); + } else if ($step == $currentStep) { + // This step is in progress + $this->progressBar($state, + 'progress', + $labels[$state]['label'], + $labels[$state]['progress'], + $error); + } else { + // This step has not yet been done. + $this->progressBar($state, + 'waiting', + $labels[$state]['label'], + _m("Waiting...")); + } + } + $this->out->elementEnd('fieldset'); + } + + private function progressBar($state, $class, $label, $status, $error=null) + { + // @fixme prettify ;) + $this->out->elementStart('div', array('class' => "import-step import-step-$state $class")); + $this->out->element('div', array('class' => 'import-label'), $label); + $this->out->element('div', array('class' => 'import-status'), $status); + if ($class == 'progress') { + if ($state == 'done') { + $this->out->submit('abort-import', _m('Reset import state')); + } else { + if ($error) { + $this->errorBox($error); + } else { + $this->out->submit('pause-import', _m('Pause import')); + } + } + } + $this->out->elementEnd('div'); + } + + private function errorBox($msg) + { + $errline = sprintf(_m('Encountered error "%s"'), $msg); + $this->out->elementStart('fieldset', array('class' => 'import-error')); + $this->out->element('legend', array(), _m('Paused')); + $this->out->element('p', array(), $errline); + $this->out->submit('continue-import', _m('Continue')); + $this->out->submit('abort-import', _m('Abort import')); + $this->out->elementEnd('fieldset'); + } +} diff --git a/plugins/YammerImport/lib/yammerqueuehandler.php b/plugins/YammerImport/lib/yammerqueuehandler.php new file mode 100644 index 0000000000..0c4e8aec1d --- /dev/null +++ b/plugins/YammerImport/lib/yammerqueuehandler.php @@ -0,0 +1,61 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Queue handler for bumping the next chunk of Yammer import activity! + * + * @package YammerImportPlugin + * @author Brion Vibber <brion@status.net> + */ +class YammerQueueHandler extends QueueHandler +{ + function transport() + { + return 'yammer'; + } + + function handle($notice) + { + $runner = YammerRunner::init(); + if ($runner->hasWork()) { + try { + if ($runner->iterate()) { + if ($runner->hasWork()) { + // More to do? Shove us back on the queue... + $runner->startBackgroundImport(); + } + } + } catch (Exception $e) { + try { + $runner->recordError($e->getMessage()); + } catch (Exception $f) { + common_log(LOG_ERR, "Error while recording error in Yammer background import: " . $e->getMessage() . " " . $f->getMessage()); + } + } + } else { + // We're done! + common_log(LOG_INFO, "Yammer import has no work to do at this time; discarding."); + } + return true; + } +} diff --git a/plugins/YammerImport/lib/yammerrunner.php b/plugins/YammerImport/lib/yammerrunner.php new file mode 100644 index 0000000000..3e53f3361b --- /dev/null +++ b/plugins/YammerImport/lib/yammerrunner.php @@ -0,0 +1,438 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * State machine for running through Yammer import. + * + * @package YammerImportPlugin + * @author Brion Vibber <brion@status.net> + */ +class YammerRunner +{ + private $state; + private $client; + private $importer; + + /** + * Normalize our singleton state and give us a YammerRunner object to play with! + * + * @return YammerRunner + */ + public static function init() + { + $state = Yammer_state::staticGet('id', 1); + if (!$state) { + $state = self::initState(); + } + return new YammerRunner($state); + } + + private static function initState() + { + $state = new Yammer_state(); + $state->id = 1; + $state->state = 'init'; + $state->created = common_sql_now(); + $state->modified = common_sql_now(); + $state->insert(); + return $state; + } + + private function __construct($state) + { + $this->state = $state; + + $this->client = new SN_YammerClient( + common_config('yammer', 'consumer_key'), + common_config('yammer', 'consumer_secret'), + $this->state->oauth_token, + $this->state->oauth_secret); + + $this->importer = new YammerImporter($this->client); + } + + /** + * Check which state we're in + * + * @return string + */ + public function state() + { + return $this->state->state; + } + + /** + * Is the import done, finished, complete, finito? + * + * @return boolean + */ + public function isDone() + { + $workStates = array('import-users', 'import-groups', 'fetch-messages', 'save-messages'); + return ($this->state() == 'done'); + } + + /** + * Check if we have work to do in iterate(). + * + * @return boolean + */ + public function hasWork() + { + $workStates = array('import-users', 'import-groups', 'fetch-messages', 'save-messages'); + return in_array($this->state(), $workStates); + } + + /** + * Blow away any current state! + */ + public function reset() + { + $this->state->delete(); + $this->state = self::initState(); + } + + /** + * Start the authentication process! If all goes well, we'll get back a URL. + * Have the user visit that URL, log in on Yammer and verify the importer's + * permissions. They'll get back a verification code, which needs to be passed + * on to saveAuthToken(). + * + * @return string URL + */ + public function requestAuth() + { + if ($this->state->state != 'init') { + throw new ServerException("Cannot request Yammer auth; already there!"); + } + + $data = $this->client->requestToken(); + + $old = clone($this->state); + $this->state->state = 'requesting-auth'; + $this->state->oauth_token = $data['oauth_token']; + $this->state->oauth_secret = $data['oauth_token_secret']; + $this->state->modified = common_sql_now(); + $this->state->update($old); + + return $this->getAuthUrl(); + } + + /** + * When already in requesting-auth state, grab the URL to send the user to + * to complete OAuth setup. + * + * @return string URL + */ + function getAuthUrl() + { + if ($this->state() == 'requesting-auth') { + return $this->client->authorizeUrl($this->state->oauth_token); + } else { + throw new ServerException('Cannot get Yammer auth URL when not in requesting-auth state!'); + } + } + + /** + * Now that the user's given us this verification code from Yammer, we can + * request a final OAuth token/secret pair which we can use to access the + * API. + * + * After success here, we'll be ready to move on and run through iterate() + * until the import is complete. + * + * @param string $verifier + * @return boolean success + */ + public function saveAuthToken($verifier) + { + if ($this->state->state != 'requesting-auth') { + throw new ServerException("Cannot save auth token in Yammer import state {$this->state->state}"); + } + + $data = $this->client->accessToken($verifier); + + $old = clone($this->state); + $this->state->state = 'import-users'; + $this->state->oauth_token = $data['oauth_token']; + $this->state->oauth_secret = $data['oauth_token_secret']; + $this->state->modified = common_sql_now(); + $this->state->update($old); + + return true; + } + + /** + * Once authentication is complete, we need to call iterate() a bunch of times + * until state() returns 'done'. + * + * @return boolean success + */ + public function iterate() + { + switch($this->state()) + { + case 'init': + case 'requesting-auth': + // Neither of these should reach our background state! + common_log(LOG_ERR, "Non-background YammerImport state '$state->state' during import run!"); + return false; + case 'import-users': + return $this->iterateUsers(); + case 'import-groups': + return $this->iterateGroups(); + case 'fetch-messages': + return $this->iterateFetchMessages(); + case 'save-messages': + return $this->iterateSaveMessages(); + default: + common_log(LOG_ERR, "Invalid YammerImport state '$state->state' during import run!"); + return false; + } + } + + /** + * Trundle through one 'page' return of up to 50 user accounts retrieved + * from the Yammer API, importing them as we go. + * + * When we run out of users, move on to groups. + * + * @return boolean success + */ + private function iterateUsers() + { + $old = clone($this->state); + + $page = intval($this->state->users_page) + 1; + $data = $this->client->users(array('page' => $page)); + + if (count($data) == 0) { + common_log(LOG_INFO, "Finished importing Yammer users; moving on to groups."); + $this->state->state = 'import-groups'; + } else { + foreach ($data as $item) { + $user = $this->importer->importUser($item); + common_log(LOG_INFO, "Imported Yammer user " . $item['id'] . " as $user->nickname ($user->id)"); + } + $this->state->users_page = $page; + } + $this->state->modified = common_sql_now(); + $this->state->update($old); + return true; + } + + /** + * Trundle through one 'page' return of up to 20 user groups retrieved + * from the Yammer API, importing them as we go. + * + * When we run out of groups, move on to messages. + * + * @return boolean success + */ + private function iterateGroups() + { + $old = clone($this->state); + + $page = intval($this->state->groups_page) + 1; + $data = $this->client->groups(array('page' => $page)); + + if (count($data) == 0) { + common_log(LOG_INFO, "Finished importing Yammer groups; moving on to messages."); + $this->state->state = 'fetch-messages'; + } else { + foreach ($data as $item) { + $group = $this->importer->importGroup($item); + common_log(LOG_INFO, "Imported Yammer group " . $item['id'] . " as $group->nickname ($group->id)"); + } + $this->state->groups_page = $page; + } + $this->state->modified = common_sql_now(); + $this->state->update($old); + return true; + } + + /** + * Trundle through one 'page' return of up to 20 public messages retrieved + * from the Yammer API, saving them to our stub table for future import in + * correct chronological order. + * + * When we run out of messages to fetch, move on to saving the messages. + * + * @return boolean success + */ + private function iterateFetchMessages() + { + $old = clone($this->state); + + $oldest = intval($this->state->messages_oldest); + if ($oldest) { + $params = array('older_than' => $oldest); + } else { + $params = array(); + } + $data = $this->client->messages($params); + $messages = $data['messages']; + + if (count($messages) == 0) { + common_log(LOG_INFO, "Finished fetching Yammer messages; moving on to save messages."); + $this->state->state = 'save-messages'; + } else { + foreach ($messages as $item) { + $stub = Yammer_notice_stub::staticGet($item['id']); + if (!$stub) { + Yammer_notice_stub::record($item['id'], $item); + } + $oldest = $item['id']; + } + $this->state->messages_oldest = $oldest; + } + $this->state->modified = common_sql_now(); + $this->state->update($old); + return true; + } + + private function iterateSaveMessages() + { + $old = clone($this->state); + + $newest = intval($this->state->messages_newest); + + $stub = new Yammer_notice_stub(); + if ($newest) { + $stub->whereAdd('id > ' . $newest); + } + $stub->limit(20); + $stub->orderBy('id'); + $stub->find(); + + if ($stub->N == 0) { + common_log(LOG_INFO, "Finished saving Yammer messages; import complete!"); + $this->state->state = 'done'; + } else { + while ($stub->fetch()) { + $item = $stub->getData(); + $notice = $this->importer->importNotice($item); + common_log(LOG_INFO, "Imported Yammer notice " . $item['id'] . " as $notice->id"); + $newest = $item['id']; + } + $this->state->messages_newest = $newest; + } + $this->state->modified = common_sql_now(); + $this->state->update($old); + return true; + } + + /** + * Count the number of Yammer users we've mapped into our system! + * + * @return int + */ + public function countUsers() + { + $map = new Yammer_user(); + return $map->count(); + } + + + /** + * Count the number of Yammer groups we've mapped into our system! + * + * @return int + */ + public function countGroups() + { + $map = new Yammer_group(); + return $map->count(); + } + + + /** + * Count the number of Yammer notices we've pulled down for pending import... + * + * @return int + */ + public function countFetchedNotices() + { + $map = new Yammer_notice_stub(); + return $map->count(); + } + + + /** + * Count the number of Yammer notices we've mapped into our system! + * + * @return int + */ + public function countSavedNotices() + { + $map = new Yammer_notice(); + return $map->count(); + } + + /** + * Start running import work in the background queues... + */ + public function startBackgroundImport() + { + $qm = QueueManager::get(); + $qm->enqueue('YammerImport', 'yammer'); + } + + /** + * Record an error condition from a background run, which we should + * display in progress state for the admin. + * + * @param string $msg + */ + public function recordError($msg) + { + // HACK HACK HACK + try { + $temp = new Yammer_state(); + $temp->query('ROLLBACK'); + } catch (Exception $e) { + common_log(LOG_ERR, 'Exception while confirming rollback while recording error: ' . $e->getMessage()); + } + $old = clone($this->state); + $this->state->last_error = $msg; + $this->state->update($old); + } + + /** + * Clear the error state. + */ + public function clearError() + { + $this->recordError(''); + } + + /** + * Get the last recorded background error message, if any. + * + * @return string + */ + public function lastError() + { + return $this->state->last_error; + } +} diff --git a/plugins/YammerImport/locale/YammerImport.pot b/plugins/YammerImport/locale/YammerImport.pot new file mode 100644 index 0000000000..7e84b7614a --- /dev/null +++ b/plugins/YammerImport/locale/YammerImport.pot @@ -0,0 +1,264 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "" + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "" + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "" + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "" + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "" diff --git a/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..0cd1f4b875 --- /dev/null +++ b/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po @@ -0,0 +1,282 @@ +# Translation of StatusNet - YammerImport to Breton (Brezhoneg) +# Expored from translatewiki.net +# +# Author: Fulup +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:24+0000\n" +"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Enporzh Yammer" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Kevreañ da Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Direizh eo URL an avatar %s." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Dibosupl eo adtapout an avatar adalek %s." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "Enrolladenn an API Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Kent gallout kevreañ ouzh ho rouedad Yammer e rankit enrollañ an arload " +"enporzhiañ evel un arload aotreet da zastum roadennoù en hoc'h anv. Ne " +"dalvezo an enrolladenn-se nemet evit ho rouedad deoc'h. Heuilhit al liamm-" +"mañ evit enrollañ an arload war Yammer ; mar bez ret e vo goulennet ouzhoc'h " +"kevreañ." + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Digeriñ furmskrid enrollañ Yammer" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Eilit er furmskrid a-is an alc'hwez hag ar sekred implijer bet roet deoc'h :" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Alc'hwez implijer :" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Sekred an implijer :" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Enrollañ" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Enrollañ an alc'hwezioù implijer-mañ" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Heuliañ al liamm-mañ da gadarnaat an aotre war Yammer ; mar bez ret e vo " +"goulennet ouzhoc'h kevreañ :" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Digeriñ prenestr emzisklêriañ Yammer" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Eilit a-is ar c'hod gwiriañ bet roet deoc'h :" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Kod gwiriañ :" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Kenderc'hel" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Enrollañ ar c'hod ha kregiñ da enporzhiañ" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Deraouekaat" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Enporzhiadenn ebet o treiñ" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Loc'het ar gevreadenn d'ar servijer Yammer" + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "O c'hortoz an aotre..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Kevreet." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Enporzhiañ ar c'hontoù implijer" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Oc'h enporzhiañ %d implijer..." +msgstr[1] "Oc'h enporzhiañ %d implijer..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Enporzhiet %d implijer." +msgstr[1] "Enporzhiet %d implijer." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Enporzhiañ strolladoù implijer" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Oc'h enporzhiañ %d strollad..." +msgstr[1] "Oc'h enporzhiañ %d strollad..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Enporzhiet %d strollad..." +msgstr[1] "Enporzhiet %d strollad..." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "O prientiñ enporzh ar c'hemennoù foran" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "O prientiñ %d kemenn..." +msgstr[1] "O prientiñ %d kemenn..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Prientet %d kemenn." +msgstr[1] "Prientet %d kemenn." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Enporzh kemennoù foran" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Oc'h enporzhiañ %d kemenn..." +msgstr[1] "Oc'h enporzhiañ %d kemenn..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Enporzhiet %d kemenn." +msgstr[1] "Enporzhiet %d kemenn." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Graet" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Enporzh kaset da benn vat !" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Stad an enporzh" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "O c'hortoz..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Adderaouekaat stad an enporzh" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Ober un tamm ehan gant an enporzh" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "C'hoarvezet eo ar fazi \"%s\"" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Ehanet" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Nullañ an enporzh" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Enporzh Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Emeur c'hoazh oc'h arnodiñ an ostilh enporzhiañ Yammer-mañ. Diglok eo " +"c'hoazh evit lodennoù zo. N'eo ket bet treuzkaset ar c'houmanantoù implijer " +"hag an enrolladnenoù er strolladoù evit c'hoazh ; Kemeret e kont e c'hallfe " +"bezañ en amzer da zont evit an enporzhiadennoù sevenet gant ar verourien " +"aotreet eus tu YAMMER." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Ehanet adalek ar banell verañ." diff --git a/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..497f01d3a2 --- /dev/null +++ b/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po @@ -0,0 +1,282 @@ +# Translation of StatusNet - YammerImport to French (Français) +# Expored from translatewiki.net +# +# Author: Peter17 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:25+0000\n" +"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fr\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Import Yammer" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Connexion à Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Démarrer l’identification" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "Demander l’autorisation de se connecter à un compte Yammer" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "Changer la clé de l’API" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "Expertise :" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL d’avatar invalide : %s." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Impossible de récupérer l’avatar depuis « %s »." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "Enregistrement de l’API Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Avant de pouvoir nous connecter à votre réseau Yammer, vous devez " +"enregistrer l’application d’import comme étant autorisée à recueillir des " +"données en votre nom. Cet enregistrement ne sera valable que pour votre " +"propre réseau. Suivez ce lien pour enregistrer l’application sur Yammer ; si " +"cela est nécessaire, il vous sera demandé de vous identifier :" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Ouvrir le formulaire d’enregistrement de l’application Yammer" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Copiez dans le formulaire ci-dessous la clé et le secret utilisateur qui " +"vous sont donnés :" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Clé de l'utilisateur :" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Secret de l'utilisateur :" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Sauvegarder" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Enregistrer ces clés utilisateur" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Suivez ce lien pour confirmer l’autorisation sur Yammer ; il vous sera " +"demandé de vous identifier si nécessaire :" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Ouvrir la fenêtre d’identification Yammer" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Copiez ci-dessous le code de vérification qui vous est donné :" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Code de vérification :" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Continuer" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Enregistrer le code et commencer l’import" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Initialiser" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Aucun import en cours d’exécution" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Connexion au serveur Yammer initiée..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "En attente d’autorisation..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Connecté." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Importer des comptes utilisateur" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Import de %d utilisateur..." +msgstr[1] "Import de %d utilisateurs..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d utilisateur importé." +msgstr[1] "%d utilisateurs importés." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Importer des groupes utilisateur" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Import de %d groupe..." +msgstr[1] "Import de %d groupes..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d groupe importé." +msgstr[1] "%d groupes importés." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Préparation de l’import d’avis publiques" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Préparation de %d avis..." +msgstr[1] "Préparation de %d avis..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d avis prépara." +msgstr[1] "%d avis préparés." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Import d’avis publiques" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Import de %d avis..." +msgstr[1] "Import de %d avis..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d avis importé." +msgstr[1] "%d avis importés." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Fait" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "L’import est terminé !" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "État de l’import" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Attente..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Réinitialiser l’état de l’import" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Mettre l’import en pause" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "L’erreur « %s » est survenue" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "En pause" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Abandonner l’import" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Import Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Cet outil d’import Yammer est encore en phase de test et est en partie " +"incomplet. Les abonnements d’utilisateurs et les appartenances aux groupes " +"ne sont actuellement pas transférés ; ceci pourrait être pris en charge dans " +"le futur pour les imports réalisés par les administrateurs autorisés du côté " +"de Yammer." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Mis en pause depuis le panneau d’administration" diff --git a/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..d70f45a07a --- /dev/null +++ b/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po @@ -0,0 +1,268 @@ +# Translation of StatusNet - YammerImport to Galician (Galego) +# Expored from translatewiki.net +# +# Author: Toliño +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:26+0000\n" +"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: gl\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Clave do consumidor:" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Pregunta secreta do consumidor:" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Gardar" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Código de verificación:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Continuar" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Iniciar" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "" + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Agardando a autorización..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Conectado." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" +msgstr[1] "" + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Feito" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Completouse a importación!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Estado da importación" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Agarde..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Reiniciar o estado da importación" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Pausar a importación" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Atopouse o erro \"%s\"" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "En pausa" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Abortar a importación" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Importación Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "En pausa desde o panel de administración." diff --git a/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..a7eb7711e3 --- /dev/null +++ b/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po @@ -0,0 +1,282 @@ +# Translation of StatusNet - YammerImport to Interlingua (Interlingua) +# Expored from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:26+0000\n" +"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Importation de Yammer" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Connecter a Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Comenciar authentication" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "Requestar autorisation de connecter al conto Yammer" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "Cambiar clave API" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "Expertise:" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL de avatar %s invalide." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Incapace de obtener avatar ab %s." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "Registration in API de Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Ante que nos pote connecter a tu rete Yammer, tu debe registrar le " +"importator como application autorisate a colliger datos in tu nomine. Iste " +"registration functionara solmente pro tu proprie rete. Seque iste ligamine " +"pro registrar le application a Yammer; tu essera demandate de aperir session " +"si necessari:" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Aperir formulario de registration del application Yammer" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Copia le clave e secreto de consumitor que tu recipe in le formulario hic " +"infra:" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Clave de consumitor:" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Secreto de consumitor:" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Salveguardar" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Salveguardar iste claves de consumitor" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Seque iste ligamine pro confirmar autorisation a Yammer; tu essera demandate " +"de aperir session si necessari:" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Aperir fenestra de authentication a Yammer" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Copia hic infra le codice de verification que tu recipe:" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Codice de verification:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Continuar" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Salveguardar codice e comenciar importation" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Initialisar" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Nulle importation in curso" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Connexion al servitor Yammer initiate..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Attende autorisation..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Connectite." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Importar contos de usator" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Importa %d usator..." +msgstr[1] "Importa %d usatores..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d usator importate." +msgstr[1] "%d usatores importate." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Importar gruppos de usatores" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Importa %d gruppo..." +msgstr[1] "Importa %d gruppos..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d gruppo importate." +msgstr[1] "%d gruppos importate." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Preparar notas public pro importation" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Prepara %d nota..." +msgstr[1] "Prepara %d notas..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d nota preparate." +msgstr[1] "%d notas preparate." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Importar notas public" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Importa %d nota..." +msgstr[1] "Importa %d notas..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d nota importate." +msgstr[1] "%d notas importate." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Finite" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Le importation es complete!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Stato de importation" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Attende..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Reinitialisar stato de importation" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Pausar importation" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Incontrava error \"%s\"" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Pausate" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Abortar importation" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Importation de Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Iste instrumento de importation de Yammer es ancora in phase de test, e es " +"incomplete in alcun areas. Actualmente le subscriptiones de usator e " +"membratos de gruppos non es transferite; in le futuro isto pote esser " +"supportate pro importationes facite per administratores verificate al latere " +"de Yammer." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Pausate ab le pannello admin." diff --git a/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..771cbef50c --- /dev/null +++ b/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po @@ -0,0 +1,281 @@ +# Translation of StatusNet - YammerImport to Macedonian (Македонски) +# Expored from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:26+0000\n" +"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Увоз од Yammer" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Поврзување со Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Започни проверка" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "Барај овластување за поврзување со сметката на Yammer" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "Промени API-клуч" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "Стручност:" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Неважечка URL-адреса на аватарот: %s." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Не можев да го преземам аватарот од %s." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "Регистрација на API за Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Пред да можеме да Ве поврземе на Вашата Yammer-мрежа, ќе треба да го " +"регистрирате увозникот како програм овластен за преземање на податоци во " +"Ваше име. Оваа регистрација ќе работи само за Вашата мрежа. Проследете ја " +"врската за да го регистрирате програмот на Yammer. Ако е потребно, ќе Ви " +"биде побарано да се најавите:" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Отвори образец за регистрација на програм на Yammer" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Ископирајте ги потрошувачкиот клуч и тајната што се наведени во образецот " +"подолу:" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Потрошувачки клуч:" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Потрошувачка тајна:" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Зачувај" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Зачувај ги овие потрошувачки клучеви" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Проследете ја врскава за да го потврдите овластувањето на страницата на " +"Yammer. Ако е потребно, ќе Ви биде побарано да се најавите:" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Отвори прозорец за потврда на Yammer" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Ископирајте го долунаведениот потврден код:" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Потврден код:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Продолжи" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Зачувај код и почни со увоз" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Започни" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Увозот не е во тек" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Започнав со поврзувањето со опслужувачот на Yammer..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Чекам на овластување..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Поврзано." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Увези кориснички сметки" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Увезувам %d корисник..." +msgstr[1] "Увезувам %d корисници..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Увезов %d корисник." +msgstr[1] "Увезов %d корисници." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Увези кориснички групи" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Увезувам %d група..." +msgstr[1] "Увезувам %d групи..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Увезов %d група." +msgstr[1] "Увезов %d групи." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Подготви јавни известувања за увоз" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Подготвувам %d известување..." +msgstr[1] "Подготвувам %d известувања..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Подготвив %d известување." +msgstr[1] "Подготвив %d известувања." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Увези јавни известувања" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Увезувам %d известување..." +msgstr[1] "Увезувам %d известувања..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Увезов %d известување..." +msgstr[1] "Увезов %d известувања..." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Готово" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Увозот заврши!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Увези статус" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Чекам..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Врати основна состојба на увозот" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Паузирај увоз" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Наидов на грешка „%s“" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Паузирано" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Прекини увоз" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Увоз од Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Оваа алатка за увоз од Yammer сè уште е во фаза на испробување, а наместа е " +"недработена. Моментално не можат да се префрлаат кориснички претплати и " +"членства во групи. Ваквите префрлања може да се поддржани во иднина, и тие " +"би ги вршеле овластени администратори на Yammer." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Паузирано од администраторската табла." diff --git a/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..1838248715 --- /dev/null +++ b/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po @@ -0,0 +1,283 @@ +# Translation of StatusNet - YammerImport to Dutch (Nederlands) +# Expored from translatewiki.net +# +# Author: SPQRobin +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:26+0000\n" +"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Yammerimport" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Verbinden met Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Authenticatie starten" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "Autorisatie verzoeken om te verbinden met Yammergebruiker" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "API-sleutel wijzigen" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "Expertise:" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "%s is een ongeldige URL voor avatar." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Het was niet mogelijk de avatar op te halen van %s." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "API-registratie voor Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Voordat er verbinding gemaakt kan worden met uw Yammernetwerk, moet u het " +"importprogramma eerst registreren als een applicatie die namens u gegevens " +"mag ophalen. Deze registratie geldt alleen voor uw eigen netwerk. Volg de " +"onderstaande verwijzing om de applicatie bij Yammer te registreren. Als het " +"nodig is om aan te melden, wordt u dat gevraagd:" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Applicatieregistratieformulier voor Yammer openen" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Kopieer de gebruikerssleutel en het gebruikersgeheim dat u hebt gekregen in " +"het formulier hieronder:" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Gebruikerssleutel:" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Gebruikersgeheim:" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Opslaan" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Deze gebruikerssleutels opslaan" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Volg deze verwijzing om de autorisatie bij Yammer te bevestigen. Als u moet " +"aanmelden wordt daarom gevraagd:" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Authenticatievenster voor Yammer openen" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Kopieer de verificatiecode die u hebt gekregen hieronder:" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Verificatiecode:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Doorgaan" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Code opslaan en importeren" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Initialiseren" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Er loopt geen import" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Er is verbinding gemaakt met de Yammerserver..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Wachten op autorisatie..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Verbonden." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Gebruikers importeren" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Bezig met het importeren van %d gebruiker..." +msgstr[1] "Bezig met het importeren van %d gebruikers..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d gebruiker geïmporteerd." +msgstr[1] "%d gebruikers geïmporteerd." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Gebruikersgroepen importeren" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Bezig met het importeren van %d gebruikersgroep..." +msgstr[1] "Bezig met het importeren van %d gebruikersgroepen..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d gebruikersgroep geïmporteerd." +msgstr[1] "%d gebruikersgroepen geïmporteerd." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Publieke mededelingen voorbereiden op import" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Bezig met het voorbereiden van %d mededeling..." +msgstr[1] "Bezig met het voorbereiden van %d mededelingen..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d mededeling voorbereid." +msgstr[1] "%d mededelingen voorbereid." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Publieke mededelingen importeren" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Bezig met het importeren van %d mededeling..." +msgstr[1] "Bezig met het importeren van %d mededelingen..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d mededeling geïmporteerd." +msgstr[1] "%d mededelingen geïmporteerd." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Afgerond" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Het importeren is voltooid!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Importstatus" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Even geduld alstublieft..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Importstatus herstellen" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Import pauzeren" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Er is een fout opgetreden: \"%s\"" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Gepauzeerd" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Import afbreken" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Yammerimport" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Dit Yammerimportprogramma wordt nog getest en bepaalde onderdelen zijn nog " +"niet afgerond. Op dit moment worden gebruikersabonnementen en " +"groepslidmaatschappen nog niet overgenomen. In de toekomst is dit wellicht " +"mogelijk voor imports die door bevestigde beheerders in Yammer worden " +"uitgevoerd." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Gepauzeerd vanuit het beheerpaneel." diff --git a/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..233b5a794f --- /dev/null +++ b/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po @@ -0,0 +1,278 @@ +# Translation of StatusNet - YammerImport to Russian (Русский) +# Expored from translatewiki.net +# +# Author: Eleferen +# Author: MaxSem +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:27+0000\n" +"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ru\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Начало проверки подлинности" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Сохранить" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Код подтверждения:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Продолжить" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Сохранить код и начать импорт" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Инициализация" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Импорт не запущен" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "" + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Ожидание авторизации…" + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Подсоединено." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Импорт учётных записей пользователей" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Импорт %d пользователя…" +msgstr[1] "Импорт %d пользователей…" +msgstr[2] "Импорт %d пользователей…" + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Импортирован %d пользователь." +msgstr[1] "Импортировано %d пользователя." +msgstr[2] "Импортировано %d пользователей." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Импорт групп пользователей" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Импорт %d группы…" +msgstr[1] "Импорт %d группы…" +msgstr[2] "" + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Готово" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Импорт завершён!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Статус процесса импорта" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Ожидание…" + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Приостановить импорт" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Обнаружена ошибка «%s»" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Приостановлено" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Прервать импорт" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "" diff --git a/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..31fb640bcc --- /dev/null +++ b/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po @@ -0,0 +1,260 @@ +# Translation of StatusNet - YammerImport to Turkish (Türkçe) +# Expored from translatewiki.net +# +# Author: Maidis +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:27+0000\n" +"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: tr\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Yammer içeri aktarma" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "Yammer'a Bağlan" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Kimlik doğrulamaya başla" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Geçersiz kullanıcı resmi bağlantısı %s." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Kaydet" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Open Yammer kimlik doğrulama penceresi" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Aşağıda verilen doğrulama kodunu kopyalayın:" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Doğrulama kodu:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Devam et" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Kodu kaydet ve içeri aktarmaya başla" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "İlk kullanıma hazırla" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Çalışan içeri aktarma yok" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Başlatılan Yammer sunucu bağlantısı..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Yetkilendirme bekleniyor..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Bağlandı." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Kullanıcı hesaplarını içeri aktar" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "" + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "" + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Kullanıcı gruplarını içeri aktar" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "" + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Genel durum mesajlarını içeri aktarmak için hazırla" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Genel durum mesajlarını içeri aktar" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Tamamlandı" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "İçeri aktarma tamamlandı!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "İçeri aktarma durumu" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Bekleniyor..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "İçeri aktarma durumunu sıfırla" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "İçeri aktarmayı duraklat" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Karşılaşılan hata \"%s\"" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Duraklatıldı" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "İçeri aktarmayı iptal et" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Yammer İçeri Aktar" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Yönetim panelinden durduruldu." diff --git a/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po new file mode 100644 index 0000000000..da0ac349ab --- /dev/null +++ b/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po @@ -0,0 +1,291 @@ +# Translation of StatusNet - YammerImport to Ukrainian (Українська) +# Expored from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - YammerImport\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-16 15:08+0000\n" +"PO-Revision-Date: 2010-12-16 15:13:27+0000\n" +"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2010-11-29 19:46:21+0000\n" +"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-yammerimport\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#: YammerImportPlugin.php:98 +msgid "Yammer" +msgstr "Yammer" + +#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 +msgid "Yammer import" +msgstr "Імпорт з Yammer" + +#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 +#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +msgid "Connect to Yammer" +msgstr "З’єднання з Yammer" + +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" +msgstr "Початок автентифікації" + +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" +msgstr "Запит дозволу на підключення до Yammer" + +#: lib/yammerauthinitform.php:63 +msgid "Change API key" +msgstr "Змінити API-ключ" + +#: lib/yammerimporter.php:230 +msgid "Expertise:" +msgstr "Експертиза:" + +#: lib/yammerimporter.php:433 +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Невірна URL-адреса аватари %s." + +#: lib/yammerimporter.php:441 +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Неможливо завантажити аватару з %s." + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "Реєстрація API Yammer" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Перш ніж ми зможемо підключитися до вашого акаунту Yammer, вам необхідно " +"зареєструвати у якості імпортера цей авторизований додаток, аби той забирав " +"дані від вашого імені. Ця реєстрація буде працювати тільки для вашої власної " +"мережі. Перейдіть за цим посиланням, щоб зареєструвати додаток на Yammer; " +"вам буде запропоновано увійти до системи, якщо це необхідно:" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "Відкрити реєстраційну форму додатку для Yammer" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Скопіюйте ключ споживача та секретний код, котрі вам було надано, до віконця " +"нижче:" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "Ключ споживача:" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "Секретний код:" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "Зберегти" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" +msgstr "Зберегти ключі споживача" + +#: lib/yammerauthverifyform.php:72 +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Перейдіть за цим посиланням для підтвердження дозволу від Yammer; вам буде " +"запропоновано увійти до системи, якщо це необхідно:" + +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "Відкрити вікно автентифікації Yammer" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "Скопіюйте наданий вам код підтвердження до віконця нижче:" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "Код підтвердження:" + +#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 +msgid "Continue" +msgstr "Продовжити" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "Зберегти код і почати імпорт" + +#: lib/yammerprogressform.php:63 +msgid "Initialize" +msgstr "Ініціалізація" + +#: lib/yammerprogressform.php:64 +msgid "No import running" +msgstr "Імпорт не працює" + +#: lib/yammerprogressform.php:65 +msgid "Initiated Yammer server connection..." +msgstr "Розпочато з’єднання з сервером Yammer..." + +#: lib/yammerprogressform.php:69 +msgid "Awaiting authorization..." +msgstr "Чекаємо дозволу..." + +#: lib/yammerprogressform.php:70 +msgid "Connected." +msgstr "Під’єднано." + +#: lib/yammerprogressform.php:73 +msgid "Import user accounts" +msgstr "Імпорт облікових записів користувачів" + +#: lib/yammerprogressform.php:74 +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Імпорт %d користувача..." +msgstr[1] "Імпорт %d користувачів..." +msgstr[2] "Імпорт %d користувачів..." + +#: lib/yammerprogressform.php:75 +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Імпортовано %d користувача." +msgstr[1] "Імпортовано %d користувачів." +msgstr[2] "Імпортовано %d користувачів." + +#: lib/yammerprogressform.php:78 +msgid "Import user groups" +msgstr "Імпорт спільнот" + +#: lib/yammerprogressform.php:79 +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Імпорт %d спільноти..." +msgstr[1] "Імпорт %d спільнот..." +msgstr[2] "Імпорт %d спільнот..." + +#: lib/yammerprogressform.php:80 +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Імпортовано %d спільноту." +msgstr[1] "Імпортовано %d спільнот." +msgstr[2] "Імпортовано %d спільнот." + +#: lib/yammerprogressform.php:83 +msgid "Prepare public notices for import" +msgstr "Підготовка до імпорту стрічки дописів" + +#: lib/yammerprogressform.php:84 +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Підготовка %d допису..." +msgstr[1] "Підготовка %d дописів..." +msgstr[2] "Підготовка %d дописів..." + +#: lib/yammerprogressform.php:85 +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Готовий %d допис." +msgstr[1] "Готово %d дописів." +msgstr[2] "Готово %d дописів." + +#: lib/yammerprogressform.php:88 +msgid "Import public notices" +msgstr "Імпорт стрічки дописів" + +#: lib/yammerprogressform.php:89 +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Імпорт %d допису..." +msgstr[1] "Імпорт %d дописів..." +msgstr[2] "Імпорт %d дописів..." + +#: lib/yammerprogressform.php:90 +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Імпортовано %d допис." +msgstr[1] "Імпортовано %d дописів." +msgstr[2] "Імпортовано %d дописів." + +#: lib/yammerprogressform.php:93 +msgid "Done" +msgstr "Виконано" + +#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 +msgid "Import is complete!" +msgstr "Імпорт завершено!" + +#: lib/yammerprogressform.php:108 +msgid "Import status" +msgstr "Статус процесу імпорту" + +#: lib/yammerprogressform.php:132 +msgid "Waiting..." +msgstr "Очікування..." + +#: lib/yammerprogressform.php:146 +msgid "Reset import state" +msgstr "Перезапустити імпорт" + +#: lib/yammerprogressform.php:151 +msgid "Pause import" +msgstr "Призупинити імпорт" + +#: lib/yammerprogressform.php:160 +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Виявлено помилку «%s»" + +#: lib/yammerprogressform.php:162 +msgid "Paused" +msgstr "Призупинено" + +#: lib/yammerprogressform.php:165 +msgid "Abort import" +msgstr "Перервати імпорт" + +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" +msgstr "Імпорт з Yammer" + +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Цей додаток імпорту даних з Yammer все ще проходить випробовування і працює " +"десь неповною мірою. На даний момент неможливо імпортувати дані щодо " +"підписок та спільнот користувача; втім, можливо у майбутньому, адміністрація " +"сайту Yammer піде нам на зустріч і тоді роботу над цим додатком буде " +"завершено." + +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "Призупинено з адміністраторської панелі." diff --git a/plugins/YammerImport/scripts/yammer-import.php b/plugins/YammerImport/scripts/yammer-import.php new file mode 100644 index 0000000000..b4aa921e50 --- /dev/null +++ b/plugins/YammerImport/scripts/yammer-import.php @@ -0,0 +1,65 @@ +<?php + +if (php_sapi_name() != 'cli') { + die('no'); +} + + +define('INSTALLDIR', dirname(dirname(dirname(dirname(__FILE__))))); + +$longoptions = array('verify=', 'reset'); +require INSTALLDIR . "/scripts/commandline.inc"; + +echo "Checking current state...\n"; +$runner = YammerRunner::init(); + +if (have_option('reset')) { + echo "Resetting Yammer import state...\n"; + $runner->reset(); + echo "done.\n"; + exit(0); +} + +switch ($runner->state()) +{ + case 'init': + echo "Requesting authentication to Yammer API...\n"; + $url = $runner->requestAuth(); + echo "Log in to Yammer at the following URL and confirm permissions:\n"; + echo "\n"; + echo " $url\n"; + echo "\n"; + echo "Pass the resulting code back by running:\n"; + echo "\n"; + echo " php yammer-import.php --verify=####\n"; + echo "\n"; + break; + + case 'requesting-auth': + if (!have_option('verify')) { + echo "Awaiting authentication...\n"; + echo "\n"; + echo "If you need to start over, reset the state:\n"; + echo "\n"; + echo " php yammer-import.php --reset\n"; + echo "\n"; + exit(1); + } + echo "Saving final authentication token for Yammer API...\n"; + $runner->saveAuthToken(get_option_value('verify')); + // Fall through... + + default: + while ($runner->hasWork()) { + echo "... {$runner->state()}\n"; + if (!$runner->iterate()) { + echo "FAIL??!?!?!\n"; + } + } + if ($runner->isDone()) { + echo "... done.\n"; + } else { + echo "... no more import work scheduled.\n"; + } + break; +} diff --git a/scripts/backupuser.php b/scripts/backupuser.php new file mode 100644 index 0000000000..49fc1cefdc --- /dev/null +++ b/scripts/backupuser.php @@ -0,0 +1,44 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:f:'; +$longoptions = array('id=', 'nickname=', 'file='); + +$helptext = <<<END_OF_EXPORTACTIVITYSTREAM_HELP +exportactivitystream.php [options] +Export a StatusNet user history to a file + + -i --id ID of user to export + -n --nickname nickname of the user to export + -f --file file to export to (default STDOUT) + +END_OF_EXPORTACTIVITYSTREAM_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +try { + $user = getUser(); + $actstr = new UserActivityStream($user); + print $actstr->getString(); +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} diff --git a/scripts/checkschema.php b/scripts/checkschema.php index bf52abe154..73fd74302c 100755 --- a/scripts/checkschema.php +++ b/scripts/checkschema.php @@ -27,4 +27,18 @@ END_OF_CHECKSCHEMA_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; +function tableDefs() +{ + $schema = array(); + require INSTALLDIR.'/db/core.php'; + return $schema; +} + +$schema = Schema::get(); +$schemaUpdater = new SchemaUpdater($schema); +foreach (tableDefs() as $table => $def) { + $schemaUpdater->register($table, $def); +} +$schemaUpdater->checkSchema(); + Event::handle('CheckSchema'); diff --git a/scripts/clear_jabber.php b/scripts/clear_jabber.php new file mode 100755 index 0000000000..5ec53caf0e --- /dev/null +++ b/scripts/clear_jabber.php @@ -0,0 +1,92 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i::n::y'; +$longoptions = array('id=', 'nickname=', 'yes', 'all', 'dry-run'); + +$helptext = <<<END_OF_DELETEUSER_HELP +clear_jabber.php [options] +Deletes a user's confirmed Jabber/XMPP address from the database. + + -i --id ID of the user + -n --nickname nickname of the user + --all all users with confirmed Jabber addresses + --dry-run Don't actually delete info. + +END_OF_DELETEUSER_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + print "Can't find user with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + print "Can't find user with nickname '$nickname'\n"; + exit(1); + } +} else if (have_option('all')) { + $user = new User(); + $user->whereAdd("jabber != ''"); + $user->find(true); + if ($user->N == 0) { + print "No users with registered Jabber addresses in database.\n"; + exit(1); + } +} else { + print "You must provide either an ID or a nickname.\n"; + print "\n"; + print $helptext; + exit(1); +} + +function clear_jabber($id) +{ + $user = User::staticGet('id', $id); + if ($user && $user->jabber) { + echo "clearing user $id's user.jabber, was: $user->jabber"; + if (have_option('dry-run')) { + echo " (SKIPPING)"; + } else { + $original = clone($user); + $user->jabber = null; + $result = $user->updateKeys($original); + } + echo "\n"; + } else if (!$user) { + echo "Missing user for $id\n"; + } else { + echo "Cleared jabber already for $id\n"; + } +} + +do { + clear_jabber($user->id); +} while ($user->fetch()); + +print "DONE.\n"; diff --git a/scripts/clearcache.php b/scripts/clearcache.php index 0fb75daa03..c67d6275d8 100644 --- a/scripts/clearcache.php +++ b/scripts/clearcache.php @@ -38,7 +38,7 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; $karg = get_option_value('k', 'key'); if (!empty($karg)) { - $k = common_cache_key($karg); + $k = Cache::key($karg); } else { $table = get_option_value('t', 'table'); if (empty($table)) { @@ -55,7 +55,7 @@ if (!empty($karg)) { print "Clearing key '$k'..."; -$c = common_memcache(); +$c = Cache::instance(); if (empty($c)) { die("Can't initialize cache object!\n"); diff --git a/scripts/commandline.inc b/scripts/commandline.inc index a475e11d01..9390890ef3 100644 --- a/scripts/commandline.inc +++ b/scripts/commandline.inc @@ -177,3 +177,70 @@ function get_option_value($opt, $alt=null) return null; } + +class NoUserArgumentException extends Exception +{ +} + +function getUser() +{ + $user = null; + + if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + throw new Exception("Can't find user with id '$id'."); + } + } else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + throw new Exception("Can't find user with nickname '$nickname'"); + } + } else { + throw new NoUserArgumentException("No user argument specified."); + } + + return $user; +} + +/** "Printf not quiet" */ + +function printfnq() +{ + if (have_option('q', 'quiet')) { + return null; + } + + $cargs = func_num_args(); + + if ($cargs == 0) { + return 0; + } + + $args = func_get_args(); + $format = array_shift($args); + + return vprintf($format, $args); +} + +/** "Print when verbose" */ + +function printfv() +{ + if (!have_option('v', 'verbose')) { + return null; + } + + $cargs = func_num_args(); + + if ($cargs == 0) { + return 0; + } + + $args = func_get_args(); + $format = array_shift($args); + + return vprintf($format, $args); +} \ No newline at end of file diff --git a/scripts/delete_status_network.sh b/scripts/delete_status_network.sh index 3a8ebdcfd4..4e91cd6390 100755 --- a/scripts/delete_status_network.sh +++ b/scripts/delete_status_network.sh @@ -4,22 +4,45 @@ set -e -source /etc/statusnet/setup.cfg +source /etc/statusnet/setup.cfg || (echo "Failed to read /etc/statusnet/setup.cfg"; exit -1) export nickname=$1 +if [ "x" == "x$nickname" ] +then + echo "Usage: delete_status_network.sh <site-nickname>" + exit 1 +fi export database=$nickname$DBBASE -# Create the db +# Pull the status_network record so we know which DB server to drop from... +TARGET_DBHOST=`mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB --batch --skip-column-names -e \ + "select dbhost from status_network where nickname='$nickname'"` -mysqladmin -h $DBHOST -u $ADMIN --password=$ADMINPASS -f drop $database +if [ "x" == "x$TARGET_DBHOST" ] +then + echo "Aborting: Could not find status_network record for site $nickname" + exit 1 +fi -mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS +# Drop the database +echo "Dropping $database from $TARGET_DBHOST..." +mysqladmin -h $TARGET_DBHOST -u $ADMIN --password=$ADMINPASS -f drop $database || exit 1 -delete from status_network where nickname = '$nickname'; - -ENDOFCOMMANDS +# Remove the status_network entry +echo "Removing status_network entry for $nickname..." +mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB -e \ + "delete from status_network where nickname = '$nickname'" || exit 1 +# Remove uploaded file areas for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do - rm -Rf $top/$nickname + if [ "x" == "x$top" ] + then + echo "Skipping deletion due to broken config" + else + echo "Deleting $top/$nickname" + rm -Rf "$top/$nickname" + fi done + +echo "Done." diff --git a/scripts/deletegroup.php b/scripts/deletegroup.php new file mode 100755 index 0000000000..5a1ac109fd --- /dev/null +++ b/scripts/deletegroup.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i::n::y'; +$longoptions = array('id=', 'nickname=', 'yes'); + +$helptext = <<<END_OF_DELETEGROUP_HELP +deletegroup.php [options] +deletes a group from the database + + -i --id ID of the group + -n --nickname nickname of the group + -y --yes do not wait for confirmation + +END_OF_DELETEGROUP_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $group = User_group::staticGet('id', $id); + if (empty($group)) { + print "Can't find group with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $local = Local_group::staticGet('nickname', $nickname); + if (empty($local)) { + print "Can't find group with nickname '$nickname'\n"; + exit(1); + } + $group = User_group::staticGet('id', $local->group_id); +} else { + print "You must provide either an ID or a nickname.\n"; + print "\n"; + print $helptext; + exit(1); +} + +if (!have_option('y', 'yes')) { + print "About to PERMANENTLY delete group '{$group->nickname}' ({$group->id}). Are you sure? [y/N] "; + $response = fgets(STDIN); + if (strtolower(trim($response)) != 'y') { + print "Aborting.\n"; + exit(0); + } +} + +print "Deleting..."; +$group->delete(); +print "DONE.\n"; diff --git a/scripts/dumpschema.php b/scripts/dumpschema.php new file mode 100644 index 0000000000..9c5e3cf8b3 --- /dev/null +++ b/scripts/dumpschema.php @@ -0,0 +1,253 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$helptext = <<<END_OF_CHECKSCHEMA_HELP +Attempt to pull a schema definition for a given table. + + --all run over all defined core tables + --diff show differences between the expected and live table defs + --raw skip compatibility filtering for diffs + --create dump SQL that would be run to update or create this table + --build dump SQL that would be run to create this table fresh + --checksum just output checksums from the source schema defs + + +END_OF_CHECKSCHEMA_HELP; + +$longoptions = array('diff', 'all', 'create', 'update', 'raw', 'checksum'); +require_once INSTALLDIR.'/scripts/commandline.inc'; + +function indentOptions($indent) +{ + $cutoff = 3; + if ($indent < $cutoff) { + $space = $indent ? str_repeat(' ', $indent * 4) : ''; + $sep = ","; + $lf = "\n"; + $endspace = "$lf" . ($indent ? str_repeat(' ', ($indent - 1) * 4) : ''); + } else { + $space = ''; + $sep = ", "; + $lf = ''; + $endspace = ''; + } + if ($indent - 1 < $cutoff) { + } + return array($space, $sep, $lf, $endspace); +} + +function prettyDumpArray($arr, $key=null, $indent=0) +{ + // hack + if ($key == 'primary key') { + $subIndent = $indent + 2; + } else { + $subIndent = $indent + 1; + } + + list($space, $sep, $lf, $endspace) = indentOptions($indent); + list($inspace, $insep, $inlf, $inendspace) = indentOptions($subIndent); + + print "{$space}"; + if (!is_numeric($key)) { + print "'$key' => "; + } + if (is_array($arr)) { + print "array({$inlf}"; + $n = 0; + foreach ($arr as $key => $row) { + $n++; + prettyDumpArray($row, $key, $subIndent); + if ($n < count($arr)) { + print "$insep$inlf"; + } + } + // hack! + print "{$inendspace})"; + } else { + print var_export($arr, true); + } +} + +function getCoreSchema($tableName) +{ + $schema = array(); + include INSTALLDIR . '/db/core.php'; + return $schema[$tableName]; +} + +function getCoreTables() +{ + $schema = array(); + include INSTALLDIR . '/db/core.php'; + return array_keys($schema); +} + +function dumpTable($tableName, $live) +{ + if ($live) { + $schema = Schema::get(); + $def = $schema->getTableDef($tableName); + } else { + // hack + $def = getCoreSchema($tableName); + } + prettyDumpArray($def, $tableName); + print "\n"; +} + +function dumpBuildTable($tableName) +{ + echo "-- \n"; + echo "-- $tableName\n"; + echo "-- \n"; + + $schema = Schema::get(); + $def = getCoreSchema($tableName); + $sql = $schema->buildCreateTable($tableName, $def); + $sql[] = ''; + + echo implode(";\n", $sql); + echo "\n"; +} + +function dumpEnsureTable($tableName) +{ + $schema = Schema::get(); + $def = getCoreSchema($tableName); + $sql = $schema->buildEnsureTable($tableName, $def); + + if ($sql) { + echo "-- \n"; + echo "-- $tableName\n"; + echo "-- \n"; + + $sql[] = ''; + echo implode(";\n", $sql); + echo "\n"; + } +} + +function dumpDiff($tableName, $filter) +{ + $schema = Schema::get(); + $def = getCoreSchema($tableName); + try { + $old = $schema->getTableDef($tableName); + } catch (Exception $e) { + // @fixme this is a terrible check :D + if (preg_match('/no such table/i', $e->getMessage())) { + return dumpTable($tableName, false); + } else { + throw $e; + } + } + + if ($filter) { + //$old = $schema->filterDef($old); + $def = $schema->filterDef($def); + } + + // @hack + $old = tweakPrimaryKey($old); + $def = tweakPrimaryKey($def); + + $sections = array_unique(array_merge(array_keys($old), array_keys($def))); + $final = array(); + foreach ($sections as $section) { + if ($section == 'fields') { + // this shouldn't be needed maybe... wait what? + } + $diff = $schema->diffArrays($old, $def, $section); + $chunks = array('del', 'mod', 'add'); + foreach ($chunks as $chunk) { + if ($diff[$chunk]) { + foreach ($diff[$chunk] as $key) { + if ($chunk == 'del') { + $final[$section]["DEL $key"] = $old[$section][$key]; + } else if ($chunk == 'add') { + $final[$section]["ADD $key"] = $def[$section][$key]; + } else if ($chunk == 'mod') { + $final[$section]["OLD $key"] = $old[$section][$key]; + $final[$section]["NEW $key"] = $def[$section][$key]; + } + } + } + } + } + + prettyDumpArray($final, $tableName); + print "\n"; +} + +function tweakPrimaryKey($def) +{ + if (isset($def['primary key'])) { + $def['primary keys'] = array('primary key' => $def['primary key']); + unset($def['primary key']); + } + if (isset($def['description'])) { + $def['descriptions'] = array('description' => $def['description']); + unset($def['description']); + } + return $def; +} + +function dumpChecksum($tableName) +{ + $schema = Schema::get(); + $def = getCoreSchema($tableName); + + $updater = new SchemaUpdater($schema); + $checksum = $updater->checksum($def); + $old = @$updater->checksums[$tableName]; + + if ($old == $checksum) { + echo "OK $checksum $tableName\n"; + } else if (!$old) { + echo "NEW $checksum $tableName\n"; + } else { + echo "MOD $checksum $tableName (was $old)\n"; + } +} + +if (have_option('all')) { + $args = getCoreTables(); +} + +if (count($args)) { + foreach ($args as $tableName) { + if (have_option('diff')) { + dumpDiff($tableName, !have_option('raw')); + } else if (have_option('create')) { + dumpBuildTable($tableName); + } else if (have_option('update')) { + dumpEnsureTable($tableName); + } else if (have_option('checksum')) { + dumpChecksum($tableName); + } else { + dumpTable($tableName, true); + } + } +} else { + show_help($helptext); +} \ No newline at end of file diff --git a/scripts/fixup_group_uri.php b/scripts/fixup_group_uri.php new file mode 100644 index 0000000000..90938dac3e --- /dev/null +++ b/scripts/fixup_group_uri.php @@ -0,0 +1,102 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, 2010 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:a'; +$longoptions = array('id=', 'nickname=', 'all', 'dry-run'); + +$helptext = <<<END_OF_UPDATEAVATARURL_HELP +fixup_group_uri.php [options] +Fill in unstored URIs for groups in the system (added during 0.9) + + -i --id ID of group to update + -n --nickname nickname of the group to update + -a --all update all + --dry-run don't change anything + +END_OF_UPDATEAVATARURL_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +try { + $user = null; + + if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $group = User_group::staticGet('id', $id); + if (empty($group)) { + throw new Exception("Can't find group with id '$id'."); + } + updateGroupUri($group); + } else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $group = User_group::staticGet('nickname', $nickname); + if (empty($group)) { + throw new Exception("Can't find group with nickname '$nickname'"); + } + updateGroupUri($group); + } else if (have_option('a', 'all')) { + $group = new User_group(); + $group->whereAdd('uri IS NULL'); + if ($group->find()) { + while ($group->fetch()) { + updateGroupUri($group); + } + } + } else { + show_help(); + exit(1); + } +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} + +function updateGroupUri($group) +{ + if (!have_option('q', 'quiet')) { + print "Updating URI for group '".$group->nickname."' (".$group->id.")..."; + } + + if (empty($group->uri)) { + // Using clone here was screwing up the group->find() iteration + $orig = User_group::staticGet('id', $group->id); + + $group->uri = $group->getUri(); + if (have_option('dry_run')) { + echo " would have set $group->uri "; + } else { + if (!$group->update($orig)) { + throw new Exception("Can't update uri for group " . $group->nickname . "."); + } + echo " set $group->uri "; + } + } else { + print " already set, keeping $group->uri "; + } + + if (have_option('v', 'verbose')) { + print "DONE."; + } + if (!have_option('q', 'quiet') || have_option('v', 'verbose')) { + print "\n"; + } +} diff --git a/scripts/fixup_inboxes.php b/scripts/fixup_inboxes.php index d55a538853..c6e4fd0717 100755 --- a/scripts/fixup_inboxes.php +++ b/scripts/fixup_inboxes.php @@ -46,7 +46,7 @@ if ($start_at) { } $cnt = $user->find(); -$cache = common_memcache(); +$cache = Cache::instance(); while ($user->fetch()) { common_log(LOG_INFO, 'Updating inbox for user ' . $user->id); @@ -76,6 +76,6 @@ while ($user->fetch()) { $inbox->free(); unset($inbox); if ($cache) { - $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id)); + $cache->delete(Cache::key('user:notices_with_friends:' . $user->id)); } } diff --git a/scripts/flushrouter.php b/scripts/flushrouter.php new file mode 100644 index 0000000000..79493eae49 --- /dev/null +++ b/scripts/flushrouter.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$helptext = <<<END_OF_FLUSHROUTER_HELP +flushrouter.php -s<sitename> +Flush the url router from cache. + +END_OF_FLUSHROUTER_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +Cache::delete(Router::cacheKey()); + +print "OK.\n"; \ No newline at end of file diff --git a/scripts/importtwitteratom.php b/scripts/importtwitteratom.php index c12e3b91a8..a29526f27e 100644 --- a/scripts/importtwitteratom.php +++ b/scripts/importtwitteratom.php @@ -36,30 +36,6 @@ END_OF_IMPORTTWITTERATOM_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; -function getUser() -{ - $user = null; - - if (have_option('i', 'id')) { - $id = get_option_value('i', 'id'); - $user = User::staticGet('id', $id); - if (empty($user)) { - throw new Exception("Can't find user with id '$id'."); - } - } else if (have_option('n', 'nickname')) { - $nickname = get_option_value('n', 'nickname'); - $user = User::staticGet('nickname', $nickname); - if (empty($user)) { - throw new Exception("Can't find user with nickname '$nickname'"); - } - } else { - show_help(); - exit(1); - } - - return $user; -} - function getAtomFeedDocument() { $filename = get_option_value('f', 'file'); @@ -113,7 +89,7 @@ function importActivityStream($user, $doc) $html = htmLawed($html, $config); - $content = html_entity_decode(strip_tags($html)); + $content = html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8'); $notice = Notice::saveNew($user->id, $content, diff --git a/scripts/install_cli.php b/scripts/install_cli.php index 61fbe18ef6..dadbcf66f0 100755 --- a/scripts/install_cli.php +++ b/scripts/install_cli.php @@ -208,7 +208,7 @@ END_HELP; $breakout = preg_replace('/<a[^>+]\bhref="(.*)"[^>]*>(.*)<\/a>/', '\2 <\1>', $html); - return html_entity_decode(strip_tags($breakout)); + return html_entity_decode(strip_tags($breakout), ENT_QUOTES, 'UTF-8'); } } diff --git a/scripts/make-release.php b/scripts/make-release.php new file mode 100644 index 0000000000..a62d2f4480 --- /dev/null +++ b/scripts/make-release.php @@ -0,0 +1,57 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +# Abort if called from a web server + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$base = INSTALLDIR; +$encBase = escapeshellarg($base); + +$ver = STATUSNET_VERSION; + +// @fixme hack +if (preg_match('/^(\d+)\.(\d+)\.(\d+)/', $ver, $matches)) { + list(, $a, $b, $c) = $matches; + if ($c > '0') { + $cprime = $c - 1; + $prev = "$a.$b.$cprime"; + } else { + die("This is a .0 release; you need to provide a thingy.\n"); + } +} + +$tag = $ver; +$prefix = "statusnet-$tag"; +$target = "$prefix.tar.gz"; + +$cmd = <<<END +(cd $encBase && git archive --prefix=$prefix/ $tag | gzip > /tmp/$target) && \ +(cd /tmp && tar zxf $target && cd $prefix && make) && \ +(cd $encBase && git log --oneline {$prev}..{$tag} > /tmp/$prefix/Changelog) && \ +(cd /tmp && tar zcf $target $prefix) && \ +(cd /tmp && rm -rf $prefix) && \ +(mv /tmp/$target .) +END; + +echo $cmd; +echo "\n"; diff --git a/scripts/restoreuser.php b/scripts/restoreuser.php new file mode 100644 index 0000000000..b37e9db741 --- /dev/null +++ b/scripts/restoreuser.php @@ -0,0 +1,380 @@ +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:f:'; +$longoptions = array('id=', 'nickname=', 'file='); + +$helptext = <<<END_OF_RESTOREUSER_HELP +restoreuser.php [options] +Restore a backed-up user file to the database. If +neither ID or name provided, will create a new user. + + -i --id ID of user to export + -n --nickname nickname of the user to export + -f --file file to read from (STDIN by default) + +END_OF_RESTOREUSER_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; +require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; + +function getActivityStreamDocument() +{ + $filename = get_option_value('f', 'file'); + + if (empty($filename)) { + show_help(); + exit(1); + } + + if (!file_exists($filename)) { + throw new Exception("No such file '$filename'."); + } + + if (!is_file($filename)) { + throw new Exception("Not a regular file: '$filename'."); + } + + if (!is_readable($filename)) { + throw new Exception("File '$filename' not readable."); + } + + // TRANS: Commandline script output. %s is the filename that contains a backup for a user. + printfv(_("Getting backup from file '%s'.")."\n",$filename); + + $xml = file_get_contents($filename); + + $dom = DOMDocument::loadXML($xml); + + if ($dom->documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'feed') { + throw new Exception("'$filename' is not an Atom feed."); + } + + return $dom; +} + +function importActivityStream($user, $doc) +{ + $feed = $doc->documentElement; + + $subjectEl = ActivityUtils::child($feed, Activity::SUBJECT, Activity::SPEC); + + if (!empty($subjectEl)) { + $subject = new ActivityObject($subjectEl); + // TRANS: Commandline script output. %1$s is the subject ID, %2$s is the subject nickname. + printfv(_("Backup file for user %1$s (%2$s)")."\n", $subject->id, Ostatus_profile::getActivityObjectNickname($subject)); + } else { + throw new Exception("Feed doesn't have an <activity:subject> element."); + } + + if (is_null($user)) { + // TRANS: Commandline script output. + printfv(_("No user specified; using backup user.")."\n"); + $user = userFromSubject($subject); + } + + $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry'); + + // TRANS: Commandline script output. %d is the number of entries in the activity stream in backup; used for plural. + printfv(_m("%d entry in backup.","%d entries in backup.",$entries->length)."\n", $entries->length); + + for ($i = $entries->length - 1; $i >= 0; $i--) { + try { + $entry = $entries->item($i); + + $activity = new Activity($entry, $feed); + + switch ($activity->verb) { + case ActivityVerb::FOLLOW: + subscribeProfile($user, $subject, $activity); + break; + case ActivityVerb::JOIN: + joinGroup($user, $activity); + break; + case ActivityVerb::POST: + postNote($user, $activity); + break; + default: + throw new Exception("Unknown verb: {$activity->verb}"); + } + } catch (Exception $e) { + print $e->getMessage()."\n"; + continue; + } + } +} + +function subscribeProfile($user, $subject, $activity) +{ + $profile = $user->getProfile(); + + if ($activity->objects[0]->id == $subject->id) { + + $other = $activity->actor; + $otherUser = User::staticGet('uri', $other->id); + + if (!empty($otherUser)) { + $otherProfile = $otherUser->getProfile(); + } else { + throw new Exception("Can't force remote user to subscribe."); + } + // XXX: don't do this for untrusted input! + Subscription::start($otherProfile, $profile); + + } else if (empty($activity->actor) || $activity->actor->id == $subject->id) { + + $other = $activity->objects[0]; + $otherUser = User::staticGet('uri', $other->id); + + if (!empty($otherUser)) { + $otherProfile = $otherUser->getProfile(); + } else { + $oprofile = Ostatus_profile::ensureActivityObjectProfile($other); + $otherProfile = $oprofile->localProfile(); + } + + Subscription::start($profile, $otherProfile); + } else { + throw new Exception("This activity seems unrelated to our user."); + } +} + +function joinGroup($user, $activity) +{ + // XXX: check that actor == subject + + $uri = $activity->objects[0]->id; + + $group = User_group::staticGet('uri', $uri); + + if (empty($group)) { + $oprofile = Ostatus_profile::ensureActivityObjectProfile($activity->objects[0]); + if (!$oprofile->isGroup()) { + throw new Exception("Remote profile is not a group!"); + } + $group = $oprofile->localGroup(); + } + + assert(!empty($group)); + + if (Event::handle('StartJoinGroup', array($group, $user))) { + Group_member::join($group->id, $user->id); + Event::handle('EndJoinGroup', array($group, $user)); + } +} + +// XXX: largely cadged from Ostatus_profile::processNote() + +function postNote($user, $activity) +{ + $note = $activity->objects[0]; + + $sourceUri = $note->id; + + $notice = Notice::staticGet('uri', $sourceUri); + + if (!empty($notice)) { + // This is weird. + $orig = clone($notice); + $notice->profile_id = $user->id; + $notice->update($orig); + return; + } + + // Use summary as fallback for content + + if (!empty($note->content)) { + $sourceContent = $note->content; + } else if (!empty($note->summary)) { + $sourceContent = $note->summary; + } else if (!empty($note->title)) { + $sourceContent = $note->title; + } else { + // @fixme fetch from $sourceUrl? + // @todo i18n FIXME: use sprintf and add i18n. + throw new ClientException("No content for notice {$sourceUri}."); + } + + // Get (safe!) HTML and text versions of the content + + $rendered = purify($sourceContent); + $content = html_entity_decode(strip_tags($rendered), ENT_QUOTES, 'UTF-8'); + + $shortened = $user->shortenLinks($content); + + $options = array('is_local' => Notice::LOCAL_PUBLIC, + 'uri' => $sourceUri, + 'rendered' => $rendered, + 'replies' => array(), + 'groups' => array(), + 'tags' => array(), + 'urls' => array()); + + // Check for optional attributes... + + if (!empty($activity->time)) { + $options['created'] = common_sql_date($activity->time); + } + + if ($activity->context) { + // Any individual or group attn: targets? + + list($options['groups'], $options['replies']) = filterAttention($activity->context->attention); + + // Maintain direct reply associations + // @fixme what about conversation ID? + if (!empty($activity->context->replyToID)) { + $orig = Notice::staticGet('uri', + $activity->context->replyToID); + if (!empty($orig)) { + $options['reply_to'] = $orig->id; + } + } + + $location = $activity->context->location; + + if ($location) { + $options['lat'] = $location->lat; + $options['lon'] = $location->lon; + if ($location->location_id) { + $options['location_ns'] = $location->location_ns; + $options['location_id'] = $location->location_id; + } + } + } + + // Atom categories <-> hashtags + + foreach ($activity->categories as $cat) { + if ($cat->term) { + $term = common_canonical_tag($cat->term); + if ($term) { + $options['tags'][] = $term; + } + } + } + + // Atom enclosures -> attachment URLs + foreach ($activity->enclosures as $href) { + // @fixme save these locally or....? + $options['urls'][] = $href; + } + + $saved = Notice::saveNew($user->id, + $content, + 'restore', // TODO: restore the actual source + $options); + + return $saved; +} + +function filterAttention($attn) +{ + $groups = array(); + $replies = array(); + + foreach (array_unique($attn) as $recipient) { + + // Is the recipient a local user? + + $user = User::staticGet('uri', $recipient); + + if ($user) { + // @fixme sender verification, spam etc? + $replies[] = $recipient; + continue; + } + + // Is the recipient a remote group? + $oprofile = Ostatus_profile::ensureProfileURI($recipient); + + if ($oprofile) { + if (!$oprofile->isGroup()) { + // may be canonicalized or something + $replies[] = $oprofile->uri; + } + continue; + } + + // Is the recipient a local group? + // @fixme uri on user_group isn't reliable yet + // $group = User_group::staticGet('uri', $recipient); + $id = OStatusPlugin::localGroupFromUrl($recipient); + + if ($id) { + $group = User_group::staticGet('id', $id); + if ($group) { + // Deliver to all members of this local group if allowed. + $profile = $sender->localProfile(); + if ($profile->isMember($group)) { + $groups[] = $group->id; + } else { + common_log(LOG_INFO, "Skipping reply to local group {$group->nickname} as sender {$profile->id} is not a member"); + } + continue; + } else { + common_log(LOG_INFO, "Skipping reply to bogus group $recipient"); + } + } + } + + return array($groups, $replies); +} + +function userFromSubject($subject) +{ + $user = User::staticGet('uri', $subject->id); + + if (empty($user)) { + $attrs = + array('nickname' => Ostatus_profile::getActivityObjectNickname($subject), + 'uri' => $subject->id); + + $user = User::register($attrs); + } + + $profile = $user->getProfile(); + Ostatus_profile::updateProfile($profile, $subject); + + // FIXME: Update avatar + return $user; +} + +function purify($content) +{ + $config = array('safe' => 1, + 'deny_attribute' => 'id,style,on*'); + return htmLawed($content, $config); +} + +try { + try { + $user = getUser(); + } catch (NoUserArgumentException $noae) { + $user = null; + } + $doc = getActivityStreamDocument(); + importActivityStream($user, $doc); +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh index 3dd7390303..e801efaa27 100755 --- a/scripts/setup_status_network.sh +++ b/scripts/setup_status_network.sh @@ -6,7 +6,7 @@ set -e source /etc/statusnet/setup.cfg -# setup_status_net.sh mysite 'My Site' '1user' 'owner@example.com' 'Firsty McLastname' +# setup_status_network.sh mysite 'My Site' '1user' 'owner@example.com' 'Firsty McLastname' export nickname="$1" export sitename="$2" diff --git a/scripts/showcache.php b/scripts/showcache.php index 93b57a484b..8ef08467d6 100644 --- a/scripts/showcache.php +++ b/scripts/showcache.php @@ -38,7 +38,7 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; $karg = get_option_value('k'); if (!empty($karg)) { - $k = common_cache_key($karg); + $k = Cache::key($karg); } else { $table = get_option_value('t'); if (empty($table)) { @@ -55,7 +55,7 @@ if (!empty($karg)) { print "Checking key '$k'...\n"; -$c = common_memcache(); +$c = Cache::instance(); if (empty($c)) { die("Can't initialize cache object!\n"); diff --git a/scripts/uncache_users.php b/scripts/uncache_users.php index 5a1d330307..eb7e398023 100644 --- a/scripts/uncache_users.php +++ b/scripts/uncache_users.php @@ -34,7 +34,7 @@ common_log(LOG_INFO, 'Updating user inboxes.'); $ids = file($id_file); -$memc = common_memcache(); +$memc = Cache::instance(); foreach ($ids as $id) { @@ -47,6 +47,6 @@ foreach ($ids as $id) { $user->decache(); - $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id)); - $memc->delete(common_cache_key('user:notices_with_friends:'. $user->id . ';last')); + $memc->delete(Cache::key('user:notices_with_friends:'. $user->id)); + $memc->delete(Cache::key('user:notices_with_friends:'. $user->id . ';last')); } diff --git a/scripts/update_po_templates.php b/scripts/update_po_templates.php index f10f208424..a0ab5819d5 100755 --- a/scripts/update_po_templates.php +++ b/scripts/update_po_templates.php @@ -81,45 +81,6 @@ END; chdir($old); } -function do_translatewiki_plugin($basedir, $plugin) -{ - $yamldir = "$basedir/locale/TranslateWiki"; - if (!file_exists($yamldir)) { - mkdir($yamldir); - } - $outfile = "$yamldir/StatusNet-{$plugin}.yml"; - $pluginlc = strtolower( $plugin ); - $data = <<<END ---- -BASIC: - id: out-statusnet-{$pluginlc} - label: StatusNet - {$plugin} - namespace: NS_STATUSNET - description: "{{int:bw-desc-statusnet-plugin}}" - class: FileBasedMessageGroup - display: out/statusnet/{$pluginlc} - -FILES: - class: GettextFFS - sourcePattern: %GROUPROOT%/statusnet/plugins/{$plugin}/locale/{$plugin}.pot - targetPattern: statusnet/plugins/{$plugin}/locale/%CODE%/LC_MESSAGES/{$plugin}.po - codeMap: - en-gb: en_GB - no: nb - pt-br: pt_BR - zh-hans: zh_CN - zh-hant: zh_TW - -MANGLER - class: StringMatcher - prefix: {$pluginlc}- - patterns: - - "*" - -END; - file_put_contents($outfile, $data); -} - function get_plugins($dir) { $plugins = array(); @@ -168,7 +129,6 @@ function update_plugin($basedir, $name) $dir = "$basedir/plugins/$name"; if (plugin_using_gettext($dir)) { do_update_plugin($dir, $name); - do_translatewiki_plugin($basedir, $name); return true; } else { return false; @@ -200,8 +160,6 @@ foreach ($args as $arg) { } } - - if ($all || $core) { echo "core..."; update_core(INSTALLDIR, 'statusnet'); diff --git a/scripts/update_translations.php b/scripts/update_translations.php index 89d937e9dd..1fe513b13b 100755 --- a/scripts/update_translations.php +++ b/scripts/update_translations.php @@ -77,7 +77,7 @@ foreach ($languages as $language) { http_build_query(array( 'title' => 'Special:Translate', 'task' => 'export-to-file', - 'group' => 'out-statusnet', + 'group' => 'out-statusnet-core', 'language' => $twnCode)); $lcdir = INSTALLDIR . '/locale/' . $code; diff --git a/scripts/userrole.php b/scripts/userrole.php index 7b6a9b3fd8..a2cc7def88 100644 --- a/scripts/userrole.php +++ b/scripts/userrole.php @@ -38,8 +38,8 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; if (have_option('i', 'id')) { $id = get_option_value('i', 'id'); - $user = User::staticGet('id', $id); - if (empty($user)) { + $profile = Profile::staticGet('id', $id); + if (empty($profile)) { print "Can't find user with ID $id\n"; exit(1); } @@ -50,6 +50,11 @@ if (have_option('i', 'id')) { print "Can't find user with nickname '$nickname'\n"; exit(1); } + $profile = $user->getProfile(); + if (empty($profile)) { + print "User with ID $id has no profile\n"; + exit(1); + } } else { print "You must provide either an ID or a nickname.\n"; exit(1); @@ -63,9 +68,9 @@ if (empty($role)) { } if (have_option('d', 'delete')) { - print "Revoking role '$role' from user '$user->nickname' ($user->id)..."; + print "Revoking role '$role' from user '$profile->nickname' ($profile->id)..."; try { - $user->revokeRole($role); + $profile->revokeRole($role); print "OK\n"; } catch (Exception $e) { print "FAIL\n"; @@ -73,9 +78,9 @@ if (have_option('d', 'delete')) { print "\n"; } } else { - print "Granting role '$role' to user '$user->nickname' ($user->id)..."; + print "Granting role '$role' to user '$profile->nickname' ($profile->id)..."; try { - $user->grantRole($role); + $profile->grantRole($role); print "OK\n"; } catch (Exception $e) { print "FAIL\n"; diff --git a/tests/NicknameTest.php b/tests/NicknameTest.php new file mode 100644 index 0000000000..f49aeba602 --- /dev/null +++ b/tests/NicknameTest.php @@ -0,0 +1,111 @@ +<?php + +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(); +} + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('STATUSNET', true); +define('LACONICA', true); + +require_once INSTALLDIR . '/lib/common.php'; + +/** + * Test cases for nickname validity and normalization. + */ +class NicknameTest extends PHPUnit_Framework_TestCase +{ + /** + * Basic test using Nickname::normalize() + * + * @dataProvider provider + */ + public function testBasic($input, $expected, $expectedException=null) + { + $exception = null; + $normalized = false; + try { + $normalized = Nickname::normalize($input); + } catch (NicknameException $e) { + $exception = $e; + } + + if ($expected === false) { + if ($expectedException) { + $this->assertTrue($exception && $exception instanceof $expectedException, + "invalid input '$input' expected to fail with $expectedException, " . + "got " . get_class($exception) . ': ' . $exception->getMessage()); + } else { + $this->assertTrue($normalized == false, + "invalid input '$input' expected to fail"); + } + } else { + $msg = "normalized input nickname '$input' expected to normalize to '$expected', got "; + if ($exception) { + $msg .= get_class($exception) . ': ' . $exception->getMessage(); + } else { + $msg .= "'$normalized'"; + } + $this->assertEquals($expected, $normalized, $msg); + } + } + + /** + * Test on the regex matching used in common_find_mentions + * (testing on the full notice rendering is difficult as it needs + * to be able to pull from global state) + * + * @dataProvider provider + */ + public function testAtReply($input, $expected, $expectedException=null) + { + if ($expected == false) { + // nothing to do + } else { + $text = "@{$input} awesome! :)"; + $matches = common_find_mentions_raw($text); + $this->assertEquals(1, count($matches)); + $this->assertEquals($expected, Nickname::normalize($matches[0][0])); + } + } + + static public function provider() + { + return array( + array('evan', 'evan'), + + // Case and underscore variants + array('Evan', 'evan'), + array('EVAN', 'evan'), + array('ev_an', 'evan'), + array('E__V_an', 'evan'), + array('evan1', 'evan1'), + array('evan_1', 'evan1'), + array('0x20', '0x20'), + array('1234', '1234'), // should this be allowed though? :) + array('12__34', '1234'), + + // Some (currently) invalid chars... + array('^#@&^#@', false, 'NicknameInvalidException'), // all invalid :D + array('ev.an', false, 'NicknameInvalidException'), + array('ev/an', false, 'NicknameInvalidException'), + array('ev an', false, 'NicknameInvalidException'), + array('ev-an', false, 'NicknameInvalidException'), + + // Non-ASCII letters; currently not allowed, in future + // we'll add them at least with conversion to ASCII. + // Not much use until we have storage of display names, + // though. + array('évan', false, 'NicknameInvalidException'), // so far... + array('Évan', false, 'NicknameInvalidException'), // so far... + + // Length checks + array('', false, 'NicknameEmptyException'), + array('___', false, 'NicknameEmptyException'), + array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), // 64 chars + array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'), // the _ will be trimmed off, remaining valid + array('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', false, 'NicknameTooLongException'), // 65 chars -- too long + ); + } +} diff --git a/tests/URLDetectionTest.php b/tests/URLDetectionTest.php index d83f9faf58..eac7ba3f5c 100644 --- a/tests/URLDetectionTest.php +++ b/tests/URLDetectionTest.php @@ -29,73 +29,73 @@ class URLDetectionTest extends PHPUnit_Framework_TestCase array('not a link :: no way', 'not a link :: no way'), array('link http://www.somesite.com/xyz/35637563@N00/52803365/ link', - 'link <a href="http://www.somesite.com/xyz/35637563@N00/52803365/" title="http://www.somesite.com/xyz/35637563@N00/52803365/" rel="external">http://www.somesite.com/xyz/35637563@N00/52803365/</a> link'), + 'link <a href="http://www.somesite.com/xyz/35637563@N00/52803365/" title="http://www.somesite.com/xyz/35637563@N00/52803365/" rel="nofollow external">http://www.somesite.com/xyz/35637563@N00/52803365/</a> link'), array('http://127.0.0.1', - '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="external">http://127.0.0.1</a>'), + '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="nofollow external">http://127.0.0.1</a>'), array('127.0.0.1', - '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="external">127.0.0.1</a>'), + '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="nofollow external">127.0.0.1</a>'), array('127.0.0.1:99', - '<a href="http://127.0.0.1:99/" title="http://127.0.0.1:99/" rel="external">127.0.0.1:99</a>'), + '<a href="http://127.0.0.1:99/" title="http://127.0.0.1:99/" rel="nofollow external">127.0.0.1:99</a>'), array('127.0.0.1/Name:test.php', - '<a href="http://127.0.0.1/Name:test.php" title="http://127.0.0.1/Name:test.php" rel="external">127.0.0.1/Name:test.php</a>'), + '<a href="http://127.0.0.1/Name:test.php" title="http://127.0.0.1/Name:test.php" rel="nofollow external">127.0.0.1/Name:test.php</a>'), array('127.0.0.1/~test', - '<a href="http://127.0.0.1/~test" title="http://127.0.0.1/~test" rel="external">127.0.0.1/~test</a>'), + '<a href="http://127.0.0.1/~test" title="http://127.0.0.1/~test" rel="nofollow external">127.0.0.1/~test</a>'), array('127.0.0.1/+test', - '<a href="http://127.0.0.1/+test" title="http://127.0.0.1/+test" rel="external">127.0.0.1/+test</a>'), + '<a href="http://127.0.0.1/+test" title="http://127.0.0.1/+test" rel="nofollow external">127.0.0.1/+test</a>'), array('127.0.0.1/$test', - '<a href="http://127.0.0.1/$test" title="http://127.0.0.1/$test" rel="external">127.0.0.1/$test</a>'), + '<a href="http://127.0.0.1/$test" title="http://127.0.0.1/$test" rel="nofollow external">127.0.0.1/$test</a>'), array('127.0.0.1/\'test', - '<a href="http://127.0.0.1/\'test" title="http://127.0.0.1/\'test" rel="external">127.0.0.1/\'test</a>'), + '<a href="http://127.0.0.1/\'test" title="http://127.0.0.1/\'test" rel="nofollow external">127.0.0.1/\'test</a>'), array('127.0.0.1/"test', - '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="external">127.0.0.1/</a>"test'), + '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="nofollow external">127.0.0.1/</a>"test'), array('127.0.0.1/test"test', - '<a href="http://127.0.0.1/test" title="http://127.0.0.1/test" rel="external">127.0.0.1/test</a>"test'), + '<a href="http://127.0.0.1/test" title="http://127.0.0.1/test" rel="nofollow external">127.0.0.1/test</a>"test'), array('127.0.0.1/-test', - '<a href="http://127.0.0.1/-test" title="http://127.0.0.1/-test" rel="external">127.0.0.1/-test</a>'), + '<a href="http://127.0.0.1/-test" title="http://127.0.0.1/-test" rel="nofollow external">127.0.0.1/-test</a>'), array('127.0.0.1/_test', - '<a href="http://127.0.0.1/_test" title="http://127.0.0.1/_test" rel="external">127.0.0.1/_test</a>'), + '<a href="http://127.0.0.1/_test" title="http://127.0.0.1/_test" rel="nofollow external">127.0.0.1/_test</a>'), array('127.0.0.1/!test', - '<a href="http://127.0.0.1/!test" title="http://127.0.0.1/!test" rel="external">127.0.0.1/!test</a>'), + '<a href="http://127.0.0.1/!test" title="http://127.0.0.1/!test" rel="nofollow external">127.0.0.1/!test</a>'), array('127.0.0.1/*test', - '<a href="http://127.0.0.1/*test" title="http://127.0.0.1/*test" rel="external">127.0.0.1/*test</a>'), + '<a href="http://127.0.0.1/*test" title="http://127.0.0.1/*test" rel="nofollow external">127.0.0.1/*test</a>'), array('127.0.0.1/test%20stuff', - '<a href="http://127.0.0.1/test%20stuff" title="http://127.0.0.1/test%20stuff" rel="external">127.0.0.1/test%20stuff</a>'), + '<a href="http://127.0.0.1/test%20stuff" title="http://127.0.0.1/test%20stuff" rel="nofollow external">127.0.0.1/test%20stuff</a>'), array('http://[::1]:99/test.php', - '<a href="http://[::1]:99/test.php" title="http://[::1]:99/test.php" rel="external">http://[::1]:99/test.php</a>'), + '<a href="http://[::1]:99/test.php" title="http://[::1]:99/test.php" rel="nofollow external">http://[::1]:99/test.php</a>'), array('http://::1/test.php', - '<a href="http://::1/test.php" title="http://::1/test.php" rel="external">http://::1/test.php</a>'), + '<a href="http://::1/test.php" title="http://::1/test.php" rel="nofollow external">http://::1/test.php</a>'), array('http://::1', - '<a href="http://::1/" title="http://::1/" rel="external">http://::1</a>'), + '<a href="http://::1/" title="http://::1/" rel="nofollow external">http://::1</a>'), array('2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php', - '<a href="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php" title="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php" rel="external">2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php</a>'), + '<a href="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php" title="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php" rel="nofollow external">2001:4978:1b5:0:21d:e0ff:fe66:59ab/test.php</a>'), array('[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php', - '<a href="http://[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php" title="http://[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php" rel="external">[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php</a>'), + '<a href="http://[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php" title="http://[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php" rel="nofollow external">[2001:4978:1b5:0:21d:e0ff:fe66:59ab]:99/test.php</a>'), array('2001:4978:1b5:0:21d:e0ff:fe66:59ab', - '<a href="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/" title="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/" rel="external">2001:4978:1b5:0:21d:e0ff:fe66:59ab</a>'), + '<a href="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/" title="http://2001:4978:1b5:0:21d:e0ff:fe66:59ab/" rel="nofollow external">2001:4978:1b5:0:21d:e0ff:fe66:59ab</a>'), array('http://127.0.0.1', - '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="external">http://127.0.0.1</a>'), + '<a href="http://127.0.0.1/" title="http://127.0.0.1/" rel="nofollow external">http://127.0.0.1</a>'), array('example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>'), array('example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>'), array('http://example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>'), array('http://example.com.', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>.'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>.'), array('/var/lib/example.so', '/var/lib/example.so'), array('example', 'example'), array('user@example.com', - '<a href="mailto:user@example.com" title="mailto:user@example.com" rel="external">user@example.com</a>'), + '<a href="mailto:user@example.com" title="mailto:user@example.com" rel="nofollow external">user@example.com</a>'), array('user_name+other@example.com', - '<a href="mailto:user_name+other@example.com" title="mailto:user_name+other@example.com" rel="external">user_name+other@example.com</a>'), + '<a href="mailto:user_name+other@example.com" title="mailto:user_name+other@example.com" rel="nofollow external">user_name+other@example.com</a>'), array('mailto:user@example.com', - '<a href="mailto:user@example.com" title="mailto:user@example.com" rel="external">mailto:user@example.com</a>'), + '<a href="mailto:user@example.com" title="mailto:user@example.com" rel="nofollow external">mailto:user@example.com</a>'), array('mailto:user@example.com?subject=test', - '<a href="mailto:user@example.com?subject=test" title="mailto:user@example.com?subject=test" rel="external">mailto:user@example.com?subject=test</a>'), + '<a href="mailto:user@example.com?subject=test" title="mailto:user@example.com?subject=test" rel="nofollow external">mailto:user@example.com?subject=test</a>'), array('xmpp:user@example.com', - '<a href="xmpp:user@example.com" title="xmpp:user@example.com" rel="external">xmpp:user@example.com</a>'), + '<a href="xmpp:user@example.com" title="xmpp:user@example.com" rel="nofollow external">xmpp:user@example.com</a>'), array('#example', '#<span class="tag"><a href="' . common_local_url('tag', array('tag' => common_canonical_tag('example'))) . '" rel="tag">example</a></span>'), array('#example.com', @@ -103,167 +103,167 @@ class URLDetectionTest extends PHPUnit_Framework_TestCase array('#.net', '#<span class="tag"><a href="' . common_local_url('tag', array('tag' => common_canonical_tag('.net'))) . '" rel="tag">.net</a></span>'), array('http://example', - '<a href="http://example/" title="http://example/" rel="external">http://example</a>'), + '<a href="http://example/" title="http://example/" rel="nofollow external">http://example</a>'), array('http://3xampl3', - '<a href="http://3xampl3/" title="http://3xampl3/" rel="external">http://3xampl3</a>'), + '<a href="http://3xampl3/" title="http://3xampl3/" rel="nofollow external">http://3xampl3</a>'), array('http://example/', - '<a href="http://example/" title="http://example/" rel="external">http://example/</a>'), + '<a href="http://example/" title="http://example/" rel="nofollow external">http://example/</a>'), array('http://example/path', - '<a href="http://example/path" title="http://example/path" rel="external">http://example/path</a>'), + '<a href="http://example/path" title="http://example/path" rel="nofollow external">http://example/path</a>'), array('http://example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>'), array('https://example.com', - '<a href="https://example.com/" title="https://example.com/" rel="external">https://example.com</a>'), + '<a href="https://example.com/" title="https://example.com/" rel="nofollow external">https://example.com</a>'), array('ftp://example.com', - '<a href="ftp://example.com/" title="ftp://example.com/" rel="external">ftp://example.com</a>'), + '<a href="ftp://example.com/" title="ftp://example.com/" rel="nofollow external">ftp://example.com</a>'), array('ftps://example.com', - '<a href="ftps://example.com/" title="ftps://example.com/" rel="external">ftps://example.com</a>'), + '<a href="ftps://example.com/" title="ftps://example.com/" rel="nofollow external">ftps://example.com</a>'), array('http://user@example.com', - '<a href="http://user@example.com/" title="http://user@example.com/" rel="external">http://user@example.com</a>'), + '<a href="http://user@example.com/" title="http://user@example.com/" rel="nofollow external">http://user@example.com</a>'), array('http://user:pass@example.com', - '<a href="http://user:pass@example.com/" title="http://user:pass@example.com/" rel="external">http://user:pass@example.com</a>'), + '<a href="http://user:pass@example.com/" title="http://user:pass@example.com/" rel="nofollow external">http://user:pass@example.com</a>'), array('http://example.com:8080', - '<a href="http://example.com:8080/" title="http://example.com:8080/" rel="external">http://example.com:8080</a>'), + '<a href="http://example.com:8080/" title="http://example.com:8080/" rel="nofollow external">http://example.com:8080</a>'), array('http://example.com:8080/test.php', - '<a href="http://example.com:8080/test.php" title="http://example.com:8080/test.php" rel="external">http://example.com:8080/test.php</a>'), + '<a href="http://example.com:8080/test.php" title="http://example.com:8080/test.php" rel="nofollow external">http://example.com:8080/test.php</a>'), array('example.com:8080/test.php', - '<a href="http://example.com:8080/test.php" title="http://example.com:8080/test.php" rel="external">example.com:8080/test.php</a>'), + '<a href="http://example.com:8080/test.php" title="http://example.com:8080/test.php" rel="nofollow external">example.com:8080/test.php</a>'), array('http://www.example.com', - '<a href="http://www.example.com/" title="http://www.example.com/" rel="external">http://www.example.com</a>'), + '<a href="http://www.example.com/" title="http://www.example.com/" rel="nofollow external">http://www.example.com</a>'), array('http://example.com/', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com/</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com/</a>'), array('http://example.com/path', - '<a href="http://example.com/path" title="http://example.com/path" rel="external">http://example.com/path</a>'), + '<a href="http://example.com/path" title="http://example.com/path" rel="nofollow external">http://example.com/path</a>'), array('http://example.com/path.html', - '<a href="http://example.com/path.html" title="http://example.com/path.html" rel="external">http://example.com/path.html</a>'), + '<a href="http://example.com/path.html" title="http://example.com/path.html" rel="nofollow external">http://example.com/path.html</a>'), array('http://example.com/path.html#fragment', - '<a href="http://example.com/path.html#fragment" title="http://example.com/path.html#fragment" rel="external">http://example.com/path.html#fragment</a>'), + '<a href="http://example.com/path.html#fragment" title="http://example.com/path.html#fragment" rel="nofollow external">http://example.com/path.html#fragment</a>'), array('http://example.com/path.php?foo=bar&bar=foo', - '<a href="http://example.com/path.php?foo=bar&bar=foo" title="http://example.com/path.php?foo=bar&bar=foo" rel="external">http://example.com/path.php?foo=bar&bar=foo</a>'), + '<a href="http://example.com/path.php?foo=bar&bar=foo" title="http://example.com/path.php?foo=bar&bar=foo" rel="nofollow external">http://example.com/path.php?foo=bar&bar=foo</a>'), array('http://example.com.', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>.'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>.'), array('http://müllärör.de', - '<a href="http://müllärör.de/" title="http://müllärör.de/" rel="external">http://müllärör.de</a>'), + '<a href="http://müllärör.de/" title="http://müllärör.de/" rel="nofollow external">http://müllärör.de</a>'), array('http://ﺱﺲﺷ.com', - '<a href="http://ﺱﺲﺷ.com/" title="http://ﺱﺲﺷ.com/" rel="external">http://ﺱﺲﺷ.com</a>'), + '<a href="http://ﺱﺲﺷ.com/" title="http://ﺱﺲﺷ.com/" rel="nofollow external">http://ﺱﺲﺷ.com</a>'), array('http://сделаткартинки.com', - '<a href="http://сделаткартинки.com/" title="http://сделаткартинки.com/" rel="external">http://сделаткартинки.com</a>'), + '<a href="http://сделаткартинки.com/" title="http://сделаткартинки.com/" rel="nofollow external">http://сделаткартинки.com</a>'), array('http://tūdaliņ.lv', - '<a href="http://tūdaliņ.lv/" title="http://tūdaliņ.lv/" rel="external">http://tūdaliņ.lv</a>'), + '<a href="http://tūdaliņ.lv/" title="http://tūdaliņ.lv/" rel="nofollow external">http://tūdaliņ.lv</a>'), array('http://brændendekærlighed.com', - '<a href="http://brændendekærlighed.com/" title="http://brændendekærlighed.com/" rel="external">http://brændendekærlighed.com</a>'), + '<a href="http://brændendekærlighed.com/" title="http://brændendekærlighed.com/" rel="nofollow external">http://brændendekærlighed.com</a>'), array('http://あーるいん.com', - '<a href="http://あーるいん.com/" title="http://あーるいん.com/" rel="external">http://あーるいん.com</a>'), + '<a href="http://あーるいん.com/" title="http://あーるいん.com/" rel="nofollow external">http://あーるいん.com</a>'), array('http://예비교사.com', - '<a href="http://예비교사.com/" title="http://예비교사.com/" rel="external">http://예비교사.com</a>'), + '<a href="http://예비교사.com/" title="http://예비교사.com/" rel="nofollow external">http://예비교사.com</a>'), array('http://example.com.', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>.'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>.'), array('http://example.com?', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>?'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>?'), array('http://example.com!', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>!'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>!'), array('http://example.com,', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>,'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>,'), array('http://example.com;', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>;'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>;'), array('http://example.com:', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>:'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>:'), array('\'http://example.com\'', - '\'<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>\''), + '\'<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>\''), array('"http://example.com"', - '"<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>"'), + '"<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>"'), array('"http://example.com/"', - '"<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com/</a>"'), + '"<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com/</a>"'), array('http://example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>'), array('(http://example.com)', - '(<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>)'), + '(<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>)'), array('[http://example.com]', - '[<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>]'), + '[<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>]'), array('<http://example.com>', - '<<a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a>>'), + '<<a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a>>'), array('http://example.com/path/(foo)/bar', - '<a href="http://example.com/path/(foo)/bar" title="http://example.com/path/(foo)/bar" rel="external">http://example.com/path/(foo)/bar</a>'), + '<a href="http://example.com/path/(foo)/bar" title="http://example.com/path/(foo)/bar" rel="nofollow external">http://example.com/path/(foo)/bar</a>'), array('http://example.com/path/[foo]/bar', - '<a href="http://example.com/path/" title="http://example.com/path/" rel="external">http://example.com/path/</a>[foo]/bar'), + '<a href="http://example.com/path/" title="http://example.com/path/" rel="nofollow external">http://example.com/path/</a>[foo]/bar'), array('http://example.com/path/foo/(bar)', - '<a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>'), + '<a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">http://example.com/path/foo/(bar)</a>'), //Not a valid url - urls cannot contain unencoded square brackets array('http://example.com/path/foo/[bar]', - '<a href="http://example.com/path/foo/" title="http://example.com/path/foo/" rel="external">http://example.com/path/foo/</a>[bar]'), + '<a href="http://example.com/path/foo/" title="http://example.com/path/foo/" rel="nofollow external">http://example.com/path/foo/</a>[bar]'), array('Hey, check out my cool site http://example.com okay?', - 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">http://example.com</a> okay?'), + 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="nofollow external">http://example.com</a> okay?'), array('What about parens (e.g. http://example.com/path/foo/(bar))?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>)?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">http://example.com/path/foo/(bar)</a>)?'), array('What about parens (e.g. http://example.com/path/foo/(bar)?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">http://example.com/path/foo/(bar)</a>?'), array('What about parens (e.g. http://example.com/path/foo/(bar).)?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>.)?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">http://example.com/path/foo/(bar)</a>.)?'), //Not a valid url - urls cannot contain unencoded commas array('What about parens (e.g. http://example.com/path/(foo,bar)?', - 'What about parens (e.g. <a href="http://example.com/path/(foo,bar)" title="http://example.com/path/(foo,bar)" rel="external">http://example.com/path/(foo,bar)</a>?'), + 'What about parens (e.g. <a href="http://example.com/path/(foo,bar)" title="http://example.com/path/(foo,bar)" rel="nofollow external">http://example.com/path/(foo,bar)</a>?'), array('Unbalanced too (e.g. http://example.com/path/((((foo)/bar)?', - 'Unbalanced too (e.g. <a href="http://example.com/path/((((foo)/bar)" title="http://example.com/path/((((foo)/bar)" rel="external">http://example.com/path/((((foo)/bar)</a>?'), + 'Unbalanced too (e.g. <a href="http://example.com/path/((((foo)/bar)" title="http://example.com/path/((((foo)/bar)" rel="nofollow external">http://example.com/path/((((foo)/bar)</a>?'), array('Unbalanced too (e.g. http://example.com/path/(foo))))/bar)?', - 'Unbalanced too (e.g. <a href="http://example.com/path/(foo))))/bar" title="http://example.com/path/(foo))))/bar" rel="external">http://example.com/path/(foo))))/bar</a>)?'), + 'Unbalanced too (e.g. <a href="http://example.com/path/(foo))))/bar" title="http://example.com/path/(foo))))/bar" rel="nofollow external">http://example.com/path/(foo))))/bar</a>)?'), array('Unbalanced too (e.g. http://example.com/path/foo/((((bar)?', - 'Unbalanced too (e.g. <a href="http://example.com/path/foo/((((bar)" title="http://example.com/path/foo/((((bar)" rel="external">http://example.com/path/foo/((((bar)</a>?'), + 'Unbalanced too (e.g. <a href="http://example.com/path/foo/((((bar)" title="http://example.com/path/foo/((((bar)" rel="nofollow external">http://example.com/path/foo/((((bar)</a>?'), array('Unbalanced too (e.g. http://example.com/path/foo/(bar))))?', - 'Unbalanced too (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">http://example.com/path/foo/(bar)</a>)))?'), + 'Unbalanced too (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">http://example.com/path/foo/(bar)</a>)))?'), array('example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>'), array('example.org', - '<a href="http://example.org/" title="http://example.org/" rel="external">example.org</a>'), + '<a href="http://example.org/" title="http://example.org/" rel="nofollow external">example.org</a>'), array('example.co.uk', - '<a href="http://example.co.uk/" title="http://example.co.uk/" rel="external">example.co.uk</a>'), + '<a href="http://example.co.uk/" title="http://example.co.uk/" rel="nofollow external">example.co.uk</a>'), array('www.example.co.uk', - '<a href="http://www.example.co.uk/" title="http://www.example.co.uk/" rel="external">www.example.co.uk</a>'), + '<a href="http://www.example.co.uk/" title="http://www.example.co.uk/" rel="nofollow external">www.example.co.uk</a>'), array('farm1.images.example.co.uk', - '<a href="http://farm1.images.example.co.uk/" title="http://farm1.images.example.co.uk/" rel="external">farm1.images.example.co.uk</a>'), + '<a href="http://farm1.images.example.co.uk/" title="http://farm1.images.example.co.uk/" rel="nofollow external">farm1.images.example.co.uk</a>'), array('example.museum', - '<a href="http://example.museum/" title="http://example.museum/" rel="external">example.museum</a>'), + '<a href="http://example.museum/" title="http://example.museum/" rel="nofollow external">example.museum</a>'), array('example.travel', - '<a href="http://example.travel/" title="http://example.travel/" rel="external">example.travel</a>'), + '<a href="http://example.travel/" title="http://example.travel/" rel="nofollow external">example.travel</a>'), array('example.com.', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>.'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>.'), array('example.com?', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>?'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>?'), array('example.com!', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>!'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>!'), array('example.com,', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>,'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>,'), array('example.com;', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>;'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>;'), array('example.com:', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>:'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>:'), array('\'example.com\'', - '\'<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>\''), + '\'<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>\''), array('"example.com"', - '"<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>"'), + '"<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>"'), array('example.com', - '<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>'), + '<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>'), array('(example.com)', - '(<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>)'), + '(<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>)'), array('[example.com]', - '[<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>]'), + '[<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>]'), array('<example.com>', - '<<a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>>'), + '<<a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>>'), array('Hey, check out my cool site example.com okay?', - 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">example.com</a> okay?'), + 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a> okay?'), array('Hey, check out my cool site example.com.I made it.', - 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>.I made it.'), + 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>.I made it.'), array('Hey, check out my cool site example.com.Funny thing...', - 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>.Funny thing...'), + 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>.Funny thing...'), array('Hey, check out my cool site example.com.You will love it.', - 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="external">example.com</a>.You will love it.'), + 'Hey, check out my cool site <a href="http://example.com/" title="http://example.com/" rel="nofollow external">example.com</a>.You will love it.'), array('What about parens (e.g. example.com/path/foo/(bar))?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">example.com/path/foo/(bar)</a>)?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">example.com/path/foo/(bar)</a>)?'), array('What about parens (e.g. example.com/path/foo/(bar)?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">example.com/path/foo/(bar)</a>?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">example.com/path/foo/(bar)</a>?'), array('What about parens (e.g. example.com/path/foo/(bar).)?', - 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="external">example.com/path/foo/(bar)</a>.)?'), + 'What about parens (e.g. <a href="http://example.com/path/foo/(bar)" title="http://example.com/path/foo/(bar)" rel="nofollow external">example.com/path/foo/(bar)</a>.)?'), array('What about parens (e.g. example.com/path/(foo,bar)?', - 'What about parens (e.g. <a href="http://example.com/path/(foo,bar)" title="http://example.com/path/(foo,bar)" rel="external">example.com/path/(foo,bar)</a>?'), + 'What about parens (e.g. <a href="http://example.com/path/(foo,bar)" title="http://example.com/path/(foo,bar)" rel="nofollow external">example.com/path/(foo,bar)</a>?'), array('file.ext', 'file.ext'), array('file.html', diff --git a/tests/atompub/atompub_test.php b/tests/atompub/atompub_test.php new file mode 100644 index 0000000000..e23e4a711b --- /dev/null +++ b/tests/atompub/atompub_test.php @@ -0,0 +1,381 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2010, 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 <http://www.gnu.org/licenses/>. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +$shortoptions = 'n:p:'; +$longoptions = array('nickname=', 'password=', 'dry-run'); + +$helptext = <<<END_OF_HELP +USAGE: atompub_test.php [options] + +Runs some tests on the AtomPub interface for the site. You must provide +a user account to authenticate as; it will be used to make some test +posts on the site. + +Options: + -n<user> --nickname=<user> Nickname of account to post as + -p<pass> --password=<pass> Password for account + --dry-run Skip tests that modify the site (post, delete) + +END_OF_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +class AtomPubClient +{ + public $url; + private $user, $pass; + + /** + * + * @param string $url collection feed URL + * @param string $user auth username + * @param string $pass auth password + */ + function __construct($url, $user, $pass) + { + $this->url = $url; + $this->user = $user; + $this->pass = $pass; + } + + /** + * Set up an HTTPClient with auth for our resource. + * + * @param string $method + * @return HTTPClient + */ + private function httpClient($method='GET') + { + $client = new HTTPClient($this->url); + $client->setMethod($method); + $client->setAuth($this->user, $this->pass); + return $client; + } + + function get() + { + $client = $this->httpClient('GET'); + $response = $client->send(); + if ($response->isOk()) { + return $response->getBody(); + } else { + throw new Exception("Bogus return code: " . $response->getStatus() . ': ' . $response->getBody()); + } + } + + /** + * Create a new resource by POSTing it to the collection. + * If successful, will return the URL representing the + * canonical location of the new resource. Neat! + * + * @param string $data + * @param string $type defaults to Atom entry + * @return string URL to the created resource + * + * @throws exceptions on failure + */ + function post($data, $type='application/atom+xml;type=entry') + { + $client = $this->httpClient('POST'); + $client->setHeader('Content-Type', $type); + // optional Slug header not used in this case + $client->setBody($data); + $response = $client->send(); + + if ($response->getStatus() != '201') { + throw new Exception("Expected HTTP 201 on POST, got " . $response->getStatus() . ': ' . $response->getBody()); + } + $loc = $response->getHeader('Location'); + $contentLoc = $response->getHeader('Content-Location'); + + if (empty($loc)) { + throw new Exception("AtomPub POST response missing Location header."); + } + if (!empty($contentLoc)) { + if ($loc != $contentLoc) { + throw new Exception("AtomPub POST response Location and Content-Location headers do not match."); + } + + // If Content-Location and Location match, that means the response + // body is safe to interpret as the resource itself. + if ($type == 'application/atom+xml;type=entry') { + self::validateAtomEntry($response->getBody()); + } + } + + return $loc; + } + + /** + * Note that StatusNet currently doesn't allow PUT editing on notices. + * + * @param string $data + * @param string $type defaults to Atom entry + * @return true on success + * + * @throws exceptions on failure + */ + function put($data, $type='application/atom+xml;type=entry') + { + $client = $this->httpClient('PUT'); + $client->setHeader('Content-Type', $type); + $client->setBody($data); + $response = $client->send(); + + if ($response->getStatus() != '200' && $response->getStatus() != '204') { + throw new Exception("Expected HTTP 200 or 204 on PUT, got " . $response->getStatus() . ': ' . $response->getBody()); + } + + return true; + } + + /** + * Delete the resource. + * + * @return true on success + * + * @throws exceptions on failure + */ + function delete() + { + $client = $this->httpClient('DELETE'); + $client->setBody($data); + $response = $client->send(); + + if ($response->getStatus() != '200' && $response->getStatus() != '204') { + throw new Exception("Expected HTTP 200 or 204 on DELETE, got " . $response->getStatus() . ': ' . $response->getBody()); + } + + return true; + } + + /** + * Ensure that the given string is a parseable Atom entry. + * + * @param string $str + * @return boolean + * @throws Exception on invalid input + */ + static function validateAtomEntry($str) + { + if (empty($str)) { + throw new Exception('Bad Atom entry: empty'); + } + $dom = new DOMDocument; + if (!$dom->loadXML($str)) { + throw new Exception('Bad Atom entry: XML is not well formed.'); + } + + $activity = new Activity($dom->documentRoot); + return true; + } + + static function entryEditURL($str) { + $dom = new DOMDocument; + $dom->loadXML($str); + $path = new DOMXPath($dom); + $path->registerNamespace('atom', 'http://www.w3.org/2005/Atom'); + + $links = $path->query('/atom:entry/atom:link[@rel="edit"]', $dom->documentRoot); + if ($links && $links->length) { + if ($links->length > 1) { + throw new Exception('Bad Atom entry; has multiple rel=edit links.'); + } + $link = $links->item(0); + $url = $link->getAttribute('href'); + return $url; + } else { + throw new Exception('Atom entry lists no rel=edit link.'); + } + } + + static function entryId($str) { + $dom = new DOMDocument; + $dom->loadXML($str); + $path = new DOMXPath($dom); + $path->registerNamespace('atom', 'http://www.w3.org/2005/Atom'); + + $links = $path->query('/atom:entry/atom:id', $dom->documentRoot); + if ($links && $links->length) { + if ($links->length > 1) { + throw new Exception('Bad Atom entry; has multiple id entries.'); + } + $link = $links->item(0); + $url = $link->textContent; + return $url; + } else { + throw new Exception('Atom entry lists no id.'); + } + } + + static function getEntryInFeed($str, $id) + { + $dom = new DOMDocument; + $dom->loadXML($str); + $path = new DOMXPath($dom); + $path->registerNamespace('atom', 'http://www.w3.org/2005/Atom'); + + $query = '/atom:feed/atom:entry[atom:id="'.$id.'"]'; + $items = $path->query($query, $dom->documentRoot); + if ($items && $items->length) { + return $items->item(0); + } else { + return null; + } + } +} + + +$user = get_option_value('n', 'nickname'); +$pass = get_option_value('p', 'password'); + +if (!$user) { + die("Must set a user: --nickname=<username>\n"); +} +if (!$pass) { + die("Must set a password: --password=<username>\n"); +} + +// discover the feed... +// @fixme will this actually work? +$url = common_local_url('ApiTimelineUser', array('format' => 'atom', 'id' => $user)); + +echo "Collection URL is: $url\n"; + +$collection = new AtomPubClient($url, $user, $pass); + +// confirm the feed has edit links ..... ? + +echo "Posting an empty message (should fail)... "; +try { + $noticeUrl = $collection->post(''); + die("FAILED, succeeded!\n"); +} catch (Exception $e) { + echo "ok\n"; +} + +echo "Posting an invalid XML message (should fail)... "; +try { + $noticeUrl = $collection->post('<feed<entry>barf</yomomma>'); + die("FAILED, succeeded!\n"); +} catch (Exception $e) { + echo "ok\n"; +} + +echo "Posting a valid XML but non-Atom message (should fail)... "; +try { + $noticeUrl = $collection->post('<feed xmlns="http://notatom.com"><id>arf</id><entry><id>barf</id></entry></feed>'); + die("FAILED, succeeded!\n"); +} catch (Exception $e) { + echo "ok\n"; +} + +// post! +$rand = mt_rand(0, 99999); +$atom = <<<END_ATOM +<entry xmlns="http://www.w3.org/2005/Atom"> + <title>This is an AtomPub test post title ($rand) + This is an AtomPub test post content ($rand) + +END_ATOM; + +echo "Posting a new message... "; +$noticeUrl = $collection->post($atom); +echo "ok, got $noticeUrl\n"; + +echo "Fetching the new notice... "; +$notice = new AtomPubClient($noticeUrl, $user, $pass); +$body = $notice->get(); +AtomPubClient::validateAtomEntry($body); +echo "ok\n"; + +echo "Getting the notice ID URI... "; +$noticeUri = AtomPubClient::entryId($body); +echo "ok: $noticeUri\n"; + +echo "Confirming new entry points to itself right... "; +$editUrl = AtomPubClient::entryEditURL($body); +if ($editUrl != $noticeUrl) { + die("Entry lists edit URL as $editUrl, no match!\n"); +} +echo "OK\n"; + +echo "Refetching the collection... "; +$feed = $collection->get(); +echo "ok\n"; + +echo "Confirming new entry is in the feed... "; +$entry = AtomPubClient::getEntryInFeed($feed, $noticeUri); +if (!$entry) { + die("missing!\n"); +} +// edit URL should match +echo "ok\n"; + +echo "Editing notice (should fail)... "; +try { + $notice->put($target, $atom2); + die("ERROR: editing a notice should have failed.\n"); +} catch (Exception $e) { + echo "ok (failed as expected)\n"; +} + +echo "Deleting notice... "; +$notice->delete(); +echo "ok\n"; + +echo "Refetching deleted notice to confirm it's gone... "; +try { + $body = $notice->get(); + var_dump($body); + die("ERROR: notice should be gone now.\n"); +} catch (Exception $e) { + echo "ok\n"; +} + +echo "Refetching the collection.. "; +$feed = $collection->get(); +echo "ok\n"; + +echo "Confirming deleted notice is no longer in the feed... "; +$entry = AtomPubClient::getEntryInFeed($feed, $noticeUri); +if ($entry) { + die("still there!\n"); +} +echo "ok\n"; + +// make subscriptions +// make some posts +// make sure the posts go through or not depending on the subs +// remove subscriptions +// test that they don't go through now + +// group memberships too + + + + +// make sure we can't post to someone else's feed! +// make sure we can't delete someone else's messages +// make sure we can't create/delete someone else's subscriptions +// make sure we can't create/delete someone else's group memberships + diff --git a/tests/oEmbedTest.php b/tests/oEmbedTest.php new file mode 100644 index 0000000000..b5e441c42f --- /dev/null +++ b/tests/oEmbedTest.php @@ -0,0 +1,140 @@ +old_oohembed = common_config('oohembed', 'endpoint'); + } + + public function tearDown() + { + $GLOBALS['config']['oohembed']['endpoint'] = $this->old_oohembed; + } + + /** + * Test with oohembed DISABLED. + * + * @dataProvider discoverableSources + */ + public function testoEmbed($url, $expectedType) + { + $GLOBALS['config']['oohembed']['endpoint'] = false; + $this->_doTest($url, $expectedType); + } + + /** + * Test with oohembed ENABLED. + * + * @dataProvider fallbackSources + */ + public function testoohEmbed($url, $expectedType) + { + $GLOBALS['config']['oohembed']['endpoint'] = $this->_endpoint(); + $this->_doTest($url, $expectedType); + } + + /** + * Get default oohembed endpoint. + * + * @return string + */ + function _endpoint() + { + $default = array(); + $_server = 'localhost'; $_path = ''; + require INSTALLDIR . '/lib/default.php'; + return $default['oohembed']['endpoint']; + } + + /** + * Actually run an individual test. + * + * @param string $url + * @param string $expectedType + */ + function _doTest($url, $expectedType) + { + try { + $data = oEmbedHelper::getObject($url); + $this->assertEquals($expectedType, $data->type); + if ($data->type == 'photo') { + $this->assertTrue(!empty($data->url), 'Photo must have a URL.'); + $this->assertTrue(!empty($data->width), 'Photo must have a width.'); + $this->assertTrue(!empty($data->height), 'Photo must have a height.'); + } else if ($data->type == 'video') { + $this->assertTrue(!empty($data->html), 'Video must have embedding HTML.'); + $this->assertTrue(!empty($data->thumbnail_url), 'Video should have a thumbnail.'); + } + if (!empty($data->thumbnail_url)) { + $this->assertTrue(!empty($data->thumbnail_width), 'Thumbnail must list a width.'); + $this->assertTrue(!empty($data->thumbnail_height), 'Thumbnail must list a height.'); + } + } catch (Exception $e) { + if ($expectedType == 'none') { + $this->assertEquals($expectedType, 'none', 'Should not have data for this URL.'); + } else { + throw $e; + } + } + } + + /** + * Sample oEmbed targets for sites we know ourselves... + * @return array + */ + static public function knownSources() + { + $sources = array( + array('http://www.flickr.com/photos/brionv/5172500179/', 'photo'), + array('http://yfrog.com/fy42747177j', 'photo'), + array('http://twitpic.com/36adw6', 'photo'), + ); + return $sources; + } + + /** + * Sample oEmbed targets that can be found via discovery. + * Includes also knownSources() output. + * + * @return array + */ + static public function discoverableSources() + { + $sources = array( + array('http://identi.ca/attachment/34437400', 'photo'), + + array('http://www.youtube.com/watch?v=eUgLR232Cnw', 'video'), + array('http://vimeo.com/9283184', 'video'), + + // Will fail discovery: + array('http://leuksman.com/log/2010/10/29/statusnet-0-9-6-release/', 'none'), + ); + return array_merge(self::knownSources(), $sources); + } + + /** + * Sample oEmbed targets that can be found via oohembed.com. + * Includes also discoverableSources() output. + * + * @return array + */ + static public function fallbackSources() + { + $sources = array( + array('http://en.wikipedia.org/wiki/File:Wiki.png', 'link'), // @fixme in future there may be a native provider -- will change to 'photo' + ); + return array_merge(self::discoverableSources(), $sources); + } +} diff --git a/tests/oauth/README b/tests/oauth/README index dd76feb0c6..13f1d0c039 100644 --- a/tests/oauth/README +++ b/tests/oauth/README @@ -1,22 +1,160 @@ Some very rough test scripts for hitting up the OAuth endpoints. -Note: this works best if you register an OAuth application, leaving -the callback URL blank. +These instructions assume you understand the basics of how OAuth +works. You may want to read up about it first. Here are some good +resources for learning about OAuth: -Put your instance info and consumer key and secret in oauth.ini + http://hueniverse.com/oauth/ + http://tools.ietf.org/html/rfc5849 -Example usage: --------------- +To use these scripts (and OAuth in general) first you will need to +register and OAuth client application with your StatusNet instance: -php getrequesttoken.php + http://example.status.net/settings/oauthapps -Gets a request token, token secret and a url to authorize it. Once -you authorize the request token you can exchange it for an access token... +oauth.ini +--------- -php exchangetokens.php --oauth_token=b9a79548a88c1aa9a5bea73103c6d41d --token_secret=4a47d9337fc0202a14ab552e17a3b657 +Using oauth.ini.sample as a guide, put your StatusNet OAuth endpoints +and consumer key and secret in a file called oauth.ini and save it +in the same directory as these scripts. -Once you have your access token, go ahead and try a protected API -resource: +fetch_temp_creds.php +-------------------- -php verifycreds.php --oauth_token=cf2de7665f0dda0a82c2dc39b01be7f9 --token_secret=4524c3b712200138e1a4cff2e9ca83d8 +Will fetch a request token, token secret and a URL to authorize the +token. Once you authorize the request token, you can exchange it +for an access token. + +example usage: + + $ php fetch_temp_creds.php + Request Token + - oauth_token = 89d481e376edc622f08da5791e6a4446 + - oauth_token_secret = 6d028bcd1ea125cbed7da2f254219885 + Authorize URL + http://example.status.net/api/oauth/authorize?oauth_token=89d481e376edc622f08da5791e6a4446 + + Now paste the Authorize URL into your browser and authorize your temporary credentials. + +fetch_token_creds.php +--------------------- + +After you have authorized your request token, you will be presented +with a verifier code, or pin, in your browser, which you will need +to get an access token. Make sure you copy it into a text buffer +or write it down or something. Then call fetch_token_credentials.php +to exchange your temporary credentials for real token credentials. + +example usage: + + $ php fetch_token_creds.php -t 89d481e376edc622f08da5791e6a4446 -s 6d028bcd1ea125cbed7da2f254219885 -v 305162 + Access Token + - oauth_token = 9b354df102d8e2b4621122c85d8d045c + - oauth_token_secret = 1800a88f1574b47d595214a74e5b1ec5 + + +oauth_verify_credentials.php +---------------------------- + +Now you should have real token credentials (an OAuth access token) +and you can access protected API resources. This is an example +script that calls /api/account/verify_credentials.xml. + +example usage: + + $ php oauth_verify_creds.php -t 80305cd15c5c69834364ac02d7f9178c -s 673e3b2978b1b92c8edbfe172505fee1 + + + 23 + zach + zach + + + http://example.status.net/theme/default/default-avatar-stream.png + + false + 0 + + + + + + 0 + Thu Sep 30 23:11:00 +0000 2010 + 0 + 0 + UTC + + false + 4 + true + false + true + + gar + false + Wed Oct 06 23:40:14 +0000 2010 + + web + 7 + + + + false + gar + + http://example.status.net/statusnet/zach + + +oauth_post_notice.php +--------------------- + +This is another test script that lets you post a notice via OAuth. + +example usage: + + $ php oauth_post_notice.php -t 80305cd15c5c69834364ac02d7f9178c -s 673e3b2978b1b92c8edbfe172505fee1 -u 'Test test test...' + + + Test test test... + false + Fri Oct 08 02:37:35 +0000 2010 + + <a href="http://banana.com" rel="nofollow">Banana</a> + 8 + + + + false + + 23 + zach + zach + + + http://example.status.net/statusnet/theme/default/default-avatar-stream.png + + false + 0 + + + + + + 0 + Thu Sep 30 23:11:00 +0000 2010 + 0 + 0 + UTC + + false + 5 + true + false + true + http://example.status.net/statusnet/zach + + Test test test... + diff --git a/tests/oauth/exchangetokens.php b/tests/oauth/exchangetokens.php deleted file mode 100755 index 2394826c7e..0000000000 --- a/tests/oauth/exchangetokens.php +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env php -. - */ - -define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); - -require_once INSTALLDIR . '/extlib/OAuth.php'; - -$ini = parse_ini_file("oauth.ini"); - -$test_consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); - -$at_endpoint = $ini['apiroot'] . $ini['access_token_url']; - -$shortoptions = 't:s:'; -$longoptions = array('oauth_token=', 'token_secret='); - -$helptext = <<sign_request($hmac_method, $test_consumer, $rt); - -$r = httpRequest($req_req->to_url()); - -common_debug("Exchange request token = " . var_export($rt, true)); -common_debug("Exchange tokens URL: " . $req_req->to_url()); - -$body = $r->getBody(); - -$token_stuff = array(); -parse_str($body, $token_stuff); - -print 'Access token : ' . $token_stuff['oauth_token'] . "\n"; -print 'Access token secret : ' . $token_stuff['oauth_token_secret'] . "\n"; - -function httpRequest($url) -{ - $request = HTTPClient::start(); - - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - return $request->get($url); -} - diff --git a/tests/oauth/fetch_temp_creds.php b/tests/oauth/fetch_temp_creds.php new file mode 100755 index 0000000000..bea512a914 --- /dev/null +++ b/tests/oauth/fetch_temp_creds.php @@ -0,0 +1,106 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +require_once INSTALLDIR . '/scripts/commandline.inc'; +require_once INSTALLDIR . '/extlib/OAuth.php'; + +$ini = parse_ini_file("oauth.ini"); + +// Check to make sure we have everything we need from the ini file +foreach(array('consumer_key', 'consumer_secret', 'apiroot', 'request_token_url') as $inikey) { + if (empty($ini[$inikey])) { + print "You forgot to specify a $inikey in your oauth.ini file.\n"; + exit(1); + } +} + +$consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); +$endpoint = $ini['apiroot'] . $ini['request_token_url']; +$parsed = parse_url($endpoint); +$params = array(); + +parse_str($parsed['query'], $params); +$params['oauth_callback'] = 'oob'; // out-of-band + +$hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); + +try { + $req = OAuthRequest::from_consumer_and_token( + $consumer, + null, + "POST", + $endpoint, + $params + ); + $req->sign_request($hmac_method, $consumer, NULL); + $r = httpRequest($endpoint, $req->to_postdata()); +} catch (Exception $e) { + // oh noez + print $e->getMessage(); + print "\nOAuth Request:\n"; + var_dump($req); + exit(1); +} + +$body = $r->getBody(); +$tokenStuff = array(); + +parse_str($body, $tokenStuff); + +$tok = $tokenStuff['oauth_token']; +$confirmed = $tokenStuff['oauth_callback_confirmed']; + +if (empty($tokenStuff['oauth_token']) + || empty($tokenStuff['oauth_token_secret']) + || empty($confirmed) + || $confirmed != 'true') +{ + print "Error! HTTP response body: $body\n"; + exit(1); +} + +$authurl = $ini['apiroot'] . $ini['authorize_url'] . '?oauth_token=' . $tok; + +print "Request Token\n"; +print ' - oauth_token = ' . $tokenStuff['oauth_token'] . "\n"; +print ' - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n"; +print "Authorize URL\n $authurl\n\n"; +print "Now paste the Authorize URL into your browser and authorize your temporary credentials.\n"; + +function httpRequest($endpoint, $poststr) +{ + $request = HTTPClient::start(); + + $request->setConfig( + array( + 'follow_redirects' => true, + 'connect_timeout' => 120, + 'timeout' => 120, + 'ssl_verify_peer' => false, + 'ssl_verify_host' => false + ) + ); + + // Turn signed request query string back into an array + parse_str($poststr, $postdata); + return $request->post($endpoint, null, $postdata); +} diff --git a/tests/oauth/fetch_token_creds.php b/tests/oauth/fetch_token_creds.php new file mode 100755 index 0000000000..a508c7240c --- /dev/null +++ b/tests/oauth/fetch_token_creds.php @@ -0,0 +1,146 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +require_once INSTALLDIR . '/extlib/OAuth.php'; + +$ini = parse_ini_file("oauth.ini"); + +// Check to make sure we have everything we need from the ini file +foreach(array('consumer_key', 'consumer_secret', 'apiroot', 'access_token_url') as $inikey) { + if (empty($ini[$inikey])) { + print "You forgot to specify a $inikey in your oauth.ini file.\n"; + exit(1); + } +} + +$consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); + +$endpoint = $ini['apiroot'] . $ini['access_token_url']; + +$shortoptions = 't:s:v:'; +$longoptions = array('oauth_token=', 'oauth_token_secret=', 'oauth_verifier='); + +$helptext = <<sign_request($hmac_method, $consumer, $rtok); + + $httpReq = httpRequest($endpoint, $oauthReq->to_postdata()); + $body = $httpReq->getBody(); + +} catch (Exception $e) { + // oh noez + print $e->getMessage(); + print "\nOAuth Request:\n"; + var_dump($oauthReq); + exit(1); +} + +$tokenStuff = array(); +parse_str($body, $tokenStuff); + +if (empty($tokenStuff['oauth_token']) || empty($tokenStuff['oauth_token_secret'])) { + print "Error! HTTP response body: $body\n"; + exit(1); +} + +print "Access Token\n"; +print ' - oauth_token = ' . $tokenStuff['oauth_token'] . "\n"; +print ' - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n"; + +function httpRequest($endpoint, $poststr) +{ + $request = HTTPClient::start(); + + $request->setConfig( + array( + 'follow_redirects' => true, + 'connect_timeout' => 120, + 'timeout' => 120, + 'ssl_verify_peer' => false, + 'ssl_verify_host' => false + ) + ); + + parse_str($poststr, $postdata); + return $request->post($endpoint, null, $postdata); +} + diff --git a/tests/oauth/getrequesttoken.php b/tests/oauth/getrequesttoken.php deleted file mode 100755 index fc546a0f4c..0000000000 --- a/tests/oauth/getrequesttoken.php +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env php -. - */ - -define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); - -require_once INSTALLDIR . '/scripts/commandline.inc'; -require_once INSTALLDIR . '/extlib/OAuth.php'; - -$ini = parse_ini_file("oauth.ini"); - -$test_consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); - -$rt_endpoint = $ini['apiroot'] . $ini['request_token_url']; - -$parsed = parse_url($rt_endpoint); -$params = array(); - -parse_str($parsed['query'], $params); - -$hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); - -$req_req = OAuthRequest::from_consumer_and_token($test_consumer, NULL, "GET", $rt_endpoint, $params); -$req_req->sign_request($hmac_method, $test_consumer, NULL); - -$r = httpRequest($req_req->to_url()); - -$body = $r->getBody(); - -$token_stuff = array(); -parse_str($body, $token_stuff); - -$authurl = $ini['apiroot'] . $ini['authorize_url'] . '?oauth_token=' . $token_stuff['oauth_token']; - -print 'Request token : ' . $token_stuff['oauth_token'] . "\n"; -print 'Request token secret : ' . $token_stuff['oauth_token_secret'] . "\n"; -print "Authorize URL : $authurl\n"; - -//var_dump($req_req); - -function httpRequest($url) -{ - $request = HTTPClient::start(); - - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - return $request->get($url); -} - diff --git a/tests/oauth/oauth.ini b/tests/oauth/oauth.ini.sample similarity index 85% rename from tests/oauth/oauth.ini rename to tests/oauth/oauth.ini.sample index 16b747fe43..927620e2f8 100644 --- a/tests/oauth/oauth.ini +++ b/tests/oauth/oauth.ini.sample @@ -1,5 +1,5 @@ ; Setup OAuth info here -apiroot = "http://YOURSTATUSNET/api" +apiroot = "https://YOURSTATUSNET/api" request_token_url = "/oauth/request_token" authorize_url = "/oauth/authorize" diff --git a/tests/oauth/statusupdate.php b/tests/oauth/oauth_post_notice.php similarity index 53% rename from tests/oauth/statusupdate.php rename to tests/oauth/oauth_post_notice.php index 4aa230e280..23fc04b531 100644 --- a/tests/oauth/statusupdate.php +++ b/tests/oauth/oauth_post_notice.php @@ -22,16 +22,16 @@ define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); require_once INSTALLDIR . '/extlib/OAuth.php'; -$shortoptions = 'o:s:u:'; -$longoptions = array('oauth_token=', 'token_secret=', 'update='); +$shortoptions = 't:s:u:'; +$longoptions = array('oauth_token=', 'oauth_token_secret=', 'update='); $helptext = <<sign_request($hmac_method, $test_consumer, $at); +try { -$r = httpRequest($req_req->to_url()); + $oauthReq = OAuthRequest::from_consumer_and_token( + $consumer, + $atok, + 'POST', + $endpoint, + $params + ); -$body = $r->getBody(); + $oauthReq->sign_request($hmac_method, $consumer, $atok); -print "$body\n"; + $httpReq = httpRequest($endpoint, $oauthReq->to_postdata()); -//print $req_req->to_url() . "\n\n"; + print $httpReq->getBody(); -function httpRequest($url) +} catch (Exception $e) { + print "Error! . $e->getMessage() . 'HTTP reponse body: " . $httpReq->getBody(); + exit(1); +} + +function httpRequest($endpoint, $poststr) { $request = HTTPClient::start(); - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); + $request->setConfig( + array( + 'follow_redirects' => true, + 'connect_timeout' => 120, + 'timeout' => 120, + 'ssl_verify_peer' => false, + 'ssl_verify_host' => false + ) + ); - return $request->post($url); + // Turn signed request query string back into an array + parse_str($poststr, $postdata); + return $request->post($endpoint, null, $postdata); } diff --git a/tests/oauth/oauth_verify_creds.php b/tests/oauth/oauth_verify_creds.php new file mode 100755 index 0000000000..a37538d87e --- /dev/null +++ b/tests/oauth/oauth_verify_creds.php @@ -0,0 +1,107 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +require_once INSTALLDIR . '/extlib/OAuth.php'; + +$shortoptions = 't:s:'; +$longoptions = array('oauth_token=', 'oauth_token_secret='); + +$helptext = <<sign_request($hmac_method, $consumer, $atok); + + $httpReq = httpRequest($oauthReq->to_url()); + +} catch (Exception $e) { + print "Error! HTTP response body: " . $httpReq->getBody(); + exit(1); +} + +print $httpReq->getBody(); + +function httpRequest($url) +{ + $request = HTTPClient::start(); + + $request->setConfig( + array( + 'follow_redirects' => true, + 'connect_timeout' => 120, + 'timeout' => 120, + 'ssl_verify_peer' => false, + 'ssl_verify_host' => false + ) + ); + + return $request->get($url); +} diff --git a/tests/oauth/verifycreds.php b/tests/oauth/verifycreds.php deleted file mode 100755 index 873bdb8bdd..0000000000 --- a/tests/oauth/verifycreds.php +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env php -. - */ - -define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); - -require_once INSTALLDIR . '/extlib/OAuth.php'; - -$shortoptions = 'o:s:'; -$longoptions = array('oauth_token=', 'token_secret='); - -$helptext = <<sign_request($hmac_method, $test_consumer, $at); - -$r = httpRequest($req_req->to_url()); - -$body = $r->getBody(); - -print "$body\n"; - -//print $req_req->to_url() . "\n\n"; - -function httpRequest($url) -{ - $request = HTTPClient::start(); - - $request->setConfig(array( - 'follow_redirects' => true, - 'connect_timeout' => 120, - 'timeout' => 120, - 'ssl_verify_peer' => false, - 'ssl_verify_host' => false - )); - - return $request->get($url); -} - diff --git a/theme/README b/theme/README index e154a723c4..56a7a66c38 100644 --- a/theme/README +++ b/theme/README @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 unported * @link http://status.net/ */ @@ -23,25 +23,19 @@ default/default-avatar-stream.png #48x48 default avatar for notice timelines default/default-avatar-profile.png #96x96 default avatar for the profile page - == How to create your own theme == - You probably want to do one of the following: - * If you just want to change the text, link, background, content, sidebar colours, background image: ** Do this from the Admin->Design settings (recommended!). You could also create a directory and a file structure like the default theme, search and replace with your own values. This is more work, but, you can do this if you plan to make additional *minimal* changes. - * If you want to change the background images and colours: # Create a directory and a file structure like the default theme. # Have your stylesheet import base/css/display.css and add your own styles below. It is okay to add *minimal* changes here. - * If you want to create a different layout, typography, background images and colours: ** Create your own theme directory (base or default) with stylesheets and images like. - Finally, enable your theme by selecting it from the Admin->Design interface. You can set site's logo from here as well. diff --git a/theme/base/css/display.css b/theme/base/css/display.css index f48bdf55e7..8c364febce 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009-2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ @@ -975,6 +975,29 @@ max-height:96px; margin-right:18px; float:left; } + +.oauth-desktop-mode #wrap { + min-width: 500px; +} + +.oauth-desktop-mode #content { + width: 480px; + padding: 6px; + margin: 4px 0px 0px 4px; + border-top-left-radius: 7px; + -moz-border-radius-topleft: 7px; + -webkit-border-top-left-radius: 7px; +} + +.oauth-desktop-mode fieldset { + margin-bottom: 10px !important; +} + +#oauth_pin { + text-align: center; + font-size: 3em; +} + #showapplication .entity_profile { width:68%; } @@ -1302,15 +1325,6 @@ margin-left:4px; .notice .attachment.more { padding-left:0; } -.notice .attachment img { -position:absolute; -top:18px; -left:0; -z-index:99; -} -#shownotice .notice .attachment img { -position:static; -} #attachments { clear:both; @@ -1693,6 +1707,12 @@ width:auto; min-width:0; } +.inline-attachment img { + /* Why on earth is this changed to block at the top? */ + display: inline; + border: solid 1px #aaa; + padding: 1px; +} }/*end of @media screen, projection, tv*/ diff --git a/theme/base/css/ie.css b/theme/base/css/ie.css index 41d053ac46..48b5cd6af7 100644 --- a/theme/base/css/ie.css +++ b/theme/base/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ input.checkbox, input.radio { diff --git a/theme/base/css/ie6.css b/theme/base/css/ie6.css index 6df5e01cee..1784677d08 100644 --- a/theme/base/css/ie6.css +++ b/theme/base/css/ie6.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE6 specific styles */ address { margin-left:7px; diff --git a/theme/base/css/jquery.Jcrop.css b/theme/base/css/jquery.Jcrop.css index b35f332aae..a3f0d22776 100644 --- a/theme/base/css/jquery.Jcrop.css +++ b/theme/base/css/jquery.Jcrop.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */ .jcrop-holder { text-align: left; } diff --git a/theme/base/css/uap.css b/theme/base/css/uap.css index 73be5f0c14..80c73e2ea5 100644 --- a/theme/base/css/uap.css +++ b/theme/base/css/uap.css @@ -7,7 +7,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css index f5efdb49c4..c0ca648847 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index e735d8683f..8b49cbb247 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/biz/css/ie.css b/theme/biz/css/ie.css index 2f463bb44d..46d14c2021 100644 --- a/theme/biz/css/ie.css +++ b/theme/biz/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { diff --git a/theme/clean/css/display.css b/theme/clean/css/display.css new file mode 100644 index 0000000000..9cc8346fdf --- /dev/null +++ b/theme/clean/css/display.css @@ -0,0 +1,256 @@ +/** theme: clean + * + * @package StatusNet + * @author Samantha Doherty + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + + +@media screen, projection, tv { + +body { + background: url(../images/page_bg.png) no-repeat fixed 50% 100%; + background-color: #6e6e8c; + font-family: "Liberation Sans", "Nimbus Sans L", "FreeSans", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 86%; +} + +#wrap { + width: 867px; + margin: 0px auto; + padding: 0px 8px 10px 8px; + background-color: #fff; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); +} + +#header { + width: 851px; + padding: 0px; + padding-top: 70px; + margin-left: 8px; +} + +address { + float: left; + margin-right: 20px; + margin-top: 0px; +} + +.poweredby { + background: url(../images/sn-tiny.png) no-repeat top left; + height: 40px; + font-size: 0.8em; + color: #fff; + line-height: 42px; + padding-left: 50px; + position: absolute; + top: 6px; + left: 0; + z-index: 99; + font-style: normal; +} + +.poweredby a { + color: #fff !important; + font-weight: bold; +} + +#site_nav_global_primary { + display: block; + position: absolute; + top: 0; + left: 0; + z-index: 98; + background-color: #829d25; + width: 883px; + margin-left: -16px; + margin-top: 0px; + height: 30px; + line-height: 30px; + text-align: right; + border-top: 10px solid #fff; + border-bottom: 1px solid #fff; +} + +#site_nav_global_primary li:last-child { + margin-right: 16px; +} + +#site_nav_global_primary a { + color: #fff !important; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); +} + +#site_notice { + float: right; + width: 270px; + padding: 10px; + margin-left: 40px; +} + +#anon_notice { + clear: both; + background: none; + padding: 0px; + margin-bottom: 0px; +} + +.form_notice { + float: right; + width: 494px; + margin-top: 0px; +} + +.form_notice fieldset { + width: 100%; +} + +.form_notice textarea { + width: 362px; + height: 54px; +} + +.form_notice label[for=notice_data-attach], +.form_notice #notice_data-attach { + top: 27px; +} + +.form_notice #notice_data-geo_wrap label, +.form_notice #notice_data-geo_wrap input { + top: 52px; +} + +.form_notice #notice_action-submit { + font-size: 0.9em; + top: 80px; + right:0; + height: 2.4em; + width: 96px; + right: 10px; +} + +.form_notice .error, +.form_notice .success { + width: 375px; +} + +.form_notice .error { + width: 375px; + margin-left: 0px; +} + +#core { + clear: both; + margin: 0px; + width: 851px; + margin-left: 8px; + margin-top: 14px; +} + +#content { + padding-top: 10px; + width: 545px; + margin-right: 0px; +} + +#site_nav_local_views { + background-color: #6e6e8c; + height: 2em; + line-height: 2em; + margin-bottom: 0px; + padding-left: 4px; +} + +#site_nav_local_views a { + color: #fff !important; + padding: 2px 6px 2px 6px; +} + +#site_nav_local_views .current a { + background: #fff !important; + color: #000 !important; + text-decoration: none; +} + +#aside_primary { + width: 280px; + padding-left: 10px; +} + +#aside_primary .section { + width: 270px; + margin-left: 0px; + margin-right: 10px; +} + +.section ul.entities { + width: 290px; +} + +.section .entities li { + margin-right: 17px; + margin-bottom: 10px; + width: 24px; +} + +.notice { + line-height: 1.35em; +} + +#content .notice .author .photo { + left: 0px; +} + +#content .notice .entry-title { + min-height: 26px; +} + +#shownotice .notice .entry-title { + min-height:123px; +} + +.notice div.entry-content { + font-size: 0.9em; + line-height: 1.2em; + margin-top: 10px; + opacity: 0.6; +} + +.notice:hover div.entry-content { + opacity: 1; +} + +.user_in .notice div.entry-content { + max-width: 360px; +} + +div.entry-content a.response:before { + content: "("; +} + +div.entry-content a.response:after { + content: ")"; +} + +.notice-options { + margin-top: 8px; +} + +.pagination { + height: 1.2em; +} + +#jOverlayContent button { + top: 20px; + right: 36px; +} + +.entity_profile { + width: 365px; +} + +}/*end of @media screen, projection, tv*/ diff --git a/theme/clean/css/ie.css b/theme/clean/css/ie.css new file mode 100644 index 0000000000..80c4dccbaf --- /dev/null +++ b/theme/clean/css/ie.css @@ -0,0 +1,77 @@ +/* Temporary copy of base styles for overriding */ + +input.checkbox, +input.radio { +top:0; +} +.form_notice textarea { + width: 362px; +} +.form_notice .form_note + label { +position:absolute; +top:25px; +left:83%; +text-indent:-9999px; +height:16px; +width:16px; +display:block; + left: 390px; + top: 27px; +} +.form_notice #notice_action-submit { + width: 96px; + max-width: 96px; +} +.form_notice #notice_data-attach_selected, +.form_notice #notice_data-geo_selected { +width:78.75%; +} +.form_notice #notice_data-attach_selected button, +.form_notice #notice_data-geo_selected button { +padding:0 4px; +} +.notice-options input.submit { +font-size:0; +text-align:right; +text-indent:0; +} +.notice div.entry-content .timestamp a { +margin-right:4px; +} +.entity_profile { +width:64%; +} +.notice { +z-index:1; +} +.notice:hover { +z-index:9999; +} +.notice .thumbnail img { +z-index:9999; +} + +.form_settings fieldset fieldset legend { +line-height:auto; +} + +/* IE specific styles */ + +.notice-options input.submit { + color:#FFFFFF; +} + +.form_notice #notice_data-attach { + filter: alpha(opacity=0); +} + +.form_notice .form_note + label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -328px; +} + +.form_notice #notice_data-geo_wrap label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1780px; +} +.form_notice #notice_data-geo_wrap label.checked { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1846px; +} diff --git a/theme/clean/css/mp-screen.css b/theme/clean/css/mp-screen.css new file mode 100644 index 0000000000..d544fcb767 --- /dev/null +++ b/theme/clean/css/mp-screen.css @@ -0,0 +1,191 @@ +/* mobile style */ + +body { + background-image: none; + min-width: 0; +} + +#wrap { + margin: 0; + padding: 0; + min-width:0; + max-width:100%; +} + +#header { + width: 96%; + padding: 0 2%; + padding-top: 20px; +} + +.user_in #header { + padding-top: 40px; +} + +address { +margin:1em 0 0 0; +float:left; +width:100%; +} + +address img + .fn { +display:block; +margin-top:1em; + margin-right: 10px; +clear: left; +float:left; +} + +#site_nav_global_primary { + margin:0; + width: 98%; + padding: 4px 0; + margin-left: -2%; + height: auto; + position:absolute; + top:0; + left:0; + font-size: 1em; + letter-spacing: 0em; +} + +#site_nav_global_primary li { + margin-left:0; + margin-right:10px; + float:left; + font-size:0.9em; + padding: 2px 4px; + line-height: 1em; +} + +.form_notice { + float: left; + margin-left: -10px; + width: 300px; + padding: 4px; +} + +#form_notice-direct.form_notice { + padding-top: 10px; +} + +.form_notice textarea { + width: 210px; + height: 50px; + padding: 4px; +} + +#notice_text-count { +position:absolute; +bottom:2px; + left: 175px; + font-size: 0.8em; +z-index:9; +} + +#form_notice-direct.form_notice #notice_text-count { + left: 0px; +} + +/*input type=file no good in +iPhone/iPod Touch, Android, Opera Mini Simulator +*/ +.form_notice #notice_text-count + label, +.form_notice label[for="notice_data-attach"] { +display:none; +} +.form_notice #notice_data-attach { +position:static; +clear:both; +width:65%; +height:auto; +display:block; +z-index:9; +padding:0; +margin:0; +background:none; +opacity:1; +} + +.form_notice #notice_action-submit { + text-align: center; + left: 230px; + top: 32px; + width: 70px; + font-size: 0.8em; +} + +#form_notice-direct.form_notice #notice_action-submit { + top: 62px; +} + +#site_nav_local_views { + height: auto; + font-size: 0.9em; + line-height: 2em; + margin-bottom: 0px; + padding-left: 4px; +} + +#site_nav_local_views li { + margin-right: 6px; +} + + +#core { + width: 100%; + margin: 0; +} + +#content { + width: 96%; + padding: 10px 2%; + margin: 0; + min-height: auto; +} + +#footer { + margin: 0; + padding: 10px 4px 4px 4px; +} + + +.form_settings fieldset { +margin-bottom:7px; +} + +.form_settings label { +width:auto; +display:block; +float:none; + text-align: left; +} + +.form_settings .form_data li { +margin-bottom:7px; +} + +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:0; +display:block; +} +.form_settings .form_data textarea { +width:96.41%; +} + +.form_settings .form_data label { +float:none; +} + +.form_settings .form_data p.form_guide { +width:auto; +margin-left:0; +} + + +#settings_design_color .form_data { + width: auto; + margin-right: 0; +} diff --git a/theme/clean/default-avatar-mini.png b/theme/clean/default-avatar-mini.png new file mode 100644 index 0000000000..7c9fc0348b Binary files /dev/null and b/theme/clean/default-avatar-mini.png differ diff --git a/theme/clean/default-avatar-profile.png b/theme/clean/default-avatar-profile.png new file mode 100644 index 0000000000..e8f87006a0 Binary files /dev/null and b/theme/clean/default-avatar-profile.png differ diff --git a/theme/clean/default-avatar-stream.png b/theme/clean/default-avatar-stream.png new file mode 100644 index 0000000000..c8148e42ef Binary files /dev/null and b/theme/clean/default-avatar-stream.png differ diff --git a/theme/clean/images/page_bg.png b/theme/clean/images/page_bg.png new file mode 100644 index 0000000000..a9f446812f Binary files /dev/null and b/theme/clean/images/page_bg.png differ diff --git a/theme/clean/images/sn-tiny.png b/theme/clean/images/sn-tiny.png new file mode 100644 index 0000000000..e1db3a1605 Binary files /dev/null and b/theme/clean/images/sn-tiny.png differ diff --git a/theme/clean/logo.png b/theme/clean/logo.png new file mode 100644 index 0000000000..b078601019 Binary files /dev/null and b/theme/clean/logo.png differ diff --git a/theme/clean/mobilelogo.png b/theme/clean/mobilelogo.png new file mode 100644 index 0000000000..66bb5f6787 Binary files /dev/null and b/theme/clean/mobilelogo.png differ diff --git a/theme/clean/theme.ini b/theme/clean/theme.ini new file mode 100644 index 0000000000..0209008d40 --- /dev/null +++ b/theme/clean/theme.ini @@ -0,0 +1 @@ +include=rebase diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index caea5cf443..a113797730 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ @@ -1513,6 +1513,27 @@ width:auto; min-width:0; } +#form_notice { +display: none; +} + +#public.user_in #form_notice, +#groups.user_in #form_notice, +#publictagcloud.user_in #form_notice, +#featured.user_in #form_notice, +#favorited.user_in #form_notice, +#all.user_in #form_notice, +#replies.user_in #form_notice, +#showstream.user_in #form_notice, +#showfavorites.user_in #form_notice, +#subscriptions.user_in #form_notice, +#subscribers.user_in #form_notice, +#showgroup.user_in #form_notice, +#conversation.user_in #form_notice, +#attachment.user_in #form_notice { +display: inline; +} + #public.user_in #content, #groups.user_in #content, #publictagcloud.user_in #content, @@ -1532,38 +1553,6 @@ min-width:0; padding-top:12.5em; } -#profilesettings #form_notice, -#avatarsettings #form_notice, -#passwordsettings #form_notice, -#emailsettings #form_notice, -#openidsettings #form_notice, -#othersettings #form_notice, -#smssettings #form_notice, -#twittersettings #form_notice, -#imsettings #form_notice, -#userdesignsettings #form_notice, -#groupdesignsettings #form_notice, -#grouplogo #form_notice, -#editgroup #form_notice, -#blockedfromgroup #form_notice, -#groupmembers #form_notice, -#doc #form_notice, -#usergroups #form_notice, -#invite #form_notice, -#deletenotice #form_notice, -#newgroup #form_notice, -#register #form_notice, -#shownotice #form_notice, -#confirmaddress #form_notice, -#tag #form_notice, -#siteadminpanel #form_notice, -#designadminpanel #form_notice, -#useradminpanel #form_notice, -#pathsadminpanel #form_notice, -#adminprofileflag #form_notice { -display:none; -} - #public #core, #showstream #core, #showgroup #core { diff --git a/theme/cloudy/css/ie.css b/theme/cloudy/css/ie.css index a698676fbb..a7b34a2f39 100644 --- a/theme/cloudy/css/ie.css +++ b/theme/cloudy/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { @@ -45,19 +52,22 @@ width:181px; top:190px; } -#public #content, -#groups #content, -#publictagcloud #content, -#featured #content, -#favorited #content, -#all #content, -#replies #content, -#showstream #content, -#showfavorites #content, -#inbox #content, -#outbox #content, -#subscriptions #content, -#subscribers #content { +#public.user_in #content, +#groups.user_in #content, +#publictagcloud.user_in #content, +#featured.user_in #content, +#favorited.user_in #content, +#all.user_in #content, +#replies.user_in #content, +#showstream.user_in #content, +#showfavorites.user_in #content, +#inbox.user_in #content, +#outbox.user_in #content, +#subscriptions.user_in #content, +#subscribers.user_in #content, +#showgroup.user_in #content, +#conversation.user_in #content, +#attachment.user_in #content { padding-top:138px; } diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 9a1dabb515..a2624ff4c5 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -3,12 +3,10 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009-2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ -@import url(../../base/css/display.css); - @media screen, projection, tv { body, a:active { diff --git a/theme/default/css/ie.css b/theme/default/css/ie.css index 2283471661..6a95e0369e 100644 --- a/theme/default/css/ie.css +++ b/theme/default/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { diff --git a/theme/default/theme.ini b/theme/default/theme.ini new file mode 100644 index 0000000000..33d0b67978 --- /dev/null +++ b/theme/default/theme.ini @@ -0,0 +1 @@ +include=base diff --git a/theme/h4ck3r/css/base.css b/theme/h4ck3r/css/base.css index 4c0e74218e..a4dac0145a 100644 --- a/theme/h4ck3r/css/base.css +++ b/theme/h4ck3r/css/base.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/h4ck3r/css/display.css b/theme/h4ck3r/css/display.css index 276659dced..edf071a659 100644 --- a/theme/h4ck3r/css/display.css +++ b/theme/h4ck3r/css/display.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/h4ck3r/css/ie.css b/theme/h4ck3r/css/ie.css index 2f463bb44d..46d14c2021 100644 --- a/theme/h4ck3r/css/ie.css +++ b/theme/h4ck3r/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index d7f150bcb0..67068104bc 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -3,12 +3,10 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009-2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ -@import url(../../base/css/display.css); - @media screen, projection, tv { body, a:active { diff --git a/theme/identica/css/ie.css b/theme/identica/css/ie.css index f69c13ae76..62b62748b0 100644 --- a/theme/identica/css/ie.css +++ b/theme/identica/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { diff --git a/theme/identica/theme.ini b/theme/identica/theme.ini new file mode 100644 index 0000000000..33d0b67978 --- /dev/null +++ b/theme/identica/theme.ini @@ -0,0 +1 @@ +include=base diff --git a/theme/mnml/css/display.css b/theme/mnml/css/display.css new file mode 100644 index 0000000000..f20a4a16a3 --- /dev/null +++ b/theme/mnml/css/display.css @@ -0,0 +1,2114 @@ +/** theme: mnml + * + * @package StatusNet + * @author Michael R. Bernstein + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://www.michaelbernstein.com/ + */ + +/*-- FONTS --*/ + +@font-face { + font-family: 'TeXGyreHerosRegular'; + src: url('../fonts/texgyreheros-regular-webfont.eot'); + src: local('☺'), url('../fonts/texgyreheros-regular-webfont.woff') format('woff'), url('../fonts/texgyreheros-regular-webfont.ttf') format('truetype'), url('../fonts/texgyreheros-regular-webfont.svg#webfonts1QuWEVy') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosItalic'; + src: url('../fonts/texgyreheros-italic-webfont.eot'); + src: local('☺'), url('../fonts/texgyreheros-italic-webfont.woff') format('woff'), url('../fonts/texgyreheros-italic-webfont.ttf') format('truetype'), url('../fonts/texgyreheros-italic-webfont.svg#webfontonVrQ9Kn') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosBold'; + src: url('../fonts/texgyreheros-bold-webfont.eot'); + src: local('☺'), url('../fonts/texgyreheros-bold-webfont.woff') format('woff'), url('../fonts/texgyreheros-bold-webfont.ttf') format('truetype'), url('../fonts/texgyreheros-bold-webfont.svg#webfontaJCL46uI') format('svg'); + font-weight: normal; + font-style: normal; +} + +/*-- END FONTS --*/ + + +@media screen, projection, tv { + +/* -- RESET -- */ +/* From Eric Meyer http://meyerweb.com/eric/tools/css/reset/index.html */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + vertical-align: baseline; + background: transparent; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/*-- END RESET --*/ + + +/*-- TYPOGRAPHY --*/ +/* Borrowed liberally from Typogridphy 2.0 - http://csswizardry.com/typogridphy/preview/ */ + +html{ + font-size:100%; +} +body{ + font-size:62.5%; + font-family:TeXGyreHerosRegular, sans-serif; + color:#444; + background-color: #EEE; + height: 100%; +} + +#wrap{ + width:94em; + padding:3em 2em 1em 2em; + margin-top: 0; + margin-left: auto; + margin-right: auto; + margin-bottom: 0; + background-color: #fff; +} + +#header{ + width:100%; + overflow:hidden; +} +#content{ + margin-right:2em; + float:left; + width: 70em; + clear:both; + background-color: #FFF; +} + + +/*-- HEADINGS --*/ +h1,h2,h3,h4,h5,h6{ + font-family: 'TeXGyreHerosBold', sans-serif; + font-weight: normal; + color:#444; +} +h1{ /* H1 is a bit hacky but it works */ + font-size:4.3em; + line-height:1.2; + margin-bottom:0.5em; +} +h2{ + font-size:2em; + line-height:1.2em; + margin-bottom:1.2em; + margin-top:-1px; + padding-bottom:1px; +} +h3{ + font-size:1.8em; + line-height:1.3333333333333333333333333333333em; + margin-bottom:1.3333333333333333333333333333333em; +} +h4{ + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; +} +h5{ + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; +} +h6{ + font-size:1.3em; + line-height:1.8461538461538461538461538461538em; + margin-bottom:1.8461538461538461538461538461538em; +} + +/*-- END HEADINGS --*/ + +/*-- LISTS --*/ +ul,ol{ + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; + } + +ul{ + list-style:square; + } + +ol{ + list-style:lower-roman; + } + +ul,ol{ + padding-left:1em;margin-left:-1em;/* This makes IE display hung bullets */ + } + +ul ul,ol ol{ + clear: both; + font-size:1em; + line-height:1.5em; + margin:0 0 0 2em; +} + +dl{ + } +dl dt{ + font-family: 'TeXGyreHerosBold', sans-serif; +} +dl dd{ + margin-bottom:1.5em; +} + +/*-- END LISTS --*/ + +/* --- =LINKS --- */ +a{ + color:#C00; + font-family: 'TeXGyreHerosBold', sans-serif; +} +a:visited{ + color:#C00; +} +a:hover{ + text-decoration:none; +} + +/*-- PARAGRAPHS --*/ +p{ + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; +} + +p.instructions { + font-family: 'TeXGyreHerosBold', sans-serif; +} + +/*-- FORMS --*/ + +.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, +.form_remote_authorize input.submit, +.entity_subscribe a, +.entity_moderation p, +.entity_sandbox input.submit, +.entity_silence input.submit, +.entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, +.notice-options .repeated, +.form_notice label[for=notice_data-geo], +button.minimize, +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit, +#realtime_play, +#realtime_pause, +#realtime_popup { + background-image:url(../images/icons/icons-01.png); + background-repeat:no-repeat; + background-color:transparent; +} + +.form_notice label[for=notice_data-geo] { + background-position:0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { + background-position:0 -1846px; +} +.form_notice label[for=notice_data-attach] { + background-position:0 -328px; +} +button.close { + background-position:0 -1120px; +} +button.minimize { + background-position:0 -1912px; +} +#export_data li a.rss { + background-position:0 -125px; +} +#export_data li a.atom { + background-position:0 -59px; +} +#export_data li a.foaf { + background-position:0 1px; +} +.form_group_leave input.submit, +.form_user_unsubscribe input.submit { + background-position:5px -1246px; +} +.form_group_join input.submit, +.form_user_subscribe input.submit, +.form_remote_authorize input.submit, +.entity_subscribe a { + background-position:5px -1181px; +} + +.entity_edit a { + background-position: 5px -719px; +} +.entity_send-a-message a { + background-position: 5px -852px; +} +.entity_nudge p, +.form_user_nudge input.submit { + background-position: 5px -785px; +} +.form_user_block input.submit, +.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; +} +.entity_sandbox .form_user_unsandbox input.submit { + background-position: 5px -2568px; +} +.entity_silence .form_user_unsilence input.submit { + background-position: 5px -2633px; +} +.entity_role p { + background-position: 5px -2436px; +} +.entity_role_administrator .form_user_grantrole input.submit { + background-position: 5px -983px; +} +.entity_role_moderator .form_user_grantrole input.submit { + background-position: 5px -1313px; +} +.entity_role_administrator .form_user_revokerole input.submit { + background-position: 5px -2699px; +} +.entity_role_moderator .form_user_revokerole input.submit { + background-position: 5px -2501px; +} +.form_reset_key input.submit { + background-position: 5px -1973px; +} +.entity_clear input.submit { + background-position: 5px -2039px; +} +.entity_flag input.submit, +.entity_flag p { + background-position: 5px -2105px; +} +.entity_subscribe input.accept { + background-position: 5px -2171px; +} +.entity_subscribe input.reject { + background-position: 5px -2237px; +} +#realtime_play { + background-position: 0 -2308px; +} +#realtime_pause { + background-position: 0 -2374px; +} +#realtime_popup { + background-position: 0 -1714px; +} +.notice .attachment { + background-position:0 -394px; +} +.notice .attachment.more { + background-position:0 -2770px; +} +#attachments .attachment { + background:none; +} +.notice-options .notice_reply { + background-position:0 -592px; +} +.notice-options form.form_favor input.submit { + background-position:0 -461px; +} +.notice-options form.form_disfavor input.submit { + background-position:0 -526px; +} +.notice-options .notice_delete { + background-position:0 -658px; +} +.notice-options form.form_repeat input.submit { + background-position:0 -1582px; +} +.notice-options .repeated { + background-position:0 -1648px; +} +#new_group a { + background-position:0 -1054px; +} +.pagination .nav_prev a { + background-position:10% -187px; +} +.pagination .nav_next a { + background-position:105% -252px; +} + +caption, legend { +font-family: 'TeXGyreHerosBold', sans-serif; +} + +input, textarea, select, option { + +} + +input.submit { +font-family: 'TeXGyreHerosBold', sans-serif; +cursor:pointer; +} +textarea { +overflow:auto; +} +option { +padding-bottom:0; +} +fieldset { +padding:0; +border:0; +} +form ul li { +list-style-type:none; +margin:0 0 18px 0; +} +form label { + font-family: 'TeXGyreHerosBold', sans-serif; + font-size: 1.6em; + line-height: 1.5em; +} +input.checkbox, +input.radio { +position:relative; +top:2px; +left:auto; +border:0; +} + +.error, +.success { + font-size:1.6em; + line-height:1.5em; + font-family: 'TeXGyreHerosBold', sans-serif; + display: inline-block; + width: auto; + min-width: 10em; +} + +.error { + color: #000; + background-color: #C00; +} + +.success { + color: #FFF; + background-color: #090; +} +.xoxo li { +list-style-type:none; +} + +form label.submit { +display:none; +} +.form_settings { +clear:both; +} +.form_settings fieldset { +margin-bottom:29px; +} +.form_settings fieldset fieldset { +margin-bottom:41px; +padding:3% 1.795% 1.795% 3%; +border-width:1px; +border-style:solid; +} +.form_settings fieldset fieldset legend { +line-height:0; +} + +.form_settings input.remove { +margin-left:11px; +} + +ul.form_data { + font-size: 100% +} + +.form_settings .form_data li { +width:100%; +float:left; +} +.form_settings .form_data label { +float:left; +} +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:1.795%; +float:left; +} +.form_settings .form_data input { +} +.form_settings .form_data input.submit, +.form_settings .form_data input.checkbox, +.form_settings .form_data input.radio { +width:auto; +} +.form_settings .form_data textarea { +width:63%; +} + +.form_settings .form_data input.submit { +margin-left:0; +} + +.form_settings label { +margin-top:2px; +width:24%; +} + +.form_actions label { +display:none; +} +.form_guide { +font-family: 'TeXGyreHerosItalic', sans-serif; +} + +.form_settings #settings_autosubscribe label { +display:inline; +font-weight:bold; +} + +#form_settings_profile legend, +#form_login legend, +#form_register legend, +#form_password legend, +#form_settings_avatar legend, +#newgroup legend, +#editgroup legend, +#form_tag_user legend, +#form_remote_subscribe legend, +#form_openid_login legend, +#form_search legend, +#form_invite legend, +#form_notice_delete legend, +#form_password_recover legend, +#form_password_change legend, +.form_entity_block legend, +#form_filter_bytag legend, +#apioauthauthorize_allowdeny { +display:none; +} + +.form_settings .form_data p.form_guide { +clear:both; +margin-left:26%; +margin-bottom:0; +} + +.form_settings p { +margin-bottom:11px; +} + +.form_settings input.checkbox, +.form_settings input.radio { +margin-top:3px; +margin-left:0; +} +.form_settings label.checkbox { +font-weight:normal; +margin-top:0; +margin-right:0; +margin-left:11px; +float:left; +width:90%; +} +.form_settings label.radio { +margin-top:0; +margin-right:47px; +margin-left:11px; +width:auto; +} + +#form_login p.form_guide, +#form_register #settings_rememberme p.form_guide, +#form_openid_login #settings_rememberme p.form_guide, +#settings_twitter_remove p.form_guide, +#form_search ul.form_data #q, +#design_background-image_onoff p.form_guide { +margin-left:0; +} + +.form_settings .form_note { +padding:0 7px; +} + +.form_settings input.form_action-default { +margin-right:11px; +} +.form_settings input.form_action-default, +.form_settings input.form_action-primary { +padding:0; +} +.form_settings input.form_action-secondary { +margin-left:29px; +} + +#form_search .submit { +margin-left:11px; +} +#form_search .form_data input { +width:auto; +} + +address { + margin-bottom: 0.5em; + margin-top: 4.75em; + margin-bottom: 1.75em; + float: left; +} +address.vcard img.logo { +margin-right:0; +float: none; +} +address .fn { +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; +} + + +#site_nav_global_primary { + margin: 0; + margin-bottom: 2.4em; + position: absolute; +} + +#site_nav_global_primary dd { + margin: 0; + } + +#site_nav_global_primary li { + +} + +.system_notice dt { +font-weight:bold; +text-transform:uppercase; +display:none; +} + +#site_notice { + float:right; + clear:right; + margin-top: 4.75em; + margin-bottom: 1.75em; + width:22em; + background-color: #EEE; +} +#page_notice { +clear:both; +margin-bottom:18px; +} + +#anon_notice { + float:left; + margin-left: 15em; + margin-top: 3.7em; + margin-bottom: 0.9em; + width: 32em; + padding: 0.9em; + border-width:2px; + border-style:solid; + font-family: 'TeXGyreHerosBold', sans-serif; +} + +#anon_notice p { + margin-bottom: 0; +} +#footer { + clear: both; +} + +#site_nav_local_views { +width:100%; +float:left; +margin: 0; +margin-bottom: -.25em; +} + +#site_nav_local_views dt{ + display:none; + } + +#site_nav_local_views dd { + margin:0; + } + +ul.nav{ + overflow:hidden; + list-style:none; + font-size:1.3em; + line-height:1.8461538461538461538461538461538em; + margin-bottom:1.8461538461538461538461538461538em; + float: left; + } + +ul.nav li{ + float:left; + font-family: 'TeXGyreHerosBold', sans-serif; + } + +ul.nav li#nav_invitecontact { + } +ul.nav li a, ul.nav li a:visited{ + color:#444 !important; + text-decoration:none; + width: 7.8em; + margin-right:1.5em; + display:block; + } + +ul.nav li.current a { + color: #fff !important; + background-color: #666 !important; +} +ul.nav li a:hover{ + text-decoration:underline; +} + +body#register #site_nav_global_primary li#nav_register a, +body#login #site_nav_global_primary li#nav_login a, +body#openidlogin #site_nav_global_primary li#nav_login a, +body#all #site_nav_global_primary li#nav_home a, +body#replies #site_nav_global_primary li#nav_home a, +body#showstream #site_nav_global_primary li#nav_home a, +body#showfavorites #site_nav_global_primary li#nav_home a, +body#inbox #site_nav_global_primary li#nav_home a, +body#outbox #site_nav_global_primary li#nav_home a, +body#profilesettings #site_nav_global_primary li#nav_account a, +body#avatarsettings #site_nav_global_primary li#nav_account a, +body#passwordsettings #site_nav_global_primary li#nav_account a, +body#emailsettings #site_nav_global_primary li#nav_account a, +body#userdesignsettings #site_nav_global_primary li#nav_account a, +body#othersettings #site_nav_global_primary li#nav_account a, +body#openidsettings #site_nav_global_primary li#nav_account a, +body#oauthconnectionssettings #site_nav_global_primary li#nav_connect a, +body#smssettings #site_nav_global_primary li#nav_connect a, +body[id$=adminpanel] #site_nav_global_primary li#nav_admin a, +body#invite #site_nav_global_primary li#nav_invitecontact a, +body#usergroups #site_nav_global_primary li#nav_invitecontact a, +body#subscribers #site_nav_global_primary li#nav_invitecontact a, +body#subscriptions #site_nav_global_primary li#nav_invitecontact a, +body[id$=doc] #site_nav_global_primary li#nav_help a, +body[id$=search] #site_nav_global_primary li#nav_search a { + background-color: #666; + color: #FFF !important; +} +body[id$=adminpanel] #aside_primary { +display:none; +} + +#site_nav_global_primary dt, +#site_nav_global_secondary dt { +display:none; +} + +#site_nav_global_secondary { +margin: 0; +} + +#site_nav_global_secondary dd { + margin: 0; +} + +#site_nav_global_secondary ul li { +display:inline; +} +#export_data li a { +padding-left:20px; +} +#export_data li a.foaf { +padding-left:30px; +} +#export_data li a.export_vcard { +padding-left:28px; +} + +#export_data ul { +width:100%; +float:left; +} +#export_data li { +list-style-type:none; +float:left; +margin-right:11px; +} + +#licenses { +margin: 0; +clear: left; +} + +#licenses dt { +font-family: 'TeXGyreHerosBold', sans-serif;; +display:none; +} +#licenses dd { +margin: 0; +line-height:1.5; +} + +#site_content_license_cc { +margin-bottom:0; +} +#site_content_license_cc img { + display:inline; + vertical-align:top; + margin-right:4px; +} + +#core { + position:relative; + width:100%; + float:left; + margin-top: 0.5em; +} + +#shownotice #content { + min-height:0; +} + +#content_inner { + position:relative; + width:100%; + float:left; +} + +#aside_primary { + width: 22em; + float:left; + margin-right:0; + margin-right:0; + margin-bottom: 2.4em; + background-color: #FFF; +} + +#aside_primary dl { + font-size:1.3em; + line-height:1.8461538461538461538461538461538em; + margin-bottom:0; + margin-left: 0; +} + +#aside_primary dl dd { + margin-left: 0; +} + +.form_notice { +width:45%; +float:left; +position:relative; +line-height:1; +margin-left: 9em; +margin-top: 4.75em; +margin-bottom: 2.6em; +} +.form_notice fieldset { +border:0; +padding:0; +position:relative; +} +.form_notice legend { +display:none; +} +.form_notice textarea { +float:left; +clear: left; +width: 24.4em; +height:6.7em; +line-height:1.5; +padding:7px 7px 16px 7px; +position:relative; +z-index:2; +} +.form_notice label { +float:left; +} +.form_notice label[for=notice_data-attach], +.form_notice #notice_data-attach { +position:absolute; +top:2em; +right: 3em; +cursor:pointer; +} +.form_notice label[for=notice_data-attach] { +text-indent:-9999px; +width:16px; +height:16px; +} +.form_notice #notice_data-attach { +opacity: 0; +padding:0; +height:1.6em; +} +.form_notice .form_note { +position:absolute; +bottom:2px; +right:21.715%; +z-index:9; +} +.form_notice .form_note dt { +font-weight:bold; +display:none; +} +.form_notice #notice_text-count { +font-family: 'TeXGyreHerosBold', sans-serif; +line-height:1.15; +padding:1px 2px; +} +.form_notice #notice_action-submit { +width:14%; +height:47px; +padding:0; +position:absolute; +bottom:0; +right:0; +} +.form_notice label[for=to] { +} +.form_notice select[id=to] { +margin-left: 3em; +float:left; +width: 21em; +} +.form_notice .error, +.form_notice .success { +float:left; +clear:both; +width:81.5%; +margin-bottom:0; +line-height:1.618; +} +.form_notice #notice_data-attach_selected code { +float:left; +width:80%; +display:block; +overflow:auto; +margin-right:2.5%; +font-size:1.1em; +} +.form_notice #notice_data-attach_selected button.close { +float:right; +font-size:0.8em; +} + +.form_notice #notice_data-geo_wrap label, +.form_notice #notice_data-geo_wrap input { +position:absolute; +top:3.25em; +right:0.4em; +left:auto; +cursor:pointer; +width:1.6em; +height:1.6em; +display:block; +} +.form_notice #notice_data-geo_wrap input { +visibility:hidden; +} +.form_notice #notice_data-geo_wrap label { +font-weight:normal; +font-size:1em; +margin-bottom:0; +text-indent:-9999px; +} + +button.close, +button.minimize { +width:1.6em; +height:1.6em; +text-indent:-9999px; +padding:0; +border:0; +text-align:center; +font-weight:bold; +cursor:pointer; +} + +/* entity_profile */ +.entity_profile { +position:relative; +width: 52em; +float:left; +margin-left:0; +overflow:hidden; +} +.entity_profile dt, +#entity_statistics dt { +font-family: 'TeXGyreHerosBold', sans-serif;; +} +.entity_profile dd { + display:inline; + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; +} + + +.entity_profile .entity_depiction { +float:left; +width:96px; +margin-right: 2.4em; +margin-bottom: 2.4em; +text-align: center; +} + +.entity_profile .entity_fn, +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags, +.entity_profile .entity_aliases, +.entity_profile .entity_statistics { +margin-left:113px; +} + +.entity_profile .entity_fn, +.entity_profile .entity_nickname { +margin-left:11px; +display:inline; +} +.entity_profile .entity_nickname { +margin-left:0; +} +.entity_profile .fn, +.entity_profile .nickname { + font-family: 'TeXGyreHerosBold', sans-serif; +} + +body#subscriptions .entity_profile .fn, .entity_profile .nickname { + font-family: TeXGyreHerosBold, sans-serif; + font-size: 1.6em; + line-height: 1.5em; + margin-bottom: 1.5em; +} + +.entity_profile .fn:before { +content: "("; +font-weight:normal; +} +.entity_profile .fn:after { +content: ")"; +font-weight:normal; +} +.entity_profile .nickname:after, +.entity_profile .nickname:before { +content:""; +} +.entity_profile dt, +.entity_profile h2 { +display:none; +} +.entity_profile .role { +margin-left:11px; +font-family: 'TeXGyreHerosItalic', sans-serif; +} + +.section .entity_remote_subscribe { + color: #C00 !important; +} +/* entity_profile */ + +/*entity_actions*/ +.entity_actions { +float:right; +margin-left:2%; +min-width:21%; +} +.entity_actions h2 { +display:none; +} +.entity_actions ul { +list-style-type:none; +} +.entity_actions li { +margin-bottom:7px; +} +.entity_actions li:first-child { +border-top:0; +} +.entity_actions fieldset { +border:0; +padding:0; +} +.entity_actions legend { +display:none; +} + +.entity_actions input.submit { +display:block; +text-align:left; +width:100%; +border-color: transparent; +text-shadow: none; +color: #C00; +line-height: 1.5em; +font-size: 1.6em; +} + +.entity_actions a { +text-decoration:none; +font-family: 'TeXGyreHerosBold', sans-serif; +display:block; +} +.entity_actions a, +.entity_actions input { +} + +.entity_actions a, +.entity_actions input, +.entity_actions p { +padding-left:23px; +} + +.entity_actions a, +.entity_actions p { +padding:2px 4px 1px 26px; +} + +.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:65%; +z-index:2; +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, +.entity_role { +position:relative; +} +.entity_moderation p, +.entity_role p { +font-weight:bold; +padding-bottom:2px; +margin-bottom:7px; +} +.entity_moderation ul, +.entity_role ul { +display:none; +} +.entity_moderation:hover ul, +.entity_role:hover ul { +display:block; +width:110%; +padding:11px; +position:absolute; +top:-1px; +right:-1px; +z-index:1; +border-width:1px; +border-style:solid; +} + +.entity_tags ul { +list-style-type:none; +display:inline; +} +.entity_tags li { +display:inline; +margin-right:7px; +} +.entity_tags li:before { +content:'\0009'; +} + +.aside .section { +clear:both; +float:left; +width:100%; +list-style-position:inside; +} +.aside .section h2 { + text-transform:uppercase; + color: #FFF; + background-color: #CCC; +} + +#entity_statistics { + margin-bottom: 2.4em; +} +#entity_statistics dt, +#entity_statistics dd { +display:inline; +margin-right: 0.5em; +} +#entity_statistics dt:after { +content: ":"; +} + +#entity_map a { + font-size: 1.3em; + line-height: 1.84615em; + margin-bottom: 0px; + margin-left: 0px; +} +.section ul.entities { +float:left; +width: 15em; +} +.section .entities li { +list-style-type:none; +float:left; +margin-right:1.5em; +margin-bottom: 1.5em; +display:inline; +} +.section .entities li .photo { +margin-right:0; +margin-bottom:0; +} +.section .entities li .fn { +display:none; +} + +.aside .section p, +.aside .section .more { +clear:both; +} + +.profile .entity_profile { +margin-bottom: 1.6em; +min-height:60px; +} + +.profile .form_group_join legend, +.profile .form_group_leave legend, +.profile .form_user_subscribe legend, +.profile .form_user_unsubscribe legend { +display:none; +} + +.profiles { +list-style-type:none; +font-size: 100%; +} +.profile .entity_profile .fn.nickname, +.profile .entity_profile .url[rel~=contact] { + margin-left: 1.2em; + display:inline; +} + +.profile .entity_profile .fn, +.profile .entity_profile .label { +margin-left:11px; +margin-bottom:4px; +width:auto; +clear:none; +} + +.profile .entity_profile .note, +.profile .entity_profile .entity_tag, +.profile .entity_profile .form_subscription_edit { +margin-left: 3.75em; +clear:none; +display:block; +width:auto; +} + +.profile .entity_profile .note { + margin-bottom: 0.2em; +} + +.profile .entity_profile .url, +.profile .entity_profile .entity_tags{ + margin-left: 6em; + display: block; + width: auto; +} + +.profile .entity_profile .entity_tags dt { +display:inline; +margin-right:11px; +} + +.profile .entity_profile .form_subscription_edit label { +font-weight:normal; +margin-right:11px; +} + +/*applications*/ +.applications { +margin-bottom:18px; +float:left; +width:100%; +} +.applications li { +list-style-type:none; +} +.application img, +#showapplication .entity_profile img, +.form_data #application_icon img, +#apioauthauthorize .form_data img { +max-width:96px; +max-height:96px; +} +#apioauthauthorize .form_data img { +margin-right:18px; +float:left; +} +#showapplication .entity_profile { +width:68%; +} +#showapplication .entity_profile .entity_fn { +margin-left:0; +} +#showapplication .entity_profile .entity_fn .fn:before, +#showapplication .entity_profile .entity_fn .fn:after { +content:''; +} +#showapplication .entity_data { +clear:both; +margin-bottom:18px; +} +#showapplication .entity_data h2 { +display:none; +} +#showapplication .entity_data dl { +margin-bottom:18px; +} +#showapplication .entity_data dt { +font-weight:bold; +} +#showapplication .entity_data dd { +margin-left:1.795%; +font-family:monospace; +font-size:1.3em; +} +.form_data #application_types label.radio, +.form_data #default_access_types label.radio { +width:14.5%; +} + +/* NOTICE */ +ol.notices, ol.xoxo { + font-size: 100%; + line-height: 1; +} + +.notice, +.profile, +.application { +position:relative; +clear:both; +float:left; +width:100%; +} +.notices li { +list-style-type:none; +} + +.notices li li { +} +.notices .notices { +margin-top: 4.8em; +} +.mark-top { +border-top-width:1px; +border-top-style:solid; +} + +/* NOTICES */ +#notices_primary { +float:left; +width:100%; +} +#notices_primary h2 { +display:none; +} +.notice-data a span { +display:block; +padding-left:28px; +} + +.notice .author { +margin-right:11px; +} +#showstream #content .notice .author { +display:none; +} + +.fn { + overflow:hidden; +} + +p .fn { + font-size: 100%; +} +.notice .author .fn { + font-family: 'TexGyreHerosBold', sans-serif; + font-size:1.6em; + line-height:1.5em; + margin-bottom:1.5em; +} + +.vcard .photo { +display:inline; +float:left; +} +#shownotice .vcard .photo { +margin-bottom:4px; +} +#content .notice .author .photo { +position:absolute; +left:0; +float:none; +margin-top: 0.6em; +} +#content .notice .entry-title { +margin-left: 6em; +max-width: 48em; +} + +.vcard .url, +.vcard .entity_tags{ + text-decoration:none;i + font-size:1.3em; +} +.vcard .url:hover { +text-decoration:underline; +} + +.notice .entry-title { +overflow:hidden; +word-wrap:break-word; +} +.notice .entry-title.ov { +overflow:visible; +} +#showstream .notice .entry-title, +#showstream .notice div.entry-content { +margin-left:0; +} +#shownotice .notice .entry-title { +margin-left:110px; +font-size:2.2em; +min-height:123px; +} +#shownotice .notice div.entry-content { +margin-left:0; +} + +.notice p.entry-content { +display:inline; +} + +#content .notice p.entry-content a:visited { +} +.notice p.entry-content .vcard a { +} + +.notice div.entry-content { + clear:left; + float:left; + font-size:1.3em; + line-height:1.8461538461538461538461538461538em; + margin-bottom:1.8461538461538461538461538461538em; + margin-left: 4.75em; +} +#showstream .notice div.entry-content, +#shownotice .notice div.entry-content { +max-width:79%; +} + +.notice .notice-options a, +.notice .notice-options input { +float:left; +} + +.notice div.entry-content .timestamp { +display:inline-block; +} + +.entry-content .repeat { +display:block; +} +.entry-content .repeat .photo { +float:none; +margin-right:1px; +position:relative; +top:4px; +left:0; +} + +.dialogbox { +position:absolute; +top:-1px; +right:-1px; +z-index:9; +float:none; +padding:11px; +border-style:solid; +border-width:1px; +background-color: #FFF; +font-size: 62.5%; +} + +.dialogbox legend { +display:block !important; +margin-right:18px; +margin-bottom:18px; +font-size: 1.6em; +} + +.dialogbox button.close { +position:absolute; +right:3px; +top:3px; +} + +.dialogbox .form_guide { +font-weight:normal; +padding:0; +} + +.dialogbox .submit_dialogbox { +font-weight:bold; +text-indent:0; +min-width:46px; +} +.dialogbox input { +padding-left:4px; +} +.dialogbox fieldset { +margin-bottom:0; +} + +#wrap form.processing input.submit, +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { +cursor:wait; +outline:none; +text-indent:-9999px; +} + +.form_repeat.dialogbox { +top:-4px; +right:29px; +min-width:199px; +} + +.notice-options { +position:relative; +width:9.8em; +float:right; +} + +.notice-options a { +float:left; +} +.notice-options .notice_reply, +.notice-options .form_repeat, +.notice-options .form_favor, +.notice-options .form_disfavor, +.notice-options .repeated { +float:left; +margin-left: 0.5em; +} +.notice-options .form_favor, +.notice-options .form_disfavor { +margin-left:0; +} +.notice-options input, +.notice-options a, +.notice-options .repeated { +text-indent:-9999px; +outline:none; +width: 1em; +} +.notice-options input.submit { +display:block; +border:0; +} +.notice-options .notice_reply, +.notice-options .notice_delete { +text-decoration:none; +} +.notice .notice-options .notice_delete { +float:right; +} +.notice-options form input.submit { +width:16px; +height:16px; +padding:0; +} +.notice-options .form_repeat legend, +.notice-options .form_favor legend, +.notice-options .form_disfavor legend { +display:none; +} +.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 { + font-size:1.6em; + line-height:1.5em; + margin-bottom:0; +} + +.notice .attachment { +position:relative; +padding-left:16px; +} +.notice .attachment.more { +text-indent:-9999px; +width:16px; +height:16px; +display:inline-block; +overflow:hidden; +vertical-align:middle; +margin-left:4px; +} + +#attachments .attachment, +.notice .attachment.more { +padding-left:0; +} +.notice .attachment img { +position:absolute; +top:18px; +left:0; +z-index:99; +} +#shownotice .notice .attachment img { +position:static; +} + +#attachments { +clear:both; +float:left; +width:100%; +margin-top:18px; +} +#attachments dt { +font-weight:bold; +font-size:1.3em; +margin-bottom:4px; +} + +#attachments ol li { +margin-bottom:18px; +list-style-type:decimal; +float:left; +clear:both; +} + +#jOverlayContent, +#jOverlayContent #content, +#jOverlayContent #content_inner { +width: auto !important; +margin-bottom:0; +} +#jOverlayContent #content { +padding:11px; +min-height:auto; +} +#jOverlayContent .entry-title { +display:block; +margin-bottom:11px; +} +#jOverlayContent button { +position:absolute; +top:0; +right:0; +} +#jOverlayContent h1 { +max-width:425px; +} +#jOverlayContent #content { +} +#jOverlayLoading { +top:5%; +left:40%; +} +#attachment_view img { +max-width:480px; +max-height:480px; +} +#attachment_view #oembed_info { +margin-top:11px; +} +#attachment_view #oembed_info dt, +#attachment_view #oembed_info dd { +float:left; +} +#attachment_view #oembed_info dt { +clear:left; +margin-right:11px; +font-weight:bold; +} +#attachment_view #oembed_info dt:after { +content: ":"; +} + +#usergroups #new_group { +float: left; +margin-right: 2em; +} +#new_group, #group_search { +margin-bottom:18px; +} +#new_group a { +padding-left:20px; +} + +#filter_tags { +margin-bottom:11px; +float:left; +} +#filter_tags dt { +display:none; +} +#filter_tags ul { + list-style-type:none; + font-size: 100%; + line-height: 1; +} +#filter_tags li { +float:left; +margin-left:7px; +padding-left:7px; +border-left-width:1px; +border-left-style:solid; +} +#filter_tags #filter_tags_all { +margin-left:0; +border-left:0; +padding-left:0; +} +#filter_tags_all a { +font-weight:bold; +margin-top:7px; +float:left; +} + +#filter_tags_item label { +margin-right:7px; +} +#filter_tags_item label, +#filter_tags_item select { +float:left; +} +#filter_tags_item p { +float:left; +clear:both; +margin-left:38px; +} +#filter_tags_item .submit { +position:relative; +top:-3px; +left:3px; +} + +.pagination { +float:left; +clear:both; +width:100%; +margin-top:18px; +} + +.pagination dt { +font-weight:bold; +display:none; +} + +.pagination .nav { +float:left; +width:100%; +list-style-type:none; +} + +.pagination .nav_prev { +float:left; +} +.pagination .nav_next { +float:right; +} + +.pagination a { +display:block; +text-decoration:none; +padding:0.7em; +font-size: 1.2em; +vertical-align: middle; +line-height: 1; +color: #C00 !important; +width: auto !important; +} + +.pagination .nav_prev a { +padding-left:30px; +} +.pagination .nav_next a { +padding-right:30px; +} +/* END: NOTICE */ + +.hentry .entry-content li { + margin-left: 3.75em;; +} + +.hentry .entry-content .form_settings ul { +margin-left:0; +} + +#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; +padding-bottom:11px; +} +.section .vcard .photo { +margin-right:7px; +margin-bottom:0; +} + +.section .notice { +padding-top:7px; +padding-bottom:7px; +border-top:0; +} + +.section .notice:first-child { +padding-top:0; +} + +.section .notice .author { +margin-right:0; +} +.section .notice .author .fn { +display:none; +} + +/* tagcloud */ +.tag-cloud { +list-style-type:none; +text-align:center; +} +.aside .tag-cloud { +font-size:0.8em; +word-wrap:break-word; +} +.tag-cloud li { +display:inline; +margin-right:7px; +line-height:1.25; +} + +.tag-cloud li:before { +content:'\0009'; +} + +.aside .tag-cloud li { +line-height:1.5; +} +.tag-cloud li a { +text-decoration:none; +} +#tagcloud.section dt { +text-transform:uppercase; +font-weight:bold; +} +.tag-cloud-1 { +font-size:1em; +} +.tag-cloud-2 { +font-size:1.25em; +} +.tag-cloud-3 { +font-size:1.75em; +} +.tag-cloud-4 { +font-size:2em; +} +.tag-cloud-5 { +font-size:2.25em; +} +.tag-cloud-6 { +font-size:2.75em; +} +.tag-cloud-7 { +font-size:3.25em; +} + +#publictagcloud #tagcloud.section dt { +display:none; +} + +#form_settings_photo .form_data { +clear:both; +} + +#form_settings_avatar li { +width:auto; +} +#form_settings_avatar input { +margin-left:0; +} +#avatar_original, +#avatar_preview { +float:left; +} +#avatar_preview { +margin-left:29px; +} +#avatar_preview_view { +height:96px; +width:96px; +margin-bottom:18px; +overflow:hidden; +} + +#settings_attach, +#form_settings_avatar .form_actions { +clear:both; +} + +#form_settings_avatar .form_actions { +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; +} + +.system_notice ul, +.instructions ul { +margin-left:1em; +} +.instructions ul { +margin-bottom:18px; +} +.help dt { +display:none; +} +.guide { +clear:both; +} + +#bookmarklet address { +display:none; +} +#bookmarklet .form_notice { +width:auto; +} +#bookmarklet #wrap { +min-width:0; +} + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} + +}/*end of @media print*/ diff --git a/theme/mnml/css/ie.css b/theme/mnml/css/ie.css new file mode 100644 index 0000000000..01a8ffcbdc --- /dev/null +++ b/theme/mnml/css/ie.css @@ -0,0 +1,87 @@ +/* IE specific styles */ +input.checkbox, +input.radio { +top:0; +} + +#wrap { + *position: relative; +} + +#site_nav_global_primary { + *float: none; + *left: 1em; +} + +img.logo { + *margin-bottom: 1.75em; + } + +.form_notice textarea { +width:78%; +} +.form_notice .form_note + label { +position:absolute; +top:25px; +left:83%; +text-indent:-9999px; +height:16px; +width:16px; +display:block; +} +.form_notice #notice_action-submit { +width:17%; +max-width:17%; +} +.form_notice #notice_data-attach_selected, +.form_notice #notice_data-geo_selected { +width:78.75%; +} +.form_notice #notice_data-attach_selected button, +.form_notice #notice_data-geo_selected button { +padding:0 4px; +} +.form_notice .form_note + label { + background:transparent url(../images/icons/icons-01.png) no-repeat 0 -328px; +} + +.form_notice #notice_data-attach { + filter: alpha(opacity=0); +} +.form_notice #notice_data-geo_wrap label { + background:transparent url(../images/icons/icons-01.png) no-repeat +0 -1780px; +} +.form_notice #notice_data-geo_wrap label.checked { + background:transparent url(../images/icons/icons-01.png) no-repeat +0 -1846px; +} + +.notices li { +*margin-bottom: 1.6em; +} + +.notice-options input.submit { +font-size:0; +text-align:right; +text-indent:0; +} +.notice div.entry-content .timestamp a { +margin-right:4px; +} +.entity_profile { +width:64%; +} +.notice { +z-index:1; +} +.notice:hover { +z-index:9999; +} +.notice .thumbnail img { +z-index:9999; +} + +.form_settings fieldset fieldset legend { +line-height:auto; +} diff --git a/theme/mnml/css/ie6.css b/theme/mnml/css/ie6.css new file mode 100644 index 0000000000..6df5e01cee --- /dev/null +++ b/theme/mnml/css/ie6.css @@ -0,0 +1,40 @@ +/* IE6 specific styles */ +address { +margin-left:7px; +} +address .fn { +display:none; +} + +#wrap { +width:1003px; +margin:0 auto; +} + +#content { +width:66%; +} +#aside_primary { +padding:1.8%; +width:24%; +} +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags { +margin-left:0; +} +.entity_profile .entity_depiction { +margin-bottom:123px; +} +.entity_actions { +width:20%; +} +.notice div.entry-content { +width:65%; +margin-left:30px; +} +.notice-options a { +width:16px; +} diff --git a/theme/mnml/css/jquery.Jcrop.css b/theme/mnml/css/jquery.Jcrop.css new file mode 100644 index 0000000000..b35f332aae --- /dev/null +++ b/theme/mnml/css/jquery.Jcrop.css @@ -0,0 +1,35 @@ +/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */ +.jcrop-holder { text-align: left; } + +.jcrop-vline, .jcrop-hline +{ + font-size: 0; + position: absolute; + background: white url(../images/illustrations/illu_jcrop.gif) top left repeat; +} +.jcrop-vline { height: 100%; width: 1px !important; } +.jcrop-hline { width: 100%; height: 1px !important; } +.jcrop-handle { + font-size: 1px; + width: 7px !important; + height: 7px !important; + border: 1px #eee solid; + background-color: #333; + *width: 9px; + *height: 9px; +} + +.jcrop-tracker { width: 100%; height: 100%; } + +.custom .jcrop-vline, +.custom .jcrop-hline +{ + background: yellow; +} +.custom .jcrop-handle +{ + border-color: black; + background-color: #C7BB00; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} diff --git a/theme/mnml/css/mp-screen.css b/theme/mnml/css/mp-screen.css new file mode 100644 index 0000000000..cc9514174a --- /dev/null +++ b/theme/mnml/css/mp-screen.css @@ -0,0 +1,293 @@ +/** theme: mobile profile screen + * + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + +#wrap { +min-width:0; +max-width:100%; +} + +body { + max-width: 100%; + margin: 0 1em; +} + +#header { +margin:0; +padding:0.7em 2%; +width:96%; +} + +address { +margin:1em 0 0 0; +float:left; +width:100%; +} +address .vcard .photo { +margin-right:0; +} + +address img + .fn { +display:block; +margin-top:1em; +float:left; +} + +.vcard .photo { +margin-right:7px; +} + + +.form_settings fieldset { +margin-bottom:7px; +} + +.form_settings label { +width:auto; +display:block; +float:none; +} +.form_settings .form_data li { +margin-bottom:7px; +} + +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:0; +display:block; +} +.form_settings .form_data textarea { +width:96.41%; +} + +.form_settings .form_data label { +float:none; +} + +.form_settings .form_data p.form_guide { +width:auto; +margin-left:0; +} + +#site_nav_global_primary { +margin:0; +width:100%; +list-style-type:none; +position:absolute; +top:0; +left:0; +} +#site_nav_global_primary li { +margin-left:0; +margin-right:4%; +float:left; +font-size:0.9em; +} + +#form_notice { +width:100%; +margin-left: 0; +} + +#form_notice textarea { +width:60%; +height:20px; +} + +#notice_text-count { +position:absolute; +bottom:2px; +right:40%; +z-index:9; +} + +/*input type=file no good in +iPhone/iPod Touch, Android, Opera Mini Simulator +*/ +#form_notice #notice_text-count + label, +#form_notice label[for="notice_data-attach"] { +display:none; +} +#form_notice #notice_data-attach { +position:static; +clear:both; +width:65%; +height:auto; +display:block; +z-index:9; +padding:0; +margin:0; +background:none; +opacity:1; +} + +#form_notice #notice_action-submit { +width:20%; +right:2%; +text-align:center; +} + + +#site_nav_local_views li { +margin-left:0; +margin-right:0; +} +#site_nav_local_views li:first-child { +margin-left:0; +} +#site_nav_local_views a { +padding:1px 3px; +display:block; +font-size:0.9em; +} +#site_nav_local_views .current a { +text-shadow:none; +} +#site_nav_local_views li { +-moz-box-shadow:none; +-webkit-box-shadow:none; +box-shadow:none; +} + + +#content { +width:96.41%; +min-height:auto; +} +#content, +#site_nav_local_views a, +#aside_primary { +border:0; +} + +.instructions p, +.instructions ul { +margin-bottom:4px; +} + +h1 { +margin-bottom:0; +} + +.notice, +.profile { +padding-top:4px; +padding-bottom:4px; +min-height:65px; +} +#content .notice .entry-title { +float:left; +width:100%; +margin-left:0; +} +#content .notice .author .photo { +position:static; +float:left; +} +#content .notice div.entry-content { +margin-left:0; +width:75%; +max-width:100%; +min-width:0; +} +.notice-options { +margin-right:1%; +} + +.notice-options form.processing { +background-image:none; +} +#wrap .notice-options form.processing input.submit { +background-position:0 47%; +} + +.notice .notice-options a, +.notice .notice-options input { +box-shadow:none; +-moz-box-shadow:none; +-webkit-box-shadow:none; +} +.notice .notice-options a, +.notice .notice-options form { +margin: 0; +} +.notice .notice-options .form_repeat, +.notice .notice-options .notice_delete { +margin-top:0px; +} +.notice .notice-options .form_favor, +.notice .notice-options .form_disfavor, +.notice .notice-options .form_repeat { +margin-right:11px; +} + +.notice .notice-options .notice_delete { +float:left; +} + +.entity_profile { +width:auto; +} + +.entity_actions { +margin-right:0; +margin-left:0; +clear:both; +float:none; +width:100%; +max-width:9999px; +} + +.entity_profile { +margin-bottom:7px; +min-height:0; +} + +.entity_profile .entity_fn, +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags, +.entity_profile .entity_aliases { +line-height:1.4; +margin-left:0; +} + +.entity_profile .entity_depiction { +margin-bottom:1%; +margin-right:7px; +} + +.entity_actions { +margin-bottom:1%; +float:left; +width:100%; +} + +.entity_actions li { +float:left; +margin-right:1.5%; +margin-bottom:0; +height:29px; +width:40%; +} + +.user_in .entity_actions .entity_subscribe { +margin-bottom:47px; +width:auto; +height:auto; +margin-right:5%; +} + +#footer { +width:96%; +padding:2%; +} + diff --git a/theme/mnml/css/uap.css b/theme/mnml/css/uap.css new file mode 100644 index 0000000000..9b724cfb0c --- /dev/null +++ b/theme/mnml/css/uap.css @@ -0,0 +1,53 @@ +/** Universal Ad Package styles: + * Medium Rectangle 300x250 + * Rectangle 180x150 + * Leaderboard 728x90 + * Wide Skyscraper 160x600 + * + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + +.ad { +border:1px solid #CCC; +float:left; +} + +#ad_medium-rectangle { +width:300px; +height:250px; + +margin-left:1.35%; +margin-bottom:18px; +} + +#ad_rectangle { +width:180px; +height:150px; + +float:none; +clear:both; +margin:0 auto; +margin-bottom:29px; +} + +#ad_leaderboard { +width:728px; +height:90px; + +margin:0 auto 18px; +float:none; +clear:both; +} + +#ad_wide-skyscraper { +width:160px; +height:600px; + +float:right; +margin-top:18px; +margin-right:8.25%; +} diff --git a/theme/mnml/default-avatar-mini.png b/theme/mnml/default-avatar-mini.png new file mode 100644 index 0000000000..3f1682a0cd Binary files /dev/null and b/theme/mnml/default-avatar-mini.png differ diff --git a/theme/mnml/default-avatar-profile.png b/theme/mnml/default-avatar-profile.png new file mode 100644 index 0000000000..a667695e93 Binary files /dev/null and b/theme/mnml/default-avatar-profile.png differ diff --git a/theme/mnml/default-avatar-stream.png b/theme/mnml/default-avatar-stream.png new file mode 100644 index 0000000000..cec1ac1f8d Binary files /dev/null and b/theme/mnml/default-avatar-stream.png differ diff --git a/theme/mnml/fonts/GUST e-foundry License.txt b/theme/mnml/fonts/GUST e-foundry License.txt new file mode 100644 index 0000000000..9da139743e --- /dev/null +++ b/theme/mnml/fonts/GUST e-foundry License.txt @@ -0,0 +1,29 @@ +This is a preliminary version (2006-09-30), barring acceptance from +the LaTeX Project Team and other feedback, of the GUST Font License. +(GUST is the Polish TeX Users Group, http://www.gust.org.pl) + +For the most recent version of this license see +http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt +or +http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt + +This work may be distributed and/or modified under the conditions +of the LaTeX Project Public License, either version 1.3c of this +license or (at your option) any later version. + +Please also observe the following clause: +1) it is requested, but not legally required, that derived works be + distributed only after changing the names of the fonts comprising this + work and given in an accompanying "manifest", and that the + files comprising the Work, as listed in the manifest, also be given + new names. Any exceptions to this request are also given in the + manifest. + + We recommend the manifest be given in a separate file named + MANIFEST-.txt, where is some unique identification + of the font family. If a separate "readme" file accompanies the Work, + we recommend a name of the form README-.txt. + +The latest version of the LaTeX Project Public License is in +http://www.latex-project.org/lppl.txt and version 1.3c or later +is part of all distributions of LaTeX version 2006/05/20 or later. diff --git a/theme/mnml/fonts/stylesheet.css b/theme/mnml/fonts/stylesheet.css new file mode 100644 index 0000000000..8b4e55483b --- /dev/null +++ b/theme/mnml/fonts/stylesheet.css @@ -0,0 +1,60 @@ +/* Generated by Font Squirrel (http://www.fontsquirrel.com) on August 31, 2010 09:11:40 AM America/New_York */ + + + +@font-face { + font-family: 'TeXGyreHerosRegular'; + src: url('texgyreheros-regular-webfont.eot'); + src: local('☺'), url('texgyreheros-regular-webfont.woff') format('woff'), url('texgyreheros-regular-webfont.ttf') format('truetype'), url('texgyreheros-regular-webfont.svg#webfontznVDIkhT') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosItalic'; + src: url('texgyreheros-italic-webfont.eot'); + src: local('☺'), url('texgyreheros-italic-webfont.woff') format('woff'), url('texgyreheros-italic-webfont.ttf') format('truetype'), url('texgyreheros-italic-webfont.svg#webfontonVrQ9Kn') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosBold'; + src: url('texgyreheros-bold-webfont.eot'); + src: local('☺'), url('texgyreheros-bold-webfont.woff') format('woff'), url('texgyreheros-bold-webfont.ttf') format('truetype'), url('texgyreheros-bold-webfont.svg#webfontaJCL46uI') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosCnRegular'; + src: url('texgyreheroscn-regular-webfont.eot'); + src: local('☺'), url('texgyreheroscn-regular-webfont.woff') format('woff'), url('texgyreheroscn-regular-webfont.ttf') format('truetype'), url('texgyreheroscn-regular-webfont.svg#webfont5LIRj7jM') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosCnItalic'; + src: url('texgyreheroscn-italic-webfont.eot'); + src: local('☺'), url('texgyreheroscn-italic-webfont.woff') format('woff'), url('texgyreheroscn-italic-webfont.ttf') format('truetype'), url('texgyreheroscn-italic-webfont.svg#webfontHl3qwlFd') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosCnBold'; + src: url('texgyreheroscn-bold-webfont.eot'); + src: local('☺'), url('texgyreheroscn-bold-webfont.woff') format('woff'), url('texgyreheroscn-bold-webfont.ttf') format('truetype'), url('texgyreheroscn-bold-webfont.svg#webfonthCSznjKQ') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'TeXGyreHerosCnBoldItalic'; + src: url('texgyreheroscn-bolditalic-webfont.eot'); + src: local('☺'), url('texgyreheroscn-bolditalic-webfont.woff') format('woff'), url('texgyreheroscn-bolditalic-webfont.ttf') format('truetype'), url('texgyreheroscn-bolditalic-webfont.svg#webfontYufML4kp') format('svg'); + font-weight: normal; + font-style: normal; +} + diff --git a/theme/mnml/fonts/texgyreheros-bold-webfont.eot b/theme/mnml/fonts/texgyreheros-bold-webfont.eot new file mode 100644 index 0000000000..b31bded808 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-bold-webfont.eot differ diff --git a/theme/mnml/fonts/texgyreheros-bold-webfont.svg b/theme/mnml/fonts/texgyreheros-bold-webfont.svg new file mode 100644 index 0000000000..6b494fc75a --- /dev/null +++ b/theme/mnml/fonts/texgyreheros-bold-webfont.svg @@ -0,0 +1,238 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/mnml/fonts/texgyreheros-bold-webfont.ttf b/theme/mnml/fonts/texgyreheros-bold-webfont.ttf new file mode 100644 index 0000000000..3c4ffef550 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-bold-webfont.ttf differ diff --git a/theme/mnml/fonts/texgyreheros-bold-webfont.woff b/theme/mnml/fonts/texgyreheros-bold-webfont.woff new file mode 100644 index 0000000000..de4f5f1f8f Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-bold-webfont.woff differ diff --git a/theme/mnml/fonts/texgyreheros-italic-webfont.eot b/theme/mnml/fonts/texgyreheros-italic-webfont.eot new file mode 100644 index 0000000000..896ebcbed6 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-italic-webfont.eot differ diff --git a/theme/mnml/fonts/texgyreheros-italic-webfont.svg b/theme/mnml/fonts/texgyreheros-italic-webfont.svg new file mode 100644 index 0000000000..213584a098 --- /dev/null +++ b/theme/mnml/fonts/texgyreheros-italic-webfont.svg @@ -0,0 +1,238 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/mnml/fonts/texgyreheros-italic-webfont.ttf b/theme/mnml/fonts/texgyreheros-italic-webfont.ttf new file mode 100644 index 0000000000..e07782e98c Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-italic-webfont.ttf differ diff --git a/theme/mnml/fonts/texgyreheros-italic-webfont.woff b/theme/mnml/fonts/texgyreheros-italic-webfont.woff new file mode 100644 index 0000000000..d33dc0a85d Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-italic-webfont.woff differ diff --git a/theme/mnml/fonts/texgyreheros-regular-webfont.eot b/theme/mnml/fonts/texgyreheros-regular-webfont.eot new file mode 100644 index 0000000000..ab9638e9a7 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-regular-webfont.eot differ diff --git a/theme/mnml/fonts/texgyreheros-regular-webfont.svg b/theme/mnml/fonts/texgyreheros-regular-webfont.svg new file mode 100644 index 0000000000..778a548826 --- /dev/null +++ b/theme/mnml/fonts/texgyreheros-regular-webfont.svg @@ -0,0 +1,238 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/mnml/fonts/texgyreheros-regular-webfont.ttf b/theme/mnml/fonts/texgyreheros-regular-webfont.ttf new file mode 100644 index 0000000000..65840af159 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-regular-webfont.ttf differ diff --git a/theme/mnml/fonts/texgyreheros-regular-webfont.woff b/theme/mnml/fonts/texgyreheros-regular-webfont.woff new file mode 100644 index 0000000000..53a9349e62 Binary files /dev/null and b/theme/mnml/fonts/texgyreheros-regular-webfont.woff differ diff --git a/theme/mnml/images/icons/README b/theme/mnml/images/icons/README new file mode 100644 index 0000000000..a469a7f8e7 --- /dev/null +++ b/theme/mnml/images/icons/README @@ -0,0 +1,79 @@ +/** + * @author P.J. Onori + * @license Creative Commons Attribution-Share Alike 3.0 license http://creativecommons.org/licenses/by-sa/3.0/us/ + * @link http://somerandomdude.com/projects/iconic/ + * @note + Feed icon + Left arrow + Right arrow + Solid heart + Outlined heart + @-sign + Trash + Pencil + Envelope + Speech bubble + Lock + User + Sun + 'x' + Plus + Minus + Solid tag + Outlined tag + pair of outlined speech bubbles + pair of solid speech bubbles + New Window + Key + Solid map pin + Outlined map pin + Checkmark + Denied + Play + Pause + + */ + +/** + * @author Brightmix + * @link http://www.brightmix.com/blog/more-icons-in-the-brightmix-icon-set-free-for-all/ + * @license WTFPL + Paper clip + Paper clip with paper + Flag + */ + +/** + * @author Michael R. Bernstein + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @note + These icons were heavily modified from versions + in the Iconic set by P.J. Onori, or were created + from scratch to match: + Speech bubble with minus + Speech bubble with plus + User in a circle + */ + +/** + * @author Michael R. Bernstein + * @author Sarven Capadisli + * @copyright 2008-2010 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/ + * @note + These icons were originally by Sarven Capadisli, but were + subsequently modified by Michael Bernstein: + Underscore with gray background + Broken underscore with grey background + White C with gray background + White magic wand with gray background + Gray sandbox with transparent background + Transparent sandbox with gray background + Skull in a circle + */ + +Created by various authors +* FOAF icon from http://iandavis.com/2006/foaf-icons/ with Public Domain license +* Processing icon from/by Unknown with Unknown license //FIXME diff --git a/theme/mnml/images/icons/icon_processing.gif b/theme/mnml/images/icons/icon_processing.gif new file mode 100644 index 0000000000..d0bce15423 Binary files /dev/null and b/theme/mnml/images/icons/icon_processing.gif differ diff --git a/theme/mnml/images/icons/icon_vcard.gif b/theme/mnml/images/icons/icon_vcard.gif new file mode 100644 index 0000000000..6d52947f3e Binary files /dev/null and b/theme/mnml/images/icons/icon_vcard.gif differ diff --git a/theme/mnml/images/icons/icons-01.png b/theme/mnml/images/icons/icons-01.png new file mode 100644 index 0000000000..072b95d355 Binary files /dev/null and b/theme/mnml/images/icons/icons-01.png differ diff --git a/theme/mnml/images/illustrations/illu_jcrop.gif b/theme/mnml/images/illustrations/illu_jcrop.gif new file mode 100644 index 0000000000..72ea7ccb53 Binary files /dev/null and b/theme/mnml/images/illustrations/illu_jcrop.gif differ diff --git a/theme/mnml/images/illustrations/illu_pattern-01.png b/theme/mnml/images/illustrations/illu_pattern-01.png new file mode 100644 index 0000000000..833309e587 Binary files /dev/null and b/theme/mnml/images/illustrations/illu_pattern-01.png differ diff --git a/theme/mnml/images/illustrations/illu_progress_loading-01.gif b/theme/mnml/images/illustrations/illu_progress_loading-01.gif new file mode 100644 index 0000000000..82290f4833 Binary files /dev/null and b/theme/mnml/images/illustrations/illu_progress_loading-01.gif differ diff --git a/theme/mnml/images/logo.png b/theme/mnml/images/logo.png new file mode 100644 index 0000000000..8c2c2b7233 Binary files /dev/null and b/theme/mnml/images/logo.png differ diff --git a/theme/mnml/logo.png b/theme/mnml/logo.png new file mode 100644 index 0000000000..8c2c2b7233 Binary files /dev/null and b/theme/mnml/logo.png differ diff --git a/theme/mnml/mobilelogo.png b/theme/mnml/mobilelogo.png new file mode 100644 index 0000000000..67960b2a36 Binary files /dev/null and b/theme/mnml/mobilelogo.png differ diff --git a/theme/pigeonthoughts/css/base.css b/theme/pigeonthoughts/css/base.css index bc2e24dc50..c31ea6b678 100644 --- a/theme/pigeonthoughts/css/base.css +++ b/theme/pigeonthoughts/css/base.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index 3d6db00e14..91078806a6 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -3,7 +3,7 @@ * @package StatusNet * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported * @link http://status.net/ */ diff --git a/theme/pigeonthoughts/css/ie.css b/theme/pigeonthoughts/css/ie.css index 2f463bb44d..46d14c2021 100644 --- a/theme/pigeonthoughts/css/ie.css +++ b/theme/pigeonthoughts/css/ie.css @@ -1,3 +1,10 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ /* IE specific styles */ .notice-options input.submit { diff --git a/theme/rebase/css/display.css b/theme/rebase/css/display.css new file mode 100644 index 0000000000..ab75165670 --- /dev/null +++ b/theme/rebase/css/display.css @@ -0,0 +1,1986 @@ +/** theme: rebase + * + * @package StatusNet + * @author Samantha Doherty + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + + +@media screen, projection, tv { + +/* general styles and layout */ + +* {margin: 0; padding: 0; vertical-align: baseline;} +a abbr {border-bottom: 0; cursor: pointer;} +input.submit {cursor: pointer;} +table {border-collapse: collapse;} +ol, ul {list-style-position: inside;} +fieldset {border: none;} +legend {font-weight: bold; font-size: 1.2em;} +input, textarea, select, option {padding: 2px;} +textarea {overflow:auto;} + +body { + background-color: #ffffff; + color: #000; + font-family: sans-serif; + font-size: 100%; + line-height: 1.4; + min-width: 700px; +} + +a { + color: #00008c; + text-decoration: none; + outline: none; +} + +a:hover { + text-decoration: underline; +} + +a img { + border: 0; + text-decoration: none; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: normal; + margin-bottom: 15px; +} + +h1 {font-size: 2.2em;} +h2 {font-size: 1.8em;} +h3 {font-size: 1.6em;} +h4 {font-size: 1.4em;} +h5 {font-size: 1.2em;} +h6 {font-size: 1em;} + +p { + margin-bottom: 1.4em; +} + +.form_notice p, li p, .section p { + margin-bottom: 0; +} + +input, textarea, select, option { + font-family: "DejaVu Sans", "Bitstream Vera Sans", Geneva, Verdana, sans-serif; + font-size: 1em; +} + +select { + padding-right: 10px; + padding-bottom: 0px; + margin-top: -4px; +} + +option { + padding-bottom: 0px; +} + +#wrap { + width: 92%; + margin-left: 4%; + margin-right: 4%; + position: relative; +} + +#header { + padding: 1%; + position: relative; +} + +#core { + display:inline; + float: left; + position: relative; + margin-left: 1%; + margin-right: 1%; + width: 98%; +} + +#content { + margin-bottom: 20px; + background-color: #fff; + display:inline; + float: left; + position: relative; + min-height: 300px; + width: 64.667%; + margin-right: 2%; +} + +#aside_primary { + display: inline; + float: right; + position: relative; + width: 33.333%; + padding-top: 15px; + background: #f2f2f2; + margin-bottom: 20px; +} + +#aside_primary .section { + margin: 0px 2% 20px 2%; + position: relative; + width: 96%; + float: left; + clear: both; +} + +body[id$=adminpanel] #aside_primary { + display:none; +} + +/* header elements */ + +address { + margin-bottom: 10px; +} + +address img + .fn { + display: none; +} + +address .poweredby { + display: block; + width: auto; +} + +#site_nav_global_primary { + margin: 20px 0px 20px 0px; +} + +#site_nav_global_primary dt { + display: none; +} + +#site_nav_global_primary li { + display: inline; + margin-right: 20px; +} + +#site_notice { + padding: 1%; + background-color: #f2f2f2; + margin-bottom: 10px; +} + +#site_notice p { + margin-bottom: 0px; +} + +#site_notice ul { + margin-left: 15px; +} + +#anon_notice { + padding: 1%; + background-color: #ccc; + margin-bottom: 10px; +} + +#anon_notice p { + margin-bottom: 0px; +} + +/* new notice & direct message forms */ + +.form_notice { + background: #ccc; + margin-bottom: 10px; + padding: 1%; +} + +.form_notice fieldset { + border: 0; + position: relative; + width: 620px; +} + +.form_notice legend { + display: none; +} + +.form_notice textarea { + clear: left; + float: left; + padding: 10px; + border: none; + position: relative; + width: 485px; + height: 60px; + padding-bottom: 18px; + z-index: 9; +} + +.form_notice label[for=notice_data-text] { + float: left; + font-weight: normal; + font-size: 1.2em; + margin-bottom: 0.2em; + opacity: 1; + color: #333 !important; +} + +.form_notice label[for=notice_data-attach], +.form_notice #notice_data-attach { + position:absolute; + top: 31px; + right: 88px; + cursor:pointer; +} + +.form_notice label[for=notice_data-attach] { + text-indent:-9999px; + width:16px; + height:16px; +} + +.form_notice #notice_data-attach { + padding:0; + height:16px; +} + +.form_notice .form_note { + position: absolute; + bottom: 0px; + right: 125px; + z-index: 9; + font-size: 0.8em; +} + +.form_notice .form_note dt { + display:none; +} + +.form_notice #notice_text-count { + color: #777; +} + +.form_notice.warning #notice_text-count { + color: #ff0000; +} + +.form_notice #notice_action-submit { + padding:0; + position:absolute; + right:0; + top: 81px; + height: 2.4em; + width: 106px; +} + +.form_notice label[for=to] { + margin-top: 0px; + float: left; + font-size: 1.2em; + font-weight: normal; + color: #333 !important; +} + +.form_notice select[id=to] { + margin-bottom: 4px; + margin-top: -4px; + margin-left:18px; + float:left; + max-width:322px; +} + +.form_notice .error, +.form_notice .success { + clear: left; + float: left; + overflow: auto; + line-height: 1.2em; + padding: 2px 2px 2px 5px; + width: 498px; + border: 2px solid #ccc; + margin-left: -2px; +} + +.form_notice #notice_data-attach_selected code { + font-size: 1.2em; +} + +.form_notice .error { + border: none; + width: 502px; + padding: 6px 2px 6px 5px; +} + +.form_notice #notice_data-attach_selected button.close { + float:right; + font-size:0.8em; +} + +.form_notice #notice_data-geo_wrap label, +.form_notice #notice_data-geo_wrap input { + position:absolute; + top: 55px; + right: 88px; + left:auto; + cursor:pointer; + width:16px; + height:16px; + display:block; +} + +.form_notice #notice_data-geo_wrap input { + visibility:hidden; +} + +.form_notice #notice_data-geo_wrap label { + font-weight:normal; + font-size:1em; + margin-bottom:0; + text-indent:-9999px; +} + +.form_notice label { + opacity: 0.6; +} + +.form_notice label:hover { + opacity: 1; +} + +.form_notice #notice_data-attach { + opacity:0; +} + +/* Local navigation */ + +#site_nav_local_views { + margin-bottom: 20px; +} + +#site_nav_local_views dt { + display: none; +} + +#site_nav_local_views li { + display: inline; + margin-right: 20px; +} + +#site_nav_local_views .current a { + text-decoration: underline; +} + +/* notices */ + +#notices_primary { + padding-top: 8px; + clear: both; +} + +#notices_primary h2 { + display: none; +} + +.notice { + list-style-type: none; + margin-bottom: 25px; + clear: left; + min-height: 54px; + padding-bottom: 2px; +} + +.notice, .profile, .application { + position:relative; + clear:both; + float:left; + width:100%; +} + +.notice .author { + margin-right: 8px; +} + +.fn { + overflow: hidden; +} + +.notice .author .fn { + font-weight: bold; +} + +#core .vcard .photo { + display: inline; + margin-right: 11px; + float: left; +} + +#content .notice .author .photo { + position: absolute; + top: 4px; + left: 4px; + float: none; +} + +#content .notice .entry-title { + margin: 2px 7px 0px 59px; +} + +.vcard .url { + text-decoration:none; +} +.vcard .url:hover { + text-decoration:underline; +} + +.notice .entry-title { + overflow:hidden; + word-wrap:break-word; +} + +.notice .entry-title.ov { +overflow:visible; +} + +#showstream h1 { + display:none; +} + +#showstream .notice .entry-title, #showstream .notice div.entry-content { + margin-left: 0; +} + +#showstream #content .notice .author { + display: none; +} + +#showstream .notice { + min-height: 1em; +} + +#shownotice .vcard .photo { + margin-bottom: 4px; +} + +#shownotice .notice .entry-title { + margin-left:110px; + font-size:2.2em; + min-height:123px; + font-size: 1.6em; + line-height: 1.2em; +} + +#shownotice .notice div.entry-content { + margin-left:0; +} + +.notice p.entry-content { + display:inline; +} + +.notice div.entry-content { + clear:left; + float:left; + margin-left:59px; + margin-top: 10px; +} + +.entry-content .repeat { + display: block; +} + +.entry-content .repeat .photo { +float:none; +margin-right:1px; +position:relative; +top:4px; +left:0; +} + +.notice-options { + float: right; + margin-top: 12px; + margin-right: -6px; +} + +.notice-options fieldset { + border: none; +} + +.notice-options legend { + display: none; +} + +.notice-options form, .notice-options a, .notice-options .repeated { + float: left; + margin-right: 10px; +} + +.notice-options input, .notice-options a, .notice-options .repeated { + text-indent: -9999px; + outline:none; +} + +.notice-options input.submit, .notice-options a, .notice-options .repeated { + display: block; + border: 0; + height: 16px; + width: 16px; +} + +.notice-options input.submit, .notice-options a { + opacity: 0.6; +} + +.notice-options input.submit:hover, .notice-options a:hover { + opacity: 1; +} + +.notice .attachment { + position:relative; + padding-left:16px; +} + +.notice .attachment.more { +text-indent:-9999px; +width:16px; +height:16px; +display:inline-block; +overflow:hidden; +vertical-align:middle; +margin-left:4px; +} + +#attachments .attachment, +.notice .attachment.more { +padding-left:0; +} + +.notice .attachment img { +position:absolute; +top:18px; +left:0; +z-index:99; +} + +#shownotice .notice .attachment img { +position:static; +} + +#attachments { +clear:both; +float:left; +width:100%; +margin-top:18px; +} +#attachments dt { +font-weight:bold; +font-size:1.3em; +margin-bottom:4px; +} + +#attachments ol li { +margin-bottom:18px; +list-style-type:decimal; +float:left; +clear:both; +} + +#jOverlayContent, +#jOverlayContent #content, +#jOverlayContent #content_inner { +width: auto !important; +margin-bottom:0; +} +#jOverlayContent #content { +padding:11px; +min-height:auto; + border: 1px solid #fff; +} +#jOverlayContent .entry-title { +display:block; +margin-bottom:11px; +} +#jOverlayContent button { + position:absolute; + top: 5px; + right: 20px; +} +#jOverlayContent h1 { +max-width:425px; +} +#jOverlayLoading { +top:5%; +left:40%; +} +#attachment_view img { +max-width:480px; +max-height:480px; +} +#attachment_view #oembed_info { +margin-top:11px; +} +#attachment_view #oembed_info dt, +#attachment_view #oembed_info dd { +float:left; +} +#attachment_view #oembed_info dt { +clear:left; +margin-right:11px; +font-weight:bold; +} +#attachment_view #oembed_info dt:after { +content: ":"; +} + +#content .notice .notice { + width: 98%; + margin-left: 2%; + margin-top: 16px; + margin-bottom: 10px; +} + +.notice .notice { +background-color:rgba(200, 200, 200, 0.050); +} +.notice .notice .notice { +background-color:rgba(200, 200, 200, 0.100); +} +.notice .notice .notice .notice { +background-color:rgba(200, 200, 200, 0.150); +} +.notice .notice .notice .notice .notice { +background-color:rgba(200, 200, 200, 0.300); +} + +/* aside primary specific styles */ + +.aside .section p, +.aside .section .more { +clear:both; +} + +.section .vcard .photo { +margin-right:7px; +margin-bottom:0; +} + +.section .notice { +padding-top:7px; +padding-bottom:7px; +border-top:0; +} + +.section .notice:first-child { +padding-top:0; +} + +.section .notice .author { +margin-right:0; +} +.section .notice .author .fn { +display:none; +} + +#aside_primary ol.notices { + list-style-type: none; + float: left; + position: relative; + margin-bottom: 10px; + width: 100%; +} + +#aside_primary .notices li { + margin-bottom: 8px; +} + +#aside_primary .notice { + min-height: 24px; +} + +#export_data li { + list-style-type:none; + display: inline; + line-height: 2; +} + +#export_data li a { + padding-left: 20px; + margin-right: 10px; +} +#export_data li a.foaf { + padding-left: 30px; +} + +#aside_primary td { + padding-right: 10px; + padding-bottom: 10px; +} + +.section tbody td { +padding-right:18px; +padding-bottom:11px; +} + +#entity_statistics dt, +#entity_statistics dd { +display:inline; +margin-right:11px; +} +#entity_statistics dt:after { +content: ":"; +} + +.section ul.entities { + float:left; + width:100%; +} + +.section .entities li { + list-style-type: none; + float: left; + margin-right: 3px; + margin-bottom: 8px; + display: inline; +} +.section .entities li .photo { + margin: 0; +} +.section .entities li .fn { + display: none; +} + +.tag-cloud { +list-style-type:none; +text-align:center; +} +.aside .tag-cloud { +font-size:0.8em; +word-wrap:break-word; +} +.tag-cloud li { +display:inline; +margin-right:7px; +line-height:1.25; +} + +.tag-cloud li:before { +content:'\0009'; +} + +.aside .tag-cloud li { +line-height:1.5; +} +.tag-cloud li a { +text-decoration:none; +} +#tagcloud.section dt { +text-transform:uppercase; +font-weight:bold; +} +.tag-cloud-1 { +font-size:1em; +} +.tag-cloud-2 { +font-size:1.25em; +} +.tag-cloud-3 { +font-size:1.75em; +} +.tag-cloud-4 { +font-size:2em; +} +.tag-cloud-5 { +font-size:2.25em; +} +.tag-cloud-6 { +font-size:2.75em; +} +.tag-cloud-7 { +font-size:3.25em; +} + +#publictagcloud #tagcloud.section dt { +display:none; +} + +/* secondary elements */ + +.processing { +background-image:url(../../base/images/icons/icon_processing.gif); +background-repeat:no-repeat; +background-position:47% 47%; +} + +.error { + background-color: #F7E8E8; +} +.success { + background-color: #f2f2f2; +} + +.system_notice dt { + display:none; +} + +#page_notice { +clear:both; +margin-bottom:18px; +} + +.entry-content .success { + padding: 6px; +} + +.system_notice ul, +.instructions ul { +margin-left:1em; +} +.instructions p, +.instructions ul { +margin-bottom:18px; +} +.help dt { +display:none; +} +.guide { +clear:both; +} + +#bookmarklet address { +display:none; +} +#bookmarklet .form_notice { +width:auto; +} +#bookmarklet #wrap { +min-width:0; +} + +button.close, +button.minimize { +width:16px; +height:16px; +text-indent:-9999px; +padding:0; +border:0; +text-align:center; +font-weight:bold; +cursor:pointer; +} + +.dialogbox { +position:absolute; + top: 0px; + right: 0px; +z-index:9; +float:none; +padding:11px; +border-style:solid; +border-width:1px; + background: #fff; + color: #000; +} + +.dialogbox legend { +display:block !important; +margin-right:18px; +margin-bottom:18px; +} + +.dialogbox button.close { +position:absolute; +right:3px; +top:3px; +} + +.dialogbox .form_guide { +font-weight:normal; +padding:0; +} + +.dialogbox .submit_dialogbox { +font-weight:bold; +text-indent:0; +min-width:46px; +} +.dialogbox input { +padding-left:4px; +} +.dialogbox fieldset { +margin-bottom:0; +} + +#wrap form.processing input.submit, +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { +cursor:wait; +outline:none; +text-indent:-9999px; +} + +.pagination { + background-color: #f2f2f2; + clear: left; + margin-top: 20px; + padding: 1%; + height: 1em; +} + +.pagination dt { + display: none; +} + +.pagination li { + display: inline; +} + +.pagination .nav_prev { + float: left; +} + +.pagination .nav_next { + float: right; +} + +#footer { + clear: both; + background-color: #ccc; + margin-left: 1%; + margin-right: 1%; + padding: 1%; +} + +#site_nav_global_secondary dt { + display: none; +} + +#site_nav_global_secondary li { + display: inline; + margin-right: 20px; +} + +#licenses dt { + display: none; +} + +#licenses dd { + margin-top: 10px; +} + +#site_content_license_cc { +margin-bottom:0; +} +#site_content_license_cc img { +display:inline; +vertical-align:top; +margin-right:4px; +} + +form ul li { + list-style-type:none; + margin:0 0 18px 0; +} + +form label.submit { +display:none; +} + +.form_settings { + clear:both; +} + +.form_settings fieldset { + margin-top: 10px; + margin-bottom: 30px; + border: none; +} + +.form_settings fieldset fieldset { + margin-bottom: 40px; + padding: 10px; + padding-top: 30px; + border-width:1px; + border-style:solid; + background:rgba(240, 240, 240, 0.2); +} + +.form_settings fieldset fieldset legend { + line-height:0; + font-size: 1.4em; + font-weight: normal; +} + +.form_settings input.remove { +margin-left:11px; +} +.form_settings .form_data li { +width:100%; +float:left; +} +.form_settings .form_data label { +float:left; +} +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:1.795%; +float:left; +} +.form_settings .form_data input { +width:39%; +} +.form_settings .form_data input.submit, +.form_settings .form_data input.checkbox, +.form_settings .form_data input.radio { +width:auto; +} +.form_settings .form_data textarea { +width:63%; +} + +.form_settings .form_data input.submit { +margin-left:0; +} + +.form_settings label { +margin-top:2px; +width:24%; + text-align: right; +} + +.form_settings label.checkbox { + text-align: left; +} + +.form_actions label { +display:none; +} +.form_guide { +font-style:italic; +} + +.form_settings #settings_autosubscribe label { +display:inline; +font-weight:bold; +} + +#form_settings_profile legend, +#form_login legend, +#form_register legend, +#form_password legend, +#form_settings_avatar legend, +#newgroup legend, +#editgroup legend, +#form_tag_user legend, +#form_remote_subscribe legend, +#form_openid_login legend, +#form_search legend, +#form_invite legend, +#form_notice_delete legend, +#form_password_recover legend, +#form_password_change legend, +.form_entity_block legend, +#form_filter_bytag legend, +#apioauthauthorize_allowdeny { +display:none; +} + +.form_settings .form_data p.form_guide { +clear:both; +margin-left:26%; +margin-bottom:0; +} + +.form_settings p { +margin-bottom:11px; +} + +.form_settings input.checkbox, +.form_settings input.radio { +margin-top:3px; +margin-left:0; +} +.form_settings label.checkbox { +font-weight:normal; +margin-top:0; +margin-right:0; +margin-left:11px; +float:left; +width:90%; +} +.form_settings label.radio { +margin-top:0; +margin-right:47px; +margin-left:11px; +width:auto; +} + +#form_login p.form_guide, +#form_register #settings_rememberme p.form_guide, +#form_openid_login #settings_rememberme p.form_guide, +#settings_twitter_remove p.form_guide, +#form_search ul.form_data #q, +#design_background-image_onoff p.form_guide { +margin-left:0; +} + +.form_settings .form_note { +border-radius:4px; +-moz-border-radius:4px; +-webkit-border-radius:4px; +padding:0 7px; +} + +.form_settings input { + margin-right: 20px; +} + +#form_search .submit { +margin-left:11px; +} +#form_search .form_data input { +width:auto; +} + +.hentry .entry-content .form_settings ul { +margin-left:0; +} + +/* override OStatus plugin style */ + +#form_ostatus_connect.form_settings.dialogbox, #form_ostatus_sub.dialogbox { + width: 76%; +} + +#form_ostatus_connect.form_settings.dialogbox legend { + font-size: 1.4em; + font-weight: normal; + padding-bottom: 10px; +} + +#form_ostatus_connect.dialogbox .form_data label, +#form_ostatus_sub.dialogbox .form_data label { + font-weight: normal; + font-size: 1.2em; + width:34%; +} + +#form_ostatus_connect.dialogbox .form_data input, +#form_ostatus_sub.dialogbox .form_data input { + float: right; + width: 52% !important; +} + +#form_ostatus_connect.dialogbox .form_data .form_guide, +#form_ostatus_sub.dialogbox .form_data .form_guide { + background: none !important; + text-align: right; + margin-right: 16px; +} + +.section .entity_actions { + margin-right: 0px !important; +} + +.section .entity_remote_subscribe { + color:#000 !important; + padding-left: 26px !important; + background-position: 4px -1183px !important; +} + +#filter_tags ul li, +.entity_send-a-message .form_notice, +.form_settings fieldset fieldset, +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { +border-color:#DDDDDD; +} + +.form_settings input.form_action-primary { +background:none; +} + +.form_settings .form_note { +background-color:#9BB43E; +} + +#form_settings_photo .form_data { +clear:both; +} + +#form_settings_avatar li { +width:auto; +} +#form_settings_avatar input { +margin-left:0; +} +#avatar_original, +#avatar_preview { +float:left; +} +#avatar_preview { +margin-left:29px; +} +#avatar_preview_view { +height:96px; +width:96px; +margin-bottom:18px; +overflow:hidden; +} + +#settings_attach, +#form_settings_avatar .form_actions { +clear:both; +} + +#form_settings_avatar .form_actions { +margin-bottom:0; +} + +#settings_design_background-image img { + max-width:480px; + max-height:480px; + clear: left; + display: block; + margin-bottom: 10px; +} + +#settings_design_background-image .form_guide { + float: left; + margin-top: 10px; +} + +#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; +} + +.entity_profile { +position:relative; +width:73%; +min-height:123px; +float:left; +margin-bottom:18px; +margin-left:0; +overflow:hidden; +} + +.entity_profile dt, +#entity_statistics dt { +font-weight:bold; +} +.entity_profile dd { +display:inline; +} + +.entity_profile .entity_depiction { + float:left; + width:96px; + margin-right:18px; + margin-bottom:18px; + text-align: center; +} + +.entity_profile .entity_fn, +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags, +.entity_profile .entity_aliases, +.entity_profile .entity_statistics { +margin-left:113px; +margin-bottom:4px; +} + +.entity_profile .entity_nickname, +.entity_profile .entity_fn { +margin-left:0; +} + +.entity_profile .nickname { + font-size:1.4em; +} + +.entity_profile .fn { + font-size: 1.2em; + clear: left; +} + +.entity_profile .fn:before { +content: "("; +font-weight:normal; +} +.entity_profile .fn:after { +content: ")"; +font-weight:normal; +} +.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_actions { +float:right; +margin-left:2%; + margin-bottom: 28px; +min-width:21%; +} + +.entity_actions h2 { +display:none; +} +.entity_actions ul { +list-style-type:none; +} +.entity_actions li { +margin-bottom:7px; +} +.entity_actions li:first-child { +border-top:0; +} +.entity_actions fieldset { +border:0; +padding:0; +} +.entity_actions legend { +display:none; +} + +.entity_actions input.submit { +display:block; +text-align:left; +width:100%; +} +.entity_actions a { +text-decoration:none; +font-weight:bold; +display:block; +} + +.entity_actions a, .entity_actions input, .entity_actions p { + color: #333 !important; + font-weight: normal; + line-height: 1.6em; +} + +.entity_actions a { + padding: 3px 4px 4px 28px; +} + +.entity_actions input { + padding: 4px 4px 4px 26px; +} + +.entity_actions a, .entity_actions p, .entity_actions .entity_subscribe input, .entity_actions .entity_block input, .entity_actions .entity_moderation input, .entity_actions .entity_role input { + background-color: #ccc !important; + border: none; +} + +.entity_actions p { + padding: 2px 4px 4px 28px; +} + +.entity_actions a:hover, .entity_actions p:hover, .entity_actions .entity_subscribe input:hover, .entity_actions .entity_block input:hover, .entity_actions .entity_moderation input:hover, .entity_actions .entity_role input:hover { + background-color: #f2f2f2 !important; +} + +.entity_actions #entity_remote_subscribe a { + padding-right: 6px; +} + +.entity_actions .accept { +margin-bottom:18px; +} + +.entity_send-a-message button { +position:absolute; +top:3px; +right:3px; +} + +.entity_send-a-message .form_notice { + width: 410px; + padding: 10px; + position: absolute; + top: 46px; + right: 10px; + z-index: 2; +} + +.entity_send-a-message .form_notice fieldset { + width: 410px; +} + +.entity_send-a-message .form_notice textarea { + width: 280px; +} + +.entity_send-a-message .form_notice legend { +display:block; +margin-bottom:11px; + font-weight: normal; + color: #333 !important; +} + +.entity_send-a-message .form_notice label, +.entity_send-a-message .form_notice select { +display:none; +} +.entity_send-a-message .form_notice #notice_action-submit { + position: absolute; + top: 52px; + right: 0px; + text-align: center; +} + +.entity_moderation, +.entity_role { +position:relative; +} +.entity_moderation p, +.entity_role p { + +padding-bottom:2px; +margin-bottom:7px; +} +.entity_moderation ul, +.entity_role ul { +display:none; +} +.entity_moderation:hover ul, +.entity_role:hover ul { +display:block; +width:110%; +padding:11px; +position:absolute; +z-index:1; +border-width:1px; +border-style:solid; + top: 20px; + right: 0px; + background-color: #fff; +} + +.entity_tags ul { +list-style-type:none; +display:inline; +} +.entity_tags li { +display:inline; +margin-right:7px; +} +.entity_tags li:before { +content:'\0009'; +} + +#filter_tags { + margin-bottom: 20px; + padding-bottom: 10px; + border-bottom: 1px solid #ccc; + float: left; +} +#filter_tags dt { +display:none; +} +#filter_tags ul { +list-style-type:none; +} +#filter_tags li { +float:left; +margin-left:7px; +padding-left:7px; +border-left-width: 1px; +border-left-style:solid; +} +#filter_tags #filter_tags_all { + margin-left: 10px; +border-left:0; +padding-left:0; +} +#filter_tags_all a { +font-weight:bold; + margin-top: 4px; +float:left; +} + +#filter_tags_item label { + margin-right: 14px; + margin-left: 7px; + padding-top: 4px; +} +#filter_tags_item label, +#filter_tags_item select { +float:left; +} + +#filter_tags_item p { +float:left; +clear:both; +margin-left:38px; +} +#filter_tags_item .submit { +position:relative; +top:3px; +left:3px; +} + +.profile .entity_profile { +margin-bottom:0; +min-height:60px; +} + +.profile .form_group_join legend, +.profile .form_group_leave legend, +.profile .form_user_subscribe legend, +.profile .form_user_unsubscribe legend { +display:none; +} + +.profiles { + list-style-type:none; +} + +.profiles li { + margin-bottom: 20px; +} + +.profile .entity_profile .fn.nickname, +.profile .entity_profile .url[rel~=contact] { +margin-left:0; +display:inline; +} + +.profile .entity_profile .fn, +.profile .entity_profile .label { +margin-left:11px; +margin-bottom:4px; +width:auto; +clear:none; +} + +.profile .entity_profile .note, +.profile .entity_profile .url, +.profile .entity_profile .entity_tags, +.profile .entity_profile .form_subscription_edit { +margin-left:59px; +clear:none; +display:block; +width:auto; +} +.profile .entity_profile .entity_tags dt { +display:inline; +margin-right:11px; +} + +.profile .entity_profile .form_subscription_edit label { +font-weight:normal; +margin-right:11px; +} + +.applications { +margin-bottom:18px; +float:left; +width:100%; +} +.applications li { +list-style-type:none; +} +.application img, +#showapplication .entity_profile img, +.form_data #application_icon img, +#apioauthauthorize .form_data img { +max-width:96px; +max-height:96px; +} +#apioauthauthorize .form_data img { +margin-right:18px; +float:left; +} +#showapplication .entity_profile { +width:68%; +} +#showapplication .entity_profile .entity_fn { +margin-left:0; +} +#showapplication .entity_profile .entity_fn .fn:before, +#showapplication .entity_profile .entity_fn .fn:after { +content:''; +} +#showapplication .entity_data { +clear:both; +margin-bottom:18px; +} +#showapplication .entity_data h2 { +display:none; +} +#showapplication .entity_data dl { +margin-bottom:18px; +} +#showapplication .entity_data dt { +font-weight:bold; +} +#showapplication .entity_data dd { +margin-left:1.795%; +font-family:monospace; +font-size:1.3em; +} +.form_data #application_types label.radio, +.form_data #default_access_types label.radio { +width:14.5%; +} + +.mark-top { + border-top: 1px solid #ccc; +} + +#realtime_actions li { + margin-right: -4px; +} + +#realtime_play, #realtime_pause, #realtime_popup { + background-image: url(../images/icons/icons-01.gif); + background-repeat: no-repeat; + background-color: transparent; +} + +#realtime_play { + background-position: 0 -2308px; +} +#realtime_pause { + background-position: 0 -2374px; +} +#realtime_popup { + background-position: 0 -1714px; +} + +#realtime_play, #realtime_pause, #realtime_popup { + opacity: 0.6; +} + +#realtime_play:hover, #realtime_pause:hover, #realtime_popup:hover { + opacity: 1; +} + +body.realtime-popup { + min-width: 100%; +} + +.realtime-popup #wrap { + padding: 0px !important; + margin: 0px !important; +} + +.realtime-popup #content { + padding: 0px !important; + margin: 0px !important; + width: 98% !important; +} + +.realtime-popup .form_notice { + float: left !important; + position: static !important; +} + +.realtime-popup .form_notice fieldset { + width: 450px !important; +} + +.realtime-popup .form_notice textarea { + width: 340px !important; +} + +.realtime-popup .form_notice #notice_action-submit { + top: 58px !important; + height: 2em; + font-size: 0.8em; + width: 86px; +} + +.realtime-popup .form_notice label[for=notice_data-attach], .form_notice #notice_data-attach { + right: 70px; +} + +.realtime-popup .form_notice #notice_data-geo_wrap label, .form_notice #notice_data-geo_wrap input { + right: 2px; +} + +/* icons */ + +.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, +.form_remote_authorize input.submit, +.entity_subscribe a, +.entity_moderation p, +.entity_sandbox input.submit, +.entity_silence input.submit, +.entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, +.notice-options .repeated, +.form_notice label[for=notice_data-geo], +button.minimize, +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit, +#realtime_play, +#realtime_pause, +#realtime_popup { +background-image:url(../images/icons/icons-01.gif); +background-repeat:no-repeat; +background-color:transparent; +} + +button.close { +background-position:0 -1120px; +} +button.minimize { +background-position:0 -1912px; +} +#export_data li a.rss { +background-position:0 -130px; +} +#export_data li a.atom { +background-position:0 -64px; +} +#export_data li a.foaf { +background-position:0 1px; +} +.form_group_leave input.submit, +.form_user_unsubscribe input.submit { +background-position:5px -1246px; +} +.form_group_join input.submit, +.form_user_subscribe input.submit, +.form_remote_authorize input.submit, +.entity_subscribe a { +background-position:5px -1181px; +} +.entity_edit a { +background-position: 5px -719px; +} +.entity_send-a-message a { +background-position: 5px -852px; +} +.entity_nudge p, +.form_user_nudge input.submit { +background-position: 5px -785px; +} +.form_user_block input.submit, +.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; +} +.entity_sandbox .form_user_unsandbox input.submit { +background-position: 5px -2568px; +} +.entity_silence .form_user_unsilence input.submit { +background-position: 5px -2633px; +} +.entity_role p { +background-position: 5px -2436px; +} +.entity_role_administrator .form_user_grantrole input.submit { +background-position: 5px -983px; +} +.entity_role_moderator .form_user_grantrole input.submit { +background-position: 5px -1313px; +} +.entity_role_administrator .form_user_revokerole input.submit { +background-position: 5px -2699px; +} +.entity_role_moderator .form_user_revokerole input.submit { +background-position: 5px -2501px; +} +.form_reset_key input.submit { +background-position: 5px -1973px; +} +.entity_clear input.submit { +background-position: 5px -2039px; +} +.entity_flag input.submit, +.entity_flag p { +background-position: 5px -2105px; +} +.entity_subscribe input.accept { +background-position: 5px -2171px; +} +.entity_subscribe input.reject { +background-position: 5px -2237px; +} +#realtime_play { +background-position: 0 -2308px; +} +#realtime_pause { +background-position: 0 -2374px; +} +#realtime_popup { +background-position: 0 -1714px; +} +.notice .attachment { +background-position:0 -394px; +} +.notice .attachment.more { +background-position:0 -2770px; +} +#attachments .attachment { +background:none; +} +.notice-options .notice_reply { +background-position:0 -592px; +} +.notice-options form.form_favor input.submit { +background-position:0 -460px; +} +.notice-options form.form_disfavor input.submit { +background-position:0 -526px; +} +.notice-options .notice_delete { +background-position:0 -658px; +} +.notice-options .form_repeat.processing { +background-image:none; +} +.notice-options form.form_repeat input.submit { +background-position:0 -1582px; +} +.notice-options .repeated { +background-position:0 -1648px; +} +#new_group a { +background-position:0 -1054px; +} +.form_notice label[for=notice_data-attach] { + background-position: 0 -328px; +} +.form_notice label[for=notice_data-geo] { + background-position: 0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { + background-position: 0 -1846px; +} + +.pagination .nav_prev a { + padding-top: 8px; + padding-left: 25px; + background-position:0 -187px; +} +.pagination .nav_next a { + padding-top: 9px; + padding-right: 25px; + background-position: 115% -252px; +} + +#usergroups #new_group { +float: left; +margin-right: 2em; +} +#new_group, #group_search { +margin-bottom:18px; +} +#new_group a { +padding-left:20px; +} + + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/rebase/css/ie.css b/theme/rebase/css/ie.css new file mode 100644 index 0000000000..5d38ca1029 --- /dev/null +++ b/theme/rebase/css/ie.css @@ -0,0 +1,80 @@ +/* Temporary copy of base styles for overriding */ + +input.checkbox, +input.radio { +top:0; +} +.form_notice textarea { + width: 485px; +} +.form_notice .form_note + label { +position:absolute; +top:25px; +left:83%; +text-indent:-9999px; +height:16px; +width:16px; +display:block; + top: 30px; +} +.form_notice #notice_action-submit { + width: 106px; + max-width: 106px; +} +.form_notice #notice_data-attach_selected, +.form_notice #notice_data-geo_selected { +width:78.75%; +} +.form_notice #notice_data-attach_selected button, +.form_notice #notice_data-geo_selected button { +padding:0 4px; +} +.notice-options input.submit { +font-size:0; +text-align:right; +text-indent:0; +} +.notice div.entry-content .timestamp a { +margin-right:4px; +} +.entity_profile { +width:64%; +} +.notice { +z-index:1; +} +.notice:hover { +z-index:9999; +} +.notice .thumbnail img { +z-index:9999; +} + +.form_settings fieldset fieldset legend { +line-height:auto; +} + + +/* IE specific styles */ + +.notice-options input.submit { + color:#FFFFFF; +} + +.form_notice #notice_data-attach { + filter: alpha(opacity=0); +} + +.form_notice .form_note + label { + background:transparent url(../images/icons/icons-01.gif) no-repeat 0 -328px; +} + +.form_notice #notice_data-geo_wrap label { + background:transparent url(../images/icons/icons-01.gif) no-repeat 0 -1780px; +} + +.form_notice #notice_data-geo_wrap label.checked { + background:transparent url(../images/icons/icons-01.gif) no-repeat 0 -1846px; +} + + diff --git a/theme/rebase/css/ie6.css b/theme/rebase/css/ie6.css new file mode 100644 index 0000000000..1784677d08 --- /dev/null +++ b/theme/rebase/css/ie6.css @@ -0,0 +1,47 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ +/* IE6 specific styles */ +address { +margin-left:7px; +} +address .fn { +display:none; +} + +#wrap { +width:1003px; +margin:0 auto; +} + +#content { +width:66%; +} +#aside_primary { +padding:1.8%; +width:24%; +} +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags { +margin-left:0; +} +.entity_profile .entity_depiction { +margin-bottom:123px; +} +.entity_actions { +width:20%; +} +.notice div.entry-content { +width:65%; +margin-left:30px; +} +.notice-options a { +width:16px; +} diff --git a/theme/rebase/css/jquery.Jcrop.css b/theme/rebase/css/jquery.Jcrop.css new file mode 100644 index 0000000000..a3f0d22776 --- /dev/null +++ b/theme/rebase/css/jquery.Jcrop.css @@ -0,0 +1,42 @@ +/** + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ +/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */ +.jcrop-holder { text-align: left; } + +.jcrop-vline, .jcrop-hline +{ + font-size: 0; + position: absolute; + background: white url(../images/illustrations/illu_jcrop.gif) top left repeat; +} +.jcrop-vline { height: 100%; width: 1px !important; } +.jcrop-hline { width: 100%; height: 1px !important; } +.jcrop-handle { + font-size: 1px; + width: 7px !important; + height: 7px !important; + border: 1px #eee solid; + background-color: #333; + *width: 9px; + *height: 9px; +} + +.jcrop-tracker { width: 100%; height: 100%; } + +.custom .jcrop-vline, +.custom .jcrop-hline +{ + background: yellow; +} +.custom .jcrop-handle +{ + border-color: black; + background-color: #C7BB00; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} diff --git a/theme/rebase/css/mp-screen.css b/theme/rebase/css/mp-screen.css new file mode 100644 index 0000000000..c9fb6dcc4f --- /dev/null +++ b/theme/rebase/css/mp-screen.css @@ -0,0 +1,7 @@ +/* just a placeholder for now */ + +address img + .fn { +display:block; +margin-top:1em; +float:left; +} diff --git a/theme/rebase/css/uap.css b/theme/rebase/css/uap.css new file mode 100644 index 0000000000..80c73e2ea5 --- /dev/null +++ b/theme/rebase/css/uap.css @@ -0,0 +1,54 @@ +/** Universal Ad Package styles: + * Medium Rectangle 300x250 + * Rectangle 180x150 + * Leaderboard 728x90 + * Wide Skyscraper 160x600 + * + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + + +.ad { +border:1px solid #CCC; +float:left; +} + +#ad_medium-rectangle { +width:300px; +height:250px; + +margin-left:1.35%; +margin-bottom:18px; +} + +#ad_rectangle { +width:180px; +height:150px; + +float:none; +clear:both; +margin:0 auto; +margin-bottom:29px; +} + +#ad_leaderboard { +width:728px; +height:90px; + +margin:0 auto 18px; +float:none; +clear:both; +} + +#ad_wide-skyscraper { +width:160px; +height:600px; + +float:right; +margin-top:18px; +margin-right:8.25%; +} diff --git a/theme/rebase/default-avatar-mini.png b/theme/rebase/default-avatar-mini.png new file mode 100644 index 0000000000..7c9fc0348b Binary files /dev/null and b/theme/rebase/default-avatar-mini.png differ diff --git a/theme/rebase/default-avatar-profile.png b/theme/rebase/default-avatar-profile.png new file mode 100644 index 0000000000..e8f87006a0 Binary files /dev/null and b/theme/rebase/default-avatar-profile.png differ diff --git a/theme/rebase/default-avatar-stream.png b/theme/rebase/default-avatar-stream.png new file mode 100644 index 0000000000..c8148e42ef Binary files /dev/null and b/theme/rebase/default-avatar-stream.png differ diff --git a/theme/rebase/images/icons/README b/theme/rebase/images/icons/README new file mode 100644 index 0000000000..f701959ca0 --- /dev/null +++ b/theme/rebase/images/icons/README @@ -0,0 +1,59 @@ +/** + * @author Paul Jarvis http://code.google.com/p/twotiny/ + * @license http://dev.perl.org/licenses/ Artistic License/GPL + * @note + White left arrow with green background + White right arrow with green background + White clip with green background + White heart with green background + White reply with green background + White garbage with green background + White pencil with green background + White envelope with green background + White speech bubble with green background + White shield with green background + White asterisk with green background + White x with green background + White plus with green background + White minus with green background + White skull with green background + White recycle with green background + White external with green background + White key with green background + White flag with green background + White checkmark with green background + White reject with green background + White play with green background + White pause with green background + */ + + +/** + * @author Sarven Capadisli + * @copyright 2008-2010 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/ + * @note + Green clip with transparent background + Green heart with white background + White person with tie with green background + White sherif badge with green background + White boxes with green background + White speech bubble broken with green background + Green recycle with transparent background + Green pin with white background + White pin with green background + White underscore with green background + White C with green background + White magic wand with green background + Green badge with white background + Green sandbox with white background + Green speech bubble broken with white background + Green person with tie with white background + */ + +Created by various authors +* FOAF icon from http://iandavis.com/2006/foaf-icons/ with Public Domain license +* Atom feed icon from http://intertwingly.net/wiki/pie/Icon with Public Domain license +* RSS feed icon from http://www.feedicons.com/ (Mozilla, Microsoft, Matt Brett) with MPL/GPL/LGPL tri-license +* Processing icon from/by Unknown with Unknown license //FIXME diff --git a/theme/rebase/images/icons/icon_atom.png b/theme/rebase/images/icons/icon_atom.png new file mode 100644 index 0000000000..de63f1577f Binary files /dev/null and b/theme/rebase/images/icons/icon_atom.png differ diff --git a/theme/rebase/images/icons/icon_foaf.gif b/theme/rebase/images/icons/icon_foaf.gif new file mode 100644 index 0000000000..f8f7844235 Binary files /dev/null and b/theme/rebase/images/icons/icon_foaf.gif differ diff --git a/theme/rebase/images/icons/icon_processing.gif b/theme/rebase/images/icons/icon_processing.gif new file mode 100644 index 0000000000..d0bce15423 Binary files /dev/null and b/theme/rebase/images/icons/icon_processing.gif differ diff --git a/theme/rebase/images/icons/icon_rss.png b/theme/rebase/images/icons/icon_rss.png new file mode 100644 index 0000000000..e75778a9e1 Binary files /dev/null and b/theme/rebase/images/icons/icon_rss.png differ diff --git a/theme/rebase/images/icons/icon_vcard.gif b/theme/rebase/images/icons/icon_vcard.gif new file mode 100644 index 0000000000..6d52947f3e Binary files /dev/null and b/theme/rebase/images/icons/icon_vcard.gif differ diff --git a/theme/rebase/images/icons/icons-01.gif b/theme/rebase/images/icons/icons-01.gif new file mode 100644 index 0000000000..fa09bd5268 Binary files /dev/null and b/theme/rebase/images/icons/icons-01.gif differ diff --git a/theme/rebase/images/icons/twotone/green/admin.gif b/theme/rebase/images/icons/twotone/green/admin.gif new file mode 100644 index 0000000000..10fa431cee Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/admin.gif differ diff --git a/theme/rebase/images/icons/twotone/green/against.gif b/theme/rebase/images/icons/twotone/green/against.gif new file mode 100644 index 0000000000..ca796c8a36 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/against.gif differ diff --git a/theme/rebase/images/icons/twotone/green/arrow-left.gif b/theme/rebase/images/icons/twotone/green/arrow-left.gif new file mode 100644 index 0000000000..afed190841 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/arrow-left.gif differ diff --git a/theme/rebase/images/icons/twotone/green/arrow-right.gif b/theme/rebase/images/icons/twotone/green/arrow-right.gif new file mode 100644 index 0000000000..ee1707ed96 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/arrow-right.gif differ diff --git a/theme/rebase/images/icons/twotone/green/badge.gif b/theme/rebase/images/icons/twotone/green/badge.gif new file mode 100644 index 0000000000..2dca5b99fe Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/badge.gif differ diff --git a/theme/rebase/images/icons/twotone/green/checkmark.gif b/theme/rebase/images/icons/twotone/green/checkmark.gif new file mode 100644 index 0000000000..892429d483 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/checkmark.gif differ diff --git a/theme/rebase/images/icons/twotone/green/clear.gif b/theme/rebase/images/icons/twotone/green/clear.gif new file mode 100644 index 0000000000..2666430efd Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/clear.gif differ diff --git a/theme/rebase/images/icons/twotone/green/clip-01.gif b/theme/rebase/images/icons/twotone/green/clip-01.gif new file mode 100644 index 0000000000..f2dee7e5e9 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/clip-01.gif differ diff --git a/theme/rebase/images/icons/twotone/green/clip-02.gif b/theme/rebase/images/icons/twotone/green/clip-02.gif new file mode 100644 index 0000000000..77a729799b Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/clip-02.gif differ diff --git a/theme/rebase/images/icons/twotone/green/disfavourite.gif b/theme/rebase/images/icons/twotone/green/disfavourite.gif new file mode 100644 index 0000000000..3946869ae0 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/disfavourite.gif differ diff --git a/theme/rebase/images/icons/twotone/green/edit.gif b/theme/rebase/images/icons/twotone/green/edit.gif new file mode 100644 index 0000000000..c746aca601 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/edit.gif differ diff --git a/theme/rebase/images/icons/twotone/green/favourite.gif b/theme/rebase/images/icons/twotone/green/favourite.gif new file mode 100644 index 0000000000..d93515e379 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/favourite.gif differ diff --git a/theme/rebase/images/icons/twotone/green/flag.gif b/theme/rebase/images/icons/twotone/green/flag.gif new file mode 100644 index 0000000000..68c8aee259 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/flag.gif differ diff --git a/theme/rebase/images/icons/twotone/green/key.gif b/theme/rebase/images/icons/twotone/green/key.gif new file mode 100644 index 0000000000..ccf357ab28 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/key.gif differ diff --git a/theme/rebase/images/icons/twotone/green/mail.gif b/theme/rebase/images/icons/twotone/green/mail.gif new file mode 100644 index 0000000000..1084c862f6 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/mail.gif differ diff --git a/theme/rebase/images/icons/twotone/green/minus.gif b/theme/rebase/images/icons/twotone/green/minus.gif new file mode 100644 index 0000000000..461cd8cb28 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/minus.gif differ diff --git a/theme/rebase/images/icons/twotone/green/news.gif b/theme/rebase/images/icons/twotone/green/news.gif new file mode 100644 index 0000000000..712c685dc0 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/news.gif differ diff --git a/theme/rebase/images/icons/twotone/green/plus.gif b/theme/rebase/images/icons/twotone/green/plus.gif new file mode 100644 index 0000000000..4407d0b2d5 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/plus.gif differ diff --git a/theme/rebase/images/icons/twotone/green/quote.gif b/theme/rebase/images/icons/twotone/green/quote.gif new file mode 100644 index 0000000000..4ba1f0c03d Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/quote.gif differ diff --git a/theme/rebase/images/icons/twotone/green/recycle-02.gif b/theme/rebase/images/icons/twotone/green/recycle-02.gif new file mode 100644 index 0000000000..060a8c72f0 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/recycle-02.gif differ diff --git a/theme/rebase/images/icons/twotone/green/recycle.gif b/theme/rebase/images/icons/twotone/green/recycle.gif new file mode 100644 index 0000000000..1fab5dcc7f Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/recycle.gif differ diff --git a/theme/rebase/images/icons/twotone/green/reply.gif b/theme/rebase/images/icons/twotone/green/reply.gif new file mode 100644 index 0000000000..6ff01bb355 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/reply.gif differ diff --git a/theme/rebase/images/icons/twotone/green/sandbox.gif b/theme/rebase/images/icons/twotone/green/sandbox.gif new file mode 100644 index 0000000000..17031962af Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/sandbox.gif differ diff --git a/theme/rebase/images/icons/twotone/green/shield.gif b/theme/rebase/images/icons/twotone/green/shield.gif new file mode 100644 index 0000000000..419d5ee4be Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/shield.gif differ diff --git a/theme/rebase/images/icons/twotone/green/silence.gif b/theme/rebase/images/icons/twotone/green/silence.gif new file mode 100644 index 0000000000..8c624acddc Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/silence.gif differ diff --git a/theme/rebase/images/icons/twotone/green/skull.gif b/theme/rebase/images/icons/twotone/green/skull.gif new file mode 100644 index 0000000000..0335067327 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/skull.gif differ diff --git a/theme/rebase/images/icons/twotone/green/trash.gif b/theme/rebase/images/icons/twotone/green/trash.gif new file mode 100644 index 0000000000..78dd64a3d8 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/trash.gif differ diff --git a/theme/rebase/images/icons/twotone/green/x.gif b/theme/rebase/images/icons/twotone/green/x.gif new file mode 100644 index 0000000000..ffb2efea00 Binary files /dev/null and b/theme/rebase/images/icons/twotone/green/x.gif differ diff --git a/theme/rebase/images/illustrations/illu_jcrop.gif b/theme/rebase/images/illustrations/illu_jcrop.gif new file mode 100644 index 0000000000..72ea7ccb53 Binary files /dev/null and b/theme/rebase/images/illustrations/illu_jcrop.gif differ diff --git a/theme/rebase/images/illustrations/illu_pattern-01.png b/theme/rebase/images/illustrations/illu_pattern-01.png new file mode 100644 index 0000000000..833309e587 Binary files /dev/null and b/theme/rebase/images/illustrations/illu_pattern-01.png differ diff --git a/theme/rebase/images/illustrations/illu_progress_loading-01.gif b/theme/rebase/images/illustrations/illu_progress_loading-01.gif new file mode 100644 index 0000000000..82290f4833 Binary files /dev/null and b/theme/rebase/images/illustrations/illu_progress_loading-01.gif differ diff --git a/theme/rebase/logo.png b/theme/rebase/logo.png new file mode 100644 index 0000000000..b078601019 Binary files /dev/null and b/theme/rebase/logo.png differ diff --git a/theme/rebase/mobilelogo.png b/theme/rebase/mobilelogo.png new file mode 100644 index 0000000000..66bb5f6787 Binary files /dev/null and b/theme/rebase/mobilelogo.png differ diff --git a/theme/shiny/css/display.css b/theme/shiny/css/display.css new file mode 100644 index 0000000000..758d462ba0 --- /dev/null +++ b/theme/shiny/css/display.css @@ -0,0 +1,557 @@ +/** theme: shiny + * + * @package StatusNet + * @author Samantha Doherty + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + + +@media screen, projection, tv { + +body { + background: url(../images/page_bg1.png) no-repeat fixed 50% 100%; + background-color: #181818; + font-family: "DejaVu Sans", "Bitstream Vera Sans", Geneva, Verdana, sans-serif; + font-size: 84%; +} + +#wrap { + width: 867px; + margin: 0px auto; + padding: 0px 8px 10px 8px; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + background-color: rgba(201, 203, 202, 0.5); +} + +a { + color: #24245c; +} + +address { + float: left; + margin-right: 20px; + margin-top: 0px; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: normal; + margin-bottom: 15px; + margin-top: 10px; +} + +h1 {font-size: 1.4em;} +h2 {font-size: 1.3em;} +h3 {font-size: 1.2em;} +h4 {font-size: 1.1em;} +h5 {font-size: 1em;} +h6 {font-size: 1em;} + +#content h1 { + letter-spacing: 0.2em; + font-size: 1.4em; + font-weight: normal; + text-shadow:0 1px 0 rgba(255,255,255,0.4); + margin: -4px 0px 15px 0px; +} + +#header { + width: 851px; + padding: 0px; + padding-top: 60px; + margin: 0px; + margin-left: 8px; +} + +.poweredby { + background: url(../images/sn-tiny.png) no-repeat top left; + height: 40px; + font-size: 0.8em; + color: #fff; + line-height: 16px; + padding-left: 50px; + position: absolute; + top: 0px; + left: -10px; + z-index: 99; + font-style: normal; +} + +.poweredby a { + color: #fff !important; + font-weight: bold; + display: block; + clear: left; +} + +#site_nav_global_primary { + padding-top: 8px; + padding-bottom: 2px; + height: 30px; + box-shadow:0px 2px 2px rgba(194, 194, 194, 0.3); + -moz-box-shadow:0px 2px 2px rgba(194, 194, 194, 0.3); + -webkit-box-shadow:0px 2px 2px rgba(194, 194, 194, 0.3); + z-index: 98; + border-bottom-right-radius: 8px; + -moz-border-radius-bottomright: 8px; + -webkit-border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; + -moz-border-radius-bottomleft: 8px; + -webkit-border-bottom-left-radius: 8px; + letter-spacing: 0.1em; + font-size: 0.8em; + background: url(../images/global_bg.png) repeat-x top left; + position: absolute; + width: 893px; + top: -20px; + left: 0; + margin-left: -21px; +} + +#site_nav_global_primary ul.nav { + float: right; + text-transform: uppercase; + padding-right: 10px; +} + +#site_nav_global_primary ul.nav li { + margin-right: 0px; + margin-left: 0px; +} + +#site_nav_global_primary ul.nav a { + padding: 4px 8px; + line-height: 1.8em; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + color: #fff !important; + text-shadow: 0px 1px 0px rgba(0,0,0,0.8); + border-bottom: 1px solid transparent; + border-left: 1px solid transparent; +} + +#site_nav_global_primary ul.nav a:hover { + color: #fff; + background-color: #000; + border-bottom: 1px solid #666; + border-left: 1px solid #666; + text-decoration: none; +} + +#site_nav_global_primary li { + margin-left: 8px; +} + +#anon_notice { + background: url(../images/overlay10.png) repeat-x top left; + clear: both; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-color: #333; + border-top-color: #aaa; + border-left-color: #aaa; + border-width: 1px; + border-style: solid; + color: #ccc; + padding-left: 10px; + padding-right: 10px; + font-size: 1.1em; + margin-top: 16px; + margin-bottom: 12px; + background-color: #444; + text-shadow: 0px 1px 0px rgba(0,0,0,0.8); +} + +#anon_notice a { + color: #fff; +} + +#anon_notice a:hover { + text-decoration: underline; +} + +#site_notice { + float: right; + width: 270px; + padding: 10px; + margin-left: 40px; + background: none; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-color: #ccc; + border-bottom-color: #999; + border-right-color: #999; + border-width: 1px; + border-style: solid; +} + +.form_notice { + float: right; + width: 494px; + margin-top: 0px; + background: #ccc; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 10px; + border: 1px solid #ddd; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); +} + +.form_notice label[for=notice_data-text], .form_notice label[for=to] { + text-shadow:0 1px 0 rgba(255,255,255,0.4); + padding-left: 2px; +} + +.form_notice fieldset { + width: 494px; +} + +.form_notice textarea { + width: 362px; + height: 54px; + border: 1px solid #bbb; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + position:relative; +} + +.entity_send-a-message .form_notice legend { + text-shadow:0 1px 0 rgba(255,255,255,0.4); +} + +.form_notice textarea:focus { + border: 1px solid #9495b7; +} + +.form_notice label[for=notice_data-attach], +.form_notice #notice_data-attach { + top: 27px; + right: 86px; +} + +.form_notice #notice_data-geo_wrap label, +.form_notice #notice_data-geo_wrap input { + top: 50px; + right: 86px; +} + +.form_notice #notice_action-submit { + top: 79px; + right: 0; + width: 102px; + right: 0px; + height: 2.2em; +} + +.entity_send-a-message .form_notice #notice_action-submit { + color: #fff !important; +} + +.form_notice input.submit, .form_settings input.submit { + border: 1px solid #555; + border-top: none; + border-left: none; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background: #666 url(../images/overlay25.png) repeat-x top left; + text-shadow: 0px 1px 0px rgba(0,0,0,0.8); + color:#fff; + font-weight: normal; + font-size: 1em; + height: 2.2em; + padding-left: 1em; + padding-right: 1em; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3); +} + +.form_notice input.submit:hover, .form_settings input.submit:hover { + background-color: #888; +} + +.form_notice .error, +.form_notice .success { + width: 373px; + margin-left: 0px; +} + +.form_notice .error { + width: 375px; + margin-left: 1px; +} + +#site_nav_local_views { + position: relative; + z-index: 9; + float: right; + margin: 0px 0px 20px 0px; + width: 290px; +} + +#site_nav_local_views li { + width: 100%; + margin-right: 0; + margin-bottom: 0px; + text-align: right; +} + +#site_nav_local_views a { + background: url(../images/overlay10.png) repeat-x top left; + display:block; + padding-right: 10px; + border: 1px solid #fff; + border-color: transparent; + padding-top: 4px; + padding-bottom: 4px; + font-size: 1.1em; + font-weight: normal; + letter-spacing: 0.2em; + text-transform: uppercase; + color: #f2f2f2 !important; + background-color: #444; + border-bottom: 1px solid #999; + border-left: none; + text-shadow: 0px 1px 0px rgba(0,0,0,0.8); + border-radius:0; + -moz-border-radius:0; + -webkit-border-radius:0; + text-decoration: none; +} + +#site_nav_local_views li:first-child a { + border-radius-topright:4px; + -moz-border-radius-topright:4px; + -webkit-border-top-right-radius:4px; +} + +#site_nav_local_views a:hover { + background: url(../images/overlay20.png) repeat-x top left; + color: #4d424c !important; + background-color: #b3b3b3; + text-shadow: 0 1px 0 rgba(255,255,255,0.75); +} + +#site_nav_local_views .current a { + background: none; + display: block; + color: #4d4d4d !important; + box-shadow: 1px 1px 1px rgba(0,0,0,0.5); + -moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.5); + -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.5); + border-bottom: 1px solid #fff; + text-shadow: 1px 1px 0px rgba(0,0,0,0.2); + background-color: #e2e2e2; + text-decoration: none; +} + +#core { + clear: both; + margin: 0px; + width: 851px; + margin-left: 8px; + margin-top: 4px; +} + +#content { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius-topright: 0px; + -moz-border-radius-topright: 0px; + -webkit-border-top-right-radius: 0px; + padding: 14px 10px 20px 10px; + width: 541px; + margin-right: 0px; + background-color: #e2e2e2; +} + +#aside_primary { + width: 280px; + padding: 0px; + padding-top: 16px; + padding-left: 10px; + margin-top: -20px; + background-color: #262626; + border-radius-bottomright: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; +} + +#aside_primary .section { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 6px; + padding-bottom: 12px; + border: 1px solid #ddd; + box-shadow: 1px 1px 2px #444; + -moz-box-shadow: 1px 1px 2px #444; + -webkit-box-shadow: 1px 1px 2px #444; + background-color: rgba(201, 203, 202, 0.5); + margin-left: 4px; + width: 248px; +} + +#aside_primary .section H2 { + font-size: 1.1em; + font-weight: normal; + letter-spacing: 0.2em; + margin-bottom: 10px; + margin-left: -4px; + padding: 6px; + margin-top: 2px; + text-shadow:0 1px 0 rgba(255,255,255,0.4); + line-height: 1.1em; +} + +#aside_primary .notice { + background: none; + border: none; +} + +.section ul.entities { + width: 270px; +} + +.section .entities li { + margin-right: 13px; + margin-bottom: 10px; + width: 24px; +} + +#notices_primary { + padding-top: 2px; +} + +#content .notices .notice { + border-top: 1px dotted #bbb; + padding-top: 14px; + margin-bottom: 14px; +} + +#content .notices .notices .notice { + margin-bottom: 0px; + padding-bottom: 14px; +} + +#content .notices .notices .notice + .notice { + margin-bottom: -10px; +} + +.notice { + line-height: 1.35em; +} + +#content .notice .author .photo { + top: 18px; + left: 0px; +} + +#content .notice .entry-title { + min-height: 26px; +} + +#shownotice .notice .entry-title { + min-height:123px; +} + +.notice div.entry-content { + font-size: 0.9em; + line-height: 1em; + margin-top: 10px; + opacity: 0.6; +} + +.notice:hover div.entry-content { + opacity: 1; +} + +.notice-options { + margin-top: 7px; +} + +.user_in .notice div.entry-content { + max-width: 360px; +} + +div.entry-content a.response:before { + content: "("; +} + +div.entry-content a.response:after { + content: ")"; +} + +#footer { + background: none; +} + +.form_settings input { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border: 1px solid #bbb; + padding: 4px; + margin-bottom: 4px; +} + +.form_settings input:focus { + border: 1px solid #9495b7; +} + +.form_settings fieldset fieldset legend { + line-height:0; + font-size: 1.2em; + letter-spacing: 0.2em; +} + +#jOverlayContent #content { + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); + -webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.7); +} + +#jOverlayContent button { + top: 10px; + right: 36px; +} + +.entity_profile { + width: 365px; +} + +.entity_actions { + min-width: 140px; +} + +.entity_actions a, .entity_actions input, .entity_actions p { + text-shadow:0 1px 0 rgba(255,255,255,0.4); + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +.entity_moderation:hover ul, +.entity_role:hover ul { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +.pagination { + background: none; +} + +}/*end of @media screen, projection, tv*/ diff --git a/theme/shiny/css/ie.css b/theme/shiny/css/ie.css new file mode 100644 index 0000000000..a901a15dd5 --- /dev/null +++ b/theme/shiny/css/ie.css @@ -0,0 +1,87 @@ +/* Temporary copy of base styles for overriding */ + +input.checkbox, +input.radio { +top:0; +} +.form_notice textarea { + width: 362px; +} +.form_notice .form_note + label { +position:absolute; +top:25px; +left:83%; +text-indent:-9999px; +height:16px; +width:16px; +display:block; + left: 392px; + top: 27px; + right: 88px; +} +.form_notice #notice_action-submit { + width: 96px; + max-width: 96px; +} +.form_notice #notice_data-attach_selected, +.form_notice #notice_data-geo_selected { +width:78.75%; +} +.form_notice #notice_data-attach_selected button, +.form_notice #notice_data-geo_selected button { +padding:0 4px; +} +.notice-options input.submit { +font-size:0; +text-align:right; +text-indent:0; +} +.notice div.entry-content .timestamp a { +margin-right:4px; +} +.entity_profile { +width:64%; +} +.notice { +z-index:1; +} +.notice:hover { +z-index:9999; +} +.notice .thumbnail img { +z-index:9999; +} + +.form_settings fieldset fieldset legend { +line-height:auto; +} + + +/* IE specific styles */ + +.notice-options input.submit { + color:#FFFFFF; +} + +.form_notice #notice_data-attach { + filter: alpha(opacity=0); +} + +.form_notice .form_note + label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -328px; +} + +.form_notice #notice_data-geo_wrap label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1780px; +} +.form_notice #notice_data-geo_wrap label.checked { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1846px; +} + +#wrap { + background: url(../images/wrap_bg.png) repeat top left; +} + +#aside_primary .section { + background: url(../images/wrap_bg.png) repeat top left; +} diff --git a/theme/shiny/css/mp-screen.css b/theme/shiny/css/mp-screen.css new file mode 100644 index 0000000000..6a47b8e7f4 --- /dev/null +++ b/theme/shiny/css/mp-screen.css @@ -0,0 +1,242 @@ +/* mobile style */ + +body { + background-image: none; + min-width: 0; +} + +#wrap { + margin: 0; + padding: 0; + min-width:0; + max-width:100%; +} + +#header { + width: 96%; + padding: 0 2%; + padding-top: 20px; +} + +.user_in #header { + padding-top: 40px; +} + +address { +margin:1em 0 0 0; +float:left; +width:100%; +} + +address img + .fn { +display:block; +margin-top:1em; + margin-right: 10px; +clear: left; +float:left; +} + +#site_nav_global_primary { + margin:0; + margin-left: -2%; + width: 94%; + padding: 2%; + height: auto; + position:absolute; + top:0; + left:0; + background: #333; + font-size: 1em; + letter-spacing: 0em; +} + +#site_nav_global_primary li { + margin-left:0; + margin-right:10px; + float:left; + font-size:0.9em; + padding: 2px 4px; + line-height: 1em; +} + +#site_nav_global_primary li a { + color: #fff !important; +} + +.form_notice { + float: left; + margin-left: -10px; + width: 300px; + padding: 4px; +} + +#form_notice-direct.form_notice { + padding-top: 10px; +} + +.form_notice textarea { + width: 210px; + height: 50px; + padding: 4px; +} + +#notice_text-count { +position:absolute; +bottom:2px; + left: 175px; + font-size: 0.8em; +z-index:9; +} + +#form_notice-direct.form_notice #notice_text-count { + left: -185px; +} + +/*input type=file no good in +iPhone/iPod Touch, Android, Opera Mini Simulator +*/ +.form_notice #notice_text-count + label, +.form_notice label[for="notice_data-attach"] { +display:none; +} +.form_notice #notice_data-attach { +position:static; +clear:both; +width:65%; +height:auto; +display:block; +z-index:9; +padding:0; +margin:0; +background:none; +opacity:1; +} + +.form_notice #notice_action-submit { + text-align: center; + left: 230px; + top: 34px; + width: 70px; + font-size: 0.8em; +} + +#form_notice-direct.form_notice #notice_action-submit { + top: 64px; +} + +#site_nav_local_views { + position: relative; + z-index: 9; + float: left; + margin: 0px 10px 2px 4px; + width: auto; +} + +#site_nav_local_views li { + width: auto; + text-align: left; +} + +#site_nav_local_views a { + background: none; + display:block; + float: left; + padding: 4px; + margin: 0px 10px 10px 0px; + border: none !important; + font-size: 0.9em; + font-weight: normal; + letter-spacing: 0em; + text-transform: uppercase; + color: #f2f2f2 !important; + background-color: #444; + text-shadow: none; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +#site_nav_local_views li:first-child a { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +#site_nav_local_views a:hover { + background: none; + background-color: #b3b3b3; +} + +#site_nav_local_views .current a { + background: none; + display: inline; + color: #4d4d4d !important; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + border-bottom: 1px solid #fff; + text-shadow: 1px 1px 0px rgba(0,0,0,0.2); + background-color: #e2e2e2; + text-decoration: none; +} + +#core { + width: 100%; + margin: 0; +} + +#content { + width: 96%; + padding: 10px 2%; + margin: 0; + min-height: auto; + border-radius-topright: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; +} + +#footer { + margin: 0; + padding: 10px 4px 4px 4px; +} + + +.form_settings fieldset { +margin-bottom:7px; +} + +.form_settings label { +width:auto; +display:block; +float:none; + text-align: left; +} + +.form_settings .form_data li { +margin-bottom:7px; +} + +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:0; +display:block; +} +.form_settings .form_data textarea { +width:96.41%; +} + +.form_settings .form_data label { +float:none; +} + +.form_settings .form_data p.form_guide { +width:auto; +margin-left:0; +} + + +#settings_design_color .form_data { + width: auto; + margin-right: 0; +} diff --git a/theme/shiny/default-avatar-mini.png b/theme/shiny/default-avatar-mini.png new file mode 100644 index 0000000000..7c9fc0348b Binary files /dev/null and b/theme/shiny/default-avatar-mini.png differ diff --git a/theme/shiny/default-avatar-profile.png b/theme/shiny/default-avatar-profile.png new file mode 100644 index 0000000000..e8f87006a0 Binary files /dev/null and b/theme/shiny/default-avatar-profile.png differ diff --git a/theme/shiny/default-avatar-stream.png b/theme/shiny/default-avatar-stream.png new file mode 100644 index 0000000000..c8148e42ef Binary files /dev/null and b/theme/shiny/default-avatar-stream.png differ diff --git a/theme/shiny/images/global_bg.png b/theme/shiny/images/global_bg.png new file mode 100644 index 0000000000..1c9af189c2 Binary files /dev/null and b/theme/shiny/images/global_bg.png differ diff --git a/theme/shiny/images/overlay10.png b/theme/shiny/images/overlay10.png new file mode 100644 index 0000000000..a4cdbe82ad Binary files /dev/null and b/theme/shiny/images/overlay10.png differ diff --git a/theme/shiny/images/overlay20.png b/theme/shiny/images/overlay20.png new file mode 100644 index 0000000000..e15aba8283 Binary files /dev/null and b/theme/shiny/images/overlay20.png differ diff --git a/theme/shiny/images/overlay25.png b/theme/shiny/images/overlay25.png new file mode 100644 index 0000000000..718286062f Binary files /dev/null and b/theme/shiny/images/overlay25.png differ diff --git a/theme/shiny/images/page_bg1.png b/theme/shiny/images/page_bg1.png new file mode 100644 index 0000000000..a9f446812f Binary files /dev/null and b/theme/shiny/images/page_bg1.png differ diff --git a/theme/shiny/images/sn-tiny.png b/theme/shiny/images/sn-tiny.png new file mode 100644 index 0000000000..e1db3a1605 Binary files /dev/null and b/theme/shiny/images/sn-tiny.png differ diff --git a/theme/shiny/images/wrap_bg.png b/theme/shiny/images/wrap_bg.png new file mode 100644 index 0000000000..ce9e4eceeb Binary files /dev/null and b/theme/shiny/images/wrap_bg.png differ diff --git a/theme/shiny/logo.png b/theme/shiny/logo.png new file mode 100644 index 0000000000..b078601019 Binary files /dev/null and b/theme/shiny/logo.png differ diff --git a/theme/shiny/mobilelogo.png b/theme/shiny/mobilelogo.png new file mode 100644 index 0000000000..66bb5f6787 Binary files /dev/null and b/theme/shiny/mobilelogo.png differ diff --git a/theme/shiny/theme.ini b/theme/shiny/theme.ini new file mode 100644 index 0000000000..0209008d40 --- /dev/null +++ b/theme/shiny/theme.ini @@ -0,0 +1 @@ +include=rebase diff --git a/theme/victorian/css/display.css b/theme/victorian/css/display.css new file mode 100644 index 0000000000..fa5f9c1ea9 --- /dev/null +++ b/theme/victorian/css/display.css @@ -0,0 +1,886 @@ +/** theme: Victorian + * + * @package StatusNet + * @author Michael R. Bernstein + * @copyright 2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://www.michaelbernstein.com/ + */ + +/* Typography */ + +@font-face { + font-family: 'LinuxLibertineRegular'; + src: url('../fonts/LinLibertine_Re-4.1_.8_-webfont.eot'); + src: local('☺'), url('../fonts/LinLibertine_Re-4.1_.8_-webfont.woff') format('woff'), url('../fonts/LinLibertine_Re-4.1_.8_-webfont.ttf') format('truetype'), url('../fonts/LinLibertine_Re-4.1_.8_-webfont.svg#webfontrdqe1DyH') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'LinuxLibertineItalic'; + src: url('../fonts/LinLibertine_It-4.0_.3_-webfont.eot'); + src: local('☺'), url('../fonts/LinLibertine_It-4.0_.3_-webfont.woff') format('woff'), url('../fonts/LinLibertine_It-4.0_.3_-webfont.ttf') format('truetype'), url('../fonts/LinLibertine_It-4.0_.3_-webfont.svg#webfont1JABFqYn') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'LinuxLibertineBold'; + src: url('../fonts/LinLibertine_Bd-4.0_.2_-webfont.eot'); + src: local('☺'), url('../fonts/LinLibertine_Bd-4.0_.2_-webfont.woff') format('woff'), url('../fonts/LinLibertine_Bd-4.0_.2_-webfont.ttf') format('truetype'), url('../fonts/LinLibertine_Bd-4.0_.2_-webfont.svg#webfont8Py9MN8V') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'LinuxLibertineCRegular'; + src: url('../fonts/LinLibertineC_Re-4.0_.1_-webfont.eot'); + src: local('☺'), url('../fonts/LinLibertineC_Re-4.0_.1_-webfont.woff') format('woff'), url('../fonts/LinLibertineC_Re-4.0_.1_-webfont.ttf') format('truetype'), url('../fonts/LinLibertineC_Re-4.0_.1_-webfont.svg#webfonth75RjTOl') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* bolding */ + +caption, legend, input.submit, form label, .form_settings #settings_autosubscribe label, address .fn, .system_notice dt, #anon_notice, #site_nav_local_views a, #licenses dt, .form_notice .form_note dt, .form_notice #notice_text-count, button.close, button.minimize, .entity_profile dt, #entity_statistics dt, .entity_profile .fn, .entity_profile .nickname, .entity_actions a, .entity_moderation p, .entity_role p, #showapplication .entity_data dt, .notice .author .fn, .dialogbox .submit_dialogbox, #attachments dt, #attachment_view #oembed_info dt, #filter_tags_all a, .pagination dt, .pagination a, #tagcloud.section dt { + font-weight: normal; + font-family: 'LinuxLibertineBold', serif; +} + +/* italicizing */ + +i, cite, em, var, address { + font-style: normal; + font-family: 'LinuxLibertineItalic', serif; +} + +/* End Typography */ + + +@media screen, projection, tv { +body, +a:active { + background-color:#7D6957; +} + +body { + font-family: LinuxLibertineRegular, serif; + font-size:1.2em; + color: #333; + background-image: url(../images/background.jpg); + background-attachment:fixed; + background-position:center; + line-height: 1.5; +} + +#wrap { + box-shadow: rgba(0, 0, 0, 0.496094) 0px 0px 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.496094) 0px 0px 8px; + -webkit-box-shadow: rgba(0, 0, 0, 0.496094) 0px 0px 8px; + background-color: #F2EFEC; + border: 1px solid white; + margin-top: 16px; + margin-bottom: 16px; + width: 60em; +} + +address { + float: none; + text-align: center; + margin-left: 0px; +} + +.vcard .photo { + float: none; +} + +address .poweredby { + clear: none; + float: none; + margin: 0px; + font-size: 80%; + font-family: 'LinuxLibertineItalic'; +} + +#site_nav_global_primary { + float: none; + margin: 0; + margin-bottom: 1em; + text-align: center; + top: 0; + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + background-color: #fff; +} + +#site_nav_global_primary li:hover { +background-color: #F2EFEC; +} + +body#register #site_nav_global_primary li#nav_register a, +body#login #site_nav_global_primary li#nav_login a, +body#openidlogin #site_nav_global_primary li#nav_login a, +body#all #site_nav_global_primary li#nav_home a, +body#replies #site_nav_global_primary li#nav_home a, +body#showstream #site_nav_global_primary li#nav_home a, +body#showfavorites #site_nav_global_primary li#nav_home a, +body#inbox #site_nav_global_primary li#nav_home a, +body#outbox #site_nav_global_primary li#nav_home a, +body#profilesettings #site_nav_global_primary li#nav_account a, +body#avatarsettings #site_nav_global_primary li#nav_account a, +body#passwordsettings #site_nav_global_primary li#nav_account a, +body#emailsettings #site_nav_global_primary li#nav_account a, +body#userdesignsettings #site_nav_global_primary li#nav_account a, +body#othersettings #site_nav_global_primary li#nav_account a, +body#openidsettings #site_nav_global_primary li#nav_account a, +body#oauthconnectionssettings #site_nav_global_primary li#nav_connect a, +body#smssettings #site_nav_global_primary li#nav_connect a, +body[id$=adminpanel] #site_nav_global_primary li#nav_admin a, +body#invite #site_nav_global_primary li#nav_invitecontact a, +body#usergroups #site_nav_global_primary li#nav_invitecontact a, +body#subscribers #site_nav_global_primary li#nav_invitecontact a, +body#subscriptions #site_nav_global_primary li#nav_invitecontact a, +body[id$=doc] #site_nav_global_primary li#nav_help a, +body[id$=search] #site_nav_global_primary li#nav_search a { + color: #000; + text-decoration: none; +} + +#site_notice { + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + position: absolute; + top: 1em; + right: 1em; + padding: 1em; + width: 15em; + background-color:#E6DFDA; + margin: 0; +} + +.form_notice { + float: none; + margin: 0 auto; + } + +.form_notice label{ + font-family: 'LinuxLibertineCRegular', serif; + float: none; + text-align: center; + } + +#form_notice-direct label{ + float: left; + } + +.form_guide { + font-style: normal; + font-family: 'LinuxLibertineItalic'; +} + +input, textarea, select { + border-width:2px; + border-style: solid; + border-radius:4px; + -moz-border-radius:4px; + -webkit-border-radius:4px; +} + +input, textarea, select, option { + font-family: 'LinuxLibertineCRegular', serif; +} + +input, textarea, select, +.entity_actions .dialogbox input, +.mark-top { + border-color:#AAAAAA; +} + +.form_settings fieldset fieldset { + background:rgba(240, 240, 240, 0.2); + box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); + -moz-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); + -webkit-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); +} + +h1, h2, h3, h4, h5, h6 { + font-family: LinuxLibertineCRegular, serif; + text-align: center; + font-weight: normal; + text-transform: capitalize; + margin-bottom: 1em; +} + + +#filter_tags ul li, +.entity_send-a-message .form_notice, +.form_settings fieldset fieldset, +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { + border-color:#DDDDDD; +} + +.form_settings input.form_action-primary { + background:none; +} + +.form_notice.warning #notice_text-count, +.form_settings .form_note { + background-color:#9BB43E; +} + +input.submit, +.form_notice.warning #notice_text-count, +.form_settings .form_note, +.entity_actions a, +.entity_actions input, +.entity_moderation p, +.entity_role 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_text-count, +.form_settings .form_note, +.entity_actions .dialogbox .form_data input:focus { + border-color:#9BB43E; +} + +input.submit { + color:#FFFFFF; +} + +.entity_actions input.submit { + border-color:transparent; + text-shadow:none; +} + +.dialogbox .submit_dialogbox, +input.submit, +.form_notice input.submit { + background:#D5C5B6 url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x; + color:#000000; + border-color:#7D6957; + border-top-color:#DAD5D0; + border-left-color:#DAD5D0; +} + +.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 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, +.entity_actions a, +.entity_actions input, +.entity_moderation p, +.entity_role p { + color:#015C65; +} + +.notice, +.profile, +.application, +#content tbody tr { + border-top-color:#C8D1D5; +} + +#notice_text-count { + color:#333333; +} + +.form_notice.warning #notice_text-count, +.dialogbox, +.entity_actions .dialogbox input { + color:#000000; +} + +.form_notice label[for=notice_data-attach] { + background-position:0 -328px; +} + +.form_notice #notice_data-attach { + opacity:0; +} + +.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, +.form_remote_authorize input.submit, +.entity_subscribe a, +.entity_moderation p, +.entity_sandbox input.submit, +.entity_silence input.submit, +.entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, +.notice-options .repeated, +.form_notice label[for=notice_data-geo], +button.minimize, +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit, +#realtime_play, +#realtime_pause, +#realtime_popup { + background-image:url(../images/icons/icons-01.gif); + background-repeat:no-repeat; + background-color:transparent; +} + +#wrap form.processing input.submit, +#core a.processing, +.dialogbox.processing .submit_dialogbox { + background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +} +.notice-options .form_repeat.processing { + background-image:none; +} + +#content, body[id$="adminpanel"] #content { + -moz-border-radius: 0 0 0 0; + border-bottom-left-radius: 0 0; + border-bottom-right-radius: 0 0; + border-top-left-radius: 0 0; + border-top-right-radius: 0 0; + border: 1px solid #7D6957; + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + margin-left: 1em; + width: 37em; +} + +#content, body[id$="adminpanel"] #content, +#site_nav_local_views a, body[id$=adminpanel] #site_nav_local_views a, +#aside_primary { + border-color:transparent; +} + +body[id$=adminpanel] #aside_primary { +display:block; +} + +#aside_primary { + background-color:#E6DFDA; + -moz-border-radius: 0px 0px 0px 0px; + border-bottom-left-radius: 0 0; + border-bottom-right-radius: 0 0; + border-top-left-radius: 0 0; + border-top-right-radius: 0 0; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + width: 15em; + float: right; + margin-left: 1em; + margin-right: 1em; +} + +.aside .section { + border-bottom: 1px solid #7D6957; + margin-bottom: 1em; + padding-bottom: 1em; +} + +.aside .section h2 { + text-transform: capitalize; +} + +.section .vcard .photo { + margin-top: 0.3em; + float: left; +} + +.section p { + display: block !important; + clear: none !important; + margin-left: 2.5em; + font-size: 90% +} + +.section table { + margin: 0 auto; +} + +.section table td { + vertical-align: middle; +} + +.section p a.more { + float: right; +} + +#content, +#site_nav_local_views .current a, body[id$=adminpanel] #site_nav_local_views .current a, +.entity_send-a-message .form_notice, +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { + background-color:#FFFFFF; +} + +#site_nav_local_views, body[id$=adminpanel] #site_nav_local_views { + margin-left: 2em; + margin-right: 0; + margin-bottom: -1em; + float: left; + width: 100%; + position: static; +} + +body[id$=adminpanel] #site_nav_local_views li { +float:left; +margin-right:18px; +list-style-type:none; +width: auto; +margin-bottom: 0; +} + +#site_nav_local_views li.current, body[id$=adminpanel] #site_nav_local_views li.current { + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px; + position: relative; + z-index:1; + width: auto; +} + +#site_nav_local_views a, body[id$=adminpanel] #site_nav_local_views a { + background-color:rgba(194, 194, 194, 0.5); + padding: 1em; + text-transform: capitalize; + font-size: 90%; + float: left; + font-weight: normal; + width:auto; + border-radius:4px; + -moz-border-radius:4px; + -webkit-border-radius:4px; +} + +#site_nav_local_views a:hover, body[id$=adminpanel] #site_nav_local_views a:hover { + background-color: #ffc; +} + +#site_nav_local_views .current a, body[id$=adminpanel] #site_nav_local_views .current a { + text-shadow: rgba(194,194,194,0.5) 1px 1px 1px; +} + +#footer { +padding: 1.2em; +background-color:#E6DFDA; +width: 58em; +text-align: center; +} + +#licenses { +margin-left: 5em; +margin-right: 5em; +} + +.processing { + background-image:url(../../base/images/icons/icon_processing.gif); + background-repeat:no-repeat; + background-position:47% 47%; +} + +.error { + background-color:#F7E8E8; +} + +.success { + background-color:#EFF3DC; +} + +button.close { + background-position:0 -1120px; +} + +button.minimize { + background-position:0 -1912px; +} + +#anon_notice { + background-color: #E6DFDA; + float: none; + margin-right: auto; + margin-left: auto; + border: none; + text-align: center; + box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + -moz-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; + -webkit-box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 8px inset; +} + +#showstream #anon_notice { + background-color: #E6DFDA; +} + +#export_data ul { + float: none; + text-align: center; +} + +#export_data li { + float:none; + display: inline; + margin-right: 5px; + margin-left: 5px; +} + +#export_data li a { + background-repeat:no-repeat; +} + +#export_data li a.rss { + background-position:0 -130px; +} + +#export_data li a.atom { + background-position:0 -64px; +} + +#export_data li a.foaf { + background-position:0 1px; +} + +.form_group_join input.submit, +.form_group_leave input.submit, +.form_user_subscribe input.submit, +.form_user_unsubscribe input.submit, +.form_remote_authorize input.submit, +.entity_subscribe a { + background-color:#AAAAAA; + color:#FFFFFF; +} + +.form_group_leave input.submit, +.form_user_unsubscribe input.submit { + background-position:5px -1246px; +} + +.form_group_join input.submit, +.form_user_subscribe input.submit, +.form_remote_authorize input.submit, +.entity_subscribe a { + background-position:5px -1181px; +} + +.entity_edit a { + background-position: 5px -719px; +} + +.entity_send-a-message a { + background-position: 5px -852px; +} + +.entity_send-a-message .form_notice, +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { + 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-position: 5px -785px; +} + +.form_user_block input.submit, +.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; +} + +.entity_sandbox .form_user_unsandbox input.submit { + background-position: 5px -2568px; +} + +.entity_silence .form_user_unsilence input.submit { + background-position: 5px -2633px; +} + +.entity_role p { + background-position: 5px -2436px; +} + +.entity_role_administrator .form_user_grantrole input.submit { + background-position: 5px -983px; +} + +.entity_role_moderator .form_user_grantrole input.submit { + background-position: 5px -1313px; +} + +.entity_role_administrator .form_user_revokerole input.submit { + background-position: 5px -2699px; +} + +.entity_role_moderator .form_user_revokerole input.submit { + background-position: 5px -2501px; +} + +.form_reset_key input.submit { + background-position: 5px -1973px; +} + +.entity_clear input.submit { + background-position: 5px -2039px; +} + +.entity_flag input.submit, +.entity_flag p { + background-position: 5px -2105px; +} + +.entity_subscribe input.accept { + background-position: 5px -2171px; +} + +.entity_subscribe input.reject { + background-position: 5px -2237px; +} + +#realtime_play { + background-position: 0 -2308px; +} + +#realtime_pause { + background-position: 0 -2374px; +} + +#realtime_popup { + background-position: 0 -1714px; +} + +/* NOTICES */ +.notice .attachment { + background-position:0 -394px; +} + +.notice .attachment.more { + background-position:0 -2770px; +} + +#attachments .attachment { + background:none; +} +.notice-options .notice_reply { + background-position:0 -592px; +} + +.notice-options form.form_favor input.submit { + background-position:0 -460px; +} + +.notice-options form.form_disfavor input.submit { + background-position:0 -526px; +} +.notice-options .notice_delete { + background-position:0 -658px; +} +.notice-options form.form_repeat input.submit { + background-position:0 -1582px; +} + +.notice-options .repeated { + background-position:0 -1648px; +} + +.notices .attachment.more, +.notices div.entry-content, +.notices div.notice-options { + opacity:0.4; +} + +.notices li:hover .attachment.more, +.notices li:hover div.entry-content, +.notices li:hover div.notice-options { + opacity:1; +} + +.opaque { + opacity:1 !important; +} + +.attachment.more, +.notice-options a, +.notice-options input { + font-family: 'LinuxLibertineCRegular', 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); +} + +.attachment.more:focus { + box-shadow:none; + -moz-box-shadow:none; + -webkit-box-shadow:none; + outline:none; +} + +#content .notices li:hover, +#content .applications li:hover, +#content tbody tr:hover { + background-color:rgba(240, 240, 240, 0.2); +} + +#content .notice .author .photo { + margin-right: 0.5em; + margin-top: 0.3em; +} + +#conversation .notices li:hover { + background-color:transparent; +} + +.notices .notices { + background-color:rgba(200, 200, 200, 0.050); +} + +.notices .notices .notices { + background-color:rgba(200, 200, 200, 0.100); +} + +.notices .notices .notices .notices { + background-color:rgba(200, 200, 200, 0.150); +} + +.notices .notices .notices .notices .notices { + background-color:rgba(200, 200, 200, 0.300); +} + +/*END: NOTICES */ + +#new_group a { + background-position:0 -1054px; +} + +.pagination .nav_prev a, +.pagination .nav_next a { + border-bottom-left-radius: 4px 4px; + border-bottom-right-radius: 4px 4px; + border-style: solid; + border-width: 2px; + border-top-left-radius: 4px 4px; + border-top-right-radius: 4px 4px; + background-repeat:no-repeat; + background-color: #D5C5B6; + color:#000000; + border-color:#7D6957; + border-top-color:#DAD5D0; + border-left-color:#DAD5D0; + 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-position:10% -187px; +} + +.pagination .nav_next a { + 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%; +} + +}/*end of @media screen, projection, tv*/ diff --git a/theme/victorian/css/ie.css b/theme/victorian/css/ie.css new file mode 100644 index 0000000000..2283471661 --- /dev/null +++ b/theme/victorian/css/ie.css @@ -0,0 +1,20 @@ +/* IE specific styles */ + +.notice-options input.submit { +color:#FFFFFF; +} +#site_nav_local_views a { +background-color:#C8D1D5; +} +.form_notice .form_note + label { +background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; +} +.form_notice #notice_data-attach { +filter: alpha(opacity=0); +} +.notice-options form.form_favor input.submit { +background-position:0 -460px; +} +.notice-options form.form_disfavor input.submit { +background-position:0 -526px; +} diff --git a/theme/victorian/css/mp-screen.css b/theme/victorian/css/mp-screen.css new file mode 100644 index 0000000000..5639f290fb --- /dev/null +++ b/theme/victorian/css/mp-screen.css @@ -0,0 +1,292 @@ +/** theme: mobile profile screen + * + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2009-2010 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + +#wrap { +min-width:0; +max-width:100%; +} + +#header { +margin:0; +padding:0.7em 2%; +width:96%; +} + +address { +margin:1em 0 0 0; +float:left; +width:100%; +} +address .vcard .photo { +margin-right:0; +} + +address img + .fn { +display:block; +margin-top:1em; +float:left; +} + +.vcard .photo { +margin-right:7px; +} + + +.form_settings fieldset { +margin-bottom:7px; +} + +.form_settings label { +width:auto; +display:block; +float:none; +} +.form_settings .form_data li { +margin-bottom:7px; +} + +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:0; +display:block; +} +.form_settings .form_data textarea { +width:96.41%; +} + +.form_settings .form_data label { +float:none; +} + +.form_settings .form_data p.form_guide { +width:auto; +margin-left:0; +} + +#site_nav_global_primary { +margin:0; +width:100%; +list-style-type:none; +position:absolute; +top:0; +left:0; +} +#site_nav_global_primary li { +margin-left:0; +margin-right:4%; +float:left; +font-size:0.9em; +} + +#form_notice { +width:100%; +float: left; +} + +#form_notice textarea { +width:60%; +height:20px; +} + +#notice_text-count { +position:absolute; +bottom:2px; +right:40%; +z-index:9; +} + +/*input type=file no good in +iPhone/iPod Touch, Android, Opera Mini Simulator +*/ +#form_notice #notice_text-count + label, +#form_notice label[for="notice_data-attach"] { +display:none; +} +#form_notice #notice_data-attach { +position:static; +clear:both; +width:65%; +height:auto; +display:block; +z-index:9; +padding:0; +margin:0; +background:none; +opacity:1; +} + +#form_notice #notice_action-submit { +width:20%; +right:2%; +text-align:center; +} + +#site_nav_local_views { + margin-bottom: -0.5em; +} + +#site_nav_local_views li { +margin-left:0; +margin-right: 4px; +} +#site_nav_local_views li:first-child { +margin-left:0; +} +#site_nav_local_views a { +padding: 5px 10px; +display:block; +font-size:0.9em; +} +#site_nav_local_views .current a { +text-shadow:none; +} +#site_nav_local_views li { +-moz-box-shadow:none; +-webkit-box-shadow:none; +box-shadow:none; +} + + +#content { +width:96.41%; +min-height:auto; +} +#content, +#site_nav_local_views a, +#aside_primary { +border:0; +} + +.instructions p, +.instructions ul { +margin-bottom:4px; +} + +h1 { +margin-bottom:0; +} + +.notice, +.profile { +padding-top:4px; +padding-bottom:4px; +min-height:65px; +} +#content .notice .entry-title { +float:left; +width:100%; +margin-left:0; +} +#content .notice .author .photo { +position:static; +float:left; +} +#content .notice div.entry-content { +margin-left:0; +width:75%; +max-width:100%; +min-width:0; +} +.notice-options { +width:43px; +margin-right:1%; +} + +.notice-options form.processing { +background-image:none; +} +#wrap .notice-options form.processing input.submit { +background-position:0 47%; +} + +.notice .notice-options a, +.notice .notice-options input { +box-shadow:none; +-moz-box-shadow:none; +-webkit-box-shadow:none; +} +.notice .notice-options a, +.notice .notice-options form { +margin:-4px 0 0 0; +} +.notice .notice-options .form_repeat, +.notice .notice-options .notice_delete { +margin-top:11px; +} +.notice .notice-options .form_favor, +.notice .notice-options .form_disfavor, +.notice .notice-options .form_repeat { +margin-right:11px; +} + +.notice .notice-options .notice_delete { +float:left; +} + +.entity_profile { +width:auto; +} + +.entity_actions { +margin-right:0; +margin-left:0; +clear:both; +float:none; +width:100%; +max-width:9999px; +} + +.entity_profile { +margin-bottom:7px; +min-height:0; +} + +.entity_profile .entity_fn, +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags, +.entity_profile .entity_aliases { +line-height:1.4; +margin-left:0; +} + +.entity_profile .entity_depiction { +margin-bottom:1%; +margin-right:7px; +} + +.entity_actions { +margin-bottom:1%; +float:left; +width:100%; +} + +.entity_actions li { +float:left; +margin-right:1.5%; +margin-bottom:0; +height:29px; +width:40%; +} + +.user_in .entity_actions .entity_subscribe { +margin-bottom:47px; +width:auto; +height:auto; +margin-right:5%; +} + +#footer { +width:96%; +padding:2%; +} + diff --git a/theme/victorian/default-avatar-mini.png b/theme/victorian/default-avatar-mini.png new file mode 100644 index 0000000000..5ff4f440b9 Binary files /dev/null and b/theme/victorian/default-avatar-mini.png differ diff --git a/theme/victorian/default-avatar-orig.png b/theme/victorian/default-avatar-orig.png new file mode 100644 index 0000000000..0682e0c784 Binary files /dev/null and b/theme/victorian/default-avatar-orig.png differ diff --git a/theme/victorian/default-avatar-profile.png b/theme/victorian/default-avatar-profile.png new file mode 100644 index 0000000000..78ca9bca44 Binary files /dev/null and b/theme/victorian/default-avatar-profile.png differ diff --git a/theme/victorian/default-avatar-stream.png b/theme/victorian/default-avatar-stream.png new file mode 100644 index 0000000000..fbb9be276b Binary files /dev/null and b/theme/victorian/default-avatar-stream.png differ diff --git a/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.eot b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.eot new file mode 100644 index 0000000000..7e6f04e5d3 Binary files /dev/null and b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.eot differ diff --git a/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.svg b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.svg new file mode 100644 index 0000000000..805958e5ca --- /dev/null +++ b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.svg @@ -0,0 +1,241 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Designer : Philipp H. Poll +Foundry : Philipp H. Poll +Foundry URL : http://linuxlibertine.sf.net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.ttf b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.ttf new file mode 100644 index 0000000000..63a2810568 Binary files /dev/null and b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.ttf differ diff --git a/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.woff b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.woff new file mode 100644 index 0000000000..4de051ecfe Binary files /dev/null and b/theme/victorian/fonts/LinLibertineC_Re-4.0_.1_-webfont.woff differ diff --git a/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.eot b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.eot new file mode 100644 index 0000000000..883a04d7a0 Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.eot differ diff --git a/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.svg b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.svg new file mode 100644 index 0000000000..251eede408 --- /dev/null +++ b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.svg @@ -0,0 +1,241 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Designer : Philipp H. Poll +Foundry : Philipp H. Poll +Foundry URL : http://linuxlibertine.sf.net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.ttf b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.ttf new file mode 100644 index 0000000000..9ddc4b2d8c Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.ttf differ diff --git a/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.woff b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.woff new file mode 100644 index 0000000000..f5178bc6e9 Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Bd-4.0_.2_-webfont.woff differ diff --git a/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.eot b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.eot new file mode 100644 index 0000000000..19f9b7831e Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.eot differ diff --git a/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.svg b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.svg new file mode 100644 index 0000000000..2a6ae3f183 --- /dev/null +++ b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.svg @@ -0,0 +1,241 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Designer : Philipp H. Poll +Foundry : Philipp H. Poll +Foundry URL : http://linuxlibertine.sf.net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.ttf b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.ttf new file mode 100644 index 0000000000..89209c0e39 Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.ttf differ diff --git a/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.woff b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.woff new file mode 100644 index 0000000000..d78e0c6e9d Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_It-4.0_.3_-webfont.woff differ diff --git a/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.eot b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.eot new file mode 100644 index 0000000000..26f192376b Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.eot differ diff --git a/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.svg b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.svg new file mode 100644 index 0000000000..40609c6602 --- /dev/null +++ b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.svg @@ -0,0 +1,241 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Designer : Philipp H. Poll +Foundry : Philipp H. Poll +Foundry URL : http://linuxlibertine.sf.net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.ttf b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.ttf new file mode 100644 index 0000000000..63afbdd39c Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.ttf differ diff --git a/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.woff b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.woff new file mode 100644 index 0000000000..cdfe614e07 Binary files /dev/null and b/theme/victorian/fonts/LinLibertine_Re-4.1_.8_-webfont.woff differ diff --git a/theme/victorian/fonts/Philipp Poll License - LinuxLibertine.txt b/theme/victorian/fonts/Philipp Poll License - LinuxLibertine.txt new file mode 100644 index 0000000000..e8bf53c1e3 --- /dev/null +++ b/theme/victorian/fonts/Philipp Poll License - LinuxLibertine.txt @@ -0,0 +1,98 @@ +This Font Software is Copyright (c) 2003-2006, Philipp H. Poll (http://linuxlibertine.sf.net/). +All Rights Reserved. + +"Linux Libertine" is a Reserved Font Name for this Font Software. + +This Font Software is licensed under the SIL Open Font License, Version 1.0. +No modification of the license is permitted, only verbatim copy is allowed. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of cooperative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide an open +framework in which fonts may be shared and improved in partnership with +others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and sold with any software provided that the font +names of derivative works are changed. The fonts and derivatives, +however, cannot be released under any other type of license. + +DEFINITIONS +"Font Software" refers to any and all of the following: + - font files + - data files + - source code + - build scripts + - documentation + +"Reserved Font Name" refers to the Font Software name as seen by +users and any other names as specified after the copyright statement. + +"Standard Version" refers to the collection of Font Software +components as distributed by the Copyright Holder. + +"Modified Version" refers to any derivative font software made by +adding to, deleting, or substituting -- in part or in whole -- +any of the components of the Standard Version, by changing formats +or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Standard or Modified Versions, may be sold by itself. + +2) Standard or Modified Versions of the Font Software may be bundled, +redistributed and sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s), in part or in whole, unless explicit written permission is +granted by the Copyright Holder. This restriction applies to all +references stored in the Font Software, such as the font menu name and +other font description fields, which are used to differentiate the +font from others. + +4) The name(s) of the Copyright Holder or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed using this license, and may not be distributed +under any other license. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/theme/victorian/fonts/stylesheet.css b/theme/victorian/fonts/stylesheet.css new file mode 100644 index 0000000000..bbb24d16d7 --- /dev/null +++ b/theme/victorian/fonts/stylesheet.css @@ -0,0 +1,28 @@ +/* Generated by Font Squirrel (http://www.fontsquirrel.com) on September 5, 2010 08:38:55 PM America/New_York */ + + + +@font-face { + font-family: 'LinuxLibertineRegular'; + src: url('LinLibertine_Re-4.1_.8_-webfont.eot'); + src: local('☺'), url('LinLibertine_Re-4.1_.8_-webfont.woff') format('woff'), url('LinLibertine_Re-4.1_.8_-webfont.ttf') format('truetype'), url('LinLibertine_Re-4.1_.8_-webfont.svg#webfont3W3HuBJC') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'LinuxLibertineItalic'; + src: url('LinLibertine_It-4.0_.3_-webfont.eot'); + src: local('☺'), url('LinLibertine_It-4.0_.3_-webfont.woff') format('woff'), url('LinLibertine_It-4.0_.3_-webfont.ttf') format('truetype'), url('LinLibertine_It-4.0_.3_-webfont.svg#webfontJZPzbf10') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'LinuxLibertineBold'; + src: url('LinLibertine_Bd-4.0_.2_-webfont.eot'); + src: local('☺'), url('LinLibertine_Bd-4.0_.2_-webfont.woff') format('woff'), url('LinLibertine_Bd-4.0_.2_-webfont.ttf') format('truetype'), url('LinLibertine_Bd-4.0_.2_-webfont.svg#webfontA4g6XhNd') format('svg'); + font-weight: normal; + font-style: normal; +} + diff --git a/theme/victorian/images/background.jpg b/theme/victorian/images/background.jpg new file mode 100644 index 0000000000..340a46e726 Binary files /dev/null and b/theme/victorian/images/background.jpg differ diff --git a/theme/victorian/images/icons/icons-01.gif b/theme/victorian/images/icons/icons-01.gif new file mode 100644 index 0000000000..4b1cb331a6 Binary files /dev/null and b/theme/victorian/images/icons/icons-01.gif differ diff --git a/theme/victorian/logo.png b/theme/victorian/logo.png new file mode 100644 index 0000000000..6ab9bd8b34 Binary files /dev/null and b/theme/victorian/logo.png differ diff --git a/theme/victorian/mobilelogo.png b/theme/victorian/mobilelogo.png new file mode 100644 index 0000000000..1ea5139686 Binary files /dev/null and b/theme/victorian/mobilelogo.png differ diff --git a/theme/victorian/theme.ini b/theme/victorian/theme.ini new file mode 100644 index 0000000000..33d0b67978 --- /dev/null +++ b/theme/victorian/theme.ini @@ -0,0 +1 @@ +include=base